| submodule nokia-conf-groups { |
| |
| yang-version "1.1"; |
| |
| belongs-to nokia-conf { prefix "conf"; } |
| |
| import ietf-yang-types { prefix "yang"; } |
| import nokia-sros-yang-extensions { prefix "sros-ext"; } |
| 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-diameter { prefix "types-diam"; } |
| 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-lldp { prefix "types-lldp"; } |
| import nokia-types-log { prefix "types-log"; } |
| import nokia-types-mcast-cac { prefix "types-mcast-cac"; } |
| import nokia-types-mpls { prefix "types-mpls"; } |
| import nokia-types-nat { prefix "types-nat"; } |
| import nokia-types-oam { prefix "types-oam"; } |
| 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-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-sros { prefix "types-sros"; } |
| import nokia-types-subscriber-mgmt { prefix "types-submgt"; } |
| import nokia-types-system { prefix "types-system"; } |
| import nokia-types-wlangw { prefix "types-wlangw"; } |
| |
| |
| sros-ext:sros-major-release "rel19"; |
| |
| organization "Nokia"; |
| |
| contact |
| "Nokia SR OS Support |
| Web: <http://www.nokia.com>"; |
| |
| description |
| "Nokia YANG Data model to configure Configuration groups 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-groups 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 "2019-01-23"; |
| |
| grouping conf-groups { |
| container groups { |
| description "Enter the groups context"; |
| |
| list group { |
| key "name"; |
| max-elements 64; |
| description "Enter the group context"; |
| |
| leaf name { |
| type types-sros:named-item-64; |
| description "The name of this configuration group."; |
| } |
| |
| list card { |
| key "slot-number"; |
| description "Enter the card context"; |
| |
| leaf slot-number { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-card:card-slot; |
| } |
| description "IOM slot within a chassis"; |
| } |
| |
| list mda { |
| key "mda-slot"; |
| description "Enter the mda context"; |
| |
| 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"; |
| } |
| |
| container network { |
| description "Enter the network context"; |
| |
| 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 context"; |
| |
| 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 "Configure amber alarm threshold allowed on over-subscription."; |
| } |
| |
| leaf red-alarm-threshold { |
| status obsolete; |
| type uint32 { |
| range "1..1000"; |
| } |
| units "percent"; |
| description "Configure red alarm threshold allowed on over-subscription."; |
| } |
| |
| leaf slope-policy { |
| status obsolete; |
| type types-sros:named-item; |
| description "Configure the slope policy."; |
| } |
| |
| container resv-cbs { |
| status obsolete; |
| description "Enter the resv-cbs context"; |
| |
| leaf cbs { |
| status obsolete; |
| 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 { |
| status obsolete; |
| description "Enter the amber-alarm-action context"; |
| |
| leaf step { |
| status obsolete; |
| type uint32 { |
| range "1..100"; |
| } |
| units "percent"; |
| description |
| "Configure the step-size percentage for the reserved CBS size of the |
| pool. |
| |
| When set to a value of zero (0), the adaptive CBS sizing is disabled. |
| |
| To enable adaptive CBS sizing, both this leaf and amber-alarm-action/max |
| must be set to non-default values. |
| |
| Adaptive CBS sizing can only be enabled when resv-cbs is non-default."; |
| } |
| |
| leaf max { |
| status obsolete; |
| type uint32 { |
| range "1..100"; |
| } |
| units "percent"; |
| description |
| "Configure the maximum percentage for the reserved CBS size of the pool. |
| |
| When set to a value of zero (0), the adaptive CBS sizing is disabled. |
| |
| To enable adaptive CBS sizing, both this leaf and amber-alarm-action/step |
| must be set to non-default values. |
| |
| Adaptive CBS sizing can only be enabled when resv-cbs is non-default. |
| |
| This value must not be more than resv-cbs."; |
| } |
| |
| } // container amber-alarm-action |
| |
| } // container resv-cbs |
| |
| } // list pool |
| |
| } // container ingress |
| |
| } // container network |
| |
| } // list mda |
| |
| list fp { |
| key "fp-number"; |
| description "Enter the fp context"; |
| |
| 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 policy-accounting { |
| type uint32 { |
| range "1000..128000"; |
| } |
| description "Number of stats resources for policy accounting for the forwarding plane"; |
| } |
| |
| 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"; |
| } |
| |
| 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 for use as dynamic enforcement policers on forwarding plane"; |
| } |
| |
| } // 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 "Enable/disable high bandwidth multicast source functionality."; |
| description "Enter 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 context"; |
| |
| 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 "Enable policer control policy overrides."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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 multicast 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 "Configure the network policy queue policy."; |
| } |
| |
| list queue-group { |
| key "queue-group-name instance-id"; |
| description "Enter the queue-group context"; |
| |
| 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 "Enable policer control policy overrides."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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 "The list of FP ingress network pool parameters."; |
| |
| leaf name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:named-item; |
| } |
| description "Specifies the unique name of the pool for the FP."; |
| } |
| |
| 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 |
| "Configure the step-size percentage for the reserved CBS size of the |
| pool. |
| |
| When set to a value of zero (0), the adaptive CBS sizing is disabled. |
| |
| To enable adaptive CBS sizing, both this leaf and amber-alarm-action/max |
| must be set to non-default values. |
| |
| Adaptive CBS sizing can only be enabled when resv-cbs is non-default."; |
| } |
| |
| leaf max { |
| type uint32 { |
| range "1..100"; |
| } |
| units "percent"; |
| description |
| "Configure the maximum percentage for the reserved CBS size of the pool. |
| |
| When set to a value of zero (0), the adaptive CBS sizing is disabled. |
| |
| To enable adaptive CBS sizing, both this leaf and amber-alarm-action/step |
| must be set to non-default values. |
| |
| Adaptive CBS sizing can only be enabled when resv-cbs is non-default. |
| |
| This value must not be more than resv-cbs."; |
| } |
| |
| } // container amber-alarm-action |
| |
| } // container resv-cbs |
| |
| } // list pool |
| |
| } // container network |
| |
| } // container ingress |
| |
| } // list fp |
| |
| } // list card |
| |
| list port { |
| key "port-id"; |
| description "Enter the port context"; |
| |
| 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"; |
| } |
| |
| container ethernet { |
| description "Enter the ethernet context"; |
| |
| container egress { |
| description "Enter the egress context"; |
| |
| leaf hs-port-pool-policy { |
| type types-sros:named-item; |
| description "HS port pool policy"; |
| } |
| |
| leaf hsmda-scheduler-policy { |
| type types-sros:named-item; |
| description "HSMDA scheduler 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"; |
| } |
| |
| container port-qos-policy { |
| description "Attach an egress port-qos-policy."; |
| |
| leaf policy-name { |
| type types-qos:qos-policy-name; |
| description "Port qos policy name"; |
| } |
| |
| } // container port-qos-policy |
| |
| list expanded-secondary-shaper { |
| key "secondary-shaper-name"; |
| description "Enter the expanded-secondary-shaper context"; |
| |
| leaf secondary-shaper-name { |
| 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 { |
| type uint32 { |
| range "1..8"; |
| } |
| default "8"; |
| description "Class to associate with the Ethernet egress expanded secondary shaper"; |
| } |
| |
| leaf monitor-threshold { |
| type types-qos:secondary-shaper-class-threshold; |
| description "Monitoring threshold for non-conformance burst"; |
| } |
| |
| leaf rate { |
| type types-qos:secondary-shaper-pir-rate; |
| default "max"; |
| description "Rate of the expanded secondary shaper"; |
| } |
| |
| container aggregate-burst { |
| description "Enter the aggregate-burst context"; |
| |
| leaf high-burst-increase { |
| type int32 { |
| range "0..65528"; |
| } |
| units "bytes"; |
| description "High burst increase"; |
| } |
| |
| leaf low-burst-limit { |
| type types-qos:class-burst-limit; |
| units "bytes"; |
| description "Low burst limit"; |
| } |
| |
| } // container aggregate-burst |
| |
| list class { |
| key "class-number"; |
| description "Enter the class context"; |
| |
| leaf class-number { |
| 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 { |
| type types-qos:secondary-shaper-pir-rate; |
| default "max"; |
| description "Class rate"; |
| } |
| |
| leaf monitor-threshold { |
| type types-qos:secondary-shaper-class-threshold; |
| description "Monitoring threshold for non-conformance burst of the class"; |
| } |
| |
| leaf burst-limit { |
| 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 port pool policy"; |
| } |
| |
| } // 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 "Enable port-scheduler-overrides."; |
| description "Enter 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 context"; |
| |
| 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 |
| |
| } // container egress |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| leaf queue-id { |
| 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 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"; |
| } |
| |
| 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 |
| |
| } // list queue |
| |
| } // container queue-overrides |
| |
| } // list queue-group |
| |
| } // container egress |
| |
| } // container network |
| |
| } // container ethernet |
| |
| } // list port |
| |
| container qos { |
| description "Enter the qos context"; |
| |
| container md-auto-id { |
| description "Enter the md-auto-id context"; |
| |
| container qos-policy-id-range { |
| presence "Qos policy Id range for MD Auto assignment"; |
| description "Enter 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"; |
| } |
| |
| } // container qos-policy-id-range |
| |
| } // container md-auto-id |
| |
| list sap-ingress { |
| key "sap-ingress-policy-name"; |
| description "Enter the sap-ingress context"; |
| |
| 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 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 "true"; |
| description "Enter 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 "true"; |
| description "Enter 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 context"; |
| |
| 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; |
| default "802dot3"; |
| 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 "Enable source MAC address match criteria."; |
| description "Enter the src-mac context"; |
| |
| leaf address { |
| type yang:mac-address; |
| mandatory true; |
| description "Source MAC address"; |
| } |
| |
| 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 "Enable destination MAC address match criteria."; |
| description "Enter the dst-mac context"; |
| |
| leaf address { |
| type yang:mac-address; |
| mandatory true; |
| description "Destination MAC address"; |
| } |
| |
| 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 "Enable 802.1P Priority Match Criteria."; |
| description "Enter 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 "Enable DSAP criteria matching."; |
| description "Enter 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 "Enable SSAP criteria matching."; |
| description "Enter 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 "Enable inner tag criteria matching."; |
| description "Enter 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 "Enable outer tag criteria matching."; |
| description "Enter 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 MAC 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 "IP filter type"; |
| } |
| |
| list entry { |
| key "entry-id"; |
| description "Enter the entry context"; |
| |
| 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"; |
| } |
| |
| container match { |
| description "Enter the match context"; |
| |
| leaf protocol { |
| type types-sros:ipv4-match-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 "IP address to match with destination IP of the packet"; |
| } |
| |
| 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 "IP address to match with source IP of the packet"; |
| } |
| |
| 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 MAC 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 filter type"; |
| } |
| |
| list entry { |
| key "entry-id"; |
| description "Enter the entry context"; |
| |
| 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"; |
| } |
| |
| container match { |
| description "Enter the match context"; |
| |
| leaf next-header { |
| type types-sros:ipv6-match-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"; |
| } |
| |
| } |
| } |
| } // 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"; |
| } |
| |
| } |
| } |
| } // 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 MAC 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 context"; |
| |
| 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 "Specifies the administrative CIR."; |
| } |
| |
| leaf fir { |
| type types-qos:queue-fir-rate-maximum; |
| units "kilobps"; |
| default "0"; |
| description "Specifies the 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 |
| |
| } |
| 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; } |
| } |
| default "port-limit"; |
| description "Reference rate as percentage"; |
| } |
| |
| 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 PIR value"; |
| } |
| |
| leaf fir { |
| type types-qos:adaptation-rule; |
| default "closest"; |
| description |
| "The adaptation rule to be used while computing the operational FIR |
| value. The adaptation rule specifies the rules to compute the |
| operational values while maintaining minimum offset."; |
| } |
| |
| } // 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 context"; |
| |
| 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 MAC criteria"; |
| } |
| |
| leaf priority { |
| type types-qos:priority; |
| description "Priority for the packet"; |
| } |
| |
| } // list dscp |
| |
| list dot1p { |
| key "dot1p-value"; |
| description "Enter the dot1p context"; |
| |
| 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 MAC criteria"; |
| } |
| |
| 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 context"; |
| |
| 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 MAC criteria"; |
| } |
| |
| 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 context"; |
| |
| 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 MAC criteria"; |
| } |
| |
| leaf priority { |
| type types-qos:priority; |
| description "Priority for the matching traffic"; |
| } |
| |
| } // list lsp-exp |
| |
| list fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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 "Sap-Ingress Forwarding Class (FC) queue-group mappings."; |
| description "Enter the queue-group-queue context"; |
| |
| leaf queue-group-name { |
| type types-sros:named-item; |
| mandatory true; |
| description "Queue group name associated with queue"; |
| } |
| |
| leaf queue { |
| type types-qos:ingress-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 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 "Sap-Ingress Forwarding Class (FC) queue-group mappings."; |
| description "Enter the unknown-queue-group-queue context"; |
| |
| leaf queue-group-name { |
| type types-sros:named-item; |
| mandatory true; |
| description "Queue group name associated with broadcast queue"; |
| } |
| |
| leaf queue { |
| type types-qos:ingress-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 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 "Sap-Ingress Forwarding Class (FC) queue-group mappings."; |
| description "Enter the unknown-queue-group-queue context"; |
| |
| leaf queue-group-name { |
| type types-sros:named-item; |
| mandatory true; |
| description "Queue group name associated with broadcast queue"; |
| } |
| |
| leaf queue { |
| type types-qos:ingress-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 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 "Sap-Ingress Forwarding Class (FC) queue-group mappings."; |
| description "Enter the unknown-queue-group-queue context"; |
| |
| leaf queue-group-name { |
| type types-sros:named-item; |
| mandatory true; |
| description "Queue group name associated with broadcast queue"; |
| } |
| |
| leaf queue { |
| type types-qos:ingress-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 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 policer { |
| key "policer-id"; |
| description "Enter the policer context"; |
| |
| 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:ingress-policer-stat-mode; |
| default "minimal"; |
| 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 for the 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 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"; |
| } |
| |
| } // 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 sap-ingress |
| |
| list slope-policy { |
| key "slope-policy-name"; |
| max-elements 511; |
| description "Enter the slope-policy context"; |
| |
| 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 { |
| key "hsmda-slope-policy-name"; |
| description "Enter the hsmda-slope-policy context"; |
| |
| leaf hsmda-slope-policy-name { |
| 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 { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| container high-slope { |
| description "Enter the high-slope context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "enable"; |
| description "Administrative state of the high priority RED slope"; |
| } |
| |
| leaf start-depth { |
| 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 { |
| 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 { |
| 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 { |
| description "Enter the low-slope context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "enable"; |
| description "Administrative state of the low priority RED slope"; |
| } |
| |
| leaf start-depth { |
| 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 { |
| 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 { |
| 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 { |
| key "hsmda-wrr-policy-name"; |
| description "Enter the hsmda-wrr-policy context"; |
| |
| leaf hsmda-wrr-policy-name { |
| 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 { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| leaf include-queues { |
| 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 { |
| type int32 { |
| range "1..3"; |
| } |
| default "1"; |
| description "Class to schedule the queues specified within the HSMDA scheduler"; |
| } |
| |
| leaf class-agg-weight { |
| 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 { |
| key "hsmda-pool-policy-name"; |
| description "Enter the hsmda-pool-policy context"; |
| |
| leaf hsmda-pool-policy-name { |
| 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 { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| leaf system-reserve { |
| 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 { |
| description "Enter the root-tier context"; |
| |
| list root-pool { |
| key "root-pool-id"; |
| description "Enter the root-pool context"; |
| |
| leaf root-pool-id { |
| 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 { |
| 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 { |
| description "Enter the class-tier context"; |
| |
| list class-pool { |
| key "class-pool-id"; |
| description "Enter the class-pool context"; |
| |
| leaf class-pool-id { |
| 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 { |
| type uint32 { |
| range "1..8"; |
| } |
| default "1"; |
| description "Specifies the parent root to which this class-pool is associated."; |
| } |
| |
| 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 class-pool."; |
| } |
| |
| } // list class-pool |
| |
| } // container class-tier |
| |
| } // list hsmda-pool-policy |
| |
| list hsmda-scheduler-policy { |
| key "hsmda-scheduler-policy-name"; |
| description "Enter the hsmda-scheduler-policy context"; |
| |
| leaf hsmda-scheduler-policy-name { |
| 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 { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| leaf max-rate { |
| 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 { |
| 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 { |
| key "group-id"; |
| description "Enter the group context"; |
| |
| leaf group-id { |
| 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 { |
| 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 { |
| 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 { |
| key "class-id"; |
| description "Enter the scheduling-class context"; |
| |
| leaf class-id { |
| 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 { |
| default "rate"; |
| case rate { |
| |
| leaf rate { |
| 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 { |
| 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 { |
| |
| container group { |
| presence "Specifies the group and weight configuration."; |
| description "Enter the group context"; |
| |
| leaf group-id { |
| type uint32 { |
| range "1..2"; |
| } |
| mandatory true; |
| description "Specifies the group associated with this scheduling class."; |
| } |
| |
| leaf weight { |
| 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 context"; |
| |
| 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; |
| default "false"; |
| 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; } |
| } |
| default "p01-and-s01"; |
| 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"; |
| } |
| default "1"; |
| 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"; |
| default "0"; |
| description "Peak information rate"; |
| } |
| |
| leaf mir { |
| type uint32; |
| units "kilobps"; |
| default "0"; |
| description "Minimum information rate"; |
| } |
| |
| leaf mbs { |
| type uint32; |
| default "0"; |
| 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 context"; |
| |
| 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 { |
| description "Enter the egress-hsmda context"; |
| |
| leaf packet-byte-offset { |
| type types-qos:egress-per-packet-offset; |
| default "0"; |
| description "Packet byte offset to use for the HSMDA egress queues"; |
| } |
| |
| leaf wrr-policy { |
| type types-sros:named-item; |
| description "WRR policy to use on this HSMDA egress queue"; |
| } |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 HSMDA queue ID"; |
| } |
| |
| leaf burst-limit { |
| 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 { |
| 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 { |
| type decimal64 { |
| range "0.01..100.00"; |
| fraction-digits 2; |
| } |
| default "100.00"; |
| description "PIR percentage rate"; |
| } |
| |
| leaf slope-policy { |
| type types-sros:named-item; |
| description "Slop policy name to override the default slope policy for the named buffer pool"; |
| } |
| |
| leaf wrr-weight { |
| type types-qos:hsmda-wrr-weight; |
| default "1"; |
| description "Weight value for the HSMDA queue"; |
| } |
| |
| 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 queue |
| |
| } // container egress-hsmda |
| |
| list fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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 { |
| description "Enter the egress-hsmda context"; |
| |
| leaf queue { |
| 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 context"; |
| |
| 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 "HSMDA queue for packets in this forwarding class"; |
| } |
| |
| 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; |
| } |
| default "100.00"; |
| 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 "Encapsulation overhead to translate the packet based rate to frame based rate and vice versa"; |
| } |
| |
| 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 "Specifies whether this queue is parented by port-level scheduler."; |
| description "Enter 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 |
| "The adaptation rule to be used while computing the operational FIR |
| value. The adaptation rule specifies the rules to compute the |
| operational values while maintaining minimum offset."; |
| } |
| |
| } // 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| default "17"; |
| description "Logical queue that the broadcast traffic, classified into this forwarding class, should use"; |
| } |
| |
| leaf multicast-queue { |
| type int32 { |
| range "9..32"; |
| } |
| default "9"; |
| description "Logical queue that the multicast traffic, classified into this forwarding class, should use"; |
| } |
| |
| leaf unknown-queue { |
| type int32 { |
| range "9..32"; |
| } |
| default "25"; |
| 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 context"; |
| |
| 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 that is used as the fair share increase limit"; |
| } |
| |
| } |
| } |
| } // container above-offered-cap |
| |
| 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 administratiive 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| default "10"; |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| default "25"; |
| 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 context"; |
| |
| 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"; |
| } |
| default "0"; |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| default "25"; |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| default "10"; |
| 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 context"; |
| |
| 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 max-rate { |
| type types-qos:max-rate; |
| default "max"; |
| description "Maximum frame based bandwidth limit of this policer"; |
| } |
| |
| leaf profile-preferred { |
| type boolean; |
| default "false"; |
| description "Provide a preference to consume PIR bucket tokens at a given priority level"; |
| } |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| |
| leaf rate { |
| type types-qos:max-rate; |
| default "max"; |
| description "Maximum frame based bandwidth limit"; |
| } |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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."; |
| } |
| |
| 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 |
| "The adaptation rule to be used while computing the operational FIR |
| value. The adaptation rule specifies the rules to compute the |
| operational values while maintaining minimum offset."; |
| } |
| |
| } // container adaptation-rule |
| |
| container rate { |
| description "Enter the rate context"; |
| |
| leaf pir { |
| type types-qos:queue-pir-rate; |
| units "kilobps"; |
| default "max"; |
| description "CIR"; |
| } |
| |
| 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 "Specifies administrative CIR."; |
| } |
| |
| leaf fir { |
| type types-qos:queue-cir-rate; |
| units "kilobps"; |
| default "0"; |
| description "Specifies 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 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 context"; |
| |
| 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"; |
| } |
| |
| 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 |
| |
| container rate { |
| description "Enter the rate context"; |
| |
| leaf pir { |
| type types-qos:policer-pir-rate; |
| units "kilobps"; |
| default "max"; |
| description "CIR"; |
| } |
| |
| leaf cir { |
| type types-qos:policer-cir-rate; |
| units "kilobps"; |
| default "0"; |
| description "CIR"; |
| } |
| |
| } // container rate |
| |
| } // 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 context"; |
| |
| 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 { |
| description "Enter the hsmda-queues context"; |
| |
| leaf low-burst-max-class { |
| 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 { |
| type types-qos:egress-per-packet-offset; |
| default "0"; |
| description "Packet byte offset to use for the HSMDA egress queues"; |
| } |
| |
| leaf wrr-policy { |
| type types-sros:named-item; |
| description "WRR policy to use on this HSMDA egress queue"; |
| } |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 HSMDA queue ID"; |
| } |
| |
| leaf burst-limit { |
| 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 { |
| type types-qos:hsmda-queue-burst-size; |
| units "bytes"; |
| description "Buffer space allowed for the queue"; |
| } |
| |
| leaf rate { |
| type types-qos:hsmda-queue-pir-rate; |
| default "max"; |
| description "PIR rate"; |
| } |
| |
| leaf slope-policy { |
| type types-sros:named-item; |
| description "Name of the slope policy which overrides the default policy for the named buffer pool"; |
| } |
| |
| leaf wrr-weight { |
| type types-qos:hsmda-wrr-weight; |
| default "1"; |
| description "Weight value for the HSMDA queue"; |
| } |
| |
| 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 queue |
| |
| } // container hsmda-queues |
| |
| list fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| |
| } // container percent-rate |
| |
| } |
| } |
| choice parent-mapping { |
| case scheduler-parent { |
| |
| container scheduler-parent { |
| presence "Specifies whether this queue is parented by scheduler."; |
| description "Enter 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 "Specifies whether this queue is parented by port-level scheduler."; |
| description "Enter 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 context"; |
| |
| 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"; |
| } |
| |
| 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 |
| |
| container rate { |
| description "Enter the rate context"; |
| |
| leaf pir { |
| type types-qos:policer-pir-rate; |
| units "kilobps"; |
| default "max"; |
| description "CIR"; |
| } |
| |
| leaf cir { |
| type types-qos:policer-cir-rate; |
| units "kilobps"; |
| default "0"; |
| description "CIR"; |
| } |
| |
| } // container rate |
| |
| } // list policer |
| |
| list hs-wrr-group { |
| key "group-id"; |
| description "Enter the hs-wrr-group context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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; |
| mandatory true; |
| description "Forwarding class"; |
| } |
| |
| leaf profile { |
| type types-qos:profile-de; |
| mandatory true; |
| description "Default profile to be used for the ingressing traffic"; |
| } |
| |
| } // list dot1p |
| |
| list dscp { |
| key "dscp-name"; |
| description "Enter the dscp context"; |
| |
| 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; |
| mandatory true; |
| description "Forwarding class"; |
| } |
| |
| leaf profile { |
| type types-qos:profile; |
| mandatory true; |
| description "Default profile to use for the ingressing traffic"; |
| } |
| |
| } // list dscp |
| |
| list lsp-exp { |
| key "lsp-exp-value"; |
| description "Enter the lsp-exp context"; |
| |
| 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; |
| mandatory true; |
| description "Forwarding class"; |
| } |
| |
| leaf profile { |
| type types-qos:profile; |
| mandatory true; |
| description "Default profile to use for the ingressing traffic"; |
| } |
| |
| } // list lsp-exp |
| |
| list fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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 "Plicer 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 context"; |
| |
| 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:ipv4-match-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 "IP address to match with destination IP of the packet"; |
| } |
| |
| 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 "IP address to match with source IP of the packet"; |
| } |
| |
| 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 context"; |
| |
| 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:ipv6-match-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 "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 |
| "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 "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 |
| "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 "Specifies if the system will remark the egress packets or not."; |
| description "Enter 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 context"; |
| |
| 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; |
| mandatory true; |
| description "Forwarding class"; |
| } |
| |
| leaf profile { |
| type types-qos:egress-profile; |
| mandatory true; |
| description "Default profile to use for the ingressing traffic"; |
| } |
| |
| } // list dscp |
| |
| list prec { |
| key "prec-value"; |
| description "Enter the prec context"; |
| |
| 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; |
| mandatory true; |
| description "Forwarding class"; |
| } |
| |
| leaf profile { |
| type types-qos:egress-profile; |
| mandatory true; |
| description "Default profile to use for the ingressing traffic"; |
| } |
| |
| } // list prec |
| |
| list fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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:network-egress-dscp-name; |
| default "be"; |
| description "DSCP marking for in-profile marking"; |
| } |
| |
| leaf dscp-out-profile { |
| type types-qos:network-egress-dscp-name; |
| default "be"; |
| 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 "Specifies whether to set DE value in the frames."; |
| description "Enter 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 context"; |
| |
| 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:ipv4-match-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 "IP address to match with destination IP of the packet."; |
| } |
| |
| 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 "IP address to match with source IP of the packet."; |
| } |
| |
| 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 |
| |
| } |
| } |
| } // 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 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 context"; |
| |
| 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:ipv6-match-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 "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."; |
| } |
| |
| } |
| } |
| } // 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."; |
| } |
| |
| } |
| } |
| } // 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 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"; |
| description "Port QoS Policy Configurations."; |
| |
| 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 "Description for this port-qos policy."; |
| } |
| |
| leaf scope { |
| type types-qos:item-scope; |
| default "template"; |
| description "Scope of the policy."; |
| } |
| |
| list fc { |
| key "fc-name"; |
| description "Port QoS Policy Forwarding Class (FC) Mappings."; |
| |
| 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 "Queue Configurations."; |
| |
| 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 "Specifies PIR and CIR adaptation rules."; |
| |
| 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 "Specifies Scheduler Mode of this queue."; |
| |
| choice wfq-or-strict-priority { |
| default "wfq"; |
| case wfq { |
| |
| container wfq { |
| description "Specifies Wfq of this queue."; |
| |
| 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 "Specifies PIR and CIR Percent Rate."; |
| |
| 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"; |
| description "Wrr Weights Configurations."; |
| |
| 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 |
| |
| } // list port-qos-policy |
| |
| list vlan-qos-policy { |
| key "vlan-qos-policy-name"; |
| description "Vlan QoS Policy Configurations."; |
| |
| 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 "Description for this vlan-qos policy."; |
| } |
| |
| leaf scope { |
| type types-qos:item-scope; |
| default "template"; |
| description "Scope of the policy."; |
| } |
| |
| list cir-weight-profile { |
| key "cir-weight-profile-id"; |
| description "CIR Weight Profile Configurations."; |
| |
| 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 "Vlan QoS Policy Forwarding Class (FC) Mappings."; |
| |
| 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 "Queue Configurations."; |
| |
| 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."; |
| } |
| |
| container adaptation-rule { |
| description "Specifies PIR and CIR adaptation rules."; |
| |
| 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 { |
| description "Specifies Queue Type of this queue."; |
| |
| choice best-effort-hi-low { |
| default "best-effort"; |
| case best-effort { |
| |
| container best-effort { |
| description "Indicates that the queue is non-expedited."; |
| |
| 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."; |
| } |
| |
| container percent-rate { |
| description "Specifies PIR and CIR Percent Rate."; |
| |
| 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 best-effort |
| |
| } |
| case expedite-hi { |
| |
| container expedite-hi { |
| description |
| "Indicates that the queue will be expedited at the |
| highest level until it reaches its committed rate."; |
| |
| container percent-rate { |
| description "Specifies PIR and CIR Percent Rate."; |
| |
| 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 expedite-hi |
| |
| } |
| case expedite-lo { |
| |
| container expedite-lo { |
| description |
| "Indicates that the committed rate of the queue will be |
| expedited at a level lower than the 'expedite-hi' queues."; |
| |
| container percent-rate { |
| description "Specifies PIR and CIR Percent Rate."; |
| |
| 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 expedite-lo |
| |
| } |
| } |
| } // container queue-type |
| |
| } // list queue |
| |
| } // list vlan-qos-policy |
| |
| list queue-mgmt-policy { |
| key "queue-mgmt-policy-name"; |
| description "Queue Management Policy Configurations."; |
| |
| 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 "Description for this queue-mgmt-policy."; |
| } |
| |
| leaf mbs { |
| type union { |
| type types-qos:kilobytes { |
| range "1..1500000"; |
| } |
| type enumeration { |
| enum "auto" { value -1; } |
| } |
| } |
| 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."; |
| } |
| |
| container high-slope { |
| description "High Priority RED slope parameters."; |
| |
| 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 low-slope { |
| description "Low Priority RED slope parameters."; |
| |
| 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"; |
| description "Ingress classification Qos policies"; |
| |
| 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 "Description for this ingress classifcation policy."; |
| } |
| |
| leaf allow-egress-dscp-exp-remarking { |
| type boolean; |
| default "false"; |
| description |
| "Specifies whether to enable remarking for DSCP and Precedence based on |
| the profile state of a packet being forwarded."; |
| } |
| |
| leaf scope { |
| type types-qos:item-scope; |
| default "template"; |
| description "Scope of the policy."; |
| } |
| |
| container default-action { |
| description "Configuration default-action parameters."; |
| |
| 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 "Ingress classification Policy Ingress 802.1 priority Mappings."; |
| |
| 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; |
| 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."; |
| } |
| |
| } // list dot1p |
| |
| list dscp { |
| key "dscp-name"; |
| description "Ingress classification Policy Ingress DSCP Mappings."; |
| |
| 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; |
| 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."; |
| } |
| |
| } // list dscp |
| |
| list lsp-exp { |
| key "lsp-exp-value"; |
| description "Ingress classification Policy Ingress LSP-EXP mappings."; |
| |
| 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; |
| 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."; |
| } |
| |
| } // list lsp-exp |
| |
| } // list ingress-classification-policy |
| |
| list network-ingress { |
| key "network-ingress-policy-name"; |
| description "Network-Ingress QoS policies."; |
| |
| 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 description { |
| type types-sros:description; |
| description "Description for this network-ingress policy."; |
| } |
| |
| leaf ingress-classification-policy { |
| type types-qos:qos-policy-name; |
| default "network-default"; |
| 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 "Network-ingress forwarding-class to policer mappings."; |
| |
| 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; |
| description |
| "Specifies the policer identifier to be used for the multicast traffic |
| in this forwarding class."; |
| } |
| |
| leaf policer { |
| type types-qos:ingress-policer-id; |
| description |
| "Specifies the policer identifier to be used for the normal traffic |
| in this forwarding class."; |
| } |
| |
| } // list fc |
| |
| list policer { |
| key "policer-id"; |
| description "Network-Ingress Policer."; |
| |
| 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 cbs { |
| type union { |
| type types-qos:bytes { |
| range "0..16777216"; |
| } |
| 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 "0..16777216"; |
| } |
| 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; } |
| } |
| default "no-stats"; |
| description "Specifies the mode of statistics collected."; |
| } |
| |
| container adaptation-rule { |
| description "Specifies PIR and CIR adaptation rules."; |
| |
| 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 rate { |
| description "Specifies PIR and CIR Kbps Rate."; |
| |
| leaf pir { |
| type union { |
| type uint32 { |
| range "1..2000000000"; |
| } |
| type enumeration { |
| enum "max" { value -1; } |
| } |
| } |
| units "kilobps"; |
| default "max"; |
| description "Specifies the administrative PIR."; |
| } |
| |
| leaf cir { |
| type union { |
| type uint32 { |
| range "0..2000000000"; |
| } |
| 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 context"; |
| |
| 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 "true"; |
| description "Enter 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 "true"; |
| description "Enter 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 { |
| description "Enter the hsmda-queues context"; |
| |
| leaf low-burst-max-class { |
| type uint32 { |
| range "1..8"; |
| } |
| default "8"; |
| description "Class that uses low priority burst threshold"; |
| } |
| |
| leaf packet-byte-offset { |
| type types-qos:egress-per-packet-offset; |
| default "0"; |
| description "Packet byte offset to use for the HSMDA egress queues"; |
| } |
| |
| leaf wrr-policy { |
| type types-sros:named-item; |
| description "Weighted Round Robin (WRR) policy"; |
| } |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 HSMDA queue ID"; |
| } |
| |
| leaf burst-limit { |
| 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 { |
| type types-qos:hsmda-queue-burst-size; |
| units "bytes"; |
| description "Buffer space allowed for the queue"; |
| } |
| |
| leaf rate { |
| type types-qos:hsmda-queue-pir-rate; |
| default "max"; |
| description "PIR rate"; |
| } |
| |
| leaf slope-policy { |
| type types-sros:named-item; |
| description "Name of the slope policy which overrides the default policy for the named buffer pool"; |
| } |
| |
| leaf wrr-weight { |
| type types-qos:hsmda-wrr-weight; |
| default "1"; |
| description "Weight value for the HSMDA queue"; |
| } |
| |
| 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 queue |
| |
| } // container hsmda-queues |
| |
| list dot1p { |
| key "dot1p-value"; |
| description "Enter the dot1p context"; |
| |
| 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 context"; |
| |
| 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 { |
| 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 context"; |
| |
| 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 { |
| 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 fc { |
| key "fc-name"; |
| description "Enter the fc context"; |
| |
| 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 "port-redirect-group-queue mappings"; |
| description "Enter 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 "queue-group mappings"; |
| description "Enter the queue-group-queue context"; |
| |
| leaf queue-group-name { |
| type types-sros:named-item; |
| mandatory true; |
| 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 "SRRP instance whose state is tracked on this IP address"; |
| } |
| |
| } // container queue-group-queue |
| |
| } |
| } |
| container de-mark { |
| presence "Specifies whether to set DE value in the frames."; |
| description "Enter the de-mark context"; |
| |
| leaf force { |
| type types-qos:de-value; |
| description "DE value"; |
| } |
| |
| } // container de-mark |
| |
| container de-mark-inner { |
| presence "Specifies whether to set DE value in the inner VLAN tag."; |
| description "Enter 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 "Specifies whether to set DE value in the outer VLAN tag."; |
| description "Enter 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 { |
| description "Enter the hsmda context"; |
| |
| choice hsmda-queue-redirection-mapping { |
| case queue { |
| |
| leaf queue { |
| type types-qos:egress-queue-id; |
| description "HSMDA queue to which traffic is forwarded"; |
| } |
| |
| } |
| case port-redirect-group-queue { |
| |
| container port-redirect-group-queue { |
| presence "Sap Egress Forwarding Class (FC) hsmda-queue mappings."; |
| description "Enter the port-redirect-group-queue context"; |
| |
| leaf queue { |
| type types-qos:egress-queue-id; |
| mandatory true; |
| description "HSMDA queue to which traffic is forwarded"; |
| } |
| |
| } // container port-redirect-group-queue |
| |
| } |
| } |
| } // container hsmda |
| |
| } // list fc |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 |
| "Specifies the encapsulation overhead, in centipercent, used to |
| translate packet-based rate to frame-based rate and vice versa."; |
| } |
| |
| 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; } |
| } |
| default "port-limit"; |
| description "Reference rate as percentage"; |
| } |
| |
| } // container percent-rate |
| |
| } |
| } |
| choice parent-mapping { |
| case scheduler-parent { |
| |
| container scheduler-parent { |
| presence "Specifies whether this queue is parented by scheduler."; |
| description "Enter 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 "Specifies whether this queue is parented by port-level scheduler."; |
| description "Enter 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 context"; |
| |
| 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"; |
| } |
| |
| } // container percent-rate |
| |
| } |
| } |
| choice parent-mapping { |
| case scheduler-parent { |
| |
| container scheduler-parent { |
| presence "Specifies whether this queue is parented by scheduler."; |
| description "Enter 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 "Specifies whether this queue is parented by port-level scheduler."; |
| description "Enter 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 hs-wrr-group { |
| key "group-id"; |
| description "Enter the hs-wrr-group context"; |
| |
| 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 context"; |
| |
| 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:ipv4-match-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 "IP address to match with source IP of the packet"; |
| } |
| |
| 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 "IP address to match with source IP of the packet"; |
| } |
| |
| 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 hsmda-counter-override { |
| type uint32 { |
| range "1..8"; |
| } |
| description "HSMDA counter to use for matching packets"; |
| } |
| |
| 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"; |
| } |
| |
| } // 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 context"; |
| |
| 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:ipv6-match-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 "IP address to match with source IP of the packet"; |
| } |
| |
| leaf mask { |
| type types-sros:ipv6-address; |
| description "IP address mask to match with source IP of the packet"; |
| } |
| |
| } |
| } |
| } // 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 "IP address to match with destination IP of the packet"; |
| } |
| |
| leaf mask { |
| type types-sros:ipv6-address; |
| description "IP address mask to match with destination IP of the packet"; |
| } |
| |
| } |
| } |
| } // 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 hsmda-counter-override { |
| type uint32 { |
| range "1..8"; |
| } |
| description "HSMDA counter to use for matching packets"; |
| } |
| |
| 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"; |
| } |
| |
| } // 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 parent-mapping { |
| case scheduler-parent { |
| |
| container scheduler-parent { |
| presence "Specifies whether this queue is parented by scheduler."; |
| description "Enter 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 "Specifies whether this queue is parented by port-level scheduler."; |
| description "Enter 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 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 |
| |
| } // list scheduler |
| |
| } // list tier |
| |
| } // list scheduler-policy |
| |
| list port-scheduler-policy { |
| key "name"; |
| description "Enter the port-scheduler-policy context"; |
| |
| 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"; |
| } |
| |
| 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"; |
| description "Enter the group context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 "Specifies the group and weight configuration."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| 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 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 context"; |
| |
| 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; |
| } |
| default "1.00"; |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| mandatory true; |
| 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"; |
| description "Egress-remark QoS policies."; |
| |
| 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 "The description of this egress-remark QoS policy."; |
| } |
| |
| leaf scope { |
| type types-qos:item-scope; |
| default "template"; |
| description "Scope of the policy."; |
| } |
| |
| list fc { |
| key "fc-name"; |
| description "Egress Remark Policy Forwarding Class (FC) Mappings."; |
| |
| 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 "Specifies whether to set DE of the frames."; |
| description "Configure DE Value for Marking."; |
| |
| leaf force { |
| type types-qos:de-value; |
| description "Specifies the DE value to set."; |
| } |
| |
| } // container de-mark |
| |
| container dot1p { |
| description "Specifies Dot1p Markings."; |
| |
| 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."; |
| } |
| |
| } // container dot1p |
| |
| container dscp { |
| description "Configures DSCP Markings."; |
| |
| leaf in-profile { |
| type types-qos:dscp-name; |
| description "Specifies DSCP name for in-profile frames."; |
| } |
| |
| leaf out-profile { |
| type types-qos:dscp-name; |
| description "Specifies DSCP value for out-of-profile frames."; |
| } |
| |
| } // container dscp |
| |
| container lsp-exp { |
| description "Specifies details of LSP-EXP."; |
| |
| leaf in-profile { |
| type types-qos:lsp-exp-value; |
| description "Specifies LSP-EXP marking for in-profile frames."; |
| } |
| |
| leaf out-profile { |
| type types-qos:lsp-exp-value; |
| description "Specifies LSP-EXP value for out-of-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 context"; |
| |
| 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 "The description of ip-prefix-list."; |
| } |
| |
| list prefix { |
| key "ip-prefix"; |
| max-elements 256; |
| description "Enter the prefix context"; |
| |
| 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 context"; |
| |
| 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 "The description of ipv6-prefix-list."; |
| } |
| |
| list prefix { |
| key "ipv6-prefix"; |
| max-elements 128; |
| description "Enter the prefix context"; |
| |
| 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 |
| |
| } // container match-list |
| |
| } // container qos |
| |
| list router { |
| key "router-name"; |
| max-elements 3; |
| description "Enter the router context"; |
| |
| 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 |
| "The administrative name for this virtual router. |
| |
| The router name must be unique among all virtual routers in the system."; |
| } |
| |
| container aggregates { |
| description "Enter the aggregates context"; |
| |
| list aggregate { |
| key "ip-prefix"; |
| description "Enter the aggregate context"; |
| |
| 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 aggregation"; |
| } |
| |
| leaf as-set { |
| type boolean; |
| default "false"; |
| description "Allow aggregate route as an AS-SET option"; |
| } |
| |
| leaf-list community { |
| type types-sros:community; |
| max-elements 12; |
| ordered-by user; |
| description "Community name that is added to aggregate route"; |
| } |
| |
| leaf description { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| leaf summary-only { |
| type boolean; |
| default "false"; |
| description "Advertise only the aggregate route and not the specific routes that make up the aggregate"; |
| } |
| |
| leaf local-preference { |
| type int64 { |
| range "0..4294967295"; |
| } |
| description "Default local preference if aggregate route is exported and advertised to BGP peers"; |
| } |
| |
| choice next-hop { |
| case blackhole { |
| |
| container blackhole { |
| presence "blackhole"; |
| description "Enter the blackhole context"; |
| |
| leaf generate-icmp { |
| type boolean; |
| default "false"; |
| description "Send ICMP unreachable messages when packets match an aggregate route with black-hole next-hop"; |
| } |
| |
| } // container blackhole |
| |
| } |
| case indirect { |
| |
| leaf indirect { |
| type types-sros:ip-unicast-address; |
| sros-ext:immutable; |
| description "Address of indirect next hop"; |
| } |
| |
| } |
| } |
| container aggregator { |
| description "Enter the aggregator context"; |
| |
| leaf as-number { |
| type uint32 { |
| range "1..max"; |
| } |
| description "Aggregator Autonomous System Number (ASN)"; |
| } |
| |
| leaf address { |
| type types-sros:ipv4-unicast-address; |
| description "Aggregator IP address"; |
| } |
| |
| } // container aggregator |
| |
| } // list aggregate |
| |
| } // container aggregates |
| |
| list interface { |
| key "interface-name"; |
| description "Enter the interface context"; |
| |
| 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"; |
| } |
| |
| container qos { |
| description "Enter the qos context"; |
| |
| leaf network-policy { |
| type types-qos:network-policy-name; |
| description "Pre-existing network policy ID 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 |
| |
| } // list interface |
| |
| container tunnel-interface { |
| description "Enter the tunnel-interface context"; |
| |
| } // container tunnel-interface |
| |
| container bgp { |
| presence "Enables bgp functionality on this router"; |
| description "Enter the bgp context"; |
| |
| list group { |
| key "group-name"; |
| description "Enter the group context"; |
| |
| leaf group-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:named-item; |
| } |
| description "BGP peer group"; |
| } |
| |
| list prefix-limit { |
| key "family"; |
| description "Enter the prefix-limit context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Specifies the maximum number of routes that can be learned from this peer."; |
| } |
| |
| leaf log-only { |
| type boolean; |
| default "false"; |
| description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session"; |
| } |
| |
| leaf threshold { |
| type uint32 { |
| range "1..100"; |
| } |
| default "90"; |
| description "Threshold value that triggers a warning message"; |
| } |
| |
| leaf idle-timeout { |
| type int32 { |
| range "1..1024"; |
| } |
| description "Time that BGP peering remains idle before reconnecting to peers"; |
| } |
| |
| leaf post-import { |
| type boolean; |
| default "false"; |
| description "Apply prefix limit only to number of routes accepted by import policies"; |
| } |
| |
| } // list prefix-limit |
| |
| } // list group |
| |
| list neighbor { |
| key "ip-address"; |
| description "Enter the neighbor context"; |
| |
| 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 "BGP group neighbor"; |
| } |
| |
| list prefix-limit { |
| key "family"; |
| description "Enter the prefix-limit context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Specifies the maximum number of routes that can be learned from this peer."; |
| } |
| |
| leaf log-only { |
| type boolean; |
| default "false"; |
| description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session"; |
| } |
| |
| leaf threshold { |
| type uint32 { |
| range "1..100"; |
| } |
| default "90"; |
| description "Threshold value that triggers a warning message"; |
| } |
| |
| leaf idle-timeout { |
| type int32 { |
| range "1..1024"; |
| } |
| description "Time that BGP peering remains idle before reconnecting to peers"; |
| } |
| |
| leaf post-import { |
| type boolean; |
| default "false"; |
| description "Apply prefix limit only to number of routes accepted by import policies"; |
| } |
| |
| } // list prefix-limit |
| |
| } // list neighbor |
| |
| } // container bgp |
| |
| list isis { |
| key "isis-instance"; |
| description "Enter the isis context"; |
| |
| leaf isis-instance { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type int32 { |
| range "0..31"; |
| } |
| } |
| 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 only 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 for information and troubleshooting purposes"; |
| } |
| |
| 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 ISIS neighbors on the link for this ISIS instance"; |
| } |
| |
| leaf all-l2isis { |
| type yang:mac-address; |
| default "01:80:C2:00:00:15"; |
| description "Destination MAC address for all L1 ISIS 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; |
| default "false"; |
| 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-mtu-size { |
| type types-isis:lsp-buffer-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 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 "Maximum number of routes (prefixes) that can be exported into IS-IS from the route table."; |
| description "Enter 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 "Enables/disables graceful restart for ISIS."; |
| description "Enter 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 "Configure multi-topologies support in this ISIS instance."; |
| description "Enter 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 "Configure the local router so that it appears to be overload."; |
| description "Enter 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 "Configure the local router so that it appears to be overloaded at boot up."; |
| description "Enter 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 "Configure the limit for maximum number of prefixes IS-IS can support."; |
| description "Enter 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 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 "Enable/disable fast re-route capability for ISIS"; |
| description "Enter 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 "Enable/disable Remote LFA"; |
| description "Enter 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 "Configure node-protection support in this ISIS instance."; |
| description "Enter 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 "Enable/disable topology Independent LFA"; |
| description "Enter 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 "Configure node-protection support in this ISIS instance."; |
| description "Enter the node-protect context"; |
| |
| } // container node-protect |
| |
| } // container ti-lfa |
| |
| } // container loopfree-alternate |
| |
| container database-export { |
| presence "Enable/disable database export."; |
| description "Enter 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 "Enable/disable BGP-LS instance-identifier."; |
| description "Enter 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 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; |
| default "true"; |
| 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 "Routing local block"; |
| } |
| |
| leaf tunnel-mtu { |
| type uint32 { |
| range "512..9198"; |
| } |
| 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 prefix-sid-range { |
| presence "Configure prefix-sid-range"; |
| description "Enter 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 "1..524287"; |
| } |
| default "1"; |
| description "Maximum local SID index"; |
| } |
| |
| } |
| } |
| } // container prefix-sid-range |
| |
| list adjacency-set { |
| key "id"; |
| description "Enter the adjacency-set context"; |
| |
| 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 "Assign a static SID value to this adj-set"; |
| description "Enter 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 ISIS segment routing mapping server"; |
| } |
| |
| list node-sid-map { |
| key "sid-index"; |
| description "Enter the node-sid-map context"; |
| |
| 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; |
| 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)"; |
| } |
| |
| 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 context"; |
| |
| 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 "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 context"; |
| |
| 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"; |
| } |
| 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 "Assign IPv4 static adjacency sid to interface"; |
| description "Enter 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 "Assign IPv6 static adjacency sid to interface"; |
| description "Enter 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 "Configure a route-next-hop template"; |
| description "Enter the policy-map context"; |
| |
| leaf route-nh-template { |
| type types-sros:named-item; |
| mandatory true; |
| description "Route next hop policy template that is applied to interface"; |
| } |
| |
| } // container policy-map |
| |
| } // container loopfree-alternate |
| |
| container mesh-group { |
| presence "Configure mesh groups"; |
| description "Enter 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 "Enable BFD for IPv4"; |
| description "Enter 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 "Enable BFD for IPv6"; |
| description "Enter 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 "Configure IPv4 node SID for this interface"; |
| description "Enter 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 "Configure IPv6 node SID for this interface"; |
| description "Enter 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 "Enter the adjacency-set context"; |
| |
| 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 level { |
| key "level-number"; |
| max-elements 2; |
| description "Enter the level context"; |
| |
| 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"; |
| } |
| 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 for IPv6 unicast"; |
| } |
| |
| leaf metric { |
| type types-isis:metric; |
| description "IS-IS interface metric applied for 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 context"; |
| |
| 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"; |
| } |
| default "165"; |
| 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-size; |
| units "bytes"; |
| sros-ext:manual-restart-to-modify; |
| default "1492"; |
| description "LSP MTU size"; |
| } |
| |
| leaf preference { |
| type uint32 { |
| range "1..255"; |
| } |
| default "18"; |
| 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 "Administratively enable/disable 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 context"; |
| |
| 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 context"; |
| |
| 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 "Enter the member context"; |
| |
| 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 context"; |
| |
| 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 mpls { |
| presence "Enables mpls functionality on this router."; |
| description "Enter 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 "30..10080"; |
| } |
| units "minutes"; |
| description "Value for the LSP resignal timer"; |
| } |
| |
| 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..10"; |
| } |
| 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 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 P2MP 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."; |
| } |
| |
| 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; |
| default "true"; |
| description "Apply entropy labels to RSVP-TE LSPs"; |
| } |
| |
| leaf sr-te { |
| type boolean; |
| default "true"; |
| 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 context"; |
| |
| 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 "Enter the interface context"; |
| |
| 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 context"; |
| |
| 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 "Enter the srlg-group context"; |
| |
| 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 context"; |
| |
| 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 "The swap action on the incoming label."; |
| description "Enter the swap context"; |
| |
| leaf out-label { |
| type union { |
| type uint32 { |
| range "16..1048575"; |
| } |
| type enumeration { |
| enum "implicit-null-label" { value 3; } |
| } |
| } |
| 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; |
| mandatory true; |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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"; |
| } |
| |
| leaf ip-address { |
| type types-sros:ip-address; |
| sros-ext:immutable; |
| mandatory true; |
| description "IPv4 address of this hop"; |
| } |
| |
| leaf type { |
| type enumeration { |
| enum "strict" { value 1; } |
| enum "loose" { value 2; } |
| } |
| mandatory true; |
| description "Tunnel hop type"; |
| } |
| |
| } // list hop |
| |
| } // list path |
| |
| list lsp-template { |
| key "template-name"; |
| max-elements 4096; |
| description "Enter the lsp-template context"; |
| |
| 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; |
| 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 { |
| type types-mpls:class-type; |
| default "0"; |
| description "Configure backup-class-type for this LSP template."; |
| } |
| |
| leaf bandwidth { |
| type uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| default "0"; |
| description "Specify bandwidth in mbps for LSP instances created using this LSP template."; |
| } |
| |
| leaf bgp-shortcut { |
| type boolean; |
| default "true"; |
| 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"; |
| } |
| default "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-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 "Configure class based forwarding."; |
| description "Enter the class-forwarding context"; |
| |
| choice cbf-choice { |
| default "default-lsp-and-fc"; |
| case default-lsp-and-fc { |
| |
| leaf default-lsp { |
| type boolean; |
| default "false"; |
| description "Use the default LSP configuration for specified LSP or LSP template"; |
| } |
| |
| 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 "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 { |
| description "Enter the cspf context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Administrative state of the CSPF support for LSP"; |
| } |
| |
| leaf use-te-metric { |
| 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 "Enable/Disable fast reroute for LSP Template instances."; |
| description "Enter 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"; |
| } |
| default "6"; |
| 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 "Enter the admin-tag context"; |
| |
| 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 "Enable/disable auto bandwidth for LSP template."; |
| description "Enter the auto-bandwidth context"; |
| |
| leaf max-bandwidth { |
| type uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| default "100000"; |
| description "Maximum bandwidth of auto-bandwidth to request for the LSP"; |
| } |
| |
| leaf min-bandwidth { |
| type uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 context"; |
| |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 "Configure overflow limit for auto-bandwidth for LSP."; |
| description "Enter 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 uint32 { |
| range "1..100000"; |
| } |
| units "megabps"; |
| 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 "Configure underflow limit for auto-bandwidth for LSP."; |
| description "Enter 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 uint32 { |
| range "1..100000"; |
| } |
| units "megabps"; |
| 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 auto-bandwidth |
| |
| container egress-statistics { |
| presence "Configures LSP template Egress statistics."; |
| description "Enter 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"; |
| } |
| |
| 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; } |
| } |
| default "none"; |
| description "Indicates the action to be taken when LSP BFD session fails"; |
| } |
| |
| } // container bfd |
| |
| } // list lsp-template |
| |
| list lsp { |
| key "lsp-name"; |
| description "Enter the lsp context"; |
| |
| 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; |
| 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 { |
| 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-computation { |
| type boolean; |
| default "false"; |
| description "LSP path computation request sent to local CSPF or to PCE"; |
| } |
| |
| 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; |
| default "true"; |
| description "Include LSP for BGP routes"; |
| } |
| |
| leaf bgp-transport-tunnel { |
| type boolean; |
| default "true"; |
| description "Include LSP as transport LSP for labeled BGP routes"; |
| } |
| |
| leaf ldp-over-rsvp { |
| type boolean; |
| default "true"; |
| description "Include this LSP in LDP over RSVP"; |
| } |
| |
| leaf metric { |
| type uint32 { |
| range "0..16777215"; |
| } |
| default "0"; |
| description "LSP metric that forces to a constant value"; |
| } |
| |
| leaf vprn-auto-bind { |
| type boolean; |
| default "true"; |
| 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-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"; |
| } |
| |
| container class-forwarding { |
| presence "Configure class based forwarding."; |
| description "Enter the class-forwarding context"; |
| |
| choice cbf-choice { |
| default "default-lsp-and-fc"; |
| case default-lsp-and-fc { |
| |
| leaf default-lsp { |
| type boolean; |
| default "false"; |
| description "Use the default LSP configuration for specified LSP or LSP template"; |
| } |
| |
| 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 "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 { |
| presence "Enable/disable CSPF support"; |
| description "Enter the cspf context"; |
| |
| leaf use-te-metric { |
| 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; |
| default "enable"; |
| 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 "Enable/Disable the fast reroute method."; |
| description "Enter 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 "one-to-one"; |
| description "Fast Reroute method"; |
| } |
| |
| leaf node-protect { |
| type boolean; |
| default "true"; |
| 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"; |
| } |
| default "6"; |
| 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 "Enter the admin-tag context"; |
| |
| 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 "Enable/disable auto bandwidth for LSP."; |
| description "Enter the auto-bandwidth context"; |
| |
| leaf max-bandwidth { |
| type uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| default "100000"; |
| description "Maximum bandwidth of auto-bandwidth to request for the LSP"; |
| } |
| |
| leaf min-bandwidth { |
| type uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 context"; |
| |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 "Configure overflow limit for auto-bandwidth for LSP."; |
| description "Enter 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 uint32 { |
| range "1..100000"; |
| } |
| units "megabps"; |
| 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 "Configure underflow limit for auto-bandwidth for LSP."; |
| description "Enter 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 uint32 { |
| range "1..100000"; |
| } |
| units "megabps"; |
| 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 "Enable/disable use of last adjusted bandwidth for LSP."; |
| description "Enable/disable use of last adjusted bandwidth for LSP."; |
| |
| 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 "Enable/disable LSP egress statistics."; |
| description "Enter 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 ingress-statistics { |
| presence "Enable/disable LSP ingress statistics."; |
| description "Enter the ingress-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 ingress-statistics |
| |
| container bfd { |
| description "Enter the bfd context"; |
| |
| leaf bfd-liveness { |
| type boolean; |
| default "false"; |
| description "Enable BFD"; |
| } |
| |
| 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; } |
| } |
| default "none"; |
| description "Perform action when LSP BFD session fails"; |
| } |
| |
| } // container bfd |
| |
| list path-profile { |
| key "profile-id"; |
| max-elements 5; |
| description "Enter the path-profile context"; |
| |
| 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 context"; |
| |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 |
| "Configure administrative groups that should be included |
| when the LSP path is setup."; |
| description "Enter 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 |
| "Configure administrative groups that should be excluded |
| when the LSP path is setup."; |
| description "Enter 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"; |
| } |
| |
| 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"; |
| } |
| |
| } // container bfd |
| |
| } // list primary |
| |
| list secondary { |
| key "path-name"; |
| max-elements 8; |
| description "Enter the secondary context"; |
| |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 "0..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 |
| "Configure administrative groups that should be included |
| when the LSP path is setup."; |
| description "Enter 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 |
| "Configure administrative groups that should be excluded |
| when the LSP path is setup."; |
| description "Enter 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 secondary |
| |
| list primary-p2mp-instance { |
| key "instance-name"; |
| max-elements 1; |
| description "Enter the primary-p2mp-instance context"; |
| |
| 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 uint32 { |
| range "0..100000"; |
| } |
| units "megabps"; |
| 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 |
| "Configure administrative groups that should be included |
| when the P2MP LSP is setup."; |
| description "Enter 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 |
| "Configure administrative groups that should be excluded |
| when the P2MP LSP is setup."; |
| description "Enter 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 context"; |
| |
| 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 "Administratively enable/disable the P2MP S2L sub LSP."; |
| } |
| |
| } // list s2l-path |
| |
| } // list primary-p2mp-instance |
| |
| } // list lsp |
| |
| list auto-lsp { |
| key "template-name"; |
| max-elements 500; |
| description "Enter the auto-lsp context"; |
| |
| 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 context"; |
| |
| 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 |
| "Configure label to be pushed on the label stack and |
| the next hop IP address."; |
| description "Enter the push context"; |
| |
| leaf out-label { |
| type union { |
| type uint32 { |
| range "16..1048575"; |
| } |
| type enumeration { |
| enum "implicit-null-label" { value 3; } |
| } |
| } |
| 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; |
| mandatory true; |
| description "IP address for the next hop"; |
| } |
| |
| } // container push |
| |
| } // list static-lsp |
| |
| container forwarding-policies { |
| presence "Enable/disable Forwarding Policies for MPLS."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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; |
| mandatory true; |
| 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 "Configure primary next-hop."; |
| description "Enter 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 context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Push label value."; |
| } |
| |
| } // list pushed-labels |
| |
| } // container primary-next-hop |
| |
| container backup-next-hop { |
| presence "Configure backup next-hop."; |
| description "Enter 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 context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Push label value."; |
| } |
| |
| } // list pushed-labels |
| |
| } // container backup-next-hop |
| |
| } // list next-hop-group |
| |
| container ingress-statistics { |
| presence "Configure ingress-statistics."; |
| description "Enter 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 |
| |
| } // list forwarding-policy |
| |
| } // container forwarding-policies |
| |
| container pce-init-lsp { |
| presence "Enable/disable support of PCE initiated LSPs"; |
| description "Enable/disable support of PCE initiated LSPs."; |
| |
| container sr-te { |
| presence "Enable/Disable support of PCE initiated SR-TE LSPs"; |
| description "Specifies if PCE initiated SR-TE LSPs are supported on the system."; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Administratively enable or disable PCE initiated SR-TE LSPs."; |
| } |
| |
| } // 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 context"; |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 "Configure aux-stats."; |
| description "Enter 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 mpls |
| |
| container rsvp { |
| presence "Enables RSVP functionality."; |
| description "Enter 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 "Enable/disable RSVP message pacing."; |
| description "Enter 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 "Enables RSVP threshold based IGP TE functionality."; |
| description "Enter 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 "Enables Dark Bandwidth accounting."; |
| description "Enter 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 "Enables RSVP DiffServ TE functionality."; |
| description "Enter 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"; |
| } |
| |
| 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 context"; |
| |
| 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; |
| mandatory true; |
| description "Diff-Serv Class Type (CT) for an LSP"; |
| } |
| |
| } // list fc |
| |
| list te-class { |
| key "te-class-number"; |
| description "Enter the te-class context"; |
| |
| 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; |
| 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"; |
| } |
| |
| } // list te-class |
| |
| } // container diffserv-te |
| |
| list interface { |
| key "interface-name"; |
| description "Enter the interface context"; |
| |
| 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 "Enables RSVP interface class-type bw functionality."; |
| description "Enter 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 "Enable/Disable refresh reduction."; |
| description "Enter 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 "Configure up threshold for Dark Bandwidth."; |
| description "Enter 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 "Configure down threshold for Dark Bandwidth."; |
| description "Enter 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 "Specifies down TE threshold levels."; |
| description "Enter 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 "Specifies up TE threshold levels."; |
| description "Enter 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 |
| |
| } // list router |
| |
| container service { |
| description "Enter the service context"; |
| |
| list vpls { |
| key "service-name"; |
| description "Enter the vpls context"; |
| |
| leaf service-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-services:service-name; |
| } |
| description "Name of the service"; |
| } |
| |
| 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; |
| 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..9194"; |
| } |
| default "1514"; |
| description "MTU size"; |
| } |
| |
| leaf etree { |
| type boolean; |
| sros-ext:immutable; |
| default "false"; |
| description "Use VPLS as an E-Tree 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 stp { |
| description "Enter the stp context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Enable/disable spanning tree protocol (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; } |
| } |
| default "rstp"; |
| description "Configure protocol version"; |
| } |
| |
| leaf priority { |
| type int32 { |
| range "0..65535"; |
| } |
| default "32768"; |
| description "Configure STP bridge priority"; |
| } |
| |
| } // container stp |
| |
| 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"; |
| } |
| |
| } // container mac-move |
| |
| container static-mac { |
| description "Enter the static-mac context"; |
| |
| list mac { |
| key "mac-address"; |
| description "Enter the mac context"; |
| |
| 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 { |
| mandatory true; |
| 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 context"; |
| |
| leaf vxlan-instance { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type uint32 { |
| range "1..2"; |
| } |
| } |
| default "1"; |
| 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 "specifies the type of multicast traffic discarded on the receive side of when the vxlan instance is NDF"; |
| } |
| |
| container assisted-replication { |
| description "Enter the assisted-replication context"; |
| |
| choice role { |
| case leaf { |
| |
| container leaf { |
| presence "AR role as leaf."; |
| description "Enter 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 "Enter the egress-vtep context"; |
| |
| 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:vxlan-protected-src-mac-violation-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 "igmp-snooping configuration for the VXLAN instance."; |
| |
| leaf mrouter-port { |
| type boolean; |
| default "false"; |
| description "Configure as a multicast router port."; |
| } |
| |
| } // container igmp-snooping |
| |
| container mld-snooping { |
| description "mld-snooping configuration for the VXLAN instance."; |
| |
| 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 "Enable proxy arp configuration information."; |
| description "Enter 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 context"; |
| |
| 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; |
| mandatory true; |
| 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 context"; |
| |
| 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 "Enable proxy nd configuration information."; |
| description "Enter 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 context"; |
| |
| leaf ipv6-address { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:ipv6-unicast-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"; |
| } |
| |
| } // 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 context"; |
| |
| leaf ipv6-address { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:ipv6-unicast-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 "Enable to allow IP interface binding information."; |
| description "Enter the routed-vpls context"; |
| |
| leaf vxlan-ipv4-tep-ecmp { |
| type boolean; |
| default "false"; |
| description "Use ECMP on VXLAN IPv4 destinations for R-VPLS services"; |
| } |
| |
| container multicast { |
| description "Enter the multicast context"; |
| |
| 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 "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 "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 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 context"; |
| |
| 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; |
| mandatory true; |
| description "Backbone VPLS ISID"; |
| } |
| |
| container igmp-snooping { |
| description "Enter the igmp-snooping context"; |
| |
| list mrouter-destination { |
| key "mac-reference"; |
| description "Enter the mrouter-destination context"; |
| |
| 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 "Enter the mrouter-destination context"; |
| |
| 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 context"; |
| |
| 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 "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 "Port as a multicast router port"; |
| } |
| |
| } // container mld-snooping |
| |
| } // list sap |
| |
| list spoke-sdp { |
| key "sdp-bind-id"; |
| description "Enter the spoke-sdp context"; |
| |
| 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 SAP"; |
| } |
| |
| container igmp-snooping { |
| description "Enter the igmp-snooping context"; |
| |
| leaf mrouter-port { |
| type boolean; |
| default "false"; |
| description "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 "Port as a multicast router port"; |
| } |
| |
| } // container mld-snooping |
| |
| } // list spoke-sdp |
| |
| list mesh-sdp { |
| key "sdp-bind-id"; |
| description "Enter the mesh-sdp context"; |
| |
| 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 SAP"; |
| } |
| |
| container igmp-snooping { |
| description "Enter the igmp-snooping context"; |
| |
| leaf mrouter-port { |
| type boolean; |
| default "false"; |
| description "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 "Port as a multicast router port"; |
| } |
| |
| } // container mld-snooping |
| |
| } // list mesh-sdp |
| |
| } // 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 flush-all-from-me on b-vpls failure"; |
| } |
| |
| leaf propagate-from-bvpls { |
| type boolean; |
| default "false"; |
| description "Propagate mac-flush 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 "Backbone source MAC address used for PBB"; |
| } |
| |
| leaf use-es-bmac-lsb { |
| type boolean; |
| default "false"; |
| description "Use ethernet segment backbone MAC LSB"; |
| } |
| |
| 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"; |
| } |
| |
| 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 |
| |
| list bgp { |
| key "bgp-instance"; |
| description "Enter the bgp context"; |
| |
| 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 context"; |
| |
| 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 "Oerational 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 IGMP 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 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 IGMP 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 mld-snooping |
| |
| container pim-snooping { |
| presence "Enable PIM on this service."; |
| description "Enter 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"; |
| } |
| |
| } // container ipv4 |
| |
| container ipv6 { |
| description "Enter the ipv6 context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Administrative state of snooping"; |
| } |
| |
| } // container ipv6 |
| |
| } // container pim-snooping |
| |
| container bgp-ad { |
| presence "Enable BGP AD information."; |
| description "Enter 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 "Enable BGP EVPN information."; |
| description "Enter 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 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 context"; |
| |
| leaf start { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:svc-isid-non-zero; |
| } |
| default "1"; |
| 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 { |
| 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 context"; |
| |
| 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; |
| 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; |
| default "true"; |
| description "Enable/Disable sending Vxlan Encap."; |
| } |
| |
| 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 to match against export policies: value as 0xXX."; |
| } |
| |
| leaf ecmp { |
| type types-services:ecmp-value; |
| default "1"; |
| description "Maximum ECMP routes information."; |
| } |
| |
| leaf mh-mode { |
| type enumeration { |
| enum "access" { value 0; } |
| enum "network" { value 1; } |
| } |
| default "access"; |
| description "Multi-homing mode"; |
| } |
| |
| container routes { |
| description "BGP-EVPN vxlan routes information"; |
| |
| container auto-disc { |
| description "BGP-EVPN vxlan routes auto-discovery information"; |
| |
| leaf advertise { |
| type boolean; |
| default "false"; |
| description "Route advertise on auto discovery"; |
| } |
| |
| } // container auto-disc |
| |
| } // container routes |
| |
| } // list vxlan |
| |
| list mpls { |
| key "bgp-instance"; |
| description "Enter the mpls context"; |
| |
| 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 "Forces vlan-vc-type forwarding in the data-path."; |
| } |
| |
| 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 to match against export policies: value as 0xXX."; |
| } |
| |
| container send-tunnel-encap { |
| description "Enter the send-tunnel-encap context"; |
| |
| leaf mpls { |
| type boolean; |
| default "true"; |
| description "Enable/disable MPLS encapsulation for this service."; |
| } |
| |
| leaf mpls-over-udp { |
| type boolean; |
| default "false"; |
| description "Enable/disable MPLS over UDP encapsulation for this service."; |
| } |
| |
| } // 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"; |
| } |
| |
| container resolution-filter { |
| description "Enter the resolution-filter context"; |
| |
| leaf bgp { |
| type boolean; |
| default "false"; |
| description "Set BGP type for auto bind tunnel"; |
| } |
| |
| leaf ldp { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting LDP type for auto-bind-tunnel"; |
| } |
| |
| leaf rsvp { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting RSVP-TE type for auto-bind-tunnel"; |
| } |
| |
| leaf sr-isis { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting SR-ISIS type for auto-bind-tunnel"; |
| } |
| |
| leaf sr-ospf { |
| type boolean; |
| default "false"; |
| description "Segment Routing (SR) tunnel type programed by an OSPF instance in TTM"; |
| } |
| |
| leaf sr-te { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting SR-TE type for auto-bind-tunnel"; |
| } |
| |
| leaf udp { |
| type boolean; |
| default "false"; |
| description "Set UDP type for auto-bind-tunnel"; |
| } |
| |
| leaf mpls-fwd-policy { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting MPLS Forwarding Policy for auto-bind-tunnel"; |
| } |
| |
| leaf sr-policy { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting SR Policy type for auto-bind-tunnel"; |
| } |
| |
| leaf rib-api { |
| type boolean; |
| default "false"; |
| description "Enable/disable setting RIB API type for auto-bind-tunnel"; |
| } |
| |
| } // container resolution-filter |
| |
| } // container auto-bind-tunnel |
| |
| container fdb { |
| description "Enter the fdb context"; |
| |
| leaf protected-src-mac-violation-action { |
| type types-services:vxlan-protected-src-mac-violation-action; |
| description "Action when a relearn request for a protected MAC is received"; |
| } |
| |
| } // container fdb |
| |
| } // list mpls |
| |
| } // container bgp-evpn |
| |
| container bgp-vpls { |
| presence "Enable BGP-VPLS for the service."; |
| description "Enter the bgp-vpls context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Administrative state of the service"; |
| } |
| |
| 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 context"; |
| |
| 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 context"; |
| |
| 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 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 context"; |
| |
| 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 ma-admin-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-eth-cfm:admin-name; |
| } |
| description "Unique association name"; |
| } |
| |
| 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 "Maintenance association end point 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 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 "Additional octets inserted into CCM PDU for data TLV padding"; |
| } |
| |
| leaf one-way-delay-threshold { |
| type uint32 { |
| range "0..600"; |
| } |
| units "seconds"; |
| default "3"; |
| description "Threshold 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 to expire before a Fault Notification Generation (FNG) alarm"; |
| } |
| |
| leaf fng-reset-time { |
| type int32 { |
| range "250|500|1000"; |
| } |
| units "centiseconds"; |
| description "Time to expire before a Fault Notification Generation (FNG) alarm is reset"; |
| } |
| |
| } // container alarm-notification |
| |
| container eth-test { |
| presence "Enable/disable eth-test functionality on MEP."; |
| description "Enter the eth-test context"; |
| |
| leaf bit-error-threshold { |
| type uint32 { |
| range "0..11840"; |
| } |
| units "bit errors"; |
| default "1"; |
| description "Lowest priority defect threshold for the bit error trap to generate a 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 "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window"; |
| } |
| |
| 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 PDUs"; |
| } |
| |
| leaf tx-eth-ed { |
| type boolean; |
| default "false"; |
| description "Transmit ETH-ED PDUs"; |
| } |
| |
| } // container eth-ed |
| |
| container eth-vsm-grace { |
| description "Enter the eth-vsm-grace context"; |
| |
| leaf rx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP"; |
| } |
| |
| leaf tx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the transmission of the Nokia ETH-CFM Grace PDU 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 context"; |
| |
| 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>:<vc-id>. |
| 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 this Service SDP binding"; |
| } |
| |
| 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 status"; |
| } |
| |
| 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 bfd-template { |
| type types-sros:named-item; |
| description "BFD template associated with SDP binding"; |
| } |
| |
| 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"; |
| } |
| |
| 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 "Enable use of hash-label."; |
| description "Enter 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; |
| description "MAC filter ID"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // 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; |
| description "MAC filter ID"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // 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 "Enter the mda context"; |
| |
| 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; |
| default "255"; |
| 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 "Enable ETH CFM monitoring configuration."; |
| description "Enter 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 { |
| presence "Enable BFD liveness information."; |
| description "Enter the bfd-liveness context"; |
| |
| leaf encap { |
| type types-services:bfd-encap; |
| default "ipv4"; |
| description "BFD encapsulation used on this SDP binding"; |
| } |
| |
| } // container bfd-liveness |
| |
| 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 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 "Enable/disable spanning-tree-protocol"; |
| } |
| |
| 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 "Enable L2PT termination on managed VLANs"; |
| description "Enter 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 "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 for 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 context"; |
| |
| 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 multicast channel"; |
| } |
| |
| choice source-or-starg { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 address of multicast channel."; |
| } |
| |
| } // 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 "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 context"; |
| |
| 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 { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 OAM-PM Loss Measurement Message (LMM) tests"; |
| } |
| |
| leaf-list squelch-ingress-levels { |
| type uint32 { |
| range "0..7"; |
| } |
| max-elements 8; |
| description "ETH-CFM PDUs to be silently discarded"; |
| } |
| |
| 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 which to create an individual profile-unaware counter"; |
| } |
| |
| leaf-list fc-in-profile { |
| type types-eth-cfm:fc-type; |
| max-elements 8; |
| description "Individual counters to create for the specified Forwarding Class"; |
| } |
| |
| } // container collect-lmm-fc-stats |
| |
| list mep { |
| key "md-admin-name ma-admin-name mep-id"; |
| description "Enter the mep context"; |
| |
| 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 ma-admin-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-eth-cfm:admin-name; |
| } |
| description "Unique association name"; |
| } |
| |
| 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 "Maintenance association end point 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 "Additional octets inserted into CCM PDU for data TLV padding"; |
| } |
| |
| leaf lbm-svc-act-responder { |
| type boolean; |
| default "false"; |
| description "Process service activation streams encapsulated in ETH-CFM request Loopback Message"; |
| } |
| |
| leaf one-way-delay-threshold { |
| type uint32 { |
| range "0..600"; |
| } |
| units "seconds"; |
| default "3"; |
| description "Threshold 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 "The Fault Notification Generation (FNG) alarm time."; |
| } |
| |
| leaf fng-reset-time { |
| type int32 { |
| range "250|500|1000"; |
| } |
| units "centiseconds"; |
| description "Time to expire before a Fault Notification Generation (FNG) alarm is reset"; |
| } |
| |
| } // container alarm-notification |
| |
| container ais { |
| presence |
| "The generation and reception of Alarm Indication Signal (AIS) |
| message parameters"; |
| description "Enter 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 |
| "The Lowest Priority Defect for the MEP AIS generation. |
| |
| When this object is 'all-def (1)', AIS frame generation will be |
| triggered for any defect in the CCM state machine. |
| When this object is 'mac-rem-err-xcon (2)', AIS frame generation will be |
| triggered for 'def-mac-staus' defect and any defect higher than |
| 'def-mac-status'."; |
| } |
| |
| leaf priority { |
| type types-eth-cfm:frame-priority; |
| default "7"; |
| description "Priority of AIS messages originated by the node"; |
| } |
| |
| } // container ais |
| |
| container csf { |
| presence "The reception of Client Signal Fail (CSF) message parameters"; |
| description "Enter 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 "Enable/disable eth-test functionality on MEP."; |
| description "Enter the eth-test context"; |
| |
| leaf bit-error-threshold { |
| type uint32 { |
| range "0..11840"; |
| } |
| units "bit errors"; |
| default "1"; |
| description "Lowest priority defect threshold for the bit error trap to generate a 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 "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window"; |
| } |
| |
| 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 PDUs"; |
| } |
| |
| leaf tx-eth-ed { |
| type boolean; |
| default "false"; |
| description "Transmit ETH-ED PDUs"; |
| } |
| |
| } // container eth-ed |
| |
| container eth-vsm-grace { |
| description "Enter the eth-vsm-grace context"; |
| |
| leaf rx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP"; |
| } |
| |
| leaf tx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP"; |
| } |
| |
| } // container eth-vsm-grace |
| |
| } // container grace |
| |
| } // list mep |
| |
| } // container eth-cfm |
| |
| } // list spoke-sdp |
| |
| list mesh-sdp { |
| key "sdp-bind-id"; |
| description "Enter the mesh-sdp context"; |
| |
| 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>:<vc-id>. |
| 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 this Service SDP binding"; |
| } |
| |
| 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 status"; |
| } |
| |
| 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 bfd-template { |
| type types-sros:named-item; |
| description "BFD template associated with SDP binding"; |
| } |
| |
| 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"; |
| } |
| |
| 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 "Enable use of hash-label."; |
| description "Enter 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; |
| description "MAC filter ID"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // 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; |
| description "MAC filter ID"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // 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 "Enter the mda context"; |
| |
| 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; |
| default "255"; |
| 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 "Enable ETH CFM monitoring configuration."; |
| description "Enter 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 { |
| presence "Enable BFD liveness information."; |
| description "Enter the bfd-liveness context"; |
| |
| leaf encap { |
| type types-services:bfd-encap; |
| default "ipv4"; |
| description "BFD encapsulation used on this SDP binding"; |
| } |
| |
| } // container bfd-liveness |
| |
| 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 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 "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 for 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 context"; |
| |
| 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 multicast channel"; |
| } |
| |
| choice source-or-starg { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 address of multicast channel."; |
| } |
| |
| } // 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 "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 context"; |
| |
| 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 { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 OAM-PM Loss Measurement Message (LMM) tests"; |
| } |
| |
| leaf-list squelch-ingress-levels { |
| type uint32 { |
| range "0..7"; |
| } |
| max-elements 8; |
| description "ETH-CFM PDUs to be silently discarded"; |
| } |
| |
| 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 which to create an individual profile-unaware counter"; |
| } |
| |
| leaf-list fc-in-profile { |
| type types-eth-cfm:fc-type; |
| max-elements 8; |
| description "Individual counters to create for the specified Forwarding Class"; |
| } |
| |
| } // container collect-lmm-fc-stats |
| |
| list mep { |
| key "md-admin-name ma-admin-name mep-id"; |
| description "Enter the mep context"; |
| |
| 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 ma-admin-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-eth-cfm:admin-name; |
| } |
| description "Unique association name"; |
| } |
| |
| 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 "Maintenance association end point 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 "Additional octets inserted into CCM PDU for data TLV padding"; |
| } |
| |
| leaf lbm-svc-act-responder { |
| type boolean; |
| default "false"; |
| description "Process service activation streams encapsulated in ETH-CFM request Loopback Message"; |
| } |
| |
| leaf one-way-delay-threshold { |
| type uint32 { |
| range "0..600"; |
| } |
| units "seconds"; |
| default "3"; |
| description "Threshold 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 to expire before a Fault Notification Generation (FNG) alarm"; |
| } |
| |
| leaf fng-reset-time { |
| type int32 { |
| range "250|500|1000"; |
| } |
| units "centiseconds"; |
| description "Time to expire before a Fault Notification Generation (FNG) alarm is reset"; |
| } |
| |
| } // container alarm-notification |
| |
| container ais { |
| presence |
| "The generation and reception of Alarm Indication Signal (AIS) |
| message parameters"; |
| description "Enter 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 "The reception of Client Signal Fail (CSF) message parameters"; |
| description "Enter 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 "Enable/disable eth-test functionality on MEP."; |
| description "Enter the eth-test context"; |
| |
| leaf bit-error-threshold { |
| type uint32 { |
| range "0..11840"; |
| } |
| units "bit errors"; |
| default "1"; |
| description "Lowest priority defect threshold for the bit error trap to generate a 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 "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window"; |
| } |
| |
| 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 PDUs"; |
| } |
| |
| leaf tx-eth-ed { |
| type boolean; |
| default "false"; |
| description "Transmit ETH-ED PDUs"; |
| } |
| |
| } // container eth-ed |
| |
| container eth-vsm-grace { |
| description "Enter the eth-vsm-grace context"; |
| |
| leaf rx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP"; |
| } |
| |
| leaf tx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP"; |
| } |
| |
| } // container eth-vsm-grace |
| |
| } // container grace |
| |
| } // list mep |
| |
| } // container eth-cfm |
| |
| } // list mesh-sdp |
| |
| list bgp-mh-site { |
| key "site-name"; |
| description "Enter the bgp-mh-site context"; |
| |
| 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 "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 context"; |
| |
| 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 eth-ring { |
| type uint32 { |
| range "0..128"; |
| } |
| sros-ext:immutable; |
| description "Ethernet ring operation"; |
| } |
| |
| 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 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 "Ingress 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 context"; |
| |
| 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 "kilobps"; |
| description "CBS"; |
| } |
| |
| leaf mbs { |
| type union { |
| type types-qos:bytes { |
| range "0..1073741824"; |
| } |
| type enumeration { |
| enum "auto" { value -1; } |
| } |
| } |
| 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 context"; |
| |
| 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 "Apply a policer control policy override."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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; |
| description "MAC filter identifier"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter identifier"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // container filter |
| |
| container 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 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 { |
| description "Enter the hsmda-queues context"; |
| |
| leaf secondary-shaper { |
| type types-sros:named-item; |
| description "Secondary shaper for the HSMDA queue"; |
| } |
| |
| leaf packet-byte-offset { |
| type types-services:egress-hsmda-queue-packet-byte-offset; |
| description "Packet byte offset for HSMDA queue"; |
| } |
| |
| leaf wrr-policy { |
| type types-sros:named-item; |
| description "WRR policy for the HSMDA queue"; |
| } |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 HSMDA queue ID"; |
| } |
| |
| leaf mbs { |
| type types-qos:hsmda-queue-burst-size-override; |
| units "bytes"; |
| description "Buffer space allowed for the queue"; |
| } |
| |
| leaf rate { |
| type types-qos:hsmda-queue-pir-rate-override; |
| description "Administrative PIR rate."; |
| } |
| |
| leaf slope-policy { |
| 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 { |
| 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 context"; |
| |
| 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 |
| "Encapsulation overhead, in centipercent, used to |
| translate packet-based rate to frame-based rate and vice versa."; |
| } |
| |
| 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 "kilobytes"; |
| description "MBS"; |
| } |
| |
| leaf monitor-depth { |
| type boolean; |
| default "false"; |
| description "Monitor queue depth"; |
| } |
| |
| 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."; |
| } |
| |
| 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 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 context"; |
| |
| 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 context"; |
| |
| 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 "Apply a policer control policy override."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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 "Attach an egress vlan-qos-policy."; |
| |
| leaf policy-name { |
| type types-qos:qos-policy-name; |
| description "Egress vlan-qos-policy name"; |
| } |
| |
| } // container vlan-qos-policy |
| |
| container egress-remark-policy { |
| description "Attach an egress-remark-policy."; |
| |
| 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; |
| description "MAC filter identifier"; |
| } |
| |
| leaf ip { |
| type types-filter:filter-name; |
| description "IP filter identifier"; |
| } |
| |
| leaf ipv6 { |
| type types-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 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 "Enable ETH CFM monitoring configuration."; |
| description "Enter 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 "Configure per-link-hash information."; |
| |
| leaf class { |
| type types-services:sap-lag-per-link-hash-class; |
| default "1"; |
| description "Configure per-link-hash class."; |
| } |
| |
| leaf weight { |
| type types-services:sap-lag-per-link-hash-weight; |
| default "1"; |
| description "Configure per-link-hash weight."; |
| } |
| |
| } // container per-link-hash |
| |
| } // container lag |
| |
| container etree-root-leaf-tag { |
| presence "Enable E-tree root leaf tag status."; |
| description "Enter 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 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 "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 for 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 while calculating Multicast CAC constraints"; |
| } |
| |
| list level { |
| key "level-id"; |
| description "Enter the level context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Bandwidth available for this level"; |
| } |
| |
| } // list level |
| |
| list number-down { |
| key "number-lag-port-down"; |
| description "Enter the number-down context"; |
| |
| 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; |
| mandatory true; |
| description "Level associated with the number of LAG ports that are down"; |
| } |
| |
| } // 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 context"; |
| |
| 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 multicast channel"; |
| } |
| |
| choice source-or-starg { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 address of multicast channel."; |
| } |
| |
| } // 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 "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 context"; |
| |
| 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 { |
| mandatory true; |
| case source { |
| |
| list source { |
| key "source-address"; |
| description "Enter the source context"; |
| |
| 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 "Enable/disable spanning-tree-protocol"; |
| } |
| |
| 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 "Enable L2PT termination on managed VLANs"; |
| description "Enter 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 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 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 l2tpv3-session { |
| presence "Enable L2TPv3 Session information."; |
| description "Enter the l2tpv3-session context"; |
| |
| leaf admin-state { |
| type types-sros:admin-state; |
| default "disable"; |
| description "Adminstrative state of the entry."; |
| } |
| |
| 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 "Enable/disable 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 "Add/remove a text description for DHCP."; |
| } |
| |
| 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 "What to do with 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 ascii-tuple in the option."; |
| } |
| |
| } |
| case vlan-ascii-tuple { |
| |
| leaf vlan-ascii-tuple { |
| type empty; |
| description "Use vlan-ascii-tuple in the option."; |
| } |
| |
| } |
| 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 MAC address in the option."; |
| } |
| |
| } |
| case ascii-string { |
| |
| leaf ascii-string { |
| type types-sros:string-not-all-spaces { |
| length "1..32"; |
| } |
| description "Use user-defined ASCII string in the option."; |
| } |
| |
| } |
| 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 Nokia vendor specific suboption."; |
| } |
| |
| leaf client-mac-address { |
| type boolean; |
| default "false"; |
| description "Send the MAC address in the Nokia vendor specific suboption."; |
| } |
| |
| leaf service-id { |
| type boolean; |
| default "false"; |
| description "Send the service ID in the Nokia vendor specific suboption."; |
| } |
| |
| 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 "Send a user-defined string in the Nokia vendor specific suboption."; |
| } |
| |
| } // 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 context"; |
| |
| 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 "Subscriber ID policy name"; |
| } |
| |
| } |
| } |
| } // 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 "true"; |
| description "Enter the non-sub-traffic context"; |
| |
| leaf sub-profile { |
| type types-sros:external-named-item; |
| mandatory true; |
| description "Subscriber IDprofile applied for all non-subscriber traffic"; |
| } |
| |
| leaf sla-profile { |
| type types-sros:external-named-item; |
| 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 OAM-PM Loss Measurement Message (LMM) tests"; |
| } |
| |
| leaf-list squelch-ingress-levels { |
| type uint32 { |
| range "0..7"; |
| } |
| max-elements 8; |
| description "ETH-CFM PDUs to be silently discarded"; |
| } |
| |
| 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 which to create an individual profile-unaware counter"; |
| } |
| |
| leaf-list fc-in-profile { |
| type types-eth-cfm:fc-type; |
| max-elements 8; |
| description "Individual counters to create for the specified Forwarding Class"; |
| } |
| |
| } // container collect-lmm-fc-stats |
| |
| list mep { |
| key "md-admin-name ma-admin-name mep-id"; |
| description "Enter the mep context"; |
| |
| 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 ma-admin-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-eth-cfm:admin-name; |
| } |
| description "Unique association name"; |
| } |
| |
| 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 "Maintenance association end point 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 "Additional octets inserted into CCM PDU for data TLV padding"; |
| } |
| |
| leaf lbm-svc-act-responder { |
| type boolean; |
| default "false"; |
| description "Process service activation streams encapsulated in ETH-CFM request Loopback Message"; |
| } |
| |
| leaf one-way-delay-threshold { |
| type uint32 { |
| range "0..600"; |
| } |
| units "seconds"; |
| default "3"; |
| description "Threshold 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 to expire before a Fault Notification Generation (FNG) alarm"; |
| } |
| |
| leaf fng-reset-time { |
| type int32 { |
| range "250|500|1000"; |
| } |
| units "centiseconds"; |
| description "Time to expire before a Fault Notification Generation (FNG) alarm is reset"; |
| } |
| |
| } // container alarm-notification |
| |
| container ais { |
| presence |
| "The generation and reception of Alarm Indication Signal (AIS) |
| message parameters"; |
| description "Enter 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 "The reception of Client Signal Fail (CSF) message parameters"; |
| description "Enter 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 "Enable/disable eth-test functionality on MEP."; |
| description "Enter the eth-test context"; |
| |
| leaf bit-error-threshold { |
| type uint32 { |
| range "0..11840"; |
| } |
| units "bit errors"; |
| default "1"; |
| description "Lowest priority defect threshold for the bit error trap to generate a 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 "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window"; |
| } |
| |
| 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 PDUs"; |
| } |
| |
| leaf tx-eth-ed { |
| type boolean; |
| default "false"; |
| description "Transmit ETH-ED PDUs"; |
| } |
| |
| } // container eth-ed |
| |
| container eth-vsm-grace { |
| description "Enter the eth-vsm-grace context"; |
| |
| leaf rx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP"; |
| } |
| |
| leaf tx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP"; |
| } |
| |
| } // container eth-vsm-grace |
| |
| } // container grace |
| |
| } // list mep |
| |
| } // container eth-cfm |
| |
| container mc-ring { |
| presence "Prepare SAP for use in MC-ring"; |
| description "Enter the mc-ring context"; |
| |
| leaf ring-node { |
| type types-sros:named-item; |
| mandatory true; |
| description "Name for the ring node associated with this SAP"; |
| } |
| |
| } // container mc-ring |
| |
| } // list sap |
| |
| list capture-sap { |
| key "sap-id"; |
| description "Enter the capture-sap context"; |
| |
| 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; |
| description "MAC filter identifier"; |
| } |
| |
| } // 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 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 "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"; |
| } |
| |
| 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 context"; |
| |
| 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 down delay only when interface is configured or after reboot"; |
| } |
| |
| } // container down |
| |
| } // container ipv4 |
| |
| } // container hold-time |
| |
| container ipv4 { |
| description "Enter the ipv4 context"; |
| |
| container primary { |
| presence "Primary IPv4 address for this router interface."; |
| description "Enter the primary context"; |
| |
| leaf address { |
| type types-sros:ipv4-address; |
| mandatory true; |
| description "IPv4 address for a VPLS interface"; |
| } |
| |
| leaf prefix-length { |
| type uint32 { |
| range "0..32"; |
| } |
| mandatory true; |
| 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 context"; |
| |
| 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; |
| mandatory true; |
| 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"; |
| } |
| |
| leaf sap-template { |
| type types-sros:named-item; |
| description "Template used when creating internal SAPs towards ISAs"; |
| } |
| |
| } // 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 context"; |
| |
| 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 context"; |
| |
| 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 |
| |
| } // list vpls |
| |
| list vprn { |
| key "service-name"; |
| description "Enter the vprn context"; |
| |
| leaf service-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-services:service-name; |
| } |
| description "Name of the service"; |
| } |
| |
| container aggregates { |
| description "Enter the aggregates context"; |
| |
| list aggregate { |
| key "ip-prefix"; |
| description "Enter the aggregate context"; |
| |
| 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 aggregation"; |
| } |
| |
| leaf as-set { |
| type boolean; |
| default "false"; |
| description "Allow aggregate route as an AS-SET option"; |
| } |
| |
| leaf-list community { |
| type types-sros:community; |
| max-elements 12; |
| ordered-by user; |
| description "Community name that is added to aggregate route"; |
| } |
| |
| leaf description { |
| type types-sros:description; |
| description "Text description"; |
| } |
| |
| leaf summary-only { |
| type boolean; |
| default "false"; |
| description "Advertise only the aggregate route and not the specific routes that make up the aggregate"; |
| } |
| |
| leaf local-preference { |
| type int64 { |
| range "0..4294967295"; |
| } |
| description "Default local preference if aggregate route is exported and advertised to BGP peers"; |
| } |
| |
| choice next-hop { |
| case blackhole { |
| |
| container blackhole { |
| presence "blackhole"; |
| description "Enter the blackhole context"; |
| |
| leaf generate-icmp { |
| type boolean; |
| default "false"; |
| description "Send ICMP unreachable messages when packets match an aggregate route with black-hole next-hop"; |
| } |
| |
| } // container blackhole |
| |
| } |
| case indirect { |
| |
| leaf indirect { |
| type types-sros:ip-unicast-address; |
| sros-ext:immutable; |
| description "Address of indirect next hop"; |
| } |
| |
| } |
| } |
| container aggregator { |
| description "Enter the aggregator context"; |
| |
| leaf as-number { |
| type uint32 { |
| range "1..max"; |
| } |
| description "Aggregator Autonomous System Number (ASN)"; |
| } |
| |
| leaf address { |
| type types-sros:ipv4-unicast-address; |
| description "Aggregator IP address"; |
| } |
| |
| } // container aggregator |
| |
| } // list aggregate |
| |
| } // container aggregates |
| |
| container bgp { |
| presence "Enable BGP for VPRN services"; |
| description "Enter the bgp context"; |
| |
| list group { |
| key "group-name"; |
| description "Enter the group context"; |
| |
| leaf group-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-sros:named-item; |
| } |
| description "BGP peer group"; |
| } |
| |
| list prefix-limit { |
| key "family"; |
| description "Enter the prefix-limit context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Specifies the maximum number of routes that can be learned from this peer."; |
| } |
| |
| leaf log-only { |
| type boolean; |
| default "false"; |
| description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session"; |
| } |
| |
| leaf threshold { |
| type uint32 { |
| range "1..100"; |
| } |
| default "90"; |
| description "Threshold value that triggers a warning message"; |
| } |
| |
| leaf idle-timeout { |
| type int32 { |
| range "1..1024"; |
| } |
| description "Time that BGP peering remains idle before reconnecting to peers"; |
| } |
| |
| leaf post-import { |
| type boolean; |
| default "false"; |
| description "Apply prefix limit only to number of routes accepted by import policies"; |
| } |
| |
| } // list prefix-limit |
| |
| } // list group |
| |
| list neighbor { |
| key "ip-address"; |
| description "Enter the neighbor context"; |
| |
| 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"; |
| } |
| |
| list prefix-limit { |
| key "family"; |
| description "Enter the prefix-limit context"; |
| |
| 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"; |
| } |
| mandatory true; |
| description "Specifies the maximum number of routes that can be learned from this peer."; |
| } |
| |
| leaf log-only { |
| type boolean; |
| default "false"; |
| description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session"; |
| } |
| |
| leaf threshold { |
| type uint32 { |
| range "1..100"; |
| } |
| default "90"; |
| description "Threshold value that triggers a warning message"; |
| } |
| |
| leaf idle-timeout { |
| type int32 { |
| range "1..1024"; |
| } |
| description "Time that BGP peering remains idle before reconnecting to peers"; |
| } |
| |
| leaf post-import { |
| type boolean; |
| default "false"; |
| description "Apply prefix limit only to number of routes accepted by import policies"; |
| } |
| |
| } // list prefix-limit |
| |
| } // list neighbor |
| |
| } // container bgp |
| |
| list interface { |
| key "interface-name"; |
| description "Enter the interface context"; |
| |
| 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"; |
| } |
| |
| list sap { |
| key "sap-id"; |
| max-elements 1; |
| description "Enter the sap context"; |
| |
| 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 "Ingress 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 context"; |
| |
| 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 "kilobps"; |
| description "CBS"; |
| } |
| |
| leaf mbs { |
| type union { |
| type types-qos:bytes { |
| range "0..1073741824"; |
| } |
| type enumeration { |
| enum "auto" { value -1; } |
| } |
| } |
| 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 context"; |
| |
| 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 "Apply a policer control policy override."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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; |
| description "IP filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-filter:filter-name; |
| description "IPv6 filter identifier"; |
| } |
| |
| } // container filter |
| |
| } // 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 { |
| description "Enter the hsmda-queues context"; |
| |
| leaf secondary-shaper { |
| type types-sros:named-item; |
| description "Secondary shaper for the HSMDA queue"; |
| } |
| |
| leaf packet-byte-offset { |
| type types-services:egress-hsmda-queue-packet-byte-offset; |
| description "Packet byte offset for HSMDA queue"; |
| } |
| |
| leaf wrr-policy { |
| type types-sros:named-item; |
| description "WRR policy for the HSMDA queue"; |
| } |
| |
| list queue { |
| key "queue-id"; |
| description "Enter the queue context"; |
| |
| 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 HSMDA queue ID"; |
| } |
| |
| leaf mbs { |
| type types-qos:hsmda-queue-burst-size-override; |
| units "bytes"; |
| description "Buffer space allowed for the queue"; |
| } |
| |
| leaf rate { |
| type types-qos:hsmda-queue-pir-rate-override; |
| description "Administrative PIR rate."; |
| } |
| |
| leaf slope-policy { |
| 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 { |
| 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 context"; |
| |
| 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 |
| "Encapsulation overhead, in centipercent, used to |
| translate packet-based rate to frame-based rate and vice versa."; |
| } |
| |
| 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 "kilobytes"; |
| description "MBS"; |
| } |
| |
| leaf monitor-depth { |
| type boolean; |
| default "false"; |
| description "Monitor queue depth"; |
| } |
| |
| 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."; |
| } |
| |
| 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 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 context"; |
| |
| 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 context"; |
| |
| 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 "Apply a policer control policy override."; |
| description "Enter 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 context"; |
| |
| 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 context"; |
| |
| 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 "Attach an egress vlan-qos-policy."; |
| |
| leaf policy-name { |
| type types-qos:qos-policy-name; |
| description "Egress vlan-qos-policy name"; |
| } |
| |
| } // container vlan-qos-policy |
| |
| container egress-remark-policy { |
| description "Attach an egress-remark-policy."; |
| |
| 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; |
| description "MAC filter ID"; |
| } |
| |
| leaf ipv6 { |
| type types-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 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 "Enable ETH CFM monitoring configuration."; |
| description "Enter 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 "Configure per-link-hash information."; |
| |
| leaf class { |
| type types-services:sap-lag-per-link-hash-class; |
| default "1"; |
| description "Configure per-link-hash class."; |
| } |
| |
| leaf weight { |
| type types-services:sap-lag-per-link-hash-weight; |
| default "1"; |
| description "Configure per-link-hash weight."; |
| } |
| |
| } // 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 |
| "Enable/disable the collection of statistics for OAM-PM |
| Loss Measurement Message (LMM) tests "; |
| } |
| |
| leaf-list squelch-ingress-levels { |
| type uint32 { |
| range "0..7"; |
| } |
| max-elements 8; |
| description "ETH-CFM PDUs to be 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 which to create an individual profile-unaware counter"; |
| } |
| |
| leaf-list fc-in-profile { |
| type types-eth-cfm:fc-type; |
| max-elements 8; |
| description "Individual counters to create for the specified Forwarding Class"; |
| } |
| |
| } // container collect-lmm-fc-stats |
| |
| list mep { |
| key "md-admin-name ma-admin-name mep-id"; |
| description "Enter the mep context"; |
| |
| 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 ma-admin-name { |
| type union { |
| type string { |
| length "1..64"; |
| pattern "<.*>" { |
| error-message "Config Groups Regex Pattern"; |
| } |
| } |
| type types-eth-cfm:admin-name; |
| } |
| description "Unique association name"; |
| } |
| |
| 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 "Maintenance association end point 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 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 "Additional octets inserted into CCM PDU for data TLV padding"; |
| } |
| |
| leaf one-way-delay-threshold { |
| type uint32 { |
| range "0..600"; |
| } |
| units "seconds"; |
| default "3"; |
| description "Threshold 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 to expire before a Fault Notification Generation (FNG) alarm"; |
| } |
| |
| leaf fng-reset-time { |
| type int32 { |
| range "250|500|1000"; |
| } |
| units "centiseconds"; |
| description "Time to expire before a Fault Notification Generation (FNG) alarm is reset"; |
| } |
| |
| } // container alarm-notification |
| |
| container csf { |
| presence "The reception of Client Signal Fail (CSF) message parameters"; |
| description "Enter 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 "Enable/disable eth-test functionality on MEP."; |
| description "Enter the eth-test context"; |
| |
| leaf bit-error-threshold { |
| type uint32 { |
| range "0..11840"; |
| } |
| units "bit errors"; |
| default "1"; |
| description "Lowest priority defect threshold for the bit error trap to generate a 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 "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window"; |
| } |
| |
| 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 PDUs"; |
| } |
| |
| leaf tx-eth-ed { |
| type boolean; |
| default "false"; |
| description "Transmit ETH-ED PDUs"; |
| } |
| |
| } // container eth-ed |
| |
| container eth-vsm-grace { |
| description "Enter the eth-vsm-grace context"; |
| |
| leaf rx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP"; |
| } |
| |
| leaf tx-eth-vsm-grace { |
| type boolean; |
| default "true"; |
| description "Allow the transmission of the Nokia ETH-CFM Grace PDU 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 context"; |
| |
| 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"; |
| default "use-tunnel-group-setting"; |
| 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; |
| default "enable"; |
| description "Administrative state of 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; |
| default "disable"; |
| 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 "Enter the dest-ip context"; |
| |
| 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 context"; |
| |
| 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."; |
| } |
| |
| container default-secure-service { |
| presence "The default security service used by this IPsec gateway."; |
| description "Enter the default-secure-service context"; |
| |
| leaf service-name { |
| type types-services:service-name; |
| description "The name of the default security service used by this IPsec gateway."; |
| } |
| |
| 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 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:ipv6-unicast-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 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 context"; |
| |
| 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 interface |
| |
| } // list vprn |
| |
| } // container service |
| |
| } // list group |
| |
| } // container groups |
| |
| } // grouping conf-groups |
| |
| } |