blob: a92637b5cd321e7a38ad2a0f6eb89963d3307ba1 [file] [log] [blame]
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
}