blob: a92637b5cd321e7a38ad2a0f6eb89963d3307ba1 [file] [log] [blame]
niamhcore49a609c2021-04-07 11:35:19 +01001submodule nokia-conf-groups {
2
3 yang-version "1.1";
4
5 belongs-to nokia-conf { prefix "conf"; }
6
7 import ietf-yang-types { prefix "yang"; }
8 import nokia-sros-yang-extensions { prefix "sros-ext"; }
9 import nokia-types-bgp { prefix "types-bgp"; }
10 import nokia-types-card { prefix "types-card"; }
11 import nokia-types-cellular { prefix "types-cellular"; }
12 import nokia-types-cflowd { prefix "types-cflowd"; }
13 import nokia-types-diameter { prefix "types-diam"; }
14 import nokia-types-eth-cfm { prefix "types-eth-cfm"; }
15 import nokia-types-filter { prefix "types-filter"; }
16 import nokia-types-igmp { prefix "types-igmp"; }
17 import nokia-types-igp { prefix "types-igp"; }
18 import nokia-types-ipsec { prefix "types-ipsec"; }
19 import nokia-types-isa { prefix "types-isa"; }
20 import nokia-types-isis { prefix "types-isis"; }
21 import nokia-types-l2tp { prefix "types-l2tp"; }
22 import nokia-types-lldp { prefix "types-lldp"; }
23 import nokia-types-log { prefix "types-log"; }
24 import nokia-types-mcast-cac { prefix "types-mcast-cac"; }
25 import nokia-types-mpls { prefix "types-mpls"; }
26 import nokia-types-nat { prefix "types-nat"; }
27 import nokia-types-oam { prefix "types-oam"; }
28 import nokia-types-port { prefix "types-port"; }
29 import nokia-types-ppp { prefix "types-ppp"; }
30 import nokia-types-ptp { prefix "types-ptp"; }
31 import nokia-types-qos { prefix "types-qos"; }
32 import nokia-types-router { prefix "types-router"; }
33 import nokia-types-rsvp { prefix "types-rsvp"; }
34 import nokia-types-security { prefix "types-security"; }
35 import nokia-types-services { prefix "types-services"; }
36 import nokia-types-sros { prefix "types-sros"; }
37 import nokia-types-subscriber-mgmt { prefix "types-submgt"; }
38 import nokia-types-system { prefix "types-system"; }
39 import nokia-types-wlangw { prefix "types-wlangw"; }
40
41
42 sros-ext:sros-major-release "rel19";
43
44 organization "Nokia";
45
46 contact
47 "Nokia SR OS Support
48 Web: <http://www.nokia.com>";
49
50 description
51 "Nokia YANG Data model to configure Configuration groups on SR OS based routers.
52
53 Copyright 2016 Nokia. All rights reserved. Reproduction of this document
54 is authorized on the condition that the foregoing copyright notice is included.
55
56 This nokia-conf-groups YANG module embodies Nokia's proprietary
57 intellectual property. Nokia retains all title and ownership in the
58 specification, including any revisions.
59
60 Nokia grants all interested parties a non-exclusive license to use
61 and distribute an unmodified copy of this specification in connection with
62 management of Nokia products, and without fee, provided this
63 copyright notice and license appear on all copies.
64
65 This specification is supplied `as is', and Nokia makes no warranty,
66 either express or implied, as to the use, operation, condition, or performance
67 of the specification.";
68
69 revision "2019-01-23";
70
71 grouping conf-groups {
72 container groups {
73 description "Enter the groups context";
74
75 list group {
76 key "name";
77 max-elements 64;
78 description "Enter the group context";
79
80 leaf name {
81 type types-sros:named-item-64;
82 description "The name of this configuration group.";
83 }
84
85 list card {
86 key "slot-number";
87 description "Enter the card context";
88
89 leaf slot-number {
90 type union {
91 type string {
92 length "1..64";
93 pattern "<.*>" {
94 error-message "Config Groups Regex Pattern";
95 }
96 }
97 type types-card:card-slot;
98 }
99 description "IOM slot within a chassis";
100 }
101
102 list mda {
103 key "mda-slot";
104 description "Enter the mda context";
105
106 leaf mda-slot {
107 type union {
108 type string {
109 length "1..64";
110 pattern "<.*>" {
111 error-message "Config Groups Regex Pattern";
112 }
113 }
114 type uint32 {
115 range "1..6";
116 }
117 }
118 description "MDA slot";
119 }
120
121 container network {
122 description "Enter the network context";
123
124 container ingress {
125 description "Enter the ingress context";
126
127 leaf queue-policy {
128 status obsolete;
129 type types-sros:named-item;
130 description "Network-queue policy";
131 }
132
133 list pool {
134 status obsolete;
135 key "name";
136 description "Enter the pool context";
137
138 leaf name {
139 status obsolete;
140 type union {
141 type string {
142 length "1..64";
143 pattern "<.*>" {
144 error-message "Config Groups Regex Pattern";
145 }
146 }
147 type types-sros:named-item;
148 }
149 description "Unique pool name for MDA";
150 }
151
152 leaf amber-alarm-threshold {
153 status obsolete;
154 type uint32 {
155 range "1..1000";
156 }
157 units "percent";
158 description "Configure amber alarm threshold allowed on over-subscription.";
159 }
160
161 leaf red-alarm-threshold {
162 status obsolete;
163 type uint32 {
164 range "1..1000";
165 }
166 units "percent";
167 description "Configure red alarm threshold allowed on over-subscription.";
168 }
169
170 leaf slope-policy {
171 status obsolete;
172 type types-sros:named-item;
173 description "Configure the slope policy.";
174 }
175
176 container resv-cbs {
177 status obsolete;
178 description "Enter the resv-cbs context";
179
180 leaf cbs {
181 status obsolete;
182 type int32 {
183 range "0..100";
184 }
185 units "percent";
186 description
187 "Configure the percentage of pool size reserved for CBS.
188
189 For network, the default value is computed as the sum of the
190 CBS request by the entities using the pool.
191
192 For access, the default value is 30%.";
193 }
194
195 container amber-alarm-action {
196 status obsolete;
197 description "Enter the amber-alarm-action context";
198
199 leaf step {
200 status obsolete;
201 type uint32 {
202 range "1..100";
203 }
204 units "percent";
205 description
206 "Configure the step-size percentage for the reserved CBS size of the
207 pool.
208
209 When set to a value of zero (0), the adaptive CBS sizing is disabled.
210
211 To enable adaptive CBS sizing, both this leaf and amber-alarm-action/max
212 must be set to non-default values.
213
214 Adaptive CBS sizing can only be enabled when resv-cbs is non-default.";
215 }
216
217 leaf max {
218 status obsolete;
219 type uint32 {
220 range "1..100";
221 }
222 units "percent";
223 description
224 "Configure the maximum percentage for the reserved CBS size of the pool.
225
226 When set to a value of zero (0), the adaptive CBS sizing is disabled.
227
228 To enable adaptive CBS sizing, both this leaf and amber-alarm-action/step
229 must be set to non-default values.
230
231 Adaptive CBS sizing can only be enabled when resv-cbs is non-default.
232
233 This value must not be more than resv-cbs.";
234 }
235
236 } // container amber-alarm-action
237
238 } // container resv-cbs
239
240 } // list pool
241
242 } // container ingress
243
244 } // container network
245
246 } // list mda
247
248 list fp {
249 key "fp-number";
250 description "Enter the fp context";
251
252 leaf fp-number {
253 type union {
254 type string {
255 length "1..64";
256 pattern "<.*>" {
257 error-message "Config Groups Regex Pattern";
258 }
259 }
260 type uint32 {
261 range "1..8";
262 }
263 }
264 description "Forwarding plane within a specific IOM card";
265 }
266
267 leaf ingress-buffer-allocation {
268 type decimal64 {
269 range "20.00..80.00";
270 fraction-digits 2;
271 }
272 units "percent";
273 default "50.00";
274 description "Ingress buffer pool percentage for forwarding plane";
275 }
276
277 leaf init-extract-prio-mode {
278 type enumeration {
279 enum "uniform" { value 1; }
280 enum "l3-classify" { value 2; }
281 }
282 default "uniform";
283 description "Scheme to select initial drop priority of extracted control plane traffic";
284 }
285
286 leaf policy-accounting {
287 type uint32 {
288 range "1000..128000";
289 }
290 description "Number of stats resources for policy accounting for the forwarding plane";
291 }
292
293 leaf stable-pool-sizing {
294 type boolean;
295 default "false";
296 description "Use a stable buffer pool allocation environment for all default port buffer pools on an FP";
297 }
298
299 container dist-cpu-protection {
300 description "Enter the dist-cpu-protection context";
301
302 leaf dynamic-enforcement-policer-pool {
303 type uint32 {
304 range "1000..32000";
305 }
306 description "Number of policers reserved for use as dynamic enforcement policers on forwarding plane";
307 }
308
309 } // container dist-cpu-protection
310
311 container egress {
312 description "Enter the egress context";
313
314 leaf hs-fixed-high-thresh-delta {
315 type int32 {
316 range "0..65536";
317 }
318 description "High threshold delta on forwarding plane";
319 }
320
321 leaf hs-pool-policy {
322 type types-sros:named-item;
323 description "HS pool policy";
324 }
325
326 container wred-queue-control {
327 description "Enter the wred-queue-control context";
328
329 leaf admin-state {
330 type types-sros:admin-state;
331 default "disable";
332 description "Administrative state of WRED queue control";
333 }
334
335 leaf buffer-allocation {
336 type decimal64 {
337 range "0.01..99.99";
338 fraction-digits 2;
339 }
340 units "percent";
341 default "25.00";
342 description
343 "Configure the WRED queue aggregate buffer allocation
344 which will be set aside for WRED queue buffer pools";
345 }
346
347 leaf reserved-cbs {
348 type decimal64 {
349 range "0.01..99.99";
350 fraction-digits 2;
351 }
352 units "percent";
353 default "25.00";
354 description
355 "Configure the buffers within the WRED pool that will
356 be set aside for WRED queues operating within their configured
357 CBS thresholds.";
358 }
359
360 leaf slope-policy {
361 type types-sros:named-item;
362 description "Egress WRED queue control slope policy for forwarding plane";
363 }
364
365 } // container wred-queue-control
366
367 } // container egress
368
369 container hi-bw-mcast-src {
370 presence "Enable/disable high bandwidth multicast source functionality.";
371 description "Enter the hi-bw-mcast-src context";
372
373 leaf alarm {
374 type boolean;
375 default "false";
376 description "Raise an alarm when more than one high bandwidth multicast traffic taps share a plane";
377 }
378
379 leaf group {
380 type uint32 {
381 range "0..32";
382 }
383 default "0";
384 description "Logical MSFP group of the MDA";
385 }
386
387 leaf default-paths-only {
388 type boolean;
389 default "false";
390 description "Allocate only the two default paths (one high priority and one low priority) to dedicated MSFPs";
391 }
392
393 } // container hi-bw-mcast-src
394
395 container ingress {
396 description "Enter the ingress context";
397
398 container access {
399 description "Enter the access context";
400
401 list queue-group {
402 key "queue-group-name instance-id";
403 description "Enter the queue-group context";
404
405 leaf queue-group-name {
406 type union {
407 type string {
408 length "1..64";
409 pattern "<.*>" {
410 error-message "Config Groups Regex Pattern";
411 }
412 }
413 type types-sros:named-item;
414 }
415 description "Queue group name";
416 }
417
418 leaf instance-id {
419 type union {
420 type string {
421 length "1..64";
422 pattern "<.*>" {
423 error-message "Config Groups Regex Pattern";
424 }
425 }
426 type uint16 {
427 range "1..65535";
428 }
429 }
430 description "Instance ID";
431 }
432
433 leaf accounting-policy {
434 type types-log:log-policy-id;
435 description "Accounting policy for the FP ingress queue group";
436 }
437
438 leaf collect-stats {
439 type boolean;
440 default "false";
441 description "Collect statistics on FP ingress queue group";
442 }
443
444 leaf description {
445 type types-sros:description;
446 description "Text description";
447 }
448
449 container policer-control-policy {
450 description "Enter the policer-control-policy context";
451
452 leaf policy-name {
453 type types-sros:named-item;
454 description "Policer control policy";
455 }
456
457 container overrides {
458 presence "Enable policer control policy overrides.";
459 description "Enter the overrides context";
460
461 leaf max-rate {
462 type types-qos:queue-pir-rate-override;
463 units "kilobps";
464 description "Maximum rate override";
465 }
466
467 container priority-mbs-thresholds {
468 description "Enter the priority-mbs-thresholds context";
469
470 leaf min-threshold-separation {
471 type types-qos:policer-burst-size-override;
472 units "bytes";
473 description "Minimum threshold separation override";
474 }
475
476 list priority {
477 key "level";
478 description "Enter the priority context";
479
480 leaf level {
481 type union {
482 type string {
483 length "1..64";
484 pattern "<.*>" {
485 error-message "Config Groups Regex Pattern";
486 }
487 }
488 type types-qos:hierarchy-level;
489 }
490 description "Priority level";
491 }
492
493 leaf mbs-contribution {
494 type types-qos:policer-burst-size-override;
495 units "bytes";
496 description "MBS contribution size override";
497 }
498
499 } // list priority
500
501 } // container priority-mbs-thresholds
502
503 } // container overrides
504
505 } // container policer-control-policy
506
507 container policer-overrides {
508 description "Enter the policer-overrides context";
509
510 list policer {
511 key "policer-id";
512 description "Enter the policer context";
513
514 leaf policer-id {
515 type union {
516 type string {
517 length "1..64";
518 pattern "<.*>" {
519 error-message "Config Groups Regex Pattern";
520 }
521 }
522 type types-qos:ingress-policer-id {
523 range "1..32";
524 }
525 }
526 description "Policer identifier";
527 }
528
529 leaf cbs {
530 type types-qos:policer-burst-size-override;
531 units "bytes";
532 description "CBS parameter override";
533 }
534
535 leaf mbs {
536 type types-qos:policer-burst-size-override;
537 units "bytes";
538 description "MBS parameter override";
539 }
540
541 leaf packet-byte-offset {
542 type types-qos:ingress-per-packet-offset-override;
543 description "Size of each packet handled by the policer";
544 }
545
546 leaf stat-mode {
547 type types-qos:ingress-policer-stat-mode;
548 description "Stat mode for the policer";
549 }
550
551 container rate {
552 description "Enter the rate context";
553
554 leaf cir {
555 type types-qos:queue-cir-rate-override;
556 description "CIR rate";
557 }
558
559 leaf pir {
560 type types-qos:queue-pir-rate-override;
561 description "PIR rate";
562 }
563
564 } // container rate
565
566 } // list policer
567
568 } // container policer-overrides
569
570 } // list queue-group
571
572 } // container access
573
574 container mcast-path-management {
575 description "Enter the mcast-path-management context";
576
577 leaf admin-state {
578 type types-sros:admin-state;
579 default "disable";
580 description "Administrative state of ingress multicast path management";
581 }
582
583 leaf bandwidth-policy {
584 type types-sros:named-item;
585 description "Bandwidth policy associated with the MDA or forwarding plane for ingress multicast path management";
586 }
587
588 } // container mcast-path-management
589
590 container network {
591 description "Enter the network context";
592
593 leaf queue-policy {
594 type types-sros:named-item;
595 description "Configure the network policy queue policy.";
596 }
597
598 list queue-group {
599 key "queue-group-name instance-id";
600 description "Enter the queue-group context";
601
602 leaf queue-group-name {
603 type union {
604 type string {
605 length "1..64";
606 pattern "<.*>" {
607 error-message "Config Groups Regex Pattern";
608 }
609 }
610 type types-sros:named-item;
611 }
612 description "Queue group name";
613 }
614
615 leaf instance-id {
616 type union {
617 type string {
618 length "1..64";
619 pattern "<.*>" {
620 error-message "Config Groups Regex Pattern";
621 }
622 }
623 type uint16 {
624 range "1..65535";
625 }
626 }
627 description "Instance ID";
628 }
629
630 leaf accounting-policy {
631 type types-log:log-policy-id;
632 description "Accounting policy for the FP ingress queue group";
633 }
634
635 leaf collect-stats {
636 type boolean;
637 default "false";
638 description "Collect statistics on FP ingress queue group";
639 }
640
641 leaf description {
642 type types-sros:description;
643 description "Text description";
644 }
645
646 container policer-control-policy {
647 description "Enter the policer-control-policy context";
648
649 leaf policy-name {
650 type types-sros:named-item;
651 description "Policer control policy";
652 }
653
654 container overrides {
655 presence "Enable policer control policy overrides.";
656 description "Enter the overrides context";
657
658 leaf max-rate {
659 type types-qos:queue-pir-rate-override;
660 units "kilobps";
661 description "Maximum rate override";
662 }
663
664 container priority-mbs-thresholds {
665 description "Enter the priority-mbs-thresholds context";
666
667 leaf min-threshold-separation {
668 type types-qos:policer-burst-size-override;
669 units "bytes";
670 description "Minimum threshold separation override";
671 }
672
673 list priority {
674 key "level";
675 description "Enter the priority context";
676
677 leaf level {
678 type union {
679 type string {
680 length "1..64";
681 pattern "<.*>" {
682 error-message "Config Groups Regex Pattern";
683 }
684 }
685 type types-qos:hierarchy-level;
686 }
687 description "Priority level";
688 }
689
690 leaf mbs-contribution {
691 type types-qos:policer-burst-size-override;
692 units "bytes";
693 description "MBS contribution size override";
694 }
695
696 } // list priority
697
698 } // container priority-mbs-thresholds
699
700 } // container overrides
701
702 } // container policer-control-policy
703
704 container policer-overrides {
705 description "Enter the policer-overrides context";
706
707 list policer {
708 key "policer-id";
709 description "Enter the policer context";
710
711 leaf policer-id {
712 type union {
713 type string {
714 length "1..64";
715 pattern "<.*>" {
716 error-message "Config Groups Regex Pattern";
717 }
718 }
719 type types-qos:ingress-policer-id {
720 range "1..32";
721 }
722 }
723 description "Policer identifier";
724 }
725
726 leaf cbs {
727 type types-qos:policer-burst-size-override;
728 units "bytes";
729 description "CBS parameter override";
730 }
731
732 leaf mbs {
733 type types-qos:policer-burst-size-override;
734 units "bytes";
735 description "MBS parameter override";
736 }
737
738 leaf packet-byte-offset {
739 type types-qos:ingress-per-packet-offset-override;
740 description "Size of each packet handled by the policer";
741 }
742
743 leaf stat-mode {
744 type types-qos:ingress-policer-stat-mode;
745 description "Stat mode for the policer";
746 }
747
748 container rate {
749 description "Enter the rate context";
750
751 leaf cir {
752 type types-qos:queue-cir-rate-override;
753 description "CIR rate";
754 }
755
756 leaf pir {
757 type types-qos:queue-pir-rate-override;
758 description "PIR rate";
759 }
760
761 } // container rate
762
763 } // list policer
764
765 } // container policer-overrides
766
767 } // list queue-group
768
769 list pool {
770 key "name";
771 description "The list of FP ingress network pool parameters.";
772
773 leaf name {
774 type union {
775 type string {
776 length "1..64";
777 pattern "<.*>" {
778 error-message "Config Groups Regex Pattern";
779 }
780 }
781 type types-sros:named-item;
782 }
783 description "Specifies the unique name of the pool for the FP.";
784 }
785
786 leaf amber-alarm-threshold {
787 type uint32 {
788 range "1..1000";
789 }
790 units "percent";
791 description "Configure amber alarm threshold allowed on over-subscription.";
792 }
793
794 leaf red-alarm-threshold {
795 type uint32 {
796 range "1..1000";
797 }
798 units "percent";
799 description "Configure red alarm threshold allowed on over-subscription.";
800 }
801
802 leaf slope-policy {
803 type types-sros:named-item;
804 description "Configure the slope policy.";
805 }
806
807 container resv-cbs {
808 description "Enter the resv-cbs context";
809
810 leaf cbs {
811 type int32 {
812 range "0..100";
813 }
814 units "percent";
815 description
816 "Configure the percentage of pool size reserved for CBS.
817
818 For network, the default value is computed as the sum of the
819 CBS request by the entities using the pool.
820
821 For access, the default value is 30%.";
822 }
823
824 container amber-alarm-action {
825 description "Enter the amber-alarm-action context";
826
827 leaf step {
828 type uint32 {
829 range "1..100";
830 }
831 units "percent";
832 description
833 "Configure the step-size percentage for the reserved CBS size of the
834 pool.
835
836 When set to a value of zero (0), the adaptive CBS sizing is disabled.
837
838 To enable adaptive CBS sizing, both this leaf and amber-alarm-action/max
839 must be set to non-default values.
840
841 Adaptive CBS sizing can only be enabled when resv-cbs is non-default.";
842 }
843
844 leaf max {
845 type uint32 {
846 range "1..100";
847 }
848 units "percent";
849 description
850 "Configure the maximum percentage for the reserved CBS size of the pool.
851
852 When set to a value of zero (0), the adaptive CBS sizing is disabled.
853
854 To enable adaptive CBS sizing, both this leaf and amber-alarm-action/step
855 must be set to non-default values.
856
857 Adaptive CBS sizing can only be enabled when resv-cbs is non-default.
858
859 This value must not be more than resv-cbs.";
860 }
861
862 } // container amber-alarm-action
863
864 } // container resv-cbs
865
866 } // list pool
867
868 } // container network
869
870 } // container ingress
871
872 } // list fp
873
874 } // list card
875
876 list port {
877 key "port-id";
878 description "Enter the port context";
879
880 leaf port-id {
881 type union {
882 type string {
883 length "1..64";
884 pattern "<.*>" {
885 error-message "Config Groups Regex Pattern";
886 }
887 }
888 type types-sros:port;
889 }
890 description "Unique port ID";
891 }
892
893 container ethernet {
894 description "Enter the ethernet context";
895
896 container egress {
897 description "Enter the egress context";
898
899 leaf hs-port-pool-policy {
900 type types-sros:named-item;
901 description "HS port pool policy";
902 }
903
904 leaf hsmda-scheduler-policy {
905 type types-sros:named-item;
906 description "HSMDA scheduler policy";
907 }
908
909 leaf monitor-port-scheduler {
910 type boolean;
911 default "false";
912 description
913 "Enable/disable monitoring of egress scheduler on the Ethernet
914 port.";
915 }
916
917 leaf rate {
918 type int32 {
919 range "1..400000000";
920 }
921 units "kilobps";
922 description "Maximum egress bandwidth that this Ethernet port can receive";
923 }
924
925 leaf eth-bn-rate-changes {
926 type boolean;
927 default "false";
928 description "Receive rate changes in Ethernet Bandwidth Notification (Eth-BN) messages to update egress rate";
929 }
930
931 container port-qos-policy {
932 description "Attach an egress port-qos-policy.";
933
934 leaf policy-name {
935 type types-qos:qos-policy-name;
936 description "Port qos policy name";
937 }
938
939 } // container port-qos-policy
940
941 list expanded-secondary-shaper {
942 key "secondary-shaper-name";
943 description "Enter the expanded-secondary-shaper context";
944
945 leaf secondary-shaper-name {
946 type union {
947 type string {
948 length "1..64";
949 pattern "<.*>" {
950 error-message "Config Groups Regex Pattern";
951 }
952 }
953 type types-sros:named-item;
954 }
955 description "Name for the expanded secondary shaper";
956 }
957
958 leaf low-burst-max-class {
959 type uint32 {
960 range "1..8";
961 }
962 default "8";
963 description "Class to associate with the Ethernet egress expanded secondary shaper";
964 }
965
966 leaf monitor-threshold {
967 type types-qos:secondary-shaper-class-threshold;
968 description "Monitoring threshold for non-conformance burst";
969 }
970
971 leaf rate {
972 type types-qos:secondary-shaper-pir-rate;
973 default "max";
974 description "Rate of the expanded secondary shaper";
975 }
976
977 container aggregate-burst {
978 description "Enter the aggregate-burst context";
979
980 leaf high-burst-increase {
981 type int32 {
982 range "0..65528";
983 }
984 units "bytes";
985 description "High burst increase";
986 }
987
988 leaf low-burst-limit {
989 type types-qos:class-burst-limit;
990 units "bytes";
991 description "Low burst limit";
992 }
993
994 } // container aggregate-burst
995
996 list class {
997 key "class-number";
998 description "Enter the class context";
999
1000 leaf class-number {
1001 type union {
1002 type string {
1003 length "1..64";
1004 pattern "<.*>" {
1005 error-message "Config Groups Regex Pattern";
1006 }
1007 }
1008 type uint32 {
1009 range "1..8";
1010 }
1011 }
1012 description "Unique value of the class";
1013 }
1014
1015 leaf rate {
1016 type types-qos:secondary-shaper-pir-rate;
1017 default "max";
1018 description "Class rate";
1019 }
1020
1021 leaf monitor-threshold {
1022 type types-qos:secondary-shaper-class-threshold;
1023 description "Monitoring threshold for non-conformance burst of the class";
1024 }
1025
1026 leaf burst-limit {
1027 type types-qos:class-burst-limit;
1028 units "bytes";
1029 description "Class identifier of the low burst maximum class";
1030 }
1031
1032 } // list class
1033
1034 } // list expanded-secondary-shaper
1035
1036 container hs-scheduler-policy {
1037 description "Enter the hs-scheduler-policy context";
1038
1039 leaf policy-name {
1040 type types-sros:named-item;
1041 description "HS port pool policy";
1042 }
1043
1044 } // container hs-scheduler-policy
1045
1046 container port-scheduler-policy {
1047 description "Enter the port-scheduler-policy context";
1048
1049 leaf policy-name {
1050 type types-sros:named-item;
1051 description "Configure an egress scheduler policy.";
1052 }
1053
1054 container overrides {
1055 presence "Enable port-scheduler-overrides.";
1056 description "Enter the overrides context";
1057
1058 container max-rate {
1059 description "Enter the max-rate context";
1060
1061 choice rate-or-percent-rate {
1062 case rate {
1063
1064 leaf rate {
1065 type types-qos:sched-pir-rate;
1066 units "kilobps";
1067 default "max";
1068 description "Configure the PIR rate as a rate.";
1069 }
1070
1071 }
1072 case percent-rate {
1073
1074 leaf percent-rate {
1075 type decimal64 {
1076 range "0.01..100";
1077 fraction-digits 2;
1078 }
1079 units "percent";
1080 default "100";
1081 description "Configure the PIR rate as a percent.";
1082 }
1083
1084 }
1085 }
1086 } // container max-rate
1087
1088 list level {
1089 key "priority-level";
1090 description "Enter the level context";
1091
1092 leaf priority-level {
1093 type union {
1094 type string {
1095 length "1..64";
1096 pattern "<.*>" {
1097 error-message "Config Groups Regex Pattern";
1098 }
1099 }
1100 type uint32 {
1101 range "1..8";
1102 }
1103 }
1104 description "Specifies the priority level of the port scheduler override.";
1105 }
1106
1107 choice rate-or-percent-rate {
1108 case rate {
1109
1110 container rate {
1111 description "Enter the rate context";
1112
1113 leaf pir {
1114 type types-qos:sched-pir-rate-ovr;
1115 units "kilobps";
1116 description "Configure the PIR rate in kbps.";
1117 }
1118
1119 leaf cir {
1120 type types-qos:sched-cir-rate-ovr;
1121 units "kilobps";
1122 description "Configure the CIR rate in kbps.";
1123 }
1124
1125 } // container rate
1126
1127 }
1128 case percent-rate {
1129
1130 container percent-rate {
1131 description "Enter the percent-rate context";
1132
1133 leaf pir {
1134 type types-qos:pir-percent-override;
1135 units "percent";
1136 description "Configure the PIR rate as a percent.";
1137 }
1138
1139 leaf cir {
1140 type types-qos:cir-percent-override;
1141 units "percent";
1142 description "Configure Che CIR rate as a percent.";
1143 }
1144
1145 } // container percent-rate
1146
1147 }
1148 }
1149 } // list level
1150
1151 } // container overrides
1152
1153 } // container port-scheduler-policy
1154
1155 } // container egress
1156
1157 container network {
1158 description "Enter the network context";
1159
1160 leaf accounting-policy {
1161 type types-log:log-policy-id;
1162 description "Accounting policy that applies to the Ethernet network port";
1163 }
1164
1165 leaf collect-stats {
1166 type boolean;
1167 default "false";
1168 description "Collect statistical data on the Ethernet port";
1169 }
1170
1171 container egress {
1172 description "Enter the egress context";
1173
1174 leaf queue-policy {
1175 type types-sros:named-item;
1176 description "Configure the queue policy on the Ethernet network port.";
1177 }
1178
1179 list queue-group {
1180 key "queue-group-name instance-id";
1181 description "Enter the queue-group context";
1182
1183 leaf queue-group-name {
1184 type union {
1185 type string {
1186 length "1..64";
1187 pattern "<.*>" {
1188 error-message "Config Groups Regex Pattern";
1189 }
1190 }
1191 type types-sros:named-item;
1192 }
1193 description "Queue group name";
1194 }
1195
1196 leaf instance-id {
1197 type union {
1198 type string {
1199 length "1..64";
1200 pattern "<.*>" {
1201 error-message "Config Groups Regex Pattern";
1202 }
1203 }
1204 type uint16 {
1205 range "1..65535";
1206 }
1207 }
1208 description "Instance ID";
1209 }
1210
1211 leaf accounting-policy {
1212 type types-log:log-policy-id;
1213 description "Accounting policy for the Ethernet port egress queue group";
1214 }
1215
1216 leaf collect-stats {
1217 type boolean;
1218 default "false";
1219 description "Collect statistics on this queue group";
1220 }
1221
1222 leaf description {
1223 type types-sros:description;
1224 description "Text description";
1225 }
1226
1227 leaf hs-turbo {
1228 type boolean;
1229 default "false";
1230 description "Allow corresponding HSQ queue group queues to achieve a higher throughput";
1231 }
1232
1233 leaf policer-control-policy {
1234 type types-sros:named-item;
1235 description "Policer control policy for the QoS egress queue group";
1236 }
1237
1238 leaf scheduler-policy {
1239 type types-sros:named-item;
1240 description "Scheduler policy for the QoS egress queue group";
1241 }
1242
1243 container aggregate-rate {
1244 description "Enter the aggregate-rate context";
1245
1246 leaf queue-frame-based-accounting {
1247 type boolean;
1248 default "false";
1249 description "Enable frame-based accounting on all policers and queues associated with context";
1250 }
1251
1252 leaf limit-unused-bandwidth {
1253 type boolean;
1254 default "false";
1255 description "Specify whether to enable limit unused bandwidth.";
1256 }
1257
1258 leaf rate {
1259 type union {
1260 type uint32 {
1261 range "1..3200000000";
1262 }
1263 type enumeration {
1264 enum "max" { value -1; }
1265 }
1266 }
1267 units "kilobps";
1268 default "max";
1269 description "Specify aggregate rate limit.";
1270 }
1271
1272 } // container aggregate-rate
1273
1274 container queue-overrides {
1275 description "Enter the queue-overrides context";
1276
1277 list queue {
1278 key "queue-id";
1279 description "Enter the queue context";
1280
1281 leaf queue-id {
1282 type union {
1283 type string {
1284 length "1..64";
1285 pattern "<.*>" {
1286 error-message "Config Groups Regex Pattern";
1287 }
1288 }
1289 type types-qos:egress-queue-id;
1290 }
1291 description "HSMDA queue overrides queue ID";
1292 }
1293
1294 leaf cbs {
1295 type types-qos:burst-size-override;
1296 description "CBS rate";
1297 }
1298
1299 leaf mbs {
1300 type types-qos:queue-burst-size-override;
1301 units "bytes";
1302 description "MBS rate";
1303 }
1304
1305 leaf monitor-depth {
1306 type boolean;
1307 default "false";
1308 description "Enable queue depth monitoring";
1309 }
1310
1311 choice queue-override-rate {
1312 default "rate";
1313 case percent-rate {
1314
1315 container percent-rate {
1316 description "Enter the percent-rate context";
1317
1318 leaf cir {
1319 type types-qos:cir-percent-override;
1320 units "percent";
1321 description "CIR percent rate";
1322 }
1323
1324 leaf pir {
1325 type types-qos:pir-percent-override;
1326 units "percent";
1327 description "PIR percent rate";
1328 }
1329
1330 } // container percent-rate
1331
1332 }
1333 case rate {
1334
1335 container rate {
1336 description "Enter the rate context";
1337
1338 leaf cir {
1339 type types-qos:queue-cir-rate-override;
1340 units "kilobps";
1341 description "CIR rate";
1342 }
1343
1344 leaf pir {
1345 type types-qos:queue-pir-rate-override;
1346 units "kilobps";
1347 description "PIR rate";
1348 }
1349
1350 } // container rate
1351
1352 }
1353 }
1354 container adaptation-rule {
1355 description "Enter the adaptation-rule context";
1356
1357 leaf cir {
1358 type types-qos:adaptation-rule-override;
1359 description "Constraint used when deriving the operational CIR value";
1360 }
1361
1362 leaf pir {
1363 type types-qos:adaptation-rule-override;
1364 description "Constraint used when deriving the operational PIR value";
1365 }
1366
1367 } // container adaptation-rule
1368
1369 container drop-tail {
1370 description "Enter the drop-tail context";
1371
1372 container low {
1373 description "Enter the low context";
1374
1375 leaf percent-reduction-from-mbs {
1376 type types-qos:burst-percent-or-default-override;
1377 description "Percentage reduction from the MBS for a queue drop tail";
1378 }
1379
1380 } // container low
1381
1382 } // container drop-tail
1383
1384 } // list queue
1385
1386 } // container queue-overrides
1387
1388 } // list queue-group
1389
1390 } // container egress
1391
1392 } // container network
1393
1394 } // container ethernet
1395
1396 } // list port
1397
1398 container qos {
1399 description "Enter the qos context";
1400
1401 container md-auto-id {
1402 description "Enter the md-auto-id context";
1403
1404 container qos-policy-id-range {
1405 presence "Qos policy Id range for MD Auto assignment";
1406 description "Enter the qos-policy-id-range context";
1407
1408 leaf start {
1409 type types-qos:qos-policy-id {
1410 range "2..65535";
1411 }
1412 sros-ext:immutable;
1413 mandatory true;
1414 description "Lower value of the ID range, must be less than or equal to end value";
1415 }
1416
1417 leaf end {
1418 type types-qos:qos-policy-id {
1419 range "2..65535";
1420 }
1421 sros-ext:immutable;
1422 mandatory true;
1423 description "Upper value of the ID range, must be greater than or equal to start value";
1424 }
1425
1426 } // container qos-policy-id-range
1427
1428 } // container md-auto-id
1429
1430 list sap-ingress {
1431 key "sap-ingress-policy-name";
1432 description "Enter the sap-ingress context";
1433
1434 leaf sap-ingress-policy-name {
1435 type union {
1436 type string {
1437 length "1..64";
1438 pattern "<.*>" {
1439 error-message "Config Groups Regex Pattern";
1440 }
1441 }
1442 type types-qos:qos-policy-name;
1443 }
1444 description "Name of this SAP-ingress QoS policy";
1445 }
1446
1447 leaf policy-id {
1448 type types-qos:qos-policy-id;
1449 sros-ext:immutable;
1450 description "The sap-ingress QoS policy identifier.";
1451 }
1452
1453 leaf scope {
1454 type types-qos:item-scope;
1455 default "template";
1456 description "Scope of the policy";
1457 }
1458
1459 leaf description {
1460 type types-sros:description;
1461 description "Text description";
1462 }
1463
1464 leaf default-fc {
1465 type types-qos:sap-ingress-fc-name;
1466 description "Default forwarding class or sub forwarding class for traffic not matching specific classification";
1467 }
1468
1469 leaf default-priority {
1470 type types-qos:default-priority;
1471 default "low";
1472 description "Priority to assign to traffic ingressing as the default action queue";
1473 }
1474
1475 leaf ingress-classification-policy {
1476 type types-qos:qos-policy-name;
1477 description "Attach ingress classification policy.";
1478 }
1479
1480 container subscriber-mgmt {
1481 description "Enter the subscriber-mgmt context";
1482
1483 container pcc-rule-entry {
1484 description "Enter the pcc-rule-entry context";
1485
1486 container range {
1487 presence "true";
1488 description "Enter the range context";
1489
1490 leaf start {
1491 type types-qos:entry-id;
1492 mandatory true;
1493 description "Starting entry at which the PCC-rule IP criteria entries are shared across several hosts";
1494 }
1495
1496 leaf end {
1497 type types-qos:entry-id;
1498 mandatory true;
1499 description "Ending entry at which the PCC-rule IP criteria entries are shared across several hosts";
1500 }
1501
1502 } // container range
1503
1504 } // container pcc-rule-entry
1505
1506 container dynamic-policer {
1507 description "Enter the dynamic-policer context";
1508
1509 leaf cbs {
1510 type union {
1511 type types-qos:bytes {
1512 range "0..16777216";
1513 }
1514 type enumeration {
1515 enum "auto" { value -1; }
1516 }
1517 }
1518 units "bytes";
1519 default "auto";
1520 description "Exceed threshold of the CIR leaky bucket of this policer";
1521 }
1522
1523 leaf mbs {
1524 type union {
1525 type types-qos:bytes {
1526 range "0..16777216";
1527 }
1528 type enumeration {
1529 enum "auto" { value -1; }
1530 }
1531 }
1532 units "bytes";
1533 default "auto";
1534 description "High priority violate threshold of PIR leaky bucket of this policer";
1535 }
1536
1537 leaf packet-byte-offset {
1538 type types-qos:per-packet-offset;
1539 default "0";
1540 description "Size of each packet, handled by the policer, to be modified";
1541 }
1542
1543 leaf stat-mode {
1544 type types-qos:ingress-policer-stat-mode;
1545 default "minimal";
1546 description "Mode of statistics collected by the policer";
1547 }
1548
1549 container policer-id-range {
1550 presence "true";
1551 description "Enter the policer-id-range context";
1552
1553 leaf start {
1554 type types-qos:ingress-policer-id;
1555 mandatory true;
1556 description "Starting place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted";
1557 }
1558
1559 leaf end {
1560 type types-qos:ingress-policer-id;
1561 mandatory true;
1562 description "Ending place at which dynamic policers, required for PCC-rule IP criteria entries, will be inserted";
1563 }
1564
1565 } // container policer-id-range
1566
1567 container arbiter-parent {
1568 description "Enter the arbiter-parent context";
1569
1570 leaf arbiter-name {
1571 type types-sros:named-item;
1572 description "Arbiter to which this policer feeds";
1573 }
1574
1575 leaf level {
1576 type types-qos:hierarchy-level;
1577 default "1";
1578 description "Level of priority while feeding to the parent";
1579 }
1580
1581 leaf weight {
1582 type types-qos:weight {
1583 range "1..100";
1584 }
1585 default "1";
1586 description "Weight to be used by the arbiter for feeding this policer";
1587 }
1588
1589 } // container arbiter-parent
1590
1591 } // container dynamic-policer
1592
1593 } // container subscriber-mgmt
1594
1595 container mac-criteria {
1596 description "Enter the mac-criteria context";
1597
1598 leaf type {
1599 type types-qos:mac-criteria-type;
1600 sros-ext:immutable;
1601 default "normal";
1602 description "MAC criteria filter type";
1603 }
1604
1605 list entry {
1606 key "entry-id";
1607 description "Enter the entry context";
1608
1609 leaf entry-id {
1610 type union {
1611 type string {
1612 length "1..64";
1613 pattern "<.*>" {
1614 error-message "Config Groups Regex Pattern";
1615 }
1616 }
1617 type types-qos:entry-id;
1618 }
1619 description "Identifier for MAC match criteria and the corresponding action for a SAP-ingress policy";
1620 }
1621
1622 leaf description {
1623 type types-sros:description;
1624 description "Text description";
1625 }
1626
1627 container match {
1628 description "Enter the match context";
1629
1630 leaf frame-type {
1631 type types-qos:mac-frame-type;
1632 default "802dot3";
1633 description "Match MAC criteria for ingress SAP QoS policy";
1634 }
1635
1636 leaf etype {
1637 type types-services:etype-value;
1638 description "Ethernet type";
1639 }
1640
1641 leaf snap-pid {
1642 type int32 {
1643 range "0..65535";
1644 }
1645 description "Parameter snap-pid as MAC filter match criteria";
1646 }
1647
1648 leaf snap-oui {
1649 type enumeration {
1650 enum "zero" { value 2; }
1651 enum "non-zero" { value 3; }
1652 }
1653 description "Parameter snap-oui as MAC filter match criteria";
1654 }
1655
1656 leaf atm-vci {
1657 type types-qos:atm-vc-indentifier;
1658 description "ATM VC Identifier to match as part of the MAC match criteria";
1659 }
1660
1661 container src-mac {
1662 presence "Enable source MAC address match criteria.";
1663 description "Enter the src-mac context";
1664
1665 leaf address {
1666 type yang:mac-address;
1667 mandatory true;
1668 description "Source MAC address";
1669 }
1670
1671 leaf mask {
1672 type yang:mac-address;
1673 default "ff:ff:ff:ff:ff:ff";
1674 description "Mask for source MAC address";
1675 }
1676
1677 } // container src-mac
1678
1679 container dst-mac {
1680 presence "Enable destination MAC address match criteria.";
1681 description "Enter the dst-mac context";
1682
1683 leaf address {
1684 type yang:mac-address;
1685 mandatory true;
1686 description "Destination MAC address";
1687 }
1688
1689 leaf mask {
1690 type yang:mac-address;
1691 default "ff:ff:ff:ff:ff:ff";
1692 description "Mask for destination MAC address";
1693 }
1694
1695 } // container dst-mac
1696
1697 container dot1p {
1698 presence "Enable 802.1P Priority Match Criteria.";
1699 description "Enter the dot1p context";
1700
1701 leaf priority {
1702 type types-qos:dot1p-priority;
1703 mandatory true;
1704 description "Value of 802.1P priority to use as a MAC filter match criterion";
1705 }
1706
1707 leaf mask {
1708 type types-qos:dot1p-priority;
1709 default "7";
1710 description "Value of 802.1P mask to use as a MAC filter match criterion";
1711 }
1712
1713 } // container dot1p
1714
1715 container llc-dsap {
1716 presence "Enable DSAP criteria matching.";
1717 description "Enter the llc-dsap context";
1718
1719 leaf dsap {
1720 type types-qos:service-access-point;
1721 mandatory true;
1722 description "DSAP value";
1723 }
1724
1725 leaf mask {
1726 type types-qos:service-access-point;
1727 default "255";
1728 description "DSAP mask";
1729 }
1730
1731 } // container llc-dsap
1732
1733 container llc-ssap {
1734 presence "Enable SSAP criteria matching.";
1735 description "Enter the llc-ssap context";
1736
1737 leaf ssap {
1738 type types-qos:service-access-point;
1739 mandatory true;
1740 description "SSAP value";
1741 }
1742
1743 leaf mask {
1744 type types-qos:service-access-point;
1745 default "255";
1746 description "Source SAP mask";
1747 }
1748
1749 } // container llc-ssap
1750
1751 container inner-tag {
1752 presence "Enable inner tag criteria matching.";
1753 description "Enter the inner-tag context";
1754
1755 leaf vlan {
1756 type int32 {
1757 range "0..4095";
1758 }
1759 mandatory true;
1760 description "Match against VID of the second or first VLAN tag in the packet carried transparently through service";
1761 }
1762
1763 leaf mask {
1764 type uint32 {
1765 range "1..4095";
1766 }
1767 default "4095";
1768 description "Mask to VID of the inner VLAN tag before comparing it with the inner-tag or outer-tag value";
1769 }
1770
1771 } // container inner-tag
1772
1773 container outer-tag {
1774 presence "Enable outer tag criteria matching.";
1775 description "Enter the outer-tag context";
1776
1777 leaf vlan {
1778 type int32 {
1779 range "0..4095";
1780 }
1781 mandatory true;
1782 description "Match against VID of the first VLAN tag in the packet carried transparently through service";
1783 }
1784
1785 leaf mask {
1786 type uint32 {
1787 range "1..4095";
1788 }
1789 default "4095";
1790 description "First tag carried transparently through the service";
1791 }
1792
1793 } // container outer-tag
1794
1795 } // container match
1796
1797 container action {
1798 description "Enter the action context";
1799
1800 leaf type {
1801 type types-qos:criteria-action-type;
1802 default "ignore-match";
1803 description "Specified whether the criteria entry is active or in-active.";
1804 }
1805
1806 leaf fc {
1807 type types-qos:sap-ingress-fc-name;
1808 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
1809 }
1810
1811 leaf priority {
1812 type types-qos:priority;
1813 description "Priority for the packet";
1814 }
1815
1816 leaf policer {
1817 type types-qos:ingress-policer-id;
1818 description "Policer identifier for the traffic matching MAC Criteria";
1819 }
1820
1821 } // container action
1822
1823 } // list entry
1824
1825 } // container mac-criteria
1826
1827 container ip-criteria {
1828 description "Enter the ip-criteria context";
1829
1830 leaf type {
1831 type types-qos:ip-filter-type;
1832 sros-ext:immutable;
1833 default "normal";
1834 description "IP filter type";
1835 }
1836
1837 list entry {
1838 key "entry-id";
1839 description "Enter the entry context";
1840
1841 leaf entry-id {
1842 type union {
1843 type string {
1844 length "1..64";
1845 pattern "<.*>" {
1846 error-message "Config Groups Regex Pattern";
1847 }
1848 }
1849 type types-qos:entry-id;
1850 }
1851 description "IP criteria entry to create or edit for the policy";
1852 }
1853
1854 leaf description {
1855 type types-sros:description;
1856 description "Text description";
1857 }
1858
1859 container match {
1860 description "Enter the match context";
1861
1862 leaf protocol {
1863 type types-sros:ipv4-match-protocol;
1864 description "IP protocol to match";
1865 }
1866
1867 leaf dscp {
1868 type types-qos:dscp-name;
1869 description "DSCP value to match in the packet";
1870 }
1871
1872 leaf fragment {
1873 type enumeration {
1874 enum "false" { value 2; }
1875 enum "true" { value 3; }
1876 }
1877 description "Match performed when the packet is either a fragment or not, or matches all packets";
1878 }
1879
1880 container dst-ip {
1881 description "Enter the dst-ip context";
1882
1883 choice dst-ip {
1884 case address-and-mask-or-prefix {
1885
1886 leaf address {
1887 type union {
1888 type types-sros:ipv4-address;
1889 type types-sros:ipv4-prefix-with-host-bits;
1890 }
1891 description "IP address to match with destination IP of the packet";
1892 }
1893
1894 leaf mask {
1895 type types-sros:ipv4-address;
1896 description "IP address to match with source IP of the packet";
1897 }
1898
1899 }
1900 case ip-prefix-list {
1901
1902 leaf ip-prefix-list {
1903 type types-sros:named-item;
1904 description "IP-prefix list as match criterion";
1905 }
1906
1907 }
1908 }
1909 } // container dst-ip
1910
1911 container src-ip {
1912 description "Enter the src-ip context";
1913
1914 choice src-ip {
1915 case address-and-mask-or-prefix {
1916
1917 leaf address {
1918 type union {
1919 type types-sros:ipv4-address;
1920 type types-sros:ipv4-prefix-with-host-bits;
1921 }
1922 description "IP address to match with source IP of the packet";
1923 }
1924
1925 leaf mask {
1926 type types-sros:ipv4-address;
1927 description "IP address to match with source IP of the packet";
1928 }
1929
1930 }
1931 case ip-prefix-list {
1932
1933 leaf ip-prefix-list {
1934 type types-sros:named-item;
1935 description "IP-prefix list as match criterion";
1936 }
1937
1938 }
1939 }
1940 } // container src-ip
1941
1942 container src-port {
1943 description "Enter the src-port context";
1944
1945 choice port-match-mapping {
1946 case lt {
1947
1948 leaf lt {
1949 type int32 {
1950 range "0..65535";
1951 }
1952 description "Value 'less than' assigned as match condition";
1953 }
1954
1955 }
1956 case eq {
1957
1958 leaf eq {
1959 type int32 {
1960 range "0..65535";
1961 }
1962 description "Value 'equal to' assigned as match condition";
1963 }
1964
1965 }
1966 case gt {
1967
1968 leaf gt {
1969 type int32 {
1970 range "0..65535";
1971 }
1972 description "Value 'greater than' assigned as match condition";
1973 }
1974
1975 }
1976 case range {
1977
1978 container range {
1979 description "Enter the range context";
1980
1981 leaf start {
1982 type int32 {
1983 range "0..65535";
1984 }
1985 description "Start value of range";
1986 }
1987
1988 leaf end {
1989 type int32 {
1990 range "0..65535";
1991 }
1992 description "End value for range";
1993 }
1994
1995 } // container range
1996
1997 }
1998 }
1999 } // container src-port
2000
2001 container dst-port {
2002 description "Enter the dst-port context";
2003
2004 choice port-match-mapping {
2005 case lt {
2006
2007 leaf lt {
2008 type int32 {
2009 range "0..65535";
2010 }
2011 description "Value 'less than' assigned as match condition";
2012 }
2013
2014 }
2015 case eq {
2016
2017 leaf eq {
2018 type int32 {
2019 range "0..65535";
2020 }
2021 description "Value 'equal to' assigned as match condition";
2022 }
2023
2024 }
2025 case gt {
2026
2027 leaf gt {
2028 type int32 {
2029 range "0..65535";
2030 }
2031 description "Value 'greater than' assigned as match condition";
2032 }
2033
2034 }
2035 case range {
2036
2037 container range {
2038 description "Enter the range context";
2039
2040 leaf start {
2041 type int32 {
2042 range "0..65535";
2043 }
2044 description "Start value of range";
2045 }
2046
2047 leaf end {
2048 type int32 {
2049 range "0..65535";
2050 }
2051 description "End value for range";
2052 }
2053
2054 } // container range
2055
2056 }
2057 }
2058 } // container dst-port
2059
2060 container vxlan-vni {
2061 description "Enter the vxlan-vni context";
2062
2063 choice vxlan-vni-mapping {
2064 case eq {
2065
2066 leaf eq {
2067 type uint32 {
2068 range "1..16777215";
2069 }
2070 description "Value 'equal to' assigned as match condition";
2071 }
2072
2073 }
2074 case range {
2075
2076 container range {
2077 description "Enter the range context";
2078
2079 leaf start {
2080 type uint32 {
2081 range "1..16777215";
2082 }
2083 description "Start value of range";
2084 }
2085
2086 leaf end {
2087 type uint32 {
2088 range "1..16777215";
2089 }
2090 description "End value for range";
2091 }
2092
2093 } // container range
2094
2095 }
2096 }
2097 } // container vxlan-vni
2098
2099 } // container match
2100
2101 container action {
2102 description "Enter the action context";
2103
2104 leaf type {
2105 type types-qos:criteria-action-type;
2106 default "ignore-match";
2107 description "Specified whether the criteria entry is active or in-active.";
2108 }
2109
2110 leaf fc {
2111 type types-qos:sap-ingress-fc-name;
2112 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2113 }
2114
2115 leaf priority {
2116 type types-qos:priority;
2117 description "Priority for the packet";
2118 }
2119
2120 leaf policer {
2121 type types-qos:ingress-policer-id;
2122 description "Policer identifier for the traffic matching MAC Criteria";
2123 }
2124
2125 } // container action
2126
2127 } // list entry
2128
2129 } // container ip-criteria
2130
2131 container ipv6-criteria {
2132 description "Enter the ipv6-criteria context";
2133
2134 leaf type {
2135 type types-qos:ip-filter-type;
2136 sros-ext:immutable;
2137 default "normal";
2138 description "IPv6 filter type";
2139 }
2140
2141 list entry {
2142 key "entry-id";
2143 description "Enter the entry context";
2144
2145 leaf entry-id {
2146 type union {
2147 type string {
2148 length "1..64";
2149 pattern "<.*>" {
2150 error-message "Config Groups Regex Pattern";
2151 }
2152 }
2153 type types-qos:entry-id;
2154 }
2155 description "IPv6 criteria entry to create or edit for the policy";
2156 }
2157
2158 leaf description {
2159 type types-sros:description;
2160 description "Text description";
2161 }
2162
2163 container match {
2164 description "Enter the match context";
2165
2166 leaf next-header {
2167 type types-sros:ipv6-match-protocol;
2168 description "Next Header to match";
2169 }
2170
2171 leaf dscp {
2172 type types-qos:dscp-name;
2173 description "DSCP value to match in the packet";
2174 }
2175
2176 leaf fragment {
2177 type enumeration {
2178 enum "false" { value 2; }
2179 enum "true" { value 3; }
2180 enum "first-only" { value 4; }
2181 enum "non-first-only" { value 5; }
2182 }
2183 description "Match performed when the packet is either a fragment or not, or matches all packets";
2184 }
2185
2186 container dst-ip {
2187 description "Enter the dst-ip context";
2188
2189 choice dst-ip {
2190 case address-and-mask-or-prefix {
2191
2192 leaf address {
2193 type union {
2194 type types-sros:ipv6-address;
2195 type types-sros:ipv6-prefix-with-host-bits;
2196 }
2197 description "IP address to match with destination IP of the packet";
2198 }
2199
2200 leaf mask {
2201 type types-sros:ipv6-address;
2202 description "IP address to match with source IP of the packet";
2203 }
2204
2205 }
2206 }
2207 } // container dst-ip
2208
2209 container src-ip {
2210 description "Enter the src-ip context";
2211
2212 choice src-ip {
2213 case address-and-mask-or-prefix {
2214
2215 leaf address {
2216 type union {
2217 type types-sros:ipv6-address;
2218 type types-sros:ipv6-prefix-with-host-bits;
2219 }
2220 description "IP address to match with source IP of the packet";
2221 }
2222
2223 leaf mask {
2224 type types-sros:ipv6-address;
2225 description "IP address to match with source IP of the packet";
2226 }
2227
2228 }
2229 }
2230 } // container src-ip
2231
2232 container src-port {
2233 description "Enter the src-port context";
2234
2235 choice port-match-mapping {
2236 case lt {
2237
2238 leaf lt {
2239 type int32 {
2240 range "0..65535";
2241 }
2242 description "Value 'less than' assigned as match condition";
2243 }
2244
2245 }
2246 case eq {
2247
2248 leaf eq {
2249 type int32 {
2250 range "0..65535";
2251 }
2252 description "Value 'equal to' assigned as match condition";
2253 }
2254
2255 }
2256 case gt {
2257
2258 leaf gt {
2259 type int32 {
2260 range "0..65535";
2261 }
2262 description "Value 'greater than' assigned as match condition";
2263 }
2264
2265 }
2266 case range {
2267
2268 container range {
2269 description "Enter the range context";
2270
2271 leaf start {
2272 type int32 {
2273 range "0..65535";
2274 }
2275 description "Start value of range";
2276 }
2277
2278 leaf end {
2279 type int32 {
2280 range "0..65535";
2281 }
2282 description "End value for range";
2283 }
2284
2285 } // container range
2286
2287 }
2288 }
2289 } // container src-port
2290
2291 container dst-port {
2292 description "Enter the dst-port context";
2293
2294 choice port-match-mapping {
2295 case lt {
2296
2297 leaf lt {
2298 type int32 {
2299 range "0..65535";
2300 }
2301 description "Value 'less than' assigned as match condition";
2302 }
2303
2304 }
2305 case eq {
2306
2307 leaf eq {
2308 type int32 {
2309 range "0..65535";
2310 }
2311 description "Value 'equal to' assigned as match condition";
2312 }
2313
2314 }
2315 case gt {
2316
2317 leaf gt {
2318 type int32 {
2319 range "0..65535";
2320 }
2321 description "Value 'greater than' assigned as match condition";
2322 }
2323
2324 }
2325 case range {
2326
2327 container range {
2328 description "Enter the range context";
2329
2330 leaf start {
2331 type int32 {
2332 range "0..65535";
2333 }
2334 description "Start value of range";
2335 }
2336
2337 leaf end {
2338 type int32 {
2339 range "0..65535";
2340 }
2341 description "End value for range";
2342 }
2343
2344 } // container range
2345
2346 }
2347 }
2348 } // container dst-port
2349
2350 container vxlan-vni {
2351 description "Enter the vxlan-vni context";
2352
2353 choice vxlan-vni-mapping {
2354 case eq {
2355
2356 leaf eq {
2357 type uint32 {
2358 range "1..16777215";
2359 }
2360 description "Value 'equal to' assigned as match condition";
2361 }
2362
2363 }
2364 case range {
2365
2366 container range {
2367 description "Enter the range context";
2368
2369 leaf start {
2370 type uint32 {
2371 range "1..16777215";
2372 }
2373 description "Start value of range";
2374 }
2375
2376 leaf end {
2377 type uint32 {
2378 range "1..16777215";
2379 }
2380 description "End value for range";
2381 }
2382
2383 } // container range
2384
2385 }
2386 }
2387 } // container vxlan-vni
2388
2389 } // container match
2390
2391 container action {
2392 description "Enter the action context";
2393
2394 leaf type {
2395 type types-qos:criteria-action-type;
2396 default "ignore-match";
2397 description "Specified whether the criteria entry is active or in-active.";
2398 }
2399
2400 leaf fc {
2401 type types-qos:sap-ingress-fc-name;
2402 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2403 }
2404
2405 leaf priority {
2406 type types-qos:priority;
2407 description "Priority for the packet";
2408 }
2409
2410 leaf policer {
2411 type types-qos:ingress-policer-id;
2412 description "Policer identifier for the traffic matching MAC Criteria";
2413 }
2414
2415 } // container action
2416
2417 } // list entry
2418
2419 } // container ipv6-criteria
2420
2421 list queue {
2422 key "queue-id";
2423 description "Enter the queue context";
2424
2425 leaf queue-id {
2426 type union {
2427 type string {
2428 length "1..64";
2429 pattern "<.*>" {
2430 error-message "Config Groups Regex Pattern";
2431 }
2432 }
2433 type types-qos:ingress-queue-id;
2434 }
2435 description "SAP-ingress policer identifier";
2436 }
2437
2438 leaf multipoint {
2439 type boolean;
2440 sros-ext:immutable;
2441 default "false";
2442 description "Apply as a multicast queue";
2443 }
2444
2445 leaf queue-type {
2446 type types-qos:queue-type;
2447 sros-ext:immutable;
2448 default "auto-expedited";
2449 description "Priority that this queue receives from the hardware level schedulers";
2450 }
2451
2452 leaf queue-mode {
2453 type enumeration {
2454 enum "priority" { value 1; }
2455 enum "profile" { value 2; }
2456 }
2457 sros-ext:immutable;
2458 default "priority";
2459 description "Operating mode for this queue";
2460 }
2461
2462 leaf cbs {
2463 type union {
2464 type int32 {
2465 range "0..1048576";
2466 }
2467 type enumeration {
2468 enum "auto" { value -1; }
2469 }
2470 }
2471 units "kilobytes";
2472 default "auto";
2473 description "Reserved buffer space for the queue";
2474 }
2475
2476 leaf mbs {
2477 type union {
2478 type types-qos:bytes {
2479 range "0..1073741824";
2480 }
2481 type enumeration {
2482 enum "auto" { value -1; }
2483 }
2484 }
2485 units "bytes";
2486 default "auto";
2487 description "Maximum buffer space that is allowed for queue";
2488 }
2489
2490 leaf burst-limit {
2491 type union {
2492 type types-qos:bytes {
2493 range "1..14000000";
2494 }
2495 type enumeration {
2496 enum "auto" { value -1; }
2497 }
2498 }
2499 default "auto";
2500 description "Explicit shaping burst size of a queue";
2501 }
2502
2503 leaf adv-config-policy {
2504 type types-sros:named-item;
2505 description "Name of the advanced configuration policy to apply with this queue";
2506 }
2507
2508 leaf packet-byte-offset {
2509 type types-qos:per-packet-offset {
2510 range "-32..30";
2511 }
2512 default "0";
2513 description "Value of the adjustment on the size of each packet for queue accounting";
2514 }
2515
2516 leaf cir-non-profiling {
2517 type boolean;
2518 default "false";
2519 description "Prevents the CIR to be used for re-profiling a packet's state.";
2520 }
2521
2522 choice rate-or-percent-rate {
2523 default "rate";
2524 case rate {
2525
2526 container rate {
2527 description "Enter the rate context";
2528
2529 leaf pir {
2530 type types-qos:queue-pir-rate-maximum;
2531 units "kilobps";
2532 default "max";
2533 description "Administrative PIR";
2534 }
2535
2536 choice rate-cir-fir-or-police {
2537 default "cir-fir";
2538 case cir-fir {
2539
2540 leaf cir {
2541 type types-qos:queue-cir-rate-maximum;
2542 units "kilobps";
2543 default "0";
2544 description "Specifies the administrative CIR.";
2545 }
2546
2547 leaf fir {
2548 type types-qos:queue-fir-rate-maximum;
2549 units "kilobps";
2550 default "0";
2551 description "Specifies the administrative FIR.";
2552 }
2553
2554 }
2555 case police {
2556
2557 leaf police {
2558 type empty;
2559 description
2560 "Specifies that the out of profile traffic feeding into the physical queue
2561 instance should be dropped";
2562 }
2563
2564 }
2565 }
2566 } // container rate
2567
2568 }
2569 case percent-rate {
2570
2571 container percent-rate {
2572 description "Enter the percent-rate context";
2573
2574 leaf pir {
2575 type decimal64 {
2576 range "0.01..100.00";
2577 fraction-digits 2;
2578 }
2579 description "Administrative PIR percent";
2580 }
2581
2582 leaf reference-rate {
2583 type enumeration {
2584 enum "port-limit" { value 2; }
2585 enum "local-limit" { value 3; }
2586 }
2587 default "port-limit";
2588 description "Reference rate as percentage";
2589 }
2590
2591 choice percent-rate-cir-fir-or-police {
2592 default "cir-fir";
2593 case cir-fir {
2594
2595 leaf cir {
2596 type decimal64 {
2597 range "0.00..100.00";
2598 fraction-digits 2;
2599 }
2600 default "0.00";
2601 description "Specifies the administrative CIR percent.";
2602 }
2603
2604 leaf fir {
2605 type decimal64 {
2606 range "0.00..100.00";
2607 fraction-digits 2;
2608 }
2609 default "0.00";
2610 description "Specifies the administrative FIR percent.";
2611 }
2612
2613 }
2614 case police {
2615
2616 leaf police {
2617 type empty;
2618 description
2619 "Specifies that the out of profile traffic feeding into the physical queue
2620 instance should be dropped";
2621 }
2622
2623 }
2624 }
2625 } // container percent-rate
2626
2627 }
2628 }
2629 container scheduler-parent {
2630 description "Enter the scheduler-parent context";
2631
2632 leaf scheduler-name {
2633 type types-sros:named-item;
2634 description "Scheduler to which this queue feeds";
2635 }
2636
2637 leaf level {
2638 type types-qos:hierarchy-level;
2639 default "1";
2640 description "Level of priority while feeding to the parent";
2641 }
2642
2643 leaf weight {
2644 type types-qos:weight;
2645 default "1";
2646 description "Weight to be used by the scheduler for feeding this queue";
2647 }
2648
2649 leaf cir-level {
2650 type types-qos:cir-level;
2651 default "0";
2652 description "Level of priority while feeding to the parent";
2653 }
2654
2655 leaf cir-weight {
2656 type types-qos:cir-weight;
2657 default "1";
2658 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
2659 }
2660
2661 } // container scheduler-parent
2662
2663 container adaptation-rule {
2664 description "Enter the adaptation-rule context";
2665
2666 leaf pir {
2667 type types-qos:adaptation-rule;
2668 default "closest";
2669 description "Constraint used when deriving the operational PIR value";
2670 }
2671
2672 leaf cir {
2673 type types-qos:adaptation-rule;
2674 default "closest";
2675 description "Constraint used when deriving the operational PIR value";
2676 }
2677
2678 leaf fir {
2679 type types-qos:adaptation-rule;
2680 default "closest";
2681 description
2682 "The adaptation rule to be used while computing the operational FIR
2683 value. The adaptation rule specifies the rules to compute the
2684 operational values while maintaining minimum offset.";
2685 }
2686
2687 } // container adaptation-rule
2688
2689 container drop-tail {
2690 description "Enter the drop-tail context";
2691
2692 container low {
2693 description "Enter the low context";
2694
2695 leaf percent-reduction-from-mbs {
2696 type types-qos:burst-percent;
2697 description "Low drop-tail percent from MBS that is reduced";
2698 }
2699
2700 } // container low
2701
2702 } // container drop-tail
2703
2704 } // list queue
2705
2706 list dscp {
2707 key "dscp-name";
2708 description "Enter the dscp context";
2709
2710 leaf dscp-name {
2711 type union {
2712 type string {
2713 length "1..64";
2714 pattern "<.*>" {
2715 error-message "Config Groups Regex Pattern";
2716 }
2717 }
2718 type types-qos:dscp-name;
2719 }
2720 description "Name for the Differentiated Services Code Point (DSCP)";
2721 }
2722
2723 leaf fc {
2724 type types-qos:sap-ingress-fc-name;
2725 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2726 }
2727
2728 leaf priority {
2729 type types-qos:priority;
2730 description "Priority for the packet";
2731 }
2732
2733 } // list dscp
2734
2735 list dot1p {
2736 key "dot1p-value";
2737 description "Enter the dot1p context";
2738
2739 leaf dot1p-value {
2740 type union {
2741 type string {
2742 length "1..64";
2743 pattern "<.*>" {
2744 error-message "Config Groups Regex Pattern";
2745 }
2746 }
2747 type types-qos:dot1p-priority;
2748 }
2749 description "Dot1p value to match in the packet";
2750 }
2751
2752 leaf fc {
2753 type types-qos:sap-ingress-fc-name;
2754 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2755 }
2756
2757 leaf priority {
2758 type types-qos:priority;
2759 description "Priority for packets that match the Dot1p value";
2760 }
2761
2762 } // list dot1p
2763
2764 list prec {
2765 key "prec-value";
2766 description "Enter the prec context";
2767
2768 leaf prec-value {
2769 type union {
2770 type string {
2771 length "1..64";
2772 pattern "<.*>" {
2773 error-message "Config Groups Regex Pattern";
2774 }
2775 }
2776 type types-qos:precedence-value;
2777 }
2778 description "Precedence value for which mapping is performed";
2779 }
2780
2781 leaf fc {
2782 type types-qos:sap-ingress-fc-name;
2783 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2784 }
2785
2786 leaf priority {
2787 type types-qos:priority;
2788 description "Priority for the matching traffic";
2789 }
2790
2791 } // list prec
2792
2793 list lsp-exp {
2794 key "lsp-exp-value";
2795 description "Enter the lsp-exp context";
2796
2797 leaf lsp-exp-value {
2798 type union {
2799 type string {
2800 length "1..64";
2801 pattern "<.*>" {
2802 error-message "Config Groups Regex Pattern";
2803 }
2804 }
2805 type types-qos:lsp-exp-value;
2806 }
2807 description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule";
2808 }
2809
2810 leaf fc {
2811 type types-qos:sap-ingress-fc-name;
2812 description "Forwarding class or sub forwarding class to classify traffic matching the MAC criteria";
2813 }
2814
2815 leaf priority {
2816 type types-qos:priority;
2817 description "Priority for the matching traffic";
2818 }
2819
2820 } // list lsp-exp
2821
2822 list fc {
2823 key "fc-name";
2824 description "Enter the fc context";
2825
2826 leaf fc-name {
2827 type union {
2828 type string {
2829 length "1..64";
2830 pattern "<.*>" {
2831 error-message "Config Groups Regex Pattern";
2832 }
2833 }
2834 type types-qos:sap-ingress-fc-name;
2835 }
2836 description "Forwarding class or the sub forwarding class for which this mapping is performed";
2837 }
2838
2839 leaf profile {
2840 type types-qos:profile;
2841 description "Profile of the packets associated with this forwarding class";
2842 }
2843
2844 leaf de-1-out-profile {
2845 type boolean;
2846 default "false";
2847 description "Frames with DE value to be assigned as out of profile";
2848 }
2849
2850 leaf egress-fc {
2851 type types-sros:fc-name;
2852 description "Forwarding class to override the forwarding class determined by ingress classification";
2853 }
2854
2855 choice queue-policer-mapping {
2856 case queue {
2857
2858 leaf queue {
2859 type types-qos:ingress-queue-id;
2860 description "Queue to assign for packets in this forwarding class";
2861 }
2862
2863 }
2864 case queue-group-queue {
2865
2866 container queue-group-queue {
2867 presence "Sap-Ingress Forwarding Class (FC) queue-group mappings.";
2868 description "Enter the queue-group-queue context";
2869
2870 leaf queue-group-name {
2871 type types-sros:named-item;
2872 mandatory true;
2873 description "Queue group name associated with queue";
2874 }
2875
2876 leaf queue {
2877 type types-qos:ingress-queue-id;
2878 mandatory true;
2879 description "Queue to assign for packets in this forwarding class";
2880 }
2881
2882 } // container queue-group-queue
2883
2884 }
2885 case policer {
2886
2887 leaf policer {
2888 type types-qos:ingress-policer-id;
2889 description "Policer identifier for the normal traffic in this forwarding class";
2890 }
2891
2892 leaf fp-redirect-group-policer {
2893 type empty;
2894 description "Specified policer to be used as defined in the FP (forwarding-plane)";
2895 }
2896
2897 }
2898 }
2899 choice multicast-queue-policer-mapping {
2900 case multicast-queue {
2901
2902 leaf multicast-queue {
2903 type types-qos:ingress-queue-id;
2904 description "Broadcast queue to assign for packets in this forwarding class";
2905 }
2906
2907 }
2908 case multicast-queue-group-queue {
2909
2910 container multicast-queue-group-queue {
2911 presence "Sap-Ingress Forwarding Class (FC) queue-group mappings.";
2912 description "Enter the unknown-queue-group-queue context";
2913
2914 leaf queue-group-name {
2915 type types-sros:named-item;
2916 mandatory true;
2917 description "Queue group name associated with broadcast queue";
2918 }
2919
2920 leaf queue {
2921 type types-qos:ingress-queue-id;
2922 mandatory true;
2923 description "Broadcast queue to assign for packets in this forwarding class";
2924 }
2925
2926 } // container multicast-queue-group-queue
2927
2928 }
2929 case multicast-policer {
2930
2931 leaf multicast-policer {
2932 type types-qos:ingress-policer-id;
2933 description "Policer identifier for the broadcast traffic in this forwarding class";
2934 }
2935
2936 leaf fp-redirect-group-multicast-policer {
2937 type empty;
2938 description "Broadcast policer to be used as defined in the FP (forwarding-plane)";
2939 }
2940
2941 }
2942 }
2943 choice broadcast-queue-policer-mapping {
2944 case broadcast-queue {
2945
2946 leaf broadcast-queue {
2947 type types-qos:ingress-queue-id;
2948 description "Broadcast queue to assign for packets in this forwarding class";
2949 }
2950
2951 }
2952 case broadcast-queue-group-queue {
2953
2954 container broadcast-queue-group-queue {
2955 presence "Sap-Ingress Forwarding Class (FC) queue-group mappings.";
2956 description "Enter the unknown-queue-group-queue context";
2957
2958 leaf queue-group-name {
2959 type types-sros:named-item;
2960 mandatory true;
2961 description "Queue group name associated with broadcast queue";
2962 }
2963
2964 leaf queue {
2965 type types-qos:ingress-queue-id;
2966 mandatory true;
2967 description "Broadcast queue to assign for packets in this forwarding class";
2968 }
2969
2970 } // container broadcast-queue-group-queue
2971
2972 }
2973 case broadcast-policer {
2974
2975 leaf broadcast-policer {
2976 type types-qos:ingress-policer-id;
2977 description "Policer identifier for the broadcast traffic in this forwarding class";
2978 }
2979
2980 leaf fp-redirect-group-broadcast-policer {
2981 type empty;
2982 description "Broadcast policer to be used as defined in the FP (forwarding-plane)";
2983 }
2984
2985 }
2986 }
2987 choice unknown-queue-policer-mapping {
2988 case unknown-queue {
2989
2990 leaf unknown-queue {
2991 type types-qos:ingress-queue-id;
2992 description "Broadcast queue to assign for packets in this forwarding class";
2993 }
2994
2995 }
2996 case unknown-queue-group-queue {
2997
2998 container unknown-queue-group-queue {
2999 presence "Sap-Ingress Forwarding Class (FC) queue-group mappings.";
3000 description "Enter the unknown-queue-group-queue context";
3001
3002 leaf queue-group-name {
3003 type types-sros:named-item;
3004 mandatory true;
3005 description "Queue group name associated with broadcast queue";
3006 }
3007
3008 leaf queue {
3009 type types-qos:ingress-queue-id;
3010 mandatory true;
3011 description "Broadcast queue to assign for packets in this forwarding class";
3012 }
3013
3014 } // container unknown-queue-group-queue
3015
3016 }
3017 case unknown-policer {
3018
3019 leaf unknown-policer {
3020 type types-qos:ingress-policer-id;
3021 description "Policer identifier for the broadcast traffic in this forwarding class";
3022 }
3023
3024 leaf fp-redirect-group-unknown-policer {
3025 type empty;
3026 description "Broadcast policer to be used as defined in the FP (forwarding-plane)";
3027 }
3028
3029 }
3030 }
3031 container in-remark {
3032 description "Enter the in-remark context";
3033
3034 choice in-profile {
3035 case dscp {
3036
3037 leaf dscp {
3038 type types-qos:dscp-name;
3039 description
3040 "Specifies the DSCP to be used while remarking the in profile packets when
3041 the in-profile remarking type is 'dscp'.";
3042 }
3043
3044 }
3045 case prec {
3046
3047 leaf prec {
3048 type types-qos:precedence-value;
3049 description
3050 "Specifies the precedence value to be used while remarking the in profile
3051 packets when the in-profile remarking type is 'precedence'.";
3052 }
3053
3054 }
3055 }
3056 } // container in-remark
3057
3058 container out-remark {
3059 description "Enter the out-remark context";
3060
3061 choice out-profile {
3062 case dscp {
3063
3064 leaf dscp {
3065 type types-qos:dscp-name;
3066 description
3067 "Specifies the DSCP to be used while remarking the out profile packets when
3068 the out-profile remarking type is 'dscp'.";
3069 }
3070
3071 }
3072 case prec {
3073
3074 leaf prec {
3075 type types-qos:precedence-value;
3076 description
3077 "Specifies the precedence value to be used while remarking the out profile
3078 packets when the out-profile remarking type is 'precedence'.";
3079 }
3080
3081 }
3082 }
3083 } // container out-remark
3084
3085 } // list fc
3086
3087 list policer {
3088 key "policer-id";
3089 description "Enter the policer context";
3090
3091 leaf policer-id {
3092 type union {
3093 type string {
3094 length "1..64";
3095 pattern "<.*>" {
3096 error-message "Config Groups Regex Pattern";
3097 }
3098 }
3099 type types-qos:ingress-policer-id;
3100 }
3101 description "SAP-ingress policer identifier";
3102 }
3103
3104 leaf description {
3105 type types-sros:description;
3106 description "Text description";
3107 }
3108
3109 leaf stat-mode {
3110 type types-qos:ingress-policer-stat-mode;
3111 default "minimal";
3112 description "Mode of statistics collected by the policer";
3113 }
3114
3115 leaf mbs {
3116 type union {
3117 type types-qos:bytes {
3118 range "0..16777216";
3119 }
3120 type enumeration {
3121 enum "auto" { value -1; }
3122 }
3123 }
3124 units "bytes";
3125 default "auto";
3126 description "High priority for the violate threshold of PIR leaky bucket of this policer";
3127 }
3128
3129 leaf high-prio-only {
3130 type types-qos:burst-percent;
3131 description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic";
3132 }
3133
3134 leaf cbs {
3135 type union {
3136 type types-qos:bytes {
3137 range "0..16777216";
3138 }
3139 type enumeration {
3140 enum "auto" { value -1; }
3141 }
3142 }
3143 units "bytes";
3144 default "auto";
3145 description "Exceed threshold of the CIR leaky bucket of this policer";
3146 }
3147
3148 leaf packet-byte-offset {
3149 type types-qos:per-packet-offset;
3150 default "0";
3151 description "Size of each packet, handled by the policer, to be modified";
3152 }
3153
3154 leaf adv-config-policy {
3155 type types-sros:named-item;
3156 description "Name of the advanced configuration policy to apply with this queue";
3157 }
3158
3159 leaf profile-capped {
3160 type boolean;
3161 default "false";
3162 description "Enforce an overall in-profile burst limit to the CIR bucket at ingress policer";
3163 }
3164
3165 choice rate-or-percent-rate {
3166 default "rate";
3167 case rate {
3168
3169 container rate {
3170 description "Enter the rate context";
3171
3172 leaf pir {
3173 type types-qos:policer-pir-rate-maximum;
3174 units "kilobps";
3175 default "max";
3176 description "Administrative PIR";
3177 }
3178
3179 leaf cir {
3180 type types-qos:policer-cir-rate-maximum;
3181 units "kilobps";
3182 default "0";
3183 description "Administrative CIR";
3184 }
3185
3186 } // container rate
3187
3188 }
3189 case percent-rate {
3190
3191 container percent-rate {
3192 description "Enter the percent-rate context";
3193
3194 leaf pir {
3195 type decimal64 {
3196 range "0.01..100.00";
3197 fraction-digits 2;
3198 }
3199 description "Administrative PIR percent";
3200 }
3201
3202 leaf cir {
3203 type decimal64 {
3204 range "0.00..100.00";
3205 fraction-digits 2;
3206 }
3207 default "0.00";
3208 description "Administrative CIR percent";
3209 }
3210
3211 } // container percent-rate
3212
3213 }
3214 }
3215 container adaptation-rule {
3216 description "Enter the adaptation-rule context";
3217
3218 leaf pir {
3219 type types-qos:adaptation-rule;
3220 default "closest";
3221 description "Constraint used when deriving the operational PIR value";
3222 }
3223
3224 leaf cir {
3225 type types-qos:adaptation-rule;
3226 default "closest";
3227 description "Constraint used when deriving the operational CIR value";
3228 }
3229
3230 } // container adaptation-rule
3231
3232 container arbiter-parent {
3233 description "Enter the arbiter-parent context";
3234
3235 leaf arbiter-name {
3236 type types-sros:named-item;
3237 description "Arbiter to which this policer feeds";
3238 }
3239
3240 leaf level {
3241 type types-qos:hierarchy-level;
3242 default "1";
3243 description "Level of priority while feeding to the parent";
3244 }
3245
3246 leaf weight {
3247 type types-qos:weight {
3248 range "1..100";
3249 }
3250 default "1";
3251 description "Weight to be used by the arbiter for feeding this policer";
3252 }
3253
3254 } // container arbiter-parent
3255
3256 } // list policer
3257
3258 } // list sap-ingress
3259
3260 list slope-policy {
3261 key "slope-policy-name";
3262 max-elements 511;
3263 description "Enter the slope-policy context";
3264
3265 leaf slope-policy-name {
3266 type union {
3267 type string {
3268 length "1..64";
3269 pattern "<.*>" {
3270 error-message "Config Groups Regex Pattern";
3271 }
3272 }
3273 type types-sros:named-item;
3274 }
3275 description "Slope policy name";
3276 }
3277
3278 leaf description {
3279 type types-sros:description;
3280 description "Text description";
3281 }
3282
3283 leaf time-average-factor {
3284 type uint32 {
3285 range "0..15";
3286 }
3287 default "7";
3288 description "Apply time average factor to weight between previous and new shared buffer utilization result";
3289 }
3290
3291 container highplus-slope {
3292 description "Enter the highplus-slope context";
3293
3294 leaf admin-state {
3295 type types-sros:admin-state;
3296 default "disable";
3297 description "Administrative state of the highplus priority RED slope";
3298 }
3299
3300 leaf start-avg {
3301 type uint32 {
3302 range "0..100";
3303 }
3304 default "85";
3305 description "Buffer percentage after which the drop probability starts to rise above value";
3306 }
3307
3308 leaf max-avg {
3309 type uint32 {
3310 range "0..100";
3311 }
3312 default "100";
3313 description "Buffer percentage after which the drop probability reaches maximum average";
3314 }
3315
3316 leaf max-prob {
3317 type uint32 {
3318 range "0..100";
3319 }
3320 default "80";
3321 description "Drop probability increase at highplus start-average";
3322 }
3323
3324 } // container highplus-slope
3325
3326 container high-slope {
3327 description "Enter the high-slope context";
3328
3329 leaf admin-state {
3330 type types-sros:admin-state;
3331 default "disable";
3332 description "Administrative state of the high priority RED slope";
3333 }
3334
3335 leaf start-avg {
3336 type uint32 {
3337 range "0..100";
3338 }
3339 default "70";
3340 description "Buffer percentage after which the drop probability starts to rise above value";
3341 }
3342
3343 leaf max-avg {
3344 type uint32 {
3345 range "0..100";
3346 }
3347 default "90";
3348 description "Buffer percentage after which the drop probability reaches maximum average";
3349 }
3350
3351 leaf max-prob {
3352 type uint32 {
3353 range "0..100";
3354 }
3355 default "80";
3356 description "Drop probability to increase at high start-average";
3357 }
3358
3359 } // container high-slope
3360
3361 container low-slope {
3362 description "Enter the low-slope context";
3363
3364 leaf admin-state {
3365 type types-sros:admin-state;
3366 default "disable";
3367 description "Administrative state of the low priority RED slope";
3368 }
3369
3370 leaf start-avg {
3371 type uint32 {
3372 range "0..100";
3373 }
3374 default "50";
3375 description "Buffer percentage after which the drop probability starts to rise above value";
3376 }
3377
3378 leaf max-avg {
3379 type uint32 {
3380 range "0..100";
3381 }
3382 default "75";
3383 description "Buffer percentage after which the drop probability reaches maximum average";
3384 }
3385
3386 leaf max-prob {
3387 type uint32 {
3388 range "0..100";
3389 }
3390 default "80";
3391 description "Drop probability to increase at low start-average";
3392 }
3393
3394 } // container low-slope
3395
3396 container exceed-slope {
3397 description "Enter the exceed-slope context";
3398
3399 leaf admin-state {
3400 type types-sros:admin-state;
3401 default "disable";
3402 description "Administrative state of the exceed priority RED slope";
3403 }
3404
3405 leaf start-avg {
3406 type uint32 {
3407 range "0..100";
3408 }
3409 default "30";
3410 description "Buffer percentage after which the drop probability starts to rise above value";
3411 }
3412
3413 leaf max-avg {
3414 type uint32 {
3415 range "0..100";
3416 }
3417 default "55";
3418 description "Buffer percentage after which the drop probability reaches maximum average";
3419 }
3420
3421 leaf max-prob {
3422 type uint32 {
3423 range "0..100";
3424 }
3425 default "80";
3426 description "Drop probability to increase at exceed start-average";
3427 }
3428
3429 } // container exceed-slope
3430
3431 } // list slope-policy
3432
3433 list hsmda-slope-policy {
3434 key "hsmda-slope-policy-name";
3435 description "Enter the hsmda-slope-policy context";
3436
3437 leaf hsmda-slope-policy-name {
3438 type union {
3439 type string {
3440 length "1..64";
3441 pattern "<.*>" {
3442 error-message "Config Groups Regex Pattern";
3443 }
3444 }
3445 type types-sros:named-item;
3446 }
3447 description "HSMDA slope policy name";
3448 }
3449
3450 leaf description {
3451 type types-sros:description;
3452 description "Text description";
3453 }
3454
3455 container high-slope {
3456 description "Enter the high-slope context";
3457
3458 leaf admin-state {
3459 type types-sros:admin-state;
3460 default "enable";
3461 description "Administrative state of the high priority RED slope";
3462 }
3463
3464 leaf start-depth {
3465 type decimal64 {
3466 range "0.01..100.00";
3467 fraction-digits 2;
3468 }
3469 default "100.00";
3470 description "Buffer percentage after which the drop probability starts to rise above value";
3471 }
3472
3473 leaf max-depth {
3474 type decimal64 {
3475 range "0.01..100.00";
3476 fraction-digits 2;
3477 }
3478 default "100.00";
3479 description "Buffer percentage after which the drop probability reaches maximum average";
3480 }
3481
3482 leaf max-prob {
3483 type decimal64 {
3484 range "0.01..100.00";
3485 fraction-digits 2;
3486 }
3487 default "100.00";
3488 description "Drop probability when the HSMDA queue depth reaches maximum depth";
3489 }
3490
3491 } // container high-slope
3492
3493 container low-slope {
3494 description "Enter the low-slope context";
3495
3496 leaf admin-state {
3497 type types-sros:admin-state;
3498 default "enable";
3499 description "Administrative state of the low priority RED slope";
3500 }
3501
3502 leaf start-depth {
3503 type decimal64 {
3504 range "0.01..100.00";
3505 fraction-digits 2;
3506 }
3507 default "90.00";
3508 description "Buffer percentage after which the drop probability starts to rise above value";
3509 }
3510
3511 leaf max-depth {
3512 type decimal64 {
3513 range "0.01..100.00";
3514 fraction-digits 2;
3515 }
3516 default "90.00";
3517 description "Buffer percentage after which the drop probability reaches maximum average";
3518 }
3519
3520 leaf max-prob {
3521 type decimal64 {
3522 range "0.01..100.00";
3523 fraction-digits 2;
3524 }
3525 default "100.00";
3526 description "Drop probability when the HSMDA queue depth reaches maximum depth";
3527 }
3528
3529 } // container low-slope
3530
3531 } // list hsmda-slope-policy
3532
3533 list hsmda-wrr-policy {
3534 key "hsmda-wrr-policy-name";
3535 description "Enter the hsmda-wrr-policy context";
3536
3537 leaf hsmda-wrr-policy-name {
3538 type union {
3539 type string {
3540 length "1..64";
3541 pattern "<.*>" {
3542 error-message "Config Groups Regex Pattern";
3543 }
3544 }
3545 type types-sros:named-item;
3546 }
3547 description "HSMDA WRR policy name";
3548 }
3549
3550 leaf description {
3551 type types-sros:description;
3552 description "Text description";
3553 }
3554
3555 leaf include-queues {
3556 type enumeration {
3557 enum "1-2" { value 1; }
3558 enum "1-3" { value 2; }
3559 }
3560 default "1-2";
3561 description "Queues to include includes into the HSMDA WRR scheduling loop policy";
3562 }
3563
3564 leaf schedule-using-class {
3565 type int32 {
3566 range "1..3";
3567 }
3568 default "1";
3569 description "Class to schedule the queues specified within the HSMDA scheduler";
3570 }
3571
3572 leaf class-agg-weight {
3573 type int32 {
3574 range "1|2|4|8";
3575 }
3576 default "1";
3577 description "Weight assigned to the group of queues specified within the HSMDA scheduler";
3578 }
3579
3580 } // list hsmda-wrr-policy
3581
3582 list hsmda-pool-policy {
3583 key "hsmda-pool-policy-name";
3584 description "Enter the hsmda-pool-policy context";
3585
3586 leaf hsmda-pool-policy-name {
3587 type union {
3588 type string {
3589 length "1..64";
3590 pattern "<.*>" {
3591 error-message "Config Groups Regex Pattern";
3592 }
3593 }
3594 type types-sros:named-item;
3595 }
3596 description "The name of the HSMDA Pool Policy.";
3597 }
3598
3599 leaf description {
3600 type types-sros:description;
3601 description "Text description";
3602 }
3603
3604 leaf system-reserve {
3605 type decimal64 {
3606 range "1.00..30.00";
3607 fraction-digits 2;
3608 }
3609 default "10.00";
3610 description "Specifies the percentage of HSMDA buffers reserved for internal system use.";
3611 }
3612
3613 container root-tier {
3614 description "Enter the root-tier context";
3615
3616 list root-pool {
3617 key "root-pool-id";
3618 description "Enter the root-pool context";
3619
3620 leaf root-pool-id {
3621 type union {
3622 type string {
3623 length "1..64";
3624 pattern "<.*>" {
3625 error-message "Config Groups Regex Pattern";
3626 }
3627 }
3628 type uint32 {
3629 range "1..8";
3630 }
3631 }
3632 description "Root pool identifier for the HSMDA pool policy";
3633 }
3634
3635 leaf allocation-weight {
3636 type uint32 {
3637 range "0..100";
3638 }
3639 default "0";
3640 description
3641 "Specifies the weight that will be applied to the
3642 first root pool and is divided by the sum of all root pool
3643 weights to derive the pool's buffer allocation factor.";
3644 }
3645
3646 } // list root-pool
3647
3648 } // container root-tier
3649
3650 container class-tier {
3651 description "Enter the class-tier context";
3652
3653 list class-pool {
3654 key "class-pool-id";
3655 description "Enter the class-pool context";
3656
3657 leaf class-pool-id {
3658 type union {
3659 type string {
3660 length "1..64";
3661 pattern "<.*>" {
3662 error-message "Config Groups Regex Pattern";
3663 }
3664 }
3665 type uint32 {
3666 range "1..8";
3667 }
3668 }
3669 description "Class pool for the HSMDA pool policy";
3670 }
3671
3672 leaf root-parent {
3673 type uint32 {
3674 range "1..8";
3675 }
3676 default "1";
3677 description "Specifies the parent root to which this class-pool is associated.";
3678 }
3679
3680 leaf allocation-percent {
3681 type decimal64 {
3682 range "0.01..100.00";
3683 fraction-digits 2;
3684 }
3685 description
3686 "Specifies the percentage of the root-pool with which it is associated,
3687 as specified by root-parent will be available to this class-pool.";
3688 }
3689
3690 } // list class-pool
3691
3692 } // container class-tier
3693
3694 } // list hsmda-pool-policy
3695
3696 list hsmda-scheduler-policy {
3697 key "hsmda-scheduler-policy-name";
3698 description "Enter the hsmda-scheduler-policy context";
3699
3700 leaf hsmda-scheduler-policy-name {
3701 type union {
3702 type string {
3703 length "1..64";
3704 pattern "<.*>" {
3705 error-message "Config Groups Regex Pattern";
3706 }
3707 }
3708 type types-sros:named-item;
3709 }
3710 description "The name of the HSMDA scheduler policy.";
3711 }
3712
3713 leaf description {
3714 type types-sros:description;
3715 description "Text description";
3716 }
3717
3718 leaf max-rate {
3719 type union {
3720 type uint32 {
3721 range "1..100000";
3722 }
3723 type enumeration {
3724 enum "max" { value -1; }
3725 }
3726 }
3727 units "megabps";
3728 default "max";
3729 description "Specifies the maximum rate for this HSMDA scheduler policy.";
3730 }
3731
3732 leaf burst-limit {
3733 type union {
3734 type types-qos:bytes {
3735 range "1..327680";
3736 }
3737 type enumeration {
3738 enum "auto" { value -1; }
3739 }
3740 }
3741 default "auto";
3742 description "Explicit shaping burst size of a queue";
3743 }
3744
3745 list group {
3746 key "group-id";
3747 description "Enter the group context";
3748
3749 leaf group-id {
3750 type union {
3751 type string {
3752 length "1..64";
3753 pattern "<.*>" {
3754 error-message "Config Groups Regex Pattern";
3755 }
3756 }
3757 type uint32 {
3758 range "1..2";
3759 }
3760 }
3761 description "Group ID for the HSMDA scheduler policy";
3762 }
3763
3764 leaf rate {
3765 type union {
3766 type uint32 {
3767 range "1..100000";
3768 }
3769 type enumeration {
3770 enum "max" { value -1; }
3771 }
3772 }
3773 units "megabps";
3774 default "max";
3775 description "Specifies the group maximum rate.";
3776 }
3777
3778 leaf burst-limit {
3779 type union {
3780 type types-qos:bytes {
3781 range "1..327680";
3782 }
3783 type enumeration {
3784 enum "auto" { value -1; }
3785 }
3786 }
3787 default "auto";
3788 description "Explicit shaping burst size of a queue";
3789 }
3790
3791 } // list group
3792
3793 list scheduling-class {
3794 key "class-id";
3795 description "Enter the scheduling-class context";
3796
3797 leaf class-id {
3798 type union {
3799 type string {
3800 length "1..64";
3801 pattern "<.*>" {
3802 error-message "Config Groups Regex Pattern";
3803 }
3804 }
3805 type uint32 {
3806 range "1..8";
3807 }
3808 }
3809 description "Class identifier for the HSMDA scheduler policy scheduling class";
3810 }
3811
3812 choice rate-or-group {
3813 default "rate";
3814 case rate {
3815
3816 leaf rate {
3817 type union {
3818 type uint32 {
3819 range "1..100000";
3820 }
3821 type enumeration {
3822 enum "max" { value -1; }
3823 }
3824 }
3825 units "megabps";
3826 default "max";
3827 description "Specifies the scheduling class maximum rate.";
3828 }
3829
3830 leaf burst-limit {
3831 type union {
3832 type types-qos:bytes {
3833 range "1..327680";
3834 }
3835 type enumeration {
3836 enum "auto" { value -1; }
3837 }
3838 }
3839 default "auto";
3840 description "Explicit shaping burst size of a queue";
3841 }
3842
3843 }
3844 case group {
3845
3846 container group {
3847 presence "Specifies the group and weight configuration.";
3848 description "Enter the group context";
3849
3850 leaf group-id {
3851 type uint32 {
3852 range "1..2";
3853 }
3854 mandatory true;
3855 description "Specifies the group associated with this scheduling class.";
3856 }
3857
3858 leaf weight {
3859 type int32 {
3860 range "1..100";
3861 }
3862 default "1";
3863 description "Specifies the weight in group associated with this scheduling class.";
3864 }
3865
3866 } // container group
3867
3868 }
3869 }
3870 } // list scheduling-class
3871
3872 } // list hsmda-scheduler-policy
3873
3874 list atm-td-profile {
3875 key "atm-td-profile-id";
3876 description "Enter the atm-td-profile context";
3877
3878 leaf atm-td-profile-id {
3879 type union {
3880 type string {
3881 length "1..64";
3882 pattern "<.*>" {
3883 error-message "Config Groups Regex Pattern";
3884 }
3885 }
3886 type types-qos:atm-traffic-descr-idx;
3887 }
3888 description "ATM traffic descriptor ID";
3889 }
3890
3891 leaf shaping {
3892 type boolean;
3893 default "false";
3894 description "Enable cell level shaping when the ATP traffic description profile is applied to an ATM SAP queue";
3895 }
3896
3897 leaf service-category {
3898 type types-qos:atm-service-category;
3899 default "ubr";
3900 description "ATM service category";
3901 }
3902
3903 leaf description {
3904 type types-sros:description;
3905 description "Text description";
3906 }
3907
3908 leaf descriptor-type {
3909 type enumeration {
3910 enum "p01" { value 0; }
3911 enum "p01-and-s01" { value 1; }
3912 enum "p01-and-s0" { value 2; }
3913 enum "p01-and-s0-tag" { value 3; }
3914 }
3915 default "p01-and-s01";
3916 description "Select the type of ATM traffic descriptor";
3917 }
3918
3919 leaf policing {
3920 type boolean;
3921 default "false";
3922 description "Allow ingress traffic policing";
3923 }
3924
3925 leaf clp-tagging {
3926 type boolean;
3927 default "false";
3928 description "Control the setting of the CLP bit in the ATM cell header for egress traffic on IES or VPRN SAP";
3929 }
3930
3931 leaf weight {
3932 type int32 {
3933 range "1..255";
3934 }
3935 default "1";
3936 description "Relative weight for the ATM traffic descriptor based on ATM VP shaper scheduling";
3937 }
3938
3939 container traffic {
3940 description "Enter the traffic context";
3941
3942 leaf sir {
3943 type uint32;
3944 units "kilobps";
3945 default "0";
3946 description "Sustained information rate";
3947 }
3948
3949 leaf pir {
3950 type uint32;
3951 units "kilobps";
3952 default "0";
3953 description "Peak information rate";
3954 }
3955
3956 leaf mir {
3957 type uint32;
3958 units "kilobps";
3959 default "0";
3960 description "Minimum information rate";
3961 }
3962
3963 leaf mbs {
3964 type uint32;
3965 default "0";
3966 description "Maximum burst size in cell";
3967 }
3968
3969 leaf cdvt {
3970 type uint32;
3971 units "microseconds";
3972 default "250";
3973 description "Cell Delay Variation Tolerance";
3974 }
3975
3976 } // container traffic
3977
3978 } // list atm-td-profile
3979
3980 list network-queue {
3981 key "network-queue-policy";
3982 max-elements 255;
3983 description "Enter the network-queue context";
3984
3985 leaf network-queue-policy {
3986 type union {
3987 type string {
3988 length "1..64";
3989 pattern "<.*>" {
3990 error-message "Config Groups Regex Pattern";
3991 }
3992 }
3993 type types-sros:named-item;
3994 }
3995 description "Name for network queue policy";
3996 }
3997
3998 leaf description {
3999 type types-sros:description;
4000 description "Text description";
4001 }
4002
4003 leaf hs-attachment-policy {
4004 type types-sros:named-item;
4005 description "HS attachment policy applied";
4006 }
4007
4008 container egress-hsmda {
4009 description "Enter the egress-hsmda context";
4010
4011 leaf packet-byte-offset {
4012 type types-qos:egress-per-packet-offset;
4013 default "0";
4014 description "Packet byte offset to use for the HSMDA egress queues";
4015 }
4016
4017 leaf wrr-policy {
4018 type types-sros:named-item;
4019 description "WRR policy to use on this HSMDA egress queue";
4020 }
4021
4022 list queue {
4023 key "queue-id";
4024 description "Enter the queue context";
4025
4026 leaf queue-id {
4027 type union {
4028 type string {
4029 length "1..64";
4030 pattern "<.*>" {
4031 error-message "Config Groups Regex Pattern";
4032 }
4033 }
4034 type types-qos:egress-queue-id;
4035 }
4036 description "Egress HSMDA queue ID";
4037 }
4038
4039 leaf burst-limit {
4040 type union {
4041 type types-qos:bytes {
4042 range "1..1000000";
4043 }
4044 type enumeration {
4045 enum "auto" { value -1; }
4046 }
4047 }
4048 default "auto";
4049 description "Explicit shaping burst size of a queue";
4050 }
4051
4052 leaf mbs {
4053 type union {
4054 type types-qos:bytes {
4055 range "0..2688000";
4056 }
4057 type enumeration {
4058 enum "auto" { value -1; }
4059 }
4060 }
4061 units "bytes";
4062 default "auto";
4063 description "Percentage of buffer space allowed for the queue";
4064 }
4065
4066 leaf percent-rate {
4067 type decimal64 {
4068 range "0.01..100.00";
4069 fraction-digits 2;
4070 }
4071 default "100.00";
4072 description "PIR percentage rate";
4073 }
4074
4075 leaf slope-policy {
4076 type types-sros:named-item;
4077 description "Slop policy name to override the default slope policy for the named buffer pool";
4078 }
4079
4080 leaf wrr-weight {
4081 type types-qos:hsmda-wrr-weight;
4082 default "1";
4083 description "Weight value for the HSMDA queue";
4084 }
4085
4086 container adaptation-rule {
4087 description "Enter the adaptation-rule context";
4088
4089 leaf pir {
4090 type types-qos:adaptation-rule;
4091 default "closest";
4092 description "Constraint used when deriving the operational PIR value";
4093 }
4094
4095 } // container adaptation-rule
4096
4097 } // list queue
4098
4099 } // container egress-hsmda
4100
4101 list fc {
4102 key "fc-name";
4103 description "Enter the fc context";
4104
4105 leaf fc-name {
4106 type union {
4107 type string {
4108 length "1..64";
4109 pattern "<.*>" {
4110 error-message "Config Groups Regex Pattern";
4111 }
4112 }
4113 type types-sros:fc-name;
4114 }
4115 description "Forwarding class name";
4116 }
4117
4118 leaf queue {
4119 type types-qos:network-queue-queue-id;
4120 default "1";
4121 description "Queue for packets in this forwarding class";
4122 }
4123
4124 leaf multicast-queue {
4125 type types-qos:network-queue-queue-id;
4126 default "9";
4127 description "Multicast queue for packets in this forwarding class";
4128 }
4129
4130 container egress-hsmda {
4131 description "Enter the egress-hsmda context";
4132
4133 leaf queue {
4134 type types-qos:egress-queue-id;
4135 description "Egress HSDMA queue for packets in this forwarding class";
4136 }
4137
4138 } // container egress-hsmda
4139
4140 } // list fc
4141
4142 list queue {
4143 key "queue-id";
4144 description "Enter the queue context";
4145
4146 leaf queue-id {
4147 type union {
4148 type string {
4149 length "1..64";
4150 pattern "<.*>" {
4151 error-message "Config Groups Regex Pattern";
4152 }
4153 }
4154 type types-qos:network-queue-queue-id;
4155 }
4156 description "HSMDA queue for packets in this forwarding class";
4157 }
4158
4159 leaf multipoint {
4160 type boolean;
4161 sros-ext:immutable;
4162 default "false";
4163 description "Apply as a multicast queue";
4164 }
4165
4166 leaf queue-type {
4167 type enumeration {
4168 enum "expedited" { value 1; }
4169 enum "auto-expedited" { value 2; }
4170 enum "best-effort" { value 3; }
4171 }
4172 sros-ext:immutable;
4173 default "auto-expedited";
4174 description "Priority that this queue receives from the hardware level schedulers";
4175 }
4176
4177 leaf cbs {
4178 type decimal64 {
4179 range "0.00..100.00";
4180 fraction-digits 2;
4181 }
4182 default "1.00";
4183 description "Reserved buffer space for the queue";
4184 }
4185
4186 leaf mbs {
4187 type decimal64 {
4188 range "0.00..100.00";
4189 fraction-digits 2;
4190 }
4191 default "100.00";
4192 description "Percentage of buffer space allowed for the queue";
4193 }
4194
4195 leaf avg-frame-overhead {
4196 type decimal64 {
4197 range "0.00..100.00";
4198 fraction-digits 2;
4199 }
4200 default "0.00";
4201 description "Encapsulation overhead to translate the packet based rate to frame based rate and vice versa";
4202 }
4203
4204 leaf hs-alt-port-class-pool {
4205 type boolean;
4206 default "false";
4207 description "Use HS alternate class port pool buffer for traffic";
4208 }
4209
4210 leaf hs-wrr-weight {
4211 type types-qos:hs-wrr-weight;
4212 default "1";
4213 description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler";
4214 }
4215
4216 leaf hs-class-weight {
4217 type types-qos:hs-class-weight;
4218 default "1";
4219 description "Scheduling class weight";
4220 }
4221
4222 leaf hs-mbs {
4223 type decimal64 {
4224 range "0.00..100.00";
4225 fraction-digits 2;
4226 }
4227 default "100.00";
4228 description "Percentage of buffer space allowed for the HS queue";
4229 }
4230
4231 container rate {
4232 description "Enter the rate context";
4233
4234 leaf pir {
4235 type int32 {
4236 range "1..100";
4237 }
4238 units "percent";
4239 default "100";
4240 description "PIR percentage rate";
4241 }
4242
4243 leaf cir {
4244 type int32 {
4245 range "0..100";
4246 }
4247 units "percent";
4248 default "0";
4249 description "CIR percentage rate";
4250 }
4251
4252 leaf fir {
4253 type int32 {
4254 range "0..100";
4255 }
4256 units "percent";
4257 default "0";
4258 description "Specifies the FIR percentage rate.";
4259 }
4260
4261 } // container rate
4262
4263 container port-parent {
4264 presence "Specifies whether this queue is parented by port-level scheduler.";
4265 description "Enter the port-parent context";
4266
4267 leaf level {
4268 type types-qos:hierarchy-level;
4269 default "1";
4270 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
4271 }
4272
4273 leaf weight {
4274 type types-qos:weight;
4275 default "1";
4276 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
4277 }
4278
4279 leaf cir-level {
4280 type types-qos:cir-level;
4281 default "0";
4282 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
4283 }
4284
4285 leaf cir-weight {
4286 type types-qos:cir-weight;
4287 default "0";
4288 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
4289 }
4290
4291 } // container port-parent
4292
4293 container adaptation-rule {
4294 description "Enter the adaptation-rule context";
4295
4296 leaf pir {
4297 type types-qos:adaptation-rule;
4298 default "closest";
4299 description "Constraint used when deriving the operational PIR value";
4300 }
4301
4302 leaf cir {
4303 type types-qos:adaptation-rule;
4304 default "closest";
4305 description "Constraint used when deriving the operational CIR value";
4306 }
4307
4308 leaf fir {
4309 type types-qos:adaptation-rule;
4310 default "closest";
4311 description
4312 "The adaptation rule to be used while computing the operational FIR
4313 value. The adaptation rule specifies the rules to compute the
4314 operational values while maintaining minimum offset.";
4315 }
4316
4317 } // container adaptation-rule
4318
4319 container drop-tail {
4320 description "Enter the drop-tail context";
4321
4322 container low {
4323 description "Enter the low context";
4324
4325 leaf percent-reduction-from-mbs {
4326 type types-qos:burst-percent;
4327 description "Low drop-tail percent from MBS that is reduced";
4328 }
4329
4330 } // container low
4331
4332 } // container drop-tail
4333
4334 container hs-wred-queue {
4335 description "Enter the hs-wred-queue context";
4336
4337 leaf policy {
4338 type types-sros:named-item;
4339 description "Slope policy name";
4340 }
4341
4342 } // container hs-wred-queue
4343
4344 } // list queue
4345
4346 list hs-wrr-group {
4347 key "group-id";
4348 description "Enter the hs-wrr-group context";
4349
4350 leaf group-id {
4351 type union {
4352 type string {
4353 length "1..64";
4354 pattern "<.*>" {
4355 error-message "Config Groups Regex Pattern";
4356 }
4357 }
4358 type types-qos:hs-wrr-group-id;
4359 }
4360 description "HS WRR group identifier";
4361 }
4362
4363 leaf hs-class-weight {
4364 type types-qos:hs-class-weight;
4365 default "1";
4366 description "Weight of scheduling class";
4367 }
4368
4369 leaf rate {
4370 type uint32 {
4371 range "1..100";
4372 }
4373 default "100";
4374 description "PIR rate";
4375 }
4376
4377 container adaptation-rule {
4378 description "Enter the adaptation-rule context";
4379
4380 leaf pir {
4381 type types-qos:adaptation-rule;
4382 default "closest";
4383 description "Constraint used when deriving the operational PIR value";
4384 }
4385
4386 } // container adaptation-rule
4387
4388 } // list hs-wrr-group
4389
4390 } // list network-queue
4391
4392 list shared-queue {
4393 key "shared-queue-policy-name";
4394 description "Enter the shared-queue context";
4395
4396 leaf shared-queue-policy-name {
4397 type union {
4398 type string {
4399 length "1..64";
4400 pattern "<.*>" {
4401 error-message "Config Groups Regex Pattern";
4402 }
4403 }
4404 type types-sros:named-item;
4405 }
4406 description "Name for the shared queue policy";
4407 }
4408
4409 leaf description {
4410 type types-sros:description-or-empty;
4411 description "Text description";
4412 }
4413
4414 list queue {
4415 key "queue-id";
4416 description "Enter the queue context";
4417
4418 leaf queue-id {
4419 type union {
4420 type string {
4421 length "1..64";
4422 pattern "<.*>" {
4423 error-message "Config Groups Regex Pattern";
4424 }
4425 }
4426 type int32 {
4427 range "1..32";
4428 }
4429 }
4430 description "Shared queue identifier";
4431 }
4432
4433 leaf multipoint {
4434 type boolean;
4435 default "false";
4436 description "Apply as a multicast queue";
4437 }
4438
4439 leaf queue-type {
4440 type enumeration {
4441 enum "expedited" { value 1; }
4442 enum "auto-expedited" { value 2; }
4443 enum "best-effort" { value 3; }
4444 }
4445 default "auto-expedited";
4446 description "Priority that this queue receives from the hardware level schedulers";
4447 }
4448
4449 leaf cbs {
4450 type int32 {
4451 range "0..100";
4452 }
4453 units "percent";
4454 default "0";
4455 description "Committed burst size as a percentage of the maximum reserved buffer space for the queue";
4456 }
4457
4458 leaf mbs {
4459 type int32 {
4460 range "0..100";
4461 }
4462 units "percent";
4463 default "100";
4464 description "Maximum burst size as a percentage of maximum reserved buffer space for the queue";
4465 }
4466
4467 container rate {
4468 description "Enter the rate context";
4469
4470 leaf pir {
4471 type int32 {
4472 range "1..100";
4473 }
4474 units "percent";
4475 default "100";
4476 description "PIR percentage rate";
4477 }
4478
4479 leaf cir {
4480 type int32 {
4481 range "0..100";
4482 }
4483 units "percent";
4484 default "0";
4485 description "CIR percentage rate";
4486 }
4487
4488 leaf fir {
4489 type int32 {
4490 range "0..100";
4491 }
4492 units "percent";
4493 default "0";
4494 description "Specifies the FIR percentage rate.";
4495 }
4496
4497 } // container rate
4498
4499 container drop-tail {
4500 description "Enter the drop-tail context";
4501
4502 container low {
4503 description "Enter the low context";
4504
4505 leaf percent-reduction-from-mbs {
4506 type types-qos:burst-percent;
4507 description "Low drop-tail percent from MBS that is reduced";
4508 }
4509
4510 } // container low
4511
4512 } // container drop-tail
4513
4514 } // list queue
4515
4516 list fc {
4517 key "fc-name";
4518 description "Enter the fc context";
4519
4520 leaf fc-name {
4521 type union {
4522 type string {
4523 length "1..64";
4524 pattern "<.*>" {
4525 error-message "Config Groups Regex Pattern";
4526 }
4527 }
4528 type types-sros:fc-name;
4529 }
4530 description "Forwarding class mapping to queue mappings";
4531 }
4532
4533 leaf queue {
4534 type int32 {
4535 range "1..8";
4536 }
4537 default "1";
4538 description "Logical queue that the traffic, classified into this forwarding class, should use";
4539 }
4540
4541 leaf broadcast-queue {
4542 type int32 {
4543 range "9..32";
4544 }
4545 default "17";
4546 description "Logical queue that the broadcast traffic, classified into this forwarding class, should use";
4547 }
4548
4549 leaf multicast-queue {
4550 type int32 {
4551 range "9..32";
4552 }
4553 default "9";
4554 description "Logical queue that the multicast traffic, classified into this forwarding class, should use";
4555 }
4556
4557 leaf unknown-queue {
4558 type int32 {
4559 range "9..32";
4560 }
4561 default "25";
4562 description "Logical queue that the unknown traffic, classified into this forwarding class, should use";
4563 }
4564
4565 } // list fc
4566
4567 } // list shared-queue
4568
4569 list adv-config-policy {
4570 key "adv-config-policy-name";
4571 max-elements 255;
4572 description "Enter the adv-config-policy context";
4573
4574 leaf adv-config-policy-name {
4575 type union {
4576 type string {
4577 length "1..64";
4578 pattern "<.*>" {
4579 error-message "Config Groups Regex Pattern";
4580 }
4581 }
4582 type types-sros:named-item;
4583 }
4584 description "Advanced QoS policy name";
4585 }
4586
4587 leaf description {
4588 type types-sros:description;
4589 description "Text description";
4590 }
4591
4592 container child-control {
4593 description "Enter the child-control context";
4594
4595 container bandwidth-distribution {
4596 description "Enter the bandwidth-distribution context";
4597
4598 leaf enqueue-on-pir-zero {
4599 type boolean;
4600 default "false";
4601 description "Enqueue the packets when bandwidth-distribution granularity rate is set to zero";
4602 }
4603
4604 leaf internal-scheduler-weight-mode {
4605 type types-qos:internal-scheduler-weight-mode;
4606 description "Weight mode applied to this advanced QoS policy";
4607 }
4608
4609 leaf limit-pir-zero-drain {
4610 type boolean;
4611 default "false";
4612 description "Throttle the queue draining based on bandwidth-distribution granularity rate";
4613 }
4614
4615 leaf lub-init-min-pir {
4616 type boolean;
4617 default "false";
4618 description "Apply minimum rate operational PIR to queue for use by enqueued packets prior to an HQoS iteration";
4619 }
4620
4621 container above-offered-cap {
4622 description "Enter the above-offered-cap context";
4623
4624 choice rate-or-percent-rate {
4625 case rate {
4626
4627 leaf rate {
4628 type union {
4629 type int64 {
4630 range "0..100000000";
4631 }
4632 type enumeration {
4633 enum "max" { value -1; }
4634 }
4635 }
4636 description "Explicit number to assign as limit to the child's fair share increase";
4637 }
4638
4639 }
4640 case percent {
4641
4642 leaf percent {
4643 type decimal64 {
4644 range "0.00..100.00";
4645 fraction-digits 2;
4646 }
4647 description "Percentage of the child's administrative PIR that is used as the fair share increase limit";
4648 }
4649
4650 }
4651 }
4652 } // container above-offered-cap
4653
4654 container granularity {
4655 description "Enter the granularity context";
4656
4657 choice rate-or-percent-rate {
4658 case rate {
4659
4660 leaf rate {
4661 type int64 {
4662 range "0..100000000";
4663 }
4664 description "Rounding rate step value";
4665 }
4666
4667 }
4668 case percent {
4669
4670 leaf percent {
4671 type decimal64 {
4672 range "0.00..100.00";
4673 fraction-digits 2;
4674 }
4675 description "Rounding percentage value for administratiive PIR";
4676 }
4677
4678 }
4679 }
4680 } // container granularity
4681
4682 } // container bandwidth-distribution
4683
4684 container offered-measurement {
4685 description "Enter the offered-measurement context";
4686
4687 leaf fast-start {
4688 type boolean;
4689 default "false";
4690 description "Allow fast detection of initial bandwidth on a child policer or queue associated with policy";
4691 }
4692
4693 leaf fast-stop {
4694 type boolean;
4695 default "false";
4696 description "Allow fast detection of lack of offered rate on a child policer or queue associated with the policy";
4697 }
4698
4699 leaf sample-interval {
4700 type uint32 {
4701 range "1..8";
4702 }
4703 default "1";
4704 description "Interval for sampling the child's offered rate";
4705 }
4706
4707 container add {
4708 description "Enter the add context";
4709
4710 leaf min-only {
4711 type boolean;
4712 default "false";
4713 description "Use specified increase value as a minimum offered rate even for inactive queues or policers";
4714 }
4715
4716 leaf active-min-only {
4717 type boolean;
4718 default "false";
4719 description "Use increase in rate or percentage as minimum offered rate only for active queues or policers";
4720 }
4721
4722 choice rate-or-percent-rate {
4723 case rate {
4724
4725 leaf rate {
4726 type int64 {
4727 range "0..100000000";
4728 }
4729 description "Rate value to add to child's offered rate";
4730 }
4731
4732 }
4733 case percent {
4734
4735 leaf percent {
4736 type decimal64 {
4737 range "0.00..100.00";
4738 fraction-digits 2;
4739 }
4740 description "Percentage of child's administrative PIR to add to child's offered rate";
4741 }
4742
4743 }
4744 }
4745 } // container add
4746
4747 container granularity {
4748 description "Enter the granularity context";
4749
4750 choice rate-or-percent-rate {
4751 case rate {
4752
4753 leaf rate {
4754 type int64 {
4755 range "0..100000000";
4756 }
4757 description "Value to use as child's offered rate change sensitivity value";
4758 }
4759
4760 }
4761 case percent {
4762
4763 leaf percent {
4764 type decimal64 {
4765 range "0.00..100.00";
4766 fraction-digits 2;
4767 }
4768 description "Percentage of child's administrative PIR used as threshold sensitivity to offered rate change";
4769 }
4770
4771 }
4772 }
4773 } // container granularity
4774
4775 container hold-time {
4776 description "Enter the hold-time context";
4777
4778 leaf high-rate {
4779 type uint32 {
4780 range "0..60";
4781 }
4782 default "0";
4783 description "Time during which current offered rate is maintained for a child policer or queue";
4784 }
4785
4786 leaf active-min-only {
4787 type boolean;
4788 default "false";
4789 description "Use specified increase value as minimum offered rate only for active queues or policers";
4790 }
4791
4792 } // container hold-time
4793
4794 container max-decrement {
4795 description "Enter the max-decrement context";
4796
4797 choice rate-or-percent-rate {
4798 case rate {
4799
4800 leaf rate {
4801 type int64 {
4802 range "0..100000000";
4803 }
4804 description "Value to use as the decrement limit to offered rate change";
4805 }
4806
4807 }
4808 case percent {
4809
4810 leaf percent {
4811 type decimal64 {
4812 range "0.00..100.00";
4813 fraction-digits 2;
4814 }
4815 description "Value of the child's administrative PIR to use as the decrement limit to offered rate change";
4816 }
4817
4818 }
4819 }
4820 } // container max-decrement
4821
4822 container time-average-factor {
4823 description "Enter the time-average-factor context";
4824
4825 leaf weighting-factor {
4826 type uint32 {
4827 range "0..64";
4828 }
4829 default "0";
4830 description "New offered rate with a sample of the previous offered rate";
4831 }
4832
4833 leaf dec-only {
4834 type boolean;
4835 default "false";
4836 description "Apply time average factor adjustment when the offered rate decreases compared to previous";
4837 }
4838
4839 } // container time-average-factor
4840
4841 } // container offered-measurement
4842
4843 } // container child-control
4844
4845 } // list adv-config-policy
4846
4847 list mlppp-profile-ingress {
4848 key "mc-mlppp-ingress-prof-index";
4849 max-elements 128;
4850 description "Enter the mlppp-profile-ingress context";
4851
4852 leaf mc-mlppp-ingress-prof-index {
4853 type union {
4854 type string {
4855 length "1..64";
4856 pattern "<.*>" {
4857 error-message "Config Groups Regex Pattern";
4858 }
4859 }
4860 type uint32 {
4861 range "1..65535";
4862 }
4863 }
4864 description "Index of the ingress MultiClass MLPPP profile";
4865 }
4866
4867 leaf description {
4868 type types-sros:description-or-empty;
4869 description "Text description";
4870 }
4871
4872 list class {
4873 key "class-id";
4874 description "Enter the class context";
4875
4876 leaf class-id {
4877 type union {
4878 type string {
4879 length "1..64";
4880 pattern "<.*>" {
4881 error-message "Config Groups Regex Pattern";
4882 }
4883 }
4884 type int32 {
4885 range "0..3";
4886 }
4887 }
4888 description "Policy class";
4889 }
4890
4891 leaf reassembly-timeout {
4892 type uint32 {
4893 range "1..1000";
4894 }
4895 default "10";
4896 description "Reassembly timeout for this policy";
4897 }
4898
4899 } // list class
4900
4901 } // list mlppp-profile-ingress
4902
4903 list mlppp-profile-egress {
4904 key "mc-mlppp-egress-prof-index";
4905 max-elements 128;
4906 description "Enter the mlppp-profile-egress context";
4907
4908 leaf mc-mlppp-egress-prof-index {
4909 type union {
4910 type string {
4911 length "1..64";
4912 pattern "<.*>" {
4913 error-message "Config Groups Regex Pattern";
4914 }
4915 }
4916 type uint32 {
4917 range "1..65535";
4918 }
4919 }
4920 description "Index of the egress MultiClass MLPPP profile";
4921 }
4922
4923 leaf description {
4924 type types-sros:description-or-empty;
4925 description "Text description";
4926 }
4927
4928 list class {
4929 key "class-id";
4930 description "Enter the class context";
4931
4932 leaf class-id {
4933 type union {
4934 type string {
4935 length "1..64";
4936 pattern "<.*>" {
4937 error-message "Config Groups Regex Pattern";
4938 }
4939 }
4940 type int32 {
4941 range "0..3";
4942 }
4943 }
4944 description "Policy class";
4945 }
4946
4947 leaf mir {
4948 type uint32 {
4949 range "1..100";
4950 }
4951 description "Minimum information rate (MIR) as percentage";
4952 }
4953
4954 leaf max-queue-size {
4955 type uint32 {
4956 range "1..1000";
4957 }
4958 default "25";
4959 description "Buffer queue size";
4960 }
4961
4962 leaf weight {
4963 type uint32 {
4964 range "1..100";
4965 }
4966 description "Weight of this multiclass class as a percentage";
4967 }
4968
4969 } // list class
4970
4971 list fc {
4972 key "fc-name";
4973 description "Enter the fc context";
4974
4975 leaf fc-name {
4976 type union {
4977 type string {
4978 length "1..64";
4979 pattern "<.*>" {
4980 error-message "Config Groups Regex Pattern";
4981 }
4982 }
4983 type types-sros:fc-name;
4984 }
4985 description "Forwarding class name";
4986 }
4987
4988 leaf mlppp-class {
4989 type uint32 {
4990 range "0..3";
4991 }
4992 default "0";
4993 description "Mapping of the system forwarding class to the MLPPP classes";
4994 }
4995
4996 } // list fc
4997
4998 } // list mlppp-profile-egress
4999
5000 list mc-fr-profile-ingress {
5001 key "mc-fr-ingress-prof-index";
5002 max-elements 128;
5003 description "Enter the mc-fr-profile-ingress context";
5004
5005 leaf mc-fr-ingress-prof-index {
5006 type union {
5007 type string {
5008 length "1..64";
5009 pattern "<.*>" {
5010 error-message "Config Groups Regex Pattern";
5011 }
5012 }
5013 type uint32 {
5014 range "1..65535";
5015 }
5016 }
5017 description "Index of the ingress MultiClass Frame Relay profile";
5018 }
5019
5020 leaf description {
5021 type types-sros:description;
5022 description "Text description";
5023 }
5024
5025 list class {
5026 key "class-id";
5027 description "Enter the class context";
5028
5029 leaf class-id {
5030 type union {
5031 type string {
5032 length "1..64";
5033 pattern "<.*>" {
5034 error-message "Config Groups Regex Pattern";
5035 }
5036 }
5037 type int32 {
5038 range "0..3";
5039 }
5040 }
5041 description "Frame-relay ingress class per multi-class frame-relay ingress profile";
5042 }
5043
5044 leaf reassembly-timeout {
5045 type uint32 {
5046 range "1..1000";
5047 }
5048 default "25";
5049 description "Reassembly timeout for a specific frame-relay multi-class ingress class";
5050 }
5051
5052 } // list class
5053
5054 } // list mc-fr-profile-ingress
5055
5056 list mc-fr-profile-egress {
5057 key "mc-fr-egress-prof-index";
5058 max-elements 128;
5059 description "Enter the mc-fr-profile-egress context";
5060
5061 leaf mc-fr-egress-prof-index {
5062 type union {
5063 type string {
5064 length "1..64";
5065 pattern "<.*>" {
5066 error-message "Config Groups Regex Pattern";
5067 }
5068 }
5069 type uint32 {
5070 range "1..65535";
5071 }
5072 }
5073 description "Egress MultiClass Frame Relay Profile Index";
5074 }
5075
5076 leaf description {
5077 type types-sros:description;
5078 description "Text description";
5079 }
5080
5081 list class {
5082 key "class-id";
5083 description "Enter the class context";
5084
5085 leaf class-id {
5086 type union {
5087 type string {
5088 length "1..64";
5089 pattern "<.*>" {
5090 error-message "Config Groups Regex Pattern";
5091 }
5092 }
5093 type int32 {
5094 range "0..3";
5095 }
5096 }
5097 description "Frame-relay egress class per multi-class frame-relay egress profile";
5098 }
5099
5100 leaf mir {
5101 type uint32 {
5102 range "1..100";
5103 }
5104 description "Minimum information rate (MIR) as percentage";
5105 }
5106
5107 leaf max-queue-size {
5108 type uint32 {
5109 range "1..1000";
5110 }
5111 default "10";
5112 description "Buffer queue size";
5113 }
5114
5115 leaf weight {
5116 type uint32 {
5117 range "1..100";
5118 }
5119 description "Weight of this multiclass class as a percentage";
5120 }
5121
5122 } // list class
5123
5124 } // list mc-fr-profile-egress
5125
5126 list policer-control-policy {
5127 key "policer-control-policy-name";
5128 max-elements 2047;
5129 description "Enter the policer-control-policy context";
5130
5131 leaf policer-control-policy-name {
5132 type union {
5133 type string {
5134 length "1..64";
5135 pattern "<.*>" {
5136 error-message "Config Groups Regex Pattern";
5137 }
5138 }
5139 type types-sros:named-item;
5140 }
5141 description "Name of Policer Control Policy";
5142 }
5143
5144 leaf description {
5145 type types-sros:description;
5146 description "Text description";
5147 }
5148
5149 container root {
5150 description "Enter the root context";
5151
5152 leaf max-rate {
5153 type types-qos:max-rate;
5154 default "max";
5155 description "Maximum frame based bandwidth limit of this policer";
5156 }
5157
5158 leaf profile-preferred {
5159 type boolean;
5160 default "false";
5161 description "Provide a preference to consume PIR bucket tokens at a given priority level";
5162 }
5163
5164 container priority-mbs-thresholds {
5165 description "Enter the priority-mbs-thresholds context";
5166
5167 leaf min-thresh-separation {
5168 type union {
5169 type types-qos:bytes {
5170 range "0..16777216";
5171 }
5172 type enumeration {
5173 enum "auto" { value -1; }
5174 }
5175 }
5176 units "bytes";
5177 default "auto";
5178 description "Minimum amount of separation buffer space";
5179 }
5180
5181 list priority {
5182 key "priority-level";
5183 description "Enter the priority context";
5184
5185 leaf priority-level {
5186 type union {
5187 type string {
5188 length "1..64";
5189 pattern "<.*>" {
5190 error-message "Config Groups Regex Pattern";
5191 }
5192 }
5193 type types-qos:hierarchy-level;
5194 }
5195 description "Priority level";
5196 }
5197
5198 leaf mbs-contribution {
5199 type union {
5200 type types-qos:bytes {
5201 range "0..16777216";
5202 }
5203 type enumeration {
5204 enum "auto" { value -1; }
5205 }
5206 }
5207 units "bytes";
5208 default "auto";
5209 description "Minimum amount of cumulative buffer space";
5210 }
5211
5212 leaf fixed-mbs {
5213 type boolean;
5214 default "false";
5215 description "Consider cumulative buffer space to be fixed";
5216 }
5217
5218 } // list priority
5219
5220 } // container priority-mbs-thresholds
5221
5222 } // container root
5223
5224 list tier {
5225 key "tier-id";
5226 description "Enter the tier context";
5227
5228 leaf tier-id {
5229 type union {
5230 type string {
5231 length "1..64";
5232 pattern "<.*>" {
5233 error-message "Config Groups Regex Pattern";
5234 }
5235 }
5236 type int32 {
5237 range "1..2";
5238 }
5239 }
5240 description "Tier for policer control policer arbiter";
5241 }
5242
5243 list arbiter {
5244 key "arbiter-name";
5245 description "Enter the arbiter context";
5246
5247 leaf arbiter-name {
5248 type union {
5249 type string {
5250 length "1..64";
5251 pattern "<.*>" {
5252 error-message "Config Groups Regex Pattern";
5253 }
5254 }
5255 type types-sros:named-item;
5256 }
5257 description "Arbiter name";
5258 }
5259
5260 leaf description {
5261 type types-sros:description;
5262 description "Text description";
5263 }
5264
5265 leaf rate {
5266 type types-qos:max-rate;
5267 default "max";
5268 description "Maximum frame based bandwidth limit";
5269 }
5270
5271 container arbiter-parent {
5272 description "Enter the arbiter-parent context";
5273
5274 leaf arbiter-name {
5275 type types-sros:named-item;
5276 description "Specifies the arbiter to which this policer is feeding to.";
5277 }
5278
5279 leaf level {
5280 type types-qos:hierarchy-level;
5281 default "1";
5282 description "Specifies the level of priority while feeding to the parent.";
5283 }
5284
5285 leaf weight {
5286 type types-qos:weight {
5287 range "1..100";
5288 }
5289 default "1";
5290 description
5291 "Specifies the weight that needs to be used by the arbiter to which
5292 this policer is feeding to.";
5293 }
5294
5295 } // container arbiter-parent
5296
5297 } // list arbiter
5298
5299 } // list tier
5300
5301 } // list policer-control-policy
5302
5303 container queue-group-templates {
5304 description "Enter the queue-group-templates context";
5305
5306 container ingress {
5307 description "Enter the ingress context";
5308
5309 list queue-group {
5310 key "ingress-queue-group-name";
5311 description "Enter the queue-group context";
5312
5313 leaf ingress-queue-group-name {
5314 type union {
5315 type string {
5316 length "1..64";
5317 pattern "<.*>" {
5318 error-message "Config Groups Regex Pattern";
5319 }
5320 }
5321 type types-sros:named-item;
5322 }
5323 description "Name of Ingress Queue Group";
5324 }
5325
5326 leaf description {
5327 type types-sros:description;
5328 description "Text description";
5329 }
5330
5331 list queue {
5332 key "queue-id";
5333 description "Enter the queue context";
5334
5335 leaf queue-id {
5336 type union {
5337 type string {
5338 length "1..64";
5339 pattern "<.*>" {
5340 error-message "Config Groups Regex Pattern";
5341 }
5342 }
5343 type types-qos:ingress-queue-id;
5344 }
5345 description "Ingress Queue-Group Queue identifier";
5346 }
5347
5348 leaf multipoint {
5349 type boolean;
5350 sros-ext:immutable;
5351 default "false";
5352 description "Create an ingress multipoint queue";
5353 }
5354
5355 leaf queue-type {
5356 type types-qos:queue-group-queue-type;
5357 sros-ext:immutable;
5358 default "best-effort";
5359 description "Priority that this queue receives from the hardware level schedulers";
5360 }
5361
5362 leaf queue-mode {
5363 type types-qos:queue-mode;
5364 sros-ext:immutable;
5365 default "priority";
5366 description
5367 "Specifies the mode in which the queue is operating.
5368
5369 This attribute is associated with the queue at the time of creation and
5370 cannot be modified thereafter.";
5371 }
5372
5373 leaf cbs {
5374 type union {
5375 type types-qos:bytes {
5376 range "0..1048576";
5377 }
5378 type enumeration {
5379 enum "auto" { value -1; }
5380 }
5381 }
5382 units "kilobytes";
5383 default "auto";
5384 description "Reserved buffer space for the queue";
5385 }
5386
5387 leaf mbs {
5388 type union {
5389 type types-qos:bytes {
5390 range "0..1073741824";
5391 }
5392 type enumeration {
5393 enum "auto" { value -1; }
5394 }
5395 }
5396 units "bytes";
5397 default "auto";
5398 description "Maximum buffer space that is allowed for queue";
5399 }
5400
5401 leaf burst-limit {
5402 type union {
5403 type types-qos:bytes {
5404 range "1..14000000";
5405 }
5406 type enumeration {
5407 enum "auto" { value -1; }
5408 }
5409 }
5410 default "auto";
5411 description "Explicit shaping burst size of a queue";
5412 }
5413
5414 leaf adv-config-policy {
5415 type types-sros:named-item;
5416 description "Name of the advanced configuration policy to apply with this queue";
5417 }
5418
5419 leaf packet-byte-offset {
5420 type types-qos:per-packet-offset;
5421 default "0";
5422 description "Value of the adjustment on the size of each packet for queue accounting";
5423 }
5424
5425 leaf cir-non-profiling {
5426 type boolean;
5427 default "false";
5428 description
5429 "Specifies that the CIR affect the scheduling priority of a queue but
5430 does not modify the profile of packets depending on the specified CIR.";
5431 }
5432
5433 container scheduler-parent {
5434 description "Enter the scheduler-parent context";
5435
5436 leaf scheduler-name {
5437 type types-sros:named-item;
5438 description "Scheduler to which this queue feeds";
5439 }
5440
5441 leaf level {
5442 type types-qos:hierarchy-level;
5443 default "1";
5444 description "Level of priority while feeding to the parent";
5445 }
5446
5447 leaf weight {
5448 type types-qos:weight;
5449 default "1";
5450 description "Weight to be used by the scheduler for feeding this queue";
5451 }
5452
5453 leaf cir-level {
5454 type types-qos:cir-level;
5455 default "0";
5456 description "Level of priority while feeding to the parent";
5457 }
5458
5459 leaf cir-weight {
5460 type types-qos:cir-weight;
5461 default "1";
5462 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
5463 }
5464
5465 } // container scheduler-parent
5466
5467 container adaptation-rule {
5468 description "Enter the adaptation-rule context";
5469
5470 leaf pir {
5471 type types-qos:adaptation-rule;
5472 default "closest";
5473 description "Adaptation rule to apply when assigning the operational PIR value";
5474 }
5475
5476 leaf cir {
5477 type types-qos:adaptation-rule;
5478 default "closest";
5479 description "Constraint used when deriving the operational CIR value";
5480 }
5481
5482 leaf fir {
5483 type types-qos:adaptation-rule;
5484 default "closest";
5485 description
5486 "The adaptation rule to be used while computing the operational FIR
5487 value. The adaptation rule specifies the rules to compute the
5488 operational values while maintaining minimum offset.";
5489 }
5490
5491 } // container adaptation-rule
5492
5493 container rate {
5494 description "Enter the rate context";
5495
5496 leaf pir {
5497 type types-qos:queue-pir-rate;
5498 units "kilobps";
5499 default "max";
5500 description "CIR";
5501 }
5502
5503 choice cir-and-fir-or-policed {
5504 default "cir-and-fir";
5505 case cir-and-fir {
5506
5507 leaf cir {
5508 type types-qos:queue-cir-rate;
5509 units "kilobps";
5510 default "0";
5511 description "Specifies administrative CIR.";
5512 }
5513
5514 leaf fir {
5515 type types-qos:queue-cir-rate;
5516 units "kilobps";
5517 default "0";
5518 description "Specifies administrative FIR.";
5519 }
5520
5521 }
5522 case police {
5523
5524 leaf police {
5525 type empty;
5526 description
5527 "Specifies that the out of profile traffic feeding into the physical queue
5528 instance should be dropped";
5529 }
5530
5531 }
5532 }
5533 } // container rate
5534
5535 container drop-tail {
5536 description "Enter the drop-tail context";
5537
5538 container low {
5539 description "Enter the low context";
5540
5541 leaf percent-reduction-from-mbs {
5542 type types-qos:burst-percent;
5543 description "Low drop-tail percent from MBS that is reduced";
5544 }
5545
5546 } // container low
5547
5548 } // container drop-tail
5549
5550 } // list queue
5551
5552 list policer {
5553 key "policer-id";
5554 description "Enter the policer context";
5555
5556 leaf policer-id {
5557 type union {
5558 type string {
5559 length "1..64";
5560 pattern "<.*>" {
5561 error-message "Config Groups Regex Pattern";
5562 }
5563 }
5564 type types-qos:ingress-policer-id {
5565 range "1..32";
5566 }
5567 }
5568 description "Ingress Queue-Group Policer identifier";
5569 }
5570
5571 leaf description {
5572 type types-sros:description;
5573 description "Text description";
5574 }
5575
5576 leaf cbs {
5577 type union {
5578 type types-qos:bytes {
5579 range "0..16777216";
5580 }
5581 type enumeration {
5582 enum "auto" { value -1; }
5583 }
5584 }
5585 units "bytes";
5586 default "auto";
5587 description "Exceed threshold of the CIR leaky bucket of this policer";
5588 }
5589
5590 leaf mbs {
5591 type union {
5592 type types-qos:bytes {
5593 range "0..16777216";
5594 }
5595 type enumeration {
5596 enum "auto" { value -1; }
5597 }
5598 }
5599 units "bytes";
5600 default "auto";
5601 description "High priority 'violate' threshold of PIR leaky bucket of this policer";
5602 }
5603
5604 leaf high-prio-only {
5605 type types-qos:burst-percent;
5606 description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic";
5607 }
5608
5609 leaf packet-byte-offset {
5610 type types-qos:per-packet-offset;
5611 default "0";
5612 description "Size of each packet, handled by the policer, to be modified";
5613 }
5614
5615 leaf profile-capped {
5616 type boolean;
5617 default "false";
5618 description "Enforce a limit on the profile";
5619 }
5620
5621 leaf stat-mode {
5622 type types-qos:ingress-policer-stat-mode;
5623 default "minimal";
5624 description "Mode of statistics collected by the policer";
5625 }
5626
5627 leaf adv-config-policy {
5628 type types-sros:named-item;
5629 description "Name of the advanced configuration policy to apply with this queue";
5630 }
5631
5632 container adaptation-rule {
5633 description "Enter the adaptation-rule context";
5634
5635 leaf pir {
5636 type types-qos:adaptation-rule;
5637 default "closest";
5638 description "Constraint used when deriving the operational PIR value";
5639 }
5640
5641 leaf cir {
5642 type types-qos:adaptation-rule;
5643 default "closest";
5644 description "Constraint used when deriving the operational CIR value";
5645 }
5646
5647 } // container adaptation-rule
5648
5649 container arbiter-parent {
5650 description "Enter the arbiter-parent context";
5651
5652 leaf arbiter-name {
5653 type types-sros:named-item;
5654 description "Arbiter to which this policer feeds";
5655 }
5656
5657 leaf level {
5658 type types-qos:hierarchy-level;
5659 default "1";
5660 description "Level of priority while feeding to the parent";
5661 }
5662
5663 leaf weight {
5664 type types-qos:weight {
5665 range "1..100";
5666 }
5667 default "1";
5668 description "Weight to be used by the arbiter for feeding this policer";
5669 }
5670
5671 } // container arbiter-parent
5672
5673 container rate {
5674 description "Enter the rate context";
5675
5676 leaf pir {
5677 type types-qos:policer-pir-rate;
5678 units "kilobps";
5679 default "max";
5680 description "CIR";
5681 }
5682
5683 leaf cir {
5684 type types-qos:policer-cir-rate;
5685 units "kilobps";
5686 default "0";
5687 description "CIR";
5688 }
5689
5690 } // container rate
5691
5692 } // list policer
5693
5694 } // list queue-group
5695
5696 } // container ingress
5697
5698 container egress {
5699 description "Enter the egress context";
5700
5701 list queue-group {
5702 key "egress-queue-group-name";
5703 description "Enter the queue-group context";
5704
5705 leaf egress-queue-group-name {
5706 type union {
5707 type string {
5708 length "1..64";
5709 pattern "<.*>" {
5710 error-message "Config Groups Regex Pattern";
5711 }
5712 }
5713 type types-sros:named-item;
5714 }
5715 description "Name of Egress Queue Group";
5716 }
5717
5718 leaf description {
5719 type types-sros:description-or-empty;
5720 description "Text description";
5721 }
5722
5723 leaf queues-hqos-manageable {
5724 type boolean;
5725 default "true";
5726 description "Manage queues through the Hierarchical QoS process";
5727 }
5728
5729 leaf hs-attachment-policy {
5730 type types-sros:named-item;
5731 description "HS attachment policy applied";
5732 }
5733
5734 container hsmda-queues {
5735 description "Enter the hsmda-queues context";
5736
5737 leaf low-burst-max-class {
5738 type uint32 {
5739 range "1..8";
5740 }
5741 default "8";
5742 description
5743 "Specifies which class should use the low priority burst threshold.
5744
5745 Use the low priority burst threshold for all classes starting from 1,
5746 up to and including that specified by this value.
5747
5748 Use the high priority burst threshold for all classes greater than the this
5749 value, up to and including class 8.";
5750 }
5751
5752 leaf packet-byte-offset {
5753 type types-qos:egress-per-packet-offset;
5754 default "0";
5755 description "Packet byte offset to use for the HSMDA egress queues";
5756 }
5757
5758 leaf wrr-policy {
5759 type types-sros:named-item;
5760 description "WRR policy to use on this HSMDA egress queue";
5761 }
5762
5763 list queue {
5764 key "queue-id";
5765 description "Enter the queue context";
5766
5767 leaf queue-id {
5768 type union {
5769 type string {
5770 length "1..64";
5771 pattern "<.*>" {
5772 error-message "Config Groups Regex Pattern";
5773 }
5774 }
5775 type types-qos:egress-queue-id;
5776 }
5777 description "Egress HSMDA queue ID";
5778 }
5779
5780 leaf burst-limit {
5781 type union {
5782 type types-qos:bytes {
5783 range "1..1000000";
5784 }
5785 type enumeration {
5786 enum "auto" { value -1; }
5787 }
5788 }
5789 default "auto";
5790 description "Explicit shaping burst size of a queue";
5791 }
5792
5793 leaf mbs {
5794 type types-qos:hsmda-queue-burst-size;
5795 units "bytes";
5796 description "Buffer space allowed for the queue";
5797 }
5798
5799 leaf rate {
5800 type types-qos:hsmda-queue-pir-rate;
5801 default "max";
5802 description "PIR rate";
5803 }
5804
5805 leaf slope-policy {
5806 type types-sros:named-item;
5807 description "Name of the slope policy which overrides the default policy for the named buffer pool";
5808 }
5809
5810 leaf wrr-weight {
5811 type types-qos:hsmda-wrr-weight;
5812 default "1";
5813 description "Weight value for the HSMDA queue";
5814 }
5815
5816 container adaptation-rule {
5817 description "Enter the adaptation-rule context";
5818
5819 leaf pir {
5820 type types-qos:adaptation-rule;
5821 default "closest";
5822 description "Constraint used when deriving the operational PIR value";
5823 }
5824
5825 } // container adaptation-rule
5826
5827 } // list queue
5828
5829 } // container hsmda-queues
5830
5831 list fc {
5832 key "fc-name";
5833 description "Enter the fc context";
5834
5835 leaf fc-name {
5836 type union {
5837 type string {
5838 length "1..64";
5839 pattern "<.*>" {
5840 error-message "Config Groups Regex Pattern";
5841 }
5842 }
5843 type types-sros:fc-name;
5844 }
5845 description "Forwarding class name";
5846 }
5847
5848 container queue {
5849 description "Enter the queue context";
5850
5851 choice queue-or-none {
5852 default "none";
5853 case queue-id {
5854
5855 leaf queue-id {
5856 type types-qos:egress-queue-id;
5857 description "Queue defined in forwarding class mapping";
5858 }
5859
5860 }
5861 case none {
5862
5863 leaf none {
5864 type empty;
5865 description "No mid-pool is associated with this parent-pool";
5866 }
5867
5868 }
5869 }
5870 } // container queue
5871
5872 } // list fc
5873
5874 list queue {
5875 key "queue-id";
5876 description "Enter the queue context";
5877
5878 leaf queue-id {
5879 type union {
5880 type string {
5881 length "1..64";
5882 pattern "<.*>" {
5883 error-message "Config Groups Regex Pattern";
5884 }
5885 }
5886 type types-qos:egress-queue-id;
5887 }
5888 description "Egress Queue-Group queue identifier";
5889 }
5890
5891 leaf queue-type {
5892 type enumeration {
5893 enum "expedited" { value 1; }
5894 enum "best-effort" { value 3; }
5895 }
5896 default "best-effort";
5897 description "Priority that this queue receives from the hardware level schedulers";
5898 }
5899
5900 leaf adv-config-policy {
5901 type types-sros:named-item;
5902 description "Name of the advanced configuration policy";
5903 }
5904
5905 leaf burst-limit {
5906 type union {
5907 type types-qos:bytes {
5908 range "1..14000000";
5909 }
5910 type enumeration {
5911 enum "auto" { value -1; }
5912 }
5913 }
5914 default "auto";
5915 description "Explicit shaping burst size of a queue";
5916 }
5917
5918 leaf cbs {
5919 type union {
5920 type int32 {
5921 range "0..1048576";
5922 }
5923 type enumeration {
5924 enum "auto" { value -1; }
5925 }
5926 }
5927 units "kilobytes";
5928 default "auto";
5929 description "Reserved buffer space for the queue";
5930 }
5931
5932 leaf mbs {
5933 type union {
5934 type types-qos:bytes {
5935 range "0..1073741824";
5936 }
5937 type enumeration {
5938 enum "auto" { value -1; }
5939 }
5940 }
5941 units "bytes";
5942 default "auto";
5943 description "Buffer space allowed for the queue";
5944 }
5945
5946 leaf packet-byte-offset {
5947 type types-qos:egress-per-packet-offset;
5948 default "0";
5949 description "Packet byte offset for addition of policing information";
5950 }
5951
5952 leaf dynamic-mbs {
5953 type boolean;
5954 default "false";
5955 description "Allow modifying of the MBS size for a queue to maintain maximum latency for traffic";
5956 }
5957
5958 leaf queue-delay {
5959 type uint32 {
5960 range "1..5000";
5961 }
5962 units "milliseconds";
5963 description "Target queue delay for forwarding packets through this queue";
5964 }
5965
5966 leaf hs-alt-port-class-pool {
5967 type boolean;
5968 default "false";
5969 description "Use HS alternate class port pool buffer for traffic";
5970 }
5971
5972 leaf hs-wrr-weight {
5973 type types-qos:hs-wrr-weight;
5974 default "1";
5975 description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler";
5976 }
5977
5978 leaf hs-class-weight {
5979 type types-qos:hs-class-weight;
5980 default "1";
5981 description "Scheduling class weight";
5982 }
5983
5984 choice rate-or-percent-rate {
5985 default "rate";
5986 case rate {
5987
5988 container rate {
5989 description "Enter the rate context";
5990
5991 leaf pir {
5992 type types-qos:queue-pir-rate;
5993 units "kilobps";
5994 default "max";
5995 description "Administrative PIR";
5996 }
5997
5998 leaf cir {
5999 type types-qos:queue-cir-rate;
6000 units "kilobps";
6001 default "0";
6002 description "Administrative CIR";
6003 }
6004
6005 } // container rate
6006
6007 }
6008 case percent-rate {
6009
6010 container percent-rate {
6011 description "Enter the percent-rate context";
6012
6013 leaf pir {
6014 type decimal64 {
6015 range "0.01..100.00";
6016 fraction-digits 2;
6017 }
6018 description "Administrative PIR percent";
6019 }
6020
6021 leaf cir {
6022 type decimal64 {
6023 range "0.00..100.00";
6024 fraction-digits 2;
6025 }
6026 default "0.00";
6027 description "Administrative CIR percent";
6028 }
6029
6030 } // container percent-rate
6031
6032 }
6033 }
6034 choice parent-mapping {
6035 case scheduler-parent {
6036
6037 container scheduler-parent {
6038 presence "Specifies whether this queue is parented by scheduler.";
6039 description "Enter the scheduler-parent context";
6040
6041 leaf scheduler-name {
6042 type types-sros:named-item;
6043 mandatory true;
6044 description "Scheduler to which this queue feeds";
6045 }
6046
6047 leaf level {
6048 type types-qos:hierarchy-level;
6049 default "1";
6050 description "Level of priority while feeding to the parent";
6051 }
6052
6053 leaf weight {
6054 type types-qos:weight;
6055 default "1";
6056 description "Weight to be used by the scheduler for feeding this queue";
6057 }
6058
6059 leaf cir-level {
6060 type types-qos:cir-level;
6061 default "0";
6062 description "Level of priority while feeding to the parent";
6063 }
6064
6065 leaf cir-weight {
6066 type types-qos:cir-weight;
6067 default "1";
6068 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
6069 }
6070
6071 } // container scheduler-parent
6072
6073 }
6074 case port-parent {
6075
6076 container port-parent {
6077 presence "Specifies whether this queue is parented by port-level scheduler.";
6078 description "Enter the port-parent context";
6079
6080 leaf level {
6081 type types-qos:hierarchy-level;
6082 default "1";
6083 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
6084 }
6085
6086 leaf weight {
6087 type types-qos:weight;
6088 default "1";
6089 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
6090 }
6091
6092 leaf cir-level {
6093 type types-qos:cir-level;
6094 default "0";
6095 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
6096 }
6097
6098 leaf cir-weight {
6099 type types-qos:cir-weight;
6100 default "0";
6101 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
6102 }
6103
6104 } // container port-parent
6105
6106 }
6107 }
6108 container adaptation-rule {
6109 description "Enter the adaptation-rule context";
6110
6111 leaf pir {
6112 type types-qos:adaptation-rule;
6113 default "closest";
6114 description "Constraint used when deriving the operational PIR value";
6115 }
6116
6117 leaf cir {
6118 type types-qos:adaptation-rule;
6119 default "closest";
6120 description "Constraint used when deriving the operational CIR value";
6121 }
6122
6123 } // container adaptation-rule
6124
6125 container wred-queue {
6126 description "Enter the wred-queue context";
6127
6128 leaf policy {
6129 type types-sros:named-item;
6130 description "Slope policy name";
6131 }
6132
6133 leaf mode {
6134 type types-qos:wred-queue-mode;
6135 description "Generic pool association of the queue to allow queue-specific WRED slopes";
6136 }
6137
6138 leaf usage {
6139 type types-qos:wred-queue-slope-usage;
6140 description "Specifies which slopes are active for given slope-mode";
6141 }
6142
6143 } // container wred-queue
6144
6145 container drop-tail {
6146 description "Enter the drop-tail context";
6147
6148 container highplus {
6149 description "Enter the highplus context";
6150
6151 leaf percent-reduction-from-mbs {
6152 type types-qos:burst-percent;
6153 description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets";
6154 }
6155
6156 } // container highplus
6157
6158 container high {
6159 description "Enter the high context";
6160
6161 leaf percent-reduction-from-mbs {
6162 type types-qos:burst-percent;
6163 description "Percentage of drop-tail being that is reduced from MBS for high profile packets";
6164 }
6165
6166 } // container high
6167
6168 container low {
6169 description "Enter the low context";
6170
6171 leaf percent-reduction-from-mbs {
6172 type types-qos:burst-percent;
6173 description "Low drop-tail percent from MBS that is reduced";
6174 }
6175
6176 } // container low
6177
6178 container exceed {
6179 description "Enter the exceed context";
6180
6181 leaf percent-reduction-from-mbs {
6182 type types-qos:burst-percent;
6183 description "Percentage of drop-tail that is reduced from MBS for exceed profile packets";
6184 }
6185
6186 } // container exceed
6187
6188 } // container drop-tail
6189
6190 container hs-wred-queue {
6191 description "Enter the hs-wred-queue context";
6192
6193 leaf policy {
6194 type types-sros:named-item;
6195 description "Slope policy name";
6196 }
6197
6198 } // container hs-wred-queue
6199
6200 } // list queue
6201
6202 list policer {
6203 key "policer-id";
6204 description "Enter the policer context";
6205
6206 leaf policer-id {
6207 type union {
6208 type string {
6209 length "1..64";
6210 pattern "<.*>" {
6211 error-message "Config Groups Regex Pattern";
6212 }
6213 }
6214 type types-qos:egress-policer-id;
6215 }
6216 description "Egress Queue-Group Policer identifier";
6217 }
6218
6219 leaf description {
6220 type types-sros:description;
6221 description "Text description";
6222 }
6223
6224 leaf cbs {
6225 type union {
6226 type types-qos:bytes {
6227 range "0..16777216";
6228 }
6229 type enumeration {
6230 enum "auto" { value -1; }
6231 }
6232 }
6233 units "bytes";
6234 default "auto";
6235 description "Exceed threshold of the CIR leaky bucket of this policer";
6236 }
6237
6238 leaf mbs {
6239 type union {
6240 type types-qos:bytes {
6241 range "0..16777216";
6242 }
6243 type enumeration {
6244 enum "auto" { value -1; }
6245 }
6246 }
6247 units "bytes";
6248 default "auto";
6249 description "High priority 'violate' threshold of PIR leaky bucket of this policer";
6250 }
6251
6252 leaf high-prio-only {
6253 type types-qos:burst-percent;
6254 description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic";
6255 }
6256
6257 leaf packet-byte-offset {
6258 type types-qos:egress-per-packet-offset;
6259 default "0";
6260 description "Size of each packet, handled by the policer, to be modified";
6261 }
6262
6263 leaf profile-capped {
6264 type boolean;
6265 default "false";
6266 description "Enforce a limit on the profile";
6267 }
6268
6269 leaf stat-mode {
6270 type types-qos:egress-policer-stat-mode;
6271 default "minimal";
6272 description "Mode of statistics collected by the policer";
6273 }
6274
6275 leaf adv-config-policy {
6276 type types-sros:named-item;
6277 description "Name of the advanced configuration policy to apply with this queue";
6278 }
6279
6280 leaf exceed-pir {
6281 type boolean;
6282 default "false";
6283 description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR";
6284 }
6285
6286 container adaptation-rule {
6287 description "Enter the adaptation-rule context";
6288
6289 leaf pir {
6290 type types-qos:adaptation-rule;
6291 default "closest";
6292 description "Constraint used when deriving the operational PIR value";
6293 }
6294
6295 leaf cir {
6296 type types-qos:adaptation-rule;
6297 default "closest";
6298 description "Constraint used when deriving the operational CIR value";
6299 }
6300
6301 } // container adaptation-rule
6302
6303 container arbiter-parent {
6304 description "Enter the arbiter-parent context";
6305
6306 leaf arbiter-name {
6307 type types-sros:named-item;
6308 description "Arbiter to which this policer feeds";
6309 }
6310
6311 leaf level {
6312 type types-qos:hierarchy-level;
6313 default "1";
6314 description "Level of priority while feeding to the parent";
6315 }
6316
6317 leaf weight {
6318 type types-qos:weight {
6319 range "1..100";
6320 }
6321 default "1";
6322 description "Weight to be used by the arbiter for feeding this policer";
6323 }
6324
6325 } // container arbiter-parent
6326
6327 container rate {
6328 description "Enter the rate context";
6329
6330 leaf pir {
6331 type types-qos:policer-pir-rate;
6332 units "kilobps";
6333 default "max";
6334 description "CIR";
6335 }
6336
6337 leaf cir {
6338 type types-qos:policer-cir-rate;
6339 units "kilobps";
6340 default "0";
6341 description "CIR";
6342 }
6343
6344 } // container rate
6345
6346 } // list policer
6347
6348 list hs-wrr-group {
6349 key "group-id";
6350 description "Enter the hs-wrr-group context";
6351
6352 leaf group-id {
6353 type union {
6354 type string {
6355 length "1..64";
6356 pattern "<.*>" {
6357 error-message "Config Groups Regex Pattern";
6358 }
6359 }
6360 type types-qos:hs-wrr-group-id;
6361 }
6362 description "HS WRR group identifier";
6363 }
6364
6365 leaf hs-class-weight {
6366 type types-qos:hs-class-weight;
6367 default "1";
6368 description "Weight of scheduling class";
6369 }
6370
6371 choice rate-or-percent-rate {
6372 default "rate";
6373 case rate {
6374
6375 leaf rate {
6376 type union {
6377 type uint32 {
6378 range "1..2000000000";
6379 }
6380 type enumeration {
6381 enum "max" { value -1; }
6382 }
6383 }
6384 units "kilobps";
6385 default "max";
6386 description "Administrative PIR";
6387 }
6388
6389 }
6390 case percent-rate {
6391
6392 leaf percent-rate {
6393 type decimal64 {
6394 range "0.01..100.00";
6395 fraction-digits 2;
6396 }
6397 description "Administrative PIR percent";
6398 }
6399
6400 }
6401 }
6402 container adaptation-rule {
6403 description "Enter the adaptation-rule context";
6404
6405 leaf pir {
6406 type types-qos:adaptation-rule;
6407 default "closest";
6408 description "Constraint used when deriving the operational PIR value";
6409 }
6410
6411 } // container adaptation-rule
6412
6413 } // list hs-wrr-group
6414
6415 } // list queue-group
6416
6417 } // container egress
6418
6419 } // container queue-group-templates
6420
6421 list network {
6422 key "network-policy-name";
6423 max-elements 255;
6424 description "Enter the network context";
6425
6426 leaf network-policy-name {
6427 type union {
6428 type string {
6429 length "1..64";
6430 pattern "<.*>" {
6431 error-message "Config Groups Regex Pattern";
6432 }
6433 }
6434 type types-qos:network-policy-name;
6435 }
6436 description "Name of this network QoS policy";
6437 }
6438
6439 leaf policy-id {
6440 type types-qos:qos-policy-id;
6441 sros-ext:immutable;
6442 description "Network QoS policy identifier.";
6443 }
6444
6445 leaf description {
6446 type types-sros:description;
6447 description "Text description";
6448 }
6449
6450 leaf scope {
6451 type types-qos:item-scope;
6452 default "template";
6453 description "Scope of the policy";
6454 }
6455
6456 container ingress {
6457 description "Enter the ingress context";
6458
6459 leaf ler-use-dscp {
6460 type boolean;
6461 default "false";
6462 description "Honor the DSCP markings instead of the LSP-EXP bits";
6463 }
6464
6465 container default-action {
6466 description "Enter the default-action context";
6467
6468 leaf fc {
6469 type types-sros:fc-name;
6470 default "be";
6471 description "Default forwarding class to use while classifying the ingress traffic";
6472 }
6473
6474 leaf profile {
6475 type types-qos:profile;
6476 default "out";
6477 description "Default profile for the ingressing traffic";
6478 }
6479
6480 } // container default-action
6481
6482 list dot1p {
6483 key "dot1p-value";
6484 description "Enter the dot1p context";
6485
6486 leaf dot1p-value {
6487 type union {
6488 type string {
6489 length "1..64";
6490 pattern "<.*>" {
6491 error-message "Config Groups Regex Pattern";
6492 }
6493 }
6494 type types-qos:dot1p-priority;
6495 }
6496 description "Dot1p value to match in the packet";
6497 }
6498
6499 leaf fc {
6500 type types-sros:fc-name;
6501 mandatory true;
6502 description "Forwarding class";
6503 }
6504
6505 leaf profile {
6506 type types-qos:profile-de;
6507 mandatory true;
6508 description "Default profile to be used for the ingressing traffic";
6509 }
6510
6511 } // list dot1p
6512
6513 list dscp {
6514 key "dscp-name";
6515 description "Enter the dscp context";
6516
6517 leaf dscp-name {
6518 type union {
6519 type string {
6520 length "1..64";
6521 pattern "<.*>" {
6522 error-message "Config Groups Regex Pattern";
6523 }
6524 }
6525 type types-qos:dscp-name;
6526 }
6527 description
6528 "Specifies the Differentiated Services Code Point (DSCP) name for
6529 which mapping is done.";
6530 }
6531
6532 leaf fc {
6533 type types-sros:fc-name;
6534 mandatory true;
6535 description "Forwarding class";
6536 }
6537
6538 leaf profile {
6539 type types-qos:profile;
6540 mandatory true;
6541 description "Default profile to use for the ingressing traffic";
6542 }
6543
6544 } // list dscp
6545
6546 list lsp-exp {
6547 key "lsp-exp-value";
6548 description "Enter the lsp-exp context";
6549
6550 leaf lsp-exp-value {
6551 type union {
6552 type string {
6553 length "1..64";
6554 pattern "<.*>" {
6555 error-message "Config Groups Regex Pattern";
6556 }
6557 }
6558 type types-qos:lsp-exp-value;
6559 }
6560 description "Value to assign the unique MPLS LSP EXP value that will match the lsp-exp rule";
6561 }
6562
6563 leaf fc {
6564 type types-sros:fc-name;
6565 mandatory true;
6566 description "Forwarding class";
6567 }
6568
6569 leaf profile {
6570 type types-qos:profile;
6571 mandatory true;
6572 description "Default profile to use for the ingressing traffic";
6573 }
6574
6575 } // list lsp-exp
6576
6577 list fc {
6578 key "fc-name";
6579 description "Enter the fc context";
6580
6581 leaf fc-name {
6582 type union {
6583 type string {
6584 length "1..64";
6585 pattern "<.*>" {
6586 error-message "Config Groups Regex Pattern";
6587 }
6588 }
6589 type types-sros:fc-name;
6590 }
6591 description "Forwarding class name";
6592 }
6593
6594 container fp-redirect-group {
6595 description "Enter the fp-redirect-group context";
6596
6597 leaf multicast-policer {
6598 type types-qos:network-ingress-policer-id;
6599 description "Policer to be used for multicast traffic";
6600 }
6601
6602 leaf policer {
6603 type types-qos:network-ingress-policer-id;
6604 description "Policer to be used for unicast traffic";
6605 }
6606
6607 leaf broadcast-policer {
6608 type types-qos:network-ingress-policer-id;
6609 description "Policer to be used for broadcast traffic";
6610 }
6611
6612 leaf unknown-policer {
6613 type types-qos:network-ingress-policer-id;
6614 description "Plicer to be used for unknown traffic";
6615 }
6616
6617 } // container fp-redirect-group
6618
6619 } // list fc
6620
6621 container ip-criteria {
6622 description "Enter the ip-criteria context";
6623
6624 list entry {
6625 key "entry-id";
6626 description "Enter the entry context";
6627
6628 leaf entry-id {
6629 type union {
6630 type string {
6631 length "1..64";
6632 pattern "<.*>" {
6633 error-message "Config Groups Regex Pattern";
6634 }
6635 }
6636 type types-qos:entry-id;
6637 }
6638 description "Network Ingress IP Criteria Entry Index";
6639 }
6640
6641 leaf description {
6642 type types-sros:description;
6643 description "Text description";
6644 }
6645
6646 container match {
6647 description "Enter the match context";
6648
6649 leaf protocol {
6650 type types-sros:ipv4-match-protocol;
6651 description "IP protocol to match";
6652 }
6653
6654 leaf dscp {
6655 type types-qos:dscp-name;
6656 description "DSCP value to match in the packet.";
6657 }
6658
6659 leaf fragment {
6660 type enumeration {
6661 enum "false" { value 2; }
6662 enum "true" { value 3; }
6663 }
6664 description
6665 "Matches when the packet is a fragment (true) or when the packet is not
6666 a fragment (false) or matches all packets fragmented or not (off)";
6667 }
6668
6669 container dst-ip {
6670 description "Enter the dst-ip context";
6671
6672 choice dst-ip {
6673 case address-and-mask-or-prefix {
6674
6675 leaf address {
6676 type union {
6677 type types-sros:ipv4-address;
6678 type types-sros:ipv4-prefix-with-host-bits;
6679 }
6680 description "IP address to match with destination IP of the packet";
6681 }
6682
6683 leaf mask {
6684 type types-sros:ipv4-address;
6685 description "IP address to match with source IP of the packet";
6686 }
6687
6688 }
6689 case ip-prefix-list {
6690
6691 leaf ip-prefix-list {
6692 type types-sros:named-item;
6693 description "Specifies ip-prefix-list used as match criterion.";
6694 }
6695
6696 }
6697 }
6698 } // container dst-ip
6699
6700 container src-ip {
6701 description "Enter the src-ip context";
6702
6703 choice src-ip {
6704 case address-and-mask-or-prefix {
6705
6706 leaf address {
6707 type union {
6708 type types-sros:ipv4-address;
6709 type types-sros:ipv4-prefix-with-host-bits;
6710 }
6711 description "IP address to match with source IP of the packet";
6712 }
6713
6714 leaf mask {
6715 type types-sros:ipv4-address;
6716 description "IP address to match with source IP of the packet";
6717 }
6718
6719 }
6720 case ip-prefix-list {
6721
6722 leaf ip-prefix-list {
6723 type types-sros:named-item;
6724 description "Specifies ip-prefix-list used as match criterion.";
6725 }
6726
6727 }
6728 }
6729 } // container src-ip
6730
6731 container src-port {
6732 description "Enter the src-port context";
6733
6734 choice port-match-mapping {
6735 case lt {
6736
6737 leaf lt {
6738 type int32 {
6739 range "0..65535";
6740 }
6741 description "Specifies the less than value as match condition";
6742 }
6743
6744 }
6745 case eq {
6746
6747 leaf eq {
6748 type int32 {
6749 range "0..65535";
6750 }
6751 description "Specifies the equal than value as match condition";
6752 }
6753
6754 }
6755 case gt {
6756
6757 leaf gt {
6758 type int32 {
6759 range "0..65535";
6760 }
6761 description "Specifies the greater than value as match condition";
6762 }
6763
6764 }
6765 case range {
6766
6767 container range {
6768 description "Enter the range context";
6769
6770 leaf start {
6771 type int32 {
6772 range "0..65535";
6773 }
6774 description "Start value of range";
6775 }
6776
6777 leaf end {
6778 type int32 {
6779 range "0..65535";
6780 }
6781 description "End value for range";
6782 }
6783
6784 } // container range
6785
6786 }
6787 }
6788 } // container src-port
6789
6790 container dst-port {
6791 description "Enter the dst-port context";
6792
6793 choice port-match-mapping {
6794 case lt {
6795
6796 leaf lt {
6797 type int32 {
6798 range "0..65535";
6799 }
6800 description "Specifies the less than value as match condition";
6801 }
6802
6803 }
6804 case eq {
6805
6806 leaf eq {
6807 type int32 {
6808 range "0..65535";
6809 }
6810 description "Specifies the equal than value as match condition";
6811 }
6812
6813 }
6814 case gt {
6815
6816 leaf gt {
6817 type int32 {
6818 range "0..65535";
6819 }
6820 description "Specifies the greater than value as match condition";
6821 }
6822
6823 }
6824 case range {
6825
6826 container range {
6827 description "Enter the range context";
6828
6829 leaf start {
6830 type int32 {
6831 range "0..65535";
6832 }
6833 description "Start value of range";
6834 }
6835
6836 leaf end {
6837 type int32 {
6838 range "0..65535";
6839 }
6840 description "End value for range";
6841 }
6842
6843 } // container range
6844
6845 }
6846 }
6847 } // container dst-port
6848
6849 } // container match
6850
6851 container action {
6852 description "Enter the action context";
6853
6854 leaf type {
6855 type types-qos:criteria-action-type;
6856 default "ignore-match";
6857 description "Specified whether the criteria entry is active or in-active.";
6858 }
6859
6860 leaf fc {
6861 type types-sros:fc-name;
6862 description "Forwarding class";
6863 }
6864
6865 leaf profile {
6866 type types-qos:profile;
6867 description "Default profile for the matching traffic";
6868 }
6869
6870 } // container action
6871
6872 } // list entry
6873
6874 } // container ip-criteria
6875
6876 container ipv6-criteria {
6877 description "Enter the ipv6-criteria context";
6878
6879 list entry {
6880 key "entry-id";
6881 description "Enter the entry context";
6882
6883 leaf entry-id {
6884 type union {
6885 type string {
6886 length "1..64";
6887 pattern "<.*>" {
6888 error-message "Config Groups Regex Pattern";
6889 }
6890 }
6891 type types-qos:entry-id;
6892 }
6893 description "Network Ingress IPv6 Criteria Entry Index";
6894 }
6895
6896 leaf description {
6897 type types-sros:description;
6898 description "Text description";
6899 }
6900
6901 container match {
6902 description "Enter the match context";
6903
6904 leaf next-header {
6905 type types-sros:ipv6-match-protocol;
6906 description "IP protocol to match";
6907 }
6908
6909 leaf dscp {
6910 type types-qos:dscp-name;
6911 description "DSCP value to match in the packet";
6912 }
6913
6914 leaf fragment {
6915 type enumeration {
6916 enum "false" { value 2; }
6917 enum "true" { value 3; }
6918 enum "first-only" { value 4; }
6919 enum "non-first-only" { value 5; }
6920 }
6921 description
6922 "Matches when the packet is a fragment (true) or when the packet is not
6923 a fragment (false) or matches all packets fragmented or not (off)";
6924 }
6925
6926 container dst-ip {
6927 description "Enter the dst-ip context";
6928
6929 choice dst-ip {
6930 case address-and-mask-or-prefix {
6931
6932 leaf address {
6933 type union {
6934 type types-sros:ipv6-address;
6935 type types-sros:ipv6-prefix-with-host-bits;
6936 }
6937 description "IP address to match with destination IP of the packet";
6938 }
6939
6940 leaf mask {
6941 type types-sros:ipv6-address;
6942 description "IP address to match with source IP of the packet";
6943 }
6944
6945 }
6946 case ipv6-prefix-list {
6947
6948 leaf ipv6-prefix-list {
6949 type types-sros:named-item;
6950 description
6951 "Specifies the ip-prefix-list used as match criterion for the
6952 ip address.";
6953 }
6954
6955 }
6956 }
6957 } // container dst-ip
6958
6959 container src-ip {
6960 description "Enter the src-ip context";
6961
6962 choice src-ip {
6963 case address-and-mask-or-prefix {
6964
6965 leaf address {
6966 type union {
6967 type types-sros:ipv6-address;
6968 type types-sros:ipv6-prefix-with-host-bits;
6969 }
6970 description "IP address to match with source IP of the packet";
6971 }
6972
6973 leaf mask {
6974 type types-sros:ipv6-address;
6975 description "IP address to match with source IP of the packet";
6976 }
6977
6978 }
6979 case ipv6-prefix-list {
6980
6981 leaf ipv6-prefix-list {
6982 type types-sros:named-item;
6983 description
6984 "Specifies the ip-prefix-list used as match criterion for the
6985 ip address.";
6986 }
6987
6988 }
6989 }
6990 } // container src-ip
6991
6992 container src-port {
6993 description "Enter the src-port context";
6994
6995 choice port-match-mapping {
6996 case lt {
6997
6998 leaf lt {
6999 type int32 {
7000 range "0..65535";
7001 }
7002 description "Specifies the less than value as match condition";
7003 }
7004
7005 }
7006 case eq {
7007
7008 leaf eq {
7009 type int32 {
7010 range "0..65535";
7011 }
7012 description "Specifies the equal than value as match condition";
7013 }
7014
7015 }
7016 case gt {
7017
7018 leaf gt {
7019 type int32 {
7020 range "0..65535";
7021 }
7022 description "Specifies the greater than value as match condition";
7023 }
7024
7025 }
7026 case range {
7027
7028 container range {
7029 description "Enter the range context";
7030
7031 leaf start {
7032 type int32 {
7033 range "0..65535";
7034 }
7035 description "Start value of range";
7036 }
7037
7038 leaf end {
7039 type int32 {
7040 range "0..65535";
7041 }
7042 description "End value for range";
7043 }
7044
7045 } // container range
7046
7047 }
7048 }
7049 } // container src-port
7050
7051 container dst-port {
7052 description "Enter the dst-port context";
7053
7054 choice port-match-mapping {
7055 case lt {
7056
7057 leaf lt {
7058 type int32 {
7059 range "0..65535";
7060 }
7061 description "Specifies the less than value as match condition";
7062 }
7063
7064 }
7065 case eq {
7066
7067 leaf eq {
7068 type int32 {
7069 range "0..65535";
7070 }
7071 description "Specifies the equal than value as match condition";
7072 }
7073
7074 }
7075 case gt {
7076
7077 leaf gt {
7078 type int32 {
7079 range "0..65535";
7080 }
7081 description "Specifies the greater than value as match condition";
7082 }
7083
7084 }
7085 case range {
7086
7087 container range {
7088 description "Enter the range context";
7089
7090 leaf start {
7091 type int32 {
7092 range "0..65535";
7093 }
7094 description "Start value of range";
7095 }
7096
7097 leaf end {
7098 type int32 {
7099 range "0..65535";
7100 }
7101 description "End value for range";
7102 }
7103
7104 } // container range
7105
7106 }
7107 }
7108 } // container dst-port
7109
7110 } // container match
7111
7112 container action {
7113 description "Enter the action context";
7114
7115 leaf type {
7116 type types-qos:criteria-action-type;
7117 default "ignore-match";
7118 description "Specified whether the criteria entry is active or in-active.";
7119 }
7120
7121 leaf fc {
7122 type types-sros:fc-name;
7123 description "Forwarding class";
7124 }
7125
7126 leaf profile {
7127 type types-qos:profile;
7128 description "Default profile for the matching traffic";
7129 }
7130
7131 } // container action
7132
7133 } // list entry
7134
7135 } // container ipv6-criteria
7136
7137 } // container ingress
7138
7139 container egress {
7140 description "Enter the egress context";
7141
7142 container remark-trusted {
7143 presence "Specifies if the system will remark the egress packets or not.";
7144 description "Enter the remark-trusted context";
7145
7146 leaf force-egress-marking {
7147 type boolean;
7148 default "false";
7149 description "Remark DSCP bits in the internal IP header";
7150 }
7151
7152 } // container remark-trusted
7153
7154 list dscp {
7155 key "dscp-name";
7156 description "Enter the dscp context";
7157
7158 leaf dscp-name {
7159 type union {
7160 type string {
7161 length "1..64";
7162 pattern "<.*>" {
7163 error-message "Config Groups Regex Pattern";
7164 }
7165 }
7166 type types-qos:dscp-name;
7167 }
7168 description
7169 "Specifies the Differentiated Services Code Point (DSCP) name for
7170 which mapping is done.";
7171 }
7172
7173 leaf fc {
7174 type types-sros:fc-name;
7175 mandatory true;
7176 description "Forwarding class";
7177 }
7178
7179 leaf profile {
7180 type types-qos:egress-profile;
7181 mandatory true;
7182 description "Default profile to use for the ingressing traffic";
7183 }
7184
7185 } // list dscp
7186
7187 list prec {
7188 key "prec-value";
7189 description "Enter the prec context";
7190
7191 leaf prec-value {
7192 type union {
7193 type string {
7194 length "1..64";
7195 pattern "<.*>" {
7196 error-message "Config Groups Regex Pattern";
7197 }
7198 }
7199 type types-qos:precedence-value;
7200 }
7201 description "Precedence value for which mapping is performed";
7202 }
7203
7204 leaf fc {
7205 type types-sros:fc-name;
7206 mandatory true;
7207 description "Forwarding class";
7208 }
7209
7210 leaf profile {
7211 type types-qos:egress-profile;
7212 mandatory true;
7213 description "Default profile to use for the ingressing traffic";
7214 }
7215
7216 } // list prec
7217
7218 list fc {
7219 key "fc-name";
7220 description "Enter the fc context";
7221
7222 leaf fc-name {
7223 type union {
7224 type string {
7225 length "1..64";
7226 pattern "<.*>" {
7227 error-message "Config Groups Regex Pattern";
7228 }
7229 }
7230 type types-sros:fc-name;
7231 }
7232 description "Forwarding class name";
7233 }
7234
7235 leaf dot1p-in-profile {
7236 type types-qos:dot1p-priority;
7237 description "Dot1p marking for in-profile marking";
7238 }
7239
7240 leaf dot1p-out-profile {
7241 type types-qos:dot1p-priority;
7242 description "Dot1p marking for out-of-profile marking";
7243 }
7244
7245 leaf dscp-in-profile {
7246 type types-qos:network-egress-dscp-name;
7247 default "be";
7248 description "DSCP marking for in-profile marking";
7249 }
7250
7251 leaf dscp-out-profile {
7252 type types-qos:network-egress-dscp-name;
7253 default "be";
7254 description "DSCP marking for out-of-profile marking";
7255 }
7256
7257 leaf lsp-exp-in-profile {
7258 type types-qos:lsp-exp-value;
7259 description "LSP-EXP marking for in-profile marking";
7260 }
7261
7262 leaf lsp-exp-out-profile {
7263 type types-qos:lsp-exp-value;
7264 description "LSP-EXP marking for out-of-profile marking";
7265 }
7266
7267 container de-mark {
7268 presence "Specifies whether to set DE value in the frames.";
7269 description "Enter the de-mark context";
7270
7271 leaf force {
7272 type types-qos:de-value;
7273 description "DE value";
7274 }
7275
7276 } // container de-mark
7277
7278 container port-redirect-group {
7279 description "Enter the port-redirect-group context";
7280
7281 leaf queue {
7282 type types-qos:egress-queue-id;
7283 description "Queue to be used";
7284 }
7285
7286 leaf policer {
7287 type types-qos:egress-policer-id;
7288 description "Policer to be used";
7289 }
7290
7291 } // container port-redirect-group
7292
7293 } // list fc
7294
7295 container ip-criteria {
7296 description "Enter the ip-criteria context";
7297
7298 list entry {
7299 key "entry-id";
7300 description "Enter the entry context";
7301
7302 leaf entry-id {
7303 type union {
7304 type string {
7305 length "1..64";
7306 pattern "<.*>" {
7307 error-message "Config Groups Regex Pattern";
7308 }
7309 }
7310 type types-qos:entry-id;
7311 }
7312 description "Network Egress IP Criteria Entry Index.";
7313 }
7314
7315 leaf description {
7316 type types-sros:description;
7317 description "Text description";
7318 }
7319
7320 container match {
7321 description "Enter the match context";
7322
7323 leaf protocol {
7324 type types-sros:ipv4-match-protocol;
7325 description "IP protocol to match";
7326 }
7327
7328 leaf dscp {
7329 type types-qos:dscp-name;
7330 description "DSCP value to match in the packet";
7331 }
7332
7333 leaf fragment {
7334 type enumeration {
7335 enum "false" { value 2; }
7336 enum "true" { value 3; }
7337 }
7338 description
7339 "Matches when the packet is a fragment (true) or when the packet is not
7340 a fragment (false) or matches all packets fragmented or not (off).";
7341 }
7342
7343 leaf icmp-type {
7344 type types-filter:ipv4-match-icmp-types;
7345 description "ICMP type to match.";
7346 }
7347
7348 container dst-ip {
7349 description "Enter the dst-ip context";
7350
7351 choice dst-ip {
7352 case address-and-mask-or-prefix {
7353
7354 leaf address {
7355 type union {
7356 type types-sros:ipv4-address;
7357 type types-sros:ipv4-prefix-with-host-bits;
7358 }
7359 description "IP address to match with destination IP of the packet.";
7360 }
7361
7362 leaf mask {
7363 type types-sros:ipv4-address;
7364 description "IP address to match with source IP of the packet.";
7365 }
7366
7367 }
7368 }
7369 } // container dst-ip
7370
7371 container src-ip {
7372 description "Enter the src-ip context";
7373
7374 choice src-ip {
7375 case address-and-mask-or-prefix {
7376
7377 leaf address {
7378 type union {
7379 type types-sros:ipv4-address;
7380 type types-sros:ipv4-prefix-with-host-bits;
7381 }
7382 description "IP address to match with source IP of the packet.";
7383 }
7384
7385 leaf mask {
7386 type types-sros:ipv4-address;
7387 description "IP address to match with source IP of the packet.";
7388 }
7389
7390 }
7391 }
7392 } // container src-ip
7393
7394 container src-port {
7395 description "Enter the src-port context";
7396
7397 choice port-match-mapping {
7398 case lt {
7399
7400 leaf lt {
7401 type int32 {
7402 range "0..65535";
7403 }
7404 description "Value 'less than' assigned as match condition";
7405 }
7406
7407 }
7408 case eq {
7409
7410 leaf eq {
7411 type int32 {
7412 range "0..65535";
7413 }
7414 description "Value 'equal to' assigned as match condition";
7415 }
7416
7417 }
7418 case gt {
7419
7420 leaf gt {
7421 type int32 {
7422 range "0..65535";
7423 }
7424 description "Value 'greater than' assigned as match condition";
7425 }
7426
7427 }
7428 case range {
7429
7430 container range {
7431 description "Enter the range context";
7432
7433 leaf start {
7434 type int32 {
7435 range "0..65535";
7436 }
7437 description "Start value of range";
7438 }
7439
7440 leaf end {
7441 type int32 {
7442 range "0..65535";
7443 }
7444 description "End value for range";
7445 }
7446
7447 } // container range
7448
7449 }
7450 }
7451 } // container src-port
7452
7453 container dst-port {
7454 description "Enter the dst-port context";
7455
7456 choice port-match-mapping {
7457 case lt {
7458
7459 leaf lt {
7460 type int32 {
7461 range "0..65535";
7462 }
7463 description "Value 'less than' assigned as match condition";
7464 }
7465
7466 }
7467 case eq {
7468
7469 leaf eq {
7470 type int32 {
7471 range "0..65535";
7472 }
7473 description "Value 'equal to' assigned as match condition";
7474 }
7475
7476 }
7477 case gt {
7478
7479 leaf gt {
7480 type int32 {
7481 range "0..65535";
7482 }
7483 description "Value 'greater than' assigned as match condition";
7484 }
7485
7486 }
7487 case range {
7488
7489 container range {
7490 description "Enter the range context";
7491
7492 leaf start {
7493 type int32 {
7494 range "0..65535";
7495 }
7496 description "Start value of range";
7497 }
7498
7499 leaf end {
7500 type int32 {
7501 range "0..65535";
7502 }
7503 description "End value for range";
7504 }
7505
7506 } // container range
7507
7508 }
7509 }
7510 } // container dst-port
7511
7512 } // container match
7513
7514 container action {
7515 description "Enter the action context";
7516
7517 leaf type {
7518 type types-qos:criteria-action-type;
7519 default "ignore-match";
7520 description "Specified whether the criteria entry is active or in-active.";
7521 }
7522
7523 leaf fc {
7524 type types-sros:fc-name;
7525 description "Forwarding class";
7526 }
7527
7528 leaf profile {
7529 type types-qos:egress-profile;
7530 description "Specifies the default profile to be used for the matching traffic.";
7531 }
7532
7533 container port-redirect-group {
7534 description "Enter the port-redirect-group context";
7535
7536 leaf queue {
7537 type types-qos:egress-queue-id;
7538 description "Specifies the queue to use once the matched traffic has been policed.";
7539 }
7540
7541 leaf policer {
7542 type types-qos:network-egress-policer-id;
7543 description "Specifies the policer identifier to be used for the matched traffic.";
7544 }
7545
7546 } // container port-redirect-group
7547
7548 } // container action
7549
7550 } // list entry
7551
7552 } // container ip-criteria
7553
7554 container ipv6-criteria {
7555 description "Enter the ipv6-criteria context";
7556
7557 list entry {
7558 key "entry-id";
7559 description "Enter the entry context";
7560
7561 leaf entry-id {
7562 type union {
7563 type string {
7564 length "1..64";
7565 pattern "<.*>" {
7566 error-message "Config Groups Regex Pattern";
7567 }
7568 }
7569 type types-qos:entry-id;
7570 }
7571 description "Network Egress IPv6 Criteria Entry Index.";
7572 }
7573
7574 leaf description {
7575 type types-sros:description;
7576 description "Text description";
7577 }
7578
7579 container match {
7580 description "Enter the match context";
7581
7582 leaf next-header {
7583 type types-sros:ipv6-match-protocol;
7584 description "IP protocol to match";
7585 }
7586
7587 leaf dscp {
7588 type types-qos:dscp-name;
7589 description "DSCP value to match in the packet";
7590 }
7591
7592 leaf fragment {
7593 type enumeration {
7594 enum "false" { value 2; }
7595 enum "true" { value 3; }
7596 enum "first-only" { value 4; }
7597 enum "non-first-only" { value 5; }
7598 }
7599 description
7600 "Matches when the packet is a fragment (true) or when the packet is not
7601 a fragment (false) or matches all packets fragmented or not (off).";
7602 }
7603
7604 leaf icmp-type {
7605 type types-filter:ipv6-match-icmp-types;
7606 description "ICMP type to match.";
7607 }
7608
7609 container dst-ip {
7610 description "Enter the dst-ip context";
7611
7612 choice dst-ip {
7613 case address-and-mask-or-prefix {
7614
7615 leaf address {
7616 type union {
7617 type types-sros:ipv6-address;
7618 type types-sros:ipv6-prefix-with-host-bits;
7619 }
7620 description "IP address to match with destination IP of the packet.";
7621 }
7622
7623 leaf mask {
7624 type types-sros:ipv6-address;
7625 description "IP address to match with source IP of the packet.";
7626 }
7627
7628 }
7629 }
7630 } // container dst-ip
7631
7632 container src-ip {
7633 description "Enter the src-ip context";
7634
7635 choice src-ip {
7636 case address-and-mask-or-prefix {
7637
7638 leaf address {
7639 type union {
7640 type types-sros:ipv6-address;
7641 type types-sros:ipv6-prefix-with-host-bits;
7642 }
7643 description "IP address to match with source IP of the packet.";
7644 }
7645
7646 leaf mask {
7647 type types-sros:ipv6-address;
7648 description "IP address to match with source IP of the packet.";
7649 }
7650
7651 }
7652 }
7653 } // container src-ip
7654
7655 container src-port {
7656 description "Enter the src-port context";
7657
7658 choice port-match-mapping {
7659 case lt {
7660
7661 leaf lt {
7662 type int32 {
7663 range "0..65535";
7664 }
7665 description "Value 'less than' assigned as match condition";
7666 }
7667
7668 }
7669 case eq {
7670
7671 leaf eq {
7672 type int32 {
7673 range "0..65535";
7674 }
7675 description "Value 'equal to' assigned as match condition";
7676 }
7677
7678 }
7679 case gt {
7680
7681 leaf gt {
7682 type int32 {
7683 range "0..65535";
7684 }
7685 description "Value 'greater than' assigned as match condition";
7686 }
7687
7688 }
7689 case range {
7690
7691 container range {
7692 description "Enter the range context";
7693
7694 leaf start {
7695 type int32 {
7696 range "0..65535";
7697 }
7698 description "Start value of range";
7699 }
7700
7701 leaf end {
7702 type int32 {
7703 range "0..65535";
7704 }
7705 description "End value for range";
7706 }
7707
7708 } // container range
7709
7710 }
7711 }
7712 } // container src-port
7713
7714 container dst-port {
7715 description "Enter the dst-port context";
7716
7717 choice port-match-mapping {
7718 case lt {
7719
7720 leaf lt {
7721 type int32 {
7722 range "0..65535";
7723 }
7724 description "Value 'less than' assigned as match condition";
7725 }
7726
7727 }
7728 case eq {
7729
7730 leaf eq {
7731 type int32 {
7732 range "0..65535";
7733 }
7734 description "Value 'equal to' assigned as match condition";
7735 }
7736
7737 }
7738 case gt {
7739
7740 leaf gt {
7741 type int32 {
7742 range "0..65535";
7743 }
7744 description "Value 'greater than' assigned as match condition";
7745 }
7746
7747 }
7748 case range {
7749
7750 container range {
7751 description "Enter the range context";
7752
7753 leaf start {
7754 type int32 {
7755 range "0..65535";
7756 }
7757 description "Start value of range";
7758 }
7759
7760 leaf end {
7761 type int32 {
7762 range "0..65535";
7763 }
7764 description "End value for range";
7765 }
7766
7767 } // container range
7768
7769 }
7770 }
7771 } // container dst-port
7772
7773 } // container match
7774
7775 container action {
7776 description "Enter the action context";
7777
7778 leaf type {
7779 type types-qos:criteria-action-type;
7780 default "ignore-match";
7781 description "Specified whether the criteria entry is active or in-active.";
7782 }
7783
7784 leaf fc {
7785 type types-sros:fc-name;
7786 description "Forwarding class";
7787 }
7788
7789 leaf profile {
7790 type types-qos:egress-profile;
7791 description "Specifies the default profile to be used for the matching traffic.";
7792 }
7793
7794 container port-redirect-group {
7795 description "Enter the port-redirect-group context";
7796
7797 leaf queue {
7798 type types-qos:egress-queue-id;
7799 description "Specifies the queue to use once the matched traffic has been policed.";
7800 }
7801
7802 leaf policer {
7803 type types-qos:network-egress-policer-id;
7804 description "Specifies the policer identifier to be used for the matched traffic.";
7805 }
7806
7807 } // container port-redirect-group
7808
7809 } // container action
7810
7811 } // list entry
7812
7813 } // container ipv6-criteria
7814
7815 } // container egress
7816
7817 } // list network
7818
7819 list port-qos-policy {
7820 key "port-qos-policy-name";
7821 description "Port QoS Policy Configurations.";
7822
7823 leaf port-qos-policy-name {
7824 type union {
7825 type string {
7826 length "1..64";
7827 pattern "<.*>" {
7828 error-message "Config Groups Regex Pattern";
7829 }
7830 }
7831 type types-qos:qos-policy-name;
7832 }
7833 description "The name of this Port QoS policy.";
7834 }
7835
7836 leaf description {
7837 type types-sros:description;
7838 description "Description for this port-qos policy.";
7839 }
7840
7841 leaf scope {
7842 type types-qos:item-scope;
7843 default "template";
7844 description "Scope of the policy.";
7845 }
7846
7847 list fc {
7848 key "fc-name";
7849 description "Port QoS Policy Forwarding Class (FC) Mappings.";
7850
7851 leaf fc-name {
7852 type union {
7853 type string {
7854 length "1..64";
7855 pattern "<.*>" {
7856 error-message "Config Groups Regex Pattern";
7857 }
7858 }
7859 type types-sros:fc-name;
7860 }
7861 description "Specifies the forwarding class.";
7862 }
7863
7864 leaf queue {
7865 type types-qos:egress-queue-id;
7866 description "Specifies the queue to forward the traffic.";
7867 }
7868
7869 } // list fc
7870
7871 list queue {
7872 key "queue-id";
7873 description "Queue Configurations.";
7874
7875 leaf queue-id {
7876 type union {
7877 type string {
7878 length "1..64";
7879 pattern "<.*>" {
7880 error-message "Config Groups Regex Pattern";
7881 }
7882 }
7883 type types-qos:egress-queue-id;
7884 }
7885 description "The port qos policy queue identifier.";
7886 }
7887
7888 leaf queue-mgmt {
7889 type types-qos:qos-policy-name;
7890 description
7891 "Queue Management determines the queue management policy
7892 attached to this queue.";
7893 }
7894
7895 leaf wrr-weights {
7896 type uint32 {
7897 range "1..8";
7898 }
7899 description
7900 "The unicast-multicast Weighted Round Robin(WRR) profile associated
7901 with this queue";
7902 }
7903
7904 container adaptation-rule {
7905 description "Specifies PIR and CIR adaptation rules.";
7906
7907 leaf pir {
7908 type types-qos:adaptation-rule;
7909 default "closest";
7910 description
7911 "The adaptation rule to be used while computing
7912 the operational PIR value. The adaptation
7913 rule specifies the rules to compute the
7914 operational values while maintaining minimum offset.";
7915 }
7916
7917 leaf cir {
7918 type types-qos:adaptation-rule;
7919 default "closest";
7920 description
7921 "The adaptation rule to be used while computing the
7922 operational CIR value. The adaptation rule
7923 specifies the rules to compute the
7924 operational values while maintaining minimum offset.";
7925 }
7926
7927 } // container adaptation-rule
7928
7929 container scheduler-mode {
7930 description "Specifies Scheduler Mode of this queue.";
7931
7932 choice wfq-or-strict-priority {
7933 default "wfq";
7934 case wfq {
7935
7936 container wfq {
7937 description "Specifies Wfq of this queue.";
7938
7939 leaf pir-weight {
7940 type uint32 {
7941 range "1..255";
7942 }
7943 default "1";
7944 description
7945 "Specifies the weight that needs to be
7946 used by the arbiter to which this
7947 queue would be feeding to.";
7948 }
7949
7950 container percent-rate {
7951 description "Specifies PIR and CIR Percent Rate.";
7952
7953 leaf pir {
7954 type decimal64 {
7955 range "0.01..100.00";
7956 fraction-digits 2;
7957 }
7958 default "100.00";
7959 description "Specifies the administrative PIR percent.";
7960 }
7961
7962 leaf cir {
7963 type decimal64 {
7964 range "0.00..100.00";
7965 fraction-digits 2;
7966 }
7967 default "0.00";
7968 description "Specifies the administrative CIR percent.";
7969 }
7970
7971 } // container percent-rate
7972
7973 } // container wfq
7974
7975 }
7976 }
7977 } // container scheduler-mode
7978
7979 } // list queue
7980
7981 list wrr-weights {
7982 key "wrr-weights-id";
7983 description "Wrr Weights Configurations.";
7984
7985 leaf wrr-weights-id {
7986 type union {
7987 type string {
7988 length "1..64";
7989 pattern "<.*>" {
7990 error-message "Config Groups Regex Pattern";
7991 }
7992 }
7993 type uint32 {
7994 range "1..8";
7995 }
7996 }
7997 description "The port qos policy wrr weights identifier.";
7998 }
7999
8000 leaf mc-weight {
8001 type types-qos:port-qos-policy-wrr-weight;
8002 default "1";
8003 description
8004 "The weight to be used by the multicast queue that feeds
8005 into this WRR scheduler.";
8006 }
8007
8008 leaf uc-weight {
8009 type types-qos:port-qos-policy-wrr-weight;
8010 default "1";
8011 description
8012 "The weight to be used by the unicast queue that feeds
8013 into this WRR scheduler.";
8014 }
8015
8016 } // list wrr-weights
8017
8018 } // list port-qos-policy
8019
8020 list vlan-qos-policy {
8021 key "vlan-qos-policy-name";
8022 description "Vlan QoS Policy Configurations.";
8023
8024 leaf vlan-qos-policy-name {
8025 type union {
8026 type string {
8027 length "1..64";
8028 pattern "<.*>" {
8029 error-message "Config Groups Regex Pattern";
8030 }
8031 }
8032 type types-qos:qos-policy-name;
8033 }
8034 description "The name of this Vlan QoS policy.";
8035 }
8036
8037 leaf description {
8038 type types-sros:description;
8039 description "Description for this vlan-qos policy.";
8040 }
8041
8042 leaf scope {
8043 type types-qos:item-scope;
8044 default "template";
8045 description "Scope of the policy.";
8046 }
8047
8048 list cir-weight-profile {
8049 key "cir-weight-profile-id";
8050 description "CIR Weight Profile Configurations.";
8051
8052 leaf cir-weight-profile-id {
8053 type union {
8054 type string {
8055 length "1..64";
8056 pattern "<.*>" {
8057 error-message "Config Groups Regex Pattern";
8058 }
8059 }
8060 type uint32 {
8061 range "1..2";
8062 }
8063 }
8064 description "The vlan qos policy cir weight profile identifier.";
8065 }
8066
8067 leaf weight {
8068 type uint32 {
8069 range "1..1024";
8070 }
8071 default "1";
8072 description
8073 "The weight that needs to be used until the
8074 committed rate by the vlan policy to which this queue
8075 would be feeding to.";
8076 }
8077
8078 } // list cir-weight-profile
8079
8080 list fc {
8081 key "fc-name";
8082 description "Vlan QoS Policy Forwarding Class (FC) Mappings.";
8083
8084 leaf fc-name {
8085 type union {
8086 type string {
8087 length "1..64";
8088 pattern "<.*>" {
8089 error-message "Config Groups Regex Pattern";
8090 }
8091 }
8092 type types-sros:fc-name;
8093 }
8094 description "Specifies the forwarding class.";
8095 }
8096
8097 leaf queue {
8098 type types-qos:egress-queue-id;
8099 description "Specifies the queue to forward the traffic.";
8100 }
8101
8102 } // list fc
8103
8104 list queue {
8105 key "queue-id";
8106 description "Queue Configurations.";
8107
8108 leaf queue-id {
8109 type union {
8110 type string {
8111 length "1..64";
8112 pattern "<.*>" {
8113 error-message "Config Groups Regex Pattern";
8114 }
8115 }
8116 type types-qos:egress-queue-id;
8117 }
8118 description "The vlan qos policy queue identifier.";
8119 }
8120
8121 leaf queue-mgmt {
8122 type types-qos:qos-policy-name;
8123 description
8124 "Queue Management determines the queue management policy
8125 attached to this queue.";
8126 }
8127
8128 container adaptation-rule {
8129 description "Specifies PIR and CIR adaptation rules.";
8130
8131 leaf pir {
8132 type types-qos:adaptation-rule;
8133 default "closest";
8134 description
8135 "The adaptation rule to be used while computing
8136 the operational PIR value. The adaptation
8137 rule specifies the rules to compute the
8138 operational values while maintaining minimum offset.";
8139 }
8140
8141 leaf cir {
8142 type types-qos:adaptation-rule;
8143 default "closest";
8144 description
8145 "The adaptation rule to be used while computing the
8146 operational CIR value. The adaptation rule
8147 specifies the rules to compute the
8148 operational values while maintaining minimum offset.";
8149 }
8150
8151 } // container adaptation-rule
8152
8153 container queue-type {
8154 description "Specifies Queue Type of this queue.";
8155
8156 choice best-effort-hi-low {
8157 default "best-effort";
8158 case best-effort {
8159
8160 container best-effort {
8161 description "Indicates that the queue is non-expedited.";
8162
8163 leaf cir-weight-profile {
8164 type uint32 {
8165 range "1..2";
8166 }
8167 default "1";
8168 description
8169 "Specifies the weight profile identifier of
8170 vlan-qos policy that needs to be used by the
8171 arbiter to which this
8172 queue would be feeding to.";
8173 }
8174
8175 container percent-rate {
8176 description "Specifies PIR and CIR Percent Rate.";
8177
8178 leaf pir {
8179 type decimal64 {
8180 range "0.01..100.00";
8181 fraction-digits 2;
8182 }
8183 default "100.00";
8184 description "Specifies the administrative PIR percent.";
8185 }
8186
8187 leaf cir {
8188 type decimal64 {
8189 range "0.00..100.00";
8190 fraction-digits 2;
8191 }
8192 default "0.00";
8193 description "Specifies the administrative CIR percent.";
8194 }
8195
8196 } // container percent-rate
8197
8198 } // container best-effort
8199
8200 }
8201 case expedite-hi {
8202
8203 container expedite-hi {
8204 description
8205 "Indicates that the queue will be expedited at the
8206 highest level until it reaches its committed rate.";
8207
8208 container percent-rate {
8209 description "Specifies PIR and CIR Percent Rate.";
8210
8211 leaf pir {
8212 type decimal64 {
8213 range "0.01..100.00";
8214 fraction-digits 2;
8215 }
8216 default "100.00";
8217 description "Specifies the administrative PIR percent.";
8218 }
8219
8220 leaf cir {
8221 type decimal64 {
8222 range "0.00..100.00";
8223 fraction-digits 2;
8224 }
8225 default "0.00";
8226 description "Specifies the administrative CIR percent.";
8227 }
8228
8229 } // container percent-rate
8230
8231 } // container expedite-hi
8232
8233 }
8234 case expedite-lo {
8235
8236 container expedite-lo {
8237 description
8238 "Indicates that the committed rate of the queue will be
8239 expedited at a level lower than the 'expedite-hi' queues.";
8240
8241 container percent-rate {
8242 description "Specifies PIR and CIR Percent Rate.";
8243
8244 leaf pir {
8245 type decimal64 {
8246 range "0.01..100.00";
8247 fraction-digits 2;
8248 }
8249 default "100.00";
8250 description "Specifies the administrative PIR percent.";
8251 }
8252
8253 leaf cir {
8254 type decimal64 {
8255 range "0.00..100.00";
8256 fraction-digits 2;
8257 }
8258 default "0.00";
8259 description "Specifies the administrative CIR percent.";
8260 }
8261
8262 } // container percent-rate
8263
8264 } // container expedite-lo
8265
8266 }
8267 }
8268 } // container queue-type
8269
8270 } // list queue
8271
8272 } // list vlan-qos-policy
8273
8274 list queue-mgmt-policy {
8275 key "queue-mgmt-policy-name";
8276 description "Queue Management Policy Configurations.";
8277
8278 leaf queue-mgmt-policy-name {
8279 type union {
8280 type string {
8281 length "1..64";
8282 pattern "<.*>" {
8283 error-message "Config Groups Regex Pattern";
8284 }
8285 }
8286 type types-qos:qos-policy-name;
8287 }
8288 description "The name of this Queue Management policy.";
8289 }
8290
8291 leaf description {
8292 type types-sros:description;
8293 description "Description for this queue-mgmt-policy.";
8294 }
8295
8296 leaf mbs {
8297 type union {
8298 type types-qos:kilobytes {
8299 range "1..1500000";
8300 }
8301 type enumeration {
8302 enum "auto" { value -1; }
8303 }
8304 }
8305 units "kilobytes";
8306 default "6250";
8307 description "The amount of buffer space allowed for the queue.";
8308 }
8309
8310 leaf scope {
8311 type types-qos:item-scope;
8312 default "template";
8313 description "Scope of the policy.";
8314 }
8315
8316 leaf time-average-factor {
8317 type uint32 {
8318 range "0..31";
8319 }
8320 default "7";
8321 description "Time average factor of the policy.";
8322 }
8323
8324 container high-slope {
8325 description "High Priority RED slope parameters.";
8326
8327 leaf admin-state {
8328 type types-sros:admin-state;
8329 default "disable";
8330 description "Specifies the admin state for the high priority RED slope.";
8331 }
8332
8333 leaf start-avg {
8334 type uint32 {
8335 range "0..100";
8336 }
8337 default "70";
8338 description
8339 "The percentage of the buffer utilized after which the
8340 drop probability starts to rise above 0.";
8341 }
8342
8343 leaf max-avg {
8344 type uint32 {
8345 range "0..100";
8346 }
8347 default "90";
8348 description
8349 "The percentage of the buffer utilized after which the
8350 drop probability is 100 percent. This implies that
8351 all packets beyond this point will be dropped.";
8352 }
8353
8354 leaf max-prob {
8355 type uint32 {
8356 range "1..99";
8357 }
8358 default "75";
8359 description
8360 "The drop probability increases steadily from 0 at
8361 high start-average up to high max-probability at
8362 high max-average.";
8363 }
8364
8365 } // container high-slope
8366
8367 container low-slope {
8368 description "Low Priority RED slope parameters.";
8369
8370 leaf admin-state {
8371 type types-sros:admin-state;
8372 default "disable";
8373 description "Specifies the admin state for the low priority RED slope.";
8374 }
8375
8376 leaf start-avg {
8377 type uint32 {
8378 range "0..100";
8379 }
8380 default "50";
8381 description
8382 "The percentage of the buffer utilized after which the
8383 drop probability starts to rise above 0.";
8384 }
8385
8386 leaf max-avg {
8387 type uint32 {
8388 range "0..100";
8389 }
8390 default "75";
8391 description
8392 "The percentage of the buffer utilized after which the
8393 drop probability is 100 percent. This implies that all
8394 packets beyond this point will be dropped.";
8395 }
8396
8397 leaf max-prob {
8398 type uint32 {
8399 range "1..99";
8400 }
8401 default "75";
8402 description
8403 "The drop probability increases steadily from 0 at low
8404 start-average up to low max-probability at
8405 low max-average.";
8406 }
8407
8408 } // container low-slope
8409
8410 } // list queue-mgmt-policy
8411
8412 list ingress-classification-policy {
8413 key "ingress-classification-policy-name";
8414 description "Ingress classification Qos policies";
8415
8416 leaf ingress-classification-policy-name {
8417 type union {
8418 type string {
8419 length "1..64";
8420 pattern "<.*>" {
8421 error-message "Config Groups Regex Pattern";
8422 }
8423 }
8424 type types-qos:qos-policy-name;
8425 }
8426 description "The name of this ingress classification QoS policy.";
8427 }
8428
8429 leaf description {
8430 type types-sros:description;
8431 description "Description for this ingress classifcation policy.";
8432 }
8433
8434 leaf allow-egress-dscp-exp-remarking {
8435 type boolean;
8436 default "false";
8437 description
8438 "Specifies whether to enable remarking for DSCP and Precedence based on
8439 the profile state of a packet being forwarded.";
8440 }
8441
8442 leaf scope {
8443 type types-qos:item-scope;
8444 default "template";
8445 description "Scope of the policy.";
8446 }
8447
8448 container default-action {
8449 description "Configuration default-action parameters.";
8450
8451 leaf fc {
8452 type types-sros:fc-name;
8453 default "be";
8454 description
8455 "Specifies the default forwarding class to be used while classifying
8456 the ingress traffic.";
8457 }
8458
8459 leaf profile {
8460 type types-qos:profile;
8461 default "out";
8462 description "Specifies the default profile to be used for the ingressing traffic.";
8463 }
8464
8465 } // container default-action
8466
8467 list dot1p {
8468 key "dot1p-value";
8469 description "Ingress classification Policy Ingress 802.1 priority Mappings.";
8470
8471 leaf dot1p-value {
8472 type union {
8473 type string {
8474 length "1..64";
8475 pattern "<.*>" {
8476 error-message "Config Groups Regex Pattern";
8477 }
8478 }
8479 type types-qos:dot1p-priority;
8480 }
8481 description "The dot1p value to match in the packet.";
8482 }
8483
8484 leaf fc {
8485 type types-sros:fc-name;
8486 mandatory true;
8487 description "Specifies the forwarding class.";
8488 }
8489
8490 leaf profile {
8491 type types-qos:profile-de;
8492 mandatory true;
8493 description "Specifies the default profile to be used for the ingressing traffic.";
8494 }
8495
8496 } // list dot1p
8497
8498 list dscp {
8499 key "dscp-name";
8500 description "Ingress classification Policy Ingress DSCP Mappings.";
8501
8502 leaf dscp-name {
8503 type union {
8504 type string {
8505 length "1..64";
8506 pattern "<.*>" {
8507 error-message "Config Groups Regex Pattern";
8508 }
8509 }
8510 type types-qos:dscp-name;
8511 }
8512 description
8513 "Specifies the Differentiated Services Code Point (DSCP) name for
8514 which mapping is done.";
8515 }
8516
8517 leaf fc {
8518 type types-sros:fc-name;
8519 mandatory true;
8520 description "Specifies the forwarding class.";
8521 }
8522
8523 leaf profile {
8524 type types-qos:profile;
8525 mandatory true;
8526 description "Specifies the default profile to be used for the ingressing traffic.";
8527 }
8528
8529 } // list dscp
8530
8531 list lsp-exp {
8532 key "lsp-exp-value";
8533 description "Ingress classification Policy Ingress LSP-EXP mappings.";
8534
8535 leaf lsp-exp-value {
8536 type union {
8537 type string {
8538 length "1..64";
8539 pattern "<.*>" {
8540 error-message "Config Groups Regex Pattern";
8541 }
8542 }
8543 type types-qos:lsp-exp-value;
8544 }
8545 description "The lsp-exp bit value for which mapping is done.";
8546 }
8547
8548 leaf fc {
8549 type types-sros:fc-name;
8550 mandatory true;
8551 description "Specifies the forwarding class.";
8552 }
8553
8554 leaf profile {
8555 type types-qos:profile;
8556 mandatory true;
8557 description "Specifies the default profile to be used for the ingressing traffic.";
8558 }
8559
8560 } // list lsp-exp
8561
8562 } // list ingress-classification-policy
8563
8564 list network-ingress {
8565 key "network-ingress-policy-name";
8566 description "Network-Ingress QoS policies.";
8567
8568 leaf network-ingress-policy-name {
8569 type union {
8570 type string {
8571 length "1..64";
8572 pattern "<.*>" {
8573 error-message "Config Groups Regex Pattern";
8574 }
8575 }
8576 type types-qos:qos-policy-name;
8577 }
8578 description "The name of this network-ingress QoS policy.";
8579 }
8580
8581 leaf description {
8582 type types-sros:description;
8583 description "Description for this network-ingress policy.";
8584 }
8585
8586 leaf ingress-classification-policy {
8587 type types-qos:qos-policy-name;
8588 default "network-default";
8589 description "Attach ingress classification policy.";
8590 }
8591
8592 leaf scope {
8593 type types-qos:item-scope;
8594 default "template";
8595 description "Scope of the policy.";
8596 }
8597
8598 list fc {
8599 key "fc-name";
8600 description "Network-ingress forwarding-class to policer mappings.";
8601
8602 leaf fc-name {
8603 type union {
8604 type string {
8605 length "1..64";
8606 pattern "<.*>" {
8607 error-message "Config Groups Regex Pattern";
8608 }
8609 }
8610 type types-qos:sap-ingress-fc-name;
8611 }
8612 description "Forwarding class for which this mapping is performed";
8613 }
8614
8615 leaf multicast-policer {
8616 type types-qos:ingress-policer-id;
8617 description
8618 "Specifies the policer identifier to be used for the multicast traffic
8619 in this forwarding class.";
8620 }
8621
8622 leaf policer {
8623 type types-qos:ingress-policer-id;
8624 description
8625 "Specifies the policer identifier to be used for the normal traffic
8626 in this forwarding class.";
8627 }
8628
8629 } // list fc
8630
8631 list policer {
8632 key "policer-id";
8633 description "Network-Ingress Policer.";
8634
8635 leaf policer-id {
8636 type union {
8637 type string {
8638 length "1..64";
8639 pattern "<.*>" {
8640 error-message "Config Groups Regex Pattern";
8641 }
8642 }
8643 type types-qos:ingress-policer-id;
8644 }
8645 description "SAP-ingress policer identifier";
8646 }
8647
8648 leaf cbs {
8649 type union {
8650 type types-qos:bytes {
8651 range "0..16777216";
8652 }
8653 type enumeration {
8654 enum "auto" { value -1; }
8655 }
8656 }
8657 units "bytes";
8658 default "auto";
8659 description "Specifies the 'exceed' threshold of the CIR leaky bucket of this policer.";
8660 }
8661
8662 leaf mbs {
8663 type union {
8664 type types-qos:bytes {
8665 range "0..16777216";
8666 }
8667 type enumeration {
8668 enum "auto" { value -1; }
8669 }
8670 }
8671 units "bytes";
8672 default "auto";
8673 description "Specifies the maximum burst size to be used in conjunction with the PIR.";
8674 }
8675
8676 leaf stat-mode {
8677 type enumeration {
8678 enum "no-stats" { value 0; }
8679 enum "offered-profile-with-discards" { value 10; }
8680 }
8681 default "no-stats";
8682 description "Specifies the mode of statistics collected.";
8683 }
8684
8685 container adaptation-rule {
8686 description "Specifies PIR and CIR adaptation rules.";
8687
8688 leaf pir {
8689 type types-qos:adaptation-rule;
8690 default "closest";
8691 description
8692 "The adaptation rule to be used while computing the operational PIR
8693 value. The adaptation rule specifies the rules to compute the
8694 operational values while maintaining minimum offset.";
8695 }
8696
8697 leaf cir {
8698 type types-qos:adaptation-rule;
8699 default "closest";
8700 description
8701 "The adaptation rule to be used while computing the operational CIR
8702 value. The adaptation rule specifies the rules to compute the
8703 operational values while maintaining minimum offset.";
8704 }
8705
8706 } // container adaptation-rule
8707
8708 container rate {
8709 description "Specifies PIR and CIR Kbps Rate.";
8710
8711 leaf pir {
8712 type union {
8713 type uint32 {
8714 range "1..2000000000";
8715 }
8716 type enumeration {
8717 enum "max" { value -1; }
8718 }
8719 }
8720 units "kilobps";
8721 default "max";
8722 description "Specifies the administrative PIR.";
8723 }
8724
8725 leaf cir {
8726 type union {
8727 type uint32 {
8728 range "0..2000000000";
8729 }
8730 type enumeration {
8731 enum "max" { value -1; }
8732 }
8733 }
8734 units "kilobps";
8735 default "0";
8736 description "Specifies the administrative CIR.";
8737 }
8738
8739 } // container rate
8740
8741 } // list policer
8742
8743 } // list network-ingress
8744
8745 list sap-egress {
8746 key "sap-egress-policy-name";
8747 description "Enter the sap-egress context";
8748
8749 leaf sap-egress-policy-name {
8750 type union {
8751 type string {
8752 length "1..64";
8753 pattern "<.*>" {
8754 error-message "Config Groups Regex Pattern";
8755 }
8756 }
8757 type types-qos:qos-policy-name;
8758 }
8759 description "Name of this sap-egress QoS policy";
8760 }
8761
8762 leaf policy-id {
8763 type types-qos:qos-policy-id;
8764 sros-ext:immutable;
8765 description "The sap-egress QoS policy identifier.";
8766 }
8767
8768 leaf scope {
8769 type types-qos:item-scope;
8770 default "template";
8771 description "Scope of the policy";
8772 }
8773
8774 leaf description {
8775 type types-sros:description;
8776 description "Text description";
8777 }
8778
8779 leaf ethernet-ctag {
8780 type boolean;
8781 default "false";
8782 description "Tag value for dot1p and DE (Drop-Eligible) that are used by all dot1-p entries";
8783 }
8784
8785 leaf parent-location {
8786 type enumeration {
8787 enum "auto" { value 1; }
8788 enum "sla" { value 2; }
8789 }
8790 default "auto";
8791 description "Location in which queues can find their parent scheduler in case the parent scheduler if not found";
8792 }
8793
8794 leaf policers-hqos-manageable {
8795 type boolean;
8796 default "false";
8797 description "Manage policers through the Hierarchical QoS process";
8798 }
8799
8800 leaf post-policer-mapping {
8801 type types-sros:named-item;
8802 description "Post policer mapping policy applied to this policy";
8803 }
8804
8805 leaf hs-attachment-policy {
8806 type types-sros:named-item;
8807 description "HS attachment policy applied";
8808 }
8809
8810 container subscriber-mgmt {
8811 description "Enter the subscriber-mgmt context";
8812
8813 container pcc-rule-entry {
8814 description "Enter the pcc-rule-entry context";
8815
8816 container range {
8817 presence "true";
8818 description "Enter the range context";
8819
8820 leaf start {
8821 type types-qos:entry-id;
8822 mandatory true;
8823 description
8824 "Specifies the starting entry at which the pcc-rule ip-criteria entries that are
8825 received from Diameter and that are shared across several hosts.";
8826 }
8827
8828 leaf end {
8829 type types-qos:entry-id;
8830 mandatory true;
8831 description
8832 "Specifies the ending entry at which the pcc-rule ip-criteria entries that are
8833 received from Diameter and that are shared across several hosts.";
8834 }
8835
8836 } // container range
8837
8838 } // container pcc-rule-entry
8839
8840 container dynamic-policer {
8841 description "Enter the dynamic-policer context";
8842
8843 leaf cbs {
8844 type union {
8845 type types-qos:bytes {
8846 range "0..16777216";
8847 }
8848 type enumeration {
8849 enum "auto" { value -1; }
8850 }
8851 }
8852 units "bytes";
8853 default "auto";
8854 description "Exceed threshold of the CIR leaky bucket of this policer";
8855 }
8856
8857 leaf mbs {
8858 type union {
8859 type types-qos:bytes {
8860 range "0..16777216";
8861 }
8862 type enumeration {
8863 enum "auto" { value -1; }
8864 }
8865 }
8866 units "bytes";
8867 default "auto";
8868 description "High priority 'violate' threshold of PIR leaky bucket of this policer";
8869 }
8870
8871 leaf packet-byte-offset {
8872 type types-qos:egress-per-packet-offset;
8873 default "0";
8874 description "Size of each packet, handled by the policer, to be modified";
8875 }
8876
8877 leaf stat-mode {
8878 type enumeration {
8879 enum "no-stats" { value 0; }
8880 enum "minimal" { value 1; }
8881 enum "offered-profile-no-cir" { value 2; }
8882 enum "offered-total-cir" { value 3; }
8883 enum "offered-profile-cir" { value 4; }
8884 enum "offered-limited-capped-cir" { value 5; }
8885 enum "offered-profile-capped-cir" { value 6; }
8886 }
8887 default "minimal";
8888 description "Mode of statistics collected by the policer";
8889 }
8890
8891 container policer-id-range {
8892 presence "true";
8893 description "Enter the policer-id-range context";
8894
8895 leaf start {
8896 type types-qos:ingress-policer-id;
8897 mandatory true;
8898 description
8899 "Specifies the starting place at which dynamic policers required for the pcc-rule
8900 ip-criteria entries that are received from Diameter and that are shared
8901 across several hosts will be inserted.";
8902 }
8903
8904 leaf end {
8905 type types-qos:ingress-policer-id;
8906 mandatory true;
8907 description
8908 "Specifies the ending place at which dynamic policers required for the pcc-rule
8909 ip-criteria entries that are received from Diameter and that are shared
8910 across several hosts will be inserted.";
8911 }
8912
8913 } // container policer-id-range
8914
8915 container arbiter-parent {
8916 description "Enter the arbiter-parent context";
8917
8918 leaf arbiter-name {
8919 type types-sros:named-item;
8920 description "Arbiter to which this policer feeds";
8921 }
8922
8923 leaf level {
8924 type types-qos:hierarchy-level;
8925 default "1";
8926 description "Level of priority while feeding to the parent";
8927 }
8928
8929 leaf weight {
8930 type types-qos:weight {
8931 range "1..100";
8932 }
8933 default "1";
8934 description "Weight to be used by the arbiter for feeding this policer";
8935 }
8936
8937 } // container arbiter-parent
8938
8939 } // container dynamic-policer
8940
8941 } // container subscriber-mgmt
8942
8943 container hsmda-queues {
8944 description "Enter the hsmda-queues context";
8945
8946 leaf low-burst-max-class {
8947 type uint32 {
8948 range "1..8";
8949 }
8950 default "8";
8951 description "Class that uses low priority burst threshold";
8952 }
8953
8954 leaf packet-byte-offset {
8955 type types-qos:egress-per-packet-offset;
8956 default "0";
8957 description "Packet byte offset to use for the HSMDA egress queues";
8958 }
8959
8960 leaf wrr-policy {
8961 type types-sros:named-item;
8962 description "Weighted Round Robin (WRR) policy";
8963 }
8964
8965 list queue {
8966 key "queue-id";
8967 description "Enter the queue context";
8968
8969 leaf queue-id {
8970 type union {
8971 type string {
8972 length "1..64";
8973 pattern "<.*>" {
8974 error-message "Config Groups Regex Pattern";
8975 }
8976 }
8977 type types-qos:egress-queue-id;
8978 }
8979 description "Egress HSMDA queue ID";
8980 }
8981
8982 leaf burst-limit {
8983 type union {
8984 type types-qos:bytes {
8985 range "1..1000000";
8986 }
8987 type enumeration {
8988 enum "auto" { value -1; }
8989 }
8990 }
8991 default "auto";
8992 description "Explicit shaping burst size of a queue";
8993 }
8994
8995 leaf mbs {
8996 type types-qos:hsmda-queue-burst-size;
8997 units "bytes";
8998 description "Buffer space allowed for the queue";
8999 }
9000
9001 leaf rate {
9002 type types-qos:hsmda-queue-pir-rate;
9003 default "max";
9004 description "PIR rate";
9005 }
9006
9007 leaf slope-policy {
9008 type types-sros:named-item;
9009 description "Name of the slope policy which overrides the default policy for the named buffer pool";
9010 }
9011
9012 leaf wrr-weight {
9013 type types-qos:hsmda-wrr-weight;
9014 default "1";
9015 description "Weight value for the HSMDA queue";
9016 }
9017
9018 container adaptation-rule {
9019 description "Enter the adaptation-rule context";
9020
9021 leaf pir {
9022 type types-qos:adaptation-rule;
9023 default "closest";
9024 description "Constraint used when deriving the operational PIR value";
9025 }
9026
9027 } // container adaptation-rule
9028
9029 } // list queue
9030
9031 } // container hsmda-queues
9032
9033 list dot1p {
9034 key "dot1p-value";
9035 description "Enter the dot1p context";
9036
9037 leaf dot1p-value {
9038 type union {
9039 type string {
9040 length "1..64";
9041 pattern "<.*>" {
9042 error-message "Config Groups Regex Pattern";
9043 }
9044 }
9045 type types-qos:dot1p-priority;
9046 }
9047 description "Dot1p value to match in the packet";
9048 }
9049
9050 leaf fc {
9051 type types-sros:fc-name;
9052 description "Forwarding class";
9053 }
9054
9055 leaf profile {
9056 type types-qos:egress-profile-de;
9057 description "Default profile for the ingressing traffic";
9058 }
9059
9060 } // list dot1p
9061
9062 list dscp {
9063 key "dscp-name";
9064 description "Enter the dscp context";
9065
9066 leaf dscp-name {
9067 type union {
9068 type string {
9069 length "1..64";
9070 pattern "<.*>" {
9071 error-message "Config Groups Regex Pattern";
9072 }
9073 }
9074 type types-qos:dscp-name;
9075 }
9076 description
9077 "Specifies the Differentiated Services Code Point (DSCP) name for
9078 which mapping is done.";
9079 }
9080
9081 leaf fc {
9082 type types-sros:fc-name;
9083 description "Forwarding class";
9084 }
9085
9086 leaf profile {
9087 type types-qos:egress-profile;
9088 description "Default profile for the ingressing traffic";
9089 }
9090
9091 leaf hsmda-counter-override {
9092 type types-qos:egress-hsmda-counter-id;
9093 description
9094 "Specifies the counter to use for all the traffic that matches the specific precedence.
9095 A value of zero implies that the default counters should be used.";
9096 }
9097
9098 } // list dscp
9099
9100 list prec {
9101 key "prec-value";
9102 description "Enter the prec context";
9103
9104 leaf prec-value {
9105 type union {
9106 type string {
9107 length "1..64";
9108 pattern "<.*>" {
9109 error-message "Config Groups Regex Pattern";
9110 }
9111 }
9112 type types-qos:precedence-value;
9113 }
9114 description "Precedence value for which mapping is performed";
9115 }
9116
9117 leaf fc {
9118 type types-sros:fc-name;
9119 description "Forwarding class";
9120 }
9121
9122 leaf profile {
9123 type types-qos:egress-profile;
9124 description "Default profile for the ingressing traffic";
9125 }
9126
9127 leaf hsmda-counter-override {
9128 type types-qos:egress-hsmda-counter-id;
9129 description
9130 "Specifies the counter to use for all the traffic that matches the specific precedence.
9131 A value of zero implies that the default counters should be used.";
9132 }
9133
9134 } // list prec
9135
9136 list fc {
9137 key "fc-name";
9138 description "Enter the fc context";
9139
9140 leaf fc-name {
9141 type union {
9142 type string {
9143 length "1..64";
9144 pattern "<.*>" {
9145 error-message "Config Groups Regex Pattern";
9146 }
9147 }
9148 type types-sros:fc-name;
9149 }
9150 description "Forwarding class";
9151 }
9152
9153 leaf policer {
9154 type types-qos:sap-egress-policer-id;
9155 description "Policer to forward the traffic";
9156 }
9157
9158 choice dscp-or-prec {
9159 case dscp {
9160
9161 container dscp {
9162 description "Enter the dscp context";
9163
9164 leaf in-profile {
9165 type types-qos:dscp-name;
9166 description "DSCP name for in-profile frames";
9167 }
9168
9169 leaf out-profile {
9170 type types-qos:dscp-name;
9171 description "DSCP name for out-of-profile frames";
9172 }
9173
9174 leaf exceed-profile {
9175 type types-qos:dscp-name;
9176 description "DSCP name for exceed-profile frames";
9177 }
9178
9179 } // container dscp
9180
9181 }
9182 case prec {
9183
9184 container prec {
9185 description "Enter the prec context";
9186
9187 leaf in-profile {
9188 type types-qos:precedence-value;
9189 description "Precedence value for in-profile frames";
9190 }
9191
9192 leaf out-profile {
9193 type types-qos:precedence-value;
9194 description "Precedence value for out-of-profile frames";
9195 }
9196
9197 leaf exceed-profile {
9198 type types-qos:precedence-value;
9199 description "Precedence for exceed-profile frames";
9200 }
9201
9202 } // container prec
9203
9204 }
9205 }
9206 choice queue-redirection-mapping {
9207 case queue {
9208
9209 leaf queue {
9210 type types-qos:egress-queue-id;
9211 description "Queue to forward the traffic";
9212 }
9213
9214 }
9215 case port-redirect-group-queue {
9216
9217 container port-redirect-group-queue {
9218 presence "port-redirect-group-queue mappings";
9219 description "Enter the port-redirect-group-queue context";
9220
9221 leaf queue {
9222 type types-qos:egress-queue-id;
9223 description "Queue to forward the traffic";
9224 }
9225
9226 } // container port-redirect-group-queue
9227
9228 }
9229 case queue-group-queue {
9230
9231 container queue-group-queue {
9232 presence "queue-group mappings";
9233 description "Enter the queue-group-queue context";
9234
9235 leaf queue-group-name {
9236 type types-sros:named-item;
9237 mandatory true;
9238 description "Queue group to which the traffic is forwarded";
9239 }
9240
9241 leaf queue {
9242 type types-qos:egress-queue-id;
9243 description "Specifies the queue to forward the traffic.";
9244 }
9245
9246 leaf instance {
9247 type uint32 {
9248 range "1..65535";
9249 }
9250 description "SRRP instance whose state is tracked on this IP address";
9251 }
9252
9253 } // container queue-group-queue
9254
9255 }
9256 }
9257 container de-mark {
9258 presence "Specifies whether to set DE value in the frames.";
9259 description "Enter the de-mark context";
9260
9261 leaf force {
9262 type types-qos:de-value;
9263 description "DE value";
9264 }
9265
9266 } // container de-mark
9267
9268 container de-mark-inner {
9269 presence "Specifies whether to set DE value in the inner VLAN tag.";
9270 description "Enter the de-mark-inner context";
9271
9272 leaf force {
9273 type types-qos:de-value;
9274 description "DE value to set in inner VLAN tag";
9275 }
9276
9277 } // container de-mark-inner
9278
9279 container de-mark-outer {
9280 presence "Specifies whether to set DE value in the outer VLAN tag.";
9281 description "Enter the de-mark-outer context";
9282
9283 leaf force {
9284 type types-qos:de-value;
9285 description "DE value to set in outer VLAN tag";
9286 }
9287
9288 } // container de-mark-outer
9289
9290 container dot1p {
9291 description "Enter the dot1p context";
9292
9293 leaf in-profile {
9294 type types-qos:dot1p-priority;
9295 description "Dot1p value for in-profile frames";
9296 }
9297
9298 leaf out-profile {
9299 type types-qos:dot1p-priority;
9300 description "Dot1p value for out-of-profile frames";
9301 }
9302
9303 leaf exceed-profile {
9304 type types-qos:dot1p-priority;
9305 description "Dot1p value for exceed-profile frames";
9306 }
9307
9308 } // container dot1p
9309
9310 container dot1p-inner {
9311 description "Enter the dot1p-inner context";
9312
9313 leaf in-profile {
9314 type types-qos:dot1p-priority;
9315 description "Inner Dot1p value for in-profile frames";
9316 }
9317
9318 leaf out-profile {
9319 type types-qos:dot1p-priority;
9320 description "Inner Dot1p value for out-of-profile frames";
9321 }
9322
9323 } // container dot1p-inner
9324
9325 container dot1p-outer {
9326 description "Enter the dot1p-outer context";
9327
9328 leaf in-profile {
9329 type types-qos:dot1p-priority;
9330 description "Outer Dot1p value for in-profile frames";
9331 }
9332
9333 leaf out-profile {
9334 type types-qos:dot1p-priority;
9335 description "Outer Dot1p value for out-of-profile frames";
9336 }
9337
9338 leaf exceed-profile {
9339 type types-qos:dot1p-priority;
9340 description "Outer Dot1p value for exceed-profile frames";
9341 }
9342
9343 } // container dot1p-outer
9344
9345 container hsmda {
9346 description "Enter the hsmda context";
9347
9348 choice hsmda-queue-redirection-mapping {
9349 case queue {
9350
9351 leaf queue {
9352 type types-qos:egress-queue-id;
9353 description "HSMDA queue to which traffic is forwarded";
9354 }
9355
9356 }
9357 case port-redirect-group-queue {
9358
9359 container port-redirect-group-queue {
9360 presence "Sap Egress Forwarding Class (FC) hsmda-queue mappings.";
9361 description "Enter the port-redirect-group-queue context";
9362
9363 leaf queue {
9364 type types-qos:egress-queue-id;
9365 mandatory true;
9366 description "HSMDA queue to which traffic is forwarded";
9367 }
9368
9369 } // container port-redirect-group-queue
9370
9371 }
9372 }
9373 } // container hsmda
9374
9375 } // list fc
9376
9377 list queue {
9378 key "queue-id";
9379 description "Enter the queue context";
9380
9381 leaf queue-id {
9382 type union {
9383 type string {
9384 length "1..64";
9385 pattern "<.*>" {
9386 error-message "Config Groups Regex Pattern";
9387 }
9388 }
9389 type types-qos:egress-queue-id;
9390 }
9391 description "Egress Queue-Group queue identifier";
9392 }
9393
9394 leaf queue-type {
9395 type enumeration {
9396 enum "expedited" { value 1; }
9397 enum "auto-expedited" { value 2; }
9398 enum "best-effort" { value 3; }
9399 }
9400 sros-ext:immutable;
9401 default "auto-expedited";
9402 description "Priority that this queue receives from the hardware level schedulers";
9403 }
9404
9405 leaf adv-config-policy {
9406 type types-sros:named-item;
9407 description "Name of the advanced configuration policy";
9408 }
9409
9410 leaf avg-frame-overhead {
9411 type decimal64 {
9412 range "0.00..100.00";
9413 fraction-digits 2;
9414 }
9415 default "0.00";
9416 description
9417 "Specifies the encapsulation overhead, in centipercent, used to
9418 translate packet-based rate to frame-based rate and vice versa.";
9419 }
9420
9421 leaf burst-limit {
9422 type union {
9423 type types-qos:bytes {
9424 range "1..14000000";
9425 }
9426 type enumeration {
9427 enum "auto" { value -1; }
9428 }
9429 }
9430 default "auto";
9431 description "Explicit shaping burst size of a queue";
9432 }
9433
9434 leaf cbs {
9435 type union {
9436 type types-qos:bytes {
9437 range "0..1048576";
9438 }
9439 type enumeration {
9440 enum "auto" { value -1; }
9441 }
9442 }
9443 units "kilobytes";
9444 default "auto";
9445 description "Reserved buffer space for the queue";
9446 }
9447
9448 leaf mbs {
9449 type union {
9450 type types-qos:bytes {
9451 range "0..1073741824";
9452 }
9453 type enumeration {
9454 enum "auto" { value -1; }
9455 }
9456 }
9457 units "bytes";
9458 default "auto";
9459 description "Buffer space allowed for the queue";
9460 }
9461
9462 leaf packet-byte-offset {
9463 type int32 {
9464 range "-64..32";
9465 }
9466 default "0";
9467 description "Packet byte offset for addition of policing information";
9468 }
9469
9470 leaf hs-alt-port-class-pool {
9471 type boolean;
9472 default "false";
9473 description "Use HS alternate class port pool buffer for traffic";
9474 }
9475
9476 leaf hs-wrr-weight {
9477 type types-qos:hs-wrr-weight;
9478 default "1";
9479 description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler";
9480 }
9481
9482 leaf hs-class-weight {
9483 type types-qos:hs-class-weight;
9484 default "1";
9485 description "Scheduling class weight";
9486 }
9487
9488 choice rate-or-percent-rate {
9489 default "rate";
9490 case rate {
9491
9492 container rate {
9493 description "Enter the rate context";
9494
9495 leaf pir {
9496 type types-qos:queue-pir-rate-maximum;
9497 units "kilobps";
9498 default "max";
9499 description "Administrative PIR";
9500 }
9501
9502 leaf cir {
9503 type types-qos:queue-cir-rate-maximum;
9504 units "kilobps";
9505 default "0";
9506 description "Administrative CIR";
9507 }
9508
9509 } // container rate
9510
9511 }
9512 case percent-rate {
9513
9514 container percent-rate {
9515 description "Enter the percent-rate context";
9516
9517 leaf pir {
9518 type decimal64 {
9519 range "0.01..100.00";
9520 fraction-digits 2;
9521 }
9522 description "Administrative PIR percent";
9523 }
9524
9525 leaf cir {
9526 type decimal64 {
9527 range "0.00..100.00";
9528 fraction-digits 2;
9529 }
9530 default "0.00";
9531 description "Administrative CIR percent";
9532 }
9533
9534 leaf reference-rate {
9535 type enumeration {
9536 enum "port-limit" { value 2; }
9537 enum "local-limit" { value 3; }
9538 }
9539 default "port-limit";
9540 description "Reference rate as percentage";
9541 }
9542
9543 } // container percent-rate
9544
9545 }
9546 }
9547 choice parent-mapping {
9548 case scheduler-parent {
9549
9550 container scheduler-parent {
9551 presence "Specifies whether this queue is parented by scheduler.";
9552 description "Enter the scheduler-parent context";
9553
9554 leaf scheduler-name {
9555 type types-sros:named-item;
9556 mandatory true;
9557 description "Scheduler to which this queue feeds";
9558 }
9559
9560 leaf level {
9561 type types-qos:hierarchy-level;
9562 default "1";
9563 description "Level of priority while feeding to the parent";
9564 }
9565
9566 leaf weight {
9567 type types-qos:weight;
9568 default "1";
9569 description "Weight to be used by the scheduler for feeding this queue";
9570 }
9571
9572 leaf cir-level {
9573 type types-qos:cir-level;
9574 default "0";
9575 description "Level of priority while feeding to the parent";
9576 }
9577
9578 leaf cir-weight {
9579 type types-qos:cir-weight;
9580 default "1";
9581 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
9582 }
9583
9584 } // container scheduler-parent
9585
9586 }
9587 case port-parent {
9588
9589 container port-parent {
9590 presence "Specifies whether this queue is parented by port-level scheduler.";
9591 description "Enter the port-parent context";
9592
9593 leaf level {
9594 type types-qos:hierarchy-level;
9595 default "1";
9596 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
9597 }
9598
9599 leaf weight {
9600 type types-qos:weight;
9601 default "1";
9602 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
9603 }
9604
9605 leaf cir-level {
9606 type types-qos:cir-level;
9607 default "0";
9608 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
9609 }
9610
9611 leaf cir-weight {
9612 type types-qos:cir-weight;
9613 default "0";
9614 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
9615 }
9616
9617 } // container port-parent
9618
9619 }
9620 }
9621 container adaptation-rule {
9622 description "Enter the adaptation-rule context";
9623
9624 leaf pir {
9625 type types-qos:adaptation-rule;
9626 default "closest";
9627 description "Constraint used when deriving the operational PIR value";
9628 }
9629
9630 leaf cir {
9631 type types-qos:adaptation-rule;
9632 default "closest";
9633 description "Constraint used when deriving the operational CIR value";
9634 }
9635
9636 } // container adaptation-rule
9637
9638 container wred-queue {
9639 description "Enter the wred-queue context";
9640
9641 leaf policy {
9642 type types-sros:named-item;
9643 description "Slope policy name";
9644 }
9645
9646 leaf mode {
9647 type enumeration {
9648 enum "native" { value 1; }
9649 enum "pool-per-queue" { value 2; }
9650 }
9651 description "Generic pool association of the queue to allow queue-specific WRED slopes";
9652 }
9653
9654 leaf usage {
9655 type types-qos:wred-queue-slope-usage;
9656 description "Specifies which slopes are active for given slope-mode";
9657 }
9658
9659 } // container wred-queue
9660
9661 container drop-tail {
9662 description "Enter the drop-tail context";
9663
9664 container highplus {
9665 description "Enter the highplus context";
9666
9667 leaf percent-reduction-from-mbs {
9668 type types-qos:burst-percent;
9669 description "Percentage of drop-tail being that is reduced from MBS for high plus profile packets";
9670 }
9671
9672 } // container highplus
9673
9674 container high {
9675 description "Enter the high context";
9676
9677 leaf percent-reduction-from-mbs {
9678 type types-qos:burst-percent;
9679 description "Percentage of drop-tail being that is reduced from MBS for high profile packets";
9680 }
9681
9682 } // container high
9683
9684 container low {
9685 description "Enter the low context";
9686
9687 leaf percent-reduction-from-mbs {
9688 type types-qos:burst-percent;
9689 description "Low drop-tail percent from MBS that is reduced";
9690 }
9691
9692 } // container low
9693
9694 container exceed {
9695 description "Enter the exceed context";
9696
9697 leaf percent-reduction-from-mbs {
9698 type types-qos:burst-percent;
9699 description "Percentage of drop-tail that is reduced from MBS for exceed profile packets";
9700 }
9701
9702 } // container exceed
9703
9704 } // container drop-tail
9705
9706 container hs-wred-queue {
9707 description "Enter the hs-wred-queue context";
9708
9709 leaf policy {
9710 type types-sros:named-item;
9711 description "Slope policy name";
9712 }
9713
9714 } // container hs-wred-queue
9715
9716 } // list queue
9717
9718 list policer {
9719 key "policer-id";
9720 description "Enter the policer context";
9721
9722 leaf policer-id {
9723 type union {
9724 type string {
9725 length "1..64";
9726 pattern "<.*>" {
9727 error-message "Config Groups Regex Pattern";
9728 }
9729 }
9730 type types-qos:sap-egress-policer-id;
9731 }
9732 description "Sap-Egress Policer identifier.";
9733 }
9734
9735 leaf description {
9736 type types-sros:description;
9737 description "Text description";
9738 }
9739
9740 leaf adv-config-policy {
9741 type types-sros:named-item;
9742 description "Name of the advanced configuration policy to apply with this queue";
9743 }
9744
9745 leaf cbs {
9746 type union {
9747 type types-qos:bytes {
9748 range "0..16777216";
9749 }
9750 type enumeration {
9751 enum "auto" { value -1; }
9752 }
9753 }
9754 units "bytes";
9755 default "auto";
9756 description "Exceed threshold of the CIR leaky bucket of this policer";
9757 }
9758
9759 leaf dscp-prec-remarking {
9760 type boolean;
9761 default "false";
9762 description "Remark DSCP and precedence based on the profile state of a forwarding packet";
9763 }
9764
9765 leaf exceed-pir {
9766 type boolean;
9767 default "false";
9768 description "Allow forwarding of packets with an exceed-profile state and traffic exceeding the PIR";
9769 }
9770
9771 leaf high-prio-only {
9772 type types-qos:burst-percent;
9773 description "Percentage of PIR leaky bucket's MBS of this policer that is reserved for high priority traffic";
9774 }
9775
9776 leaf mbs {
9777 type union {
9778 type types-qos:bytes {
9779 range "0..16777216";
9780 }
9781 type enumeration {
9782 enum "auto" { value -1; }
9783 }
9784 }
9785 units "bytes";
9786 default "auto";
9787 description "High priority 'violate' threshold of PIR leaky bucket of this policer";
9788 }
9789
9790 leaf packet-byte-offset {
9791 type types-qos:egress-per-packet-offset;
9792 default "0";
9793 description "Size of each packet, handled by the policer, to be modified";
9794 }
9795
9796 leaf profile-capped {
9797 type boolean;
9798 default "false";
9799 description "Enforce an overall in-profile burst limit to the CIR bucket at egress policer";
9800 }
9801
9802 leaf profile-out-preserve {
9803 type boolean;
9804 default "false";
9805 description "Preserve the color of offered out-of-profile traffic at SAP-egress policer";
9806 }
9807
9808 leaf stat-mode {
9809 type types-qos:egress-policer-stat-mode;
9810 default "minimal";
9811 description "Mode of statistics collected by the policer";
9812 }
9813
9814 choice rate-or-percent-rate {
9815 default "rate";
9816 case rate {
9817
9818 container rate {
9819 description "Enter the rate context";
9820
9821 leaf pir {
9822 type types-qos:policer-pir-rate-maximum;
9823 units "kilobps";
9824 default "max";
9825 description "Administrative PIR";
9826 }
9827
9828 leaf cir {
9829 type types-qos:policer-cir-rate-maximum;
9830 units "kilobps";
9831 default "0";
9832 description "Administrative CIR";
9833 }
9834
9835 } // container rate
9836
9837 }
9838 case percent-rate {
9839
9840 container percent-rate {
9841 description "Enter the percent-rate context";
9842
9843 leaf pir {
9844 type decimal64 {
9845 range "0.01..100.00";
9846 fraction-digits 2;
9847 }
9848 description "Administrative PIR percent";
9849 }
9850
9851 leaf cir {
9852 type decimal64 {
9853 range "0.00..100.00";
9854 fraction-digits 2;
9855 }
9856 default "0.00";
9857 description "Administrative CIR percent";
9858 }
9859
9860 } // container percent-rate
9861
9862 }
9863 }
9864 choice parent-mapping {
9865 case scheduler-parent {
9866
9867 container scheduler-parent {
9868 presence "Specifies whether this queue is parented by scheduler.";
9869 description "Enter the scheduler-parent context";
9870
9871 leaf scheduler-name {
9872 type types-sros:named-item;
9873 mandatory true;
9874 description "Specifies the scheduler to which this queue would be feeding to.";
9875 }
9876
9877 leaf level {
9878 type types-qos:hierarchy-level;
9879 default "1";
9880 description "Specifies the level of priority while feeding to the parent.";
9881 }
9882
9883 leaf weight {
9884 type types-qos:weight;
9885 default "1";
9886 description
9887 "Specifies the weight that needs to be used by the scheduler to which
9888 this queue would be feeding to.";
9889 }
9890
9891 leaf cir-level {
9892 type types-qos:cir-level;
9893 default "0";
9894 description
9895 "Specifies the level of priority while feeding to the parent.
9896 The level '0' means treat all offered load for this queue as for
9897 the above CIR traffic.";
9898 }
9899
9900 leaf cir-weight {
9901 type types-qos:cir-weight;
9902 default "1";
9903 description
9904 "The weight that needs to be used until the committed rate by the
9905 scheduler to which this queue would be feeding to.";
9906 }
9907
9908 } // container scheduler-parent
9909
9910 }
9911 case port-parent {
9912
9913 container port-parent {
9914 presence "Specifies whether this queue is parented by port-level scheduler.";
9915 description "Enter the port-parent context";
9916
9917 leaf level {
9918 type types-qos:hierarchy-level;
9919 default "1";
9920 description
9921 "Specifies the port priority this queue will use to receive bandwidth from
9922 the port-level scheduler for its above-cir offered load.";
9923 }
9924
9925 leaf weight {
9926 type types-qos:weight;
9927 default "1";
9928 description
9929 "Specifies the weight this queue will use to receive bandwidth from the
9930 port-level scheduler for its above-cir offered load.";
9931 }
9932
9933 leaf cir-level {
9934 type types-qos:cir-level;
9935 default "0";
9936 description
9937 "Specifies the port priority this queue will use to receive bandwidth from
9938 the port-level scheduler for its within-cir offered load.";
9939 }
9940
9941 leaf cir-weight {
9942 type types-qos:cir-weight;
9943 default "0";
9944 description
9945 "Specifies the weight this queue will use to receive bandwidth from the
9946 port-level scheduler for its within-cir offered load.";
9947 }
9948
9949 } // container port-parent
9950
9951 }
9952 }
9953 container adaptation-rule {
9954 description "Enter the adaptation-rule context";
9955
9956 leaf pir {
9957 type types-qos:adaptation-rule;
9958 default "closest";
9959 description "Constraint used when deriving the operational PIR value";
9960 }
9961
9962 leaf cir {
9963 type types-qos:adaptation-rule;
9964 default "closest";
9965 description "Constraint used when deriving the operational CIR value";
9966 }
9967
9968 } // container adaptation-rule
9969
9970 container arbiter-parent {
9971 description "Enter the arbiter-parent context";
9972
9973 leaf arbiter-name {
9974 type types-sros:named-item;
9975 description "Arbiter to which this policer feeds";
9976 }
9977
9978 leaf level {
9979 type types-qos:hierarchy-level;
9980 default "1";
9981 description "Level of priority while feeding to the parent";
9982 }
9983
9984 leaf weight {
9985 type types-qos:weight {
9986 range "1..100";
9987 }
9988 default "1";
9989 description "Weight to be used by the arbiter for feeding this policer";
9990 }
9991
9992 } // container arbiter-parent
9993
9994 } // list policer
9995
9996 list hs-wrr-group {
9997 key "group-id";
9998 description "Enter the hs-wrr-group context";
9999
10000 leaf group-id {
10001 type union {
10002 type string {
10003 length "1..64";
10004 pattern "<.*>" {
10005 error-message "Config Groups Regex Pattern";
10006 }
10007 }
10008 type types-qos:hs-wrr-group-id;
10009 }
10010 description "HS WRR group identifier";
10011 }
10012
10013 leaf hs-class-weight {
10014 type types-qos:hs-class-weight;
10015 default "1";
10016 description "Weight of scheduling class";
10017 }
10018
10019 choice rate-or-percent-rate {
10020 default "rate";
10021 case rate {
10022
10023 leaf rate {
10024 type union {
10025 type uint32 {
10026 range "1..2000000000";
10027 }
10028 type enumeration {
10029 enum "max" { value -1; }
10030 }
10031 }
10032 units "kilobps";
10033 default "max";
10034 description "Administrative PIR";
10035 }
10036
10037 }
10038 case percent-rate {
10039
10040 leaf percent-rate {
10041 type decimal64 {
10042 range "0.01..100.00";
10043 fraction-digits 2;
10044 }
10045 description "Administrative PIR percent";
10046 }
10047
10048 }
10049 }
10050 container adaptation-rule {
10051 description "Enter the adaptation-rule context";
10052
10053 leaf pir {
10054 type types-qos:adaptation-rule;
10055 default "closest";
10056 description "Constraint used when deriving the operational PIR value";
10057 }
10058
10059 } // container adaptation-rule
10060
10061 } // list hs-wrr-group
10062
10063 container ip-criteria {
10064 description "Enter the ip-criteria context";
10065
10066 list entry {
10067 key "entry-id";
10068 description "Enter the entry context";
10069
10070 leaf entry-id {
10071 type union {
10072 type string {
10073 length "1..64";
10074 pattern "<.*>" {
10075 error-message "Config Groups Regex Pattern";
10076 }
10077 }
10078 type uint32 {
10079 range "1..65535";
10080 }
10081 }
10082 description "IP Criteria Entry Index";
10083 }
10084
10085 leaf description {
10086 type types-sros:description;
10087 description "Text description";
10088 }
10089
10090 container match {
10091 description "Enter the match context";
10092
10093 leaf protocol {
10094 type types-sros:ipv4-match-protocol;
10095 description "IP protocol to match";
10096 }
10097
10098 leaf dscp {
10099 type types-qos:dscp-name;
10100 description "DSCP value to match in the packet";
10101 }
10102
10103 leaf fragment {
10104 type enumeration {
10105 enum "false" { value 2; }
10106 enum "true" { value 3; }
10107 }
10108 description "Matching criteria to be used for fragmented or non-fragmented packets";
10109 }
10110
10111 container src-port {
10112 description "Enter the src-port context";
10113
10114 choice port-match-mapping {
10115 case lt {
10116
10117 leaf lt {
10118 type int32 {
10119 range "0..65535";
10120 }
10121 description "Value 'less than' as match condition";
10122 }
10123
10124 }
10125 case eq {
10126
10127 leaf eq {
10128 type int32 {
10129 range "0..65535";
10130 }
10131 description "Value 'equal to' as match condition";
10132 }
10133
10134 }
10135 case gt {
10136
10137 leaf gt {
10138 type int32 {
10139 range "0..65535";
10140 }
10141 description "Value 'greater than' as match condition";
10142 }
10143
10144 }
10145 case range {
10146
10147 container range {
10148 description "Enter the range context";
10149
10150 leaf start {
10151 type int32 {
10152 range "0..65535";
10153 }
10154 description "Start value of range";
10155 }
10156
10157 leaf end {
10158 type int32 {
10159 range "0..65535";
10160 }
10161 description "End value for range";
10162 }
10163
10164 } // container range
10165
10166 }
10167 }
10168 } // container src-port
10169
10170 container dst-port {
10171 description "Enter the dst-port context";
10172
10173 choice port-match-mapping {
10174 case lt {
10175
10176 leaf lt {
10177 type int32 {
10178 range "0..65535";
10179 }
10180 description "Value 'less than' as match condition";
10181 }
10182
10183 }
10184 case eq {
10185
10186 leaf eq {
10187 type int32 {
10188 range "0..65535";
10189 }
10190 description "Value 'equal to' as match condition";
10191 }
10192
10193 }
10194 case gt {
10195
10196 leaf gt {
10197 type int32 {
10198 range "0..65535";
10199 }
10200 description "Value 'greater than' as match condition";
10201 }
10202
10203 }
10204 case range {
10205
10206 container range {
10207 description "Enter the range context";
10208
10209 leaf start {
10210 type int32 {
10211 range "0..65535";
10212 }
10213 description "Start value of range";
10214 }
10215
10216 leaf end {
10217 type int32 {
10218 range "0..65535";
10219 }
10220 description "End value for range";
10221 }
10222
10223 } // container range
10224
10225 }
10226 }
10227 } // container dst-port
10228
10229 container src-ip {
10230 description "Enter the src-ip context";
10231
10232 choice src-ip {
10233 case address-and-mask-or-prefix {
10234
10235 leaf address {
10236 type union {
10237 type types-sros:ipv4-address;
10238 type types-sros:ipv4-prefix-with-host-bits;
10239 }
10240 description "IP address to match with source IP of the packet";
10241 }
10242
10243 leaf mask {
10244 type types-sros:ipv4-address;
10245 description "IP address mask to match with source IP of the packet";
10246 }
10247
10248 }
10249 case ip-prefix-list {
10250
10251 leaf ip-prefix-list {
10252 type types-sros:named-item;
10253 description "Specifies ip-prefix-list used as match criterion.";
10254 }
10255
10256 }
10257 }
10258 } // container src-ip
10259
10260 container dst-ip {
10261 description "Enter the dst-ip context";
10262
10263 choice dst-ip {
10264 case address-and-mask-or-prefix {
10265
10266 leaf address {
10267 type union {
10268 type types-sros:ipv4-address;
10269 type types-sros:ipv4-prefix-with-host-bits;
10270 }
10271 description "IP address to match with source IP of the packet";
10272 }
10273
10274 leaf mask {
10275 type types-sros:ipv4-address;
10276 description "IP address mask to match with source IP of the packet";
10277 }
10278
10279 }
10280 case ip-prefix-list {
10281
10282 leaf ip-prefix-list {
10283 type types-sros:named-item;
10284 description "Specifies ip-prefix-list used as match criterion.";
10285 }
10286
10287 }
10288 }
10289 } // container dst-ip
10290
10291 } // container match
10292
10293 container action {
10294 description "Enter the action context";
10295
10296 leaf type {
10297 type types-qos:criteria-action-type;
10298 default "ignore-match";
10299 description "Specified whether the criteria entry is active or in-active.";
10300 }
10301
10302 leaf fc {
10303 type types-sros:fc-name;
10304 description "Forwarding class";
10305 }
10306
10307 leaf profile {
10308 type types-qos:egress-profile;
10309 description "Default profile for the matching traffic";
10310 }
10311
10312 leaf hsmda-counter-override {
10313 type uint32 {
10314 range "1..8";
10315 }
10316 description "HSMDA counter to use for matching packets";
10317 }
10318
10319 leaf policer {
10320 type types-qos:sap-egress-policer-id;
10321 description "Policer identifier for the matched traffic";
10322 }
10323
10324 leaf port-redirect-group-queue {
10325 type boolean;
10326 default "false";
10327 description "Use the queue specified in egress access port queue-group instance";
10328 }
10329
10330 leaf queue {
10331 type types-qos:egress-queue-id;
10332 description "Queue to use when the matched traffic is policed by the local policer";
10333 }
10334
10335 leaf use-fc-mapped-queue {
10336 type boolean;
10337 default "false";
10338 description "Redirect policer output to the configured queues";
10339 }
10340
10341 } // container action
10342
10343 } // list entry
10344
10345 } // container ip-criteria
10346
10347 container ipv6-criteria {
10348 description "Enter the ipv6-criteria context";
10349
10350 list entry {
10351 key "entry-id";
10352 description "Enter the entry context";
10353
10354 leaf entry-id {
10355 type union {
10356 type string {
10357 length "1..64";
10358 pattern "<.*>" {
10359 error-message "Config Groups Regex Pattern";
10360 }
10361 }
10362 type uint32 {
10363 range "1..65535";
10364 }
10365 }
10366 description "IP Criteria Entry Index";
10367 }
10368
10369 leaf description {
10370 type types-sros:description;
10371 description "Text description";
10372 }
10373
10374 container match {
10375 description "Enter the match context";
10376
10377 leaf next-header {
10378 type types-sros:ipv6-match-protocol;
10379 description "IP protocol to match";
10380 }
10381
10382 leaf dscp {
10383 type types-qos:dscp-name;
10384 description "DSCP value to match in the packet";
10385 }
10386
10387 container src-port {
10388 description "Enter the src-port context";
10389
10390 choice port-match-mapping {
10391 case lt {
10392
10393 leaf lt {
10394 type int32 {
10395 range "0..65535";
10396 }
10397 description "Value 'less than' as match condition";
10398 }
10399
10400 }
10401 case eq {
10402
10403 leaf eq {
10404 type int32 {
10405 range "0..65535";
10406 }
10407 description "Value 'equal to' as match condition";
10408 }
10409
10410 }
10411 case gt {
10412
10413 leaf gt {
10414 type int32 {
10415 range "0..65535";
10416 }
10417 description "Value 'greater than' as match condition";
10418 }
10419
10420 }
10421 case range {
10422
10423 container range {
10424 description "Enter the range context";
10425
10426 leaf start {
10427 type int32 {
10428 range "0..65535";
10429 }
10430 description "Start value of range";
10431 }
10432
10433 leaf end {
10434 type int32 {
10435 range "0..65535";
10436 }
10437 description "End value for range";
10438 }
10439
10440 } // container range
10441
10442 }
10443 }
10444 } // container src-port
10445
10446 container dst-port {
10447 description "Enter the dst-port context";
10448
10449 choice port-match-mapping {
10450 case lt {
10451
10452 leaf lt {
10453 type int32 {
10454 range "0..65535";
10455 }
10456 description "Value 'less than' as match condition";
10457 }
10458
10459 }
10460 case eq {
10461
10462 leaf eq {
10463 type int32 {
10464 range "0..65535";
10465 }
10466 description "Value 'equal to' as match condition";
10467 }
10468
10469 }
10470 case gt {
10471
10472 leaf gt {
10473 type int32 {
10474 range "0..65535";
10475 }
10476 description "Value 'greater than' as match condition";
10477 }
10478
10479 }
10480 case range {
10481
10482 container range {
10483 description "Enter the range context";
10484
10485 leaf start {
10486 type int32 {
10487 range "0..65535";
10488 }
10489 description "Start value of range";
10490 }
10491
10492 leaf end {
10493 type int32 {
10494 range "0..65535";
10495 }
10496 description "End value for range";
10497 }
10498
10499 } // container range
10500
10501 }
10502 }
10503 } // container dst-port
10504
10505 container src-ip {
10506 description "Enter the src-ip context";
10507
10508 choice src-ip {
10509 case address-and-mask-or-prefix {
10510
10511 leaf address {
10512 type union {
10513 type types-sros:ipv6-address;
10514 type types-sros:ipv6-prefix-with-host-bits;
10515 }
10516 description "IP address to match with source IP of the packet";
10517 }
10518
10519 leaf mask {
10520 type types-sros:ipv6-address;
10521 description "IP address mask to match with source IP of the packet";
10522 }
10523
10524 }
10525 }
10526 } // container src-ip
10527
10528 container dst-ip {
10529 description "Enter the dst-ip context";
10530
10531 choice dst-ip {
10532 case address-and-mask-or-prefix {
10533
10534 leaf address {
10535 type union {
10536 type types-sros:ipv6-address;
10537 type types-sros:ipv6-prefix-with-host-bits;
10538 }
10539 description "IP address to match with destination IP of the packet";
10540 }
10541
10542 leaf mask {
10543 type types-sros:ipv6-address;
10544 description "IP address mask to match with destination IP of the packet";
10545 }
10546
10547 }
10548 }
10549 } // container dst-ip
10550
10551 } // container match
10552
10553 container action {
10554 description "Enter the action context";
10555
10556 leaf type {
10557 type types-qos:criteria-action-type;
10558 default "ignore-match";
10559 description "Specified whether the criteria entry is active or in-active.";
10560 }
10561
10562 leaf fc {
10563 type types-sros:fc-name;
10564 description "Forwarding class";
10565 }
10566
10567 leaf profile {
10568 type types-qos:egress-profile;
10569 description "Default profile for the matching traffic";
10570 }
10571
10572 leaf hsmda-counter-override {
10573 type uint32 {
10574 range "1..8";
10575 }
10576 description "HSMDA counter to use for matching packets";
10577 }
10578
10579 leaf policer {
10580 type types-qos:sap-egress-policer-id;
10581 description "Policer identifier for the matched traffic";
10582 }
10583
10584 leaf port-redirect-group-queue {
10585 type boolean;
10586 default "false";
10587 description "Use the queue specified in egress access port queue-group instance";
10588 }
10589
10590 leaf queue {
10591 type types-qos:egress-queue-id;
10592 description "Queue to use when the matched traffic is policed by the local policer";
10593 }
10594
10595 leaf use-fc-mapped-queue {
10596 type boolean;
10597 default "false";
10598 description "Redirect policer output to the configured queues";
10599 }
10600
10601 } // container action
10602
10603 } // list entry
10604
10605 } // container ipv6-criteria
10606
10607 } // list sap-egress
10608
10609 list scheduler-policy {
10610 key "scheduler-policy-name";
10611 max-elements 2047;
10612 description "Enter the scheduler-policy context";
10613
10614 leaf scheduler-policy-name {
10615 type union {
10616 type string {
10617 length "1..64";
10618 pattern "<.*>" {
10619 error-message "Config Groups Regex Pattern";
10620 }
10621 }
10622 type types-sros:named-item;
10623 }
10624 description "Scheduler policy name";
10625 }
10626
10627 leaf description {
10628 type types-sros:description;
10629 description "Text description";
10630 }
10631
10632 leaf frame-based-accounting {
10633 type boolean;
10634 default "false";
10635 description "Use frame-based accounting for schedulers and children within scheduler policy";
10636 }
10637
10638 list tier {
10639 key "tier-id";
10640 description "Enter the tier context";
10641
10642 leaf tier-id {
10643 type union {
10644 type string {
10645 length "1..64";
10646 pattern "<.*>" {
10647 error-message "Config Groups Regex Pattern";
10648 }
10649 }
10650 type int32 {
10651 range "1..3";
10652 }
10653 }
10654 description "Tier for scheduler-policy scheduler";
10655 }
10656
10657 leaf parent-location {
10658 type enumeration {
10659 enum "auto" { value 1; }
10660 enum "sub" { value 2; }
10661 enum "vport" { value 3; }
10662 }
10663 default "auto";
10664 description "Location in which the tier 1 schedulers can find their parent";
10665 }
10666
10667 list scheduler {
10668 key "scheduler-name";
10669 description "Enter the scheduler context";
10670
10671 leaf scheduler-name {
10672 type union {
10673 type string {
10674 length "1..64";
10675 pattern "<.*>" {
10676 error-message "Config Groups Regex Pattern";
10677 }
10678 }
10679 type types-sros:named-item;
10680 }
10681 description "Scheduler name";
10682 }
10683
10684 leaf description {
10685 type types-sros:description;
10686 description "Text description";
10687 }
10688
10689 leaf limit-unused-bandwidth {
10690 type boolean;
10691 default "false";
10692 description "Enable aggregate rate overrun protection";
10693 }
10694
10695 choice parent-mapping {
10696 case scheduler-parent {
10697
10698 container scheduler-parent {
10699 presence "Specifies whether this queue is parented by scheduler.";
10700 description "Enter the scheduler-parent context";
10701
10702 leaf scheduler-name {
10703 type types-sros:named-item;
10704 mandatory true;
10705 description "Scheduler to which this queue would be feeding to";
10706 }
10707
10708 leaf level {
10709 type types-qos:hierarchy-level;
10710 default "1";
10711 description "Level of priority while feeding to the parent";
10712 }
10713
10714 leaf weight {
10715 type types-qos:weight;
10716 default "1";
10717 description "Weight to be used by the scheduler for feeding this queue";
10718 }
10719
10720 leaf cir-level {
10721 type types-qos:cir-level;
10722 default "0";
10723 description "Level of priority while feeding to the parent";
10724 }
10725
10726 leaf cir-weight {
10727 type types-qos:cir-weight;
10728 default "1";
10729 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
10730 }
10731
10732 } // container scheduler-parent
10733
10734 }
10735 case port-parent {
10736
10737 container port-parent {
10738 presence "Specifies whether this queue is parented by port-level scheduler.";
10739 description "Enter the port-parent context";
10740
10741 leaf level {
10742 type types-qos:hierarchy-level;
10743 default "1";
10744 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
10745 }
10746
10747 leaf weight {
10748 type types-qos:weight;
10749 default "1";
10750 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
10751 }
10752
10753 leaf cir-level {
10754 type types-qos:cir-level;
10755 default "0";
10756 description "Port priority that this queue uses to receive bandwidth from the port level scheduler";
10757 }
10758
10759 leaf cir-weight {
10760 type types-qos:cir-weight;
10761 default "0";
10762 description "Weight that this queue uses to receive bandwidth from the port level scheduler";
10763 }
10764
10765 } // container port-parent
10766
10767 }
10768 }
10769 container rate {
10770 description "Enter the rate context";
10771
10772 leaf pir {
10773 type types-qos:sched-pir-rate;
10774 units "kilobps";
10775 default "max";
10776 description "Administrative PIR";
10777 }
10778
10779 leaf cir {
10780 type types-qos:sched-cir-rate;
10781 units "kilobps";
10782 default "sum";
10783 description "Administrative CIR";
10784 }
10785
10786 } // container rate
10787
10788 } // list scheduler
10789
10790 } // list tier
10791
10792 } // list scheduler-policy
10793
10794 list port-scheduler-policy {
10795 key "name";
10796 description "Enter the port-scheduler-policy context";
10797
10798 leaf name {
10799 type union {
10800 type string {
10801 length "1..64";
10802 pattern "<.*>" {
10803 error-message "Config Groups Regex Pattern";
10804 }
10805 }
10806 type types-sros:named-item;
10807 }
10808 description "Name of this port scheduler policy";
10809 }
10810
10811 leaf description {
10812 type types-sros:description;
10813 description "Text description";
10814 }
10815
10816 leaf dist-lag-rate-shared {
10817 type boolean;
10818 default "false";
10819 description "Share rates when the port is part of a LAG configured in distribute mode";
10820 }
10821
10822 leaf monitor-threshold {
10823 type uint32 {
10824 range "0..100";
10825 }
10826 default "0";
10827 description
10828 "Specifies the threshold level that should be monitored.
10829 It is a percentage of the max-rate or max-rate-percent";
10830 }
10831
10832 choice max-rate-or-percent-rate {
10833 default "max-rate";
10834 case max-rate {
10835
10836 leaf max-rate {
10837 type types-qos:max-rate;
10838 default "max";
10839 description "Explicit maximum frame based bandwidth limit";
10840 }
10841
10842 }
10843 case max-percent-rate {
10844
10845 leaf max-percent-rate {
10846 type decimal64 {
10847 range "0.01..100.00";
10848 fraction-digits 2;
10849 }
10850 description "Specifies the explicit maximum frame based bandwidth percentage";
10851 }
10852
10853 }
10854 }
10855 container orphan-overrides {
10856 description "Enter the orphan-overrides context";
10857
10858 leaf level {
10859 type types-qos:hierarchy-level;
10860 default "1";
10861 description "Specifies the port priority of orphaned queues and scheduler that are above-cir";
10862 }
10863
10864 leaf weight {
10865 type types-qos:weight;
10866 default "0";
10867 description "Specifies the weight of orphaned queues and scheduler that are above-cir";
10868 }
10869
10870 leaf cir-level {
10871 type types-qos:cir-level;
10872 default "0";
10873 description "Specifies the port priority of orphaned queues and scheduler that are within-cir";
10874 }
10875
10876 leaf cir-weight {
10877 type types-qos:cir-weight;
10878 default "0";
10879 description "Specifies the weight of orphaned queues and scheduler that are within-cir";
10880 }
10881
10882 } // container orphan-overrides
10883
10884 list group {
10885 key "group-name";
10886 description "Enter the group context";
10887
10888 leaf group-name {
10889 type union {
10890 type string {
10891 length "1..64";
10892 pattern "<.*>" {
10893 error-message "Config Groups Regex Pattern";
10894 }
10895 }
10896 type types-sros:named-item;
10897 }
10898 description "Name of this port scheduler policy group";
10899 }
10900
10901 leaf monitor-threshold {
10902 type uint32 {
10903 range "0..100";
10904 }
10905 default "0";
10906 description
10907 "Specifies the threshold level that should be monitored.
10908 It is percentage of the max-rate or max-rate-percent";
10909 }
10910
10911 choice rate-or-percent-rate {
10912 default "rate";
10913 case rate {
10914
10915 container rate {
10916 description "Enter the rate context";
10917
10918 leaf pir {
10919 type types-qos:queue-pir-rate-maximum;
10920 units "kilobps";
10921 default "max";
10922 description "Administrative PIR";
10923 }
10924
10925 leaf cir {
10926 type types-qos:queue-cir-rate-maximum;
10927 units "kilobps";
10928 default "max";
10929 description "Administrative CIR";
10930 }
10931
10932 } // container rate
10933
10934 }
10935 case percent-rate {
10936
10937 container percent-rate {
10938 description "Enter the percent-rate context";
10939
10940 leaf pir {
10941 type decimal64 {
10942 range "0.01..100.00";
10943 fraction-digits 2;
10944 }
10945 description "Administrative PIR percent";
10946 }
10947
10948 leaf cir {
10949 type decimal64 {
10950 range "0.00..100.00";
10951 fraction-digits 2;
10952 }
10953 default "100.00";
10954 description "Administrative CIR percent";
10955 }
10956
10957 } // container percent-rate
10958
10959 }
10960 }
10961 } // list group
10962
10963 list level {
10964 key "level-id";
10965 description "Enter the level context";
10966
10967 leaf level-id {
10968 type union {
10969 type string {
10970 length "1..64";
10971 pattern "<.*>" {
10972 error-message "Config Groups Regex Pattern";
10973 }
10974 }
10975 type int32 {
10976 range "1..8";
10977 }
10978 }
10979 description "Priority level this port scheduler policy";
10980 }
10981
10982 leaf group {
10983 type types-sros:named-item;
10984 description "Associated group";
10985 }
10986
10987 leaf weight {
10988 type types-qos:weight {
10989 range "1..100";
10990 }
10991 default "1";
10992 description "Specifies the weight associated with the group";
10993 }
10994
10995 leaf monitor-threshold {
10996 type uint32 {
10997 range "0..100";
10998 }
10999 default "0";
11000 description
11001 "Specifies the threshold level that should be monitored.
11002 It is percentage of the max-rate or max-rate-percent";
11003 }
11004
11005 choice rate-or-percent-rate {
11006 default "rate";
11007 case rate {
11008
11009 container rate {
11010 description "Enter the rate context";
11011
11012 leaf pir {
11013 type types-qos:queue-pir-rate-maximum;
11014 units "kilobps";
11015 default "max";
11016 description "Administrative PIR";
11017 }
11018
11019 leaf cir {
11020 type types-qos:queue-cir-rate-maximum;
11021 units "kilobps";
11022 default "max";
11023 description "Administrative CIR";
11024 }
11025
11026 } // container rate
11027
11028 }
11029 case percent-rate {
11030
11031 container percent-rate {
11032 description "Enter the percent-rate context";
11033
11034 leaf pir {
11035 type decimal64 {
11036 range "0.01..100.00";
11037 fraction-digits 2;
11038 }
11039 description "Administrative PIR percent";
11040 }
11041
11042 leaf cir {
11043 type decimal64 {
11044 range "0.00..100.00";
11045 fraction-digits 2;
11046 }
11047 default "100.00";
11048 description "Administrative CIR percent";
11049 }
11050
11051 } // container percent-rate
11052
11053 }
11054 }
11055 } // list level
11056
11057 } // list port-scheduler-policy
11058
11059 list hs-scheduler-policy {
11060 key "name";
11061 max-elements 127;
11062 description "Enter the hs-scheduler-policy context";
11063
11064 leaf name {
11065 type union {
11066 type string {
11067 length "1..64";
11068 pattern "<.*>" {
11069 error-message "Config Groups Regex Pattern";
11070 }
11071 }
11072 type types-sros:named-item;
11073 }
11074 description "HS scheduler policy name";
11075 }
11076
11077 leaf description {
11078 type types-sros:description;
11079 description "Text description";
11080 }
11081
11082 leaf max-rate {
11083 type union {
11084 type uint32 {
11085 range "1..100000";
11086 }
11087 type enumeration {
11088 enum "max" { value -1; }
11089 }
11090 }
11091 default "max";
11092 description "Maximum rate for this HS scheduler policy";
11093 }
11094
11095 list group {
11096 key "group-id";
11097 description "Enter the group context";
11098
11099 leaf group-id {
11100 type union {
11101 type string {
11102 length "1..64";
11103 pattern "<.*>" {
11104 error-message "Config Groups Regex Pattern";
11105 }
11106 }
11107 type int32 {
11108 range "1";
11109 }
11110 }
11111 description "Group ID for the HS scheduler policy";
11112 }
11113
11114 leaf rate {
11115 type union {
11116 type uint32 {
11117 range "1..100000";
11118 }
11119 type enumeration {
11120 enum "max" { value -1; }
11121 }
11122 }
11123 units "megabps";
11124 default "max";
11125 description "Group maximum rate";
11126 }
11127
11128 } // list group
11129
11130 list scheduling-class {
11131 key "class-id";
11132 description "Enter the scheduling-class context";
11133
11134 leaf class-id {
11135 type union {
11136 type string {
11137 length "1..64";
11138 pattern "<.*>" {
11139 error-message "Config Groups Regex Pattern";
11140 }
11141 }
11142 type uint32 {
11143 range "1..6";
11144 }
11145 }
11146 description "Class identifier for the HS scheduler policy scheduling class";
11147 }
11148
11149 choice rate-or-group {
11150 default "rate";
11151 case rate {
11152
11153 leaf rate {
11154 type union {
11155 type uint32 {
11156 range "1..100000";
11157 }
11158 type enumeration {
11159 enum "max" { value -1; }
11160 }
11161 }
11162 default "max";
11163 description "Group maximum rate";
11164 }
11165
11166 }
11167 case group {
11168
11169 container group {
11170 presence "Specifies the group and weight configuration.";
11171 description "Enter the group context";
11172
11173 leaf group-id {
11174 type int32 {
11175 range "1";
11176 }
11177 mandatory true;
11178 description "Associated group associated with this scheduling class";
11179 }
11180
11181 leaf weight {
11182 type int32 {
11183 range "1..127";
11184 }
11185 default "1";
11186 description "Weight associated with this scheduling class";
11187 }
11188
11189 } // container group
11190
11191 }
11192 }
11193 } // list scheduling-class
11194
11195 } // list hs-scheduler-policy
11196
11197 list hs-pool-policy {
11198 key "name";
11199 max-elements 63;
11200 description "Enter the hs-pool-policy context";
11201
11202 leaf name {
11203 type union {
11204 type string {
11205 length "1..64";
11206 pattern "<.*>" {
11207 error-message "Config Groups Regex Pattern";
11208 }
11209 }
11210 type types-sros:named-item;
11211 }
11212 description "HS pool policy name";
11213 }
11214
11215 leaf description {
11216 type types-sros:description;
11217 description "Text description";
11218 }
11219
11220 leaf system-reserve {
11221 type decimal64 {
11222 range "1.00..30.00";
11223 fraction-digits 2;
11224 }
11225 default "5.00";
11226 description "Percentage of HS buffers reserved for internal system use";
11227 }
11228
11229 container root-tier {
11230 description "Enter the root-tier context";
11231
11232 list root-pool {
11233 key "root-pool-id";
11234 description "Enter the root-pool context";
11235
11236 leaf root-pool-id {
11237 type union {
11238 type string {
11239 length "1..64";
11240 pattern "<.*>" {
11241 error-message "Config Groups Regex Pattern";
11242 }
11243 }
11244 type uint32 {
11245 range "1..16";
11246 }
11247 }
11248 description "Root pool identifier for the HS pool policy";
11249 }
11250
11251 leaf allocation-weight {
11252 type uint32 {
11253 range "0..100";
11254 }
11255 default "0";
11256 description
11257 "Specifies the weight that will be applied to the
11258 first root pool and is divided by the sum of all root pool
11259 weights to derive the pool's buffer allocation factor.";
11260 }
11261
11262 leaf slope-policy {
11263 type types-sros:named-item;
11264 description "Specifies the slope policy associated with this pool policy.";
11265 }
11266
11267 } // list root-pool
11268
11269 } // container root-tier
11270
11271 container mid-tier {
11272 description "Enter the mid-tier context";
11273
11274 list mid-pool {
11275 key "mid-pool-id";
11276 description "Enter the mid-pool context";
11277
11278 leaf mid-pool-id {
11279 type union {
11280 type string {
11281 length "1..64";
11282 pattern "<.*>" {
11283 error-message "Config Groups Regex Pattern";
11284 }
11285 }
11286 type uint32 {
11287 range "1..16";
11288 }
11289 }
11290 description "Mid-pool identifier for the HS pool policy";
11291 }
11292
11293 leaf allocation-percent {
11294 type decimal64 {
11295 range "0.01..100.00";
11296 fraction-digits 2;
11297 }
11298 default "1.00";
11299 description
11300 "Specifies the percentage of the root-pool with which it is associated,
11301 as specified by root-parent will be available to this mid-pool.";
11302 }
11303
11304 leaf slope-policy {
11305 type types-sros:named-item;
11306 description "Specifies the slope policy associated with this pool policy.";
11307 }
11308
11309 leaf port-bw-oversubscription-factor {
11310 type uint32 {
11311 range "1..10";
11312 }
11313 default "1";
11314 description "Specifies the factor by which port bandwidth can be over subscribed.";
11315 }
11316
11317 container parent-root-pool {
11318 description "Enter the parent-root-pool context";
11319
11320 choice map-pool {
11321 default "pool-id";
11322 case pool-id {
11323
11324 leaf pool-id {
11325 type uint32 {
11326 range "1..16";
11327 }
11328 description "Specifies the parent root to which this mid-pool is associated.";
11329 }
11330
11331 }
11332 case none {
11333
11334 leaf none {
11335 type empty;
11336 description "Specifies none mid-pool is associated with this parent-pool.";
11337 }
11338
11339 }
11340 }
11341 } // container parent-root-pool
11342
11343 } // list mid-pool
11344
11345 } // container mid-tier
11346
11347 } // list hs-pool-policy
11348
11349 list hs-port-pool-policy {
11350 key "name";
11351 max-elements 2047;
11352 description "Enter the hs-port-pool-policy context";
11353
11354 leaf name {
11355 type union {
11356 type string {
11357 length "1..64";
11358 pattern "<.*>" {
11359 error-message "Config Groups Regex Pattern";
11360 }
11361 }
11362 type types-sros:named-item;
11363 }
11364 description "Name for HS port pool policy";
11365 }
11366
11367 leaf description {
11368 type types-sros:description;
11369 description "Text description";
11370 }
11371
11372 container std-port-class-pools {
11373 description "Enter the std-port-class-pools context";
11374
11375 list class-pool {
11376 key "std-class-pool-id";
11377 description "Enter the class-pool context";
11378
11379 leaf std-class-pool-id {
11380 type union {
11381 type string {
11382 length "1..64";
11383 pattern "<.*>" {
11384 error-message "Config Groups Regex Pattern";
11385 }
11386 }
11387 type uint32 {
11388 range "1..6";
11389 }
11390 }
11391 description "Standard port class identifier for the HS port pool policy";
11392 }
11393
11394 leaf slope-policy {
11395 type types-sros:named-item;
11396 description "Specifies the slope policy associated with this pool policy.";
11397 }
11398
11399 container parent-mid-pool {
11400 description "Enter the parent-mid-pool context";
11401
11402 choice map-pool {
11403 default "pool-id";
11404 case pool-id {
11405
11406 leaf pool-id {
11407 type uint32 {
11408 range "1..16";
11409 }
11410 description "Specifies the mid-pool parent.";
11411 }
11412
11413 }
11414 case none {
11415
11416 leaf none {
11417 type empty;
11418 description "Specifies none mid-pool is associated with this parent-pool.";
11419 }
11420
11421 }
11422 }
11423 } // container parent-mid-pool
11424
11425 container allocation {
11426 description "Enter the allocation context";
11427
11428 choice port-weight-or-percent {
11429 default "port-bw-weight";
11430 case port-bw-weight {
11431
11432 leaf port-bw-weight {
11433 type uint32 {
11434 range "1..100";
11435 }
11436 default "1";
11437 description "Specifies the port share weight.";
11438 }
11439
11440 }
11441 case explicit-percent {
11442
11443 leaf explicit-percent {
11444 type decimal64 {
11445 range "0.01..100.00";
11446 fraction-digits 2;
11447 }
11448 description "Specifies the percentage of parent pool to be allocated.";
11449 }
11450
11451 }
11452 }
11453 } // container allocation
11454
11455 } // list class-pool
11456
11457 } // container std-port-class-pools
11458
11459 container alt-port-class-pools {
11460 description "Enter the alt-port-class-pools context";
11461
11462 list class-pool {
11463 key "alt-class-pool-id";
11464 description "Enter the class-pool context";
11465
11466 leaf alt-class-pool-id {
11467 type union {
11468 type string {
11469 length "1..64";
11470 pattern "<.*>" {
11471 error-message "Config Groups Regex Pattern";
11472 }
11473 }
11474 type uint32 {
11475 range "1..6";
11476 }
11477 }
11478 description "The alt-port-class-pool identifier for the HS port pool policy.";
11479 }
11480
11481 leaf slope-policy {
11482 type types-sros:named-item;
11483 description "Specifies the slope policy associated with this pool policy.";
11484 }
11485
11486 container parent-mid-pool {
11487 description "Enter the parent-mid-pool context";
11488
11489 choice map-pool {
11490 default "none";
11491 case pool-id {
11492
11493 leaf pool-id {
11494 type uint32 {
11495 range "1..16";
11496 }
11497 description "Specifies the mid-pool parent.";
11498 }
11499
11500 }
11501 case none {
11502
11503 leaf none {
11504 type empty;
11505 description "Specifies none mid-pool is associated with this parent-pool.";
11506 }
11507
11508 }
11509 }
11510 } // container parent-mid-pool
11511
11512 container allocation {
11513 description "Enter the allocation context";
11514
11515 choice port-weight-or-percent {
11516 default "port-bw-weight";
11517 case port-bw-weight {
11518
11519 leaf port-bw-weight {
11520 type uint32 {
11521 range "1..100";
11522 }
11523 default "1";
11524 description "Specifies the port share weight.";
11525 }
11526
11527 }
11528 case explicit-percent {
11529
11530 leaf explicit-percent {
11531 type decimal64 {
11532 range "0.01..100.00";
11533 fraction-digits 2;
11534 }
11535 description "Specifies the percentage of parent pool to be allocated.";
11536 }
11537
11538 }
11539 }
11540 } // container allocation
11541
11542 } // list class-pool
11543
11544 } // container alt-port-class-pools
11545
11546 } // list hs-port-pool-policy
11547
11548 list hs-attachment-policy {
11549 key "name";
11550 max-elements 31;
11551 description "Enter the hs-attachment-policy context";
11552
11553 leaf name {
11554 type union {
11555 type string {
11556 length "1..64";
11557 pattern "<.*>" {
11558 error-message "Config Groups Regex Pattern";
11559 }
11560 }
11561 type types-sros:named-item;
11562 }
11563 description "HS attachment policy name";
11564 }
11565
11566 leaf description {
11567 type types-sros:description;
11568 description "Text description";
11569 }
11570
11571 leaf low-burst-max-class {
11572 type uint32 {
11573 range "1..6";
11574 }
11575 default "6";
11576 description "Low priority burst threshold";
11577 }
11578
11579 list wrr-group {
11580 key "wrr-group-id";
11581 description "Enter the wrr-group context";
11582
11583 leaf wrr-group-id {
11584 type union {
11585 type string {
11586 length "1..64";
11587 pattern "<.*>" {
11588 error-message "Config Groups Regex Pattern";
11589 }
11590 }
11591 type uint32 {
11592 range "1..2";
11593 }
11594 }
11595 description "WRR group ID for the HS attachment policy";
11596 }
11597
11598 choice wrr-group-mapping {
11599 default "unattached";
11600 case sched-class-id {
11601
11602 leaf sched-class {
11603 type int32 {
11604 range "1..6";
11605 }
11606 description "Specifies scheduling class associated with this WRR group.";
11607 }
11608
11609 }
11610 case unattached {
11611
11612 leaf unattached {
11613 type empty;
11614 description
11615 "Specifies the mapping type associated with this WRR group is
11616 unattached.";
11617 }
11618
11619 }
11620 }
11621 } // list wrr-group
11622
11623 list queue {
11624 key "queue-id";
11625 description "Enter the queue context";
11626
11627 leaf queue-id {
11628 type union {
11629 type string {
11630 length "1..64";
11631 pattern "<.*>" {
11632 error-message "Config Groups Regex Pattern";
11633 }
11634 }
11635 type uint32 {
11636 range "1..8";
11637 }
11638 }
11639 description "Queue identifier for the HS attachment policy";
11640 }
11641
11642 choice hs-attach-queue-mapping {
11643 default "unattached";
11644 case sched-class-id {
11645
11646 leaf sched-class {
11647 type int32 {
11648 range "1..6";
11649 }
11650 description "Specifies scheduling class associated with this queue.";
11651 }
11652
11653 }
11654 case wrr-group-id {
11655
11656 leaf wrr-group {
11657 type int32 {
11658 range "1..2";
11659 }
11660 description "Specifies wrr group associated with this queue.";
11661 }
11662
11663 }
11664 case unattached {
11665
11666 leaf unattached {
11667 type empty;
11668 description
11669 "Specifies the mapping type associated with this WRR group is
11670 unattached.";
11671 }
11672
11673 }
11674 }
11675 } // list queue
11676
11677 } // list hs-attachment-policy
11678
11679 list post-policer-mapping {
11680 key "name";
11681 max-elements 7;
11682 description "Enter the post-policer-mapping context";
11683
11684 leaf name {
11685 type union {
11686 type string {
11687 length "1..64";
11688 pattern "<.*>" {
11689 error-message "Config Groups Regex Pattern";
11690 }
11691 }
11692 type types-sros:named-item;
11693 }
11694 description "Name of post policer mapping policy.";
11695 }
11696
11697 leaf description {
11698 type types-sros:description;
11699 description "Text description";
11700 }
11701
11702 list fc {
11703 key "fc-name profile";
11704 description "Enter the fc context";
11705
11706 leaf fc-name {
11707 type union {
11708 type string {
11709 length "1..64";
11710 pattern "<.*>" {
11711 error-message "Config Groups Regex Pattern";
11712 }
11713 }
11714 type types-sros:fc-name;
11715 }
11716 description "Name of forwarding class to be remapped";
11717 }
11718
11719 leaf profile {
11720 type union {
11721 type string {
11722 length "1..64";
11723 pattern "<.*>" {
11724 error-message "Config Groups Regex Pattern";
11725 }
11726 }
11727 type types-qos:egress-profile;
11728 }
11729 description "Packet Profile that needs to be remapped.";
11730 }
11731
11732 container maps-to {
11733 description "Enter the maps-to context";
11734
11735 leaf fc {
11736 type types-sros:fc-name;
11737 description "Name of forwarding class to be remapped";
11738 }
11739
11740 leaf profile {
11741 type types-qos:egress-profile;
11742 description "Packet Profile that needs to be remapped.";
11743 }
11744
11745 } // container maps-to
11746
11747 } // list fc
11748
11749 } // list post-policer-mapping
11750
11751 list queue-group-redirect-list {
11752 key "name";
11753 max-elements 2047;
11754 description "Enter the queue-group-redirect-list context";
11755
11756 leaf name {
11757 type union {
11758 type string {
11759 length "1..64";
11760 pattern "<.*>" {
11761 error-message "Config Groups Regex Pattern";
11762 }
11763 }
11764 type types-sros:named-item;
11765 }
11766 description "Name of queue-group redirect list.";
11767 }
11768
11769 leaf type {
11770 type enumeration {
11771 enum "vxlan-vni" { value 1; }
11772 }
11773 default "vxlan-vni";
11774 description "Type for queue-group redirect list";
11775 }
11776
11777 list match {
11778 key "field-value";
11779 max-elements 16;
11780 description "Enter the match context";
11781
11782 leaf field-value {
11783 type union {
11784 type string {
11785 length "1..64";
11786 pattern "<.*>" {
11787 error-message "Config Groups Regex Pattern";
11788 }
11789 }
11790 type uint32 {
11791 range "1..16777215";
11792 }
11793 }
11794 description
11795 "Specifies the value of the field in the ingress or egress
11796 packet which, when matched, will redirect the packet to the
11797 queue-group instance";
11798 }
11799
11800 leaf instance {
11801 type uint32 {
11802 range "1..65535";
11803 }
11804 mandatory true;
11805 description "Specifies the queue-group instance to which packet will be forwarded.";
11806 }
11807
11808 } // list match
11809
11810 } // list queue-group-redirect-list
11811
11812 list egress-remark-policy {
11813 key "egress-remark-policy-name";
11814 description "Egress-remark QoS policies.";
11815
11816 leaf egress-remark-policy-name {
11817 type union {
11818 type string {
11819 length "1..64";
11820 pattern "<.*>" {
11821 error-message "Config Groups Regex Pattern";
11822 }
11823 }
11824 type types-qos:qos-policy-name;
11825 }
11826 description "The name of this egress-remark-policy QoS policy.";
11827 }
11828
11829 leaf description {
11830 type types-sros:description;
11831 description "The description of this egress-remark QoS policy.";
11832 }
11833
11834 leaf scope {
11835 type types-qos:item-scope;
11836 default "template";
11837 description "Scope of the policy.";
11838 }
11839
11840 list fc {
11841 key "fc-name";
11842 description "Egress Remark Policy Forwarding Class (FC) Mappings.";
11843
11844 leaf fc-name {
11845 type union {
11846 type string {
11847 length "1..64";
11848 pattern "<.*>" {
11849 error-message "Config Groups Regex Pattern";
11850 }
11851 }
11852 type types-sros:fc-name;
11853 }
11854 description "Specifies the forwarding class.";
11855 }
11856
11857 container de-mark {
11858 presence "Specifies whether to set DE of the frames.";
11859 description "Configure DE Value for Marking.";
11860
11861 leaf force {
11862 type types-qos:de-value;
11863 description "Specifies the DE value to set.";
11864 }
11865
11866 } // container de-mark
11867
11868 container dot1p {
11869 description "Specifies Dot1p Markings.";
11870
11871 leaf in-profile {
11872 type types-qos:dot1p-priority;
11873 description "Specifies Dot1p value for in-profile frames.";
11874 }
11875
11876 leaf out-profile {
11877 type types-qos:dot1p-priority;
11878 description "Specifies Dot1p value for out-of-profile frames.";
11879 }
11880
11881 } // container dot1p
11882
11883 container dscp {
11884 description "Configures DSCP Markings.";
11885
11886 leaf in-profile {
11887 type types-qos:dscp-name;
11888 description "Specifies DSCP name for in-profile frames.";
11889 }
11890
11891 leaf out-profile {
11892 type types-qos:dscp-name;
11893 description "Specifies DSCP value for out-of-profile frames.";
11894 }
11895
11896 } // container dscp
11897
11898 container lsp-exp {
11899 description "Specifies details of LSP-EXP.";
11900
11901 leaf in-profile {
11902 type types-qos:lsp-exp-value;
11903 description "Specifies LSP-EXP marking for in-profile frames.";
11904 }
11905
11906 leaf out-profile {
11907 type types-qos:lsp-exp-value;
11908 description "Specifies LSP-EXP value for out-of-profile frames.";
11909 }
11910
11911 } // container lsp-exp
11912
11913 } // list fc
11914
11915 } // list egress-remark-policy
11916
11917 container match-list {
11918 description "Enter the match-list context";
11919
11920 list ip-prefix-list {
11921 key "prefix-list-name";
11922 max-elements 512;
11923 description "Enter the ip-prefix-list context";
11924
11925 leaf prefix-list-name {
11926 type union {
11927 type string {
11928 length "1..64";
11929 pattern "<.*>" {
11930 error-message "Config Groups Regex Pattern";
11931 }
11932 }
11933 type types-sros:named-item;
11934 }
11935 description "Specifies the name given to this prefix list.";
11936 }
11937
11938 leaf description {
11939 type types-sros:description;
11940 description "The description of ip-prefix-list.";
11941 }
11942
11943 list prefix {
11944 key "ip-prefix";
11945 max-elements 256;
11946 description "Enter the prefix context";
11947
11948 leaf ip-prefix {
11949 type union {
11950 type string {
11951 length "1..64";
11952 pattern "<.*>" {
11953 error-message "Config Groups Regex Pattern";
11954 }
11955 }
11956 type types-sros:ipv4-prefix;
11957 }
11958 description "Specifies the IPv4 prefix for this prefix list.";
11959 }
11960
11961 } // list prefix
11962
11963 } // list ip-prefix-list
11964
11965 list ipv6-prefix-list {
11966 key "prefix-list-name";
11967 max-elements 128;
11968 description "Enter the ipv6-prefix-list context";
11969
11970 leaf prefix-list-name {
11971 type union {
11972 type string {
11973 length "1..64";
11974 pattern "<.*>" {
11975 error-message "Config Groups Regex Pattern";
11976 }
11977 }
11978 type types-sros:named-item;
11979 }
11980 description "Specifies the name given to this prefix list.";
11981 }
11982
11983 leaf description {
11984 type types-sros:description;
11985 description "The description of ipv6-prefix-list.";
11986 }
11987
11988 list prefix {
11989 key "ipv6-prefix";
11990 max-elements 128;
11991 description "Enter the prefix context";
11992
11993 leaf ipv6-prefix {
11994 type union {
11995 type string {
11996 length "1..64";
11997 pattern "<.*>" {
11998 error-message "Config Groups Regex Pattern";
11999 }
12000 }
12001 type types-sros:ipv6-prefix;
12002 }
12003 description "Specifies the IPv6 prefix for this prefix list.";
12004 }
12005
12006 } // list prefix
12007
12008 } // list ipv6-prefix-list
12009
12010 } // container match-list
12011
12012 } // container qos
12013
12014 list router {
12015 key "router-name";
12016 max-elements 3;
12017 description "Enter the router context";
12018
12019 leaf router-name {
12020 type union {
12021 type string {
12022 length "1..64";
12023 pattern "<.*>" {
12024 error-message "Config Groups Regex Pattern";
12025 }
12026 }
12027 type types-sros:named-item-64 {
12028 pattern ".{1,32}" {
12029 error-message "vRtrName needs to be extended to 64 to support this name";
12030 }
12031 }
12032 }
12033 description
12034 "The administrative name for this virtual router.
12035
12036 The router name must be unique among all virtual routers in the system.";
12037 }
12038
12039 container aggregates {
12040 description "Enter the aggregates context";
12041
12042 list aggregate {
12043 key "ip-prefix";
12044 description "Enter the aggregate context";
12045
12046 leaf ip-prefix {
12047 type union {
12048 type string {
12049 length "1..64";
12050 pattern "<.*>" {
12051 error-message "Config Groups Regex Pattern";
12052 }
12053 }
12054 type types-sros:ip-unicast-prefix;
12055 }
12056 description "IP address prefix to match for aggregation";
12057 }
12058
12059 leaf as-set {
12060 type boolean;
12061 default "false";
12062 description "Allow aggregate route as an AS-SET option";
12063 }
12064
12065 leaf-list community {
12066 type types-sros:community;
12067 max-elements 12;
12068 ordered-by user;
12069 description "Community name that is added to aggregate route";
12070 }
12071
12072 leaf description {
12073 type types-sros:description;
12074 description "Text description";
12075 }
12076
12077 leaf summary-only {
12078 type boolean;
12079 default "false";
12080 description "Advertise only the aggregate route and not the specific routes that make up the aggregate";
12081 }
12082
12083 leaf local-preference {
12084 type int64 {
12085 range "0..4294967295";
12086 }
12087 description "Default local preference if aggregate route is exported and advertised to BGP peers";
12088 }
12089
12090 choice next-hop {
12091 case blackhole {
12092
12093 container blackhole {
12094 presence "blackhole";
12095 description "Enter the blackhole context";
12096
12097 leaf generate-icmp {
12098 type boolean;
12099 default "false";
12100 description "Send ICMP unreachable messages when packets match an aggregate route with black-hole next-hop";
12101 }
12102
12103 } // container blackhole
12104
12105 }
12106 case indirect {
12107
12108 leaf indirect {
12109 type types-sros:ip-unicast-address;
12110 sros-ext:immutable;
12111 description "Address of indirect next hop";
12112 }
12113
12114 }
12115 }
12116 container aggregator {
12117 description "Enter the aggregator context";
12118
12119 leaf as-number {
12120 type uint32 {
12121 range "1..max";
12122 }
12123 description "Aggregator Autonomous System Number (ASN)";
12124 }
12125
12126 leaf address {
12127 type types-sros:ipv4-unicast-address;
12128 description "Aggregator IP address";
12129 }
12130
12131 } // container aggregator
12132
12133 } // list aggregate
12134
12135 } // container aggregates
12136
12137 list interface {
12138 key "interface-name";
12139 description "Enter the interface context";
12140
12141 leaf interface-name {
12142 type union {
12143 type string {
12144 length "1..64";
12145 pattern "<.*>" {
12146 error-message "Config Groups Regex Pattern";
12147 }
12148 }
12149 type types-sros:interface-name;
12150 }
12151 description "Router interface name";
12152 }
12153
12154 container qos {
12155 description "Enter the qos context";
12156
12157 leaf network-policy {
12158 type types-qos:network-policy-name;
12159 description "Pre-existing network policy ID associated with a network interface";
12160 }
12161
12162 leaf egress-port-redirect-group {
12163 type types-sros:named-item;
12164 description "QoS queue group name";
12165 }
12166
12167 leaf egress-instance {
12168 type types-services:qos-qgrp-instance-id;
12169 description "Instance of the port egress queue group for this interface";
12170 }
12171
12172 leaf ingress-fp-redirect-group {
12173 type types-sros:named-item;
12174 description "Forwarding-plane queue group policy for this interface";
12175 }
12176
12177 leaf ingress-instance {
12178 type types-services:qos-qgrp-instance-id;
12179 description "Instance of the forwarding-plane ingress queue group for this interface";
12180 }
12181
12182 } // container qos
12183
12184 } // list interface
12185
12186 container tunnel-interface {
12187 description "Enter the tunnel-interface context";
12188
12189 } // container tunnel-interface
12190
12191 container bgp {
12192 presence "Enables bgp functionality on this router";
12193 description "Enter the bgp context";
12194
12195 list group {
12196 key "group-name";
12197 description "Enter the group context";
12198
12199 leaf group-name {
12200 type union {
12201 type string {
12202 length "1..64";
12203 pattern "<.*>" {
12204 error-message "Config Groups Regex Pattern";
12205 }
12206 }
12207 type types-sros:named-item;
12208 }
12209 description "BGP peer group";
12210 }
12211
12212 list prefix-limit {
12213 key "family";
12214 description "Enter the prefix-limit context";
12215
12216 leaf family {
12217 type union {
12218 type string {
12219 length "1..64";
12220 pattern "<.*>" {
12221 error-message "Config Groups Regex Pattern";
12222 }
12223 }
12224 type types-bgp:ip-family-identifier;
12225 }
12226 description "Address family to which the limit applies";
12227 }
12228
12229 leaf maximum {
12230 type uint32 {
12231 range "1..4294967295";
12232 }
12233 mandatory true;
12234 description "Specifies the maximum number of routes that can be learned from this peer.";
12235 }
12236
12237 leaf log-only {
12238 type boolean;
12239 default "false";
12240 description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session";
12241 }
12242
12243 leaf threshold {
12244 type uint32 {
12245 range "1..100";
12246 }
12247 default "90";
12248 description "Threshold value that triggers a warning message";
12249 }
12250
12251 leaf idle-timeout {
12252 type int32 {
12253 range "1..1024";
12254 }
12255 description "Time that BGP peering remains idle before reconnecting to peers";
12256 }
12257
12258 leaf post-import {
12259 type boolean;
12260 default "false";
12261 description "Apply prefix limit only to number of routes accepted by import policies";
12262 }
12263
12264 } // list prefix-limit
12265
12266 } // list group
12267
12268 list neighbor {
12269 key "ip-address";
12270 description "Enter the neighbor context";
12271
12272 leaf ip-address {
12273 type union {
12274 type string {
12275 length "1..64";
12276 pattern "<.*>" {
12277 error-message "Config Groups Regex Pattern";
12278 }
12279 }
12280 type types-sros:ip-address-with-zone;
12281 }
12282 description "BGP group neighbor";
12283 }
12284
12285 list prefix-limit {
12286 key "family";
12287 description "Enter the prefix-limit context";
12288
12289 leaf family {
12290 type union {
12291 type string {
12292 length "1..64";
12293 pattern "<.*>" {
12294 error-message "Config Groups Regex Pattern";
12295 }
12296 }
12297 type types-bgp:ip-family-identifier;
12298 }
12299 description "Address family to which the limit applies";
12300 }
12301
12302 leaf maximum {
12303 type uint32 {
12304 range "1..4294967295";
12305 }
12306 mandatory true;
12307 description "Specifies the maximum number of routes that can be learned from this peer.";
12308 }
12309
12310 leaf log-only {
12311 type boolean;
12312 default "false";
12313 description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session";
12314 }
12315
12316 leaf threshold {
12317 type uint32 {
12318 range "1..100";
12319 }
12320 default "90";
12321 description "Threshold value that triggers a warning message";
12322 }
12323
12324 leaf idle-timeout {
12325 type int32 {
12326 range "1..1024";
12327 }
12328 description "Time that BGP peering remains idle before reconnecting to peers";
12329 }
12330
12331 leaf post-import {
12332 type boolean;
12333 default "false";
12334 description "Apply prefix limit only to number of routes accepted by import policies";
12335 }
12336
12337 } // list prefix-limit
12338
12339 } // list neighbor
12340
12341 } // container bgp
12342
12343 list isis {
12344 key "isis-instance";
12345 description "Enter the isis context";
12346
12347 leaf isis-instance {
12348 type union {
12349 type string {
12350 length "1..64";
12351 pattern "<.*>" {
12352 error-message "Config Groups Regex Pattern";
12353 }
12354 }
12355 type int32 {
12356 range "0..31";
12357 }
12358 }
12359 description "Instance ID for IS-IS instance";
12360 }
12361
12362 leaf authentication-keychain {
12363 type types-sros:named-item;
12364 description "The keychain used to sign and/or authenticate.";
12365 }
12366
12367 leaf authentication-key {
12368 type types-sros:encrypted-leaf {
12369 length "1..366";
12370 }
12371 description "Authentication key to verify PDUs sent by neighboring routers";
12372 }
12373
12374 leaf authentication-type {
12375 type types-isis:auth-type;
12376 description "Authentication type";
12377 }
12378
12379 leaf csnp-authentication {
12380 type boolean;
12381 default "true";
12382 description "Authenticate individual IS-IS protocol packets of complete sequence number PDU (CSNP) type";
12383 }
12384
12385 leaf psnp-authentication {
12386 type boolean;
12387 default "true";
12388 description "Authenticate individual IS-IS protocol packets of partial sequence number PDU (PSNP) type";
12389 }
12390
12391 leaf admin-state {
12392 type types-sros:admin-state;
12393 default "disable";
12394 description "Administrative state of IS-IS instance";
12395 }
12396
12397 leaf advertise-passive-only {
12398 type boolean;
12399 default "false";
12400 description "Advertise only prefixes that belong to passive interfaces";
12401 }
12402
12403 leaf advertise-router-capability {
12404 type enumeration {
12405 enum "area" { value 2; }
12406 enum "as" { value 3; }
12407 }
12408 description "Advertise router capabilities to neighbors for information and troubleshooting purposes";
12409 }
12410
12411 leaf advertise-tunnel-link {
12412 type boolean;
12413 default "false";
12414 description "Allow use of forwarding adjacency";
12415 }
12416
12417 leaf all-l1isis {
12418 type yang:mac-address;
12419 default "01:80:C2:00:00:14";
12420 description "Destination MAC address for all L1 ISIS neighbors on the link for this ISIS instance";
12421 }
12422
12423 leaf all-l2isis {
12424 type yang:mac-address;
12425 default "01:80:C2:00:00:15";
12426 description "Destination MAC address for all L1 ISIS routers";
12427 }
12428
12429 leaf authentication-check {
12430 type boolean;
12431 default "true";
12432 description "Perform authentication check to reject PDUs that do not match the type or key requirements";
12433 }
12434
12435 leaf default-route-tag {
12436 type uint32 {
12437 range "1..max";
12438 }
12439 description "Route tag for default route";
12440 }
12441
12442 leaf ldp-sync {
12443 type boolean;
12444 default "true";
12445 description "Use IGP-LDP synchronization feature on all interfaces participating in IS-IS routing protocol";
12446 }
12447
12448 leaf hello-authentication {
12449 type boolean;
12450 default "true";
12451 description "Authenticate individual IS-IS protocol packets of Hello type";
12452 }
12453
12454 leaf ignore-attached-bit {
12455 type boolean;
12456 default "false";
12457 description "Ignore attached bit on received L1 LSPs to disable installation of default routes";
12458 }
12459
12460 leaf ignore-lsp-errors {
12461 type boolean;
12462 default "false";
12463 description "Ignore LSP packets with errors";
12464 }
12465
12466 leaf ignore-narrow-metric {
12467 type boolean;
12468 default "false";
12469 description "Ignore links with narrow metrics when wide-metrics support is enabled";
12470 }
12471
12472 leaf iid-tlv {
12473 type boolean;
12474 default "false";
12475 description "Use IID TLVs with IS-IS multi-instance (MI)";
12476 }
12477
12478 leaf ipv4-multicast-routing {
12479 type types-isis:routing-topology;
12480 default "native";
12481 description "IS-IS topology for IPv4 multicast routing";
12482 }
12483
12484 leaf ipv4-routing {
12485 type boolean;
12486 default "true";
12487 description "Support IPv4 routing for IS-IS instance";
12488 }
12489
12490 leaf ipv6-multicast-routing {
12491 type types-isis:routing-topology;
12492 default "false";
12493 description "Topology to populate the IPv6 multicast RTM";
12494 }
12495
12496 leaf ipv6-routing {
12497 type types-isis:routing-topology;
12498 default "false";
12499 description "Routing topology for IPv6";
12500 }
12501
12502 leaf hello-padding {
12503 type types-isis:hello-padding-type;
12504 description "Padding on IS-IS Hello packets";
12505 }
12506
12507 leaf ldp-over-rsvp {
12508 type boolean;
12509 default "false";
12510 description "Allow LDP over RSVP processing";
12511 }
12512
12513 leaf level-capability {
12514 type types-isis:level;
12515 description "Routing level for instance";
12516 }
12517
12518 leaf lsp-lifetime {
12519 type uint32 {
12520 range "350..65535";
12521 }
12522 units "seconds";
12523 sros-ext:manual-restart-to-modify;
12524 default "1200";
12525 description "Amount of time during which an LSP is considered valid";
12526 }
12527
12528 leaf lsp-mtu-size {
12529 type types-isis:lsp-buffer-size;
12530 units "bytes";
12531 sros-ext:manual-restart-to-modify;
12532 default "1492";
12533 description "LSP MTU size";
12534 }
12535
12536 leaf overload-export-interlevel {
12537 type boolean;
12538 default "false";
12539 description "Advertise the inter-level routes when router is overloaded";
12540 }
12541
12542 leaf overload-export-external {
12543 type boolean;
12544 default "false";
12545 description "Advertise the external routes when router is in overloaded";
12546 }
12547
12548 leaf poi-tlv {
12549 type boolean;
12550 default "false";
12551 description "Purge Originator Identification TLV";
12552 }
12553
12554 leaf prefix-attributes-tlv {
12555 type boolean;
12556 default "false";
12557 description "Use IS-IS Prefix Attributes TLV to exchange extended IPv4 and IPv6 reachability information";
12558 }
12559
12560 leaf reference-bandwidth {
12561 type types-sros:reference-bandwidth-ext;
12562 units "kilobps";
12563 description "Reference bandwidth for bandwidth relative costing";
12564 }
12565
12566 leaf router-id {
12567 type types-igp:router-id;
12568 description "Unique router ID for ISIS instance";
12569 }
12570
12571 leaf standard-multi-instance {
12572 type boolean;
12573 default "false";
12574 description "Enable RFC standards compliant multi-instance behavior";
12575 }
12576
12577 leaf strict-adjacency-check {
12578 type boolean;
12579 default "false";
12580 description "Enable strict checking of address families for IS-IS adjacencies";
12581 }
12582
12583 leaf suppress-attached-bit {
12584 type boolean;
12585 default "false";
12586 description "Allow IS-IS to suppress setting the attached bit on LSPs";
12587 }
12588
12589 leaf system-id {
12590 type types-igp:system-id;
12591 sros-ext:manual-restart-to-modify;
12592 description "System ID";
12593 }
12594
12595 leaf traffic-engineering {
12596 type boolean;
12597 default "false";
12598 description "Traffic engineering for router";
12599 }
12600
12601 leaf-list export-policy {
12602 type types-sros:named-item-64;
12603 max-elements 5;
12604 ordered-by user;
12605 description
12606 "Configure names of export policies to be used for determining which routes are exported
12607 from the routing table to this IGP.";
12608 }
12609
12610 leaf-list import-policy {
12611 type types-sros:named-item-64;
12612 max-elements 5;
12613 ordered-by user;
12614 description
12615 "Configure names of import policies to be used for determining which routes are imported
12616 from this IGP to the routing table.";
12617 }
12618
12619 leaf-list area-address {
12620 type types-isis:area-address;
12621 max-elements 3;
12622 description "Area address portion of NSAP address";
12623 }
12624
12625 container export-limit {
12626 presence "Maximum number of routes (prefixes) that can be exported into IS-IS from the route table.";
12627 description "Enter the export-limit context";
12628
12629 leaf number {
12630 type uint32 {
12631 range "1..max";
12632 }
12633 mandatory true;
12634 description "Maximum number of routes or prefixes to be exported into IGP instance from route table";
12635 }
12636
12637 leaf log-percent {
12638 type uint32 {
12639 range "1..100";
12640 }
12641 description "Export limit at which warning a log message and SNMP notification are sent";
12642 }
12643
12644 } // container export-limit
12645
12646 container graceful-restart {
12647 presence "Enables/disables graceful restart for ISIS.";
12648 description "Enter the graceful-restart context";
12649
12650 leaf helper-mode {
12651 type boolean;
12652 default "true";
12653 description "Enable graceful restart helper for IS-IS";
12654 }
12655
12656 } // container graceful-restart
12657
12658 container entropy-label {
12659 description "Enter the entropy-label context";
12660
12661 leaf override-tunnel-elc {
12662 type boolean;
12663 default "false";
12664 description "Received entropy label capability advertisement to override";
12665 }
12666
12667 } // container entropy-label
12668
12669 container multi-topology {
12670 presence "Configure multi-topologies support in this ISIS instance.";
12671 description "Enter the multi-topology context";
12672
12673 leaf ipv6-unicast {
12674 type boolean;
12675 default "false";
12676 description "Support multi-topology TLVs";
12677 }
12678
12679 leaf ipv4-multicast {
12680 type boolean;
12681 default "false";
12682 description "Support IPv4 topology (MT3)";
12683 }
12684
12685 leaf ipv6-multicast {
12686 type boolean;
12687 default "false";
12688 description "Support IPv6 topology (MT4)";
12689 }
12690
12691 } // container multi-topology
12692
12693 container multicast-import {
12694 description "Enter the multicast-import context";
12695
12696 leaf ipv4 {
12697 type boolean;
12698 default "false";
12699 description "Submit IPv4 routes into the multicast RPF of the RTM";
12700 }
12701
12702 leaf ipv6 {
12703 type boolean;
12704 default "false";
12705 description "Submit IPv6 routes into the multicast RPF of the RTM";
12706 }
12707
12708 } // container multicast-import
12709
12710 container overload {
12711 presence "Configure the local router so that it appears to be overload.";
12712 description "Enter the overload context";
12713
12714 leaf max-metric {
12715 type boolean;
12716 default "false";
12717 description "Advertise transit links with maximum metric instead of setting overload bit";
12718 }
12719
12720 } // container overload
12721
12722 container overload-on-boot {
12723 presence "Configure the local router so that it appears to be overloaded at boot up.";
12724 description "Enter the overload-on-boot context";
12725
12726 leaf timeout {
12727 type uint32 {
12728 range "60..1800";
12729 }
12730 units "seconds";
12731 description "Time during which the router operates in overload state after reboot";
12732 }
12733
12734 leaf max-metric {
12735 type boolean;
12736 default "false";
12737 description "Advertise transit links with maximum metric instead of setting overload bit";
12738 }
12739
12740 } // container overload-on-boot
12741
12742 container prefix-limit {
12743 presence "Configure the limit for maximum number of prefixes IS-IS can support.";
12744 description "Enter the prefix-limit context";
12745
12746 leaf limit {
12747 type uint32 {
12748 range "1..max";
12749 }
12750 mandatory true;
12751 description "Maximum number of prefixes for IS-IS instance";
12752 }
12753
12754 leaf log-only {
12755 type boolean;
12756 default "false";
12757 description "Send warning message at specified threshold or when limit is reached, without going into overload";
12758 }
12759
12760 leaf warning-threshold {
12761 type uint32 {
12762 range "0..100";
12763 }
12764 units "percent";
12765 default "0";
12766 description
12767 "Specifies the percentage of the value defined by prefix-limit, at which a warning log message
12768 and SNMP notification would be sent.
12769
12770 This would only be a warning and additional prefixes will be learned up to 100% of prefix-limit.
12771
12772 A value of 0 indicates that the threshold is disabled and no log message or SNMP notification will be sent.";
12773 }
12774
12775 leaf overload-timeout {
12776 type types-igp:overload-timeout;
12777 default "forever";
12778 description "Time router remains in overload after prefix limit is exceeded before restarting";
12779 }
12780
12781 } // container prefix-limit
12782
12783 container lsp-refresh {
12784 description "Enter the lsp-refresh context";
12785
12786 leaf interval {
12787 type uint32 {
12788 range "150..65535";
12789 }
12790 units "seconds";
12791 default "600";
12792 description "Refresh timer interval";
12793 }
12794
12795 leaf half-lifetime {
12796 type boolean;
12797 default "true";
12798 description "Set the refresh interval to always be half the LSP lifetime";
12799 }
12800
12801 } // container lsp-refresh
12802
12803 container rib-priority {
12804 description "Enter the rib-priority context";
12805
12806 container high {
12807 description "Enter the high context";
12808
12809 choice type {
12810 case prefix-list {
12811
12812 leaf prefix-list {
12813 type types-sros:named-item;
12814 description "List used to select routes processed at higher priority through OSPF route calculation process";
12815 }
12816
12817 }
12818 case tag {
12819
12820 leaf tag {
12821 type uint32 {
12822 range "1..max";
12823 }
12824 description "Value that matches IS-IS routes processed at higher priority through route calculation process";
12825 }
12826
12827 }
12828 }
12829 } // container high
12830
12831 } // container rib-priority
12832
12833 container timers {
12834 description "Enter the timers context";
12835
12836 container spf-wait {
12837 description "Enter the spf-wait context";
12838
12839 leaf spf-max-wait {
12840 type uint32 {
12841 range "10..120000";
12842 }
12843 units "milliseconds";
12844 default "10000";
12845 description "Maximum interval between two consecutive SPF calculations";
12846 }
12847
12848 leaf spf-initial-wait {
12849 type uint32 {
12850 range "10..100000";
12851 }
12852 units "milliseconds";
12853 default "1000";
12854 description "Initial SPF calculation delay after topology change";
12855 }
12856
12857 leaf spf-second-wait {
12858 type uint32 {
12859 range "10..100000";
12860 }
12861 units "milliseconds";
12862 default "1000";
12863 description "Hold time between first and second SPF calculations";
12864 }
12865
12866 } // container spf-wait
12867
12868 container lsp-wait {
12869 description "Enter the lsp-wait context";
12870
12871 leaf lsp-max-wait {
12872 type uint32 {
12873 range "10..120000";
12874 }
12875 units "milliseconds";
12876 default "5000";
12877 description "Maximum time between two consecutive occurrences of LSP generation";
12878 }
12879
12880 leaf lsp-initial-wait {
12881 type uint32 {
12882 range "10..100000";
12883 }
12884 units "milliseconds";
12885 default "10";
12886 description "Initial LSP generation delay";
12887 }
12888
12889 leaf lsp-second-wait {
12890 type uint32 {
12891 range "10..100000";
12892 }
12893 units "milliseconds";
12894 default "1000";
12895 description "Delay between first and second LSP generation";
12896 }
12897
12898 } // container lsp-wait
12899
12900 } // container timers
12901
12902 container unicast-import {
12903 description "Enter the unicast-import context";
12904
12905 leaf ipv4 {
12906 type boolean;
12907 default "true";
12908 description "Submit IPv4 routes into unicast RTM";
12909 }
12910
12911 leaf ipv6 {
12912 type boolean;
12913 default "true";
12914 description "Submit IPv6 routes into unicast RTM";
12915 }
12916
12917 } // container unicast-import
12918
12919 container loopfree-alternate {
12920 presence "Enable/disable fast re-route capability for ISIS";
12921 description "Enter the loopfree-alternate context";
12922
12923 container exclude {
12924 description "Enter the exclude context";
12925
12926 leaf-list prefix-policy {
12927 type types-sros:named-item-64;
12928 max-elements 5;
12929 ordered-by user;
12930 description
12931 "Loopfree Alternative (LFA) exclude policies from which prefixes are excluded.
12932 Prefixes excluded from LFA this way will not be used in the LFA calculation, regardless of their priority.";
12933 }
12934
12935 } // container exclude
12936
12937 container remote-lfa {
12938 presence "Enable/disable Remote LFA";
12939 description "Enter the remote-lfa context";
12940
12941 leaf max-pq-cost {
12942 type uint32;
12943 default "4261412864";
12944 description "Maximum cost of destination node during reverse SPF calculation";
12945 }
12946
12947 container node-protect {
12948 presence "Configure node-protection support in this ISIS instance.";
12949 description "Enter the node-protect context";
12950
12951 leaf max-pq-nodes {
12952 type uint32 {
12953 range "1..32";
12954 }
12955 default "16";
12956 description "Specifies the maximum number of PQ nodes.";
12957 }
12958
12959 } // container node-protect
12960
12961 } // container remote-lfa
12962
12963 container ti-lfa {
12964 presence "Enable/disable topology Independent LFA";
12965 description "Enter the ti-lfa context";
12966
12967 leaf max-sr-frr-labels {
12968 type uint32 {
12969 range "0..3";
12970 }
12971 default "2";
12972 description "Maximum number of labels that TI-LFA backup next hop can use";
12973 }
12974
12975 container node-protect {
12976 presence "Configure node-protection support in this ISIS instance.";
12977 description "Enter the node-protect context";
12978
12979 } // container node-protect
12980
12981 } // container ti-lfa
12982
12983 } // container loopfree-alternate
12984
12985 container database-export {
12986 presence "Enable/disable database export.";
12987 description "Enter the database-export context";
12988
12989 leaf igp-identifier {
12990 type uint64;
12991 description "Unique identifier of the IGP instance in the BGP-LS NLRI";
12992 }
12993
12994 container bgp-ls-identifier {
12995 presence "Enable/disable BGP-LS instance-identifier.";
12996 description "Enter the bgp-ls-identifier context";
12997
12998 leaf value {
12999 type uint32;
13000 default "0";
13001 description "BGP-LS identifier that is sent in the BGP-LS NLRI";
13002 }
13003
13004 } // container bgp-ls-identifier
13005
13006 } // container database-export
13007
13008 container segment-routing {
13009 description "Enter the segment-routing context";
13010
13011 leaf admin-state {
13012 type types-sros:admin-state;
13013 default "disable";
13014 description "Administrative state of segment routing";
13015 }
13016
13017 leaf adj-sid-hold {
13018 type types-igp:adj-sid-hold-type;
13019 units "seconds";
13020 default "15";
13021 description "Adjacency SID hold time";
13022 }
13023
13024 leaf entropy-label {
13025 type boolean;
13026 default "true";
13027 description "Entropy label capability";
13028 }
13029
13030 leaf export-tunnel-table {
13031 type enumeration {
13032 enum "ldp" { value 1; }
13033 }
13034 description "Tunnel table export policies to export tunneled routes";
13035 }
13036
13037 leaf srlb {
13038 type types-sros:named-item-64;
13039 description "Routing local block";
13040 }
13041
13042 leaf tunnel-mtu {
13043 type uint32 {
13044 range "512..9198";
13045 }
13046 description "Tunnel MTU size";
13047 }
13048
13049 leaf tunnel-table-pref {
13050 type uint32 {
13051 range "1..255";
13052 }
13053 default "11";
13054 description "Preference of SR tunnels created by the IGP instance";
13055 }
13056
13057 container prefix-sid-range {
13058 presence "Configure prefix-sid-range";
13059 description "Enter the prefix-sid-range context";
13060
13061 choice type {
13062 case global {
13063
13064 leaf global {
13065 type empty;
13066 description "Use global SR range";
13067 }
13068
13069 }
13070 case local {
13071
13072 leaf start-label {
13073 type uint32 {
13074 range "0..524287";
13075 }
13076 default "0";
13077 description "Value for the local label starting offset";
13078 }
13079
13080 leaf max-index {
13081 type uint32 {
13082 range "1..524287";
13083 }
13084 default "1";
13085 description "Maximum local SID index";
13086 }
13087
13088 }
13089 }
13090 } // container prefix-sid-range
13091
13092 list adjacency-set {
13093 key "id";
13094 description "Enter the adjacency-set context";
13095
13096 leaf id {
13097 type union {
13098 type string {
13099 length "1..64";
13100 pattern "<.*>" {
13101 error-message "Config Groups Regex Pattern";
13102 }
13103 }
13104 type uint32 {
13105 range "1..max";
13106 }
13107 }
13108 description "Identifier for specified adjacency set";
13109 }
13110
13111 leaf family {
13112 type types-sros:adjacency-set-family-type;
13113 default "ipv4";
13114 description "Address family for the adjacency set";
13115 }
13116
13117 leaf parallel {
13118 type boolean;
13119 default "true";
13120 description "Require all members of the adjacency set to terminate on the same neighboring node";
13121 }
13122
13123 leaf advertise {
13124 type boolean;
13125 default "true";
13126 description "Advertise the adjacency set when all links terminate on the same neighboring node";
13127 }
13128
13129 container sid {
13130 presence "Assign a static SID value to this adj-set";
13131 description "Enter the sid context";
13132
13133 choice type {
13134 case label {
13135
13136 leaf label {
13137 type int64 {
13138 range "1..1048575";
13139 }
13140 description "Adjacency SID";
13141 }
13142
13143 }
13144 }
13145 } // container sid
13146
13147 } // list adjacency-set
13148
13149 container mapping-server {
13150 description "Enter the mapping-server context";
13151
13152 leaf admin-state {
13153 type types-sros:admin-state;
13154 default "disable";
13155 description "Administrative state of ISIS segment routing mapping server";
13156 }
13157
13158 list node-sid-map {
13159 key "sid-index";
13160 description "Enter the node-sid-map context";
13161
13162 leaf sid-index {
13163 type union {
13164 type string {
13165 length "1..64";
13166 pattern "<.*>" {
13167 error-message "Config Groups Regex Pattern";
13168 }
13169 }
13170 type uint32;
13171 }
13172 description "SID index of a mapping server Prefix-SID";
13173 }
13174
13175 leaf ip-prefix {
13176 type types-sros:ipv4-unicast-prefix;
13177 mandatory true;
13178 description "Prefix of a mapping server Prefix-SID";
13179 }
13180
13181 leaf range {
13182 type uint32 {
13183 range "0..65535";
13184 }
13185 default "1";
13186 description "Range of addresses and their associated prefix SIDs";
13187 }
13188
13189 leaf level-capability {
13190 type types-isis:level;
13191 description "Flags to assign in SID Label Binding TLV advertised by Segment Routing Mapping Server";
13192 }
13193
13194 leaf clear-n-flag {
13195 type boolean;
13196 default "false";
13197 description "Clear the node-sid flag (N-flag)";
13198 }
13199
13200 container set-flags {
13201 description "Enter the set-flags context";
13202
13203 leaf bit-s {
13204 type boolean;
13205 default "false";
13206 description "SID Label Binding TLV to be flooded across the entire routing domain";
13207 }
13208
13209 } // container set-flags
13210
13211 } // list node-sid-map
13212
13213 } // container mapping-server
13214
13215 } // container segment-routing
13216
13217 container igp-shortcut {
13218 description "Enter the igp-shortcut context";
13219
13220 leaf admin-state {
13221 type types-sros:admin-state;
13222 default "disable";
13223 description "Administrative state of RSVP-TE or SR-TE shortcut";
13224 }
13225
13226 container tunnel-next-hop {
13227 description "Enter the tunnel-next-hop context";
13228
13229 list family {
13230 key "family-type";
13231 description "Enter the family context";
13232
13233 leaf family-type {
13234 type union {
13235 type string {
13236 length "1..64";
13237 pattern "<.*>" {
13238 error-message "Config Groups Regex Pattern";
13239 }
13240 }
13241 type types-igp:tunn-next-hop-family-type;
13242 }
13243 description "Address family type for tunnel next-hop";
13244 }
13245
13246 leaf resolution {
13247 type types-sros:resolution-type;
13248 description "Resolution state for IGP shortcut tunnels";
13249 }
13250
13251 container resolution-filter {
13252 description "Enter the resolution-filter context";
13253
13254 leaf rsvp {
13255 type boolean;
13256 default "false";
13257 description "Use RSVP tunneling for next-hop resolution";
13258 }
13259
13260 leaf sr-te {
13261 type boolean;
13262 default "false";
13263 description "Use SR-TE tunneling for next-hop resolution";
13264 }
13265
13266 } // container resolution-filter
13267
13268 } // list family
13269
13270 } // container tunnel-next-hop
13271
13272 } // container igp-shortcut
13273
13274 list interface {
13275 key "interface-name";
13276 description "Enter the interface context";
13277
13278 leaf interface-name {
13279 type union {
13280 type string {
13281 length "1..64";
13282 pattern "<.*>" {
13283 error-message "Config Groups Regex Pattern";
13284 }
13285 }
13286 type types-sros:interface-name;
13287 }
13288 description "Router interface name";
13289 }
13290
13291 leaf admin-state {
13292 type types-sros:admin-state;
13293 default "enable";
13294 description "Administrative state of interface";
13295 }
13296
13297 leaf hello-authentication-key {
13298 type types-sros:encrypted-leaf {
13299 length "1..366";
13300 }
13301 description "Authentication key or hash string for Hello PDUs";
13302 }
13303
13304 leaf hello-authentication-keychain {
13305 type types-sros:named-item;
13306 description "Authentication keychain to use for the session.";
13307 }
13308
13309 leaf hello-authentication-type {
13310 type types-isis:auth-type;
13311 description "Hello authentication type";
13312 }
13313
13314 leaf hello-padding {
13315 type types-isis:hello-padding-type;
13316 description "Padding on IS-IS Hello packets";
13317 }
13318
13319 leaf passive {
13320 type boolean;
13321 default "false";
13322 description "Passive interface";
13323 }
13324
13325 leaf csnp-interval {
13326 type uint32 {
13327 range "1..65535";
13328 }
13329 units "seconds";
13330 default "10";
13331 description "Time interval between successive CSN PDUs sent from interface";
13332 }
13333
13334 leaf default-instance {
13335 type boolean;
13336 default "false";
13337 description "Allow non-MI capable router to establish an adjacency and operate with a router in non-zero instance";
13338 }
13339
13340 leaf hello-authentication {
13341 type boolean;
13342 default "true";
13343 description "Authenticate individual IS-IS protocol packets of Hello type";
13344 }
13345
13346 leaf interface-type {
13347 type types-isis:interface-type;
13348 description "Interface type to broadcast, point-to-point, or to be default";
13349 }
13350
13351 leaf ipv4-multicast {
13352 type boolean;
13353 default "true";
13354 description "Clear IPv4 multicast routing for interface";
13355 }
13356
13357 leaf ipv6-multicast {
13358 type boolean;
13359 default "true";
13360 description "Clear IPv4 multicast routing for interface";
13361 }
13362
13363 leaf ipv6-unicast {
13364 type boolean;
13365 default "true";
13366 description "Clear IPv4 multicast routing for interface";
13367 }
13368
13369 leaf level-capability {
13370 type types-isis:level;
13371 description "IS-IS levels for this interface";
13372 }
13373
13374 leaf load-balancing-weight {
13375 type uint32;
13376 description "Load balancing weight";
13377 }
13378
13379 leaf lsp-pacing-interval {
13380 type uint32 {
13381 range "0..65535";
13382 }
13383 default "100";
13384 description "Interval for sending LSPs from interface";
13385 }
13386
13387 leaf retransmit-interval {
13388 type uint32 {
13389 range "1..65535";
13390 }
13391 units "seconds";
13392 default "5";
13393 description "Minimum time between LSP PDU retransmissions on point-to-point interface";
13394 }
13395
13396 leaf sid-protection {
13397 type boolean;
13398 default "true";
13399 description "Allow adjacency SID protection by LFA and remote LFA";
13400 }
13401
13402 leaf tag {
13403 type uint32 {
13404 range "1..max";
13405 }
13406 description "Route tag for IP address of interface";
13407 }
13408
13409 container ipv4-adjacency-sid {
13410 presence "Assign IPv4 static adjacency sid to interface";
13411 description "Enter the ipv4-adjacency-sid context";
13412
13413 choice type {
13414 case label {
13415
13416 leaf label {
13417 type int64 {
13418 range "1..1048575";
13419 }
13420 description "Adjacency SID";
13421 }
13422
13423 }
13424 }
13425 } // container ipv4-adjacency-sid
13426
13427 container ipv6-adjacency-sid {
13428 presence "Assign IPv6 static adjacency sid to interface";
13429 description "Enter the ipv6-adjacency-sid context";
13430
13431 choice type {
13432 case label {
13433
13434 leaf label {
13435 type int64 {
13436 range "1..1048575";
13437 }
13438 description "Adjacency SID";
13439 }
13440
13441 }
13442 }
13443 } // container ipv6-adjacency-sid
13444
13445 container loopfree-alternate {
13446 description "Enter the loopfree-alternate context";
13447
13448 leaf exclude {
13449 type boolean;
13450 default "false";
13451 description "Enable/disable Loopfree Alternative at interface level.";
13452 }
13453
13454 container policy-map {
13455 presence "Configure a route-next-hop template";
13456 description "Enter the policy-map context";
13457
13458 leaf route-nh-template {
13459 type types-sros:named-item;
13460 mandatory true;
13461 description "Route next hop policy template that is applied to interface";
13462 }
13463
13464 } // container policy-map
13465
13466 } // container loopfree-alternate
13467
13468 container mesh-group {
13469 presence "Configure mesh groups";
13470 description "Enter the mesh-group context";
13471
13472 choice type {
13473 case value {
13474
13475 leaf value {
13476 type int32 {
13477 range "1..2000000000";
13478 }
13479 description "Mesh group for the interface";
13480 }
13481
13482 }
13483 case blocked {
13484
13485 leaf blocked {
13486 type empty;
13487 description "Prevent the interface from flooding LSPs";
13488 }
13489
13490 }
13491 }
13492 } // container mesh-group
13493
13494 container bfd-liveness {
13495 description "Enter the bfd-liveness context";
13496
13497 container ipv4 {
13498 presence "Enable BFD for IPv4";
13499 description "Enter the ipv4 context";
13500
13501 leaf include-bfd-tlv {
13502 type boolean;
13503 default "false";
13504 description "BFD-enabled TLV for IPv4 to include on this IS-IS interface";
13505 }
13506
13507 } // container ipv4
13508
13509 container ipv6 {
13510 presence "Enable BFD for IPv6";
13511 description "Enter the ipv6 context";
13512
13513 leaf include-bfd-tlv {
13514 type boolean;
13515 default "false";
13516 description "BFD-enabled TLV for IPv4 to include on this IS-IS interface";
13517 }
13518
13519 } // container ipv6
13520
13521 } // container bfd-liveness
13522
13523 container ipv4-node-sid {
13524 presence "Configure IPv4 node SID for this interface";
13525 description "Enter the ipv4-node-sid context";
13526
13527 leaf clear-n-flag {
13528 type boolean;
13529 default "false";
13530 description "Clear the node-sid flag (N-flag)";
13531 }
13532
13533 choice type {
13534 case label {
13535
13536 leaf label {
13537 type int64 {
13538 range "1..4294967295";
13539 }
13540 description "Specifies IPvX node SID label for this interface.";
13541 }
13542
13543 }
13544 case index {
13545
13546 leaf index {
13547 type int64 {
13548 range "0..4294967295";
13549 }
13550 description "IPvX node SID index for this interface";
13551 }
13552
13553 }
13554 }
13555 } // container ipv4-node-sid
13556
13557 container ipv6-node-sid {
13558 presence "Configure IPv6 node SID for this interface";
13559 description "Enter the ipv6-node-sid context";
13560
13561 leaf clear-n-flag {
13562 type boolean;
13563 default "false";
13564 description "Clear the node-sid flag (N-flag)";
13565 }
13566
13567 choice type {
13568 case label {
13569
13570 leaf label {
13571 type int64 {
13572 range "1..4294967295";
13573 }
13574 description "Specifies IPvX node SID label for this interface.";
13575 }
13576
13577 }
13578 case index {
13579
13580 leaf index {
13581 type int64 {
13582 range "0..4294967295";
13583 }
13584 description "IPvX node SID index for this interface";
13585 }
13586
13587 }
13588 }
13589 } // container ipv6-node-sid
13590
13591 list adjacency-set {
13592 key "id";
13593 description "Enter the adjacency-set context";
13594
13595 leaf id {
13596 type union {
13597 type string {
13598 length "1..64";
13599 pattern "<.*>" {
13600 error-message "Config Groups Regex Pattern";
13601 }
13602 }
13603 type uint32 {
13604 range "1..max";
13605 }
13606 }
13607 description "Adjacency set identity";
13608 }
13609
13610 } // list adjacency-set
13611
13612 list level {
13613 key "level-number";
13614 max-elements 2;
13615 description "Enter the level context";
13616
13617 leaf level-number {
13618 type union {
13619 type string {
13620 length "1..64";
13621 pattern "<.*>" {
13622 error-message "Config Groups Regex Pattern";
13623 }
13624 }
13625 type enumeration {
13626 enum "1" { value 1; }
13627 enum "2" { value 2; }
13628 }
13629 }
13630 description "IS-IS protocol level to which these attributes apply";
13631 }
13632
13633 leaf hello-authentication-key {
13634 type types-sros:encrypted-leaf {
13635 length "1..366";
13636 }
13637 description "Authentication or hash key string.";
13638 }
13639
13640 leaf hello-authentication-keychain {
13641 type types-sros:named-item;
13642 description "Authentication keychain to use for the session.";
13643 }
13644
13645 leaf hello-authentication-type {
13646 type types-isis:auth-type;
13647 description "Hello-authentication-type to be enabled.";
13648 }
13649
13650 leaf hello-padding {
13651 type types-isis:hello-padding-type;
13652 description "Padding on IS-IS Hello packets";
13653 }
13654
13655 leaf passive {
13656 type boolean;
13657 default "false";
13658 description "Passive interface";
13659 }
13660
13661 leaf hello-interval {
13662 type uint32 {
13663 range "1..20000";
13664 }
13665 default "9";
13666 description "Interval between Hello messages sent on this level";
13667 }
13668
13669 leaf hello-multiplier {
13670 type int32 {
13671 range "2..100";
13672 }
13673 default "3";
13674 description "Hello messages missed from neighbor before router declares adjacency down";
13675 }
13676
13677 leaf ipv4-multicast-metric {
13678 type types-isis:metric;
13679 description "IS-IS interface metric applied for IPv4 multicast";
13680 }
13681
13682 leaf ipv6-multicast-metric {
13683 type types-isis:metric;
13684 description "IS-IS interface metric applied for IPv6 multicast";
13685 }
13686
13687 leaf ipv6-unicast-metric {
13688 type types-isis:metric;
13689 description "IS-IS interface metric applied for for IPv6 unicast";
13690 }
13691
13692 leaf metric {
13693 type types-isis:metric;
13694 description "IS-IS interface metric applied for for IPv4 unicast";
13695 }
13696
13697 leaf priority {
13698 type uint32 {
13699 range "0..127";
13700 }
13701 default "64";
13702 description "Router to become the designated router on a multi-access network";
13703 }
13704
13705 leaf sd-offset {
13706 type types-isis:metric;
13707 description "Value of the signal degrade offset";
13708 }
13709
13710 leaf sf-offset {
13711 type types-isis:metric;
13712 description "Value of the signal fail offset";
13713 }
13714
13715 } // list level
13716
13717 } // list interface
13718
13719 list level {
13720 key "level-number";
13721 max-elements 2;
13722 description "Enter the level context";
13723
13724 leaf level-number {
13725 type union {
13726 type string {
13727 length "1..64";
13728 pattern "<.*>" {
13729 error-message "Config Groups Regex Pattern";
13730 }
13731 }
13732 type enumeration {
13733 enum "1" { value 1; }
13734 enum "2" { value 2; }
13735 }
13736 }
13737 description "IS-IS protocol level to which these attributes apply";
13738 }
13739
13740 leaf authentication-keychain {
13741 type types-sros:named-item;
13742 description "The keychain used to sign and/or authenticate.";
13743 }
13744
13745 leaf authentication-key {
13746 type types-sros:encrypted-leaf {
13747 length "1..366";
13748 }
13749 description "Authentication or hash key string.";
13750 }
13751
13752 leaf authentication-type {
13753 type types-isis:auth-type;
13754 description "Configure the authentication type to be used.";
13755 }
13756
13757 leaf csnp-authentication {
13758 type boolean;
13759 default "true";
13760 description "Enable/disable authentication on received ISIS protocol packets of type CSNP.";
13761 }
13762
13763 leaf psnp-authentication {
13764 type boolean;
13765 default "true";
13766 description "Enable/disable authentication on received ISIS protocol packets of type PSNP.";
13767 }
13768
13769 leaf advertise-router-capability {
13770 type boolean;
13771 default "true";
13772 description "Allow router advertisement capabilities";
13773 }
13774
13775 leaf database-export-exclude {
13776 type boolean;
13777 default "false";
13778 description "Exclude IGP link-state information of a specific IS-IS level from being exported into extended TE-DB";
13779 }
13780
13781 leaf default-ipv4-multicast-metric {
13782 type types-isis:metric;
13783 default "10";
13784 description "Default metric for IPv4 unicast";
13785 }
13786
13787 leaf default-ipv6-multicast-metric {
13788 type types-isis:metric;
13789 default "10";
13790 description "Default metric for IPv6 unicast";
13791 }
13792
13793 leaf default-ipv6-unicast-metric {
13794 type types-isis:metric;
13795 default "10";
13796 description "Default metric for IPv6 unicast";
13797 }
13798
13799 leaf default-metric {
13800 type types-isis:metric;
13801 default "10";
13802 description "Default metric";
13803 }
13804
13805 leaf external-preference {
13806 type uint32 {
13807 range "1..255";
13808 }
13809 default "165";
13810 description "External route preference for IS-IS level";
13811 }
13812
13813 leaf hello-authentication {
13814 type boolean;
13815 default "true";
13816 description "Authenticate individual IS-IS protocol packets of Hello type";
13817 }
13818
13819 leaf hello-padding {
13820 type types-isis:hello-padding-type;
13821 description "Padding on IS-IS Hello packets";
13822 }
13823
13824 leaf loopfree-alternate-exclude {
13825 type boolean;
13826 default "false";
13827 description "Exclude interface participating in specific IS-IS level in SPF LFA computation";
13828 }
13829
13830 leaf lsp-mtu-size {
13831 type types-isis:lsp-buffer-size;
13832 units "bytes";
13833 sros-ext:manual-restart-to-modify;
13834 default "1492";
13835 description "LSP MTU size";
13836 }
13837
13838 leaf preference {
13839 type uint32 {
13840 range "1..255";
13841 }
13842 default "18";
13843 description "External route preference at level";
13844 }
13845
13846 leaf wide-metrics-only {
13847 type boolean;
13848 default "false";
13849 description "Use wide metrics advertisements in the LSPs";
13850 }
13851
13852 container bier {
13853 description "Enter the bier context";
13854
13855 leaf admin-state {
13856 type types-sros:admin-state;
13857 default "disable";
13858 description "Administratively enable/disable BIER.";
13859 }
13860
13861 leaf template {
13862 type types-sros:named-item;
13863 description "Specify BIER template name.";
13864 }
13865
13866 } // container bier
13867
13868 } // list level
13869
13870 list link-group {
13871 key "link-group-name";
13872 description "Enter the link-group context";
13873
13874 leaf link-group-name {
13875 type union {
13876 type string {
13877 length "1..64";
13878 pattern "<.*>" {
13879 error-message "Config Groups Regex Pattern";
13880 }
13881 }
13882 type types-sros:named-item;
13883 }
13884 description "Link group name for the IS-IS protocol";
13885 }
13886
13887 leaf description {
13888 type types-sros:very-long-description;
13889 description "Text description";
13890 }
13891
13892 list level {
13893 key "level-number";
13894 max-elements 2;
13895 description "Enter the level context";
13896
13897 leaf level-number {
13898 type union {
13899 type string {
13900 length "1..64";
13901 pattern "<.*>" {
13902 error-message "Config Groups Regex Pattern";
13903 }
13904 }
13905 type enumeration {
13906 enum "1" { value 1; }
13907 enum "2" { value 2; }
13908 }
13909 }
13910 description "IS-IS protocol level to which these attributes apply";
13911 }
13912
13913 leaf ipv4-multicast-metric-offset {
13914 type types-isis:metric;
13915 description "Offset value for the IPv4 multicast address family";
13916 }
13917
13918 leaf ipv4-unicast-metric-offset {
13919 type types-isis:metric;
13920 description "Offset value for the IPv4 unicast address family";
13921 }
13922
13923 leaf ipv6-multicast-metric-offset {
13924 type types-isis:metric;
13925 description "Offset value for the IPv6 multicast address family";
13926 }
13927
13928 leaf ipv6-unicast-metric-offset {
13929 type types-isis:metric;
13930 description "Offset value for the IPv6 unicast address family";
13931 }
13932
13933 leaf oper-members {
13934 type uint32 {
13935 range "1..8";
13936 }
13937 description "Minimum number of operational links";
13938 }
13939
13940 leaf revert-members {
13941 type uint32 {
13942 range "1..8";
13943 }
13944 description "Minimum number of operational links to return link group to normal state and remove offsets";
13945 }
13946
13947 list member {
13948 key "interface-name";
13949 max-elements 8;
13950 description "Enter the member context";
13951
13952 leaf interface-name {
13953 type union {
13954 type string {
13955 length "1..64";
13956 pattern "<.*>" {
13957 error-message "Config Groups Regex Pattern";
13958 }
13959 }
13960 type types-sros:interface-name;
13961 }
13962 description "Router interface name for this link group";
13963 }
13964
13965 } // list member
13966
13967 } // list level
13968
13969 } // list link-group
13970
13971 list summary-address {
13972 key "ip-prefix";
13973 description "Enter the summary-address context";
13974
13975 leaf ip-prefix {
13976 type union {
13977 type string {
13978 length "1..64";
13979 pattern "<.*>" {
13980 error-message "Config Groups Regex Pattern";
13981 }
13982 }
13983 type types-sros:ip-prefix;
13984 }
13985 description "Summary IP prefix";
13986 }
13987
13988 leaf level-capability {
13989 type types-isis:level;
13990 description "IS-IS Level from which the prefix should be summarized";
13991 }
13992
13993 leaf route-tag {
13994 type uint32 {
13995 range "1..max";
13996 }
13997 description "Route tag assigned to the summary address";
13998 }
13999
14000 } // list summary-address
14001
14002 } // list isis
14003
14004 container mpls {
14005 presence "Enables mpls functionality on this router.";
14006 description "Enter the mpls context";
14007
14008 leaf admin-group-frr {
14009 type boolean;
14010 default "false";
14011 description "Use admin group constraints for FRR path computation";
14012 }
14013
14014 leaf admin-state {
14015 type types-sros:admin-state;
14016 default "disable";
14017 description "Administrative state of the MPLS instance";
14018 }
14019
14020 leaf bypass-resignal-timer {
14021 type uint32 {
14022 range "30..10080";
14023 }
14024 units "minutes";
14025 description "Value for the LSP resignal timer";
14026 }
14027
14028 leaf cspf-on-loose-hop {
14029 type boolean;
14030 default "false";
14031 description "Calculate CSPF until next loose hop on LSR";
14032 }
14033
14034 leaf dynamic-bypass {
14035 type boolean;
14036 default "true";
14037 description "Create dynamic bypass LSPs in FRR";
14038 }
14039
14040 leaf exponential-backoff-retry {
14041 type boolean;
14042 default "false";
14043 description "Use exponential back-off timer when retrying an LSP";
14044 }
14045
14046 leaf frr-object {
14047 type boolean;
14048 default "true";
14049 description "Signal with fast reroute object";
14050 }
14051
14052 leaf hold-timer {
14053 type uint32 {
14054 range "0..10";
14055 }
14056 units "seconds";
14057 default "1";
14058 description "Hold timer value";
14059 }
14060
14061 leaf least-fill-min-thd {
14062 type types-sros:percent;
14063 default "5";
14064 description "Percentage of the least fill minimum threshold value";
14065 }
14066
14067 leaf least-fill-reoptim-thd {
14068 type types-sros:percent;
14069 default "10";
14070 description "Percentage of the least fill reoptimization threshold value";
14071 }
14072
14073 leaf logger-event-bundling {
14074 type boolean;
14075 default "false";
14076 description "Merge and bundle MPLS traps";
14077 }
14078
14079 leaf lsp-init-retry-timeout {
14080 type uint32 {
14081 range "10..600";
14082 }
14083 units "seconds";
14084 default "30";
14085 description "LSP initial retry timeout";
14086 }
14087
14088 leaf max-bypass-associations {
14089 type uint32 {
14090 range "100..131072";
14091 }
14092 default "1000";
14093 description "Maximum number of LSPs to be associated with a bypass tunnel";
14094 }
14095
14096 leaf mbb-prefer-current-hops {
14097 type boolean;
14098 default "false";
14099 description "Select preference to use the current hops for Make-Before-Break (MBB)";
14100 }
14101
14102 leaf p2mp-resignal-timer {
14103 type uint32 {
14104 range "60..10080";
14105 }
14106 units "minutes";
14107 description "Resignal timer for P2MP LSPs";
14108 }
14109
14110 leaf p2mp-s2l-fast-retry {
14111 type uint32 {
14112 range "1..10";
14113 }
14114 units "seconds";
14115 description "Fast retry timer for P2MP S2L paths";
14116 }
14117
14118 leaf p2p-active-path-fast-retry {
14119 type uint32 {
14120 range "1..10";
14121 }
14122 units "seconds";
14123 description "Fast retry timer for P2P active paths";
14124 }
14125
14126 leaf resignal-timer {
14127 type uint32 {
14128 range "30..10080";
14129 }
14130 units "minutes";
14131 description "Resignal timer for P2MP LSPs";
14132 }
14133
14134 leaf retry-on-igp-overload {
14135 type boolean;
14136 default "false";
14137 description "Tear down LSPs when IGP is in overload state";
14138 }
14139
14140 leaf secondary-fast-retry-timer {
14141 type uint32 {
14142 range "1..10";
14143 }
14144 units "seconds";
14145 description "Fast retry timer for secondary paths";
14146 }
14147
14148 leaf shortcut-local-ttl-propagate {
14149 type boolean;
14150 default "true";
14151 description "Propagate TTL over LSP shortcut for local packets";
14152 }
14153
14154 leaf shortcut-transit-ttl-propagate {
14155 type boolean;
14156 default "true";
14157 description "Propagate TTL over LSP shortcut for local packets for transit packets";
14158 }
14159
14160 leaf srlg-frr {
14161 type enumeration {
14162 enum "loose" { value 1; }
14163 enum "strict" { value 2; }
14164 }
14165 description "Use of Shared Risk Link Group (SRLG) constraint for FRR path computation";
14166 }
14167
14168 leaf static-lsp-fast-retry {
14169 type uint32 {
14170 range "1..30";
14171 }
14172 units "seconds";
14173 default "30";
14174 description "Fast retry timer for static LSPs";
14175 }
14176
14177 leaf user-srlg-db {
14178 type boolean;
14179 default "false";
14180 description "Enable/disable use of user SRLG database.";
14181 }
14182
14183 container auto-bandwidth-multipliers {
14184 description "Enter the auto-bandwidth-multipliers context";
14185
14186 leaf sample-multiplier {
14187 type uint32 {
14188 range "1..511";
14189 }
14190 default "1";
14191 description "Collection intervals in a sample interval";
14192 }
14193
14194 leaf adjust-multiplier {
14195 type uint32 {
14196 range "1..16383";
14197 }
14198 default "288";
14199 description "Collection intervals in a sample interval";
14200 }
14201
14202 } // container auto-bandwidth-multipliers
14203
14204 container entropy-label {
14205 description "Enter the entropy-label context";
14206
14207 leaf rsvp-te {
14208 type boolean;
14209 default "true";
14210 description "Apply entropy labels to RSVP-TE LSPs";
14211 }
14212
14213 leaf sr-te {
14214 type boolean;
14215 default "true";
14216 description "Apply entropy labels to SR-TE LSPs";
14217 }
14218
14219 } // container entropy-label
14220
14221 container pce-report {
14222 description "Enter the pce-report context";
14223
14224 leaf sr-te {
14225 type boolean;
14226 default "false";
14227 description "Allow PCE reporting for all TE LSPs of SR-TE type";
14228 }
14229
14230 leaf rsvp-te {
14231 type boolean;
14232 default "false";
14233 description "Allow PCE reporting for all TE LSPs of RSVP-TE type";
14234 }
14235
14236 } // container pce-report
14237
14238 container srlg-database {
14239 description "Enter the srlg-database context";
14240
14241 list router-id {
14242 key "router-address";
14243 description "Enter the router-id context";
14244
14245 leaf router-address {
14246 type union {
14247 type string {
14248 length "1..64";
14249 pattern "<.*>" {
14250 error-message "Config Groups Regex Pattern";
14251 }
14252 }
14253 type types-sros:ipv4-address;
14254 }
14255 description
14256 "Specifies a unique identifier of the router
14257 in the Autonomous System.";
14258 }
14259
14260 leaf admin-state {
14261 type types-sros:admin-state;
14262 default "disable";
14263 description "Administrative state of the interface";
14264 }
14265
14266 list interface {
14267 key "interface-address srlg-group";
14268 description "Enter the interface context";
14269
14270 leaf interface-address {
14271 type union {
14272 type string {
14273 length "1..64";
14274 pattern "<.*>" {
14275 error-message "Config Groups Regex Pattern";
14276 }
14277 }
14278 type types-sros:ipv4-address;
14279 }
14280 description "Indicates the IP address of the interface.";
14281 }
14282
14283 leaf srlg-group {
14284 type union {
14285 type string {
14286 length "1..64";
14287 pattern "<.*>" {
14288 error-message "Config Groups Regex Pattern";
14289 }
14290 }
14291 type types-sros:named-item;
14292 }
14293 description "SRLG group name";
14294 }
14295
14296 } // list interface
14297
14298 } // list router-id
14299
14300 } // container srlg-database
14301
14302 list interface {
14303 key "interface-name";
14304 description "Enter the interface context";
14305
14306 leaf interface-name {
14307 type union {
14308 type string {
14309 length "1..64";
14310 pattern "<.*>" {
14311 error-message "Config Groups Regex Pattern";
14312 }
14313 }
14314 type types-sros:interface-name;
14315 }
14316 description "Router interface name";
14317 }
14318
14319 leaf admin-state {
14320 type types-sros:admin-state;
14321 default "enable";
14322 description "Administrative state of MPLS";
14323 }
14324
14325 leaf te-metric {
14326 type uint32 {
14327 range "1..16777215";
14328 }
14329 description "TE metric for the interface";
14330 }
14331
14332 leaf-list admin-group {
14333 type types-sros:named-item;
14334 max-elements 32;
14335 description "Name of the admin group membership of the MPLS interface";
14336 }
14337
14338 list srlg-group {
14339 key "name";
14340 max-elements 64;
14341 description "Enter the srlg-group context";
14342
14343 leaf name {
14344 type union {
14345 type string {
14346 length "1..64";
14347 pattern "<.*>" {
14348 error-message "Config Groups Regex Pattern";
14349 }
14350 }
14351 type types-sros:named-item;
14352 }
14353 description "Shared Risk Link Group (SRLG) name";
14354 }
14355
14356 } // list srlg-group
14357
14358 list label-map {
14359 key "in-label";
14360 description "Enter the label-map context";
14361
14362 leaf in-label {
14363 type union {
14364 type string {
14365 length "1..64";
14366 pattern "<.*>" {
14367 error-message "Config Groups Regex Pattern";
14368 }
14369 }
14370 type types-sros:mpls-label;
14371 }
14372 description "Match the incoming MPLS label";
14373 }
14374
14375 leaf admin-state {
14376 type types-sros:admin-state;
14377 default "disable";
14378 description "Administrative state of the label map";
14379 }
14380
14381 choice label-map-choice {
14382 case pop {
14383
14384 leaf pop {
14385 type empty;
14386 sros-ext:immutable;
14387 description "Pop (remove) the incoming label and forward packet based on service header";
14388 }
14389
14390 }
14391 case swap {
14392
14393 container swap {
14394 presence "The swap action on the incoming label.";
14395 description "Enter the swap context";
14396
14397 leaf out-label {
14398 type union {
14399 type uint32 {
14400 range "16..1048575";
14401 }
14402 type enumeration {
14403 enum "implicit-null-label" { value 3; }
14404 }
14405 }
14406 mandatory true;
14407 description "Push specific label onto the top of the outgoing packet's label stack";
14408 }
14409
14410 leaf next-hop {
14411 type types-sros:ipv4-unicast-address;
14412 mandatory true;
14413 description "IP address for the next hop";
14414 }
14415
14416 } // container swap
14417
14418 }
14419 }
14420 } // list label-map
14421
14422 } // list interface
14423
14424 list class-forwarding-policy {
14425 key "policy-name";
14426 max-elements 15;
14427 description "Enter the class-forwarding-policy context";
14428
14429 leaf policy-name {
14430 type union {
14431 type string {
14432 length "1..64";
14433 pattern "<.*>" {
14434 error-message "Config Groups Regex Pattern";
14435 }
14436 }
14437 type types-sros:named-item;
14438 }
14439 description "Name of class forwarding policy";
14440 }
14441
14442 leaf default-set {
14443 type uint32 {
14444 range "1..6";
14445 }
14446 default "1";
14447 description "Default forwarding set ID";
14448 }
14449
14450 list fc {
14451 key "fc-name";
14452 description "Enter the fc context";
14453
14454 leaf fc-name {
14455 type union {
14456 type string {
14457 length "1..64";
14458 pattern "<.*>" {
14459 error-message "Config Groups Regex Pattern";
14460 }
14461 }
14462 type types-sros:fc-name;
14463 }
14464 description "Forwarding class name for LSP";
14465 }
14466
14467 leaf forwarding-set {
14468 type uint32 {
14469 range "1..6";
14470 }
14471 default "1";
14472 description "Forwarding set ID for forwarding classes";
14473 }
14474
14475 } // list fc
14476
14477 } // list class-forwarding-policy
14478
14479 list path {
14480 key "path-name";
14481 max-elements 65535;
14482 description "Enter the path context";
14483
14484 leaf path-name {
14485 type union {
14486 type string {
14487 length "1..64";
14488 pattern "<.*>" {
14489 error-message "Config Groups Regex Pattern";
14490 }
14491 }
14492 type types-sros:named-item-64;
14493 }
14494 description "Name for this LSP path";
14495 }
14496
14497 leaf admin-state {
14498 type types-sros:admin-state;
14499 default "disable";
14500 description "Administrative state of this tunnel";
14501 }
14502
14503 list hop {
14504 key "hop-index";
14505 max-elements 255;
14506 description "Enter the hop context";
14507
14508 leaf hop-index {
14509 type union {
14510 type string {
14511 length "1..64";
14512 pattern "<.*>" {
14513 error-message "Config Groups Regex Pattern";
14514 }
14515 }
14516 type int32 {
14517 range "1..1024";
14518 }
14519 }
14520 description "Index to identify a particular hop";
14521 }
14522
14523 leaf ip-address {
14524 type types-sros:ip-address;
14525 sros-ext:immutable;
14526 mandatory true;
14527 description "IPv4 address of this hop";
14528 }
14529
14530 leaf type {
14531 type enumeration {
14532 enum "strict" { value 1; }
14533 enum "loose" { value 2; }
14534 }
14535 mandatory true;
14536 description "Tunnel hop type";
14537 }
14538
14539 } // list hop
14540
14541 } // list path
14542
14543 list lsp-template {
14544 key "template-name";
14545 max-elements 4096;
14546 description "Enter the lsp-template context";
14547
14548 leaf template-name {
14549 type union {
14550 type string {
14551 length "1..64";
14552 pattern "<.*>" {
14553 error-message "Config Groups Regex Pattern";
14554 }
14555 }
14556 type types-sros:named-item;
14557 }
14558 description "Name of the LSP template to automatically create and signal multiple LSP instances";
14559 }
14560
14561 leaf type {
14562 type enumeration {
14563 enum "p2mp-rsvp" { value 1; }
14564 enum "p2p-rsvp-one-hop" { value 2; }
14565 enum "p2p-rsvp-mesh" { value 3; }
14566 enum "p2p-sr-te-one-hop" { value 4; }
14567 enum "p2p-sr-te-mesh" { value 5; }
14568 enum "p2p-sr-te-pce-init" { value 6; }
14569 }
14570 sros-ext:immutable;
14571 mandatory true;
14572 description "Configure type of the LSP template.";
14573 }
14574
14575 leaf admin-state {
14576 type types-sros:admin-state;
14577 default "disable";
14578 description "Administrative state of LSP template";
14579 }
14580
14581 leaf backup-class-type {
14582 type types-mpls:class-type;
14583 default "0";
14584 description "Configure backup-class-type for this LSP template.";
14585 }
14586
14587 leaf bandwidth {
14588 type uint32 {
14589 range "0..100000";
14590 }
14591 units "megabps";
14592 default "0";
14593 description "Specify bandwidth in mbps for LSP instances created using this LSP template.";
14594 }
14595
14596 leaf bgp-shortcut {
14597 type boolean;
14598 default "true";
14599 description "Enable/disable use of RSVP LSP for IPv4 BGP routes.";
14600 }
14601
14602 leaf bgp-transport-tunnel {
14603 type boolean;
14604 default "true";
14605 description "Include/exclude use of RSVP LSP as transport LSP for labeled IPv4 BGP routes.";
14606 }
14607
14608 leaf default-path {
14609 type types-sros:named-item-64;
14610 sros-ext:immutable;
14611 description
14612 "Specify default path to be used for signaling LSP instances created using this
14613 LSP template.";
14614 }
14615
14616 leaf from {
14617 type types-sros:ip-address;
14618 description "IP address of the ingress router for the LSP template.";
14619 }
14620
14621 leaf hop-limit {
14622 type uint16 {
14623 range "2..255";
14624 }
14625 default "255";
14626 description
14627 "Configure maximum number of hops that can be traversed by LSP instances
14628 created using this LSP template.";
14629 }
14630
14631 leaf ldp-over-rsvp {
14632 type boolean;
14633 default "true";
14634 description "Configure if this LSP will be included in LDP over RSVP.";
14635 }
14636
14637 leaf metric {
14638 type uint32 {
14639 range "0..16777215";
14640 }
14641 default "0";
14642 description "Configure LSP template metric.";
14643 }
14644
14645 leaf vprn-auto-bind {
14646 type boolean;
14647 default "true";
14648 description "Configure if this LSP will be included in auto-bind for VPRN services.";
14649 }
14650
14651 leaf pce-report {
14652 type types-sros:bool-with-inherit;
14653 description "Specifies whether to override the global configuration of reporting to PCE.";
14654 }
14655
14656 leaf entropy-label {
14657 type types-sros:bool-with-inherit;
14658 description "Configure Entropy Label for LSP Template.";
14659 }
14660
14661 leaf adaptive {
14662 type boolean;
14663 default "true";
14664 description "Enable/disable make-before-break functionality.";
14665 }
14666
14667 leaf adspec {
14668 type boolean;
14669 default "false";
14670 description "Enable/disable inclusion of ADSPEC objects in RSVP messages.";
14671 }
14672
14673 leaf class-type {
14674 type types-mpls:class-type;
14675 default "0";
14676 description "Configure class-type.";
14677 }
14678
14679 leaf least-fill {
14680 type boolean;
14681 default "false";
14682 description "Configure use of least-fill path selection method.";
14683 }
14684
14685 leaf load-balancing-weight {
14686 type uint32 {
14687 range "1..max";
14688 }
14689 description "Configure load balancing weight.";
14690 }
14691
14692 leaf main-ct-retry-limit {
14693 type uint32 {
14694 range "1..10000";
14695 }
14696 description "Max number of attempts before switching to backup class type.";
14697 }
14698
14699 leaf propagate-admin-group {
14700 type boolean;
14701 default "false";
14702 description "Enable/disable admin groups via session attribute object.";
14703 }
14704
14705 leaf retry-limit {
14706 type uint32 {
14707 range "1..10000";
14708 }
14709 description "Max number of attempts made to reestablish the LSP after it has failed.";
14710 }
14711
14712 leaf retry-timer {
14713 type uint32 {
14714 range "1..600";
14715 }
14716 units "seconds";
14717 default "30";
14718 description "Time between attempts to reestablish the LSP after it has failed.";
14719 }
14720
14721 leaf record {
14722 type boolean;
14723 default "true";
14724 description "Enable/disable recording of all hops.";
14725 }
14726
14727 leaf record-label {
14728 type boolean;
14729 default "true";
14730 description "Enable/disable recording of labels at each node or instance.";
14731 }
14732
14733 leaf template-id {
14734 type union {
14735 type uint32 {
14736 range "1..max";
14737 }
14738 type enumeration {
14739 enum "default" { value 0; }
14740 }
14741 }
14742 sros-ext:immutable;
14743 description "The value indicates lsp template-id. Configure this if LSP Template is of type p2p-sr-te-pce-init.";
14744 }
14745
14746 leaf-list include-admin-group {
14747 type types-sros:named-item;
14748 max-elements 32;
14749 description "Admin group name included when LSP is set up";
14750 }
14751
14752 leaf-list exclude-admin-group {
14753 type types-sros:named-item;
14754 max-elements 32;
14755 description "Admin group name excluded when LSP is set up";
14756 }
14757
14758 container class-forwarding {
14759 presence "Configure class based forwarding.";
14760 description "Enter the class-forwarding context";
14761
14762 choice cbf-choice {
14763 default "default-lsp-and-fc";
14764 case default-lsp-and-fc {
14765
14766 leaf default-lsp {
14767 type boolean;
14768 default "false";
14769 description "Use the default LSP configuration for specified LSP or LSP template";
14770 }
14771
14772 leaf-list fc {
14773 type enumeration {
14774 enum "be" { value 0; }
14775 enum "l2" { value 1; }
14776 enum "af" { value 2; }
14777 enum "l1" { value 3; }
14778 enum "h2" { value 4; }
14779 enum "ef" { value 5; }
14780 enum "h1" { value 6; }
14781 enum "nc" { value 7; }
14782 }
14783 max-elements 8;
14784 description "One or more forwarding classes for LSP instances";
14785 }
14786
14787 }
14788 case forwarding-set {
14789
14790 container forwarding-set {
14791 description "Enter the forwarding-set context";
14792
14793 leaf policy {
14794 type types-sros:named-item;
14795 description "Name for the class based forwarding policy for LSP instances";
14796 }
14797
14798 leaf set {
14799 type uint32 {
14800 range "1..6";
14801 }
14802 description "Forwarding set ID";
14803 }
14804
14805 } // container forwarding-set
14806
14807 }
14808 }
14809 } // container class-forwarding
14810
14811 container cspf {
14812 description "Enter the cspf context";
14813
14814 leaf admin-state {
14815 type types-sros:admin-state;
14816 default "disable";
14817 description "Administrative state of the CSPF support for LSP";
14818 }
14819
14820 leaf use-te-metric {
14821 type boolean;
14822 default "false";
14823 description "TE metric for the LSP path computation by CSPF";
14824 }
14825
14826 } // container cspf
14827
14828 container priority {
14829 description "Enter the priority context";
14830
14831 leaf setup-priority {
14832 type types-mpls:priority;
14833 default "7";
14834 description "Setup priority when insufficient bandwidth is available to set up LSP";
14835 }
14836
14837 leaf hold-priority {
14838 type types-mpls:priority;
14839 default "0";
14840 description "Hold priority when insufficient bandwidth is available to set up LSP";
14841 }
14842
14843 } // container priority
14844
14845 container fast-reroute {
14846 presence "Enable/Disable fast reroute for LSP Template instances.";
14847 description "Enter the fast-reroute context";
14848
14849 leaf hop-limit {
14850 type uint32 {
14851 range "0..255";
14852 }
14853 default "16";
14854 description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path";
14855 }
14856
14857 leaf propagate-admin-group {
14858 type boolean;
14859 default "false";
14860 description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress";
14861 }
14862
14863 leaf frr-method {
14864 type types-mpls:frr-method-type;
14865 default "facility";
14866 description "Fast Reroute method for the LSPs that are dynamically created using this LSP template";
14867 }
14868
14869 leaf node-protect {
14870 type boolean;
14871 default "false";
14872 description "Enable node and link protection for the specified LSP";
14873 }
14874
14875 } // container fast-reroute
14876
14877 container igp-shortcut {
14878 description "Enter the igp-shortcut context";
14879
14880 leaf admin-state {
14881 type types-sros:admin-state;
14882 default "enable";
14883 description "Administrative state of the RSVP LSP to be used as a shortcut while resolving IGP routes";
14884 }
14885
14886 choice igp-choice {
14887 case lfa-type {
14888
14889 leaf lfa-type {
14890 type enumeration {
14891 enum "lfa-protect" { value 1; }
14892 enum "lfa-only" { value 2; }
14893 }
14894 description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency";
14895 }
14896
14897 }
14898 case relative-metric {
14899
14900 leaf relative-metric {
14901 type int32 {
14902 range "-10..10";
14903 }
14904 description "Shortest IGP cost between the endpoints of the LSP plus the configured offset";
14905 }
14906
14907 }
14908 }
14909 } // container igp-shortcut
14910
14911 container max-sr-labels {
14912 description "Enter the max-sr-labels context";
14913
14914 leaf label-stack-size {
14915 type uint32 {
14916 range "1..11";
14917 }
14918 default "6";
14919 description "Size for the maximum segment routing label stack";
14920 }
14921
14922 leaf additional-frr-labels {
14923 type uint32 {
14924 range "0..4";
14925 }
14926 default "1";
14927 description "Maximum number of additional overhead labels";
14928 }
14929
14930 } // container max-sr-labels
14931
14932 list admin-tag {
14933 key "name";
14934 max-elements 4;
14935 description "Enter the admin-tag context";
14936
14937 leaf name {
14938 type union {
14939 type string {
14940 length "1..64";
14941 pattern "<.*>" {
14942 error-message "Config Groups Regex Pattern";
14943 }
14944 }
14945 type string {
14946 length "1..32";
14947 }
14948 }
14949 description "Name of the admin tags";
14950 }
14951
14952 } // list admin-tag
14953
14954 container auto-bandwidth {
14955 presence "Enable/disable auto bandwidth for LSP template.";
14956 description "Enter the auto-bandwidth context";
14957
14958 leaf max-bandwidth {
14959 type uint32 {
14960 range "0..100000";
14961 }
14962 units "megabps";
14963 default "100000";
14964 description "Maximum bandwidth of auto-bandwidth to request for the LSP";
14965 }
14966
14967 leaf min-bandwidth {
14968 type uint32 {
14969 range "0..100000";
14970 }
14971 units "megabps";
14972 default "0";
14973 description "Minimum bandwidth of auto-bandwidth to request for the LSP";
14974 }
14975
14976 leaf monitor-bandwidth {
14977 type boolean;
14978 default "false";
14979 description "Collect and display auto-bandwidth measurements for the LSP";
14980 }
14981
14982 list fc {
14983 key "fc-name";
14984 max-elements 8;
14985 description "Enter the fc context";
14986
14987 leaf fc-name {
14988 type union {
14989 type string {
14990 length "1..64";
14991 pattern "<.*>" {
14992 error-message "Config Groups Regex Pattern";
14993 }
14994 }
14995 type types-sros:fc-name;
14996 }
14997 description "Forwarding class name for LSP";
14998 }
14999
15000 leaf sampling-weight {
15001 type types-sros:percent;
15002 default "100";
15003 description "Forwarding class weight for LSP";
15004 }
15005
15006 } // list fc
15007
15008 container adjust-down {
15009 description "Enter the adjust-down context";
15010
15011 leaf percent {
15012 type types-sros:percent;
15013 default "5";
15014 description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate";
15015 }
15016
15017 leaf bw {
15018 type uint32 {
15019 range "0..100000";
15020 }
15021 units "megabps";
15022 default "0";
15023 description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate";
15024 }
15025
15026 } // container adjust-down
15027
15028 container adjust-up {
15029 description "Enter the adjust-up context";
15030
15031 leaf percent {
15032 type types-sros:percent;
15033 default "5";
15034 description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate";
15035 }
15036
15037 leaf bw {
15038 type uint32 {
15039 range "0..100000";
15040 }
15041 units "megabps";
15042 default "0";
15043 description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate";
15044 }
15045
15046 } // container adjust-up
15047
15048 container multipliers {
15049 description "Enter the multipliers context";
15050
15051 leaf sample-multiplier {
15052 type uint32 {
15053 range "1..511";
15054 }
15055 description "Multiplier for collection intervals in a sample interval";
15056 }
15057
15058 leaf adjust-multiplier {
15059 type uint32 {
15060 range "1..16383";
15061 }
15062 description "Number of collection intervals in the adjust interval";
15063 }
15064
15065 } // container multipliers
15066
15067 container overflow-limit {
15068 presence "Configure overflow limit for auto-bandwidth for LSP.";
15069 description "Enter the overflow-limit context";
15070
15071 leaf threshold {
15072 type types-sros:percent;
15073 default "0";
15074 description "Minimum difference in percent between the LSP bandwidth and the sampled data rate";
15075 }
15076
15077 leaf bw {
15078 type uint32 {
15079 range "1..100000";
15080 }
15081 units "megabps";
15082 description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate";
15083 }
15084
15085 leaf number {
15086 type uint32 {
15087 range "1..10";
15088 }
15089 mandatory true;
15090 description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt";
15091 }
15092
15093 } // container overflow-limit
15094
15095 container underflow-limit {
15096 presence "Configure underflow limit for auto-bandwidth for LSP.";
15097 description "Enter the underflow-limit context";
15098
15099 leaf threshold {
15100 type types-sros:percent;
15101 default "0";
15102 description "Minimum difference in percent between the LSP bandwidth and the sampled data rate";
15103 }
15104
15105 leaf bw {
15106 type uint32 {
15107 range "1..100000";
15108 }
15109 units "megabps";
15110 description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate";
15111 }
15112
15113 leaf number {
15114 type uint32 {
15115 range "1..10";
15116 }
15117 mandatory true;
15118 description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt";
15119 }
15120
15121 } // container underflow-limit
15122
15123 } // container auto-bandwidth
15124
15125 container egress-statistics {
15126 presence "Configures LSP template Egress statistics.";
15127 description "Enter the egress-statistics context";
15128
15129 leaf collect-stats {
15130 type boolean;
15131 default "false";
15132 description "Collect statistics";
15133 }
15134
15135 leaf accounting-policy {
15136 type types-log:log-policy-id;
15137 description "Accounting policy ID";
15138 }
15139
15140 } // container egress-statistics
15141
15142 container bfd {
15143 description "Enter the bfd context";
15144
15145 leaf bfd-liveness {
15146 type boolean;
15147 default "false";
15148 description "Enable BFD";
15149 }
15150
15151 leaf bfd-template {
15152 type types-sros:named-item;
15153 description "BFD template";
15154 }
15155
15156 leaf lsp-ping-interval {
15157 type union {
15158 type uint32 {
15159 range "60..300";
15160 }
15161 type enumeration {
15162 enum "none" { value 0; }
15163 }
15164 }
15165 units "seconds";
15166 default "60";
15167 description "Interval for periodic LSP ping for BFD bootstrapping";
15168 }
15169
15170 leaf failure-action {
15171 type enumeration {
15172 enum "none" { value 0; }
15173 enum "down" { value 1; }
15174 }
15175 default "none";
15176 description "Indicates the action to be taken when LSP BFD session fails";
15177 }
15178
15179 } // container bfd
15180
15181 } // list lsp-template
15182
15183 list lsp {
15184 key "lsp-name";
15185 description "Enter the lsp context";
15186
15187 leaf lsp-name {
15188 type union {
15189 type string {
15190 length "1..64";
15191 pattern "<.*>" {
15192 error-message "Config Groups Regex Pattern";
15193 }
15194 }
15195 type types-sros:named-item-64;
15196 }
15197 description "Labeled Switch path name";
15198 }
15199
15200 leaf type {
15201 type enumeration {
15202 enum "p2p-rsvp" { value 2; }
15203 enum "p2p-static-mpls" { value 3; }
15204 enum "p2p-rsvp-bypass" { value 4; }
15205 enum "p2mp-rsvp" { value 5; }
15206 enum "p2mp-rsvp-auto" { value 6; }
15207 enum "p2p-rsvp-mesh" { value 8; }
15208 enum "p2p-rsvp-one-hop" { value 9; }
15209 enum "p2p-sr-te" { value 10; }
15210 enum "p2p-sr-te-mesh" { value 11; }
15211 enum "p2p-sr-te-one-hop" { value 12; }
15212 enum "p2p-sr-te-pce-init" { value 13; }
15213 }
15214 sros-ext:immutable;
15215 mandatory true;
15216 description "LSP for bypass protection, point to multipoint, segment routing or MPLS-TP static LSP";
15217 }
15218
15219 leaf admin-state {
15220 type types-sros:admin-state;
15221 default "disable";
15222 description "Administrative state of the LSP";
15223 }
15224
15225 leaf exclude-node {
15226 type types-sros:ip-address;
15227 description "Exclude Routers object to be included in the bypass path message";
15228 }
15229
15230 leaf from {
15231 type types-sros:ip-address;
15232 description "Source IP address of this LSP";
15233 }
15234
15235 leaf to {
15236 type types-sros:ip-address;
15237 description "Destination IP address or the egress router for the LSP";
15238 }
15239
15240 leaf hop-limit {
15241 type uint32 {
15242 range "2..255";
15243 }
15244 default "255";
15245 description "Maximum number of hops that an LSP can traverse including ingress and egress routers";
15246 }
15247
15248 leaf p2mp-id {
15249 type uint32 {
15250 range "1..65535";
15251 }
15252 description "Unique identifier as Point-to-Multipoint (P2MP) identifier";
15253 }
15254
15255 leaf pce-computation {
15256 type boolean;
15257 default "false";
15258 description "LSP path computation request sent to local CSPF or to PCE";
15259 }
15260
15261 leaf pce-control {
15262 type boolean;
15263 default "false";
15264 description "Control of path (delegation) to Path Computation Engine (PCE) to be used";
15265 }
15266
15267 leaf revert-timer {
15268 type uint32 {
15269 range "1..4320";
15270 }
15271 units "minutes";
15272 description "Revert timer for this LSP";
15273 }
15274
15275 leaf rsvp-resv-style {
15276 type enumeration {
15277 enum "se" { value 1; }
15278 enum "ff" { value 2; }
15279 }
15280 default "se";
15281 description "Reservation style for RSVP";
15282 }
15283
15284 leaf bgp-shortcut {
15285 type boolean;
15286 default "true";
15287 description "Include LSP for BGP routes";
15288 }
15289
15290 leaf bgp-transport-tunnel {
15291 type boolean;
15292 default "true";
15293 description "Include LSP as transport LSP for labeled BGP routes";
15294 }
15295
15296 leaf ldp-over-rsvp {
15297 type boolean;
15298 default "true";
15299 description "Include this LSP in LDP over RSVP";
15300 }
15301
15302 leaf metric {
15303 type uint32 {
15304 range "0..16777215";
15305 }
15306 default "0";
15307 description "LSP metric that forces to a constant value";
15308 }
15309
15310 leaf vprn-auto-bind {
15311 type boolean;
15312 default "true";
15313 description "Include this LSP in auto-bind for VPRN services";
15314 }
15315
15316 leaf pce-report {
15317 type types-sros:bool-with-inherit;
15318 description "Global configuration of reporting to PCE to override";
15319 }
15320
15321 leaf entropy-label {
15322 type types-sros:bool-with-inherit;
15323 description "Entropy label";
15324 }
15325
15326 leaf adaptive {
15327 type boolean;
15328 default "true";
15329 description "Enable/disable make-before-break functionality.";
15330 }
15331
15332 leaf adspec {
15333 type boolean;
15334 default "false";
15335 description "Enable/disable inclusion of ADSPEC object in RSVP messages.";
15336 }
15337
15338 leaf class-type {
15339 type types-mpls:class-type;
15340 default "0";
15341 description "Configure class type.";
15342 }
15343
15344 leaf least-fill {
15345 type boolean;
15346 default "false";
15347 description "Configure use of least-fill path selection method.";
15348 }
15349
15350 leaf load-balancing-weight {
15351 type uint32 {
15352 range "1..max";
15353 }
15354 description "Configure load balancing weight.";
15355 }
15356
15357 leaf main-ct-retry-limit {
15358 type uint32 {
15359 range "1..10000";
15360 }
15361 description "Max number of attempts before switching to backup class type.";
15362 }
15363
15364 leaf propagate-admin-group {
15365 type boolean;
15366 default "false";
15367 description "Enable/disable admin groups via session attribute object.";
15368 }
15369
15370 leaf retry-limit {
15371 type uint32 {
15372 range "1..10000";
15373 }
15374 description "Max number of attempts made to reestablish the LSP after it has failed.";
15375 }
15376
15377 leaf retry-timer {
15378 type uint32 {
15379 range "1..600";
15380 }
15381 units "seconds";
15382 default "30";
15383 description "Time between attempts to reestablish the LSP after it has failed.";
15384 }
15385
15386 leaf-list include-admin-group {
15387 type types-sros:named-item;
15388 max-elements 32;
15389 description "Admin group name included when LSP is set up";
15390 }
15391
15392 leaf-list exclude-admin-group {
15393 type types-sros:named-item;
15394 max-elements 32;
15395 description "Name of admin group excluded when LSP is set up";
15396 }
15397
15398 container class-forwarding {
15399 presence "Configure class based forwarding.";
15400 description "Enter the class-forwarding context";
15401
15402 choice cbf-choice {
15403 default "default-lsp-and-fc";
15404 case default-lsp-and-fc {
15405
15406 leaf default-lsp {
15407 type boolean;
15408 default "false";
15409 description "Use the default LSP configuration for specified LSP or LSP template";
15410 }
15411
15412 leaf-list fc {
15413 type enumeration {
15414 enum "be" { value 0; }
15415 enum "l2" { value 1; }
15416 enum "af" { value 2; }
15417 enum "l1" { value 3; }
15418 enum "h2" { value 4; }
15419 enum "ef" { value 5; }
15420 enum "h1" { value 6; }
15421 enum "nc" { value 7; }
15422 }
15423 max-elements 8;
15424 description "One or more forwarding classes for LSP instances";
15425 }
15426
15427 }
15428 case forwarding-set {
15429
15430 container forwarding-set {
15431 description "Enter the forwarding-set context";
15432
15433 leaf policy {
15434 type types-sros:named-item;
15435 description "Name for the class based forwarding policy for LSP instances";
15436 }
15437
15438 leaf set {
15439 type uint32 {
15440 range "1..6";
15441 }
15442 description "Forwarding set ID";
15443 }
15444
15445 } // container forwarding-set
15446
15447 }
15448 }
15449 } // container class-forwarding
15450
15451 container cspf {
15452 presence "Enable/disable CSPF support";
15453 description "Enter the cspf context";
15454
15455 leaf use-te-metric {
15456 type boolean;
15457 default "false";
15458 description "TE metric to the LSP path computation by CSPF";
15459 }
15460
15461 } // container cspf
15462
15463 container igp-shortcut {
15464 description "Enter the igp-shortcut context";
15465
15466 leaf admin-state {
15467 type types-sros:admin-state;
15468 default "enable";
15469 description "Administrative state of the LSP to be used as a shortcut while resolving IGP routes";
15470 }
15471
15472 choice igp-choice {
15473 case lfa-type {
15474
15475 leaf lfa-type {
15476 type enumeration {
15477 enum "lfa-protect" { value 1; }
15478 enum "lfa-only" { value 2; }
15479 }
15480 description "Specific RSVP LSP by IS-IS and OSPF routing protocols to assign as shortcut or as forwarding adjacency";
15481 }
15482
15483 }
15484 case relative-metric {
15485
15486 leaf relative-metric {
15487 type int32 {
15488 range "-10..10";
15489 }
15490 description "Shortest IGP cost between the endpoints of the LSP plus the configured offset";
15491 }
15492
15493 }
15494 }
15495 } // container igp-shortcut
15496
15497 container fast-reroute {
15498 presence "Enable/Disable the fast reroute method.";
15499 description "Enter the fast-reroute context";
15500
15501 leaf hop-limit {
15502 type uint32 {
15503 range "0..255";
15504 }
15505 default "16";
15506 description "Total number of hops a detour or backup LSP can take before merging back onto the main LSP path";
15507 }
15508
15509 leaf propagate-admin-group {
15510 type boolean;
15511 default "false";
15512 description "Enable signaling of the primary LSP path admin-group constraints in the FRR object at ingress";
15513 }
15514
15515 leaf frr-method {
15516 type types-mpls:frr-method-type;
15517 default "one-to-one";
15518 description "Fast Reroute method";
15519 }
15520
15521 leaf node-protect {
15522 type boolean;
15523 default "true";
15524 description "Enable node and link protection for the specified LSP";
15525 }
15526
15527 } // container fast-reroute
15528
15529 container max-sr-labels {
15530 description "Enter the max-sr-labels context";
15531
15532 leaf label-stack-size {
15533 type uint32 {
15534 range "1..11";
15535 }
15536 default "6";
15537 description "Maximum Label Stack size";
15538 }
15539
15540 leaf additional-frr-labels {
15541 type uint32 {
15542 range "0..4";
15543 }
15544 default "1";
15545 description "Value for the maximum additional overhead labels";
15546 }
15547
15548 } // container max-sr-labels
15549
15550 list admin-tag {
15551 key "name";
15552 max-elements 4;
15553 description "Enter the admin-tag context";
15554
15555 leaf name {
15556 type union {
15557 type string {
15558 length "1..64";
15559 pattern "<.*>" {
15560 error-message "Config Groups Regex Pattern";
15561 }
15562 }
15563 type string {
15564 length "1..32";
15565 }
15566 }
15567 description "Name of the admin tags";
15568 }
15569
15570 } // list admin-tag
15571
15572 container auto-bandwidth {
15573 presence "Enable/disable auto bandwidth for LSP.";
15574 description "Enter the auto-bandwidth context";
15575
15576 leaf max-bandwidth {
15577 type uint32 {
15578 range "0..100000";
15579 }
15580 units "megabps";
15581 default "100000";
15582 description "Maximum bandwidth of auto-bandwidth to request for the LSP";
15583 }
15584
15585 leaf min-bandwidth {
15586 type uint32 {
15587 range "0..100000";
15588 }
15589 units "megabps";
15590 default "0";
15591 description "Minimum bandwidth of auto-bandwidth to request for the LSP";
15592 }
15593
15594 leaf monitor-bandwidth {
15595 type boolean;
15596 default "false";
15597 description "Collect and display auto-bandwidth measurements for the LSP";
15598 }
15599
15600 list fc {
15601 key "fc-name";
15602 max-elements 8;
15603 description "Enter the fc context";
15604
15605 leaf fc-name {
15606 type union {
15607 type string {
15608 length "1..64";
15609 pattern "<.*>" {
15610 error-message "Config Groups Regex Pattern";
15611 }
15612 }
15613 type types-sros:fc-name;
15614 }
15615 description "Forwarding class name for LSP";
15616 }
15617
15618 leaf sampling-weight {
15619 type types-sros:percent;
15620 default "100";
15621 description "Forwarding class weight for LSP";
15622 }
15623
15624 } // list fc
15625
15626 container adjust-down {
15627 description "Enter the adjust-down context";
15628
15629 leaf percent {
15630 type types-sros:percent;
15631 default "5";
15632 description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate";
15633 }
15634
15635 leaf bw {
15636 type uint32 {
15637 range "0..100000";
15638 }
15639 units "megabps";
15640 default "0";
15641 description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate";
15642 }
15643
15644 } // container adjust-down
15645
15646 container adjust-up {
15647 description "Enter the adjust-up context";
15648
15649 leaf percent {
15650 type types-sros:percent;
15651 default "5";
15652 description "Minimum difference in percent between LSP bandwidth reservation and the maximum average data rate";
15653 }
15654
15655 leaf bw {
15656 type uint32 {
15657 range "0..100000";
15658 }
15659 units "megabps";
15660 default "0";
15661 description "Minimum difference in absolute bandwidth between LSP bandwidth reservation and max average data rate";
15662 }
15663
15664 } // container adjust-up
15665
15666 container multipliers {
15667 description "Enter the multipliers context";
15668
15669 leaf sample-multiplier {
15670 type uint32 {
15671 range "1..511";
15672 }
15673 description "Multiplier for collection intervals in a sample interval";
15674 }
15675
15676 leaf adjust-multiplier {
15677 type uint32 {
15678 range "1..16383";
15679 }
15680 description "Number of collection intervals in the adjust interval";
15681 }
15682
15683 } // container multipliers
15684
15685 container overflow-limit {
15686 presence "Configure overflow limit for auto-bandwidth for LSP.";
15687 description "Enter the overflow-limit context";
15688
15689 leaf threshold {
15690 type types-sros:percent;
15691 default "0";
15692 description "Minimum difference in percent between the LSP bandwidth and the sampled data rate";
15693 }
15694
15695 leaf bw {
15696 type uint32 {
15697 range "1..100000";
15698 }
15699 units "megabps";
15700 description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate";
15701 }
15702
15703 leaf number {
15704 type uint32 {
15705 range "1..10";
15706 }
15707 mandatory true;
15708 description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt";
15709 }
15710
15711 } // container overflow-limit
15712
15713 container underflow-limit {
15714 presence "Configure underflow limit for auto-bandwidth for LSP.";
15715 description "Enter the underflow-limit context";
15716
15717 leaf threshold {
15718 type types-sros:percent;
15719 default "0";
15720 description "Minimum difference in percent between the LSP bandwidth and the sampled data rate";
15721 }
15722
15723 leaf bw {
15724 type uint32 {
15725 range "1..100000";
15726 }
15727 units "megabps";
15728 description "Minimum difference in absolute bandwidth between the LSP bandwidth and the sampled data rate";
15729 }
15730
15731 leaf number {
15732 type uint32 {
15733 range "1..10";
15734 }
15735 mandatory true;
15736 description "Number of overflow samples to trigger an overflow auto-bandwidth adjustment attempt";
15737 }
15738
15739 } // container underflow-limit
15740
15741 container use-last-adj-bw {
15742 presence "Enable/disable use of last adjusted bandwidth for LSP.";
15743 description "Enable/disable use of last adjusted bandwidth for LSP.";
15744
15745 leaf secondary-retry-limit {
15746 type types-mpls:retry-limit;
15747 default "5";
15748 description
15749 "Specify the max number of retry attempts that will be made
15750 to signal the secondary path with the last adjusted bandwidth.";
15751 }
15752
15753 } // container use-last-adj-bw
15754
15755 } // container auto-bandwidth
15756
15757 container egress-statistics {
15758 presence "Enable/disable LSP egress statistics.";
15759 description "Enter the egress-statistics context";
15760
15761 leaf collect-stats {
15762 type boolean;
15763 default "false";
15764 description "Collect statistics";
15765 }
15766
15767 leaf accounting-policy {
15768 type types-log:log-policy-id;
15769 description "Accounting policy ID";
15770 }
15771
15772 leaf admin-state {
15773 type types-sros:admin-state;
15774 default "disable";
15775 description "Administrative state of ingress statistics for LSP";
15776 }
15777
15778 } // container egress-statistics
15779
15780 container ingress-statistics {
15781 presence "Enable/disable LSP ingress statistics.";
15782 description "Enter the ingress-statistics context";
15783
15784 leaf collect-stats {
15785 type boolean;
15786 default "false";
15787 description "Collect statistics";
15788 }
15789
15790 leaf accounting-policy {
15791 type types-log:log-policy-id;
15792 description "Accounting policy ID";
15793 }
15794
15795 leaf admin-state {
15796 type types-sros:admin-state;
15797 default "disable";
15798 description "Administrative state of ingress statistics for LSP";
15799 }
15800
15801 } // container ingress-statistics
15802
15803 container bfd {
15804 description "Enter the bfd context";
15805
15806 leaf bfd-liveness {
15807 type boolean;
15808 default "false";
15809 description "Enable BFD";
15810 }
15811
15812 leaf bfd-template {
15813 type types-sros:named-item;
15814 description "BFD template";
15815 }
15816
15817 leaf lsp-ping-interval {
15818 type union {
15819 type uint32 {
15820 range "60..300";
15821 }
15822 type enumeration {
15823 enum "none" { value 0; }
15824 }
15825 }
15826 units "seconds";
15827 default "60";
15828 description "Interval for periodic LSP ping for BFD bootstrapping";
15829 }
15830
15831 leaf failure-action {
15832 type enumeration {
15833 enum "none" { value 0; }
15834 enum "down" { value 1; }
15835 enum "failover" { value 2; }
15836 }
15837 default "none";
15838 description "Perform action when LSP BFD session fails";
15839 }
15840
15841 } // container bfd
15842
15843 list path-profile {
15844 key "profile-id";
15845 max-elements 5;
15846 description "Enter the path-profile context";
15847
15848 leaf profile-id {
15849 type union {
15850 type string {
15851 length "1..64";
15852 pattern "<.*>" {
15853 error-message "Config Groups Regex Pattern";
15854 }
15855 }
15856 type uint32 {
15857 range "1..max";
15858 }
15859 }
15860 description "Profile ID for the specified LSP";
15861 }
15862
15863 leaf path-group {
15864 type uint32;
15865 default "0";
15866 description "Profile ID for the specified LSP";
15867 }
15868
15869 } // list path-profile
15870
15871 list primary {
15872 key "path-name";
15873 max-elements 1;
15874 description "Enter the primary context";
15875
15876 leaf path-name {
15877 type union {
15878 type string {
15879 length "1..64";
15880 pattern "<.*>" {
15881 error-message "Config Groups Regex Pattern";
15882 }
15883 }
15884 type types-sros:named-item-64;
15885 }
15886 description "Path name";
15887 }
15888
15889 leaf admin-state {
15890 type types-sros:admin-state;
15891 default "enable";
15892 description "Administrative state of LSP path";
15893 }
15894
15895 leaf adaptive {
15896 type boolean;
15897 description "Enable/disable make-before-break functionality.";
15898 }
15899
15900 leaf bandwidth {
15901 type uint32 {
15902 range "0..100000";
15903 }
15904 units "megabps";
15905 default "0";
15906 description "Amount of bandwidth to be reserved.";
15907 }
15908
15909 leaf hop-limit {
15910 type uint32 {
15911 range "2..255";
15912 }
15913 description
15914 "The maximum number of hops that an LSP will traverse
15915 including the ingress and egress LSRs.";
15916 }
15917
15918 leaf record {
15919 type boolean;
15920 default "true";
15921 description "Enable/disable recording of all hops.";
15922 }
15923
15924 leaf record-label {
15925 type boolean;
15926 default "true";
15927 description "Enable/disable recording of labels at each node or instance.";
15928 }
15929
15930 leaf class-type {
15931 type types-mpls:class-type;
15932 description "Class-type";
15933 }
15934
15935 leaf backup-class-type {
15936 type types-mpls:class-type;
15937 description "Class-type for the LSP or LSP path";
15938 }
15939
15940 container priority {
15941 description "Enter the priority context";
15942
15943 leaf setup-priority {
15944 type types-mpls:priority;
15945 default "7";
15946 description "Setup priority when insufficient bandwidth is available to set up LSP";
15947 }
15948
15949 leaf hold-priority {
15950 type types-mpls:priority;
15951 default "0";
15952 description "Hold priority when insufficient bandwidth is available to set up LSP";
15953 }
15954
15955 } // container priority
15956
15957 container include-admin-group {
15958 presence
15959 "Configure administrative groups that should be included
15960 when the LSP path is setup.";
15961 description "Enter the include-admin-group context";
15962
15963 leaf-list group {
15964 type types-sros:named-item;
15965 min-elements 1;
15966 max-elements 32;
15967 description "Groups that are included when LSP path is setup";
15968 }
15969
15970 } // container include-admin-group
15971
15972 container exclude-admin-group {
15973 presence
15974 "Configure administrative groups that should be excluded
15975 when the LSP path is setup.";
15976 description "Enter the exclude-admin-group context";
15977
15978 leaf-list group {
15979 type types-sros:named-item;
15980 min-elements 1;
15981 max-elements 32;
15982 description "Groups to exclude when the LSP path is setup";
15983 }
15984
15985 } // container exclude-admin-group
15986
15987 container bfd {
15988 description "Enter the bfd context";
15989
15990 leaf bfd-liveness {
15991 type boolean;
15992 default "false";
15993 description "Enable BFD";
15994 }
15995
15996 leaf bfd-template {
15997 type types-sros:named-item;
15998 description "BFD template";
15999 }
16000
16001 leaf lsp-ping-interval {
16002 type union {
16003 type uint32 {
16004 range "60..300";
16005 }
16006 type enumeration {
16007 enum "none" { value 0; }
16008 }
16009 }
16010 units "seconds";
16011 default "60";
16012 description "Interval for periodic LSP ping for BFD bootstrapping";
16013 }
16014
16015 } // container bfd
16016
16017 } // list primary
16018
16019 list secondary {
16020 key "path-name";
16021 max-elements 8;
16022 description "Enter the secondary context";
16023
16024 leaf path-name {
16025 type union {
16026 type string {
16027 length "1..64";
16028 pattern "<.*>" {
16029 error-message "Config Groups Regex Pattern";
16030 }
16031 }
16032 type types-sros:named-item-64;
16033 }
16034 description "Path name";
16035 }
16036
16037 leaf admin-state {
16038 type types-sros:admin-state;
16039 default "enable";
16040 description "Administrative state of LSP path";
16041 }
16042
16043 leaf adaptive {
16044 type boolean;
16045 description "Enable/disable make-before-break functionality.";
16046 }
16047
16048 leaf bandwidth {
16049 type uint32 {
16050 range "0..100000";
16051 }
16052 units "megabps";
16053 default "0";
16054 description "Amount of bandwidth to be reserved.";
16055 }
16056
16057 leaf hop-limit {
16058 type uint32 {
16059 range "2..255";
16060 }
16061 description
16062 "The maximum number of hops that an LSP will traverse
16063 including the ingress and egress LSRs.";
16064 }
16065
16066 leaf record {
16067 type boolean;
16068 default "true";
16069 description "Enable/disable recording of all hops.";
16070 }
16071
16072 leaf record-label {
16073 type boolean;
16074 default "true";
16075 description "Enable/disable recording of labels at each node or instance.";
16076 }
16077
16078 leaf class-type {
16079 type types-mpls:class-type;
16080 description "Class-type";
16081 }
16082
16083 leaf path-preference {
16084 type int32 {
16085 range "0..255";
16086 }
16087 default "255";
16088 description "Path preference for the secondary standby path";
16089 }
16090
16091 leaf srlg {
16092 type boolean;
16093 default "false";
16094 description "Use SRLG constraint in secondary path computation for an LSP at the head-end LER";
16095 }
16096
16097 leaf standby {
16098 type boolean;
16099 default "false";
16100 description "Maintain secondary path LSP indefinitely in hot standby state";
16101 }
16102
16103 container priority {
16104 description "Enter the priority context";
16105
16106 leaf setup-priority {
16107 type types-mpls:priority;
16108 default "7";
16109 description "Setup priority when insufficient bandwidth is available to set up LSP";
16110 }
16111
16112 leaf hold-priority {
16113 type types-mpls:priority;
16114 default "0";
16115 description "Hold priority when insufficient bandwidth is available to set up LSP";
16116 }
16117
16118 } // container priority
16119
16120 container include-admin-group {
16121 presence
16122 "Configure administrative groups that should be included
16123 when the LSP path is setup.";
16124 description "Enter the include-admin-group context";
16125
16126 leaf-list group {
16127 type types-sros:named-item;
16128 min-elements 1;
16129 max-elements 32;
16130 description "Groups that are included when LSP path is setup";
16131 }
16132
16133 } // container include-admin-group
16134
16135 container exclude-admin-group {
16136 presence
16137 "Configure administrative groups that should be excluded
16138 when the LSP path is setup.";
16139 description "Enter the exclude-admin-group context";
16140
16141 leaf-list group {
16142 type types-sros:named-item;
16143 min-elements 1;
16144 max-elements 32;
16145 description "Groups to exclude when the LSP path is setup";
16146 }
16147
16148 } // container exclude-admin-group
16149
16150 } // list secondary
16151
16152 list primary-p2mp-instance {
16153 key "instance-name";
16154 max-elements 1;
16155 description "Enter the primary-p2mp-instance context";
16156
16157 leaf instance-name {
16158 type union {
16159 type string {
16160 length "1..64";
16161 pattern "<.*>" {
16162 error-message "Config Groups Regex Pattern";
16163 }
16164 }
16165 type types-sros:named-item;
16166 }
16167 description "The unique name which identifies this P2MP LSP for this virtual router. ";
16168 }
16169
16170 leaf admin-state {
16171 type types-sros:admin-state;
16172 default "enable";
16173 description "Administrative state of LSP path";
16174 }
16175
16176 leaf adaptive {
16177 type boolean;
16178 description "Enable/disable make-before-break functionality.";
16179 }
16180
16181 leaf bandwidth {
16182 type uint32 {
16183 range "0..100000";
16184 }
16185 units "megabps";
16186 default "0";
16187 description "Amount of bandwidth to be reserved.";
16188 }
16189
16190 leaf hop-limit {
16191 type uint32 {
16192 range "2..255";
16193 }
16194 description
16195 "The maximum number of hops that an LSP will traverse
16196 including the ingress and egress LSRs.";
16197 }
16198
16199 leaf record {
16200 type boolean;
16201 default "true";
16202 description "Enable/disable recording of all hops.";
16203 }
16204
16205 leaf record-label {
16206 type boolean;
16207 default "true";
16208 description "Enable/disable recording of labels at each node or instance.";
16209 }
16210
16211 container include-admin-group {
16212 presence
16213 "Configure administrative groups that should be included
16214 when the P2MP LSP is setup.";
16215 description "Enter the include-admin-group context";
16216
16217 leaf-list group {
16218 type types-sros:named-item;
16219 min-elements 1;
16220 max-elements 32;
16221 description "Groups that are included when LSP path is setup";
16222 }
16223
16224 } // container include-admin-group
16225
16226 container exclude-admin-group {
16227 presence
16228 "Configure administrative groups that should be excluded
16229 when the P2MP LSP is setup.";
16230 description "Enter the exclude-admin-group context";
16231
16232 leaf-list group {
16233 type types-sros:named-item;
16234 min-elements 1;
16235 max-elements 32;
16236 description "Groups to exclude when the LSP path is setup";
16237 }
16238
16239 } // container exclude-admin-group
16240
16241 list s2l-path {
16242 key "path-name to";
16243 max-elements 650;
16244 description "Enter the s2l-path context";
16245
16246 leaf path-name {
16247 type union {
16248 type string {
16249 length "1..64";
16250 pattern "<.*>" {
16251 error-message "Config Groups Regex Pattern";
16252 }
16253 }
16254 type types-sros:named-item-64;
16255 }
16256 description "A label switch path (P2MP LSP) name.";
16257 }
16258
16259 leaf to {
16260 type union {
16261 type string {
16262 length "1..64";
16263 pattern "<.*>" {
16264 error-message "Config Groups Regex Pattern";
16265 }
16266 }
16267 type types-sros:ip-address;
16268 }
16269 description "The IP address of the destination address of the S2L sub LSP.";
16270 }
16271
16272 leaf admin-state {
16273 type types-sros:admin-state;
16274 default "enable";
16275 description "Administratively enable/disable the P2MP S2L sub LSP.";
16276 }
16277
16278 } // list s2l-path
16279
16280 } // list primary-p2mp-instance
16281
16282 } // list lsp
16283
16284 list auto-lsp {
16285 key "template-name";
16286 max-elements 500;
16287 description "Enter the auto-lsp context";
16288
16289 leaf template-name {
16290 type union {
16291 type string {
16292 length "1..64";
16293 pattern "<.*>" {
16294 error-message "Config Groups Regex Pattern";
16295 }
16296 }
16297 type types-sros:named-item;
16298 }
16299 description "Name of the LSP template used to automatically create and signal multiple LSP instances";
16300 }
16301
16302 choice auto-lsp-choice {
16303 case one-hop {
16304
16305 leaf one-hop {
16306 type boolean;
16307 default "false";
16308 description "Enable the automatic signaling of one-hop point-to-point LSPs";
16309 }
16310
16311 }
16312 case policy {
16313
16314 leaf-list policy {
16315 type types-sros:named-item-64;
16316 max-elements 5;
16317 ordered-by user;
16318 description
16319 "Specify policies to bind to this LSP template to enable automatic
16320 creation of mesh point to point (P2P) LSPs.";
16321 }
16322
16323 }
16324 }
16325 } // list auto-lsp
16326
16327 list static-lsp {
16328 key "lsp-name";
16329 max-elements 1000;
16330 description "Enter the static-lsp context";
16331
16332 leaf lsp-name {
16333 type union {
16334 type string {
16335 length "1..64";
16336 pattern "<.*>" {
16337 error-message "Config Groups Regex Pattern";
16338 }
16339 }
16340 type types-sros:named-item-64;
16341 }
16342 description "Labeled Switch path name";
16343 }
16344
16345 leaf metric {
16346 type uint32 {
16347 range "1..16777215";
16348 }
16349 description "MPLS static LSP metric to select an LSP";
16350 }
16351
16352 leaf admin-state {
16353 type types-sros:admin-state;
16354 default "disable";
16355 description "Administrative state of the static LSP";
16356 }
16357
16358 leaf to {
16359 type types-sros:ipv4-unicast-address;
16360 description "Destination IP address or the egress router for the LSP";
16361 }
16362
16363 container push {
16364 presence
16365 "Configure label to be pushed on the label stack and
16366 the next hop IP address.";
16367 description "Enter the push context";
16368
16369 leaf out-label {
16370 type union {
16371 type uint32 {
16372 range "16..1048575";
16373 }
16374 type enumeration {
16375 enum "implicit-null-label" { value 3; }
16376 }
16377 }
16378 mandatory true;
16379 description "Push specific label onto the top of the outgoing packet's label stack";
16380 }
16381
16382 leaf next-hop {
16383 type types-sros:ipv4-unicast-address;
16384 mandatory true;
16385 description "IP address for the next hop";
16386 }
16387
16388 } // container push
16389
16390 } // list static-lsp
16391
16392 container forwarding-policies {
16393 presence "Enable/disable Forwarding Policies for MPLS.";
16394 description "Enter the forwarding-policies context";
16395
16396 leaf admin-state {
16397 type types-sros:admin-state;
16398 default "disable";
16399 description "Administrative state of MPLS forwarding policies";
16400 }
16401
16402 leaf reserved-label-block {
16403 type types-sros:named-item-64;
16404 description "Reserved label block";
16405 }
16406
16407 list forwarding-policy {
16408 key "policy-name";
16409 max-elements 65536;
16410 description "Enter the forwarding-policy context";
16411
16412 leaf policy-name {
16413 type union {
16414 type string {
16415 length "1..64";
16416 pattern "<.*>" {
16417 error-message "Config Groups Regex Pattern";
16418 }
16419 }
16420 type types-sros:named-item-64;
16421 }
16422 description "Forwarding policy name";
16423 }
16424
16425 leaf admin-state {
16426 type types-sros:admin-state;
16427 default "disable";
16428 description "Administrative state of the forwarding policy";
16429 }
16430
16431 leaf binding-label {
16432 type types-sros:mpls-label-or-zero;
16433 description "Binding label";
16434 }
16435
16436 leaf endpoint {
16437 type types-sros:ip-unicast-address;
16438 description "Configure endpoint address.";
16439 }
16440
16441 leaf revert-timer {
16442 type uint32 {
16443 range "1..600";
16444 }
16445 units "seconds";
16446 description "Revert timer";
16447 }
16448
16449 leaf preference {
16450 type uint32 {
16451 range "1..255";
16452 }
16453 default "255";
16454 description "Preference number";
16455 }
16456
16457 leaf metric {
16458 type uint32 {
16459 range "1..16777215";
16460 }
16461 description "Configure metric.";
16462 }
16463
16464 leaf tunnel-table-pref {
16465 type uint32 {
16466 range "1..255";
16467 }
16468 default "255";
16469 description "Configure tunnel table preference.";
16470 }
16471
16472 list next-hop-group {
16473 key "index";
16474 max-elements 32;
16475 description "Enter the next-hop-group context";
16476
16477 leaf index {
16478 type union {
16479 type string {
16480 length "1..64";
16481 pattern "<.*>" {
16482 error-message "Config Groups Regex Pattern";
16483 }
16484 }
16485 type uint32 {
16486 range "1..32";
16487 }
16488 }
16489 description "Index for next hop group";
16490 }
16491
16492 leaf admin-state {
16493 type types-sros:admin-state;
16494 default "disable";
16495 description "Administrative state of next hop group";
16496 }
16497
16498 leaf resolution-type {
16499 type enumeration {
16500 enum "direct" { value 1; }
16501 enum "indirect" { value 2; }
16502 }
16503 sros-ext:immutable;
16504 mandatory true;
16505 description "Resolution type for next hop group";
16506 }
16507
16508 leaf load-balancing-weight {
16509 type uint32 {
16510 range "1..max";
16511 }
16512 description "Configure load balancing weight.";
16513 }
16514
16515 container primary-next-hop {
16516 presence "Configure primary next-hop.";
16517 description "Enter the primary-next-hop context";
16518
16519 leaf next-hop {
16520 type types-sros:ip-unicast-address;
16521 description "Next hop address";
16522 }
16523
16524 list pushed-labels {
16525 key "index";
16526 max-elements 10;
16527 description "Enter the pushed-labels context";
16528
16529 leaf index {
16530 type union {
16531 type string {
16532 length "1..64";
16533 pattern "<.*>" {
16534 error-message "Config Groups Regex Pattern";
16535 }
16536 }
16537 type uint32 {
16538 range "1..10";
16539 }
16540 }
16541 description "Index for push-label.";
16542 }
16543
16544 leaf label {
16545 type uint32 {
16546 range "1..1048575";
16547 }
16548 mandatory true;
16549 description "Push label value.";
16550 }
16551
16552 } // list pushed-labels
16553
16554 } // container primary-next-hop
16555
16556 container backup-next-hop {
16557 presence "Configure backup next-hop.";
16558 description "Enter the backup-next-hop context";
16559
16560 leaf next-hop {
16561 type types-sros:ip-unicast-address;
16562 description "Next hop address";
16563 }
16564
16565 list pushed-labels {
16566 key "index";
16567 max-elements 10;
16568 description "Enter the pushed-labels context";
16569
16570 leaf index {
16571 type union {
16572 type string {
16573 length "1..64";
16574 pattern "<.*>" {
16575 error-message "Config Groups Regex Pattern";
16576 }
16577 }
16578 type uint32 {
16579 range "1..10";
16580 }
16581 }
16582 description "Index for push-label.";
16583 }
16584
16585 leaf label {
16586 type uint32 {
16587 range "1..1048575";
16588 }
16589 mandatory true;
16590 description "Push label value.";
16591 }
16592
16593 } // list pushed-labels
16594
16595 } // container backup-next-hop
16596
16597 } // list next-hop-group
16598
16599 container ingress-statistics {
16600 presence "Configure ingress-statistics.";
16601 description "Enter the ingress-statistics context";
16602
16603 leaf admin-state {
16604 type types-sros:admin-state;
16605 default "disable";
16606 description "Administrative state of egress or ingress statistics";
16607 }
16608
16609 } // container ingress-statistics
16610
16611 } // list forwarding-policy
16612
16613 } // container forwarding-policies
16614
16615 container pce-init-lsp {
16616 presence "Enable/disable support of PCE initiated LSPs";
16617 description "Enable/disable support of PCE initiated LSPs.";
16618
16619 container sr-te {
16620 presence "Enable/Disable support of PCE initiated SR-TE LSPs";
16621 description "Specifies if PCE initiated SR-TE LSPs are supported on the system.";
16622
16623 leaf admin-state {
16624 type types-sros:admin-state;
16625 default "disable";
16626 description "Administratively enable or disable PCE initiated SR-TE LSPs.";
16627 }
16628
16629 } // container sr-te
16630
16631 } // container pce-init-lsp
16632
16633 container ingress-statistics {
16634 description "Enter the ingress-statistics context";
16635
16636 list lsp {
16637 key "sender lsp-name";
16638 description "Enter the lsp context";
16639
16640 leaf sender {
16641 type union {
16642 type string {
16643 length "1..64";
16644 pattern "<.*>" {
16645 error-message "Config Groups Regex Pattern";
16646 }
16647 }
16648 type types-sros:ip-unicast-address;
16649 }
16650 description "Sender address";
16651 }
16652
16653 leaf lsp-name {
16654 type union {
16655 type string {
16656 length "1..64";
16657 pattern "<.*>" {
16658 error-message "Config Groups Regex Pattern";
16659 }
16660 }
16661 type types-sros:named-item-64;
16662 }
16663 description "Administrative name for Labeled Switch Path.";
16664 }
16665
16666 leaf collect-stats {
16667 type boolean;
16668 default "false";
16669 description "Collect statistics";
16670 }
16671
16672 leaf accounting-policy {
16673 type types-log:log-policy-id;
16674 description "Accounting policy ID";
16675 }
16676
16677 leaf admin-state {
16678 type types-sros:admin-state;
16679 default "disable";
16680 description "Administrative state of ingress statistics for LSP";
16681 }
16682
16683 } // list lsp
16684
16685 list p2mp-template-lsp {
16686 key "sender rsvp-session-name";
16687 description "Enter the p2mp-template-lsp context";
16688
16689 leaf sender {
16690 type union {
16691 type string {
16692 length "1..64";
16693 pattern "<.*>" {
16694 error-message "Config Groups Regex Pattern";
16695 }
16696 }
16697 type types-sros:ip-unicast-address;
16698 }
16699 description "Sender address";
16700 }
16701
16702 leaf rsvp-session-name {
16703 type union {
16704 type string {
16705 length "1..64";
16706 pattern "<.*>" {
16707 error-message "Config Groups Regex Pattern";
16708 }
16709 }
16710 type types-sros:named-item-64;
16711 }
16712 description "RSVP session name";
16713 }
16714
16715 leaf collect-stats {
16716 type boolean;
16717 default "false";
16718 description "Collect statistics";
16719 }
16720
16721 leaf accounting-policy {
16722 type types-log:log-policy-id;
16723 description "Accounting policy ID";
16724 }
16725
16726 leaf admin-state {
16727 type types-sros:admin-state;
16728 default "disable";
16729 description "Administrative state of ingress statistics for LSP";
16730 }
16731
16732 leaf max-stats {
16733 type uint32 {
16734 range "1..8191";
16735 }
16736 default "8191";
16737 description "Maximum number of statistic indices";
16738 }
16739
16740 } // list p2mp-template-lsp
16741
16742 list p2p-template-lsp {
16743 key "sender rsvp-session-name";
16744 description "Enter the p2p-template-lsp context";
16745
16746 leaf sender {
16747 type union {
16748 type string {
16749 length "1..64";
16750 pattern "<.*>" {
16751 error-message "Config Groups Regex Pattern";
16752 }
16753 }
16754 type types-sros:ip-unicast-address;
16755 }
16756 description "Sender address";
16757 }
16758
16759 leaf rsvp-session-name {
16760 type union {
16761 type string {
16762 length "1..64";
16763 pattern "<.*>" {
16764 error-message "Config Groups Regex Pattern";
16765 }
16766 }
16767 type types-sros:named-item-64;
16768 }
16769 description "RSVP session name";
16770 }
16771
16772 leaf collect-stats {
16773 type boolean;
16774 default "false";
16775 description "Collect statistics";
16776 }
16777
16778 leaf accounting-policy {
16779 type types-log:log-policy-id;
16780 description "Accounting policy ID";
16781 }
16782
16783 leaf admin-state {
16784 type types-sros:admin-state;
16785 default "disable";
16786 description "Administrative state of ingress statistics for LSP";
16787 }
16788
16789 leaf max-stats {
16790 type uint32 {
16791 range "1..8191";
16792 }
16793 default "8191";
16794 description "Maximum number of statistic indices";
16795 }
16796
16797 } // list p2p-template-lsp
16798
16799 } // container ingress-statistics
16800
16801 container aux-stats {
16802 presence "Configure aux-stats.";
16803 description "Enter the aux-stats context";
16804
16805 leaf sr {
16806 type boolean;
16807 default "false";
16808 description "Count Segment Routing (SR) traffic in the auxiliary MPLS statistics table";
16809 }
16810
16811 } // container aux-stats
16812
16813 } // container mpls
16814
16815 container rsvp {
16816 presence "Enables RSVP functionality.";
16817 description "Enter the rsvp context";
16818
16819 leaf entropy-label-capability {
16820 type boolean;
16821 default "false";
16822 description "Allow receiving and processing of the entropy label and ELI on incoming packets of RSVP LSPs";
16823 }
16824
16825 leaf graceful-shutdown {
16826 type boolean;
16827 default "false";
16828 description "Initiate a graceful shutdown of all RSVP interfaces on the node";
16829 }
16830
16831 leaf implicit-null-label {
16832 type boolean;
16833 default "false";
16834 description "Signal the implicit null option for all RSVP LSPs";
16835 }
16836
16837 leaf keep-multiplier {
16838 type uint32 {
16839 range "1..255";
16840 }
16841 default "3";
16842 description "Value for the keep-multiplier to declare a reservation or neighbor as down";
16843 }
16844
16845 leaf include-node-id-in-rro {
16846 type boolean;
16847 default "false";
16848 description "Include the node-id sub-object in the RRO (Record Route Object) on the RSVP instance";
16849 }
16850
16851 leaf p2mp-merge-point-abort-timer {
16852 type uint32 {
16853 range "1..65535";
16854 }
16855 units "seconds";
16856 description "Merge pointer timer for abort timer";
16857 }
16858
16859 leaf p2p-merge-point-abort-timer {
16860 type uint32 {
16861 range "1..65535";
16862 }
16863 units "seconds";
16864 description "Merge pointer timer for P2P paths";
16865 }
16866
16867 leaf preemption-timer {
16868 type uint32 {
16869 range "0..1800";
16870 }
16871 units "seconds";
16872 default "300";
16873 description "Preemption timer for the MPLS instance";
16874 }
16875
16876 leaf rapid-retransmit-time {
16877 type uint32 {
16878 range "1..100";
16879 }
16880 units "deciseconds";
16881 default "5";
16882 description "Rapid retransmission interval to reliably deliver RSVP messages";
16883 }
16884
16885 leaf rapid-retry-limit {
16886 type uint32 {
16887 range "1..6";
16888 }
16889 default "3";
16890 description "Rapid retry limit to reliably deliver RSVP messages";
16891 }
16892
16893 leaf refresh-reduction-over-bypass {
16894 type boolean;
16895 default "false";
16896 description "Enable/disable refresh reduction capabilities over all bypass tunnels.";
16897 }
16898
16899 leaf refresh-time {
16900 type uint32 {
16901 range "1..65535";
16902 }
16903 units "seconds";
16904 default "30";
16905 description "Interval between refresh messages";
16906 }
16907
16908 leaf admin-state {
16909 type types-sros:admin-state;
16910 default "disable";
16911 description "Administrative state of RSVP";
16912 }
16913
16914 leaf-list te-down-threshold {
16915 type types-rsvp:rsvp-te-threshold-level;
16916 max-elements 16;
16917 ordered-by user;
16918 description "Value for the te-down-threshold";
16919 }
16920
16921 leaf-list te-up-threshold {
16922 type types-rsvp:rsvp-te-threshold-level;
16923 max-elements 16;
16924 ordered-by user;
16925 description "Value for the te-up-threshold";
16926 }
16927
16928 container graceful-restart {
16929 description "Enter the graceful-restart context";
16930
16931 leaf max-recovery {
16932 type uint32 {
16933 range "1..1800";
16934 }
16935 units "seconds";
16936 default "300";
16937 description "Maximum time to wait before a graceful helper recovers the session";
16938 }
16939
16940 leaf max-restart {
16941 type uint32 {
16942 range "1..300";
16943 }
16944 units "seconds";
16945 default "120";
16946 description "Maximum time that a graceful helper waits for session restart after the neighbor is considered down";
16947 }
16948
16949 } // container graceful-restart
16950
16951 container msg-pacing {
16952 presence "Enable/disable RSVP message pacing.";
16953 description "Enter the msg-pacing context";
16954
16955 leaf max-burst {
16956 type uint32 {
16957 range "100..1000";
16958 }
16959 default "650";
16960 description "Maximum RSVP messages that are sent over a specified period when message pacing is enabled";
16961 }
16962
16963 leaf period {
16964 type uint32 {
16965 range "100..1000";
16966 }
16967 units "milliseconds";
16968 default "100";
16969 description "Time for RSVP message pacing";
16970 }
16971
16972 } // container msg-pacing
16973
16974 container te-threshold-update {
16975 presence "Enables RSVP threshold based IGP TE functionality.";
16976 description "Enter the te-threshold-update context";
16977
16978 leaf on-cac-failure {
16979 type boolean;
16980 default "false";
16981 description "CAC (Call Admission Control) failure-triggered IGP update";
16982 }
16983
16984 leaf update-timer {
16985 type uint32 {
16986 range "1..300";
16987 }
16988 units "seconds";
16989 description "Timer-based IGP updates";
16990 }
16991
16992 } // container te-threshold-update
16993
16994 container dbw-accounting {
16995 presence "Enables Dark Bandwidth accounting.";
16996 description "Enter the dbw-accounting context";
16997
16998 leaf dbw-multiplier {
16999 type uint32 {
17000 range "0..1000";
17001 }
17002 units "percent";
17003 default "100";
17004 description "Dark Bandwidth multiplier";
17005 }
17006
17007 leaf sample-interval {
17008 type uint32 {
17009 range "10..600";
17010 }
17011 units "seconds";
17012 default "30";
17013 description "Dark Bandwidth sample interval";
17014 }
17015
17016 leaf sample-multiplier {
17017 type uint32 {
17018 range "1..10";
17019 }
17020 default "3";
17021 description "Dark Bandwidth sample multiplier";
17022 }
17023
17024 container up-threshold {
17025 description "Enter the up-threshold context";
17026
17027 leaf percent {
17028 type types-sros:percent;
17029 default "0";
17030 description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update";
17031 }
17032
17033 leaf bw {
17034 type int32 {
17035 range "0..1000000";
17036 }
17037 units "megabps";
17038 description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update";
17039 }
17040
17041 } // container up-threshold
17042
17043 container down-threshold {
17044 description "Enter the down-threshold context";
17045
17046 leaf percent {
17047 type types-sros:percent;
17048 default "0";
17049 description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update";
17050 }
17051
17052 leaf bw {
17053 type int32 {
17054 range "0..1000000";
17055 }
17056 units "megabps";
17057 description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update";
17058 }
17059
17060 } // container down-threshold
17061
17062 } // container dbw-accounting
17063
17064 container diffserv-te {
17065 presence "Enables RSVP DiffServ TE functionality.";
17066 description "Enter the diffserv-te context";
17067
17068 leaf admission-control-model {
17069 type enumeration {
17070 enum "mam" { value 1; }
17071 enum "rdm" { value 2; }
17072 }
17073 mandatory true;
17074 description "Parameters for the DiffServ TE node";
17075 }
17076
17077 container class-type-bw {
17078 description "Enter the class-type-bw context";
17079
17080 leaf ct0 {
17081 type int32 {
17082 range "0..100";
17083 }
17084 default "0";
17085 description "Percentage of RSVP interface bandwidth for class type (CT) 0";
17086 }
17087
17088 leaf ct1 {
17089 type int32 {
17090 range "0..100";
17091 }
17092 default "0";
17093 description "Percentage of RSVP interface bandwidth for class type (CT) 1";
17094 }
17095
17096 leaf ct2 {
17097 type int32 {
17098 range "0..100";
17099 }
17100 default "0";
17101 description "Percentage of RSVP interface bandwidth for class type (CT) 2";
17102 }
17103
17104 leaf ct3 {
17105 type int32 {
17106 range "0..100";
17107 }
17108 default "0";
17109 description "Percentage of RSVP interface bandwidth for class type (CT) 3";
17110 }
17111
17112 leaf ct4 {
17113 type int32 {
17114 range "0..100";
17115 }
17116 default "0";
17117 description "Percentage of RSVP interface bandwidth for class type (CT) 4";
17118 }
17119
17120 leaf ct5 {
17121 type int32 {
17122 range "0..100";
17123 }
17124 default "0";
17125 description "Percentage of RSVP interface bandwidth for class type (CT) 5";
17126 }
17127
17128 leaf ct6 {
17129 type int32 {
17130 range "0..100";
17131 }
17132 default "0";
17133 description "Percentage of RSVP interface bandwidth for class type (CT) 6";
17134 }
17135
17136 leaf ct7 {
17137 type int32 {
17138 range "0..100";
17139 }
17140 default "0";
17141 description "Percentage of RSVP interface bandwidth for class type (CT) 7";
17142 }
17143
17144 } // container class-type-bw
17145
17146 list fc {
17147 key "fc-name";
17148 description "Enter the fc context";
17149
17150 leaf fc-name {
17151 type union {
17152 type string {
17153 length "1..64";
17154 pattern "<.*>" {
17155 error-message "Config Groups Regex Pattern";
17156 }
17157 }
17158 type types-sros:fc-name;
17159 }
17160 description "Forwarding class for this mapping";
17161 }
17162
17163 leaf class-type {
17164 type types-mpls:class-type;
17165 mandatory true;
17166 description "Diff-Serv Class Type (CT) for an LSP";
17167 }
17168
17169 } // list fc
17170
17171 list te-class {
17172 key "te-class-number";
17173 description "Enter the te-class context";
17174
17175 leaf te-class-number {
17176 type union {
17177 type string {
17178 length "1..64";
17179 pattern "<.*>" {
17180 error-message "Config Groups Regex Pattern";
17181 }
17182 }
17183 type uint32 {
17184 range "0..7";
17185 }
17186 }
17187 description "Unique value that identifies the TE class.";
17188 }
17189
17190 leaf class-type {
17191 type types-mpls:class-type;
17192 sros-ext:immutable;
17193 mandatory true;
17194 description "Class type (CT) associated with the TE class";
17195 }
17196
17197 leaf priority {
17198 type types-mpls:priority;
17199 sros-ext:immutable;
17200 mandatory true;
17201 description "TE class priority";
17202 }
17203
17204 } // list te-class
17205
17206 } // container diffserv-te
17207
17208 list interface {
17209 key "interface-name";
17210 description "Enter the interface context";
17211
17212 leaf interface-name {
17213 type union {
17214 type string {
17215 length "1..64";
17216 pattern "<.*>" {
17217 error-message "Config Groups Regex Pattern";
17218 }
17219 }
17220 type types-sros:interface-name;
17221 }
17222 description "Index for router RSVP interface";
17223 }
17224
17225 leaf admin-state {
17226 type types-sros:admin-state;
17227 default "enable";
17228 description "Administrative state of RSVP on the interface";
17229 }
17230
17231 leaf authentication-keychain {
17232 type types-sros:named-item;
17233 description "Configure TCP authentication keychain to use for the session.";
17234 }
17235
17236 leaf authentication-key {
17237 type types-sros:encrypted-leaf {
17238 length "1..51";
17239 }
17240 description "Authentication or hash key string";
17241 }
17242
17243 leaf bfd-liveness {
17244 type boolean;
17245 default "false";
17246 description "Enable BFD";
17247 }
17248
17249 leaf graceful-restart-helper-mode {
17250 type boolean;
17251 default "false";
17252 description "Enable graceful restart helper for the RSVP interface";
17253 }
17254
17255 leaf graceful-shutdown {
17256 type boolean;
17257 default "false";
17258 description "Initiate a graceful shutdown of RSVP interface";
17259 }
17260
17261 leaf hello-interval {
17262 type uint32 {
17263 range "0..60";
17264 }
17265 units "seconds";
17266 default "3";
17267 description "Time between RSVP Hello messages";
17268 }
17269
17270 leaf subscription {
17271 type uint32 {
17272 range "0..1000";
17273 }
17274 default "100";
17275 description "Percentage of the link bandwidth to use for reservation";
17276 }
17277
17278 leaf dbw-multiplier {
17279 type int32 {
17280 range "0..1000";
17281 }
17282 units "percent";
17283 description "Configure the Dark Bandwidth multiplier.";
17284 }
17285
17286 leaf implicit-null-label {
17287 type boolean;
17288 description "Signal the implicit null label value for all LSPs";
17289 }
17290
17291 container class-type-bw {
17292 presence "Enables RSVP interface class-type bw functionality.";
17293 description "Enter the class-type-bw context";
17294
17295 leaf ct0 {
17296 type int32 {
17297 range "0..100";
17298 }
17299 description "Percentage of link bandwidth for class type (CT) 0";
17300 }
17301
17302 leaf ct1 {
17303 type int32 {
17304 range "0..100";
17305 }
17306 description "Percentage of link bandwidth for class type (CT) 1";
17307 }
17308
17309 leaf ct2 {
17310 type int32 {
17311 range "0..100";
17312 }
17313 description "Percentage of link bandwidth for class type (CT) 2";
17314 }
17315
17316 leaf ct3 {
17317 type int32 {
17318 range "0..100";
17319 }
17320 description "Percentage of link bandwidth for class type (CT) 3";
17321 }
17322
17323 leaf ct4 {
17324 type int32 {
17325 range "0..100";
17326 }
17327 description "Percentage of link bandwidth for class type (CT) 4";
17328 }
17329
17330 leaf ct5 {
17331 type int32 {
17332 range "0..100";
17333 }
17334 description "Percentage of link bandwidth for class type (CT) 5";
17335 }
17336
17337 leaf ct6 {
17338 type int32 {
17339 range "0..100";
17340 }
17341 description "Percentage of link bandwidth for class type (CT) 6";
17342 }
17343
17344 leaf ct7 {
17345 type int32 {
17346 range "0..100";
17347 }
17348 description "Percentage of link bandwidth for class type (CT) 7";
17349 }
17350
17351 } // container class-type-bw
17352
17353 container refresh-reduction {
17354 presence "Enable/Disable refresh reduction.";
17355 description "Enter the refresh-reduction context";
17356
17357 leaf reliable-delivery {
17358 type boolean;
17359 default "false";
17360 description "Reliable delivery of RSVP messages over the RSVP interface";
17361 }
17362
17363 } // container refresh-reduction
17364
17365 container dbw-up-threshold {
17366 presence "Configure up threshold for Dark Bandwidth.";
17367 description "Enter the dbw-up-threshold context";
17368
17369 leaf percent {
17370 type int32 {
17371 range "0..100";
17372 }
17373 units "percent";
17374 description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update";
17375 }
17376
17377 leaf bw {
17378 type int32 {
17379 range "0..1000000";
17380 }
17381 units "megabps";
17382 description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update";
17383 }
17384
17385 } // container dbw-up-threshold
17386
17387 container dbw-down-threshold {
17388 presence "Configure down threshold for Dark Bandwidth.";
17389 description "Enter the dbw-down-threshold context";
17390
17391 leaf percent {
17392 type int32 {
17393 range "0..100";
17394 }
17395 units "percent";
17396 description "Minimum difference in percent between dark bandwidth and sampled data rate, to trigger IGP-TE update";
17397 }
17398
17399 leaf bw {
17400 type int32 {
17401 range "0..1000000";
17402 }
17403 units "megabps";
17404 description "Minimum absolute difference between dark bandwidth and sampled data rate to trigger IGP-TE update";
17405 }
17406
17407 } // container dbw-down-threshold
17408
17409 container te-down-threshold {
17410 presence "Specifies down TE threshold levels.";
17411 description "Enter the te-down-threshold context";
17412
17413 leaf-list value {
17414 type types-rsvp:rsvp-te-threshold-level;
17415 min-elements 1;
17416 max-elements 16;
17417 ordered-by user;
17418 description "Specifies down TE threshold levels.";
17419 }
17420
17421 } // container te-down-threshold
17422
17423 container te-up-threshold {
17424 presence "Specifies up TE threshold levels.";
17425 description "Enter the te-up-threshold context";
17426
17427 leaf-list value {
17428 type types-rsvp:rsvp-te-threshold-level;
17429 min-elements 1;
17430 max-elements 16;
17431 ordered-by user;
17432 description "Specifies up TE threshold levels.";
17433 }
17434
17435 } // container te-up-threshold
17436
17437 } // list interface
17438
17439 } // container rsvp
17440
17441 } // list router
17442
17443 container service {
17444 description "Enter the service context";
17445
17446 list vpls {
17447 key "service-name";
17448 description "Enter the vpls context";
17449
17450 leaf service-name {
17451 type union {
17452 type string {
17453 length "1..64";
17454 pattern "<.*>" {
17455 error-message "Config Groups Regex Pattern";
17456 }
17457 }
17458 type types-services:service-name;
17459 }
17460 description "Name of the service";
17461 }
17462
17463 leaf service-id {
17464 type types-services:external-service-id;
17465 sros-ext:immutable;
17466 description "Unique service ID; cannot be used by any other service, regardless of service type";
17467 }
17468
17469 leaf description {
17470 type types-sros:description;
17471 description "Text description";
17472 }
17473
17474 leaf customer {
17475 type types-services:customer-name;
17476 sros-ext:immutable;
17477 mandatory true;
17478 description "Service customer ID";
17479 }
17480
17481 leaf admin-state {
17482 type types-sros:admin-state;
17483 default "disable";
17484 description "Administrative state of the mirror destination service";
17485 }
17486
17487 leaf vpn-id {
17488 type types-services:vpn-id;
17489 sros-ext:immutable;
17490 description "VPN identifier for the service";
17491 }
17492
17493 leaf service-mtu {
17494 type int32 {
17495 range "1..9194";
17496 }
17497 default "1514";
17498 description "MTU size";
17499 }
17500
17501 leaf etree {
17502 type boolean;
17503 sros-ext:immutable;
17504 default "false";
17505 description "Use VPLS as an E-Tree VPLS";
17506 }
17507
17508 leaf pbb-type {
17509 type types-services:pbb-type;
17510 sros-ext:immutable;
17511 description "PBB VPLS type";
17512 }
17513
17514 leaf mcast-ipv6-snooping-scope {
17515 type enumeration {
17516 enum "sg-based" { value 1; }
17517 enum "mac-based" { value 2; }
17518 }
17519 default "mac-based";
17520 description "IPv6 multicast snooping scope";
17521 }
17522
17523 leaf multicast-info-policy {
17524 type types-sros:named-item;
17525 description "Multicast information policy";
17526 }
17527
17528 leaf shcv-policy-ipv4 {
17529 type types-sros:external-named-item;
17530 description "Subscriber host connectivity verification policy for IPv4";
17531 }
17532
17533 leaf temp-flooding {
17534 type int32 {
17535 range "3..600";
17536 }
17537 units "seconds";
17538 description "Temporary flooding";
17539 }
17540
17541 container stp {
17542 description "Enter the stp context";
17543
17544 leaf admin-state {
17545 type types-sros:admin-state;
17546 default "disable";
17547 description "Enable/disable spanning tree protocol (STP)";
17548 }
17549
17550 leaf forward-delay {
17551 type int32 {
17552 range "4..30";
17553 }
17554 default "15";
17555 description "Configure forward-delay";
17556 }
17557
17558 leaf hello-time {
17559 type int32 {
17560 range "1..10";
17561 }
17562 default "2";
17563 description "Configure hello-time";
17564 }
17565
17566 leaf hold-count {
17567 type int32 {
17568 range "1..20";
17569 }
17570 default "6";
17571 description "Configure BPDU transmit hold count";
17572 }
17573
17574 leaf maximum-age {
17575 type int32 {
17576 range "6..40";
17577 }
17578 default "20";
17579 description "Configure maximum STP information age";
17580 }
17581
17582 leaf mode {
17583 type enumeration {
17584 enum "rstp" { value 2; }
17585 enum "comp-dot1w" { value 3; }
17586 enum "dot1w" { value 4; }
17587 }
17588 default "rstp";
17589 description "Configure protocol version";
17590 }
17591
17592 leaf priority {
17593 type int32 {
17594 range "0..65535";
17595 }
17596 default "32768";
17597 description "Configure STP bridge priority";
17598 }
17599
17600 } // container stp
17601
17602 container fdb {
17603 description "Enter the fdb context";
17604
17605 leaf discard-unknown {
17606 type boolean;
17607 default "false";
17608 description "Discard packets with unknown destination MAC addresses";
17609 }
17610
17611 leaf mac-subnet-length {
17612 type int32 {
17613 range "24..48";
17614 }
17615 default "48";
17616 description "MAC sub-net length.";
17617 }
17618
17619 leaf selective-learning {
17620 type boolean;
17621 default "false";
17622 description "Selective learning status.";
17623 }
17624
17625 container table {
17626 description "Enter the table context";
17627
17628 leaf high-wmark {
17629 type int32 {
17630 range "0..100";
17631 }
17632 default "95";
17633 description "High watermark for the FDB table";
17634 }
17635
17636 leaf low-wmark {
17637 type int32 {
17638 range "0..100";
17639 }
17640 default "90";
17641 description "Low watermark for the FDB table";
17642 }
17643
17644 leaf size {
17645 type int32 {
17646 range "1..511999";
17647 }
17648 default "250";
17649 description "Maximum MAC entries in the FDB";
17650 }
17651
17652 } // container table
17653
17654 container mac-learning {
17655 description "Enter the mac-learning context";
17656
17657 leaf learning {
17658 type boolean;
17659 default "true";
17660 description "Enable learning of new MAC addresses";
17661 }
17662
17663 leaf aging {
17664 type boolean;
17665 default "true";
17666 description "Enable aging of MAC addresses";
17667 }
17668
17669 leaf local-age-time {
17670 type int32 {
17671 range "60..86400";
17672 }
17673 default "300";
17674 description "Aging time for locally learned MAC addresses";
17675 }
17676
17677 leaf remote-age-time {
17678 type int32 {
17679 range "60..86400";
17680 }
17681 default "900";
17682 description "Aging time for locally learned MAC addresses";
17683 }
17684
17685 } // container mac-learning
17686
17687 container mac-move {
17688 description "Enter the mac-move context";
17689
17690 leaf admin-state {
17691 type types-sros:admin-state;
17692 default "disable";
17693 description "Administrative state of MAC move";
17694 }
17695
17696 } // container mac-move
17697
17698 container static-mac {
17699 description "Enter the static-mac context";
17700
17701 list mac {
17702 key "mac-address";
17703 description "Enter the mac context";
17704
17705 leaf mac-address {
17706 type union {
17707 type string {
17708 length "1..64";
17709 pattern "<.*>" {
17710 error-message "Config Groups Regex Pattern";
17711 }
17712 }
17713 type types-sros:mac-unicast-address-no-zero;
17714 }
17715 description "Static MAC address to SAP/SDP-binding or black-hole";
17716 }
17717
17718 leaf monitor {
17719 type enumeration {
17720 enum "none" { value 0; }
17721 enum "forward-status" { value 1; }
17722 }
17723 sros-ext:immutable;
17724 default "none";
17725 description "Entity to be monitored to decide whether this entry can be installed in the FDB";
17726 }
17727
17728 choice destination {
17729 mandatory true;
17730 case spoke-sdp {
17731
17732 leaf spoke-sdp {
17733 type types-services:sdp-bind-id;
17734 sros-ext:immutable;
17735 description "Spoke SDP bind associated with this MAC";
17736 }
17737
17738 }
17739 case mesh-sdp {
17740
17741 leaf mesh-sdp {
17742 type types-services:sdp-bind-id;
17743 sros-ext:immutable;
17744 description "Mesh SDP bind associated with this MAC";
17745 }
17746
17747 }
17748 case sap {
17749
17750 leaf sap {
17751 type types-sros:sap;
17752 sros-ext:immutable;
17753 description "SAP associated with this MAC";
17754 }
17755
17756 }
17757 case blackhole {
17758
17759 leaf blackhole {
17760 type empty;
17761 sros-ext:immutable;
17762 description "Create a static FDB entry for the MAC address to black-hole traffic";
17763 }
17764
17765 }
17766 case endpoint {
17767
17768 leaf endpoint {
17769 type types-sros:named-item;
17770 sros-ext:immutable;
17771 description "Endpoint associated with this MAC";
17772 }
17773
17774 }
17775 }
17776 } // list mac
17777
17778 } // container static-mac
17779
17780 } // container fdb
17781
17782 container mfib {
17783 description "Enter the mfib context";
17784
17785 container table {
17786 description "Enter the table context";
17787
17788 leaf high-wmark {
17789 type int32 {
17790 range "0..100";
17791 }
17792 default "95";
17793 description "High watermark for the MFIB table";
17794 }
17795
17796 leaf low-wmark {
17797 type int32 {
17798 range "0..100";
17799 }
17800 default "90";
17801 description "Low watermark for the MFIB table";
17802 }
17803
17804 leaf size {
17805 type int32 {
17806 range "1..40959";
17807 }
17808 description "Maximum SG entries in the MFIB";
17809 }
17810
17811 } // container table
17812
17813 } // container mfib
17814
17815 container mac-flush {
17816 description "Enter the mac-flush context";
17817
17818 container tldp {
17819 description "Enter the tldp context";
17820
17821 leaf propagate {
17822 type boolean;
17823 default "false";
17824 description "Propagate MAC flush frames from LDP peer to all mesh-SDP and Spoke-SDPs.";
17825 }
17826
17827 leaf send-on-failure {
17828 type boolean;
17829 default "false";
17830 description "Send MAC withdraw message on SAP/Spoke-SDP failure";
17831 }
17832
17833 } // container tldp
17834
17835 } // container mac-flush
17836
17837 container vxlan {
17838 description "Enter the vxlan context";
17839
17840 leaf source-vtep {
17841 type types-sros:ip-unicast-address;
17842 description "Vxlan source virtual tunnel endpoint information";
17843 }
17844
17845 list instance {
17846 key "vxlan-instance";
17847 description "Enter the instance context";
17848
17849 leaf vxlan-instance {
17850 type union {
17851 type string {
17852 length "1..64";
17853 pattern "<.*>" {
17854 error-message "Config Groups Regex Pattern";
17855 }
17856 }
17857 type uint32 {
17858 range "1..2";
17859 }
17860 }
17861 default "1";
17862 description "VXLAN instance";
17863 }
17864
17865 leaf vni {
17866 type types-services:vxlan-vni;
17867 sros-ext:immutable;
17868 mandatory true;
17869 description "VNI of the VXLAN";
17870 }
17871
17872 leaf source-vtep-security {
17873 type boolean;
17874 default "false";
17875 description "Enable/disable source vtep security";
17876 }
17877
17878 leaf rx-discard-on-ndf {
17879 type enumeration {
17880 enum "bm" { value 0; }
17881 enum "bum" { value 1; }
17882 enum "none" { value 2; }
17883 }
17884 default "bm";
17885 description "specifies the type of multicast traffic discarded on the receive side of when the vxlan instance is NDF";
17886 }
17887
17888 container assisted-replication {
17889 description "Enter the assisted-replication context";
17890
17891 choice role {
17892 case leaf {
17893
17894 container leaf {
17895 presence "AR role as leaf.";
17896 description "Enter the leaf context";
17897
17898 leaf acttime {
17899 type uint32 {
17900 range "1..255";
17901 }
17902 units "seconds";
17903 description "Time for the leaf to wait before sending traffic to a new replicator";
17904 }
17905
17906 } // container leaf
17907
17908 }
17909 case replicator {
17910
17911 leaf replicator {
17912 type empty;
17913 description "AR role as replicator";
17914 }
17915
17916 }
17917 }
17918 } // container assisted-replication
17919
17920 container network {
17921 description "Enter the network context";
17922
17923 container ingress {
17924 description "Enter the ingress context";
17925
17926 container qos {
17927 description "Enter the qos context";
17928
17929 container network {
17930 description "Enter the network context";
17931
17932 leaf policy-name {
17933 type types-qos:network-policy-name;
17934 description "Ingress network policy name applied to this SDP binding";
17935 }
17936
17937 container fp-redirect-group {
17938 description "Enter the fp-redirect-group context";
17939
17940 leaf group-name {
17941 type types-sros:named-item;
17942 description "Forwarding-plane queue group policy for this SDP binding";
17943 }
17944
17945 leaf instance {
17946 type types-services:qos-qgrp-instance-id;
17947 description "Instance of the forwarding-plane ingress Queue Group for this SDP binding";
17948 }
17949
17950 } // container fp-redirect-group
17951
17952 } // container network
17953
17954 } // container qos
17955
17956 } // container ingress
17957
17958 } // container network
17959
17960 list egress-vtep {
17961 key "ip-address";
17962 description "Enter the egress-vtep context";
17963
17964 leaf ip-address {
17965 type union {
17966 type string {
17967 length "1..64";
17968 pattern "<.*>" {
17969 error-message "Config Groups Regex Pattern";
17970 }
17971 }
17972 type types-sros:ip-unicast-address;
17973 }
17974 description "configure egress vtep address for entry";
17975 }
17976
17977 } // list egress-vtep
17978
17979 container fdb {
17980 description "Enter the fdb context";
17981
17982 leaf discard-unknown-source {
17983 type boolean;
17984 default "false";
17985 description "Enable/disable discarding of frames with unknown source";
17986 }
17987
17988 leaf maximum-mac-addresses {
17989 type types-services:max-mac-addr;
17990 description "Maximum number of MAC entries in the FDB from this vxlan instance";
17991 }
17992
17993 leaf protected-src-mac-violation-action {
17994 type types-services:vxlan-protected-src-mac-violation-action;
17995 description "Action when a relearn request for a protected MAC is received";
17996 }
17997
17998 container mac-learning {
17999 description "Enter the mac-learning context";
18000
18001 leaf learning {
18002 type boolean;
18003 default "false";
18004 description "Enable/disable learning of new MAC addresses";
18005 }
18006
18007 leaf aging {
18008 type boolean;
18009 default "false";
18010 description "Enable/disable aging of MAC addresses";
18011 }
18012
18013 } // container mac-learning
18014
18015 } // container fdb
18016
18017 container igmp-snooping {
18018 description "igmp-snooping configuration for the VXLAN instance.";
18019
18020 leaf mrouter-port {
18021 type boolean;
18022 default "false";
18023 description "Configure as a multicast router port.";
18024 }
18025
18026 } // container igmp-snooping
18027
18028 container mld-snooping {
18029 description "mld-snooping configuration for the VXLAN instance.";
18030
18031 leaf mrouter-port {
18032 type boolean;
18033 default "false";
18034 description "Configure as a multicast router port.";
18035 }
18036
18037 } // container mld-snooping
18038
18039 } // list instance
18040
18041 } // container vxlan
18042
18043 container proxy-arp {
18044 presence "Enable proxy arp configuration information.";
18045 description "Enter the proxy-arp context";
18046
18047 leaf admin-state {
18048 type types-sros:admin-state;
18049 default "disable";
18050 description "Administrative state of the proxy";
18051 }
18052
18053 leaf dynamic-populate {
18054 type boolean;
18055 default "false";
18056 description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings";
18057 }
18058
18059 leaf age-time {
18060 type union {
18061 type int32 {
18062 range "60..86400";
18063 }
18064 type enumeration {
18065 enum "never" { value 0; }
18066 }
18067 }
18068 units "seconds";
18069 default "never";
18070 description "Aging timer for proxy entries, where entries are flushed upon timer expiry";
18071 }
18072
18073 leaf send-refresh {
18074 type union {
18075 type int32 {
18076 range "120..86400";
18077 }
18078 type enumeration {
18079 enum "never" { value 0; }
18080 }
18081 }
18082 default "never";
18083 description "Time at which to send a refresh message";
18084 }
18085
18086 leaf table-size {
18087 type int32 {
18088 range "1..16383";
18089 }
18090 default "250";
18091 description "Maximum number of learned and static entries allowed in the proxy table of this service";
18092 }
18093
18094 container evpn {
18095 description "Enter the evpn context";
18096
18097 leaf route-tag {
18098 type int32 {
18099 range "0|1..255";
18100 }
18101 default "0";
18102 description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module";
18103 }
18104
18105 container flood {
18106 description "Enter the flood context";
18107
18108 leaf unknown-arp-req {
18109 type boolean;
18110 default "true";
18111 description "Flood ARP-requests (with source squelching) if there is no active proxy-ARP entry for requested IP";
18112 }
18113
18114 leaf gratuitous-arp {
18115 type boolean;
18116 default "true";
18117 description "Flood GARP-requests/GARP-replies to the EVPN";
18118 }
18119
18120 } // container flood
18121
18122 } // container evpn
18123
18124 container duplicate-detect {
18125 description "Enter the duplicate-detect context";
18126
18127 leaf anti-spoof-mac {
18128 type types-sros:mac-unicast-address-no-zero;
18129 description "MAC address to replace the proxy-ARP/ND offending entry's MAC";
18130 }
18131
18132 leaf window {
18133 type int32 {
18134 range "1..15";
18135 }
18136 units "minutes";
18137 default "3";
18138 description "Time to monitor the MAC address in the anti-spoofing mechanism";
18139 }
18140
18141 leaf num-moves {
18142 type int32 {
18143 range "3..10";
18144 }
18145 default "5";
18146 description "Number of moves required to declare a duplicate entry";
18147 }
18148
18149 leaf hold-down-time {
18150 type union {
18151 type uint32 {
18152 range "2..60";
18153 }
18154 type enumeration {
18155 enum "max" { value -1; }
18156 }
18157 }
18158 units "minutes";
18159 default "9";
18160 description "Hold down time for a duplicate entry";
18161 }
18162
18163 leaf static-blackhole {
18164 type boolean;
18165 default "false";
18166 description "Consider anti-spoof MAC as black-hole static MAC in FDB";
18167 }
18168
18169 } // container duplicate-detect
18170
18171 container static-arp {
18172 description "Enter the static-arp context";
18173
18174 list ip-address {
18175 key "ipv4-address";
18176 description "Enter the ip-address context";
18177
18178 leaf ipv4-address {
18179 type union {
18180 type string {
18181 length "1..64";
18182 pattern "<.*>" {
18183 error-message "Config Groups Regex Pattern";
18184 }
18185 }
18186 type types-sros:ipv4-unicast-address;
18187 }
18188 description "Proxy ARP IP address";
18189 }
18190
18191 leaf mac {
18192 type types-sros:mac-unicast-address-no-zero;
18193 mandatory true;
18194 description "Proxy ARP MAC address for static entry";
18195 }
18196
18197 } // list ip-address
18198
18199 } // container static-arp
18200
18201 container dynamic-arp {
18202 description "Enter the dynamic-arp context";
18203
18204 list ip-address {
18205 key "ipv4-address";
18206 description "Enter the ip-address context";
18207
18208 leaf ipv4-address {
18209 type union {
18210 type string {
18211 length "1..64";
18212 pattern "<.*>" {
18213 error-message "Config Groups Regex Pattern";
18214 }
18215 }
18216 type types-sros:ipv4-unicast-address;
18217 }
18218 description "Proxy ARP IP address";
18219 }
18220
18221 leaf mac-list {
18222 type types-sros:named-item;
18223 description "MAC list for the dynamic entry";
18224 }
18225
18226 leaf resolve-retry-time {
18227 type int32 {
18228 range "1..60";
18229 }
18230 units "minutes";
18231 default "5";
18232 description "Frequency at which the resolve messages are sent";
18233 }
18234
18235 } // list ip-address
18236
18237 } // container dynamic-arp
18238
18239 } // container proxy-arp
18240
18241 container proxy-nd {
18242 presence "Enable proxy nd configuration information.";
18243 description "Enter the proxy-nd context";
18244
18245 leaf admin-state {
18246 type types-sros:admin-state;
18247 default "disable";
18248 description "Administrative state of the proxy";
18249 }
18250
18251 leaf dynamic-populate {
18252 type boolean;
18253 default "false";
18254 description "Populate proxy ARP entries from snooped GARP/ARP/ND messages on SAPs/SDP-bindings";
18255 }
18256
18257 leaf age-time {
18258 type union {
18259 type int32 {
18260 range "60..86400";
18261 }
18262 type enumeration {
18263 enum "never" { value 0; }
18264 }
18265 }
18266 units "seconds";
18267 default "never";
18268 description "Aging timer for proxy entries, where entries are flushed upon timer expiry";
18269 }
18270
18271 leaf send-refresh {
18272 type union {
18273 type int32 {
18274 range "120..86400";
18275 }
18276 type enumeration {
18277 enum "never" { value 0; }
18278 }
18279 }
18280 default "never";
18281 description "Time at which to send a refresh message";
18282 }
18283
18284 leaf table-size {
18285 type int32 {
18286 range "1..16383";
18287 }
18288 default "250";
18289 description "Maximum number of learned and static entries allowed in the proxy table of this service";
18290 }
18291
18292 container evpn {
18293 description "Enter the evpn context";
18294
18295 leaf route-tag {
18296 type int32 {
18297 range "0|1..255";
18298 }
18299 default "0";
18300 description "Route tag used on export policies to match MAC/IP routes generated by proxy-ARP or proxy-ND module";
18301 }
18302
18303 leaf advertise-neighbor-type {
18304 type enumeration {
18305 enum "router" { value 1; }
18306 enum "host" { value 2; }
18307 }
18308 default "router";
18309 description "Advertisement type of static or dynamic entries in the EVPN";
18310 }
18311
18312 container flood {
18313 description "Enter the flood context";
18314
18315 leaf unknown-neighbor-solicitation {
18316 type boolean;
18317 default "true";
18318 description "Flood unsolicited Neighbor Solicitation messages (with source squelching) into EVPN network";
18319 }
18320
18321 leaf unknown-neighbor-advertise-router {
18322 type boolean;
18323 default "true";
18324 description "Flood router unsolicited Neighbor Advertisement (NA) replies to EVPN";
18325 }
18326
18327 leaf unknown-neighbor-advertise-host {
18328 type boolean;
18329 default "true";
18330 description "Flood host unsolicited Neighbor Advertisement (NA) replies to EVPN";
18331 }
18332
18333 } // container flood
18334
18335 } // container evpn
18336
18337 container duplicate-detect {
18338 description "Enter the duplicate-detect context";
18339
18340 leaf anti-spoof-mac {
18341 type types-sros:mac-unicast-address-no-zero;
18342 description "MAC address to replace the proxy-ARP/ND offending entry's MAC";
18343 }
18344
18345 leaf window {
18346 type int32 {
18347 range "1..15";
18348 }
18349 units "minutes";
18350 default "3";
18351 description "Time to monitor the MAC address in the anti-spoofing mechanism";
18352 }
18353
18354 leaf num-moves {
18355 type int32 {
18356 range "3..10";
18357 }
18358 default "5";
18359 description "Number of moves required to declare a duplicate entry";
18360 }
18361
18362 leaf hold-down-time {
18363 type union {
18364 type uint32 {
18365 range "2..60";
18366 }
18367 type enumeration {
18368 enum "max" { value -1; }
18369 }
18370 }
18371 units "minutes";
18372 default "9";
18373 description "Hold down time for a duplicate entry";
18374 }
18375
18376 leaf static-blackhole {
18377 type boolean;
18378 default "false";
18379 description "Consider anti-spoof MAC as black-hole static MAC in FDB";
18380 }
18381
18382 } // container duplicate-detect
18383
18384 container static-neighbor {
18385 description "Enter the static-neighbor context";
18386
18387 list ip-address {
18388 key "ipv6-address";
18389 description "Enter the ip-address context";
18390
18391 leaf ipv6-address {
18392 type union {
18393 type string {
18394 length "1..64";
18395 pattern "<.*>" {
18396 error-message "Config Groups Regex Pattern";
18397 }
18398 }
18399 type types-sros:ipv6-unicast-address;
18400 }
18401 description "Proxy ND IP address";
18402 }
18403
18404 leaf mac {
18405 type types-sros:mac-unicast-address-no-zero;
18406 mandatory true;
18407 description "Proxy ARP MAC address for static entry";
18408 }
18409
18410 leaf type {
18411 type enumeration {
18412 enum "host" { value 0; }
18413 enum "router" { value 1; }
18414 }
18415 default "router";
18416 description "Entry type";
18417 }
18418
18419 } // list ip-address
18420
18421 } // container static-neighbor
18422
18423 container dynamic-neighbor {
18424 description "Enter the dynamic-neighbor context";
18425
18426 list ip-address {
18427 key "ipv6-address";
18428 description "Enter the ip-address context";
18429
18430 leaf ipv6-address {
18431 type union {
18432 type string {
18433 length "1..64";
18434 pattern "<.*>" {
18435 error-message "Config Groups Regex Pattern";
18436 }
18437 }
18438 type types-sros:ipv6-unicast-address;
18439 }
18440 description "Proxy ND IP address";
18441 }
18442
18443 leaf mac-list {
18444 type types-sros:named-item;
18445 description "MAC list for the dynamic entry";
18446 }
18447
18448 leaf resolve-retry-time {
18449 type int32 {
18450 range "1..60";
18451 }
18452 units "minutes";
18453 default "5";
18454 description "Frequency at which the resolve messages are sent";
18455 }
18456
18457 } // list ip-address
18458
18459 } // container dynamic-neighbor
18460
18461 } // container proxy-nd
18462
18463 container routed-vpls {
18464 presence "Enable to allow IP interface binding information.";
18465 description "Enter the routed-vpls context";
18466
18467 leaf vxlan-ipv4-tep-ecmp {
18468 type boolean;
18469 default "false";
18470 description "Use ECMP on VXLAN IPv4 destinations for R-VPLS services";
18471 }
18472
18473 container multicast {
18474 description "Enter the multicast context";
18475
18476 container ipv4 {
18477 description "Enter the ipv4 context";
18478
18479 leaf forward-to-ip-interface {
18480 type boolean;
18481 default "false";
18482 description "Forward IPv4 multicast from RVPLS to L3 interface";
18483 }
18484
18485 container igmp-snooping {
18486 description "Enter the igmp-snooping context";
18487
18488 leaf mrouter-port {
18489 type boolean;
18490 default "false";
18491 description "VPLS L3 interface as a multicast router port";
18492 }
18493
18494 } // container igmp-snooping
18495
18496 } // container ipv4
18497
18498 container ipv6 {
18499 description "Enter the ipv6 context";
18500
18501 leaf forward-to-ip-interface {
18502 type boolean;
18503 default "false";
18504 description "Forward IPv6 multicast from RVPLS to L3 interface";
18505 }
18506
18507 container mld-snooping {
18508 description "Enter the mld-snooping context";
18509
18510 leaf mrouter-port {
18511 type boolean;
18512 default "false";
18513 description "VPLS L3 interface as a multicast router port";
18514 }
18515
18516 } // container mld-snooping
18517
18518 } // container ipv6
18519
18520 } // container multicast
18521
18522 } // container routed-vpls
18523
18524 container load-balancing {
18525 description "Enter the load-balancing context";
18526
18527 leaf per-service-hashing {
18528 type boolean;
18529 default "false";
18530 description "Enable/disable per service hashing.";
18531 }
18532
18533 leaf spi-load-balancing {
18534 type boolean;
18535 default "false";
18536 description "Allow use of SPI (Security Parameter Index) in hashing for ESP/AH encrypted IPv4/IPv6 traffic";
18537 }
18538
18539 leaf teid-load-balancing {
18540 type boolean;
18541 default "false";
18542 description "Include TEID in hashing algorithm for GTP-U/C encapsulated traffic";
18543 }
18544
18545 } // container load-balancing
18546
18547 container pbb {
18548 description "Enter the pbb context";
18549
18550 leaf force-qtag-forwarding {
18551 type boolean;
18552 default "false";
18553 description "Enable 802.1q tag forwarding";
18554 }
18555
18556 list backbone-vpls {
18557 key "backbone-vpls-service-name";
18558 max-elements 1;
18559 description "Enter the backbone-vpls context";
18560
18561 leaf backbone-vpls-service-name {
18562 type union {
18563 type string {
18564 length "1..64";
18565 pattern "<.*>" {
18566 error-message "Config Groups Regex Pattern";
18567 }
18568 }
18569 type types-services:service-name;
18570 }
18571 description "Backbone VPLS service";
18572 }
18573
18574 leaf isid {
18575 type types-services:isid;
18576 sros-ext:immutable;
18577 mandatory true;
18578 description "Backbone VPLS ISID";
18579 }
18580
18581 container igmp-snooping {
18582 description "Enter the igmp-snooping context";
18583
18584 list mrouter-destination {
18585 key "mac-reference";
18586 description "Enter the mrouter-destination context";
18587
18588 leaf mac-reference {
18589 type union {
18590 type string {
18591 length "1..64";
18592 pattern "<.*>" {
18593 error-message "Config Groups Regex Pattern";
18594 }
18595 }
18596 type types-sros:named-item;
18597 }
18598 description "Mac name reference";
18599 }
18600
18601 } // list mrouter-destination
18602
18603 } // container igmp-snooping
18604
18605 container mld-snooping {
18606 description "Enter the mld-snooping context";
18607
18608 list mrouter-destination {
18609 key "mac-reference";
18610 description "Enter the mrouter-destination context";
18611
18612 leaf mac-reference {
18613 type union {
18614 type string {
18615 length "1..64";
18616 pattern "<.*>" {
18617 error-message "Config Groups Regex Pattern";
18618 }
18619 }
18620 type types-sros:named-item;
18621 }
18622 description "Mac name reference";
18623 }
18624
18625 } // list mrouter-destination
18626
18627 } // container mld-snooping
18628
18629 list sap {
18630 key "sap-id";
18631 description "Enter the sap context";
18632
18633 leaf sap-id {
18634 type union {
18635 type string {
18636 length "1..64";
18637 pattern "<.*>" {
18638 error-message "Config Groups Regex Pattern";
18639 }
18640 }
18641 type types-sros:sap;
18642 }
18643 description "Backbone VPLS SAP";
18644 }
18645
18646 container igmp-snooping {
18647 description "Enter the igmp-snooping context";
18648
18649 leaf mrouter-port {
18650 type boolean;
18651 default "false";
18652 description "Port as a multicast router port";
18653 }
18654
18655 } // container igmp-snooping
18656
18657 container mld-snooping {
18658 description "Enter the mld-snooping context";
18659
18660 leaf mrouter-port {
18661 type boolean;
18662 default "false";
18663 description "Port as a multicast router port";
18664 }
18665
18666 } // container mld-snooping
18667
18668 } // list sap
18669
18670 list spoke-sdp {
18671 key "sdp-bind-id";
18672 description "Enter the spoke-sdp context";
18673
18674 leaf sdp-bind-id {
18675 type union {
18676 type string {
18677 length "1..64";
18678 pattern "<.*>" {
18679 error-message "Config Groups Regex Pattern";
18680 }
18681 }
18682 type types-services:sdp-bind-id;
18683 }
18684 description "Backbone VPLS SAP";
18685 }
18686
18687 container igmp-snooping {
18688 description "Enter the igmp-snooping context";
18689
18690 leaf mrouter-port {
18691 type boolean;
18692 default "false";
18693 description "Port as a multicast router port";
18694 }
18695
18696 } // container igmp-snooping
18697
18698 container mld-snooping {
18699 description "Enter the mld-snooping context";
18700
18701 leaf mrouter-port {
18702 type boolean;
18703 default "false";
18704 description "Port as a multicast router port";
18705 }
18706
18707 } // container mld-snooping
18708
18709 } // list spoke-sdp
18710
18711 list mesh-sdp {
18712 key "sdp-bind-id";
18713 description "Enter the mesh-sdp context";
18714
18715 leaf sdp-bind-id {
18716 type union {
18717 type string {
18718 length "1..64";
18719 pattern "<.*>" {
18720 error-message "Config Groups Regex Pattern";
18721 }
18722 }
18723 type types-services:sdp-bind-id;
18724 }
18725 description "Backbone VPLS SAP";
18726 }
18727
18728 container igmp-snooping {
18729 description "Enter the igmp-snooping context";
18730
18731 leaf mrouter-port {
18732 type boolean;
18733 default "false";
18734 description "Port as a multicast router port";
18735 }
18736
18737 } // container igmp-snooping
18738
18739 container mld-snooping {
18740 description "Enter the mld-snooping context";
18741
18742 leaf mrouter-port {
18743 type boolean;
18744 default "false";
18745 description "Port as a multicast router port";
18746 }
18747
18748 } // container mld-snooping
18749
18750 } // list mesh-sdp
18751
18752 } // list backbone-vpls
18753
18754 container i-vpls-mac-flush {
18755 description "Enter the i-vpls-mac-flush context";
18756
18757 container tldp {
18758 description "Enter the tldp context";
18759
18760 leaf send-on-bvpls-failure {
18761 type boolean;
18762 default "false";
18763 description "Send flush-all-from-me on b-vpls failure";
18764 }
18765
18766 leaf propagate-from-bvpls {
18767 type boolean;
18768 default "false";
18769 description "Propagate mac-flush from b-vpls into local i-vpls";
18770 }
18771
18772 container send-to-bvpls {
18773 description "Enter the send-to-bvpls context";
18774
18775 leaf all-from-me {
18776 type boolean;
18777 default "false";
18778 description "Generate LDP MAC withdraw all from me message to b-VPLS";
18779 }
18780
18781 leaf all-but-mine {
18782 type boolean;
18783 default "false";
18784 description "Generate LDP MAC withdraw message to b-VPLS";
18785 }
18786
18787 } // container send-to-bvpls
18788
18789 } // container tldp
18790
18791 container bgp-evpn {
18792 description "Enter the bgp-evpn context";
18793
18794 leaf send-to-bvpls {
18795 type boolean;
18796 default "false";
18797 description "Send b-VPLS EVPN flush";
18798 }
18799
18800 } // container bgp-evpn
18801
18802 } // container i-vpls-mac-flush
18803
18804 container source-bmac {
18805 description "Enter the source-bmac context";
18806
18807 leaf address {
18808 type types-sros:mac-unicast-address-no-zero;
18809 description "Backbone source MAC address used for PBB";
18810 }
18811
18812 leaf use-es-bmac-lsb {
18813 type boolean;
18814 default "false";
18815 description "Use ethernet segment backbone MAC LSB";
18816 }
18817
18818 leaf use-mclag-bmac-lsb {
18819 type boolean;
18820 default "false";
18821 description "Use MC LAG backbone MAC LSB";
18822 }
18823
18824 } // container source-bmac
18825
18826 container mac-notification {
18827 description "Enter the mac-notification context";
18828
18829 leaf admin-state {
18830 type types-sros:admin-state;
18831 default "disable";
18832 description "Administrative state of MAC notification";
18833 }
18834
18835 leaf count {
18836 type uint32 {
18837 range "1..10";
18838 }
18839 description "MAC notification messages count";
18840 }
18841
18842 leaf interval {
18843 type uint32 {
18844 range "1..100";
18845 }
18846 units "deciseconds";
18847 description "Interval for MAC notification messages";
18848 }
18849
18850 leaf renotify {
18851 type union {
18852 type uint32 {
18853 range "240..840";
18854 }
18855 type enumeration {
18856 enum "none" { value 0; }
18857 }
18858 }
18859 units "seconds";
18860 default "none";
18861 description "Re-notify interval for MAC-notification messages";
18862 }
18863
18864 } // container mac-notification
18865
18866 } // container pbb
18867
18868 list bgp {
18869 key "bgp-instance";
18870 description "Enter the bgp context";
18871
18872 leaf bgp-instance {
18873 type union {
18874 type string {
18875 length "1..64";
18876 pattern "<.*>" {
18877 error-message "Config Groups Regex Pattern";
18878 }
18879 }
18880 type int32 {
18881 range "1..2";
18882 }
18883 }
18884 description "BGP instance";
18885 }
18886
18887 leaf route-distinguisher {
18888 type types-services:vpn-route-distinguisher-or-auto-rd;
18889 description "High-order 6 bytes that are used as string to compose VSI-ID for use in NLRI";
18890 }
18891
18892 leaf-list vsi-import {
18893 type types-sros:named-item-64;
18894 max-elements 5;
18895 ordered-by user;
18896 description "VSI import policies";
18897 }
18898
18899 leaf-list vsi-export {
18900 type types-sros:named-item-64;
18901 max-elements 5;
18902 ordered-by user;
18903 description "VSI export policies";
18904 }
18905
18906 container route-target {
18907 description "Enter the route-target context";
18908
18909 leaf export {
18910 type types-services:route-target;
18911 description "Extended community name for default import policy";
18912 }
18913
18914 leaf import {
18915 type types-services:route-target;
18916 description "Extended community name for default import policy";
18917 }
18918
18919 } // container route-target
18920
18921 list pw-template-binding {
18922 key "pw-template-name";
18923 max-elements 100;
18924 description "Enter the pw-template-binding context";
18925
18926 leaf pw-template-name {
18927 type union {
18928 type string {
18929 length "1..64";
18930 pattern "<.*>" {
18931 error-message "Config Groups Regex Pattern";
18932 }
18933 }
18934 type types-services:pw-template-name;
18935 }
18936 description "PW template policy name";
18937 }
18938
18939 leaf split-horizon-group {
18940 type types-sros:named-item;
18941 description "Split horizon group";
18942 }
18943
18944 leaf bfd-template {
18945 type types-sros:named-item;
18946 description "BFD template name for PW-Template binding";
18947 }
18948
18949 leaf bfd-liveness {
18950 type boolean;
18951 default "false";
18952 description "Enable BFD";
18953 }
18954
18955 leaf-list import-rt {
18956 type types-services:route-target;
18957 max-elements 5;
18958 description "Import route-target communities";
18959 }
18960
18961 choice oper-group-association {
18962 case oper-group {
18963
18964 leaf oper-group {
18965 type types-sros:named-item;
18966 description "Operational group";
18967 }
18968
18969 }
18970 case monitor-oper-group {
18971
18972 leaf monitor-oper-group {
18973 type types-sros:named-item;
18974 description "Oerational group to monitor";
18975 }
18976
18977 }
18978 }
18979 } // list pw-template-binding
18980
18981 } // list bgp
18982
18983 container igmp-snooping {
18984 description "Enter the igmp-snooping context";
18985
18986 leaf admin-state {
18987 type types-sros:admin-state;
18988 default "disable";
18989 description "Administrative state of IGMP snooping";
18990 }
18991
18992 leaf query-interval {
18993 type types-sros:time-duration {
18994 range "1..65535";
18995 }
18996 units "seconds";
18997 default "125";
18998 description "Time between two consecutive host-query messages";
18999 }
19000
19001 leaf robust-count {
19002 type uint32 {
19003 range "1..255";
19004 }
19005 default "2";
19006 description "Robustness variable";
19007 }
19008
19009 leaf report-source-address {
19010 type types-sros:ipv4-address;
19011 description "Source address used when generating IGMP reports.";
19012 }
19013
19014 leaf query-source-address {
19015 type union {
19016 type enumeration {
19017 enum "system" { value 1; }
19018 }
19019 type types-sros:ipv4-address;
19020 }
19021 default "system";
19022 description "Source address for IGMP queries";
19023 }
19024
19025 container mvr {
19026 description "Enter the mvr context";
19027
19028 leaf admin-state {
19029 type types-sros:admin-state;
19030 default "disable";
19031 description "Administrative state of MVR";
19032 }
19033
19034 leaf group-policy {
19035 type types-sros:named-item;
19036 description "Policy that applies MVR";
19037 }
19038
19039 leaf description {
19040 type types-sros:description;
19041 description "Text description";
19042 }
19043
19044 } // container mvr
19045
19046 } // container igmp-snooping
19047
19048 container mld-snooping {
19049 description "Enter the mld-snooping context";
19050
19051 leaf admin-state {
19052 type types-sros:admin-state;
19053 default "disable";
19054 description "Administrative state of IGMP snooping";
19055 }
19056
19057 leaf query-interval {
19058 type types-sros:time-duration {
19059 range "1..65535";
19060 }
19061 units "seconds";
19062 default "125";
19063 description "Time between two consecutive host-query messages";
19064 }
19065
19066 leaf robust-count {
19067 type uint32 {
19068 range "1..255";
19069 }
19070 default "2";
19071 description "Robustness variable";
19072 }
19073
19074 leaf report-source-address {
19075 type types-sros:ipv6-address;
19076 description "Source address used when generating MLD reports.";
19077 }
19078
19079 leaf query-source-address {
19080 type union {
19081 type enumeration {
19082 enum "system" { value 1; }
19083 }
19084 type types-sros:ipv6-address;
19085 }
19086 default "system";
19087 description "Source address used when generating MLD queries.";
19088 }
19089
19090 container mvr {
19091 description "Enter the mvr context";
19092
19093 leaf admin-state {
19094 type types-sros:admin-state;
19095 default "disable";
19096 description "Administrative state of MVR";
19097 }
19098
19099 leaf group-policy {
19100 type types-sros:named-item;
19101 description "Policy that applies MVR";
19102 }
19103
19104 leaf description {
19105 type types-sros:description;
19106 description "Text description";
19107 }
19108
19109 } // container mvr
19110
19111 } // container mld-snooping
19112
19113 container pim-snooping {
19114 presence "Enable PIM on this service.";
19115 description "Enter the pim-snooping context";
19116
19117 leaf hold-time {
19118 type uint32 {
19119 range "0..300";
19120 }
19121 units "seconds";
19122 default "90";
19123 description "Duration that allows the PIM-snooping switch to snoop all the PIM states in the VPLS";
19124 }
19125
19126 leaf-list group-policy {
19127 type types-sros:display-string;
19128 max-elements 5;
19129 ordered-by user;
19130 description "Group policy name";
19131 }
19132
19133 container ipv4 {
19134 description "Enter the ipv4 context";
19135
19136 leaf admin-state {
19137 type types-sros:admin-state;
19138 default "enable";
19139 description "Administrative state of snooping";
19140 }
19141
19142 } // container ipv4
19143
19144 container ipv6 {
19145 description "Enter the ipv6 context";
19146
19147 leaf admin-state {
19148 type types-sros:admin-state;
19149 default "disable";
19150 description "Administrative state of snooping";
19151 }
19152
19153 } // container ipv6
19154
19155 } // container pim-snooping
19156
19157 container bgp-ad {
19158 presence "Enable BGP AD information.";
19159 description "Enter the bgp-ad context";
19160
19161 leaf admin-state {
19162 type types-sros:admin-state;
19163 default "disable";
19164 description "Administrative state of BGP AD";
19165 }
19166
19167 leaf vpls-id {
19168 type types-services:vpls-id;
19169 description "VPLS identifier as a 8-byte route distinguisher";
19170 }
19171
19172 leaf vsi-id-prefix {
19173 type types-sros:ipv4-address;
19174 description "VSI prefix value";
19175 }
19176
19177 } // container bgp-ad
19178
19179 container bgp-evpn {
19180 presence "Enable BGP EVPN information.";
19181 description "Enter the bgp-evpn context";
19182
19183 leaf accept-ivpls-evpn-flush {
19184 type boolean;
19185 default "false";
19186 description "Accept non-zero ethernet-tag MAC routes and process for CMAC flushing";
19187 }
19188
19189 leaf evi {
19190 type types-services:evi;
19191 description "EVPN ID";
19192 }
19193
19194 leaf incl-mcast-orig-ip {
19195 type types-sros:ipv4-unicast-address;
19196 description "Originating IP address";
19197 }
19198
19199 container routes {
19200 description "Enter the routes context";
19201
19202 container mac-ip {
19203 description "Enter the mac-ip context";
19204
19205 leaf advertise {
19206 type boolean;
19207 default "true";
19208 description "Status for the BGP-EVPN MAC/IP routes advertisement";
19209 }
19210
19211 leaf cfm-mac {
19212 type boolean;
19213 default "false";
19214 description
19215 "Enable/disable the advertisement of MEP, MIP, and VMEP
19216 MAC addresses over the BGP EVPN.";
19217 }
19218
19219 leaf unknown-mac {
19220 type boolean;
19221 default "false";
19222 description
19223 "Enable/disable the advertisement of MEP, MIP, and VMEP
19224 MAC addresses over the BGP EVPN.";
19225 }
19226
19227 } // container mac-ip
19228
19229 container ip-prefix {
19230 description "Enter the ip-prefix context";
19231
19232 leaf advertise {
19233 type boolean;
19234 default "false";
19235 description "Status for the IP prefix routes advertisement";
19236 }
19237
19238 leaf include-direct-interface-host {
19239 type boolean;
19240 default "false";
19241 description "BGP EVPN IP route advertisement";
19242 }
19243
19244 } // container ip-prefix
19245
19246 container incl-mcast {
19247 description "Enter the incl-mcast context";
19248
19249 leaf advertise-ingress-replication {
19250 type boolean;
19251 default "true";
19252 description "BGP EVPN IMET-IR route advertisement";
19253 }
19254
19255 } // container incl-mcast
19256
19257 } // container routes
19258
19259 container mac-duplication {
19260 description "Enter the mac-duplication context";
19261
19262 leaf retry {
19263 type union {
19264 type uint32 {
19265 range "2..60";
19266 }
19267 type enumeration {
19268 enum "never" { value 0; }
19269 }
19270 }
19271 units "minutes";
19272 default "9";
19273 description "BGP EVPN MAC duplication retry";
19274 }
19275
19276 leaf blackhole {
19277 type boolean;
19278 default "false";
19279 description "Enable black hole dup MAC configuration";
19280 }
19281
19282 container detect {
19283 description "Enter the detect context";
19284
19285 leaf num-moves {
19286 type uint32 {
19287 range "3..10";
19288 }
19289 default "5";
19290 description "BGP EVPN MAC duplication detection number of moves";
19291 }
19292
19293 leaf window {
19294 type uint32 {
19295 range "1..15";
19296 }
19297 units "minutes";
19298 default "3";
19299 description "BGP EVPN MAC duplication detection window";
19300 }
19301
19302 } // container detect
19303
19304 } // container mac-duplication
19305
19306 container isid-route-target {
19307 description "Enter the isid-route-target context";
19308
19309 list range {
19310 key "start";
19311 max-elements 8192;
19312 description "Enter the range context";
19313
19314 leaf start {
19315 type union {
19316 type string {
19317 length "1..64";
19318 pattern "<.*>" {
19319 error-message "Config Groups Regex Pattern";
19320 }
19321 }
19322 type types-sros:svc-isid-non-zero;
19323 }
19324 default "1";
19325 description "Starting value of the isid-range entry";
19326 }
19327
19328 leaf end {
19329 type types-sros:svc-isid-non-zero;
19330 mandatory true;
19331 description "Ending value of the isid-range entry";
19332 }
19333
19334 leaf type {
19335 type enumeration {
19336 enum "auto" { value 1; }
19337 enum "configured" { value 2; }
19338 }
19339 sros-ext:immutable;
19340 default "auto";
19341 description "Method used to support the PBB-EVPN ISID-based route target advertisement";
19342 }
19343
19344 leaf route-target {
19345 type types-services:route-target;
19346 sros-ext:immutable;
19347 description "Route for the ISID range";
19348 }
19349
19350 } // list range
19351
19352 } // container isid-route-target
19353
19354 list vxlan {
19355 key "bgp-instance";
19356 description "Enter the vxlan context";
19357
19358 leaf bgp-instance {
19359 type union {
19360 type string {
19361 length "1..64";
19362 pattern "<.*>" {
19363 error-message "Config Groups Regex Pattern";
19364 }
19365 }
19366 type int32 {
19367 range "1..2";
19368 }
19369 }
19370 description "BGP instance";
19371 }
19372
19373 leaf vxlan-instance {
19374 type uint32 {
19375 range "1..2";
19376 }
19377 sros-ext:immutable;
19378 mandatory true;
19379 description "VXLAN instance";
19380 }
19381
19382 leaf admin-state {
19383 type types-sros:admin-state;
19384 default "disable";
19385 description "Administrative state of BGP EVPN VXLAN";
19386 }
19387
19388 leaf send-tunnel-encap {
19389 type boolean;
19390 default "true";
19391 description "Enable/Disable sending Vxlan Encap.";
19392 }
19393
19394 leaf send-incl-mcast-ir-on-ndf {
19395 type boolean;
19396 default "true";
19397 description "Allow IMET-IR on NDF";
19398 }
19399
19400 leaf default-route-tag {
19401 type types-services:one-byte-value;
19402 description "Default route tag to match against export policies: value as 0xXX.";
19403 }
19404
19405 leaf ecmp {
19406 type types-services:ecmp-value;
19407 default "1";
19408 description "Maximum ECMP routes information.";
19409 }
19410
19411 leaf mh-mode {
19412 type enumeration {
19413 enum "access" { value 0; }
19414 enum "network" { value 1; }
19415 }
19416 default "access";
19417 description "Multi-homing mode";
19418 }
19419
19420 container routes {
19421 description "BGP-EVPN vxlan routes information";
19422
19423 container auto-disc {
19424 description "BGP-EVPN vxlan routes auto-discovery information";
19425
19426 leaf advertise {
19427 type boolean;
19428 default "false";
19429 description "Route advertise on auto discovery";
19430 }
19431
19432 } // container auto-disc
19433
19434 } // container routes
19435
19436 } // list vxlan
19437
19438 list mpls {
19439 key "bgp-instance";
19440 description "Enter the mpls context";
19441
19442 leaf bgp-instance {
19443 type union {
19444 type string {
19445 length "1..64";
19446 pattern "<.*>" {
19447 error-message "Config Groups Regex Pattern";
19448 }
19449 }
19450 type int32 {
19451 range "1..2";
19452 }
19453 }
19454 description "BGP instance";
19455 }
19456
19457 leaf admin-state {
19458 type types-sros:admin-state;
19459 default "disable";
19460 description "Administrative state of BGP EVPN MPLS";
19461 }
19462
19463 leaf force-vc-forwarding {
19464 type types-services:bgp-evpn-force-vc-forwarding;
19465 description "Forces vlan-vc-type forwarding in the data-path.";
19466 }
19467
19468 leaf control-word {
19469 type boolean;
19470 default "false";
19471 description "Enable/disable setting the CW bit in the label message.";
19472 }
19473
19474 leaf split-horizon-group {
19475 type types-sros:named-item;
19476 description "Split horizon group";
19477 }
19478
19479 leaf ingress-replication-bum-label {
19480 type boolean;
19481 default "false";
19482 description "Use the same label as the one advertised for unicast traffic";
19483 }
19484
19485 leaf ecmp {
19486 type types-services:ecmp-value;
19487 default "1";
19488 description "Maximum ECMP routes information";
19489 }
19490
19491 leaf entropy-label {
19492 type boolean;
19493 default "false";
19494 description "Enable/disable use of entropy-label.";
19495 }
19496
19497 leaf default-route-tag {
19498 type types-services:one-byte-value;
19499 description "Default route tag to match against export policies: value as 0xXX.";
19500 }
19501
19502 container send-tunnel-encap {
19503 description "Enter the send-tunnel-encap context";
19504
19505 leaf mpls {
19506 type boolean;
19507 default "true";
19508 description "Enable/disable MPLS encapsulation for this service.";
19509 }
19510
19511 leaf mpls-over-udp {
19512 type boolean;
19513 default "false";
19514 description "Enable/disable MPLS over UDP encapsulation for this service.";
19515 }
19516
19517 } // container send-tunnel-encap
19518
19519 container auto-bind-tunnel {
19520 description "Enter the auto-bind-tunnel context";
19521
19522 leaf resolution {
19523 type types-services:resolve-status;
19524 default "none";
19525 description "Resolution method for tunnel selection";
19526 }
19527
19528 leaf enforce-strict-tunnel-tagging {
19529 type boolean;
19530 default "false";
19531 description "Enable/disable enforcement of strict tunnel tagging";
19532 }
19533
19534 container resolution-filter {
19535 description "Enter the resolution-filter context";
19536
19537 leaf bgp {
19538 type boolean;
19539 default "false";
19540 description "Set BGP type for auto bind tunnel";
19541 }
19542
19543 leaf ldp {
19544 type boolean;
19545 default "false";
19546 description "Enable/disable setting LDP type for auto-bind-tunnel";
19547 }
19548
19549 leaf rsvp {
19550 type boolean;
19551 default "false";
19552 description "Enable/disable setting RSVP-TE type for auto-bind-tunnel";
19553 }
19554
19555 leaf sr-isis {
19556 type boolean;
19557 default "false";
19558 description "Enable/disable setting SR-ISIS type for auto-bind-tunnel";
19559 }
19560
19561 leaf sr-ospf {
19562 type boolean;
19563 default "false";
19564 description "Segment Routing (SR) tunnel type programed by an OSPF instance in TTM";
19565 }
19566
19567 leaf sr-te {
19568 type boolean;
19569 default "false";
19570 description "Enable/disable setting SR-TE type for auto-bind-tunnel";
19571 }
19572
19573 leaf udp {
19574 type boolean;
19575 default "false";
19576 description "Set UDP type for auto-bind-tunnel";
19577 }
19578
19579 leaf mpls-fwd-policy {
19580 type boolean;
19581 default "false";
19582 description "Enable/disable setting MPLS Forwarding Policy for auto-bind-tunnel";
19583 }
19584
19585 leaf sr-policy {
19586 type boolean;
19587 default "false";
19588 description "Enable/disable setting SR Policy type for auto-bind-tunnel";
19589 }
19590
19591 leaf rib-api {
19592 type boolean;
19593 default "false";
19594 description "Enable/disable setting RIB API type for auto-bind-tunnel";
19595 }
19596
19597 } // container resolution-filter
19598
19599 } // container auto-bind-tunnel
19600
19601 container fdb {
19602 description "Enter the fdb context";
19603
19604 leaf protected-src-mac-violation-action {
19605 type types-services:vxlan-protected-src-mac-violation-action;
19606 description "Action when a relearn request for a protected MAC is received";
19607 }
19608
19609 } // container fdb
19610
19611 } // list mpls
19612
19613 } // container bgp-evpn
19614
19615 container bgp-vpls {
19616 presence "Enable BGP-VPLS for the service.";
19617 description "Enter the bgp-vpls context";
19618
19619 leaf admin-state {
19620 type types-sros:admin-state;
19621 default "disable";
19622 description "Administrative state of the service";
19623 }
19624
19625 leaf maximum-ve-id {
19626 type types-services:ve-id;
19627 description "Maximum vpls-edge id for BGP-VPLS";
19628 }
19629
19630 container ve {
19631 description "Enter the ve context";
19632
19633 leaf name {
19634 type types-sros:named-item;
19635 description "Name of VPLS edge.";
19636 }
19637
19638 leaf id {
19639 type types-services:ve-id;
19640 description "VPLS edge identifier";
19641 }
19642
19643 } // container ve
19644
19645 } // container bgp-vpls
19646
19647 list endpoint {
19648 key "name";
19649 max-elements 10;
19650 description "Enter the endpoint context";
19651
19652 leaf name {
19653 type union {
19654 type string {
19655 length "1..64";
19656 pattern "<.*>" {
19657 error-message "Config Groups Regex Pattern";
19658 }
19659 }
19660 type types-sros:named-item;
19661 }
19662 description "Service endpoint name";
19663 }
19664
19665 leaf description {
19666 type types-sros:description;
19667 description "Text description";
19668 }
19669
19670 leaf revert-time {
19671 type types-services:revert-time;
19672 default "immediate";
19673 description "Time to wait before reverting back to the primary spoke-sdp defined on this service endpoint";
19674 }
19675
19676 leaf ignore-standby-signaling {
19677 type boolean;
19678 default "false";
19679 description "Ignore standby-bit received from TLDP peers when performing internal tasks";
19680 }
19681
19682 leaf suppress-standby-signaling {
19683 type boolean;
19684 default "true";
19685 description "Do not send pseudowire standby bit to TLDP peer when specified spoke SDP is selected as standby";
19686 }
19687
19688 leaf block-on-mesh-failure {
19689 type boolean;
19690 default "false";
19691 description
19692 "Whether operational status of spoke-SDPs in the
19693 endpoint will be affected by the operational status of
19694 associated mesh SDPs in this service.";
19695 }
19696
19697 container fdb {
19698 description "Enter the fdb context";
19699
19700 leaf mac-pinning {
19701 type boolean;
19702 default "false";
19703 description "Activate MAC address pinning on this endpoint";
19704 }
19705
19706 leaf maximum-mac-addresses {
19707 type types-services:max-mac-addr;
19708 description "Maximum learned and static entries for this end point";
19709 }
19710
19711 leaf auto-learn-mac-protect {
19712 type boolean;
19713 default "false";
19714 description "Populate automatically MAC protect list with MAC addresses learned on SDP with this endpoint";
19715 }
19716
19717 leaf protected-src-mac-violation-action {
19718 type types-services:sdp-protected-src-mac-violation-action;
19719 description "Action when a relearn request for a protected MAC is received on the SDP";
19720 }
19721
19722 } // container fdb
19723
19724 } // list endpoint
19725
19726 list split-horizon-group {
19727 key "shg-name";
19728 description "Enter the split-horizon-group context";
19729
19730 leaf shg-name {
19731 type union {
19732 type string {
19733 length "1..64";
19734 pattern "<.*>" {
19735 error-message "Config Groups Regex Pattern";
19736 }
19737 }
19738 type types-sros:named-item;
19739 }
19740 description "Name for the service split-horizon-group";
19741 }
19742
19743 leaf description {
19744 type types-sros:description;
19745 description "Text description";
19746 }
19747
19748 leaf residential {
19749 type boolean;
19750 sros-ext:immutable;
19751 default "false";
19752 description "Define as a residential split horizon group";
19753 }
19754
19755 container fdb {
19756 description "Enter the fdb context";
19757
19758 container saps {
19759 description "Enter the saps context";
19760
19761 leaf auto-learn-mac-protect {
19762 type boolean;
19763 default "false";
19764 description "Populate automatically MAC protect list with MAC addresses learned on SDP with split horizon group";
19765 }
19766
19767 leaf protected-src-mac-violation-action {
19768 type types-services:sap-protected-src-mac-violation-action;
19769 description "Action to take whenever a relearn request for a protected MAC is received";
19770 }
19771
19772 leaf discard-unprotected-dest-mac {
19773 type boolean;
19774 default "false";
19775 description "Enable/disable unprotected dest MAC restriction";
19776 }
19777
19778 } // container saps
19779
19780 } // container fdb
19781
19782 } // list split-horizon-group
19783
19784 container eth-cfm {
19785 description "Enter the eth-cfm context";
19786
19787 list mep {
19788 key "md-admin-name ma-admin-name mep-id";
19789 description "Enter the mep context";
19790
19791 leaf md-admin-name {
19792 type union {
19793 type string {
19794 length "1..64";
19795 pattern "<.*>" {
19796 error-message "Config Groups Regex Pattern";
19797 }
19798 }
19799 type types-eth-cfm:admin-name;
19800 }
19801 description "Unique domain name";
19802 }
19803
19804 leaf ma-admin-name {
19805 type union {
19806 type string {
19807 length "1..64";
19808 pattern "<.*>" {
19809 error-message "Config Groups Regex Pattern";
19810 }
19811 }
19812 type types-eth-cfm:admin-name;
19813 }
19814 description "Unique association name";
19815 }
19816
19817 leaf mep-id {
19818 type union {
19819 type string {
19820 length "1..64";
19821 pattern "<.*>" {
19822 error-message "Config Groups Regex Pattern";
19823 }
19824 }
19825 type types-eth-cfm:mep-id-type;
19826 }
19827 description "Maintenance association end point identifier";
19828 }
19829
19830 leaf admin-state {
19831 type types-sros:admin-state;
19832 default "disable";
19833 description "Administrative state of the MEP";
19834 }
19835
19836 leaf description {
19837 type types-sros:description;
19838 description "Text description";
19839 }
19840
19841 leaf mac-address {
19842 type types-sros:mac-unicast-address-no-zero;
19843 description "MAC address for the MEP";
19844 }
19845
19846 leaf install-mep {
19847 type boolean;
19848 default "false";
19849 description "Install MEP in the forwarding plane";
19850 }
19851
19852 leaf low-priority-defect {
19853 type types-eth-cfm:lowest-alarm-priority;
19854 default "mac-rem-err-xcon";
19855 description "Lowest priority defect that is allowed to generate a fault alarm";
19856 }
19857
19858 leaf ccm {
19859 type boolean;
19860 default "false";
19861 description "Generate CCM messages";
19862 }
19863
19864 leaf ccm-ltm-priority {
19865 type types-eth-cfm:frame-priority;
19866 default "7";
19867 description "Priority of CCM and LTM messages transmitted by the MEP";
19868 }
19869
19870 leaf ccm-padding-size {
19871 type uint32 {
19872 range "3..1500";
19873 }
19874 description "Additional octets inserted into CCM PDU for data TLV padding";
19875 }
19876
19877 leaf one-way-delay-threshold {
19878 type uint32 {
19879 range "0..600";
19880 }
19881 units "seconds";
19882 default "3";
19883 description "Threshold for one way delay test";
19884 }
19885
19886 container alarm-notification {
19887 description "Enter the alarm-notification context";
19888
19889 leaf fng-alarm-time {
19890 type int32 {
19891 range "250|500|1000";
19892 }
19893 units "centiseconds";
19894 description "Time to expire before a Fault Notification Generation (FNG) alarm";
19895 }
19896
19897 leaf fng-reset-time {
19898 type int32 {
19899 range "250|500|1000";
19900 }
19901 units "centiseconds";
19902 description "Time to expire before a Fault Notification Generation (FNG) alarm is reset";
19903 }
19904
19905 } // container alarm-notification
19906
19907 container eth-test {
19908 presence "Enable/disable eth-test functionality on MEP.";
19909 description "Enter the eth-test context";
19910
19911 leaf bit-error-threshold {
19912 type uint32 {
19913 range "0..11840";
19914 }
19915 units "bit errors";
19916 default "1";
19917 description "Lowest priority defect threshold for the bit error trap to generate a fault alarm";
19918 }
19919
19920 container test-pattern {
19921 description "Enter the test-pattern context";
19922
19923 leaf pattern {
19924 type enumeration {
19925 enum "all-zeros" { value 0; }
19926 enum "all-ones" { value 1; }
19927 }
19928 default "all-zeros";
19929 description "Test pattern for eth-test frames";
19930 }
19931
19932 leaf crc-tlv {
19933 type boolean;
19934 default "false";
19935 description "Generate a CRC checksum";
19936 }
19937
19938 } // container test-pattern
19939
19940 } // container eth-test
19941
19942 container grace {
19943 description "Enter the grace context";
19944
19945 container eth-ed {
19946 description "Enter the eth-ed context";
19947
19948 leaf max-rx-defect-window {
19949 type uint32 {
19950 range "1..86400";
19951 }
19952 units "seconds";
19953 description "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window";
19954 }
19955
19956 leaf priority {
19957 type int32 {
19958 range "0..7";
19959 }
19960 description "Transmission priority for ETH-ED PDUs";
19961 }
19962
19963 leaf rx-eth-ed {
19964 type boolean;
19965 default "true";
19966 description "Receive and process ETH-ED PDUs";
19967 }
19968
19969 leaf tx-eth-ed {
19970 type boolean;
19971 default "false";
19972 description "Transmit ETH-ED PDUs";
19973 }
19974
19975 } // container eth-ed
19976
19977 container eth-vsm-grace {
19978 description "Enter the eth-vsm-grace context";
19979
19980 leaf rx-eth-vsm-grace {
19981 type boolean;
19982 default "true";
19983 description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP";
19984 }
19985
19986 leaf tx-eth-vsm-grace {
19987 type boolean;
19988 default "true";
19989 description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP";
19990 }
19991
19992 } // container eth-vsm-grace
19993
19994 } // container grace
19995
19996 } // list mep
19997
19998 } // container eth-cfm
19999
20000 container mcr-default-gtw {
20001 description "Enter the mcr-default-gtw context";
20002
20003 leaf ip {
20004 type types-sros:ipv4-unicast-address;
20005 description "Multi-chassis ring default gateway IP address";
20006 }
20007
20008 leaf mac {
20009 type yang:mac-address;
20010 default "00:00:00:00:00:00";
20011 description "Multi-chassis ring default gateway MAC address";
20012 }
20013
20014 } // container mcr-default-gtw
20015
20016 list spoke-sdp {
20017 key "sdp-bind-id";
20018 description "Enter the spoke-sdp context";
20019
20020 leaf sdp-bind-id {
20021 type union {
20022 type string {
20023 length "1..64";
20024 pattern "<.*>" {
20025 error-message "Config Groups Regex Pattern";
20026 }
20027 }
20028 type types-services:sdp-bind-id;
20029 }
20030 description
20031 "SDP Binding identifier as <sdp-id>:<vc-id>.
20032 sdp-id - [1..32767]
20033 vc-id - [1..4294967295].";
20034 }
20035
20036 leaf description {
20037 type types-sros:description;
20038 description "Text description";
20039 }
20040
20041 leaf admin-state {
20042 type types-sros:admin-state;
20043 default "enable";
20044 description "Administrative state of this Service SDP binding";
20045 }
20046
20047 leaf vlan-vc-tag {
20048 type types-services:vlan-vc-tag;
20049 description "SDP bind VC tag";
20050 }
20051
20052 leaf split-horizon-group {
20053 type types-sros:named-item;
20054 sros-ext:immutable;
20055 description "Name of the split horizon group where the spoke SDP bind belongs to";
20056 }
20057
20058 leaf multicast-source {
20059 type boolean;
20060 sros-ext:immutable;
20061 default "false";
20062 description "Enable/disable multicast-source on the spoke SDP Bind.";
20063 }
20064
20065 leaf collect-stats {
20066 type boolean;
20067 default "false";
20068 description "Allow agent to collect accounting statistics";
20069 }
20070
20071 leaf accounting-policy {
20072 type types-log:log-policy-id;
20073 description "Policy to collect accounting statistics";
20074 }
20075
20076 leaf control-word {
20077 type boolean;
20078 default "false";
20079 description "Use the control word as preferred";
20080 }
20081
20082 leaf force-vc-forwarding {
20083 type enumeration {
20084 enum "vlan" { value 1; }
20085 enum "qinq-c-tag-c-tag" { value 2; }
20086 enum "qinq-s-tag-c-tag" { value 3; }
20087 }
20088 description "VC forwarding status";
20089 }
20090
20091 leaf etree-root-leaf-tag {
20092 type boolean;
20093 sros-ext:immutable;
20094 default "false";
20095 description "E-tree root leaf tag status";
20096 }
20097
20098 leaf etree-leaf {
20099 type boolean;
20100 sros-ext:immutable;
20101 default "false";
20102 description "Enable etree leaf access-circuit status";
20103 }
20104
20105 leaf bfd-template {
20106 type types-sros:named-item;
20107 description "BFD template associated with SDP binding";
20108 }
20109
20110 leaf vc-type {
20111 type types-services:vpls-sdp-bind-vc-type;
20112 default "ether";
20113 description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported";
20114 }
20115
20116 leaf bpdu-translation {
20117 type types-services:bpdu-translation;
20118 description "Bpdu translation.";
20119 }
20120
20121 leaf ignore-standby-signaling {
20122 type boolean;
20123 default "false";
20124 description "Ignore standby-bit received from TLDP peers when performing internal tasks";
20125 }
20126
20127 leaf block-on-mesh-failure {
20128 type boolean;
20129 default "false";
20130 description "Enable blocking after all configured SDPs or endpoints are in operationally down state";
20131 }
20132
20133 choice label {
20134 case entropy {
20135
20136 leaf entropy-label {
20137 type empty;
20138 description "Whether the use of entropy-label is enabled or not.";
20139 }
20140
20141 }
20142 case hash {
20143
20144 container hash-label {
20145 presence "Enable use of hash-label.";
20146 description "Enter the hash-label context";
20147
20148 leaf signal-capability {
20149 type empty;
20150 description "To signal the hash label capability to the remote PE.";
20151 }
20152
20153 } // container hash-label
20154
20155 }
20156 }
20157 choice oper-group-association {
20158 case oper-group {
20159
20160 leaf oper-group {
20161 type types-sros:named-item;
20162 description "Operational group identifier";
20163 }
20164
20165 }
20166 case monitor-oper-group {
20167
20168 leaf monitor-oper-group {
20169 type types-sros:named-item;
20170 description "Operational group identifier that affect the state of this SDP bind";
20171 }
20172
20173 }
20174 }
20175 container ingress {
20176 description "Enter the ingress context";
20177
20178 leaf vc-label {
20179 type types-services:ingress-vc-label;
20180 description "Static MPLS VC label used by the far end device to send packets through this SDP";
20181 }
20182
20183 container filter {
20184 description "Enter the filter context";
20185
20186 leaf mac {
20187 type types-filter:filter-name;
20188 description "MAC filter ID";
20189 }
20190
20191 leaf ip {
20192 type types-filter:filter-name;
20193 description "IP filter ID";
20194 }
20195
20196 leaf ipv6 {
20197 type types-filter:filter-name;
20198 description "IPv6 filter identifier";
20199 }
20200
20201 } // container filter
20202
20203 container qos {
20204 description "Enter the qos context";
20205
20206 container network {
20207 description "Enter the network context";
20208
20209 leaf policy-name {
20210 type types-qos:network-policy-name;
20211 description "Ingress network policy name applied to this SDP binding";
20212 }
20213
20214 container fp-redirect-group {
20215 description "Enter the fp-redirect-group context";
20216
20217 leaf group-name {
20218 type types-sros:named-item;
20219 description "Forwarding-plane queue group policy for this SDP binding";
20220 }
20221
20222 leaf instance {
20223 type types-services:qos-qgrp-instance-id;
20224 description "Instance of the forwarding-plane ingress Queue Group for this SDP binding";
20225 }
20226
20227 } // container fp-redirect-group
20228
20229 } // container network
20230
20231 } // container qos
20232
20233 } // container ingress
20234
20235 container egress {
20236 description "Enter the egress context";
20237
20238 leaf vc-label {
20239 type types-services:egress-vc-label;
20240 description "Static MPLS VC label that is used to send packets to the far end device through this SDP";
20241 }
20242
20243 container filter {
20244 description "Enter the filter context";
20245
20246 leaf mac {
20247 type types-filter:filter-name;
20248 description "MAC filter ID";
20249 }
20250
20251 leaf ip {
20252 type types-filter:filter-name;
20253 description "IP filter ID";
20254 }
20255
20256 leaf ipv6 {
20257 type types-filter:filter-name;
20258 description "IPv6 filter identifier";
20259 }
20260
20261 } // container filter
20262
20263 container qos {
20264 description "Enter the qos context";
20265
20266 container network {
20267 description "Enter the network context";
20268
20269 leaf policy-name {
20270 type types-qos:network-policy-name;
20271 description "Egress network policy name applied to this SDP binding";
20272 }
20273
20274 container port-redirect-group {
20275 description "Enter the port-redirect-group context";
20276
20277 leaf group-name {
20278 type types-sros:named-item;
20279 description "Policy for port queue group for this SDP binding";
20280 }
20281
20282 leaf instance {
20283 type types-services:qos-qgrp-instance-id;
20284 description
20285 "Instance of the port egress Queue Group for this SDP
20286 binding.";
20287 }
20288
20289 } // container port-redirect-group
20290
20291 } // container network
20292
20293 } // container qos
20294
20295 container mfib-allowed-mda-destinations {
20296 description "Enter the mfib-allowed-mda-destinations context";
20297
20298 list mda {
20299 key "mda-id";
20300 description "Enter the mda context";
20301
20302 leaf mda-id {
20303 type union {
20304 type string {
20305 length "1..64";
20306 pattern "<.*>" {
20307 error-message "Config Groups Regex Pattern";
20308 }
20309 }
20310 type types-isa:slot-mda;
20311 }
20312 description "MFIB allowed MDA destination";
20313 }
20314
20315 } // list mda
20316
20317 } // container mfib-allowed-mda-destinations
20318
20319 } // container egress
20320
20321 container endpoint {
20322 description "Enter the endpoint context";
20323
20324 leaf name {
20325 type types-sros:named-item;
20326 description "Name of endpoint to which this SDP bind is attached.";
20327 }
20328
20329 leaf precedence {
20330 type types-services:sdp-precedence;
20331 default "4";
20332 description "Precedence of this SDP bind when there are multiple SDP binds attached to one service endpoint";
20333 }
20334
20335 } // container endpoint
20336
20337 container cpu-protection {
20338 description "Enter the cpu-protection context";
20339
20340 leaf policy-id {
20341 type types-services:cpm-prot-policy-id;
20342 default "255";
20343 description "CPM protection policy";
20344 }
20345
20346 choice monitoring {
20347 case mac {
20348
20349 leaf mac-monitoring {
20350 type empty;
20351 description "Monitor MAC for CPU protection";
20352 }
20353
20354 }
20355 case cfm {
20356
20357 container eth-cfm-monitoring {
20358 presence "Enable ETH CFM monitoring configuration.";
20359 description "Enter the eth-cfm-monitoring context";
20360
20361 leaf aggregate {
20362 type empty;
20363 description "Apply rate limit to the sum of the per peer packet rates";
20364 }
20365
20366 leaf car {
20367 type empty;
20368 description "Eth-CFM packets to be ignored when enforcing overall rate";
20369 }
20370
20371 } // container eth-cfm-monitoring
20372
20373 }
20374 }
20375 } // container cpu-protection
20376
20377 container pw-status {
20378 description "Enter the pw-status context";
20379
20380 leaf signaling {
20381 type boolean;
20382 default "true";
20383 description "Whether this SDP binding supports pseudowire status signaling.";
20384 }
20385
20386 } // container pw-status
20387
20388 container bfd-liveness {
20389 presence "Enable BFD liveness information.";
20390 description "Enter the bfd-liveness context";
20391
20392 leaf encap {
20393 type types-services:bfd-encap;
20394 default "ipv4";
20395 description "BFD encapsulation used on this SDP binding";
20396 }
20397
20398 } // container bfd-liveness
20399
20400 container i-vpls-mac-flush {
20401 description "Enter the i-vpls-mac-flush context";
20402
20403 container bgp-evpn {
20404 description "Enter the bgp-evpn context";
20405
20406 leaf send-to-bvpls {
20407 type boolean;
20408 default "true";
20409 description "Send B-VPLS EVPN flush";
20410 }
20411
20412 } // container bgp-evpn
20413
20414 } // container i-vpls-mac-flush
20415
20416 container fdb {
20417 description "Enter the fdb context";
20418
20419 leaf limit-mac-move {
20420 type types-services:limit-mac-move;
20421 default "blockable";
20422 description "MAC move";
20423 }
20424
20425 leaf discard-unknown-source {
20426 type boolean;
20427 default "false";
20428 description "Discard packets with unknown destination MAC addresses";
20429 }
20430
20431 leaf mac-pinning {
20432 type boolean;
20433 default "false";
20434 description "MAC address pinning in active status";
20435 }
20436
20437 leaf maximum-mac-addresses {
20438 type types-services:max-mac-addr;
20439 description "Maximum MAC entries in the FDB from this SDP";
20440 }
20441
20442 leaf auto-learn-mac-protect {
20443 type boolean;
20444 default "false";
20445 description "Populate automatically MAC protect list with source MAC addresses learned on SDP";
20446 }
20447
20448 leaf protected-src-mac-violation-action {
20449 type types-services:sdp-protected-src-mac-violation-action;
20450 description "Action when a relearn request for a protected MAC is received on the SDP";
20451 }
20452
20453 container mac-learning {
20454 description "Enter the mac-learning context";
20455
20456 leaf learning {
20457 type boolean;
20458 default "true";
20459 description "Enable learning of new MAC addresses";
20460 }
20461
20462 leaf aging {
20463 type boolean;
20464 default "true";
20465 description "Enable aging of MAC addresses";
20466 }
20467
20468 } // container mac-learning
20469
20470 } // container fdb
20471
20472 container stp {
20473 description "Enter the stp context";
20474
20475 leaf admin-state {
20476 type types-sros:admin-state;
20477 default "enable";
20478 description "Enable/disable spanning-tree-protocol";
20479 }
20480
20481 leaf auto-edge {
20482 type boolean;
20483 default "true";
20484 description "Enable/disable automatic detection of edge-port.";
20485 }
20486
20487 leaf edge-port {
20488 type boolean;
20489 default "false";
20490 description "Configure as edge-port.";
20491 }
20492
20493 leaf link-type {
20494 type types-services:stp-link-type;
20495 default "pt-pt";
20496 description "Configure STP link-type";
20497 }
20498
20499 leaf path-cost {
20500 type types-services:stp-path-cost;
20501 default "10";
20502 description "Configure path-cost";
20503 }
20504
20505 leaf priority {
20506 type int32 {
20507 range "0..255";
20508 }
20509 default "128";
20510 description "Configure STP priority";
20511 }
20512
20513 leaf root-guard {
20514 type boolean;
20515 default "false";
20516 description "Enable/disable STP root-guard";
20517 }
20518
20519 leaf port-num {
20520 type types-services:stp-port-num;
20521 description "Configure virtual port number";
20522 }
20523
20524 } // container stp
20525
20526 container l2pt {
20527 description "Enter the l2pt context";
20528
20529 container termination {
20530 presence "Enable L2PT termination on managed VLANs";
20531 description "Enter the termination context";
20532
20533 container protocols {
20534 description "Enter the protocols context";
20535
20536 leaf stp {
20537 type boolean;
20538 default "true";
20539 description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp.";
20540 }
20541
20542 leaf cdp {
20543 type boolean;
20544 default "false";
20545 description "Enable Cisco discovery protocol";
20546 }
20547
20548 leaf vtp {
20549 type boolean;
20550 default "false";
20551 description "Enable/disable virtual trunk protocol.";
20552 }
20553
20554 leaf dtp {
20555 type boolean;
20556 default "false";
20557 description "Enable dynamic trunking protocol";
20558 }
20559
20560 leaf pagp {
20561 type boolean;
20562 default "false";
20563 description "Enable/disable port aggregation protocol.";
20564 }
20565
20566 leaf udld {
20567 type boolean;
20568 default "false";
20569 description "Enable/disable unidirectional link detection.";
20570 }
20571
20572 } // container protocols
20573
20574 } // container termination
20575
20576 } // container l2pt
20577
20578 container dhcp {
20579 description "Enter the dhcp context";
20580
20581 leaf description {
20582 type types-sros:description;
20583 description "Text description";
20584 }
20585
20586 leaf snoop {
20587 type boolean;
20588 default "false";
20589 description "Allow DHCP snooping of DHCP messages on the SAP or SDP";
20590 }
20591
20592 } // container dhcp
20593
20594 container igmp-snooping {
20595 description "Enter the igmp-snooping context";
20596
20597 leaf router-alert-check {
20598 type boolean;
20599 default "true";
20600 description "Enable IP router alert check option";
20601 }
20602
20603 leaf import-policy {
20604 type types-sros:named-item-64;
20605 description "Import policy that filters IGMP packets";
20606 }
20607
20608 leaf maximum-number-groups {
20609 type uint32 {
20610 range "1..16000";
20611 }
20612 description "Maximum groups allowed";
20613 }
20614
20615 leaf query-interval {
20616 type uint32 {
20617 range "2..1024";
20618 }
20619 units "seconds";
20620 default "125";
20621 description "Time between two consecutive host-query messages";
20622 }
20623
20624 leaf query-response-interval {
20625 type uint32 {
20626 range "1..1023";
20627 }
20628 units "seconds";
20629 default "10";
20630 description "Time to wait for a response to the host-query messages";
20631 }
20632
20633 leaf query-last-member-interval {
20634 type uint32 {
20635 range "1..50";
20636 }
20637 units "deciseconds";
20638 default "10";
20639 description "Time between group-specific query messages";
20640 }
20641
20642 leaf fast-leave {
20643 type boolean;
20644 default "false";
20645 description "Allow IGMP fast leave processing";
20646 }
20647
20648 leaf mrouter-port {
20649 type boolean;
20650 default "false";
20651 description "Port as a multicast router port";
20652 }
20653
20654 leaf robust-count {
20655 type uint32 {
20656 range "2..7";
20657 }
20658 default "2";
20659 description "Number of retries to cope with message loss.";
20660 }
20661
20662 leaf send-queries {
20663 type boolean;
20664 default "false";
20665 description "Generate IGMP general queries";
20666 }
20667
20668 leaf maximum-number-sources {
20669 type uint32 {
20670 range "1..1000";
20671 }
20672 description "Maximum sources that are allowed per group";
20673 }
20674
20675 leaf maximum-number-group-sources {
20676 type uint32 {
20677 range "1..32000";
20678 }
20679 description "Maximum group source combinations";
20680 }
20681
20682 leaf version {
20683 type types-igmp:igmp-version;
20684 default "3";
20685 description "IGMP protocol version";
20686 }
20687
20688 container mcac {
20689 description "Enter the mcac context";
20690
20691 leaf interface-policy {
20692 type string {
20693 length "1..32";
20694 }
20695 description "Name for multicast CAC interface policy";
20696 }
20697
20698 leaf policy {
20699 type string {
20700 length "1..32";
20701 }
20702 description "Multicast CAC policy name";
20703 }
20704
20705 container bandwidth {
20706 description "Enter the bandwidth context";
20707
20708 leaf total {
20709 type types-mcast-cac:bandwidth-limit;
20710 description "Maximum allowed bandwidth.";
20711 }
20712
20713 leaf mandatory {
20714 type types-mcast-cac:bandwidth-limit;
20715 description "Pre-reserved bandwidth for all mandatory channels.";
20716 }
20717
20718 } // container bandwidth
20719
20720 } // container mcac
20721
20722 container static {
20723 description "Enter the static context";
20724
20725 list group {
20726 key "group-address";
20727 description "Enter the group context";
20728
20729 leaf group-address {
20730 type union {
20731 type string {
20732 length "1..64";
20733 pattern "<.*>" {
20734 error-message "Config Groups Regex Pattern";
20735 }
20736 }
20737 type types-sros:ipv4-multicast-address;
20738 }
20739 description "Group address of multicast channel";
20740 }
20741
20742 choice source-or-starg {
20743 mandatory true;
20744 case source {
20745
20746 list source {
20747 key "source-address";
20748 description "Enter the source context";
20749
20750 leaf source-address {
20751 type union {
20752 type string {
20753 length "1..64";
20754 pattern "<.*>" {
20755 error-message "Config Groups Regex Pattern";
20756 }
20757 }
20758 type types-sros:ipv4-unicast-address;
20759 }
20760 description "Source address of multicast channel.";
20761 }
20762
20763 } // list source
20764
20765 }
20766 case starg {
20767
20768 leaf starg {
20769 type empty;
20770 description "any source address (*,G)";
20771 }
20772
20773 }
20774 }
20775 } // list group
20776
20777 } // container static
20778
20779 } // container igmp-snooping
20780
20781 container mld-snooping {
20782 description "Enter the mld-snooping context";
20783
20784 leaf router-alert-check {
20785 type boolean;
20786 default "true";
20787 description "Enable IP router alert check option";
20788 }
20789
20790 leaf import-policy {
20791 type types-sros:named-item-64;
20792 description "Import policy that filters IGMP packets";
20793 }
20794
20795 leaf maximum-number-groups {
20796 type uint32 {
20797 range "1..16000";
20798 }
20799 description "Maximum groups allowed";
20800 }
20801
20802 leaf query-interval {
20803 type uint32 {
20804 range "2..1024";
20805 }
20806 units "seconds";
20807 default "125";
20808 description "Time between two consecutive host-query messages";
20809 }
20810
20811 leaf query-response-interval {
20812 type uint32 {
20813 range "1..1023";
20814 }
20815 units "seconds";
20816 default "10";
20817 description "Time to wait for a response to the host-query messages";
20818 }
20819
20820 leaf query-last-member-interval {
20821 type uint32 {
20822 range "1..50";
20823 }
20824 units "deciseconds";
20825 default "10";
20826 description "Time between group-specific query messages";
20827 }
20828
20829 leaf fast-leave {
20830 type boolean;
20831 default "false";
20832 description "Allow IGMP fast leave processing";
20833 }
20834
20835 leaf mrouter-port {
20836 type boolean;
20837 default "false";
20838 description "Port as a multicast router port";
20839 }
20840
20841 leaf robust-count {
20842 type uint32 {
20843 range "2..7";
20844 }
20845 default "2";
20846 description "Number of retries to cope with message loss.";
20847 }
20848
20849 leaf send-queries {
20850 type boolean;
20851 default "false";
20852 description "Generate IGMP general queries";
20853 }
20854
20855 leaf version {
20856 type types-igmp:mld-version;
20857 default "2";
20858 description "MLD protocol version.";
20859 }
20860
20861 container static {
20862 description "Enter the static context";
20863
20864 list group {
20865 key "group-address";
20866 description "Enter the group context";
20867
20868 leaf group-address {
20869 type union {
20870 type string {
20871 length "1..64";
20872 pattern "<.*>" {
20873 error-message "Config Groups Regex Pattern";
20874 }
20875 }
20876 type types-sros:ipv6-multicast-address;
20877 }
20878 description "Group address of multicast channel";
20879 }
20880
20881 choice source-or-starg {
20882 mandatory true;
20883 case source {
20884
20885 list source {
20886 key "source-address";
20887 description "Enter the source context";
20888
20889 leaf source-address {
20890 type union {
20891 type string {
20892 length "1..64";
20893 pattern "<.*>" {
20894 error-message "Config Groups Regex Pattern";
20895 }
20896 }
20897 type types-sros:ipv6-unicast-address;
20898 }
20899 description "Source address of multicast channel.";
20900 }
20901
20902 } // list source
20903
20904 }
20905 case starg {
20906
20907 leaf starg {
20908 type empty;
20909 description "any source address (*,G)";
20910 }
20911
20912 }
20913 }
20914 } // list group
20915
20916 } // container static
20917
20918 } // container mld-snooping
20919
20920 container pim-snooping {
20921 description "Enter the pim-snooping context";
20922
20923 leaf maximum-number-groups {
20924 type uint32 {
20925 range "1..16000";
20926 }
20927 description "Maximum groups for this interface";
20928 }
20929
20930 } // container pim-snooping
20931
20932 container eth-cfm {
20933 description "Enter the eth-cfm context";
20934
20935 leaf collect-lmm-stats {
20936 type boolean;
20937 default "false";
20938 description "Collect statistics for OAM-PM Loss Measurement Message (LMM) tests";
20939 }
20940
20941 leaf-list squelch-ingress-levels {
20942 type uint32 {
20943 range "0..7";
20944 }
20945 max-elements 8;
20946 description "ETH-CFM PDUs to be silently discarded";
20947 }
20948
20949 leaf vmep-filter {
20950 type boolean;
20951 default "false";
20952 description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP";
20953 }
20954
20955 container collect-lmm-fc-stats {
20956 description "Enter the collect-lmm-fc-stats context";
20957
20958 leaf-list fc {
20959 type types-eth-cfm:fc-type;
20960 max-elements 8;
20961 description "Forwarding class name for which to create an individual profile-unaware counter";
20962 }
20963
20964 leaf-list fc-in-profile {
20965 type types-eth-cfm:fc-type;
20966 max-elements 8;
20967 description "Individual counters to create for the specified Forwarding Class";
20968 }
20969
20970 } // container collect-lmm-fc-stats
20971
20972 list mep {
20973 key "md-admin-name ma-admin-name mep-id";
20974 description "Enter the mep context";
20975
20976 leaf md-admin-name {
20977 type union {
20978 type string {
20979 length "1..64";
20980 pattern "<.*>" {
20981 error-message "Config Groups Regex Pattern";
20982 }
20983 }
20984 type types-eth-cfm:admin-name;
20985 }
20986 description "Unique domain name";
20987 }
20988
20989 leaf ma-admin-name {
20990 type union {
20991 type string {
20992 length "1..64";
20993 pattern "<.*>" {
20994 error-message "Config Groups Regex Pattern";
20995 }
20996 }
20997 type types-eth-cfm:admin-name;
20998 }
20999 description "Unique association name";
21000 }
21001
21002 leaf mep-id {
21003 type union {
21004 type string {
21005 length "1..64";
21006 pattern "<.*>" {
21007 error-message "Config Groups Regex Pattern";
21008 }
21009 }
21010 type types-eth-cfm:mep-id-type;
21011 }
21012 description "Maintenance association end point identifier";
21013 }
21014
21015 leaf primary-vlan {
21016 type boolean;
21017 sros-ext:immutable;
21018 default "false";
21019 description "MEP provisioned using MA primary VLAN ID";
21020 }
21021
21022 leaf direction {
21023 type types-eth-cfm:mp-direction;
21024 sros-ext:immutable;
21025 description "Direction the MEP faces";
21026 }
21027
21028 leaf admin-state {
21029 type types-sros:admin-state;
21030 default "disable";
21031 description "Administrative state of the MEP";
21032 }
21033
21034 leaf description {
21035 type types-sros:description;
21036 description "Text description";
21037 }
21038
21039 leaf mac-address {
21040 type types-sros:mac-unicast-address-no-zero;
21041 description "MAC address for the MEP";
21042 }
21043
21044 leaf install-mep {
21045 type boolean;
21046 default "false";
21047 description "Install MEP in the forwarding plane";
21048 }
21049
21050 leaf low-priority-defect {
21051 type types-eth-cfm:lowest-alarm-priority;
21052 default "mac-rem-err-xcon";
21053 description "Lowest priority defect that is allowed to generate a fault alarm";
21054 }
21055
21056 leaf fault-propagation {
21057 type types-eth-cfm:fault-propagation-type;
21058 description "Fault propagation for the MEP";
21059 }
21060
21061 leaf ccm {
21062 type boolean;
21063 default "false";
21064 description "Generate CCM messages";
21065 }
21066
21067 leaf ccm-ltm-priority {
21068 type types-eth-cfm:frame-priority;
21069 default "7";
21070 description "Priority of CCM and LTM messages transmitted by the MEP";
21071 }
21072
21073 leaf ccm-padding-size {
21074 type uint32 {
21075 range "3..1500";
21076 }
21077 description "Additional octets inserted into CCM PDU for data TLV padding";
21078 }
21079
21080 leaf lbm-svc-act-responder {
21081 type boolean;
21082 default "false";
21083 description "Process service activation streams encapsulated in ETH-CFM request Loopback Message";
21084 }
21085
21086 leaf one-way-delay-threshold {
21087 type uint32 {
21088 range "0..600";
21089 }
21090 units "seconds";
21091 default "3";
21092 description "Threshold for one way delay test";
21093 }
21094
21095 container alarm-notification {
21096 description "Enter the alarm-notification context";
21097
21098 leaf fng-alarm-time {
21099 type int32 {
21100 range "250|500|1000";
21101 }
21102 units "centiseconds";
21103 description "The Fault Notification Generation (FNG) alarm time.";
21104 }
21105
21106 leaf fng-reset-time {
21107 type int32 {
21108 range "250|500|1000";
21109 }
21110 units "centiseconds";
21111 description "Time to expire before a Fault Notification Generation (FNG) alarm is reset";
21112 }
21113
21114 } // container alarm-notification
21115
21116 container ais {
21117 presence
21118 "The generation and reception of Alarm Indication Signal (AIS)
21119 message parameters";
21120 description "Enter the ais context";
21121
21122 leaf-list client-meg-level {
21123 type uint32 {
21124 range "1..7";
21125 }
21126 max-elements 7;
21127 description "Client MEG level for AIS message generation";
21128 }
21129
21130 leaf interface-support {
21131 type boolean;
21132 default "false";
21133 description "Allow generation of AIS PDUs based on the associated endpoint state";
21134 }
21135
21136 leaf interval {
21137 type uint32 {
21138 range "1|60";
21139 }
21140 units "seconds";
21141 default "1";
21142 description "Transmission interval for AIS messages";
21143 }
21144
21145 leaf low-priority-defect {
21146 type enumeration {
21147 enum "all-def" { value 1; }
21148 enum "mac-rem-err-xcon" { value 2; }
21149 }
21150 default "all-def";
21151 description
21152 "The Lowest Priority Defect for the MEP AIS generation.
21153
21154 When this object is 'all-def (1)', AIS frame generation will be
21155 triggered for any defect in the CCM state machine.
21156 When this object is 'mac-rem-err-xcon (2)', AIS frame generation will be
21157 triggered for 'def-mac-staus' defect and any defect higher than
21158 'def-mac-status'.";
21159 }
21160
21161 leaf priority {
21162 type types-eth-cfm:frame-priority;
21163 default "7";
21164 description "Priority of AIS messages originated by the node";
21165 }
21166
21167 } // container ais
21168
21169 container csf {
21170 presence "The reception of Client Signal Fail (CSF) message parameters";
21171 description "Enter the csf context";
21172
21173 leaf multiplier {
21174 type decimal64 {
21175 range "0.0|2.0..30.0";
21176 fraction-digits 1;
21177 }
21178 default "3.5";
21179 description "Receive period multiplier to time out CSF";
21180 }
21181
21182 } // container csf
21183
21184 container eth-test {
21185 presence "Enable/disable eth-test functionality on MEP.";
21186 description "Enter the eth-test context";
21187
21188 leaf bit-error-threshold {
21189 type uint32 {
21190 range "0..11840";
21191 }
21192 units "bit errors";
21193 default "1";
21194 description "Lowest priority defect threshold for the bit error trap to generate a fault alarm";
21195 }
21196
21197 container test-pattern {
21198 description "Enter the test-pattern context";
21199
21200 leaf pattern {
21201 type enumeration {
21202 enum "all-zeros" { value 0; }
21203 enum "all-ones" { value 1; }
21204 }
21205 default "all-zeros";
21206 description "Test pattern for eth-test frames";
21207 }
21208
21209 leaf crc-tlv {
21210 type boolean;
21211 default "false";
21212 description "Generate a CRC checksum";
21213 }
21214
21215 } // container test-pattern
21216
21217 } // container eth-test
21218
21219 container grace {
21220 description "Enter the grace context";
21221
21222 container eth-ed {
21223 description "Enter the eth-ed context";
21224
21225 leaf max-rx-defect-window {
21226 type uint32 {
21227 range "1..86400";
21228 }
21229 units "seconds";
21230 description "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window";
21231 }
21232
21233 leaf priority {
21234 type int32 {
21235 range "0..7";
21236 }
21237 description "Transmission priority for ETH-ED PDUs";
21238 }
21239
21240 leaf rx-eth-ed {
21241 type boolean;
21242 default "true";
21243 description "Receive and process ETH-ED PDUs";
21244 }
21245
21246 leaf tx-eth-ed {
21247 type boolean;
21248 default "false";
21249 description "Transmit ETH-ED PDUs";
21250 }
21251
21252 } // container eth-ed
21253
21254 container eth-vsm-grace {
21255 description "Enter the eth-vsm-grace context";
21256
21257 leaf rx-eth-vsm-grace {
21258 type boolean;
21259 default "true";
21260 description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP";
21261 }
21262
21263 leaf tx-eth-vsm-grace {
21264 type boolean;
21265 default "true";
21266 description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP";
21267 }
21268
21269 } // container eth-vsm-grace
21270
21271 } // container grace
21272
21273 } // list mep
21274
21275 } // container eth-cfm
21276
21277 } // list spoke-sdp
21278
21279 list mesh-sdp {
21280 key "sdp-bind-id";
21281 description "Enter the mesh-sdp context";
21282
21283 leaf sdp-bind-id {
21284 type union {
21285 type string {
21286 length "1..64";
21287 pattern "<.*>" {
21288 error-message "Config Groups Regex Pattern";
21289 }
21290 }
21291 type types-services:sdp-bind-id;
21292 }
21293 description
21294 "SDP Binding identifier as <sdp-id>:<vc-id>.
21295 sdp-id - [1..32767]
21296 vc-id - [1..4294967295].";
21297 }
21298
21299 leaf description {
21300 type types-sros:description;
21301 description "Text description";
21302 }
21303
21304 leaf admin-state {
21305 type types-sros:admin-state;
21306 default "enable";
21307 description "Administrative state of this Service SDP binding";
21308 }
21309
21310 leaf vlan-vc-tag {
21311 type types-services:vlan-vc-tag;
21312 description "SDP bind VC tag";
21313 }
21314
21315 leaf collect-stats {
21316 type boolean;
21317 default "false";
21318 description "Allow agent to collect accounting statistics";
21319 }
21320
21321 leaf accounting-policy {
21322 type types-log:log-policy-id;
21323 description "Policy to collect accounting statistics";
21324 }
21325
21326 leaf control-word {
21327 type boolean;
21328 default "false";
21329 description "Use the control word as preferred";
21330 }
21331
21332 leaf force-vc-forwarding {
21333 type enumeration {
21334 enum "vlan" { value 1; }
21335 enum "qinq-c-tag-c-tag" { value 2; }
21336 enum "qinq-s-tag-c-tag" { value 3; }
21337 }
21338 description "VC forwarding status";
21339 }
21340
21341 leaf etree-root-leaf-tag {
21342 type boolean;
21343 sros-ext:immutable;
21344 default "false";
21345 description "Status for E-tree root leaf tag";
21346 }
21347
21348 leaf etree-leaf {
21349 type boolean;
21350 sros-ext:immutable;
21351 default "false";
21352 description "Enable etree leaf access-circuit status";
21353 }
21354
21355 leaf bfd-template {
21356 type types-sros:named-item;
21357 description "BFD template associated with SDP binding";
21358 }
21359
21360 leaf vc-type {
21361 type types-services:vpls-sdp-bind-vc-type;
21362 default "ether";
21363 description "Type of virtual circuit (VC) associated with the SDP binding; VPLS not supported";
21364 }
21365
21366 choice label {
21367 case entropy {
21368
21369 leaf entropy-label {
21370 type empty;
21371 description "Whether the use of entropy-label is enabled or not.";
21372 }
21373
21374 }
21375 case hash {
21376
21377 container hash-label {
21378 presence "Enable use of hash-label.";
21379 description "Enter the hash-label context";
21380
21381 leaf signal-capability {
21382 type empty;
21383 description "To signal the hash label capability to the remote PE.";
21384 }
21385
21386 } // container hash-label
21387
21388 }
21389 }
21390 container ingress {
21391 description "Enter the ingress context";
21392
21393 leaf vc-label {
21394 type types-services:ingress-vc-label;
21395 description "Static MPLS VC label used by the far end device to send packets through this SDP";
21396 }
21397
21398 container filter {
21399 description "Enter the filter context";
21400
21401 leaf mac {
21402 type types-filter:filter-name;
21403 description "MAC filter ID";
21404 }
21405
21406 leaf ip {
21407 type types-filter:filter-name;
21408 description "IP filter ID";
21409 }
21410
21411 leaf ipv6 {
21412 type types-filter:filter-name;
21413 description "IPv6 filter identifier";
21414 }
21415
21416 } // container filter
21417
21418 container qos {
21419 description "Enter the qos context";
21420
21421 container network {
21422 description "Enter the network context";
21423
21424 leaf policy-name {
21425 type types-qos:network-policy-name;
21426 description "Ingress network policy name applied to this SDP binding";
21427 }
21428
21429 container fp-redirect-group {
21430 description "Enter the fp-redirect-group context";
21431
21432 leaf group-name {
21433 type types-sros:named-item;
21434 description "Forwarding-plane queue group policy for this SDP binding";
21435 }
21436
21437 leaf instance {
21438 type types-services:qos-qgrp-instance-id;
21439 description "Instance of the forwarding-plane ingress Queue Group for this SDP binding";
21440 }
21441
21442 } // container fp-redirect-group
21443
21444 } // container network
21445
21446 } // container qos
21447
21448 } // container ingress
21449
21450 container egress {
21451 description "Enter the egress context";
21452
21453 leaf vc-label {
21454 type types-services:egress-vc-label;
21455 description "Static MPLS VC label that is used to send packets to the far end device through this SDP";
21456 }
21457
21458 container filter {
21459 description "Enter the filter context";
21460
21461 leaf mac {
21462 type types-filter:filter-name;
21463 description "MAC filter ID";
21464 }
21465
21466 leaf ip {
21467 type types-filter:filter-name;
21468 description "IP filter ID";
21469 }
21470
21471 leaf ipv6 {
21472 type types-filter:filter-name;
21473 description "IPv6 filter identifier";
21474 }
21475
21476 } // container filter
21477
21478 container qos {
21479 description "Enter the qos context";
21480
21481 container network {
21482 description "Enter the network context";
21483
21484 leaf policy-name {
21485 type types-qos:network-policy-name;
21486 description "Egress network policy name applied to this SDP binding";
21487 }
21488
21489 container port-redirect-group {
21490 description "Enter the port-redirect-group context";
21491
21492 leaf group-name {
21493 type types-sros:named-item;
21494 description "Policy for port queue group for this SDP binding";
21495 }
21496
21497 leaf instance {
21498 type types-services:qos-qgrp-instance-id;
21499 description
21500 "Instance of the port egress Queue Group for this SDP
21501 binding.";
21502 }
21503
21504 } // container port-redirect-group
21505
21506 } // container network
21507
21508 } // container qos
21509
21510 container mfib-allowed-mda-destinations {
21511 description "Enter the mfib-allowed-mda-destinations context";
21512
21513 list mda {
21514 key "mda-id";
21515 description "Enter the mda context";
21516
21517 leaf mda-id {
21518 type union {
21519 type string {
21520 length "1..64";
21521 pattern "<.*>" {
21522 error-message "Config Groups Regex Pattern";
21523 }
21524 }
21525 type types-isa:slot-mda;
21526 }
21527 description "MFIB allowed MDA destination";
21528 }
21529
21530 } // list mda
21531
21532 } // container mfib-allowed-mda-destinations
21533
21534 } // container egress
21535
21536 container cpu-protection {
21537 description "Enter the cpu-protection context";
21538
21539 leaf policy-id {
21540 type types-services:cpm-prot-policy-id;
21541 default "255";
21542 description "CPM protection policy";
21543 }
21544
21545 choice monitoring {
21546 case mac {
21547
21548 leaf mac-monitoring {
21549 type empty;
21550 description "Monitor MAC for CPU protection";
21551 }
21552
21553 }
21554 case cfm {
21555
21556 container eth-cfm-monitoring {
21557 presence "Enable ETH CFM monitoring configuration.";
21558 description "Enter the eth-cfm-monitoring context";
21559
21560 leaf aggregate {
21561 type empty;
21562 description "Apply rate limit to the sum of the per peer packet rates";
21563 }
21564
21565 leaf car {
21566 type empty;
21567 description "Eth-CFM packets to be ignored when enforcing overall rate";
21568 }
21569
21570 } // container eth-cfm-monitoring
21571
21572 }
21573 }
21574 } // container cpu-protection
21575
21576 container bfd-liveness {
21577 presence "Enable BFD liveness information.";
21578 description "Enter the bfd-liveness context";
21579
21580 leaf encap {
21581 type types-services:bfd-encap;
21582 default "ipv4";
21583 description "BFD encapsulation used on this SDP binding";
21584 }
21585
21586 } // container bfd-liveness
21587
21588 container fdb {
21589 description "Enter the fdb context";
21590
21591 leaf mac-pinning {
21592 type boolean;
21593 default "false";
21594 description "MAC address pinning in active status";
21595 }
21596
21597 leaf auto-learn-mac-protect {
21598 type boolean;
21599 default "false";
21600 description "Enable/disable of automatic marking of MACs as protected";
21601 }
21602
21603 leaf protected-src-mac-violation-action {
21604 type types-services:sdp-protected-src-mac-violation-action;
21605 description "Action to take whenever a relearn request for a protected MAC is received";
21606 }
21607
21608 } // container fdb
21609
21610 container dhcp {
21611 description "Enter the dhcp context";
21612
21613 leaf description {
21614 type types-sros:description;
21615 description "Text description";
21616 }
21617
21618 leaf snoop {
21619 type boolean;
21620 default "false";
21621 description "Allow DHCP snooping of DHCP messages on the SAP or SDP";
21622 }
21623
21624 } // container dhcp
21625
21626 container igmp-snooping {
21627 description "Enter the igmp-snooping context";
21628
21629 leaf router-alert-check {
21630 type boolean;
21631 default "true";
21632 description "Enable IP router alert check option";
21633 }
21634
21635 leaf import-policy {
21636 type types-sros:named-item-64;
21637 description "Import policy that filters IGMP packets";
21638 }
21639
21640 leaf maximum-number-groups {
21641 type uint32 {
21642 range "1..16000";
21643 }
21644 description "Maximum groups allowed";
21645 }
21646
21647 leaf query-interval {
21648 type uint32 {
21649 range "2..1024";
21650 }
21651 units "seconds";
21652 default "125";
21653 description "Time between two consecutive host-query messages";
21654 }
21655
21656 leaf query-response-interval {
21657 type uint32 {
21658 range "1..1023";
21659 }
21660 units "seconds";
21661 default "10";
21662 description "Time to wait for a response to the host-query messages";
21663 }
21664
21665 leaf query-last-member-interval {
21666 type uint32 {
21667 range "1..50";
21668 }
21669 units "deciseconds";
21670 default "10";
21671 description "Time between group-specific query messages";
21672 }
21673
21674 leaf fast-leave {
21675 type boolean;
21676 default "false";
21677 description "Allow IGMP fast leave processing";
21678 }
21679
21680 leaf mrouter-port {
21681 type boolean;
21682 default "false";
21683 description "Port as a multicast router port";
21684 }
21685
21686 leaf robust-count {
21687 type uint32 {
21688 range "2..7";
21689 }
21690 default "2";
21691 description "Number of retries to cope with message loss.";
21692 }
21693
21694 leaf send-queries {
21695 type boolean;
21696 default "false";
21697 description "Generate IGMP general queries";
21698 }
21699
21700 leaf maximum-number-sources {
21701 type uint32 {
21702 range "1..1000";
21703 }
21704 description "Maximum sources that are allowed per group";
21705 }
21706
21707 leaf maximum-number-group-sources {
21708 type uint32 {
21709 range "1..32000";
21710 }
21711 description "Maximum group source combinations";
21712 }
21713
21714 leaf version {
21715 type types-igmp:igmp-version;
21716 default "3";
21717 description "IGMP protocol version";
21718 }
21719
21720 container mcac {
21721 description "Enter the mcac context";
21722
21723 leaf interface-policy {
21724 type string {
21725 length "1..32";
21726 }
21727 description "Name for multicast CAC interface policy";
21728 }
21729
21730 leaf policy {
21731 type string {
21732 length "1..32";
21733 }
21734 description "Multicast CAC policy name";
21735 }
21736
21737 container bandwidth {
21738 description "Enter the bandwidth context";
21739
21740 leaf total {
21741 type types-mcast-cac:bandwidth-limit;
21742 description "Maximum allowed bandwidth.";
21743 }
21744
21745 leaf mandatory {
21746 type types-mcast-cac:bandwidth-limit;
21747 description "Pre-reserved bandwidth for all mandatory channels.";
21748 }
21749
21750 } // container bandwidth
21751
21752 } // container mcac
21753
21754 container static {
21755 description "Enter the static context";
21756
21757 list group {
21758 key "group-address";
21759 description "Enter the group context";
21760
21761 leaf group-address {
21762 type union {
21763 type string {
21764 length "1..64";
21765 pattern "<.*>" {
21766 error-message "Config Groups Regex Pattern";
21767 }
21768 }
21769 type types-sros:ipv4-multicast-address;
21770 }
21771 description "Group address of multicast channel";
21772 }
21773
21774 choice source-or-starg {
21775 mandatory true;
21776 case source {
21777
21778 list source {
21779 key "source-address";
21780 description "Enter the source context";
21781
21782 leaf source-address {
21783 type union {
21784 type string {
21785 length "1..64";
21786 pattern "<.*>" {
21787 error-message "Config Groups Regex Pattern";
21788 }
21789 }
21790 type types-sros:ipv4-unicast-address;
21791 }
21792 description "Source address of multicast channel.";
21793 }
21794
21795 } // list source
21796
21797 }
21798 case starg {
21799
21800 leaf starg {
21801 type empty;
21802 description "any source address (*,G)";
21803 }
21804
21805 }
21806 }
21807 } // list group
21808
21809 } // container static
21810
21811 } // container igmp-snooping
21812
21813 container mld-snooping {
21814 description "Enter the mld-snooping context";
21815
21816 leaf router-alert-check {
21817 type boolean;
21818 default "true";
21819 description "Enable IP router alert check option";
21820 }
21821
21822 leaf import-policy {
21823 type types-sros:named-item-64;
21824 description "Import policy that filters IGMP packets";
21825 }
21826
21827 leaf maximum-number-groups {
21828 type uint32 {
21829 range "1..16000";
21830 }
21831 description "Maximum groups allowed";
21832 }
21833
21834 leaf query-interval {
21835 type uint32 {
21836 range "2..1024";
21837 }
21838 units "seconds";
21839 default "125";
21840 description "Time between two consecutive host-query messages";
21841 }
21842
21843 leaf query-response-interval {
21844 type uint32 {
21845 range "1..1023";
21846 }
21847 units "seconds";
21848 default "10";
21849 description "Time to wait for a response to the host-query messages";
21850 }
21851
21852 leaf query-last-member-interval {
21853 type uint32 {
21854 range "1..50";
21855 }
21856 units "deciseconds";
21857 default "10";
21858 description "Time between group-specific query messages";
21859 }
21860
21861 leaf fast-leave {
21862 type boolean;
21863 default "false";
21864 description "Allow IGMP fast leave processing";
21865 }
21866
21867 leaf mrouter-port {
21868 type boolean;
21869 default "false";
21870 description "Port as a multicast router port";
21871 }
21872
21873 leaf robust-count {
21874 type uint32 {
21875 range "2..7";
21876 }
21877 default "2";
21878 description "Number of retries to cope with message loss.";
21879 }
21880
21881 leaf send-queries {
21882 type boolean;
21883 default "false";
21884 description "Generate IGMP general queries";
21885 }
21886
21887 leaf version {
21888 type types-igmp:mld-version;
21889 default "2";
21890 description "MLD protocol version.";
21891 }
21892
21893 container static {
21894 description "Enter the static context";
21895
21896 list group {
21897 key "group-address";
21898 description "Enter the group context";
21899
21900 leaf group-address {
21901 type union {
21902 type string {
21903 length "1..64";
21904 pattern "<.*>" {
21905 error-message "Config Groups Regex Pattern";
21906 }
21907 }
21908 type types-sros:ipv6-multicast-address;
21909 }
21910 description "Group address of multicast channel";
21911 }
21912
21913 choice source-or-starg {
21914 mandatory true;
21915 case source {
21916
21917 list source {
21918 key "source-address";
21919 description "Enter the source context";
21920
21921 leaf source-address {
21922 type union {
21923 type string {
21924 length "1..64";
21925 pattern "<.*>" {
21926 error-message "Config Groups Regex Pattern";
21927 }
21928 }
21929 type types-sros:ipv6-unicast-address;
21930 }
21931 description "Source address of multicast channel.";
21932 }
21933
21934 } // list source
21935
21936 }
21937 case starg {
21938
21939 leaf starg {
21940 type empty;
21941 description "any source address (*,G)";
21942 }
21943
21944 }
21945 }
21946 } // list group
21947
21948 } // container static
21949
21950 } // container mld-snooping
21951
21952 container eth-cfm {
21953 description "Enter the eth-cfm context";
21954
21955 leaf collect-lmm-stats {
21956 type boolean;
21957 default "false";
21958 description "Collect statistics for OAM-PM Loss Measurement Message (LMM) tests";
21959 }
21960
21961 leaf-list squelch-ingress-levels {
21962 type uint32 {
21963 range "0..7";
21964 }
21965 max-elements 8;
21966 description "ETH-CFM PDUs to be silently discarded";
21967 }
21968
21969 leaf vmep-filter {
21970 type boolean;
21971 default "false";
21972 description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP";
21973 }
21974
21975 container collect-lmm-fc-stats {
21976 description "Enter the collect-lmm-fc-stats context";
21977
21978 leaf-list fc {
21979 type types-eth-cfm:fc-type;
21980 max-elements 8;
21981 description "Forwarding class name for which to create an individual profile-unaware counter";
21982 }
21983
21984 leaf-list fc-in-profile {
21985 type types-eth-cfm:fc-type;
21986 max-elements 8;
21987 description "Individual counters to create for the specified Forwarding Class";
21988 }
21989
21990 } // container collect-lmm-fc-stats
21991
21992 list mep {
21993 key "md-admin-name ma-admin-name mep-id";
21994 description "Enter the mep context";
21995
21996 leaf md-admin-name {
21997 type union {
21998 type string {
21999 length "1..64";
22000 pattern "<.*>" {
22001 error-message "Config Groups Regex Pattern";
22002 }
22003 }
22004 type types-eth-cfm:admin-name;
22005 }
22006 description "Unique domain name";
22007 }
22008
22009 leaf ma-admin-name {
22010 type union {
22011 type string {
22012 length "1..64";
22013 pattern "<.*>" {
22014 error-message "Config Groups Regex Pattern";
22015 }
22016 }
22017 type types-eth-cfm:admin-name;
22018 }
22019 description "Unique association name";
22020 }
22021
22022 leaf mep-id {
22023 type union {
22024 type string {
22025 length "1..64";
22026 pattern "<.*>" {
22027 error-message "Config Groups Regex Pattern";
22028 }
22029 }
22030 type types-eth-cfm:mep-id-type;
22031 }
22032 description "Maintenance association end point identifier";
22033 }
22034
22035 leaf primary-vlan {
22036 type boolean;
22037 sros-ext:immutable;
22038 default "false";
22039 description "MEP provisioned using MA primary VLAN ID";
22040 }
22041
22042 leaf direction {
22043 type types-eth-cfm:mp-direction;
22044 sros-ext:immutable;
22045 description "Direction the MEP faces";
22046 }
22047
22048 leaf admin-state {
22049 type types-sros:admin-state;
22050 default "disable";
22051 description "Administrative state of the MEP";
22052 }
22053
22054 leaf description {
22055 type types-sros:description;
22056 description "Text description";
22057 }
22058
22059 leaf mac-address {
22060 type types-sros:mac-unicast-address-no-zero;
22061 description "MAC address for the MEP";
22062 }
22063
22064 leaf install-mep {
22065 type boolean;
22066 default "false";
22067 description "Install MEP in the forwarding plane";
22068 }
22069
22070 leaf low-priority-defect {
22071 type types-eth-cfm:lowest-alarm-priority;
22072 default "mac-rem-err-xcon";
22073 description "Lowest priority defect that is allowed to generate a fault alarm";
22074 }
22075
22076 leaf fault-propagation {
22077 type types-eth-cfm:fault-propagation-type;
22078 description "Fault propagation for the MEP";
22079 }
22080
22081 leaf ccm {
22082 type boolean;
22083 default "false";
22084 description "Generate CCM messages";
22085 }
22086
22087 leaf ccm-ltm-priority {
22088 type types-eth-cfm:frame-priority;
22089 default "7";
22090 description "Priority of CCM and LTM messages transmitted by the MEP";
22091 }
22092
22093 leaf ccm-padding-size {
22094 type uint32 {
22095 range "3..1500";
22096 }
22097 description "Additional octets inserted into CCM PDU for data TLV padding";
22098 }
22099
22100 leaf lbm-svc-act-responder {
22101 type boolean;
22102 default "false";
22103 description "Process service activation streams encapsulated in ETH-CFM request Loopback Message";
22104 }
22105
22106 leaf one-way-delay-threshold {
22107 type uint32 {
22108 range "0..600";
22109 }
22110 units "seconds";
22111 default "3";
22112 description "Threshold for one way delay test";
22113 }
22114
22115 container alarm-notification {
22116 description "Enter the alarm-notification context";
22117
22118 leaf fng-alarm-time {
22119 type int32 {
22120 range "250|500|1000";
22121 }
22122 units "centiseconds";
22123 description "Time to expire before a Fault Notification Generation (FNG) alarm";
22124 }
22125
22126 leaf fng-reset-time {
22127 type int32 {
22128 range "250|500|1000";
22129 }
22130 units "centiseconds";
22131 description "Time to expire before a Fault Notification Generation (FNG) alarm is reset";
22132 }
22133
22134 } // container alarm-notification
22135
22136 container ais {
22137 presence
22138 "The generation and reception of Alarm Indication Signal (AIS)
22139 message parameters";
22140 description "Enter the ais context";
22141
22142 leaf-list client-meg-level {
22143 type uint32 {
22144 range "1..7";
22145 }
22146 max-elements 7;
22147 description "Client MEG level for AIS message generation";
22148 }
22149
22150 leaf interface-support {
22151 type boolean;
22152 default "false";
22153 description "Allow generation of AIS PDUs based on the associated endpoint state";
22154 }
22155
22156 leaf interval {
22157 type uint32 {
22158 range "1|60";
22159 }
22160 units "seconds";
22161 default "1";
22162 description "Transmission interval for AIS messages";
22163 }
22164
22165 leaf low-priority-defect {
22166 type enumeration {
22167 enum "all-def" { value 1; }
22168 enum "mac-rem-err-xcon" { value 2; }
22169 }
22170 default "all-def";
22171 description "Lowest priority defect for MEP AIS generation";
22172 }
22173
22174 leaf priority {
22175 type types-eth-cfm:frame-priority;
22176 default "7";
22177 description "Priority of AIS messages originated by the node";
22178 }
22179
22180 } // container ais
22181
22182 container csf {
22183 presence "The reception of Client Signal Fail (CSF) message parameters";
22184 description "Enter the csf context";
22185
22186 leaf multiplier {
22187 type decimal64 {
22188 range "0.0|2.0..30.0";
22189 fraction-digits 1;
22190 }
22191 default "3.5";
22192 description "Receive period multiplier to time out CSF";
22193 }
22194
22195 } // container csf
22196
22197 container eth-test {
22198 presence "Enable/disable eth-test functionality on MEP.";
22199 description "Enter the eth-test context";
22200
22201 leaf bit-error-threshold {
22202 type uint32 {
22203 range "0..11840";
22204 }
22205 units "bit errors";
22206 default "1";
22207 description "Lowest priority defect threshold for the bit error trap to generate a fault alarm";
22208 }
22209
22210 container test-pattern {
22211 description "Enter the test-pattern context";
22212
22213 leaf pattern {
22214 type enumeration {
22215 enum "all-zeros" { value 0; }
22216 enum "all-ones" { value 1; }
22217 }
22218 default "all-zeros";
22219 description "Test pattern for eth-test frames";
22220 }
22221
22222 leaf crc-tlv {
22223 type boolean;
22224 default "false";
22225 description "Generate a CRC checksum";
22226 }
22227
22228 } // container test-pattern
22229
22230 } // container eth-test
22231
22232 container grace {
22233 description "Enter the grace context";
22234
22235 container eth-ed {
22236 description "Enter the eth-ed context";
22237
22238 leaf max-rx-defect-window {
22239 type uint32 {
22240 range "1..86400";
22241 }
22242 units "seconds";
22243 description "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window";
22244 }
22245
22246 leaf priority {
22247 type int32 {
22248 range "0..7";
22249 }
22250 description "Transmission priority for ETH-ED PDUs";
22251 }
22252
22253 leaf rx-eth-ed {
22254 type boolean;
22255 default "true";
22256 description "Receive and process ETH-ED PDUs";
22257 }
22258
22259 leaf tx-eth-ed {
22260 type boolean;
22261 default "false";
22262 description "Transmit ETH-ED PDUs";
22263 }
22264
22265 } // container eth-ed
22266
22267 container eth-vsm-grace {
22268 description "Enter the eth-vsm-grace context";
22269
22270 leaf rx-eth-vsm-grace {
22271 type boolean;
22272 default "true";
22273 description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP";
22274 }
22275
22276 leaf tx-eth-vsm-grace {
22277 type boolean;
22278 default "true";
22279 description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP";
22280 }
22281
22282 } // container eth-vsm-grace
22283
22284 } // container grace
22285
22286 } // list mep
22287
22288 } // container eth-cfm
22289
22290 } // list mesh-sdp
22291
22292 list bgp-mh-site {
22293 key "site-name";
22294 description "Enter the bgp-mh-site context";
22295
22296 leaf site-name {
22297 type union {
22298 type string {
22299 length "1..64";
22300 pattern "<.*>" {
22301 error-message "Config Groups Regex Pattern";
22302 }
22303 }
22304 type types-sros:named-item;
22305 }
22306 description "Name for the specific site";
22307 }
22308
22309 leaf admin-state {
22310 type types-sros:admin-state;
22311 default "disable";
22312 description "Administrative state of the site";
22313 }
22314
22315 leaf id {
22316 type types-services:site-id;
22317 description "ID for the site";
22318 }
22319
22320 leaf boot-timer {
22321 type types-services:site-boot-timer;
22322 units "seconds";
22323 description "Time that system waits after node reboot and before it runs DF election algorithm";
22324 }
22325
22326 leaf activation-timer {
22327 type types-services:site-activation-timer;
22328 units "seconds";
22329 description "Time that the local sites are in standby status, waiting for BGP updates";
22330 }
22331
22332 leaf monitor-oper-group {
22333 type types-sros:named-item;
22334 description "Operational group to monitor";
22335 }
22336
22337 leaf failed-threshold {
22338 type types-services:failed-threshold;
22339 default "all";
22340 description "Threshold for the site to be declared down";
22341 }
22342
22343 leaf min-down-timer {
22344 type types-services:site-min-down-timer;
22345 units "seconds";
22346 description "Minimum downtime for BGP multi-homing site after transition from up to down";
22347 }
22348
22349 choice site-object {
22350 case spoke-sdp {
22351
22352 leaf spoke-sdp {
22353 type types-services:sdp-bind-id;
22354 description "SDP to be associated with this site";
22355 }
22356
22357 }
22358 case sap {
22359
22360 leaf sap {
22361 type types-sros:sap;
22362 description "SAP to be associated with this site";
22363 }
22364
22365 }
22366 case mesh-sdp {
22367
22368 leaf mesh-sdp-binds {
22369 type empty;
22370 description "Specify if a mesh-sdp-binding is associated with this site";
22371 }
22372
22373 }
22374 case shg {
22375
22376 leaf shg-name {
22377 type types-sros:named-item;
22378 description "Split horizon group to be associated with this site";
22379 }
22380
22381 }
22382 }
22383 } // list bgp-mh-site
22384
22385 list sap {
22386 key "sap-id";
22387 description "Enter the sap context";
22388
22389 leaf sap-id {
22390 type union {
22391 type string {
22392 length "1..64";
22393 pattern "<.*>" {
22394 error-message "Config Groups Regex Pattern";
22395 }
22396 }
22397 type types-sros:sap;
22398 }
22399 description "SAP identifier";
22400 }
22401
22402 leaf description {
22403 type types-sros:long-description;
22404 description "Text description";
22405 }
22406
22407 leaf admin-state {
22408 type types-sros:admin-state;
22409 default "enable";
22410 description "Administrative state of the SAP";
22411 }
22412
22413 leaf accounting-policy {
22414 type types-log:log-policy-id;
22415 description "Accounting policy";
22416 }
22417
22418 leaf anti-spoof {
22419 type types-services:anti-spoof-option;
22420 description "Type of anti-spoof filtering";
22421 }
22422
22423 leaf bandwidth {
22424 type types-services:sap-bandwidth;
22425 units "kilobps";
22426 description "SAP bandwidth";
22427 }
22428
22429 leaf calling-station-id {
22430 type types-sros:string-not-all-spaces {
22431 length "1..64";
22432 }
22433 description "Calling station ID";
22434 }
22435
22436 leaf cflowd {
22437 type boolean;
22438 default "false";
22439 description "Enable Cflowd collection and analysis on this SAP";
22440 }
22441
22442 leaf collect-stats {
22443 type boolean;
22444 default "false";
22445 description "Collect accounting statistics";
22446 }
22447
22448 leaf dist-cpu-protection {
22449 type types-sros:named-item;
22450 description "Distributed CPU protection policy for SAP";
22451 }
22452
22453 leaf host-admin-state {
22454 type types-sros:admin-state;
22455 default "enable";
22456 description "Administrative state of hosts";
22457 }
22458
22459 leaf host-lockout-policy {
22460 type types-sros:named-item;
22461 description "Host lockout policy";
22462 }
22463
22464 leaf multi-service-site {
22465 type types-sros:named-item;
22466 description "Multi service site name";
22467 }
22468
22469 leaf split-horizon-group {
22470 type types-sros:named-item;
22471 sros-ext:immutable;
22472 description "Split horizon group";
22473 }
22474
22475 leaf multicast-source {
22476 type boolean;
22477 sros-ext:immutable;
22478 default "false";
22479 description "Enable/disable multicast-source on the SAP.";
22480 }
22481
22482 leaf eth-ring {
22483 type uint32 {
22484 range "0..128";
22485 }
22486 sros-ext:immutable;
22487 description "Ethernet ring operation";
22488 }
22489
22490 leaf etree-leaf {
22491 type boolean;
22492 sros-ext:immutable;
22493 default "false";
22494 description "Enable etree leaf access-circuit status";
22495 }
22496
22497 leaf arp-reply-agent {
22498 type types-services:arp-reply-agent;
22499 description "Enable arp-reply-agent function";
22500 }
22501
22502 leaf bpdu-translation {
22503 type types-services:bpdu-translation;
22504 description "Bpdu translation on this SAP";
22505 }
22506
22507 leaf process-cpm-traffic-on-sap-down {
22508 type boolean;
22509 default "false";
22510 description "Process CPM traffic on SAP down event";
22511 }
22512
22513 leaf radius-auth-policy {
22514 type types-sros:named-item;
22515 description "RADIUS authentication policy";
22516 }
22517
22518 leaf shcv-policy-ipv4 {
22519 type types-sros:external-named-item;
22520 description "Subscriber host connectivity verification policy for IPv4";
22521 }
22522
22523 choice oper-group-association {
22524 case oper-group {
22525
22526 leaf oper-group {
22527 type types-sros:named-item;
22528 description "Operational group";
22529 }
22530
22531 }
22532 case monitor-oper-group {
22533
22534 leaf monitor-oper-group {
22535 type types-sros:named-item;
22536 description "Monitor operational group";
22537 }
22538
22539 }
22540 }
22541 container ingress {
22542 description "Enter the ingress context";
22543
22544 container qos {
22545 description "Enter the qos context";
22546
22547 leaf match-qinq-dot1p {
22548 type enumeration {
22549 enum "top" { value 2; }
22550 enum "bottom" { value 3; }
22551 }
22552 description "Ingress match QinQ Dot1p";
22553 }
22554
22555 container sap-ingress {
22556 description "Enter the sap-ingress context";
22557
22558 leaf policy-name {
22559 type types-qos:qos-policy-name;
22560 description "Policy identifier";
22561 }
22562
22563 leaf queuing-type {
22564 type types-services:services-sap-queuing-type;
22565 description "Ingress queuing type";
22566 }
22567
22568 container fp-redirect-group {
22569 description "Enter the fp-redirect-group context";
22570
22571 leaf group-name {
22572 type types-sros:named-item;
22573 description "Forwarding-plane queue group policy";
22574 }
22575
22576 leaf instance {
22577 type types-services:qos-qgrp-instance-id;
22578 description "Queue group instance";
22579 }
22580
22581 } // container fp-redirect-group
22582
22583 container overrides {
22584 description "Enter the overrides context";
22585
22586 list queue {
22587 key "queue-id";
22588 description "Enter the queue context";
22589
22590 leaf queue-id {
22591 type union {
22592 type string {
22593 length "1..64";
22594 pattern "<.*>" {
22595 error-message "Config Groups Regex Pattern";
22596 }
22597 }
22598 type types-qos:ingress-queue-id;
22599 }
22600 description "Policer unique ID";
22601 }
22602
22603 leaf cbs {
22604 type union {
22605 type uint32 {
22606 range "0..1048576";
22607 }
22608 type enumeration {
22609 enum "auto" { value -1; }
22610 }
22611 }
22612 units "kilobps";
22613 description "CBS";
22614 }
22615
22616 leaf mbs {
22617 type union {
22618 type types-qos:bytes {
22619 range "0..1073741824";
22620 }
22621 type enumeration {
22622 enum "auto" { value -1; }
22623 }
22624 }
22625 description "MBS";
22626 }
22627
22628 leaf monitor-depth {
22629 type boolean;
22630 default "false";
22631 description "Monitor queue depth";
22632 }
22633
22634 choice queue-override-rate {
22635 case rate {
22636
22637 container rate {
22638 description "Enter the rate context";
22639
22640 leaf pir {
22641 type types-services:sap-pir-rate-ovr;
22642 units "kilobps";
22643 description "PIR rate";
22644 }
22645
22646 leaf cir {
22647 type types-services:sap-cir-rate-ovr;
22648 units "kilobps";
22649 description "CIR rate";
22650 }
22651
22652 } // container rate
22653
22654 }
22655 case percent-rate {
22656
22657 container percent-rate {
22658 description "Enter the percent-rate context";
22659
22660 leaf pir {
22661 type decimal64 {
22662 range "0.01..100.00";
22663 fraction-digits 2;
22664 }
22665 description "PIR percent rate";
22666 }
22667
22668 leaf cir {
22669 type decimal64 {
22670 range "0.00..100.00";
22671 fraction-digits 2;
22672 }
22673 description "CIR percent rate";
22674 }
22675
22676 } // container percent-rate
22677
22678 }
22679 }
22680 container adaptation-rule {
22681 description "Enter the adaptation-rule context";
22682
22683 leaf pir {
22684 type types-qos:adaptation-rule-override;
22685 description "Constraint used when deriving the operational PIR value";
22686 }
22687
22688 leaf cir {
22689 type types-qos:adaptation-rule-override;
22690 description "Constraint used when deriving the operational CIR value";
22691 }
22692
22693 } // container adaptation-rule
22694
22695 container drop-tail {
22696 description "Enter the drop-tail context";
22697
22698 container low {
22699 description "Enter the low context";
22700
22701 leaf percent-reduction-from-mbs {
22702 type types-qos:burst-percent-or-default-override;
22703 description "Percentage reduction from the MBS for a queue drop tail";
22704 }
22705
22706 } // container low
22707
22708 } // container drop-tail
22709
22710 container parent {
22711 description "Enter the parent context";
22712
22713 leaf weight {
22714 type types-qos:weight-override;
22715 description "PIR parameter that overrides parent for queue group";
22716 }
22717
22718 leaf cir-weight {
22719 type types-qos:weight-override;
22720 description "CIR parameter that overrides parent for queue group";
22721 }
22722
22723 } // container parent
22724
22725 } // list queue
22726
22727 list policer {
22728 key "policer-id";
22729 description "Enter the policer context";
22730
22731 leaf policer-id {
22732 type union {
22733 type string {
22734 length "1..64";
22735 pattern "<.*>" {
22736 error-message "Config Groups Regex Pattern";
22737 }
22738 }
22739 type types-qos:ingress-policer-id;
22740 }
22741 description "Policer unique ID";
22742 }
22743
22744 leaf cbs {
22745 type union {
22746 type types-qos:bytes {
22747 range "0..16777216";
22748 }
22749 type enumeration {
22750 enum "auto" { value -1; }
22751 }
22752 }
22753 units "bytes";
22754 description "CBS";
22755 }
22756
22757 leaf mbs {
22758 type union {
22759 type types-qos:bytes {
22760 range "0..1073741824";
22761 }
22762 type enumeration {
22763 enum "auto" { value -1; }
22764 }
22765 }
22766 description "MBS";
22767 }
22768
22769 leaf packet-byte-offset {
22770 type types-qos:ingress-per-packet-offset-override;
22771 description "Size of each packet, handled by the policer, to be modified";
22772 }
22773
22774 leaf stat-mode {
22775 type types-qos:ingress-policer-stat-mode;
22776 description "Mode of statistics collected by the policer";
22777 }
22778
22779 choice policer-override-rate {
22780 case rate {
22781
22782 container rate {
22783 description "Enter the rate context";
22784
22785 leaf pir {
22786 type union {
22787 type int64 {
22788 range "1..6400000000";
22789 }
22790 type enumeration {
22791 enum "max" { value -1; }
22792 }
22793 }
22794 units "kilobps";
22795 description "PIR rate";
22796 }
22797
22798 leaf cir {
22799 type union {
22800 type int64 {
22801 range "0..6400000000";
22802 }
22803 type enumeration {
22804 enum "max" { value -1; }
22805 }
22806 }
22807 units "kilobps";
22808 description "CIR rate";
22809 }
22810
22811 } // container rate
22812
22813 }
22814 case percent-rate {
22815
22816 container percent-rate {
22817 description "Enter the percent-rate context";
22818
22819 leaf pir {
22820 type decimal64 {
22821 range "0.01..100.00";
22822 fraction-digits 2;
22823 }
22824 description "PIR percent rate";
22825 }
22826
22827 leaf cir {
22828 type decimal64 {
22829 range "0.00..100.00";
22830 fraction-digits 2;
22831 }
22832 description "CIR percent rate";
22833 }
22834
22835 } // container percent-rate
22836
22837 }
22838 }
22839 } // list policer
22840
22841 } // container overrides
22842
22843 } // container sap-ingress
22844
22845 container policer-control-policy {
22846 description "Enter the policer-control-policy context";
22847
22848 leaf policy-name {
22849 type types-sros:named-item;
22850 description "Policer control policy name";
22851 }
22852
22853 container overrides {
22854 presence "Apply a policer control policy override.";
22855 description "Enter the overrides context";
22856
22857 container root {
22858 description "Enter the root context";
22859
22860 leaf max-rate {
22861 type types-services:sap-max-rate-ovr;
22862 description "Maximum frame-based bandwidth limit";
22863 }
22864
22865 container priority-mbs-thresholds {
22866 description "Enter the priority-mbs-thresholds context";
22867
22868 leaf min-thresh-separation {
22869 type union {
22870 type types-qos:bytes {
22871 range "0..16777216";
22872 }
22873 type enumeration {
22874 enum "auto" { value -1; }
22875 }
22876 }
22877 units "bytes";
22878 description "Minimum amount of separation buffer space";
22879 }
22880
22881 list priority {
22882 key "priority-level";
22883 description "Enter the priority context";
22884
22885 leaf priority-level {
22886 type union {
22887 type string {
22888 length "1..64";
22889 pattern "<.*>" {
22890 error-message "Config Groups Regex Pattern";
22891 }
22892 }
22893 type types-qos:hierarchy-level;
22894 }
22895 description "Priority level";
22896 }
22897
22898 leaf mbs-contribution {
22899 type union {
22900 type types-qos:bytes {
22901 range "0..16777216";
22902 }
22903 type enumeration {
22904 enum "auto" { value -1; }
22905 }
22906 }
22907 units "bytes";
22908 description "Minimum amount of cumulative buffer space allowed";
22909 }
22910
22911 } // list priority
22912
22913 } // container priority-mbs-thresholds
22914
22915 } // container root
22916
22917 } // container overrides
22918
22919 } // container policer-control-policy
22920
22921 container scheduler-policy {
22922 description "Enter the scheduler-policy context";
22923
22924 leaf policy-name {
22925 type types-sros:named-item;
22926 description "Scheduler policy name";
22927 }
22928
22929 container overrides {
22930 description "Enter the overrides context";
22931
22932 list scheduler {
22933 key "scheduler-name";
22934 description "Enter the scheduler context";
22935
22936 leaf scheduler-name {
22937 type union {
22938 type string {
22939 length "1..64";
22940 pattern "<.*>" {
22941 error-message "Config Groups Regex Pattern";
22942 }
22943 }
22944 type types-sros:named-item;
22945 }
22946 description "Scheduler override policy name";
22947 }
22948
22949 container parent {
22950 description "Enter the parent context";
22951
22952 leaf weight {
22953 type types-qos:weight;
22954 description "Weight to be used by the scheduler for feeding this queue";
22955 }
22956
22957 leaf cir-weight {
22958 type types-qos:weight;
22959 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
22960 }
22961
22962 } // container parent
22963
22964 container rate {
22965 description "Enter the rate context";
22966
22967 leaf pir {
22968 type union {
22969 type int64 {
22970 range "1..6400000000";
22971 }
22972 type enumeration {
22973 enum "max" { value -1; }
22974 }
22975 }
22976 description "Specifies the administrative PIR";
22977 }
22978
22979 leaf cir {
22980 type union {
22981 type int64 {
22982 range "0..6400000000";
22983 }
22984 type enumeration {
22985 enum "sum" { value -3; }
22986 enum "max" { value -1; }
22987 }
22988 }
22989 description "Specifies the administrative CIR";
22990 }
22991
22992 } // container rate
22993
22994 } // list scheduler
22995
22996 } // container overrides
22997
22998 } // container scheduler-policy
22999
23000 } // container qos
23001
23002 container filter {
23003 description "Enter the filter context";
23004
23005 leaf mac {
23006 type types-filter:filter-name;
23007 description "MAC filter identifier";
23008 }
23009
23010 leaf ip {
23011 type types-filter:filter-name;
23012 description "IP filter identifier";
23013 }
23014
23015 leaf ipv6 {
23016 type types-filter:filter-name;
23017 description "IPv6 filter identifier";
23018 }
23019
23020 } // container filter
23021
23022 container qtag-manipulation {
23023 description "Enter the qtag-manipulation context";
23024
23025 choice tags {
23026 case push-dot1q-vlan {
23027
23028 leaf push-dot1q-vlan {
23029 type types-services:qtag-manipulation-info;
23030 description "VLAN translation information";
23031 }
23032
23033 }
23034 }
23035 } // container qtag-manipulation
23036
23037 } // container ingress
23038
23039 container egress {
23040 description "Enter the egress context";
23041
23042 leaf dest-mac-rewrite {
23043 type types-sros:mac-unicast-address-no-zero;
23044 description "Destination MAC overwrite for unicast";
23045 }
23046
23047 container qos {
23048 description "Enter the qos context";
23049
23050 leaf qinq-mark-top-only {
23051 type boolean;
23052 default "false";
23053 description "Mark top Q-tags";
23054 }
23055
23056 container sap-egress {
23057 description "Enter the sap-egress context";
23058
23059 leaf policy-name {
23060 type types-qos:qos-policy-name;
23061 description "Policy identifier";
23062 }
23063
23064 container port-redirect-group {
23065 description "Enter the port-redirect-group context";
23066
23067 leaf group-name {
23068 type types-sros:named-item;
23069 description "Policy for port redirect queue group";
23070 }
23071
23072 leaf instance {
23073 type types-services:qos-qgrp-instance-id;
23074 description "Instance of port queue group";
23075 }
23076
23077 } // container port-redirect-group
23078
23079 container overrides {
23080 description "Enter the overrides context";
23081
23082 leaf hs-secondary-shaper {
23083 type types-sros:named-item;
23084 description "HS Secondary Shaper";
23085 }
23086
23087 container hsmda-queues {
23088 description "Enter the hsmda-queues context";
23089
23090 leaf secondary-shaper {
23091 type types-sros:named-item;
23092 description "Secondary shaper for the HSMDA queue";
23093 }
23094
23095 leaf packet-byte-offset {
23096 type types-services:egress-hsmda-queue-packet-byte-offset;
23097 description "Packet byte offset for HSMDA queue";
23098 }
23099
23100 leaf wrr-policy {
23101 type types-sros:named-item;
23102 description "WRR policy for the HSMDA queue";
23103 }
23104
23105 list queue {
23106 key "queue-id";
23107 description "Enter the queue context";
23108
23109 leaf queue-id {
23110 type union {
23111 type string {
23112 length "1..64";
23113 pattern "<.*>" {
23114 error-message "Config Groups Regex Pattern";
23115 }
23116 }
23117 type types-qos:egress-queue-id;
23118 }
23119 description "Egress HSMDA queue ID";
23120 }
23121
23122 leaf mbs {
23123 type types-qos:hsmda-queue-burst-size-override;
23124 units "bytes";
23125 description "Buffer space allowed for the queue";
23126 }
23127
23128 leaf rate {
23129 type types-qos:hsmda-queue-pir-rate-override;
23130 description "Administrative PIR rate.";
23131 }
23132
23133 leaf slope-policy {
23134 type types-sros:named-item;
23135 description
23136 "Name of the slope-policy which is used to override the
23137 default slope-policy for the named buffer pool.";
23138 }
23139
23140 leaf wrr-weight {
23141 type types-qos:hsmda-wrr-weight-override;
23142 description "Weight value for the HSMDA queue";
23143 }
23144
23145 } // list queue
23146
23147 } // container hsmda-queues
23148
23149 list queue {
23150 key "queue-id";
23151 description "Enter the queue context";
23152
23153 leaf queue-id {
23154 type union {
23155 type string {
23156 length "1..64";
23157 pattern "<.*>" {
23158 error-message "Config Groups Regex Pattern";
23159 }
23160 }
23161 type types-qos:egress-queue-id;
23162 }
23163 description "Policer unique ID";
23164 }
23165
23166 leaf avg-frame-overhead {
23167 type decimal64 {
23168 range "0.00..100.00";
23169 fraction-digits 2;
23170 }
23171 description
23172 "Encapsulation overhead, in centipercent, used to
23173 translate packet-based rate to frame-based rate and vice versa.";
23174 }
23175
23176 leaf burst-limit {
23177 type union {
23178 type types-qos:bytes {
23179 range "1..14000000";
23180 }
23181 type enumeration {
23182 enum "auto" { value -1; }
23183 }
23184 }
23185 description "Explicit shaping burst size of a queue.";
23186 }
23187
23188 leaf cbs {
23189 type union {
23190 type uint32 {
23191 range "0..1048576";
23192 }
23193 type enumeration {
23194 enum "auto" { value -1; }
23195 }
23196 }
23197 units "kilobytes";
23198 description "CBS";
23199 }
23200
23201 leaf mbs {
23202 type union {
23203 type types-qos:bytes {
23204 range "0..1073741824";
23205 }
23206 type enumeration {
23207 enum "auto" { value -1; }
23208 }
23209 }
23210 units "kilobytes";
23211 description "MBS";
23212 }
23213
23214 leaf monitor-depth {
23215 type boolean;
23216 default "false";
23217 description "Monitor queue depth";
23218 }
23219
23220 leaf hs-wrr-weight {
23221 type types-qos:hs-wrr-weight-override;
23222 default "1";
23223 description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler";
23224 }
23225
23226 leaf hs-class-weight {
23227 type types-qos:hs-class-weight-override;
23228 description "Scheduling class weight.";
23229 }
23230
23231 choice queue-override-rate {
23232 case rate {
23233
23234 container rate {
23235 description "Enter the rate context";
23236
23237 leaf pir {
23238 type types-services:sap-pir-rate-ovr;
23239 units "kilobps";
23240 description "PIR rate";
23241 }
23242
23243 leaf cir {
23244 type types-services:sap-cir-rate-ovr;
23245 units "kilobps";
23246 description "CIR rate";
23247 }
23248
23249 } // container rate
23250
23251 }
23252 case percent-rate {
23253
23254 container percent-rate {
23255 description "Enter the percent-rate context";
23256
23257 leaf pir {
23258 type decimal64 {
23259 range "0.01..100.00";
23260 fraction-digits 2;
23261 }
23262 description "PIR percent rate";
23263 }
23264
23265 leaf cir {
23266 type decimal64 {
23267 range "0.00..100.00";
23268 fraction-digits 2;
23269 }
23270 description "CIR percent rate";
23271 }
23272
23273 } // container percent-rate
23274
23275 }
23276 }
23277 container adaptation-rule {
23278 description "Enter the adaptation-rule context";
23279
23280 leaf pir {
23281 type types-qos:adaptation-rule-override;
23282 description "Constraint used when deriving the operational PIR value";
23283 }
23284
23285 leaf cir {
23286 type types-qos:adaptation-rule-override;
23287 description "Constraint used when deriving the operational CIR value";
23288 }
23289
23290 } // container adaptation-rule
23291
23292 container drop-tail {
23293 description "Enter the drop-tail context";
23294
23295 container low {
23296 description "Enter the low context";
23297
23298 leaf percent-reduction-from-mbs {
23299 type types-qos:burst-percent-or-default-override;
23300 description "Percentage reduction from the MBS for a queue drop tail";
23301 }
23302
23303 } // container low
23304
23305 } // container drop-tail
23306
23307 container parent {
23308 description "Enter the parent context";
23309
23310 leaf weight {
23311 type types-qos:weight-override;
23312 description "PIR parameter that overrides parent for queue group";
23313 }
23314
23315 leaf cir-weight {
23316 type types-qos:weight-override;
23317 description "CIR parameter that overrides parent for queue group";
23318 }
23319
23320 } // container parent
23321
23322 container hs-wred-queue {
23323 description "Enter the hs-wred-queue context";
23324
23325 leaf policy {
23326 type types-sros:named-item;
23327 description "Name of slope-policy.";
23328 }
23329
23330 } // container hs-wred-queue
23331
23332 } // list queue
23333
23334 list policer {
23335 key "policer-id";
23336 description "Enter the policer context";
23337
23338 leaf policer-id {
23339 type union {
23340 type string {
23341 length "1..64";
23342 pattern "<.*>" {
23343 error-message "Config Groups Regex Pattern";
23344 }
23345 }
23346 type types-qos:sap-egress-policer-id;
23347 }
23348 description "Policer unique ID";
23349 }
23350
23351 leaf cbs {
23352 type union {
23353 type types-qos:bytes {
23354 range "0..16777216";
23355 }
23356 type enumeration {
23357 enum "auto" { value -1; }
23358 }
23359 }
23360 units "bytes";
23361 description "CBS";
23362 }
23363
23364 leaf mbs {
23365 type union {
23366 type types-qos:bytes {
23367 range "0..1073741824";
23368 }
23369 type enumeration {
23370 enum "auto" { value -1; }
23371 }
23372 }
23373 description "MBS";
23374 }
23375
23376 leaf packet-byte-offset {
23377 type types-qos:egress-per-packet-offset-override;
23378 description "Size of each packet, handled by the policer, to be modified";
23379 }
23380
23381 leaf stat-mode {
23382 type types-qos:egress-policer-stat-mode;
23383 description "Mode of statistics collected by the policer";
23384 }
23385
23386 choice policer-override-rate {
23387 case rate {
23388
23389 container rate {
23390 description "Enter the rate context";
23391
23392 leaf pir {
23393 type union {
23394 type int64 {
23395 range "1..6400000000";
23396 }
23397 type enumeration {
23398 enum "max" { value -1; }
23399 }
23400 }
23401 units "kilobps";
23402 description "PIR rate";
23403 }
23404
23405 leaf cir {
23406 type union {
23407 type int64 {
23408 range "0..6400000000";
23409 }
23410 type enumeration {
23411 enum "max" { value -1; }
23412 }
23413 }
23414 units "kilobps";
23415 description "CIR rate";
23416 }
23417
23418 } // container rate
23419
23420 }
23421 case percent-rate {
23422
23423 container percent-rate {
23424 description "Enter the percent-rate context";
23425
23426 leaf pir {
23427 type decimal64 {
23428 range "0.01..100.00";
23429 fraction-digits 2;
23430 }
23431 description "PIR percent rate";
23432 }
23433
23434 leaf cir {
23435 type decimal64 {
23436 range "0.00..100.00";
23437 fraction-digits 2;
23438 }
23439 description "CIR percent rate";
23440 }
23441
23442 } // container percent-rate
23443
23444 }
23445 }
23446 } // list policer
23447
23448 list hs-wrr-group {
23449 key "group-id";
23450 description "Enter the hs-wrr-group context";
23451
23452 leaf group-id {
23453 type union {
23454 type string {
23455 length "1..64";
23456 pattern "<.*>" {
23457 error-message "Config Groups Regex Pattern";
23458 }
23459 }
23460 type types-qos:hs-wrr-group-id;
23461 }
23462 description "HS WRR group identifier";
23463 }
23464
23465 leaf hs-class-weight {
23466 type types-qos:hs-class-weight-override;
23467 description "Weight of scheduling class.";
23468 }
23469
23470 choice rate-or-percent-rate {
23471 case rate {
23472
23473 leaf rate {
23474 type union {
23475 type uint32 {
23476 range "1..2000000000";
23477 }
23478 type enumeration {
23479 enum "max" { value -1; }
23480 }
23481 }
23482 units "kilobps";
23483 description "Administrative PIR.";
23484 }
23485
23486 }
23487 case percent-rate {
23488
23489 leaf percent-rate {
23490 type decimal64 {
23491 range "0.01..100.00";
23492 fraction-digits 2;
23493 }
23494 description "Administrative PIR percent.";
23495 }
23496
23497 }
23498 }
23499 } // list hs-wrr-group
23500
23501 } // container overrides
23502
23503 } // container sap-egress
23504
23505 container policer-control-policy {
23506 description "Enter the policer-control-policy context";
23507
23508 leaf policy-name {
23509 type types-sros:named-item;
23510 description "Policer control policy name";
23511 }
23512
23513 container overrides {
23514 presence "Apply a policer control policy override.";
23515 description "Enter the overrides context";
23516
23517 container root {
23518 description "Enter the root context";
23519
23520 leaf max-rate {
23521 type types-services:sap-max-rate-ovr;
23522 description "Maximum frame-based bandwidth limit";
23523 }
23524
23525 container priority-mbs-thresholds {
23526 description "Enter the priority-mbs-thresholds context";
23527
23528 leaf min-thresh-separation {
23529 type union {
23530 type types-qos:bytes {
23531 range "0..16777216";
23532 }
23533 type enumeration {
23534 enum "auto" { value -1; }
23535 }
23536 }
23537 units "bytes";
23538 description "Minimum amount of separation buffer space";
23539 }
23540
23541 list priority {
23542 key "priority-level";
23543 description "Enter the priority context";
23544
23545 leaf priority-level {
23546 type union {
23547 type string {
23548 length "1..64";
23549 pattern "<.*>" {
23550 error-message "Config Groups Regex Pattern";
23551 }
23552 }
23553 type types-qos:hierarchy-level;
23554 }
23555 description "Priority level";
23556 }
23557
23558 leaf mbs-contribution {
23559 type union {
23560 type types-qos:bytes {
23561 range "0..16777216";
23562 }
23563 type enumeration {
23564 enum "auto" { value -1; }
23565 }
23566 }
23567 units "bytes";
23568 description "Minimum amount of cumulative buffer space allowed";
23569 }
23570
23571 } // list priority
23572
23573 } // container priority-mbs-thresholds
23574
23575 } // container root
23576
23577 } // container overrides
23578
23579 } // container policer-control-policy
23580
23581 container scheduler-policy {
23582 description "Enter the scheduler-policy context";
23583
23584 leaf policy-name {
23585 type types-sros:named-item;
23586 description "Scheduler policy name";
23587 }
23588
23589 container overrides {
23590 description "Enter the overrides context";
23591
23592 list scheduler {
23593 key "scheduler-name";
23594 description "Enter the scheduler context";
23595
23596 leaf scheduler-name {
23597 type union {
23598 type string {
23599 length "1..64";
23600 pattern "<.*>" {
23601 error-message "Config Groups Regex Pattern";
23602 }
23603 }
23604 type types-sros:named-item;
23605 }
23606 description "Scheduler override policy name";
23607 }
23608
23609 container parent {
23610 description "Enter the parent context";
23611
23612 leaf weight {
23613 type types-qos:weight;
23614 description "Weight to be used by the scheduler for feeding this queue";
23615 }
23616
23617 leaf cir-weight {
23618 type types-qos:weight;
23619 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
23620 }
23621
23622 } // container parent
23623
23624 container rate {
23625 description "Enter the rate context";
23626
23627 leaf pir {
23628 type union {
23629 type int64 {
23630 range "1..6400000000";
23631 }
23632 type enumeration {
23633 enum "max" { value -1; }
23634 }
23635 }
23636 description "Specifies the administrative PIR";
23637 }
23638
23639 leaf cir {
23640 type union {
23641 type int64 {
23642 range "0..6400000000";
23643 }
23644 type enumeration {
23645 enum "sum" { value -3; }
23646 enum "max" { value -1; }
23647 }
23648 }
23649 description "Specifies the administrative CIR";
23650 }
23651
23652 } // container rate
23653
23654 } // list scheduler
23655
23656 } // container overrides
23657
23658 } // container scheduler-policy
23659
23660 container vlan-qos-policy {
23661 description "Attach an egress vlan-qos-policy.";
23662
23663 leaf policy-name {
23664 type types-qos:qos-policy-name;
23665 description "Egress vlan-qos-policy name";
23666 }
23667
23668 } // container vlan-qos-policy
23669
23670 container egress-remark-policy {
23671 description "Attach an egress-remark-policy.";
23672
23673 leaf policy-name {
23674 type types-qos:qos-policy-name;
23675 description "Egress-remark-policy name";
23676 }
23677
23678 } // container egress-remark-policy
23679
23680 } // container qos
23681
23682 container filter {
23683 description "Enter the filter context";
23684
23685 leaf mac {
23686 type types-filter:filter-name;
23687 description "MAC filter identifier";
23688 }
23689
23690 leaf ip {
23691 type types-filter:filter-name;
23692 description "IP filter identifier";
23693 }
23694
23695 leaf ipv6 {
23696 type types-filter:filter-name;
23697 description "IPv6 filter identifier";
23698 }
23699
23700 } // container filter
23701
23702 container agg-rate {
23703 description "Enter the agg-rate context";
23704
23705 leaf limit-unused-bandwidth {
23706 type boolean;
23707 default "false";
23708 description "Enable aggregate rate overrun protection";
23709 }
23710
23711 leaf rate {
23712 type types-services:agg-rate-rate;
23713 description "Maximum total rate of all egress queues in kbps.";
23714 }
23715
23716 leaf queue-frame-based-accounting {
23717 type boolean;
23718 default "false";
23719 description "Enable frame-based accounting on all policers and queues associated with context";
23720 }
23721
23722 leaf cir {
23723 type union {
23724 type int32 {
23725 range "0..100000000";
23726 }
23727 type enumeration {
23728 enum "max" { value -1; }
23729 }
23730 }
23731 units "kilobps";
23732 default "0";
23733 description "Specifies the administrative CIR.";
23734 }
23735
23736 } // container agg-rate
23737
23738 } // container egress
23739
23740 container cpu-protection {
23741 description "Enter the cpu-protection context";
23742
23743 leaf policy-id {
23744 type types-services:cpm-prot-policy-id;
23745 description "CPM protection policy";
23746 }
23747
23748 choice monitoring {
23749 case mac {
23750
23751 leaf mac-monitoring {
23752 type empty;
23753 description "Monitor MAC for CPU protection";
23754 }
23755
23756 }
23757 case cfm {
23758
23759 container eth-cfm-monitoring {
23760 presence "Enable ETH CFM monitoring configuration.";
23761 description "Enter the eth-cfm-monitoring context";
23762
23763 leaf aggregate {
23764 type empty;
23765 description "Apply rate limit to the sum of the per peer packet rates";
23766 }
23767
23768 leaf car {
23769 type empty;
23770 description "Eth-CFM packets to be ignored when enforcing overall rate";
23771 }
23772
23773 } // container eth-cfm-monitoring
23774
23775 }
23776 }
23777 } // container cpu-protection
23778
23779 container lag {
23780 description "Enter the lag context";
23781
23782 leaf link-map-profile {
23783 type types-services:link-map-profile-id;
23784 description "LAG link map profile applied to a SAP or network interface";
23785 }
23786
23787 container per-link-hash {
23788 description "Configure per-link-hash information.";
23789
23790 leaf class {
23791 type types-services:sap-lag-per-link-hash-class;
23792 default "1";
23793 description "Configure per-link-hash class.";
23794 }
23795
23796 leaf weight {
23797 type types-services:sap-lag-per-link-hash-weight;
23798 default "1";
23799 description "Configure per-link-hash weight.";
23800 }
23801
23802 } // container per-link-hash
23803
23804 } // container lag
23805
23806 container etree-root-leaf-tag {
23807 presence "Enable E-tree root leaf tag status.";
23808 description "Enter the etree-root-leaf-tag context";
23809
23810 leaf leaf {
23811 type int32 {
23812 range "1..4094";
23813 }
23814 sros-ext:immutable;
23815 mandatory true;
23816 description "Leaf tag value";
23817 }
23818
23819 } // container etree-root-leaf-tag
23820
23821 container igmp-host-tracking {
23822 description "Enter the igmp-host-tracking context";
23823
23824 leaf expiry-time {
23825 type types-sros:time-duration {
23826 range "1..65535";
23827 }
23828 units "seconds";
23829 description "Time during which the system continues to track inactive hosts";
23830 }
23831
23832 leaf import-policy {
23833 type types-sros:named-item-64;
23834 description "Import policy that filters IGMP packets";
23835 }
23836
23837 leaf maximum-number-groups {
23838 type uint32 {
23839 range "1..16000";
23840 }
23841 description "Maximum number of multicast groups to be tracked";
23842 }
23843
23844 leaf maximum-number-group-sources {
23845 type uint32 {
23846 range "1..32000";
23847 }
23848 description "Maximum number of multicast groups to be tracked per group";
23849 }
23850
23851 leaf maximum-number-sources {
23852 type uint32 {
23853 range "1..1000";
23854 }
23855 description "Maximum number of multicast sources to be tracked";
23856 }
23857
23858 leaf router-alert-check {
23859 type boolean;
23860 default "true";
23861 description "Enable IGMP router alert check option";
23862 }
23863
23864 } // container igmp-host-tracking
23865
23866 container igmp-snooping {
23867 description "Enter the igmp-snooping context";
23868
23869 leaf router-alert-check {
23870 type boolean;
23871 default "true";
23872 description "Enable IP router alert check option";
23873 }
23874
23875 leaf import-policy {
23876 type types-sros:named-item-64;
23877 description "Import policy that filters IGMP packets";
23878 }
23879
23880 leaf maximum-number-groups {
23881 type uint32 {
23882 range "1..16000";
23883 }
23884 description "Maximum groups allowed";
23885 }
23886
23887 leaf query-interval {
23888 type uint32 {
23889 range "2..1024";
23890 }
23891 units "seconds";
23892 default "125";
23893 description "Time between two consecutive host-query messages";
23894 }
23895
23896 leaf query-response-interval {
23897 type uint32 {
23898 range "1..1023";
23899 }
23900 units "seconds";
23901 default "10";
23902 description "Time to wait for a response to the host-query messages";
23903 }
23904
23905 leaf query-last-member-interval {
23906 type uint32 {
23907 range "1..50";
23908 }
23909 units "deciseconds";
23910 default "10";
23911 description "Time between group-specific query messages";
23912 }
23913
23914 leaf fast-leave {
23915 type boolean;
23916 default "false";
23917 description "Allow IGMP fast leave processing";
23918 }
23919
23920 leaf mrouter-port {
23921 type boolean;
23922 default "false";
23923 description "Port as a multicast router port";
23924 }
23925
23926 leaf robust-count {
23927 type uint32 {
23928 range "2..7";
23929 }
23930 default "2";
23931 description "Number of retries to cope with message loss.";
23932 }
23933
23934 leaf send-queries {
23935 type boolean;
23936 default "false";
23937 description "Generate IGMP general queries";
23938 }
23939
23940 leaf maximum-number-sources {
23941 type uint32 {
23942 range "1..1000";
23943 }
23944 description "Maximum sources that are allowed per group";
23945 }
23946
23947 leaf maximum-number-group-sources {
23948 type uint32 {
23949 range "1..32000";
23950 }
23951 description "Maximum group source combinations";
23952 }
23953
23954 leaf version {
23955 type types-igmp:igmp-version;
23956 default "3";
23957 description "IGMP protocol version";
23958 }
23959
23960 container mcac {
23961 description "Enter the mcac context";
23962
23963 leaf interface-policy {
23964 type string {
23965 length "1..32";
23966 }
23967 description "Name for multicast CAC interface policy";
23968 }
23969
23970 leaf policy {
23971 type string {
23972 length "1..32";
23973 }
23974 description "Multicast CAC policy name";
23975 }
23976
23977 container mc-constraints {
23978 description "Enter the mc-constraints context";
23979
23980 leaf use-lag-port-weight {
23981 type boolean;
23982 default "false";
23983 description "Use LAG port weight while calculating Multicast CAC constraints";
23984 }
23985
23986 list level {
23987 key "level-id";
23988 description "Enter the level context";
23989
23990 leaf level-id {
23991 type union {
23992 type string {
23993 length "1..64";
23994 pattern "<.*>" {
23995 error-message "Config Groups Regex Pattern";
23996 }
23997 }
23998 type types-mcast-cac:constraints-level;
23999 }
24000 description "Bandwidth level ID for a multicast CAC constraint";
24001 }
24002
24003 leaf bandwidth {
24004 type types-mcast-cac:bandwidth {
24005 range "0..2147483647";
24006 }
24007 mandatory true;
24008 description "Bandwidth available for this level";
24009 }
24010
24011 } // list level
24012
24013 list number-down {
24014 key "number-lag-port-down";
24015 description "Enter the number-down context";
24016
24017 leaf number-lag-port-down {
24018 type union {
24019 type string {
24020 length "1..64";
24021 pattern "<.*>" {
24022 error-message "Config Groups Regex Pattern";
24023 }
24024 }
24025 type uint32 {
24026 range "1..64";
24027 }
24028 }
24029 description "Number of LAG ports down";
24030 }
24031
24032 leaf level {
24033 type types-mcast-cac:constraints-level;
24034 mandatory true;
24035 description "Level associated with the number of LAG ports that are down";
24036 }
24037
24038 } // list number-down
24039
24040 } // container mc-constraints
24041
24042 container bandwidth {
24043 description "Enter the bandwidth context";
24044
24045 leaf total {
24046 type types-mcast-cac:bandwidth-limit;
24047 description "Maximum allowed bandwidth.";
24048 }
24049
24050 leaf mandatory {
24051 type types-mcast-cac:bandwidth-limit;
24052 description "Pre-reserved bandwidth for all mandatory channels.";
24053 }
24054
24055 } // container bandwidth
24056
24057 } // container mcac
24058
24059 container mvr {
24060 description "Enter the mvr context";
24061
24062 leaf from-vpls {
24063 type types-services:service-name;
24064 description "MVR VPLS from which the multicast channels are taken";
24065 }
24066
24067 leaf to-sap {
24068 type types-sros:sap;
24069 description "Multicast channels copied to SAP";
24070 }
24071
24072 } // container mvr
24073
24074 container static {
24075 description "Enter the static context";
24076
24077 list group {
24078 key "group-address";
24079 description "Enter the group context";
24080
24081 leaf group-address {
24082 type union {
24083 type string {
24084 length "1..64";
24085 pattern "<.*>" {
24086 error-message "Config Groups Regex Pattern";
24087 }
24088 }
24089 type types-sros:ipv4-multicast-address;
24090 }
24091 description "Group address of multicast channel";
24092 }
24093
24094 choice source-or-starg {
24095 mandatory true;
24096 case source {
24097
24098 list source {
24099 key "source-address";
24100 description "Enter the source context";
24101
24102 leaf source-address {
24103 type union {
24104 type string {
24105 length "1..64";
24106 pattern "<.*>" {
24107 error-message "Config Groups Regex Pattern";
24108 }
24109 }
24110 type types-sros:ipv4-unicast-address;
24111 }
24112 description "Source address of multicast channel.";
24113 }
24114
24115 } // list source
24116
24117 }
24118 case starg {
24119
24120 leaf starg {
24121 type empty;
24122 description "any source address (*,G)";
24123 }
24124
24125 }
24126 }
24127 } // list group
24128
24129 } // container static
24130
24131 } // container igmp-snooping
24132
24133 container mld-snooping {
24134 description "Enter the mld-snooping context";
24135
24136 leaf router-alert-check {
24137 type boolean;
24138 default "true";
24139 description "Enable IP router alert check option";
24140 }
24141
24142 leaf import-policy {
24143 type types-sros:named-item-64;
24144 description "Import policy that filters IGMP packets";
24145 }
24146
24147 leaf maximum-number-groups {
24148 type uint32 {
24149 range "1..16000";
24150 }
24151 description "Maximum groups allowed";
24152 }
24153
24154 leaf query-interval {
24155 type uint32 {
24156 range "2..1024";
24157 }
24158 units "seconds";
24159 default "125";
24160 description "Time between two consecutive host-query messages";
24161 }
24162
24163 leaf query-response-interval {
24164 type uint32 {
24165 range "1..1023";
24166 }
24167 units "seconds";
24168 default "10";
24169 description "Time to wait for a response to the host-query messages";
24170 }
24171
24172 leaf query-last-member-interval {
24173 type uint32 {
24174 range "1..50";
24175 }
24176 units "deciseconds";
24177 default "10";
24178 description "Time between group-specific query messages";
24179 }
24180
24181 leaf fast-leave {
24182 type boolean;
24183 default "false";
24184 description "Allow IGMP fast leave processing";
24185 }
24186
24187 leaf mrouter-port {
24188 type boolean;
24189 default "false";
24190 description "Port as a multicast router port";
24191 }
24192
24193 leaf robust-count {
24194 type uint32 {
24195 range "2..7";
24196 }
24197 default "2";
24198 description "Number of retries to cope with message loss.";
24199 }
24200
24201 leaf send-queries {
24202 type boolean;
24203 default "false";
24204 description "Generate IGMP general queries";
24205 }
24206
24207 leaf version {
24208 type types-igmp:mld-version;
24209 default "2";
24210 description "MLD protocol version.";
24211 }
24212
24213 container mvr {
24214 description "Enter the mvr context";
24215
24216 leaf from-vpls {
24217 type types-services:service-name;
24218 description "MVR VPLS from which the multicast channels are taken";
24219 }
24220
24221 leaf to-sap {
24222 type types-sros:sap;
24223 description "The SAP to which the multicast channels are copied";
24224 }
24225
24226 } // container mvr
24227
24228 container static {
24229 description "Enter the static context";
24230
24231 list group {
24232 key "group-address";
24233 description "Enter the group context";
24234
24235 leaf group-address {
24236 type union {
24237 type string {
24238 length "1..64";
24239 pattern "<.*>" {
24240 error-message "Config Groups Regex Pattern";
24241 }
24242 }
24243 type types-sros:ipv6-multicast-address;
24244 }
24245 description "Group address of multicast channel";
24246 }
24247
24248 choice source-or-starg {
24249 mandatory true;
24250 case source {
24251
24252 list source {
24253 key "source-address";
24254 description "Enter the source context";
24255
24256 leaf source-address {
24257 type union {
24258 type string {
24259 length "1..64";
24260 pattern "<.*>" {
24261 error-message "Config Groups Regex Pattern";
24262 }
24263 }
24264 type types-sros:ipv6-unicast-address;
24265 }
24266 description "Source address of multicast channel.";
24267 }
24268
24269 } // list source
24270
24271 }
24272 case starg {
24273
24274 leaf starg {
24275 type empty;
24276 description "any source address (*,G)";
24277 }
24278
24279 }
24280 }
24281 } // list group
24282
24283 } // container static
24284
24285 } // container mld-snooping
24286
24287 container pim-snooping {
24288 description "Enter the pim-snooping context";
24289
24290 leaf maximum-number-groups {
24291 type uint32 {
24292 range "1..16000";
24293 }
24294 description "Maximum groups for this interface";
24295 }
24296
24297 } // container pim-snooping
24298
24299 container stp {
24300 description "Enter the stp context";
24301
24302 leaf admin-state {
24303 type types-sros:admin-state;
24304 default "enable";
24305 description "Enable/disable spanning-tree-protocol";
24306 }
24307
24308 leaf auto-edge {
24309 type boolean;
24310 default "true";
24311 description "Enable/disable automatic detection of edge-port.";
24312 }
24313
24314 leaf edge-port {
24315 type boolean;
24316 default "false";
24317 description "Configure as edge-port.";
24318 }
24319
24320 leaf link-type {
24321 type types-services:stp-link-type;
24322 default "pt-pt";
24323 description "Configure STP link-type";
24324 }
24325
24326 leaf path-cost {
24327 type types-services:stp-path-cost;
24328 default "10";
24329 description "Configure path-cost";
24330 }
24331
24332 leaf priority {
24333 type int32 {
24334 range "0..255";
24335 }
24336 default "128";
24337 description "Configure STP priority";
24338 }
24339
24340 leaf root-guard {
24341 type boolean;
24342 default "false";
24343 description "Enable/disable STP root-guard";
24344 }
24345
24346 leaf port-num {
24347 type types-services:stp-port-num;
24348 description "Configure virtual port number";
24349 }
24350
24351 } // container stp
24352
24353 container l2pt {
24354 description "Enter the l2pt context";
24355
24356 container termination {
24357 presence "Enable L2PT termination on managed VLANs";
24358 description "Enter the termination context";
24359
24360 container protocols {
24361 description "Enter the protocols context";
24362
24363 leaf stp {
24364 type boolean;
24365 default "true";
24366 description "Enable/disable spanning tree protocols stp/mstp/pvst/rstp.";
24367 }
24368
24369 leaf cdp {
24370 type boolean;
24371 default "false";
24372 description "Enable Cisco discovery protocol";
24373 }
24374
24375 leaf vtp {
24376 type boolean;
24377 default "false";
24378 description "Enable/disable virtual trunk protocol.";
24379 }
24380
24381 leaf dtp {
24382 type boolean;
24383 default "false";
24384 description "Enable dynamic trunking protocol";
24385 }
24386
24387 leaf pagp {
24388 type boolean;
24389 default "false";
24390 description "Enable/disable port aggregation protocol.";
24391 }
24392
24393 leaf udld {
24394 type boolean;
24395 default "false";
24396 description "Enable/disable unidirectional link detection.";
24397 }
24398
24399 } // container protocols
24400
24401 } // container termination
24402
24403 } // container l2pt
24404
24405 container fdb {
24406 description "Enter the fdb context";
24407
24408 leaf discard-unknown-source {
24409 type boolean;
24410 default "false";
24411 description "Discard frames with unknown source";
24412 }
24413
24414 leaf limit-mac-move {
24415 type types-services:limit-mac-move;
24416 default "blockable";
24417 description "MAC move";
24418 }
24419
24420 leaf mac-pinning {
24421 type boolean;
24422 default "false";
24423 description "Enable MAC address pinning on this SAP";
24424 }
24425
24426 leaf maximum-mac-addresses {
24427 type types-services:max-mac-addr;
24428 description "Maximum number of MAC entries in the FDB";
24429 }
24430
24431 leaf auto-learn-mac-protect {
24432 type boolean;
24433 default "false";
24434 description "Enable automatic update of MAC protect list";
24435 }
24436
24437 leaf protected-src-mac-violation-action {
24438 type types-services:sap-protected-src-mac-violation-action;
24439 description "Action to take whenever a relearn request for a protected MAC is received";
24440 }
24441
24442 leaf discard-unprotected-dest-mac {
24443 type boolean;
24444 default "false";
24445 description "Enable/disable unprotected dest MAC restriction";
24446 }
24447
24448 container mac-learning {
24449 description "Enter the mac-learning context";
24450
24451 leaf learning {
24452 type boolean;
24453 default "true";
24454 description "Enable learning of new MAC addresses";
24455 }
24456
24457 leaf aging {
24458 type boolean;
24459 default "true";
24460 description "Enable aging of MAC addresses";
24461 }
24462
24463 } // container mac-learning
24464
24465 } // container fdb
24466
24467 container l2tpv3-session {
24468 presence "Enable L2TPv3 Session information.";
24469 description "Enter the l2tpv3-session context";
24470
24471 leaf admin-state {
24472 type types-sros:admin-state;
24473 default "disable";
24474 description "Adminstrative state of the entry.";
24475 }
24476
24477 leaf vc-id {
24478 type types-services:vc-id;
24479 description "VC identifier.";
24480 }
24481
24482 container pseudo-wire {
24483 description "Enter the pseudo-wire context";
24484
24485 choice type {
24486 case ethernet {
24487
24488 leaf ethernet {
24489 type empty;
24490 description "Ethernet type.";
24491 }
24492
24493 }
24494 case ethernet-vlan-id {
24495
24496 leaf ethernet-vlan-id {
24497 type int32 {
24498 range "0..4095";
24499 }
24500 description "Ethernet VLAN identifier.";
24501 }
24502
24503 }
24504 }
24505 } // container pseudo-wire
24506
24507 container router {
24508 description "Enter the router context";
24509
24510 leaf group {
24511 type types-sros:named-item;
24512 description "Tunnel group name.";
24513 }
24514
24515 leaf router-instance {
24516 type types-sros:router-instance-base-vprn-loose;
24517 description "Router instance hosting the l2tpv3 session.";
24518 }
24519
24520 } // container router
24521
24522 } // container l2tpv3-session
24523
24524 container i-vpls-mac-flush {
24525 description "Enter the i-vpls-mac-flush context";
24526
24527 container bgp-evpn {
24528 description "Enter the bgp-evpn context";
24529
24530 leaf send-to-bvpls {
24531 type boolean;
24532 default "true";
24533 description "Send B-VPLS EVPN flush";
24534 }
24535
24536 } // container bgp-evpn
24537
24538 } // container i-vpls-mac-flush
24539
24540 container arp-host {
24541 description "Enter the arp-host context";
24542
24543 leaf admin-state {
24544 type types-sros:admin-state;
24545 default "disable";
24546 description "Enable/disable ARP hosts.";
24547 }
24548
24549 leaf host-limit {
24550 type uint32 {
24551 range "1..131071";
24552 }
24553 default "1";
24554 description "Maximum number of ARP triggered hosts.";
24555 }
24556
24557 leaf min-auth-interval {
24558 type types-sros:time-duration {
24559 range "1..6000";
24560 }
24561 units "minutes";
24562 default "15";
24563 description
24564 "Minimal time that has to pass before incoming ARPs of an active
24565 ARP host are re-authenticated.";
24566 }
24567
24568 } // container arp-host
24569
24570 container dhcp {
24571 description "Enter the dhcp context";
24572
24573 leaf admin-state {
24574 type types-sros:admin-state;
24575 default "disable";
24576 description "Administrative state of DHCP";
24577 }
24578
24579 leaf description {
24580 type types-sros:description;
24581 description "Add/remove a text description for DHCP.";
24582 }
24583
24584 leaf snoop {
24585 type boolean;
24586 default "false";
24587 description "DHCP snooping.";
24588 }
24589
24590 container proxy-server {
24591 description "Enter the proxy-server context";
24592
24593 leaf admin-state {
24594 type types-sros:admin-state;
24595 default "disable";
24596 description "Administrative state of DHCP proxy";
24597 }
24598
24599 leaf emulated-server {
24600 type types-sros:ipv4-unicast-address;
24601 description "IP address used as the DHCP server address in the context of this service";
24602 }
24603
24604 container lease-time {
24605 description "Enter the lease-time context";
24606
24607 leaf value {
24608 type types-sros:time-duration {
24609 range "300..315446399";
24610 }
24611 units "seconds";
24612 description "DHCP lease time";
24613 }
24614
24615 leaf radius-override {
24616 type boolean;
24617 default "false";
24618 description "Use lease time information provided by RADIUS server";
24619 }
24620
24621 } // container lease-time
24622
24623 } // container proxy-server
24624
24625 container option-82 {
24626 description "Enter the option-82 context";
24627
24628 leaf action {
24629 type enumeration {
24630 enum "replace" { value 1; }
24631 enum "drop" { value 2; }
24632 enum "keep" { value 3; }
24633 }
24634 default "keep";
24635 description "What to do with DHCP option 82.";
24636 }
24637
24638 container circuit-id {
24639 description "Enter the circuit-id context";
24640
24641 choice circuit-id {
24642 default "ascii-tuple";
24643 case none {
24644
24645 leaf none {
24646 type empty;
24647 description "Do not include the circuit-id.";
24648 }
24649
24650 }
24651 case ascii-tuple {
24652
24653 leaf ascii-tuple {
24654 type empty;
24655 description "Use ascii-tuple in the option.";
24656 }
24657
24658 }
24659 case vlan-ascii-tuple {
24660
24661 leaf vlan-ascii-tuple {
24662 type empty;
24663 description "Use vlan-ascii-tuple in the option.";
24664 }
24665
24666 }
24667 case hex-string {
24668
24669 leaf hex-string {
24670 type types-sros:hex-string {
24671 length "1..66";
24672 }
24673 description "Use user-defined hexadecimal string in the option";
24674 }
24675
24676 }
24677 }
24678 } // container circuit-id
24679
24680 container remote-id {
24681 description "Enter the remote-id context";
24682
24683 choice remote-id {
24684 default "none";
24685 case none {
24686
24687 leaf none {
24688 type empty;
24689 description "Do not include the remote-id.";
24690 }
24691
24692 }
24693 case mac {
24694
24695 leaf mac {
24696 type empty;
24697 description "Use MAC address in the option.";
24698 }
24699
24700 }
24701 case ascii-string {
24702
24703 leaf ascii-string {
24704 type types-sros:string-not-all-spaces {
24705 length "1..32";
24706 }
24707 description "Use user-defined ASCII string in the option.";
24708 }
24709
24710 }
24711 case hex-string {
24712
24713 leaf hex-string {
24714 type types-sros:hex-string {
24715 length "1..66";
24716 }
24717 description "Use user-defined hexadecimal string in the option.";
24718 }
24719
24720 }
24721 }
24722 } // container remote-id
24723
24724 container vendor-specific-option {
24725 description "Enter the vendor-specific-option context";
24726
24727 leaf system-id {
24728 type boolean;
24729 default "false";
24730 description "Send the system ID in the Nokia vendor specific suboption.";
24731 }
24732
24733 leaf client-mac-address {
24734 type boolean;
24735 default "false";
24736 description "Send the MAC address in the Nokia vendor specific suboption.";
24737 }
24738
24739 leaf service-id {
24740 type boolean;
24741 default "false";
24742 description "Send the service ID in the Nokia vendor specific suboption.";
24743 }
24744
24745 leaf sap-id {
24746 type boolean;
24747 default "false";
24748 description "Send the SAP ID in the Nokia vendor specific suboption.";
24749 }
24750
24751 leaf string {
24752 type types-sros:string-not-all-spaces {
24753 length "1..32";
24754 }
24755 description "Send a user-defined string in the Nokia vendor specific suboption.";
24756 }
24757
24758 } // container vendor-specific-option
24759
24760 } // container option-82
24761
24762 container lease-populate {
24763 description "Enter the lease-populate context";
24764
24765 leaf max-leases {
24766 type uint32 {
24767 range "0..131071";
24768 }
24769 default "0";
24770 description "Maximum number of DHCPv4 leases";
24771 }
24772
24773 } // container lease-populate
24774
24775 } // container dhcp
24776
24777 container static-host {
24778 description "Enter the static-host context";
24779
24780 list ipv4 {
24781 key "ip mac";
24782 description "Enter the ipv4 context";
24783
24784 leaf ip {
24785 type union {
24786 type string {
24787 length "1..64";
24788 pattern "<.*>" {
24789 error-message "Config Groups Regex Pattern";
24790 }
24791 }
24792 type types-sros:ipv4-address;
24793 }
24794 description "IP address";
24795 }
24796
24797 leaf mac {
24798 type union {
24799 type string {
24800 length "1..64";
24801 pattern "<.*>" {
24802 error-message "Config Groups Regex Pattern";
24803 }
24804 }
24805 type types-sros:mac-unicast-address;
24806 }
24807 description "MAC address";
24808 }
24809
24810 leaf admin-state {
24811 type types-sros:admin-state;
24812 default "disable";
24813 description "Administrative state of the static host";
24814 }
24815
24816 leaf sub-profile {
24817 type types-sros:external-named-item;
24818 description "Sub-profile name";
24819 }
24820
24821 leaf sla-profile {
24822 type types-sros:external-named-item;
24823 description "SLA profile name";
24824 }
24825
24826 leaf ancp-string {
24827 type types-submgt:ancp-string;
24828 description "ANCP string";
24829 }
24830
24831 leaf int-dest-id {
24832 type types-submgt:int-dest-id;
24833 description "Intermediate destination ID";
24834 }
24835
24836 container subscriber-id {
24837 description "Enter the subscriber-id context";
24838
24839 choice subscriber-id {
24840 case string {
24841
24842 leaf string {
24843 type types-submgt:subscriber-id;
24844 description "Subscriber identification";
24845 }
24846
24847 }
24848 case use-sap-id {
24849
24850 leaf use-sap-id {
24851 type empty;
24852 description "Use the SAP id as subscriber ID";
24853 }
24854
24855 }
24856 }
24857 } // container subscriber-id
24858
24859 container shcv {
24860 description "Enter the shcv context";
24861
24862 } // container shcv
24863
24864 } // list ipv4
24865
24866 } // container static-host
24867
24868 container sub-sla-mgmt {
24869 description "Enter the sub-sla-mgmt context";
24870
24871 leaf admin-state {
24872 type types-sros:admin-state;
24873 default "disable";
24874 description "Administrative state of subscriber management on this SAP";
24875 }
24876
24877 leaf sub-ident-policy {
24878 type types-sros:external-named-item;
24879 description "Subscriber identification policy used on this SAP";
24880 }
24881
24882 leaf subscriber-limit {
24883 type types-submgt:sap-subscriber-limit;
24884 default "1";
24885 description "Maximum number of subscribers on this SAP";
24886 }
24887
24888 leaf mac-da-hashing {
24889 type boolean;
24890 default "false";
24891 description "Use destination MAC address instead of subscriber ID to select egress LAG link";
24892 }
24893
24894 container defaults {
24895 description "Enter the defaults context";
24896
24897 leaf sub-profile {
24898 type types-sros:external-named-item;
24899 description "Default subscriber profile used for subscribers on this SAP";
24900 }
24901
24902 leaf sla-profile {
24903 type types-sros:external-named-item;
24904 description "Default SLA profile for hosts on this SAP";
24905 }
24906
24907 container subscriber-id {
24908 description "Enter the subscriber-id context";
24909
24910 choice subscriber-id {
24911 case auto-id {
24912
24913 leaf auto-id {
24914 type empty;
24915 description "Use auto-generated subscriber identification string";
24916 }
24917
24918 }
24919 case sap-id {
24920
24921 leaf sap-id {
24922 type empty;
24923 description "Use SAP ID as default subscriber identification string";
24924 }
24925
24926 }
24927 case string {
24928
24929 leaf string {
24930 type types-submgt:subscriber-id;
24931 description "Subscriber ID policy name";
24932 }
24933
24934 }
24935 }
24936 } // container subscriber-id
24937
24938 container int-dest-id {
24939 description "Enter the int-dest-id context";
24940
24941 choice int-dest-id {
24942 case top-q-tag {
24943
24944 leaf top-q-tag {
24945 type empty;
24946 description "Use the top Q-tag of this SAP";
24947 }
24948
24949 }
24950 case string {
24951
24952 leaf string {
24953 type types-submgt:int-dest-id;
24954 description "Use the configured string";
24955 }
24956
24957 }
24958 }
24959 } // container int-dest-id
24960
24961 } // container defaults
24962
24963 container single-sub-parameters {
24964 description "Enter the single-sub-parameters context";
24965
24966 leaf profiled-traffic-only {
24967 type boolean;
24968 default "false";
24969 description "Include all traffic in subscriber profile";
24970 }
24971
24972 container non-sub-traffic {
24973 presence "true";
24974 description "Enter the non-sub-traffic context";
24975
24976 leaf sub-profile {
24977 type types-sros:external-named-item;
24978 mandatory true;
24979 description "Subscriber IDprofile applied for all non-subscriber traffic";
24980 }
24981
24982 leaf sla-profile {
24983 type types-sros:external-named-item;
24984 mandatory true;
24985 description "SLA profile applicable for all non-subscriber traffic";
24986 }
24987
24988 leaf subscriber-id {
24989 type types-submgt:subscriber-id;
24990 sros-ext:immutable;
24991 description "Subscriber ID applied for all non-subscriber traffic";
24992 }
24993
24994 } // container non-sub-traffic
24995
24996 } // container single-sub-parameters
24997
24998 } // container sub-sla-mgmt
24999
25000 container eth-cfm {
25001 description "Enter the eth-cfm context";
25002
25003 leaf collect-lmm-stats {
25004 type boolean;
25005 default "false";
25006 description "Collect statistics for OAM-PM Loss Measurement Message (LMM) tests";
25007 }
25008
25009 leaf-list squelch-ingress-levels {
25010 type uint32 {
25011 range "0..7";
25012 }
25013 max-elements 8;
25014 description "ETH-CFM PDUs to be silently discarded";
25015 }
25016
25017 leaf vmep-filter {
25018 type boolean;
25019 default "false";
25020 description "Suppress eth-cfm PDUs based on level lower than or equal to configured Virtual MEP";
25021 }
25022
25023 container collect-lmm-fc-stats {
25024 description "Enter the collect-lmm-fc-stats context";
25025
25026 leaf-list fc {
25027 type types-eth-cfm:fc-type;
25028 max-elements 8;
25029 description "Forwarding class name for which to create an individual profile-unaware counter";
25030 }
25031
25032 leaf-list fc-in-profile {
25033 type types-eth-cfm:fc-type;
25034 max-elements 8;
25035 description "Individual counters to create for the specified Forwarding Class";
25036 }
25037
25038 } // container collect-lmm-fc-stats
25039
25040 list mep {
25041 key "md-admin-name ma-admin-name mep-id";
25042 description "Enter the mep context";
25043
25044 leaf md-admin-name {
25045 type union {
25046 type string {
25047 length "1..64";
25048 pattern "<.*>" {
25049 error-message "Config Groups Regex Pattern";
25050 }
25051 }
25052 type types-eth-cfm:admin-name;
25053 }
25054 description "Unique domain name";
25055 }
25056
25057 leaf ma-admin-name {
25058 type union {
25059 type string {
25060 length "1..64";
25061 pattern "<.*>" {
25062 error-message "Config Groups Regex Pattern";
25063 }
25064 }
25065 type types-eth-cfm:admin-name;
25066 }
25067 description "Unique association name";
25068 }
25069
25070 leaf mep-id {
25071 type union {
25072 type string {
25073 length "1..64";
25074 pattern "<.*>" {
25075 error-message "Config Groups Regex Pattern";
25076 }
25077 }
25078 type types-eth-cfm:mep-id-type;
25079 }
25080 description "Maintenance association end point identifier";
25081 }
25082
25083 leaf primary-vlan {
25084 type boolean;
25085 sros-ext:immutable;
25086 default "false";
25087 description "MEP provisioned using MA primary VLAN ID";
25088 }
25089
25090 leaf direction {
25091 type types-eth-cfm:mp-direction;
25092 sros-ext:immutable;
25093 description "Direction the MEP faces";
25094 }
25095
25096 leaf admin-state {
25097 type types-sros:admin-state;
25098 default "disable";
25099 description "Administrative state of the MEP";
25100 }
25101
25102 leaf description {
25103 type types-sros:description;
25104 description "Text description";
25105 }
25106
25107 leaf mac-address {
25108 type types-sros:mac-unicast-address-no-zero;
25109 description "MAC address for the MEP";
25110 }
25111
25112 leaf install-mep {
25113 type boolean;
25114 default "false";
25115 description "Install MEP in the forwarding plane";
25116 }
25117
25118 leaf low-priority-defect {
25119 type types-eth-cfm:lowest-alarm-priority;
25120 default "mac-rem-err-xcon";
25121 description "Lowest priority defect that is allowed to generate a fault alarm";
25122 }
25123
25124 leaf fault-propagation {
25125 type types-eth-cfm:fault-propagation-type;
25126 description "Fault propagation for the MEP";
25127 }
25128
25129 leaf ccm {
25130 type boolean;
25131 default "false";
25132 description "Generate CCM messages";
25133 }
25134
25135 leaf ccm-ltm-priority {
25136 type types-eth-cfm:frame-priority;
25137 default "7";
25138 description "Priority of CCM and LTM messages transmitted by the MEP";
25139 }
25140
25141 leaf ccm-padding-size {
25142 type uint32 {
25143 range "3..1500";
25144 }
25145 description "Additional octets inserted into CCM PDU for data TLV padding";
25146 }
25147
25148 leaf lbm-svc-act-responder {
25149 type boolean;
25150 default "false";
25151 description "Process service activation streams encapsulated in ETH-CFM request Loopback Message";
25152 }
25153
25154 leaf one-way-delay-threshold {
25155 type uint32 {
25156 range "0..600";
25157 }
25158 units "seconds";
25159 default "3";
25160 description "Threshold for one way delay test";
25161 }
25162
25163 container alarm-notification {
25164 description "Enter the alarm-notification context";
25165
25166 leaf fng-alarm-time {
25167 type int32 {
25168 range "250|500|1000";
25169 }
25170 units "centiseconds";
25171 description "Time to expire before a Fault Notification Generation (FNG) alarm";
25172 }
25173
25174 leaf fng-reset-time {
25175 type int32 {
25176 range "250|500|1000";
25177 }
25178 units "centiseconds";
25179 description "Time to expire before a Fault Notification Generation (FNG) alarm is reset";
25180 }
25181
25182 } // container alarm-notification
25183
25184 container ais {
25185 presence
25186 "The generation and reception of Alarm Indication Signal (AIS)
25187 message parameters";
25188 description "Enter the ais context";
25189
25190 leaf-list client-meg-level {
25191 type uint32 {
25192 range "1..7";
25193 }
25194 max-elements 7;
25195 description "Client MEG level for AIS message generation";
25196 }
25197
25198 leaf interface-support {
25199 type boolean;
25200 default "false";
25201 description "Allow generation of AIS PDUs based on the associated endpoint state";
25202 }
25203
25204 leaf interval {
25205 type uint32 {
25206 range "1|60";
25207 }
25208 units "seconds";
25209 default "1";
25210 description "Transmission interval for AIS messages";
25211 }
25212
25213 leaf low-priority-defect {
25214 type enumeration {
25215 enum "all-def" { value 1; }
25216 enum "mac-rem-err-xcon" { value 2; }
25217 }
25218 default "all-def";
25219 description "Lowest priority defect for MEP AIS generation";
25220 }
25221
25222 leaf priority {
25223 type types-eth-cfm:frame-priority;
25224 default "7";
25225 description "Priority of AIS messages originated by the node";
25226 }
25227
25228 } // container ais
25229
25230 container csf {
25231 presence "The reception of Client Signal Fail (CSF) message parameters";
25232 description "Enter the csf context";
25233
25234 leaf multiplier {
25235 type decimal64 {
25236 range "0.0|2.0..30.0";
25237 fraction-digits 1;
25238 }
25239 default "3.5";
25240 description "Receive period multiplier to time out CSF";
25241 }
25242
25243 } // container csf
25244
25245 container eth-test {
25246 presence "Enable/disable eth-test functionality on MEP.";
25247 description "Enter the eth-test context";
25248
25249 leaf bit-error-threshold {
25250 type uint32 {
25251 range "0..11840";
25252 }
25253 units "bit errors";
25254 default "1";
25255 description "Lowest priority defect threshold for the bit error trap to generate a fault alarm";
25256 }
25257
25258 container test-pattern {
25259 description "Enter the test-pattern context";
25260
25261 leaf pattern {
25262 type enumeration {
25263 enum "all-zeros" { value 0; }
25264 enum "all-ones" { value 1; }
25265 }
25266 default "all-zeros";
25267 description "Test pattern for eth-test frames";
25268 }
25269
25270 leaf crc-tlv {
25271 type boolean;
25272 default "false";
25273 description "Generate a CRC checksum";
25274 }
25275
25276 } // container test-pattern
25277
25278 } // container eth-test
25279
25280 container grace {
25281 description "Enter the grace context";
25282
25283 container eth-ed {
25284 description "Enter the eth-ed context";
25285
25286 leaf max-rx-defect-window {
25287 type uint32 {
25288 range "1..86400";
25289 }
25290 units "seconds";
25291 description "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window";
25292 }
25293
25294 leaf priority {
25295 type int32 {
25296 range "0..7";
25297 }
25298 description "Transmission priority for ETH-ED PDUs";
25299 }
25300
25301 leaf rx-eth-ed {
25302 type boolean;
25303 default "true";
25304 description "Receive and process ETH-ED PDUs";
25305 }
25306
25307 leaf tx-eth-ed {
25308 type boolean;
25309 default "false";
25310 description "Transmit ETH-ED PDUs";
25311 }
25312
25313 } // container eth-ed
25314
25315 container eth-vsm-grace {
25316 description "Enter the eth-vsm-grace context";
25317
25318 leaf rx-eth-vsm-grace {
25319 type boolean;
25320 default "true";
25321 description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP";
25322 }
25323
25324 leaf tx-eth-vsm-grace {
25325 type boolean;
25326 default "true";
25327 description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP";
25328 }
25329
25330 } // container eth-vsm-grace
25331
25332 } // container grace
25333
25334 } // list mep
25335
25336 } // container eth-cfm
25337
25338 container mc-ring {
25339 presence "Prepare SAP for use in MC-ring";
25340 description "Enter the mc-ring context";
25341
25342 leaf ring-node {
25343 type types-sros:named-item;
25344 mandatory true;
25345 description "Name for the ring node associated with this SAP";
25346 }
25347
25348 } // container mc-ring
25349
25350 } // list sap
25351
25352 list capture-sap {
25353 key "sap-id";
25354 description "Enter the capture-sap context";
25355
25356 leaf sap-id {
25357 type union {
25358 type string {
25359 length "1..64";
25360 pattern "<.*>" {
25361 error-message "Config Groups Regex Pattern";
25362 }
25363 }
25364 type types-sros:sap;
25365 }
25366 description "SAP identifier";
25367 }
25368
25369 leaf description {
25370 type types-sros:long-description;
25371 description "Text description";
25372 }
25373
25374 leaf admin-state {
25375 type types-sros:admin-state;
25376 default "enable";
25377 description "Administrative state of the SAP";
25378 }
25379
25380 leaf bandwidth {
25381 type types-services:sap-bandwidth;
25382 units "kilobps";
25383 description "SAP bandwidth";
25384 }
25385
25386 leaf dist-cpu-protection {
25387 type types-sros:named-item;
25388 description "Distributed CPU protection policy for SAP";
25389 }
25390
25391 leaf host-lockout-policy {
25392 type types-sros:named-item;
25393 description "Host lockout policy";
25394 }
25395
25396 leaf radius-auth-policy {
25397 type types-sros:named-item;
25398 description "RADIUS authentication policy";
25399 }
25400
25401 leaf nasreq-auth-policy {
25402 type types-sros:named-item;
25403 description "Diameter NASREQ application policy to use for authentication";
25404 }
25405
25406 leaf allow-dot1q-msaps {
25407 type boolean;
25408 default "false";
25409 description "Create IEEE 802.1q Managed SAP's on an IEEE 802.1ad port";
25410 }
25411
25412 leaf track-srrp {
25413 type uint32 {
25414 range "1..4294967295";
25415 }
25416 description "SRRP instance that this capture SAP tracks";
25417 }
25418
25419 container ingress {
25420 description "Enter the ingress context";
25421
25422 container filter {
25423 description "Enter the filter context";
25424
25425 leaf mac {
25426 type types-filter:filter-name;
25427 description "MAC filter identifier";
25428 }
25429
25430 } // container filter
25431
25432 } // container ingress
25433
25434 container cpu-protection {
25435 description "Enter the cpu-protection context";
25436
25437 leaf policy-id {
25438 type types-services:cpm-prot-policy-id;
25439 description "CPM protection policy";
25440 }
25441
25442 choice monitoring {
25443 case mac {
25444
25445 leaf mac-monitoring {
25446 type empty;
25447 description "Monitor MAC for CPU protection";
25448 }
25449
25450 }
25451 }
25452 } // container cpu-protection
25453
25454 container trigger-packet {
25455 description "Enter the trigger-packet context";
25456
25457 leaf arp {
25458 type boolean;
25459 default "false";
25460 description "ARP packet";
25461 }
25462
25463 leaf data {
25464 type boolean;
25465 default "false";
25466 description "Data packet";
25467 }
25468
25469 leaf dhcp {
25470 type boolean;
25471 default "false";
25472 description "DHCP packet";
25473 }
25474
25475 leaf dhcp6 {
25476 type boolean;
25477 default "false";
25478 description "DHCP6 packet";
25479 }
25480
25481 leaf pppoe {
25482 type boolean;
25483 default "false";
25484 description "PPPoE packet";
25485 }
25486
25487 leaf rtr-solicit {
25488 type boolean;
25489 default "false";
25490 description "Router-solicit packet";
25491 }
25492
25493 } // container trigger-packet
25494
25495 container msap-defaults {
25496 description "Enter the msap-defaults context";
25497
25498 leaf policy {
25499 type types-sros:named-item;
25500 description "MSAP policy";
25501 }
25502
25503 leaf service-name {
25504 type types-services:service-name;
25505 description "Service name";
25506 }
25507
25508 leaf group-interface {
25509 type types-sros:interface-name;
25510 description "Group interface";
25511 }
25512
25513 } // container msap-defaults
25514
25515 container ipoe-session {
25516 description "Enter the ipoe-session context";
25517
25518 leaf admin-state {
25519 type types-sros:admin-state;
25520 default "disable";
25521 description "Administrative state of IPoE session";
25522 }
25523
25524 leaf description {
25525 type types-sros:description;
25526 description "Text description";
25527 }
25528
25529 leaf ipoe-session-policy {
25530 type types-sros:named-item;
25531 description "IPoE Session policy to be used for new sessions";
25532 }
25533
25534 leaf user-db {
25535 type types-sros:named-item;
25536 description "Local user database that is used to (pre-)authenticate new sessions";
25537 }
25538
25539 } // container ipoe-session
25540
25541 container dhcp {
25542 description "Enter the dhcp context";
25543
25544 leaf python-policy {
25545 type types-sros:named-item;
25546 description "Python policy";
25547 }
25548
25549 leaf user-db {
25550 type types-sros:named-item;
25551 description "Local user database";
25552 }
25553
25554 } // container dhcp
25555
25556 container dhcp6 {
25557 description "Enter the dhcp6 context";
25558
25559 leaf python-policy {
25560 type types-sros:named-item;
25561 description "Python policy";
25562 }
25563
25564 leaf user-db {
25565 type types-sros:named-item;
25566 description "Local user database";
25567 }
25568
25569 } // container dhcp6
25570
25571 container pppoe {
25572 description "Enter the pppoe context";
25573
25574 leaf policy {
25575 type types-sros:named-item;
25576 description "PPP policy";
25577 }
25578
25579 leaf python-policy {
25580 type types-sros:named-item;
25581 description "Python policy";
25582 }
25583
25584 leaf user-db {
25585 type types-sros:named-item;
25586 description "Local user database";
25587 }
25588
25589 } // container pppoe
25590
25591 container router-solicit {
25592 description "Enter the router-solicit context";
25593
25594 leaf user-db {
25595 type types-sros:named-item;
25596 description "Local user database";
25597 }
25598
25599 } // container router-solicit
25600
25601 } // list capture-sap
25602
25603 list interface {
25604 key "interface-name";
25605 description "Enter the interface context";
25606
25607 leaf interface-name {
25608 type union {
25609 type string {
25610 length "1..64";
25611 pattern "<.*>" {
25612 error-message "Config Groups Regex Pattern";
25613 }
25614 }
25615 type types-sros:interface-name;
25616 }
25617 description "Router interface name";
25618 }
25619
25620 leaf description {
25621 type types-sros:very-long-description;
25622 description "Text description";
25623 }
25624
25625 leaf admin-state {
25626 type types-sros:admin-state;
25627 default "enable";
25628 description "Administrative state of the interface";
25629 }
25630
25631 leaf mac {
25632 type types-sros:mac-unicast-address;
25633 description "MAC address for the interface";
25634 }
25635
25636 container hold-time {
25637 description "Enter the hold-time context";
25638
25639 container ipv4 {
25640 description "Enter the ipv4 context";
25641
25642 container up {
25643 description "Enter the up context";
25644
25645 leaf seconds {
25646 type types-router:hold-time-seconds;
25647 units "seconds";
25648 description "Up hold time for the IP interface";
25649 }
25650
25651 } // container up
25652
25653 container down {
25654 description "Enter the down context";
25655
25656 leaf seconds {
25657 type types-router:hold-time-seconds;
25658 units "seconds";
25659 description "Down hold time for the IP interface";
25660 }
25661
25662 leaf init-only {
25663 type boolean;
25664 default "false";
25665 description "Apply down delay only when interface is configured or after reboot";
25666 }
25667
25668 } // container down
25669
25670 } // container ipv4
25671
25672 } // container hold-time
25673
25674 container ipv4 {
25675 description "Enter the ipv4 context";
25676
25677 container primary {
25678 presence "Primary IPv4 address for this router interface.";
25679 description "Enter the primary context";
25680
25681 leaf address {
25682 type types-sros:ipv4-address;
25683 mandatory true;
25684 description "IPv4 address for a VPLS interface";
25685 }
25686
25687 leaf prefix-length {
25688 type uint32 {
25689 range "0..32";
25690 }
25691 mandatory true;
25692 description "IPv4 address prefix length";
25693 }
25694
25695 } // container primary
25696
25697 container neighbor-discovery {
25698 description "Enter the neighbor-discovery context";
25699
25700 leaf timeout {
25701 type uint32 {
25702 range "0..65535";
25703 }
25704 units "seconds";
25705 default "14400";
25706 description "ARP timeout value to determine how long an ARP entry remains in the ARP cache";
25707 }
25708
25709 list static-neighbor {
25710 key "ipv4-address";
25711 description "Enter the static-neighbor context";
25712
25713 leaf ipv4-address {
25714 type union {
25715 type string {
25716 length "1..64";
25717 pattern "<.*>" {
25718 error-message "Config Groups Regex Pattern";
25719 }
25720 }
25721 type types-sros:ipv4-address;
25722 }
25723 description "IPv4 address corresponding to the media-dependent physical address";
25724 }
25725
25726 leaf mac-address {
25727 type yang:mac-address;
25728 mandatory true;
25729 description "Media-dependent physical address";
25730 }
25731
25732 } // list static-neighbor
25733
25734 } // container neighbor-discovery
25735
25736 } // container ipv4
25737
25738 } // list interface
25739
25740 container igmp-host-tracking {
25741 description "Enter the igmp-host-tracking context";
25742
25743 leaf admin-state {
25744 type types-sros:admin-state;
25745 default "disable";
25746 description "Administrative state of IGMP host tracking";
25747 }
25748
25749 leaf expiry-time {
25750 type types-sros:time-duration {
25751 range "1..65535";
25752 }
25753 units "seconds";
25754 default "260";
25755 description "Time during which the system continues to track inactive hosts";
25756 }
25757
25758 } // container igmp-host-tracking
25759
25760 container wlan-gw {
25761 description "Enter the wlan-gw context";
25762
25763 leaf admin-state {
25764 type types-sros:admin-state;
25765 default "disable";
25766 description "Administrative state of WLAN-GW";
25767 }
25768
25769 leaf description {
25770 type types-sros:description;
25771 description "Text description";
25772 }
25773
25774 leaf sap-template {
25775 type types-sros:named-item;
25776 description "Template used when creating internal SAPs towards ISAs";
25777 }
25778
25779 } // container wlan-gw
25780
25781 container gsmp {
25782 description "Enter the gsmp context";
25783
25784 leaf admin-state {
25785 type types-sros:admin-state;
25786 default "disable";
25787 description "Administrative state of GSMP";
25788 }
25789
25790 list group {
25791 key "name";
25792 max-elements 1024;
25793 description "Enter the group context";
25794
25795 leaf name {
25796 type union {
25797 type string {
25798 length "1..64";
25799 pattern "<.*>" {
25800 error-message "Config Groups Regex Pattern";
25801 }
25802 }
25803 type types-sros:named-item;
25804 }
25805 description "GSMP neighbor group name";
25806 }
25807
25808 leaf admin-state {
25809 type types-sros:admin-state;
25810 default "disable";
25811 description "Administrative state of the GSMP group";
25812 }
25813
25814 leaf description {
25815 type types-sros:description;
25816 description "Text description";
25817 }
25818
25819 leaf keepalive {
25820 type types-sros:time-duration {
25821 range "1..25";
25822 }
25823 units "seconds";
25824 default "10";
25825 description "Keepalive value for the GSMP connections in this group";
25826 }
25827
25828 leaf hold-multiplier {
25829 type uint32 {
25830 range "1..100";
25831 }
25832 default "3";
25833 description "Hold-multiplier for the GSMP connections in this group";
25834 }
25835
25836 leaf persistency {
25837 type boolean;
25838 default "false";
25839 description "Store DSL line information when the GSMP connection terminates";
25840 }
25841
25842 leaf idle-filter {
25843 type boolean;
25844 default "false";
25845 description "Filter ANCP messages from IDLE DSL lines";
25846 }
25847
25848 container ancp {
25849 description "Enter the ancp context";
25850
25851 leaf dynamic-topology-discovery {
25852 type boolean;
25853 default "true";
25854 description "Enable the ANCP dynamic topology discovery capability";
25855 }
25856
25857 leaf oam {
25858 type boolean;
25859 default "false";
25860 description "Enable GSMP ANCP OAM capability at startup of GSMP connection";
25861 }
25862
25863 } // container ancp
25864
25865 list neighbor {
25866 key "remote-address";
25867 description "Enter the neighbor context";
25868
25869 leaf remote-address {
25870 type union {
25871 type string {
25872 length "1..64";
25873 pattern "<.*>" {
25874 error-message "Config Groups Regex Pattern";
25875 }
25876 }
25877 type types-sros:ipv4-unicast-address;
25878 }
25879 description "GSMP neighbor remote IP address";
25880 }
25881
25882 leaf admin-state {
25883 type types-sros:admin-state;
25884 default "disable";
25885 description "Administrative state of the GSMP neighbor";
25886 }
25887
25888 leaf description {
25889 type types-sros:description;
25890 description "Text description";
25891 }
25892
25893 leaf local-address {
25894 type types-sros:ipv4-unicast-address;
25895 description "Restrict connections to this local address only within the service running ANCP";
25896 }
25897
25898 container priority-marking {
25899 description "Enter the priority-marking context";
25900
25901 choice priority-marking {
25902 case dscp {
25903
25904 leaf dscp {
25905 type types-qos:dscp-name;
25906 description "DSCP that is used while remarking the in profile packets";
25907 }
25908
25909 }
25910 case prec {
25911
25912 leaf prec {
25913 type types-qos:precedence-value;
25914 description "Precedence priority marking";
25915 }
25916
25917 }
25918 }
25919 } // container priority-marking
25920
25921 } // list neighbor
25922
25923 } // list group
25924
25925 } // container gsmp
25926
25927 } // list vpls
25928
25929 list vprn {
25930 key "service-name";
25931 description "Enter the vprn context";
25932
25933 leaf service-name {
25934 type union {
25935 type string {
25936 length "1..64";
25937 pattern "<.*>" {
25938 error-message "Config Groups Regex Pattern";
25939 }
25940 }
25941 type types-services:service-name;
25942 }
25943 description "Name of the service";
25944 }
25945
25946 container aggregates {
25947 description "Enter the aggregates context";
25948
25949 list aggregate {
25950 key "ip-prefix";
25951 description "Enter the aggregate context";
25952
25953 leaf ip-prefix {
25954 type union {
25955 type string {
25956 length "1..64";
25957 pattern "<.*>" {
25958 error-message "Config Groups Regex Pattern";
25959 }
25960 }
25961 type types-sros:ip-unicast-prefix;
25962 }
25963 description "IP address prefix to match for aggregation";
25964 }
25965
25966 leaf as-set {
25967 type boolean;
25968 default "false";
25969 description "Allow aggregate route as an AS-SET option";
25970 }
25971
25972 leaf-list community {
25973 type types-sros:community;
25974 max-elements 12;
25975 ordered-by user;
25976 description "Community name that is added to aggregate route";
25977 }
25978
25979 leaf description {
25980 type types-sros:description;
25981 description "Text description";
25982 }
25983
25984 leaf summary-only {
25985 type boolean;
25986 default "false";
25987 description "Advertise only the aggregate route and not the specific routes that make up the aggregate";
25988 }
25989
25990 leaf local-preference {
25991 type int64 {
25992 range "0..4294967295";
25993 }
25994 description "Default local preference if aggregate route is exported and advertised to BGP peers";
25995 }
25996
25997 choice next-hop {
25998 case blackhole {
25999
26000 container blackhole {
26001 presence "blackhole";
26002 description "Enter the blackhole context";
26003
26004 leaf generate-icmp {
26005 type boolean;
26006 default "false";
26007 description "Send ICMP unreachable messages when packets match an aggregate route with black-hole next-hop";
26008 }
26009
26010 } // container blackhole
26011
26012 }
26013 case indirect {
26014
26015 leaf indirect {
26016 type types-sros:ip-unicast-address;
26017 sros-ext:immutable;
26018 description "Address of indirect next hop";
26019 }
26020
26021 }
26022 }
26023 container aggregator {
26024 description "Enter the aggregator context";
26025
26026 leaf as-number {
26027 type uint32 {
26028 range "1..max";
26029 }
26030 description "Aggregator Autonomous System Number (ASN)";
26031 }
26032
26033 leaf address {
26034 type types-sros:ipv4-unicast-address;
26035 description "Aggregator IP address";
26036 }
26037
26038 } // container aggregator
26039
26040 } // list aggregate
26041
26042 } // container aggregates
26043
26044 container bgp {
26045 presence "Enable BGP for VPRN services";
26046 description "Enter the bgp context";
26047
26048 list group {
26049 key "group-name";
26050 description "Enter the group context";
26051
26052 leaf group-name {
26053 type union {
26054 type string {
26055 length "1..64";
26056 pattern "<.*>" {
26057 error-message "Config Groups Regex Pattern";
26058 }
26059 }
26060 type types-sros:named-item;
26061 }
26062 description "BGP peer group";
26063 }
26064
26065 list prefix-limit {
26066 key "family";
26067 description "Enter the prefix-limit context";
26068
26069 leaf family {
26070 type union {
26071 type string {
26072 length "1..64";
26073 pattern "<.*>" {
26074 error-message "Config Groups Regex Pattern";
26075 }
26076 }
26077 type enumeration {
26078 enum "ipv4" { value 1; }
26079 enum "ipv6" { value 3; }
26080 enum "mcast-ipv4" { value 4; }
26081 enum "flow-ipv4" { value 10; }
26082 enum "flow-ipv6" { value 14; }
26083 enum "mcast-ipv6" { value 16; }
26084 enum "label-ipv4" { value 17; }
26085 }
26086 }
26087 description "Address family to which the limit applies";
26088 }
26089
26090 leaf maximum {
26091 type uint32 {
26092 range "1..4294967295";
26093 }
26094 mandatory true;
26095 description "Specifies the maximum number of routes that can be learned from this peer.";
26096 }
26097
26098 leaf log-only {
26099 type boolean;
26100 default "false";
26101 description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session";
26102 }
26103
26104 leaf threshold {
26105 type uint32 {
26106 range "1..100";
26107 }
26108 default "90";
26109 description "Threshold value that triggers a warning message";
26110 }
26111
26112 leaf idle-timeout {
26113 type int32 {
26114 range "1..1024";
26115 }
26116 description "Time that BGP peering remains idle before reconnecting to peers";
26117 }
26118
26119 leaf post-import {
26120 type boolean;
26121 default "false";
26122 description "Apply prefix limit only to number of routes accepted by import policies";
26123 }
26124
26125 } // list prefix-limit
26126
26127 } // list group
26128
26129 list neighbor {
26130 key "ip-address";
26131 description "Enter the neighbor context";
26132
26133 leaf ip-address {
26134 type union {
26135 type string {
26136 length "1..64";
26137 pattern "<.*>" {
26138 error-message "Config Groups Regex Pattern";
26139 }
26140 }
26141 type types-sros:ip-address-with-zone;
26142 }
26143 description "IP address that the neighbor uses to communicate with BGP peers";
26144 }
26145
26146 list prefix-limit {
26147 key "family";
26148 description "Enter the prefix-limit context";
26149
26150 leaf family {
26151 type union {
26152 type string {
26153 length "1..64";
26154 pattern "<.*>" {
26155 error-message "Config Groups Regex Pattern";
26156 }
26157 }
26158 type enumeration {
26159 enum "ipv4" { value 1; }
26160 enum "ipv6" { value 3; }
26161 enum "mcast-ipv4" { value 4; }
26162 enum "flow-ipv4" { value 10; }
26163 enum "flow-ipv6" { value 14; }
26164 enum "mcast-ipv6" { value 16; }
26165 enum "label-ipv4" { value 17; }
26166 }
26167 }
26168 description "Address family to which the limit applies";
26169 }
26170
26171 leaf maximum {
26172 type uint32 {
26173 range "1..4294967295";
26174 }
26175 mandatory true;
26176 description "Specifies the maximum number of routes that can be learned from this peer.";
26177 }
26178
26179 leaf log-only {
26180 type boolean;
26181 default "false";
26182 description "Send warning message if specified threshold or limit is reached, without disabling BGP peer session";
26183 }
26184
26185 leaf threshold {
26186 type uint32 {
26187 range "1..100";
26188 }
26189 default "90";
26190 description "Threshold value that triggers a warning message";
26191 }
26192
26193 leaf idle-timeout {
26194 type int32 {
26195 range "1..1024";
26196 }
26197 description "Time that BGP peering remains idle before reconnecting to peers";
26198 }
26199
26200 leaf post-import {
26201 type boolean;
26202 default "false";
26203 description "Apply prefix limit only to number of routes accepted by import policies";
26204 }
26205
26206 } // list prefix-limit
26207
26208 } // list neighbor
26209
26210 } // container bgp
26211
26212 list interface {
26213 key "interface-name";
26214 description "Enter the interface context";
26215
26216 leaf interface-name {
26217 type union {
26218 type string {
26219 length "1..64";
26220 pattern "<.*>" {
26221 error-message "Config Groups Regex Pattern";
26222 }
26223 }
26224 type types-sros:interface-name;
26225 }
26226 description "Name of the interface";
26227 }
26228
26229 list sap {
26230 key "sap-id";
26231 max-elements 1;
26232 description "Enter the sap context";
26233
26234 leaf sap-id {
26235 type union {
26236 type string {
26237 length "1..64";
26238 pattern "<.*>" {
26239 error-message "Config Groups Regex Pattern";
26240 }
26241 }
26242 type types-sros:sap;
26243 }
26244 description "SAP identifier";
26245 }
26246
26247 leaf description {
26248 type types-sros:long-description;
26249 description "Text description";
26250 }
26251
26252 leaf admin-state {
26253 type types-sros:admin-state;
26254 default "enable";
26255 description "Administrative state of the SAP";
26256 }
26257
26258 leaf accounting-policy {
26259 type types-log:log-policy-id;
26260 description "Accounting policy";
26261 }
26262
26263 leaf anti-spoof {
26264 type types-services:anti-spoof-option;
26265 description "Anti-spoof filtering";
26266 }
26267
26268 leaf bandwidth {
26269 type types-services:sap-bandwidth;
26270 units "kilobps";
26271 description "SAP bandwidth";
26272 }
26273
26274 leaf calling-station-id {
26275 type types-sros:string-not-all-spaces {
26276 length "1..64";
26277 }
26278 description "Calling station ID";
26279 }
26280
26281 leaf collect-stats {
26282 type boolean;
26283 default "false";
26284 description "Collect accounting statistics";
26285 }
26286
26287 leaf dist-cpu-protection {
26288 type types-sros:named-item;
26289 description "Distributed CPU protection policy for SAP";
26290 }
26291
26292 leaf host-admin-state {
26293 type types-sros:admin-state;
26294 default "enable";
26295 description "Enable/disable administrative state of hosts";
26296 }
26297
26298 leaf host-lockout-policy {
26299 type types-sros:named-item;
26300 description "Host lockout policy";
26301 }
26302
26303 leaf multi-service-site {
26304 type types-sros:named-item;
26305 description "Multi service site name";
26306 }
26307
26308 container ingress {
26309 description "Enter the ingress context";
26310
26311 leaf queue-group-redirect-list {
26312 type types-sros:named-item;
26313 description "Queue group redirect list";
26314 }
26315
26316 container qos {
26317 description "Enter the qos context";
26318
26319 leaf match-qinq-dot1p {
26320 type enumeration {
26321 enum "top" { value 2; }
26322 enum "bottom" { value 3; }
26323 }
26324 description "Ingress match QinQ Dot1p";
26325 }
26326
26327 container sap-ingress {
26328 description "Enter the sap-ingress context";
26329
26330 leaf policy-name {
26331 type types-qos:qos-policy-name;
26332 description "Policy identifier";
26333 }
26334
26335 leaf queuing-type {
26336 type types-services:services-sap-queuing-type;
26337 description "Ingress queuing type";
26338 }
26339
26340 container fp-redirect-group {
26341 description "Enter the fp-redirect-group context";
26342
26343 leaf group-name {
26344 type types-sros:named-item;
26345 description "Forwarding-plane queue group policy";
26346 }
26347
26348 leaf instance {
26349 type types-services:qos-qgrp-instance-id;
26350 description "Queue group instance";
26351 }
26352
26353 } // container fp-redirect-group
26354
26355 container overrides {
26356 description "Enter the overrides context";
26357
26358 list queue {
26359 key "queue-id";
26360 description "Enter the queue context";
26361
26362 leaf queue-id {
26363 type union {
26364 type string {
26365 length "1..64";
26366 pattern "<.*>" {
26367 error-message "Config Groups Regex Pattern";
26368 }
26369 }
26370 type types-qos:ingress-queue-id;
26371 }
26372 description "Policer unique ID";
26373 }
26374
26375 leaf cbs {
26376 type union {
26377 type uint32 {
26378 range "0..1048576";
26379 }
26380 type enumeration {
26381 enum "auto" { value -1; }
26382 }
26383 }
26384 units "kilobps";
26385 description "CBS";
26386 }
26387
26388 leaf mbs {
26389 type union {
26390 type types-qos:bytes {
26391 range "0..1073741824";
26392 }
26393 type enumeration {
26394 enum "auto" { value -1; }
26395 }
26396 }
26397 description "MBS";
26398 }
26399
26400 leaf monitor-depth {
26401 type boolean;
26402 default "false";
26403 description "Monitor queue depth";
26404 }
26405
26406 choice queue-override-rate {
26407 case rate {
26408
26409 container rate {
26410 description "Enter the rate context";
26411
26412 leaf pir {
26413 type types-services:sap-pir-rate-ovr;
26414 units "kilobps";
26415 description "PIR rate";
26416 }
26417
26418 leaf cir {
26419 type types-services:sap-cir-rate-ovr;
26420 units "kilobps";
26421 description "CIR rate";
26422 }
26423
26424 } // container rate
26425
26426 }
26427 case percent-rate {
26428
26429 container percent-rate {
26430 description "Enter the percent-rate context";
26431
26432 leaf pir {
26433 type decimal64 {
26434 range "0.01..100.00";
26435 fraction-digits 2;
26436 }
26437 description "PIR percent rate";
26438 }
26439
26440 leaf cir {
26441 type decimal64 {
26442 range "0.00..100.00";
26443 fraction-digits 2;
26444 }
26445 description "CIR percent rate";
26446 }
26447
26448 } // container percent-rate
26449
26450 }
26451 }
26452 container adaptation-rule {
26453 description "Enter the adaptation-rule context";
26454
26455 leaf pir {
26456 type types-qos:adaptation-rule-override;
26457 description "Constraint used when deriving the operational PIR value";
26458 }
26459
26460 leaf cir {
26461 type types-qos:adaptation-rule-override;
26462 description "Constraint used when deriving the operational CIR value";
26463 }
26464
26465 } // container adaptation-rule
26466
26467 container drop-tail {
26468 description "Enter the drop-tail context";
26469
26470 container low {
26471 description "Enter the low context";
26472
26473 leaf percent-reduction-from-mbs {
26474 type types-qos:burst-percent-or-default-override;
26475 description "Percentage reduction from the MBS for a queue drop tail";
26476 }
26477
26478 } // container low
26479
26480 } // container drop-tail
26481
26482 container parent {
26483 description "Enter the parent context";
26484
26485 leaf weight {
26486 type types-qos:weight-override;
26487 description "PIR parameter that overrides parent for queue group";
26488 }
26489
26490 leaf cir-weight {
26491 type types-qos:weight-override;
26492 description "CIR parameter that overrides parent for queue group";
26493 }
26494
26495 } // container parent
26496
26497 } // list queue
26498
26499 list policer {
26500 key "policer-id";
26501 description "Enter the policer context";
26502
26503 leaf policer-id {
26504 type union {
26505 type string {
26506 length "1..64";
26507 pattern "<.*>" {
26508 error-message "Config Groups Regex Pattern";
26509 }
26510 }
26511 type types-qos:ingress-policer-id;
26512 }
26513 description "Policer unique ID";
26514 }
26515
26516 leaf cbs {
26517 type union {
26518 type types-qos:bytes {
26519 range "0..16777216";
26520 }
26521 type enumeration {
26522 enum "auto" { value -1; }
26523 }
26524 }
26525 units "bytes";
26526 description "CBS";
26527 }
26528
26529 leaf mbs {
26530 type union {
26531 type types-qos:bytes {
26532 range "0..1073741824";
26533 }
26534 type enumeration {
26535 enum "auto" { value -1; }
26536 }
26537 }
26538 description "MBS";
26539 }
26540
26541 leaf packet-byte-offset {
26542 type types-qos:ingress-per-packet-offset-override;
26543 description "Size of each packet, handled by the policer, to be modified";
26544 }
26545
26546 leaf stat-mode {
26547 type types-qos:ingress-policer-stat-mode;
26548 description "Mode of statistics collected by the policer";
26549 }
26550
26551 choice policer-override-rate {
26552 case rate {
26553
26554 container rate {
26555 description "Enter the rate context";
26556
26557 leaf pir {
26558 type union {
26559 type int64 {
26560 range "1..6400000000";
26561 }
26562 type enumeration {
26563 enum "max" { value -1; }
26564 }
26565 }
26566 units "kilobps";
26567 description "PIR rate";
26568 }
26569
26570 leaf cir {
26571 type union {
26572 type int64 {
26573 range "0..6400000000";
26574 }
26575 type enumeration {
26576 enum "max" { value -1; }
26577 }
26578 }
26579 units "kilobps";
26580 description "CIR rate";
26581 }
26582
26583 } // container rate
26584
26585 }
26586 case percent-rate {
26587
26588 container percent-rate {
26589 description "Enter the percent-rate context";
26590
26591 leaf pir {
26592 type decimal64 {
26593 range "0.01..100.00";
26594 fraction-digits 2;
26595 }
26596 description "PIR percent rate";
26597 }
26598
26599 leaf cir {
26600 type decimal64 {
26601 range "0.00..100.00";
26602 fraction-digits 2;
26603 }
26604 description "CIR percent rate";
26605 }
26606
26607 } // container percent-rate
26608
26609 }
26610 }
26611 } // list policer
26612
26613 } // container overrides
26614
26615 } // container sap-ingress
26616
26617 container policer-control-policy {
26618 description "Enter the policer-control-policy context";
26619
26620 leaf policy-name {
26621 type types-sros:named-item;
26622 description "Policer control policy name";
26623 }
26624
26625 container overrides {
26626 presence "Apply a policer control policy override.";
26627 description "Enter the overrides context";
26628
26629 container root {
26630 description "Enter the root context";
26631
26632 leaf max-rate {
26633 type types-services:sap-max-rate-ovr;
26634 description "Maximum frame-based bandwidth limit";
26635 }
26636
26637 container priority-mbs-thresholds {
26638 description "Enter the priority-mbs-thresholds context";
26639
26640 leaf min-thresh-separation {
26641 type union {
26642 type types-qos:bytes {
26643 range "0..16777216";
26644 }
26645 type enumeration {
26646 enum "auto" { value -1; }
26647 }
26648 }
26649 units "bytes";
26650 description "Minimum amount of separation buffer space";
26651 }
26652
26653 list priority {
26654 key "priority-level";
26655 description "Enter the priority context";
26656
26657 leaf priority-level {
26658 type union {
26659 type string {
26660 length "1..64";
26661 pattern "<.*>" {
26662 error-message "Config Groups Regex Pattern";
26663 }
26664 }
26665 type types-qos:hierarchy-level;
26666 }
26667 description "Priority level";
26668 }
26669
26670 leaf mbs-contribution {
26671 type union {
26672 type types-qos:bytes {
26673 range "0..16777216";
26674 }
26675 type enumeration {
26676 enum "auto" { value -1; }
26677 }
26678 }
26679 units "bytes";
26680 description "Minimum amount of cumulative buffer space allowed";
26681 }
26682
26683 } // list priority
26684
26685 } // container priority-mbs-thresholds
26686
26687 } // container root
26688
26689 } // container overrides
26690
26691 } // container policer-control-policy
26692
26693 container scheduler-policy {
26694 description "Enter the scheduler-policy context";
26695
26696 leaf policy-name {
26697 type types-sros:named-item;
26698 description "Scheduler policy name";
26699 }
26700
26701 container overrides {
26702 description "Enter the overrides context";
26703
26704 list scheduler {
26705 key "scheduler-name";
26706 description "Enter the scheduler context";
26707
26708 leaf scheduler-name {
26709 type union {
26710 type string {
26711 length "1..64";
26712 pattern "<.*>" {
26713 error-message "Config Groups Regex Pattern";
26714 }
26715 }
26716 type types-sros:named-item;
26717 }
26718 description "Scheduler override policy name";
26719 }
26720
26721 container parent {
26722 description "Enter the parent context";
26723
26724 leaf weight {
26725 type types-qos:weight;
26726 description "Weight to be used by the scheduler for feeding this queue";
26727 }
26728
26729 leaf cir-weight {
26730 type types-qos:weight;
26731 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
26732 }
26733
26734 } // container parent
26735
26736 container rate {
26737 description "Enter the rate context";
26738
26739 leaf pir {
26740 type union {
26741 type int64 {
26742 range "1..6400000000";
26743 }
26744 type enumeration {
26745 enum "max" { value -1; }
26746 }
26747 }
26748 description "Specifies the administrative PIR";
26749 }
26750
26751 leaf cir {
26752 type union {
26753 type int64 {
26754 range "0..6400000000";
26755 }
26756 type enumeration {
26757 enum "sum" { value -3; }
26758 enum "max" { value -1; }
26759 }
26760 }
26761 description "Specifies the administrative CIR";
26762 }
26763
26764 } // container rate
26765
26766 } // list scheduler
26767
26768 } // container overrides
26769
26770 } // container scheduler-policy
26771
26772 } // container qos
26773
26774 container filter {
26775 description "Enter the filter context";
26776
26777 leaf ip {
26778 type types-filter:filter-name;
26779 description "IP filter ID";
26780 }
26781
26782 leaf ipv6 {
26783 type types-filter:filter-name;
26784 description "IPv6 filter identifier";
26785 }
26786
26787 } // container filter
26788
26789 } // container ingress
26790
26791 container egress {
26792 description "Enter the egress context";
26793
26794 leaf queue-group-redirect-list {
26795 type types-sros:named-item;
26796 description "Queue group redirect list";
26797 }
26798
26799 container qos {
26800 description "Enter the qos context";
26801
26802 leaf qinq-mark-top-only {
26803 type boolean;
26804 default "false";
26805 description "Mark top Q-tags";
26806 }
26807
26808 container sap-egress {
26809 description "Enter the sap-egress context";
26810
26811 leaf policy-name {
26812 type types-qos:qos-policy-name;
26813 description "Policy identifier";
26814 }
26815
26816 container port-redirect-group {
26817 description "Enter the port-redirect-group context";
26818
26819 leaf group-name {
26820 type types-sros:named-item;
26821 description "Policy for port redirect queue group";
26822 }
26823
26824 leaf instance {
26825 type types-services:qos-qgrp-instance-id;
26826 description "Instance of port queue group";
26827 }
26828
26829 } // container port-redirect-group
26830
26831 container overrides {
26832 description "Enter the overrides context";
26833
26834 leaf hs-secondary-shaper {
26835 type types-sros:named-item;
26836 description "HS Secondary Shaper";
26837 }
26838
26839 container hsmda-queues {
26840 description "Enter the hsmda-queues context";
26841
26842 leaf secondary-shaper {
26843 type types-sros:named-item;
26844 description "Secondary shaper for the HSMDA queue";
26845 }
26846
26847 leaf packet-byte-offset {
26848 type types-services:egress-hsmda-queue-packet-byte-offset;
26849 description "Packet byte offset for HSMDA queue";
26850 }
26851
26852 leaf wrr-policy {
26853 type types-sros:named-item;
26854 description "WRR policy for the HSMDA queue";
26855 }
26856
26857 list queue {
26858 key "queue-id";
26859 description "Enter the queue context";
26860
26861 leaf queue-id {
26862 type union {
26863 type string {
26864 length "1..64";
26865 pattern "<.*>" {
26866 error-message "Config Groups Regex Pattern";
26867 }
26868 }
26869 type types-qos:egress-queue-id;
26870 }
26871 description "Egress HSMDA queue ID";
26872 }
26873
26874 leaf mbs {
26875 type types-qos:hsmda-queue-burst-size-override;
26876 units "bytes";
26877 description "Buffer space allowed for the queue";
26878 }
26879
26880 leaf rate {
26881 type types-qos:hsmda-queue-pir-rate-override;
26882 description "Administrative PIR rate.";
26883 }
26884
26885 leaf slope-policy {
26886 type types-sros:named-item;
26887 description
26888 "Name of the slope-policy which is used to override the
26889 default slope-policy for the named buffer pool.";
26890 }
26891
26892 leaf wrr-weight {
26893 type types-qos:hsmda-wrr-weight-override;
26894 description "Weight value for the HSMDA queue";
26895 }
26896
26897 } // list queue
26898
26899 } // container hsmda-queues
26900
26901 list queue {
26902 key "queue-id";
26903 description "Enter the queue context";
26904
26905 leaf queue-id {
26906 type union {
26907 type string {
26908 length "1..64";
26909 pattern "<.*>" {
26910 error-message "Config Groups Regex Pattern";
26911 }
26912 }
26913 type types-qos:egress-queue-id;
26914 }
26915 description "Policer unique ID";
26916 }
26917
26918 leaf avg-frame-overhead {
26919 type decimal64 {
26920 range "0.00..100.00";
26921 fraction-digits 2;
26922 }
26923 description
26924 "Encapsulation overhead, in centipercent, used to
26925 translate packet-based rate to frame-based rate and vice versa.";
26926 }
26927
26928 leaf burst-limit {
26929 type union {
26930 type types-qos:bytes {
26931 range "1..14000000";
26932 }
26933 type enumeration {
26934 enum "auto" { value -1; }
26935 }
26936 }
26937 description "Explicit shaping burst size of a queue.";
26938 }
26939
26940 leaf cbs {
26941 type union {
26942 type uint32 {
26943 range "0..1048576";
26944 }
26945 type enumeration {
26946 enum "auto" { value -1; }
26947 }
26948 }
26949 units "kilobytes";
26950 description "CBS";
26951 }
26952
26953 leaf mbs {
26954 type union {
26955 type types-qos:bytes {
26956 range "0..1073741824";
26957 }
26958 type enumeration {
26959 enum "auto" { value -1; }
26960 }
26961 }
26962 units "kilobytes";
26963 description "MBS";
26964 }
26965
26966 leaf monitor-depth {
26967 type boolean;
26968 default "false";
26969 description "Monitor queue depth";
26970 }
26971
26972 leaf hs-wrr-weight {
26973 type types-qos:hs-wrr-weight-override;
26974 default "1";
26975 description "Weighted Round Robin (WRR) weight to parent with this queue into the scheduler";
26976 }
26977
26978 leaf hs-class-weight {
26979 type types-qos:hs-class-weight-override;
26980 description "Scheduling class weight.";
26981 }
26982
26983 choice queue-override-rate {
26984 case rate {
26985
26986 container rate {
26987 description "Enter the rate context";
26988
26989 leaf pir {
26990 type types-services:sap-pir-rate-ovr;
26991 units "kilobps";
26992 description "PIR rate";
26993 }
26994
26995 leaf cir {
26996 type types-services:sap-cir-rate-ovr;
26997 units "kilobps";
26998 description "CIR rate";
26999 }
27000
27001 } // container rate
27002
27003 }
27004 case percent-rate {
27005
27006 container percent-rate {
27007 description "Enter the percent-rate context";
27008
27009 leaf pir {
27010 type decimal64 {
27011 range "0.01..100.00";
27012 fraction-digits 2;
27013 }
27014 description "PIR percent rate";
27015 }
27016
27017 leaf cir {
27018 type decimal64 {
27019 range "0.00..100.00";
27020 fraction-digits 2;
27021 }
27022 description "CIR percent rate";
27023 }
27024
27025 } // container percent-rate
27026
27027 }
27028 }
27029 container adaptation-rule {
27030 description "Enter the adaptation-rule context";
27031
27032 leaf pir {
27033 type types-qos:adaptation-rule-override;
27034 description "Constraint used when deriving the operational PIR value";
27035 }
27036
27037 leaf cir {
27038 type types-qos:adaptation-rule-override;
27039 description "Constraint used when deriving the operational CIR value";
27040 }
27041
27042 } // container adaptation-rule
27043
27044 container drop-tail {
27045 description "Enter the drop-tail context";
27046
27047 container low {
27048 description "Enter the low context";
27049
27050 leaf percent-reduction-from-mbs {
27051 type types-qos:burst-percent-or-default-override;
27052 description "Percentage reduction from the MBS for a queue drop tail";
27053 }
27054
27055 } // container low
27056
27057 } // container drop-tail
27058
27059 container parent {
27060 description "Enter the parent context";
27061
27062 leaf weight {
27063 type types-qos:weight-override;
27064 description "PIR parameter that overrides parent for queue group";
27065 }
27066
27067 leaf cir-weight {
27068 type types-qos:weight-override;
27069 description "CIR parameter that overrides parent for queue group";
27070 }
27071
27072 } // container parent
27073
27074 container hs-wred-queue {
27075 description "Enter the hs-wred-queue context";
27076
27077 leaf policy {
27078 type types-sros:named-item;
27079 description "Name of slope-policy.";
27080 }
27081
27082 } // container hs-wred-queue
27083
27084 } // list queue
27085
27086 list policer {
27087 key "policer-id";
27088 description "Enter the policer context";
27089
27090 leaf policer-id {
27091 type union {
27092 type string {
27093 length "1..64";
27094 pattern "<.*>" {
27095 error-message "Config Groups Regex Pattern";
27096 }
27097 }
27098 type types-qos:sap-egress-policer-id;
27099 }
27100 description "Policer unique ID";
27101 }
27102
27103 leaf cbs {
27104 type union {
27105 type types-qos:bytes {
27106 range "0..16777216";
27107 }
27108 type enumeration {
27109 enum "auto" { value -1; }
27110 }
27111 }
27112 units "bytes";
27113 description "CBS";
27114 }
27115
27116 leaf mbs {
27117 type union {
27118 type types-qos:bytes {
27119 range "0..1073741824";
27120 }
27121 type enumeration {
27122 enum "auto" { value -1; }
27123 }
27124 }
27125 description "MBS";
27126 }
27127
27128 leaf packet-byte-offset {
27129 type types-qos:egress-per-packet-offset-override;
27130 description "Size of each packet, handled by the policer, to be modified";
27131 }
27132
27133 leaf stat-mode {
27134 type types-qos:egress-policer-stat-mode;
27135 description "Mode of statistics collected by the policer";
27136 }
27137
27138 choice policer-override-rate {
27139 case rate {
27140
27141 container rate {
27142 description "Enter the rate context";
27143
27144 leaf pir {
27145 type union {
27146 type int64 {
27147 range "1..6400000000";
27148 }
27149 type enumeration {
27150 enum "max" { value -1; }
27151 }
27152 }
27153 units "kilobps";
27154 description "PIR rate";
27155 }
27156
27157 leaf cir {
27158 type union {
27159 type int64 {
27160 range "0..6400000000";
27161 }
27162 type enumeration {
27163 enum "max" { value -1; }
27164 }
27165 }
27166 units "kilobps";
27167 description "CIR rate";
27168 }
27169
27170 } // container rate
27171
27172 }
27173 case percent-rate {
27174
27175 container percent-rate {
27176 description "Enter the percent-rate context";
27177
27178 leaf pir {
27179 type decimal64 {
27180 range "0.01..100.00";
27181 fraction-digits 2;
27182 }
27183 description "PIR percent rate";
27184 }
27185
27186 leaf cir {
27187 type decimal64 {
27188 range "0.00..100.00";
27189 fraction-digits 2;
27190 }
27191 description "CIR percent rate";
27192 }
27193
27194 } // container percent-rate
27195
27196 }
27197 }
27198 } // list policer
27199
27200 list hs-wrr-group {
27201 key "group-id";
27202 description "Enter the hs-wrr-group context";
27203
27204 leaf group-id {
27205 type union {
27206 type string {
27207 length "1..64";
27208 pattern "<.*>" {
27209 error-message "Config Groups Regex Pattern";
27210 }
27211 }
27212 type types-qos:hs-wrr-group-id;
27213 }
27214 description "HS WRR group identifier";
27215 }
27216
27217 leaf hs-class-weight {
27218 type types-qos:hs-class-weight-override;
27219 description "Weight of scheduling class.";
27220 }
27221
27222 choice rate-or-percent-rate {
27223 case rate {
27224
27225 leaf rate {
27226 type union {
27227 type uint32 {
27228 range "1..2000000000";
27229 }
27230 type enumeration {
27231 enum "max" { value -1; }
27232 }
27233 }
27234 units "kilobps";
27235 description "Administrative PIR.";
27236 }
27237
27238 }
27239 case percent-rate {
27240
27241 leaf percent-rate {
27242 type decimal64 {
27243 range "0.01..100.00";
27244 fraction-digits 2;
27245 }
27246 description "Administrative PIR percent.";
27247 }
27248
27249 }
27250 }
27251 } // list hs-wrr-group
27252
27253 } // container overrides
27254
27255 } // container sap-egress
27256
27257 container policer-control-policy {
27258 description "Enter the policer-control-policy context";
27259
27260 leaf policy-name {
27261 type types-sros:named-item;
27262 description "Policer control policy name";
27263 }
27264
27265 container overrides {
27266 presence "Apply a policer control policy override.";
27267 description "Enter the overrides context";
27268
27269 container root {
27270 description "Enter the root context";
27271
27272 leaf max-rate {
27273 type types-services:sap-max-rate-ovr;
27274 description "Maximum frame-based bandwidth limit";
27275 }
27276
27277 container priority-mbs-thresholds {
27278 description "Enter the priority-mbs-thresholds context";
27279
27280 leaf min-thresh-separation {
27281 type union {
27282 type types-qos:bytes {
27283 range "0..16777216";
27284 }
27285 type enumeration {
27286 enum "auto" { value -1; }
27287 }
27288 }
27289 units "bytes";
27290 description "Minimum amount of separation buffer space";
27291 }
27292
27293 list priority {
27294 key "priority-level";
27295 description "Enter the priority context";
27296
27297 leaf priority-level {
27298 type union {
27299 type string {
27300 length "1..64";
27301 pattern "<.*>" {
27302 error-message "Config Groups Regex Pattern";
27303 }
27304 }
27305 type types-qos:hierarchy-level;
27306 }
27307 description "Priority level";
27308 }
27309
27310 leaf mbs-contribution {
27311 type union {
27312 type types-qos:bytes {
27313 range "0..16777216";
27314 }
27315 type enumeration {
27316 enum "auto" { value -1; }
27317 }
27318 }
27319 units "bytes";
27320 description "Minimum amount of cumulative buffer space allowed";
27321 }
27322
27323 } // list priority
27324
27325 } // container priority-mbs-thresholds
27326
27327 } // container root
27328
27329 } // container overrides
27330
27331 } // container policer-control-policy
27332
27333 container scheduler-policy {
27334 description "Enter the scheduler-policy context";
27335
27336 leaf policy-name {
27337 type types-sros:named-item;
27338 description "Scheduler policy name";
27339 }
27340
27341 container overrides {
27342 description "Enter the overrides context";
27343
27344 list scheduler {
27345 key "scheduler-name";
27346 description "Enter the scheduler context";
27347
27348 leaf scheduler-name {
27349 type union {
27350 type string {
27351 length "1..64";
27352 pattern "<.*>" {
27353 error-message "Config Groups Regex Pattern";
27354 }
27355 }
27356 type types-sros:named-item;
27357 }
27358 description "Scheduler override policy name";
27359 }
27360
27361 container parent {
27362 description "Enter the parent context";
27363
27364 leaf weight {
27365 type types-qos:weight;
27366 description "Weight to be used by the scheduler for feeding this queue";
27367 }
27368
27369 leaf cir-weight {
27370 type types-qos:weight;
27371 description "Weight that is used by the scheduler until the committed rate for feeding this queue";
27372 }
27373
27374 } // container parent
27375
27376 container rate {
27377 description "Enter the rate context";
27378
27379 leaf pir {
27380 type union {
27381 type int64 {
27382 range "1..6400000000";
27383 }
27384 type enumeration {
27385 enum "max" { value -1; }
27386 }
27387 }
27388 description "Specifies the administrative PIR";
27389 }
27390
27391 leaf cir {
27392 type union {
27393 type int64 {
27394 range "0..6400000000";
27395 }
27396 type enumeration {
27397 enum "sum" { value -3; }
27398 enum "max" { value -1; }
27399 }
27400 }
27401 description "Specifies the administrative CIR";
27402 }
27403
27404 } // container rate
27405
27406 } // list scheduler
27407
27408 } // container overrides
27409
27410 } // container scheduler-policy
27411
27412 container vlan-qos-policy {
27413 description "Attach an egress vlan-qos-policy.";
27414
27415 leaf policy-name {
27416 type types-qos:qos-policy-name;
27417 description "Egress vlan-qos-policy name";
27418 }
27419
27420 } // container vlan-qos-policy
27421
27422 container egress-remark-policy {
27423 description "Attach an egress-remark-policy.";
27424
27425 leaf policy-name {
27426 type types-qos:qos-policy-name;
27427 description "Egress-remark-policy name";
27428 }
27429
27430 } // container egress-remark-policy
27431
27432 } // container qos
27433
27434 container filter {
27435 description "Enter the filter context";
27436
27437 leaf ip {
27438 type types-filter:filter-name;
27439 description "MAC filter ID";
27440 }
27441
27442 leaf ipv6 {
27443 type types-filter:filter-name;
27444 description "IPv6 filter identifier";
27445 }
27446
27447 } // container filter
27448
27449 container agg-rate {
27450 description "Enter the agg-rate context";
27451
27452 leaf limit-unused-bandwidth {
27453 type boolean;
27454 default "false";
27455 description "Enable aggregate rate overrun protection";
27456 }
27457
27458 leaf rate {
27459 type types-services:agg-rate-rate;
27460 description "Maximum total rate of all egress queues in kbps.";
27461 }
27462
27463 leaf queue-frame-based-accounting {
27464 type boolean;
27465 default "false";
27466 description "Enable frame-based accounting on all policers and queues associated with context";
27467 }
27468
27469 leaf cir {
27470 type union {
27471 type int32 {
27472 range "0..100000000";
27473 }
27474 type enumeration {
27475 enum "max" { value -1; }
27476 }
27477 }
27478 units "kilobps";
27479 default "0";
27480 description "Specifies the administrative CIR.";
27481 }
27482
27483 } // container agg-rate
27484
27485 } // container egress
27486
27487 container cpu-protection {
27488 description "Enter the cpu-protection context";
27489
27490 leaf policy-id {
27491 type types-services:cpm-prot-policy-id;
27492 description "CPM protection policy";
27493 }
27494
27495 choice monitoring {
27496 case mac {
27497
27498 leaf mac-monitoring {
27499 type empty;
27500 description "Monitor MAC for CPU protection";
27501 }
27502
27503 }
27504 case cfm {
27505
27506 container eth-cfm-monitoring {
27507 presence "Enable ETH CFM monitoring configuration.";
27508 description "Enter the eth-cfm-monitoring context";
27509
27510 leaf aggregate {
27511 type empty;
27512 description "Apply rate limit to the sum of the per peer packet rates";
27513 }
27514
27515 leaf car {
27516 type empty;
27517 description "Eth-CFM packets to be ignored when enforcing overall rate";
27518 }
27519
27520 } // container eth-cfm-monitoring
27521
27522 }
27523 case ip {
27524
27525 leaf ip-src-monitoring {
27526 type empty;
27527 description "Enable IP source monitoring for CPU protection";
27528 }
27529
27530 }
27531 }
27532 } // container cpu-protection
27533
27534 container lag {
27535 description "Enter the lag context";
27536
27537 leaf link-map-profile {
27538 type types-services:link-map-profile-id;
27539 description "LAG link map profile applied to a SAP or network interface";
27540 }
27541
27542 container per-link-hash {
27543 description "Configure per-link-hash information.";
27544
27545 leaf class {
27546 type types-services:sap-lag-per-link-hash-class;
27547 default "1";
27548 description "Configure per-link-hash class.";
27549 }
27550
27551 leaf weight {
27552 type types-services:sap-lag-per-link-hash-weight;
27553 default "1";
27554 description "Configure per-link-hash weight.";
27555 }
27556
27557 } // container per-link-hash
27558
27559 } // container lag
27560
27561 container fwd-wholesale {
27562 description "Enter the fwd-wholesale context";
27563
27564 leaf pppoe-service {
27565 type types-services:service-name;
27566 description "PPPoE service name";
27567 }
27568
27569 } // container fwd-wholesale
27570
27571 container eth-cfm {
27572 description "Enter the eth-cfm context";
27573
27574 leaf collect-lmm-stats {
27575 type boolean;
27576 default "false";
27577 description
27578 "Enable/disable the collection of statistics for OAM-PM
27579 Loss Measurement Message (LMM) tests ";
27580 }
27581
27582 leaf-list squelch-ingress-levels {
27583 type uint32 {
27584 range "0..7";
27585 }
27586 max-elements 8;
27587 description "ETH-CFM PDUs to be silently discarded";
27588 }
27589
27590 container collect-lmm-fc-stats {
27591 description "Enter the collect-lmm-fc-stats context";
27592
27593 leaf-list fc {
27594 type types-eth-cfm:fc-type;
27595 max-elements 8;
27596 description "Forwarding class name for which to create an individual profile-unaware counter";
27597 }
27598
27599 leaf-list fc-in-profile {
27600 type types-eth-cfm:fc-type;
27601 max-elements 8;
27602 description "Individual counters to create for the specified Forwarding Class";
27603 }
27604
27605 } // container collect-lmm-fc-stats
27606
27607 list mep {
27608 key "md-admin-name ma-admin-name mep-id";
27609 description "Enter the mep context";
27610
27611 leaf md-admin-name {
27612 type union {
27613 type string {
27614 length "1..64";
27615 pattern "<.*>" {
27616 error-message "Config Groups Regex Pattern";
27617 }
27618 }
27619 type types-eth-cfm:admin-name;
27620 }
27621 description "Unique domain name";
27622 }
27623
27624 leaf ma-admin-name {
27625 type union {
27626 type string {
27627 length "1..64";
27628 pattern "<.*>" {
27629 error-message "Config Groups Regex Pattern";
27630 }
27631 }
27632 type types-eth-cfm:admin-name;
27633 }
27634 description "Unique association name";
27635 }
27636
27637 leaf mep-id {
27638 type union {
27639 type string {
27640 length "1..64";
27641 pattern "<.*>" {
27642 error-message "Config Groups Regex Pattern";
27643 }
27644 }
27645 type types-eth-cfm:mep-id-type;
27646 }
27647 description "Maintenance association end point identifier";
27648 }
27649
27650 leaf admin-state {
27651 type types-sros:admin-state;
27652 default "disable";
27653 description "Administrative state of the MEP";
27654 }
27655
27656 leaf description {
27657 type types-sros:description;
27658 description "Text description";
27659 }
27660
27661 leaf install-mep {
27662 type boolean;
27663 default "false";
27664 description "Install MEP in the forwarding plane";
27665 }
27666
27667 leaf low-priority-defect {
27668 type types-eth-cfm:lowest-alarm-priority;
27669 default "mac-rem-err-xcon";
27670 description "Lowest priority defect that is allowed to generate a fault alarm";
27671 }
27672
27673 leaf fault-propagation {
27674 type types-eth-cfm:fault-propagation-type;
27675 description "Fault propagation for the MEP";
27676 }
27677
27678 leaf ccm {
27679 type boolean;
27680 default "false";
27681 description "Generate CCM messages";
27682 }
27683
27684 leaf ccm-ltm-priority {
27685 type types-eth-cfm:frame-priority;
27686 default "7";
27687 description "Priority of CCM and LTM messages transmitted by the MEP";
27688 }
27689
27690 leaf ccm-padding-size {
27691 type uint32 {
27692 range "3..1500";
27693 }
27694 description "Additional octets inserted into CCM PDU for data TLV padding";
27695 }
27696
27697 leaf one-way-delay-threshold {
27698 type uint32 {
27699 range "0..600";
27700 }
27701 units "seconds";
27702 default "3";
27703 description "Threshold for one way delay test";
27704 }
27705
27706 leaf ais {
27707 type boolean;
27708 default "false";
27709 description "Generate AIS frames from the Maintenance Entity Group (MEG).";
27710 }
27711
27712 container alarm-notification {
27713 description "Enter the alarm-notification context";
27714
27715 leaf fng-alarm-time {
27716 type int32 {
27717 range "250|500|1000";
27718 }
27719 units "centiseconds";
27720 description "Time to expire before a Fault Notification Generation (FNG) alarm";
27721 }
27722
27723 leaf fng-reset-time {
27724 type int32 {
27725 range "250|500|1000";
27726 }
27727 units "centiseconds";
27728 description "Time to expire before a Fault Notification Generation (FNG) alarm is reset";
27729 }
27730
27731 } // container alarm-notification
27732
27733 container csf {
27734 presence "The reception of Client Signal Fail (CSF) message parameters";
27735 description "Enter the csf context";
27736
27737 leaf multiplier {
27738 type decimal64 {
27739 range "0.0|2.0..30.0";
27740 fraction-digits 1;
27741 }
27742 default "3.5";
27743 description "Receive period multiplier to time out CSF";
27744 }
27745
27746 } // container csf
27747
27748 container eth-test {
27749 presence "Enable/disable eth-test functionality on MEP.";
27750 description "Enter the eth-test context";
27751
27752 leaf bit-error-threshold {
27753 type uint32 {
27754 range "0..11840";
27755 }
27756 units "bit errors";
27757 default "1";
27758 description "Lowest priority defect threshold for the bit error trap to generate a fault alarm";
27759 }
27760
27761 container test-pattern {
27762 description "Enter the test-pattern context";
27763
27764 leaf pattern {
27765 type enumeration {
27766 enum "all-zeros" { value 0; }
27767 enum "all-ones" { value 1; }
27768 }
27769 default "all-zeros";
27770 description "Test pattern for eth-test frames";
27771 }
27772
27773 leaf crc-tlv {
27774 type boolean;
27775 default "false";
27776 description "Generate a CRC checksum";
27777 }
27778
27779 } // container test-pattern
27780
27781 } // container eth-test
27782
27783 container grace {
27784 description "Enter the grace context";
27785
27786 container eth-ed {
27787 description "Enter the eth-ed context";
27788
27789 leaf max-rx-defect-window {
27790 type uint32 {
27791 range "1..86400";
27792 }
27793 units "seconds";
27794 description "Value to compare to received peer value, lower is used as maximum ETH-ED expected defect window";
27795 }
27796
27797 leaf priority {
27798 type int32 {
27799 range "0..7";
27800 }
27801 description "Transmission priority for ETH-ED PDUs";
27802 }
27803
27804 leaf rx-eth-ed {
27805 type boolean;
27806 default "true";
27807 description "Receive and process ETH-ED PDUs";
27808 }
27809
27810 leaf tx-eth-ed {
27811 type boolean;
27812 default "false";
27813 description "Transmit ETH-ED PDUs";
27814 }
27815
27816 } // container eth-ed
27817
27818 container eth-vsm-grace {
27819 description "Enter the eth-vsm-grace context";
27820
27821 leaf rx-eth-vsm-grace {
27822 type boolean;
27823 default "true";
27824 description "Allow the reception and processing of the Nokia ETH-CFM Grace PDU on the MEP";
27825 }
27826
27827 leaf tx-eth-vsm-grace {
27828 type boolean;
27829 default "true";
27830 description "Allow the transmission of the Nokia ETH-CFM Grace PDU from the MEP";
27831 }
27832
27833 } // container eth-vsm-grace
27834
27835 } // container grace
27836
27837 } // list mep
27838
27839 } // container eth-cfm
27840
27841 list ip-tunnel {
27842 key "tunnel-name";
27843 max-elements 1;
27844 description "Enter the ip-tunnel context";
27845
27846 leaf tunnel-name {
27847 type union {
27848 type string {
27849 length "1..64";
27850 pattern "<.*>" {
27851 error-message "Config Groups Regex Pattern";
27852 }
27853 }
27854 type types-sros:interface-name;
27855 }
27856 description "IP tunnel name";
27857 }
27858
27859 leaf admin-state {
27860 type types-sros:admin-state;
27861 default "disable";
27862 description "Administrative state of the tunnel";
27863 }
27864
27865 leaf description {
27866 type types-sros:description;
27867 description "Text description";
27868 }
27869
27870 leaf clear-df-bit {
27871 type boolean;
27872 default "false";
27873 description "Clear the Do-not-Fragment bit";
27874 }
27875
27876 leaf delivery-service {
27877 type types-services:service-name;
27878 description "Delivery service name";
27879 }
27880
27881 leaf dscp {
27882 type types-qos:dscp-name;
27883 description "Differentiated Services Code Point (DSCP) name";
27884 }
27885
27886 leaf encapsulated-ip-mtu {
27887 type uint32 {
27888 range "512..9000";
27889 }
27890 units "bytes";
27891 description "Encapsulated IP MTU of this tunnel";
27892 }
27893
27894 leaf ip-mtu {
27895 type uint32 {
27896 range "512..9000";
27897 }
27898 units "bytes";
27899 description "IP MTU of this tunnel";
27900 }
27901
27902 leaf public-tcp-mss-adjust {
27903 type union {
27904 type uint32 {
27905 range "512..9000";
27906 }
27907 type enumeration {
27908 enum "auto" { value 0; }
27909 }
27910 }
27911 units "bytes";
27912 description "TCP maximum segment size (MSS) on private network";
27913 }
27914
27915 leaf private-tcp-mss-adjust {
27916 type int32 {
27917 range "512..9000";
27918 }
27919 units "bytes";
27920 description "TCP maximum segment size (MSS) on private network";
27921 }
27922
27923 leaf reassembly {
27924 type union {
27925 type int32 {
27926 range "1..5000";
27927 }
27928 type enumeration {
27929 enum "use-tunnel-group-setting" { value -1; }
27930 enum "none" { value 0; }
27931 }
27932 }
27933 units "milliseconds";
27934 default "use-tunnel-group-setting";
27935 description "Reassembly wait time";
27936 }
27937
27938 leaf remote-ip-address {
27939 type types-sros:ip-address;
27940 description "Remote IP address of this tunnel";
27941 }
27942
27943 leaf backup-remote-ip-address {
27944 type types-sros:ip-address;
27945 description "Backup remote IP address that is applied to this tunnel";
27946 }
27947
27948 leaf local-ip-address {
27949 type types-sros:ip-address;
27950 description "Local IP address of this tunnel";
27951 }
27952
27953 container icmp6-generation {
27954 description "Enter the icmp6-generation context";
27955
27956 container packet-too-big {
27957 description "Enter the packet-too-big context";
27958
27959 leaf admin-state {
27960 type types-sros:admin-state;
27961 default "enable";
27962 description "Administrative state of packet-too-big messages";
27963 }
27964
27965 leaf number {
27966 type uint32 {
27967 range "10..1000";
27968 }
27969 default "100";
27970 description "Number of packet-too-big ICMPv6 messages issued in a specified time frame";
27971 }
27972
27973 leaf seconds {
27974 type uint32 {
27975 range "1..60";
27976 }
27977 units "seconds";
27978 default "10";
27979 description "Time frame to limit the number of packet-too-big ICMPv6 messages";
27980 }
27981
27982 } // container packet-too-big
27983
27984 } // container icmp6-generation
27985
27986 container gre-header {
27987 description "Enter the gre-header context";
27988
27989 leaf admin-state {
27990 type types-sros:admin-state;
27991 default "disable";
27992 description "Administrative state of the GRE header in the tunnel";
27993 }
27994
27995 container key {
27996 description "Enter the key context";
27997
27998 leaf admin-state {
27999 type types-sros:admin-state;
28000 default "disable";
28001 description "Administrative state of the keys in the GRE header";
28002 }
28003
28004 leaf send {
28005 type uint32;
28006 default "0";
28007 description "Send key of a GRE header";
28008 }
28009
28010 leaf receive {
28011 type uint32;
28012 default "0";
28013 description "Receive key of a GRE header";
28014 }
28015
28016 } // container key
28017
28018 } // container gre-header
28019
28020 list dest-ip {
28021 key "dest-ip-address";
28022 description "Enter the dest-ip context";
28023
28024 leaf dest-ip-address {
28025 type union {
28026 type string {
28027 length "1..64";
28028 pattern "<.*>" {
28029 error-message "Config Groups Regex Pattern";
28030 }
28031 }
28032 type types-sros:ip-address;
28033 }
28034 description "Destination IP address of the tunnel";
28035 }
28036
28037 } // list dest-ip
28038
28039 } // list ip-tunnel
28040
28041 list ipsec-gateway {
28042 key "name";
28043 max-elements 1;
28044 description "Enter the ipsec-gateway context";
28045
28046 leaf name {
28047 type union {
28048 type string {
28049 length "1..64";
28050 pattern "<.*>" {
28051 error-message "Config Groups Regex Pattern";
28052 }
28053 }
28054 type types-sros:named-item;
28055 }
28056 description "IPsec gateway name.";
28057 }
28058
28059 leaf admin-state {
28060 type types-sros:admin-state;
28061 default "disable";
28062 description "Administrative state of the IPsec gateway.";
28063 }
28064
28065 leaf default-tunnel-template {
28066 type types-ipsec:tunnel-template-id;
28067 description "The IPsec tunnel template ID.";
28068 }
28069
28070 leaf ike-policy {
28071 type types-ipsec:ike-policy-id;
28072 description "IKE policy ID.";
28073 }
28074
28075 leaf pre-shared-key {
28076 type types-sros:encrypted-leaf {
28077 length "1..115";
28078 }
28079 description
28080 "The pre-shared key used for authentication by two
28081 peers forming the tunnel for the IPSec gateway.";
28082 }
28083
28084 container default-secure-service {
28085 presence "The default security service used by this IPsec gateway.";
28086 description "Enter the default-secure-service context";
28087
28088 leaf service-name {
28089 type types-services:service-name;
28090 description "The name of the default security service used by this IPsec gateway.";
28091 }
28092
28093 leaf interface {
28094 type types-sros:interface-name;
28095 description "The name of the default interface used by this IPsec gateway.";
28096 }
28097
28098 } // container default-secure-service
28099
28100 container local {
28101 description "Enter the local context";
28102
28103 leaf gateway-address {
28104 type types-sros:ip-address;
28105 description "The IPsec gateway address.";
28106 }
28107
28108 container id {
28109 description "Enter the id context";
28110
28111 choice id {
28112 default "auto";
28113 case auto {
28114
28115 leaf auto {
28116 type empty;
28117 description
28118 "System picks a local ID automatically based on auth-method configured
28119 in ike-policy.";
28120 }
28121
28122 }
28123 case ipv4 {
28124
28125 leaf ipv4 {
28126 type types-sros:ipv4-unicast-address;
28127 description "The IPv4 Local ID.";
28128 }
28129
28130 }
28131 case ipv6 {
28132
28133 leaf ipv6 {
28134 type types-sros:ipv6-unicast-address;
28135 description "The IPv6 Local ID.";
28136 }
28137
28138 }
28139 case fqdn {
28140
28141 leaf fqdn {
28142 type types-sros:fully-qualified-domain-name;
28143 description "The Fully Qualified Domain Name (FQDN) Local ID.";
28144 }
28145
28146 }
28147 }
28148 } // container id
28149
28150 } // container local
28151
28152 container max-history-key-records {
28153 description "Enter the max-history-key-records context";
28154
28155 leaf ike {
28156 type uint32 {
28157 range "1..3";
28158 }
28159 description "The maximum number of historical IKE keys which can be recorded by the system.";
28160 }
28161
28162 leaf esp {
28163 type uint32 {
28164 range "1..48";
28165 }
28166 description "The maximum number of historical ESP keys which can be recorded by the system.";
28167 }
28168
28169 } // container max-history-key-records
28170
28171 } // list ipsec-gateway
28172
28173 container static-host {
28174 description "Enter the static-host context";
28175
28176 list ipv4 {
28177 key "ip mac";
28178 description "Enter the ipv4 context";
28179
28180 leaf ip {
28181 type union {
28182 type string {
28183 length "1..64";
28184 pattern "<.*>" {
28185 error-message "Config Groups Regex Pattern";
28186 }
28187 }
28188 type types-sros:ipv4-address;
28189 }
28190 description "IP address";
28191 }
28192
28193 leaf mac {
28194 type union {
28195 type string {
28196 length "1..64";
28197 pattern "<.*>" {
28198 error-message "Config Groups Regex Pattern";
28199 }
28200 }
28201 type types-sros:mac-unicast-address;
28202 }
28203 description "MAC address";
28204 }
28205
28206 leaf admin-state {
28207 type types-sros:admin-state;
28208 default "disable";
28209 description "Administrative state of the static host";
28210 }
28211
28212 leaf sub-profile {
28213 type types-sros:external-named-item;
28214 description "Sub-profile name";
28215 }
28216
28217 leaf sla-profile {
28218 type types-sros:external-named-item;
28219 description "SLA profile name";
28220 }
28221
28222 leaf ancp-string {
28223 type types-submgt:ancp-string;
28224 description "ANCP string";
28225 }
28226
28227 leaf int-dest-id {
28228 type types-submgt:int-dest-id;
28229 description "Intermediate destination ID";
28230 }
28231
28232 container subscriber-id {
28233 description "Enter the subscriber-id context";
28234
28235 choice subscriber-id {
28236 case string {
28237
28238 leaf string {
28239 type types-submgt:subscriber-id;
28240 description "Subscriber identification";
28241 }
28242
28243 }
28244 case use-sap-id {
28245
28246 leaf use-sap-id {
28247 type empty;
28248 description "Use the SAP id as subscriber ID";
28249 }
28250
28251 }
28252 }
28253 } // container subscriber-id
28254
28255 } // list ipv4
28256
28257 } // container static-host
28258
28259 } // list sap
28260
28261 } // list interface
28262
28263 } // list vprn
28264
28265 } // container service
28266
28267 } // list group
28268
28269 } // container groups
28270
28271 } // grouping conf-groups
28272
28273}