Remove testplans for groupbasedpolicy
[integration/test.git] / csit / variables / gbp / ios-xe-schemas / ned@2016-03-08.yang
1 module ned {
2   namespace "urn:ios";
3   prefix ios;
4
5   import tailf-common {
6     prefix tailf;
7   }
8   import ietf-inet-types {
9     prefix inet;
10   }
11   import ietf-yang-types {
12     prefix yang;
13   }
14
15   revision 2016-03-08 {
16     description
17       "Added changes for SDA and T-Systems, mainly lisp, object-group";
18   }
19   revision 2016-02-29 {
20     description
21       "Added changes for IWAN Hackathon";
22   }
23   revision 2016-02-02 {
24     description
25       "Added changes for onep, remote-mgmt, and virtual-service";
26   }
27   revision 2016-01-27 {
28     description
29       "Added changes required from an ASR920 EFT customer";
30   }
31   revision 2016-01-13 {
32     description
33       "Added more switching changes, plus DDTS's changes";
34   }
35   revision 2015-12-09 {
36     description
37       "Added BofA changes, NOT reduced version for access switching";
38   }
39   revision 2015-12-04 {
40     description
41       "Reduced NED model for access switching";
42   }
43   revision 2015-12-03 {
44     description
45       "Added the changes for the latest Japan MOD configs";
46   }
47   revision 2015-11-23 {
48     description
49       "Added Defense of Japan changes, moved container lisp under router";
50   }
51   revision 2015-09-15 {
52     description
53       "Added a fix for service-chain related node";
54   }
55   revision 2015-09-14 {
56     description
57       "Added pfr, G8032 and ISIS features nodes";
58   }
59   revision 2015-08-19 {
60     description
61       "Native EC features added, Ipsec, AVC-NBAR(including NBAR), AVC-ART, FNF, DMVPN ,
62        EVPN, GET VPN, GRE, ZBFW ,ESON, Snort, SourceFire,lisp, nhrp and eigrp; plus OSPF max-lsa fix";
63   }
64   revision 2015-08-12 {
65     description
66       "Fixed OSPFv2/v3 multi-area cli, vxlan source-interface.";
67   }
68   revision 2015-08-06 {
69     description
70       "Added WAAS, OTV and some OSPFv3 changes";
71   }
72   revision 2015-08-05 {
73     description
74       "Added CFM and BFD feature nodes";
75   }
76   revision 2015-08-03 {
77     description
78       "Added action-list under class under policy-map, plus some OSPF changes";
79   }
80   revision 2015-07-31 {
81     description
82       "Added ethernet oam nodes";
83   }
84   revision 2015-07-30 {
85     description
86       "Added null0 next-hop for ip routes";
87   }
88   revision 2015-07-29 {
89     description
90       "Added config l2vpn nodes";
91   }
92   revision 2015-07-29 {
93     description
94       "Fixed vxlan member vni container";
95   }
96   revision 2015-07-23 {
97     description
98       "Added Bridge Domain global config nodes";
99   }
100   revision 2015-07-15 {
101     description
102       "IPv6 ACL modifications";
103   }
104   revision 2015-07-13 {
105     description
106       "Updated MPLS Traffic Engineering nodes";
107   }
108   revision 2015-07-06 {
109     description
110       "Updated service-chaining nodes";
111   }
112   revision 2015-07-01 {
113     description
114       "Addressed OSPF and OSPFv3 review comments";
115   }
116   revision 2015-07-01 {
117     description
118       "Added decimal values for each dscp enum to support
119        tranforms to the IETF model.";
120   }
121   revision 2015-06-25 {
122     description
123       "Updated class-map protocol, mpls static output lable,
124        and ip/ipv6 route list";
125   }
126   revision 2015-06-15 {
127     description
128       "Added object-group and other ACL updates";
129   }
130   revision 2015-06-12 {
131     description
132       "Added interface nve";
133   }
134   revision 2015-06-03 {
135     description
136       "Added ip access-list,
137        Added ipv6 access-list";
138   }
139   revision 2015-05-29 {
140     description
141       "Added Route-Map match and set feature related configs";
142   }
143   revision 2015-05-19 {
144     description
145       "Added service-chain feature related configs";
146   }
147   revision 2015-05-15 {
148     description
149       "Added ATM, SONET etc changes for ASR920,
150        Added OSPF changes to pass OSPF Smartman CLIs
151         Updated BGP and MPLS sections with additional
152         details to support platform specific CLIs";
153   }
154   revision 2015-04-15 {
155     description
156       "janl: Added native container as top level
157        NED container to allow NES to register for only
158        Device YANG model content.";
159   }
160   revision 2014-11-13 {
161     description
162       "janl: Added some syslog related config.";
163   }
164   revision 2014-02-12 {
165     description
166       "Fixed show live-status for interfaces.";
167   }
168   revision 2014-02-10 {
169     description
170       "[ip] vrf forwarding fix on interfaces.\n";
171   }
172   revision 2014-02-06 {
173     description
174       "Fixed interface 'no ip address' bug
175        Preliminary IOS XE support work
176        Added 'interface Virtual-Template *'
177        Added 'interface * / peer default ip' support'
178        Expanded 'interface * / ppp' support'
179        Merged interface encapsulation config (API change)
180        Merged all fixes/adds in confd-4.3 ios-xe between r59179 and r65905.
181       ";
182   }
183   revision 2014-01-30 {
184     description
185       "Merged from confd-5.0
186        Expanded 'ip nat'";
187   }
188   revision 2014-01-28 {
189     description
190       "Fixed bugs in 'ip route'. API changes to list due to variable
191        number of keys.";
192   }
193   revision 2013-12-09 {
194     description
195       "police and policer work";
196   }
197   revision 2013-11-25 {
198     description
199       "API-cleaning for Juniper and bugfixes
200        Made cir,bc and be keywords mandatory in policy-map/class police";
201   }
202   revision 2013-11-12 {
203     description
204       "Rewrote police-map/class police command to support more combos";
205   }
206   revision 2013-10-14 {
207     description
208       "Merged all yang files to one file.";
209   }
210   revision 2013-08-15 {
211     description
212       "Added switchport commands
213        Added spanning-tree top level commands
214        Added a number of SNMP traps
215        Added support for OSPFv3
216        Added support for IPv6 prefix-lists
217       ";
218   }
219   revision 2013-08-08 {
220     description
221       "Added support for Cisco 7600 constructs.";
222   }
223   revision 2013-06-25 {
224     description
225       "Renamed YANG module, submodule and namespace.";
226   }
227   revision 2013-04-18 {
228     description
229       "Restructuring using new file ios-common0.yang and
230        augment(s) in order to fix order dependencies.
231
232        Added model constructs for Cisco 2800.";
233   }
234
235   typedef percentage-type {
236     type uint8 {
237       tailf:info "<1-100>;;Percentage";
238       range "1..100";
239     }
240   }
241
242   typedef ipv4-prefix {
243     type string {
244       pattern "(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))";
245     }
246   }
247
248   typedef ipv6-prefix {
249     type string {
250       pattern "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))";
251       pattern "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)";
252     }
253   }
254
255   typedef host-type {
256     type union {
257       type inet:ip-address {
258         tailf:info "";
259       }
260       type inet:domain-name {
261         tailf:info "";
262       }
263     }
264   }
265
266   typedef ipv4-host-type {
267     type union {
268       type inet:ipv4-address;
269       type inet:domain-name;
270     }
271   }
272
273   typedef host-v4v6-type {
274     type union {
275       type inet:ipv4-address {
276         tailf:info "Hostname or A.B.C.D;;ip address or host name";
277       }
278       type inet:domain-name {
279         tailf:info "";
280       }
281       type inet:ipv6-address {
282         tailf:info "X:X:X:X::X;;IPv6 address";
283       }
284     }
285   }
286
287   typedef rd-type {
288     type string {
289       tailf:info "ASN:nn or IP-address:nn;;VPN Route Distinguisher";
290       pattern "(\\d*(.\\d*)*)?:(\\d*(.\\d*)*)?";
291     }
292   }
293
294   typedef vpn-id-type {
295     type string {
296       tailf:info "OUI:VPN-Index;;, format (hex) <3 bytes OUI:4 bytes VPN_Index>";
297       pattern "[0-9a-fA-F][0-9a-fA-F]?[0-9a-fA-F]?:[0-9a-fA-F][0-9a-fA-F]?[0-9a-fA-F]?[0-9a-fA-F]?";
298     }
299   }
300
301   typedef asn-ip-type {
302     type string {
303       pattern "(([0-9]+)|((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))):[0-9]+";
304       tailf:info "ASN:nn or IP-address:nn";
305     }
306   }
307
308   typedef hhmm-type {
309     type string {
310       pattern "([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?";
311     }
312   }
313
314   typedef weekday-type {
315     type enumeration {
316       enum "Mon";
317       enum "Tue";
318       enum "Wed";
319       enum "Thu";
320       enum "Fri";
321       enum "Sat";
322       enum "Sun";
323     }
324   }
325
326   typedef month-type {
327     type enumeration {
328       enum "Jan";
329       enum "Feb";
330       enum "Mar";
331       enum "Apr";
332       enum "May";
333       enum "Jun";
334       enum "Jul";
335       enum "Aug";
336       enum "Sep";
337       enum "Oct";
338       enum "Nov";
339       enum "Dec";
340     }
341   }
342
343   typedef std-acl-type {
344     type union {
345       type uint16 {
346         tailf:info "<1-99>;;Standard IP access-list number";
347         range "1..99";
348       }
349       type uint16 {
350         tailf:info "<1300-1999>;;Standard IP access-list number (expanded range)";
351         range "1300..1999";
352       }
353       type string {
354         tailf:info "WORD;;Access-list name";
355         pattern "[a-zA-Z].*";
356       }
357     }
358   }
359
360   typedef ext-acl-type {
361     type union {
362       type uint16 {
363         tailf:info "<100-199>;;Access list number";
364         range "100..199";
365       }
366       type uint16 {
367         tailf:info "<2000-2699>;;Access list number (expanded range)";
368         range "2000..2699";
369       }
370       type string {
371         tailf:info "WORD;;IP Named Extended Access list";
372         pattern "[a-zA-Z].*";
373       }
374     }
375   }
376
377   typedef exp-acl-type {
378     type union {
379       type uint16 {
380         tailf:info "<1-199>;;IP access list (standard or extended)";
381         range "1..199";
382       }
383       type uint16 {
384         tailf:info "<1300-2699>;;IP expanded access list (standard or extended)";
385         range "1300..2699";
386       }
387       type string {
388         tailf:info "WORD;;Access-list name";
389         pattern "[a-zA-Z].*";
390       }
391     }
392   }
393
394   typedef mdt-data-list-type {
395     type union {
396       type uint16 {
397         tailf:info "<100-199>;;Access-list number";
398         range "100..199";
399       }
400       type uint16 {
401         tailf:info "<2000-2699>;;Access list number (expanded range)";
402         range "2000..2699";
403       }
404       type string {
405         tailf:info "WORD;;IP Named Extended Access list";
406         pattern "[a-fA-F].*";
407       }
408     }
409   }
410
411   typedef ldp-discovery-address-type {
412     type union {
413       type enumeration {
414         enum "interface" {
415           tailf:code-name "ldp_interface";
416           tailf:info "Use interface address for LDP transport address";
417         }
418       }
419       type inet:ipv4-address {
420         tailf:info "A.B.C.D;;IP address to use for LDP transport address";
421       }
422     }
423   }
424
425   typedef mst-cost-type {
426     type union {
427       type uint32 {
428         tailf:info "<1-200000000>;;Port path cost";
429         range "1..200000000";
430       }
431       type enumeration {
432         enum "auto" {
433           tailf:code-name "mst_cost_type_auto";
434           tailf:info "Determine cost based on media speed of this interface";
435         }
436       }
437     }
438   }
439
440   typedef spanning-tree-cost-type {
441     type union {
442       type uint32 {
443         tailf:info "<1-200000000>;;Port path cost";
444         range "1..200000000";
445       }
446       type enumeration {
447         enum "auto" {
448           tailf:code-name "spanning-tree-cost-type-auto";
449           tailf:info "Determine cost based on media speed of this interface";
450         }
451       }
452     }
453   }
454
455   typedef dscp-type {
456     type union {
457       type uint8 {
458         tailf:info "<0-63>;;Differentiated services codepoint value";
459         range "0..63";
460       }
461       type enumeration {
462         enum "af11" {
463           tailf:info "Match packets with AF11 dscp (001010)";
464           value 10;
465         }
466         enum "af12" {
467           tailf:info "Match packets with AF12 dscp (001100)";
468           value 12;
469         }
470         enum "af13" {
471           tailf:info "Match packets with AF13 dscp (001110)";
472           value 14;
473         }
474         enum "af21" {
475           tailf:info "Match packets with AF21 dscp (010010)";
476           value 18;
477         }
478         enum "af22" {
479           tailf:info "Match packets with AF22 dscp (010100)";
480           value 20;
481         }
482         enum "af23" {
483           tailf:info "Match packets with AF23 dscp (010110)";
484           value 22;
485         }
486         enum "af31" {
487           tailf:info "Match packets with AF31 dscp (011010)";
488           value 26;
489         }
490         enum "af32" {
491           tailf:info "Match packets with AF32 dscp (011100)";
492           value 28;
493         }
494         enum "af33" {
495           tailf:info "Match packets with AF33 dscp (011110)";
496           value 30;
497         }
498         enum "af41" {
499           tailf:info "Match packets with AF41 dscp (100010)";
500           value 34;
501         }
502         enum "af42" {
503           tailf:info "Match packets with AF42 dscp (100100)";
504           value 36;
505         }
506         enum "af43" {
507           tailf:info "Match packets with AF43 dscp (100110)";
508           value 38;
509         }
510         enum "cs1" {
511           tailf:info "Match packets with CS1(precedence 1) dscp (001000)";
512           value 8;
513         }
514         enum "cs2" {
515           tailf:info "Match packets with CS2(precedence 2) dscp (010000)";
516           value 16;
517         }
518         enum "cs3" {
519           tailf:info "Match packets with CS3(precedence 3) dscp (011000)";
520           value 24;
521         }
522         enum "cs4" {
523           tailf:info "Match packets with CS4(precedence 4) dscp (100000)";
524           value 32;
525         }
526         enum "cs5" {
527           tailf:info "Match packets with CS5(precedence 5) dscp (101000)";
528           value 40;
529         }
530         enum "cs6" {
531           tailf:info "Match packets with CS6(precedence 6) dscp (110000)";
532           value 48;
533         }
534         enum "cs7" {
535           tailf:info "Match packets with CS7(precedence 7) dscp (111000)";
536           value 56;
537         }
538         enum "default" {
539           tailf:code-name "dscp_default";
540           tailf:info "Match packets with default dscp (000000)";
541           value 0;
542         }
543         enum "dscp" {
544           tailf:info "Set packet dscp from dscp";
545         }
546         enum "ef" {
547           tailf:info "Match packets with EF dscp (101110)";
548           value 46;
549         }
550         enum "precedence" {
551           tailf:info "Set packet dscp from precedence";
552         }
553       }
554     }
555   }
556
557   typedef precedence-type {
558     type union {
559       type uint8 {
560         tailf:info "<0-7>;;Precedence value";
561         range "0..7";
562       }
563       type enumeration {
564         enum "critical" {
565           tailf:info "Set packets with critical precedence (5)";
566         }
567         enum "flash" {
568           tailf:info "Set packets with flash precedence (3)";
569         }
570         enum "flash-override" {
571           tailf:info "Set packets with flash override precedence (4)";
572         }
573         enum "immediate" {
574           tailf:info "Set packets with immediate precedence (2)";
575         }
576         enum "internet" {
577           tailf:code-name "prec_internet";
578           tailf:info "Set packets with internetwork control precedence (6)";
579         }
580         enum "network" {
581           tailf:info "Set packets with network control precedence (7)";
582         }
583         enum "priority" {
584           tailf:code-name "prec_priority";
585           tailf:info "Set packets with priority precedence (1)";
586         }
587         enum "routine" {
588           tailf:info "Set packets with routine precedence (0)";
589         }
590       }
591     }
592   }
593
594   typedef precedence-type2 {
595     type union {
596       type uint8 {
597         tailf:info "<0-7>;;IP precedence";
598         range "0..7";
599       }
600       type enumeration {
601         enum "rsvp" {
602           tailf:code-name "prec_rsvp";
603           tailf:info "rsvp traffic";
604         }
605       }
606     }
607   }
608
609   typedef cos_value-type {
610     type union {
611       type uint8 {
612         tailf:info "<0-7>;;new cos value";
613         range "0..7";
614       }
615       type enumeration {
616         enum "cos" {
617           tailf:info "Set packet cos from cos";
618         }
619         enum "dscp" {
620           tailf:info "Set packet cos from dscp";
621         }
622         enum "exp" {
623           tailf:info "Set packet cos from exp";
624         }
625         enum "precedence" {
626           tailf:info "Set packet cos from precedence";
627         }
628       }
629     }
630   }
631
632   typedef qos_value-type {
633     type union {
634       type uint8 {
635         tailf:info "<0-99>;;new qos-group";
636         range "0..99";
637       }
638       type enumeration {
639         enum "cos" {
640           tailf:info "Set packet qos from cos";
641         }
642         enum "dscp" {
643           tailf:info "Set packet qos from dscp";
644         }
645         enum "exp" {
646           tailf:info "Set packet qos from exp";
647         }
648         enum "precedence" {
649           tailf:info "Set packet qos from precedence";
650         }
651       }
652     }
653   }
654
655   typedef exp_value-type {
656     type union {
657       type uint8 {
658         tailf:info "<0-7>;;new exp";
659         range "0..7";
660       }
661       type enumeration {
662         enum "cos" {
663           tailf:info "Set packet exp from cos";
664         }
665         enum "dscp" {
666           tailf:info "Set packet exp from dscp";
667         }
668         enum "exp" {
669           tailf:info "Set packet exp from exp";
670         }
671         enum "precedence" {
672           tailf:info "Set packet exp from precedence";
673         }
674       }
675     }
676   }
677
678   typedef prec_value-type {
679     type union {
680       type uint8 {
681         tailf:info "<0-7>;;new precedence";
682         range "0..7";
683       }
684       type enumeration {
685         enum "cos" {
686           tailf:info "Set packet precedence from cos";
687         }
688         enum "dscp" {
689           tailf:info "Set packet precedence from dscp";
690         }
691         enum "exp" {
692           tailf:info "Set packet precedence from exp";
693         }
694         enum "precedence" {
695           tailf:info "Set packet precedence from precedence";
696         }
697       }
698     }
699   }
700
701   typedef policy-action-type {
702     type enumeration {
703       enum "bandwidth" {
704         tailf:code-name "policy_bandwidth";
705         tailf:info "Bandwidth";
706       }
707       enum "compression" {
708         tailf:info "Activate Compression";
709       }
710       enum "dbl" {
711         tailf:info "Dynamic buffer limiting";
712       }
713       enum "drop" {
714         tailf:info "Drop all packets";
715       }
716       enum "estimate" {
717         tailf:info "Estimate resources required for this class";
718       }
719       enum "fair-queue" {
720         tailf:info "Enable Flow-based Fair Queuing in this Class";
721       }
722       enum "forward" {
723         tailf:info "Forward service-path action";
724       }
725       enum "netflow-sampler" {
726         tailf:info "NetFlow action";
727       }
728       enum "police" {
729         tailf:info "Police";
730       }
731       enum "priority" {
732         tailf:code-name "policy_priority";
733         tailf:info "Strict Scheduling Priority for this Class";
734       }
735       enum "queue-limit" {
736         tailf:info "Queue Max Threshold for Tail Drop";
737       }
738       enum "random-detect" {
739         tailf:info "Enable Random Early Detection as drop policy";
740       }
741       enum "service-policy" {
742         tailf:info "Configure Flow Next";
743       }
744       enum "set" {
745         tailf:info "Set QoS values";
746       }
747       enum "shape" {
748         tailf:code-name "policy_shape";
749         tailf:info "Traffic Shaping";
750       }
751       enum "trust" {
752         tailf:info "Set trust value for the class";
753       }
754       enum "queue-buffers" {
755         tailf:info "queue buffer";
756       }
757     }
758   }
759
760   typedef access-list-standard-id-type {
761     type union {
762       type default-access-list-standard-id-type;
763       type string {
764         tailf:info "WORD;;Standard access-list name";
765       }
766     }
767   }
768
769   typedef default-access-list-standard-id-type {
770     type union {
771       type uint8 {
772         tailf:info "<1-99>;;IP Standard access list number";
773         range "1..99";
774       }
775       type uint16 {
776         tailf:info "<1300-1999>;;IP Standard expanded access list number";
777         range "1300..1999";
778       }
779     }
780   }
781
782   typedef access-list-in-out-type {
783     type enumeration {
784       enum "in" {
785         tailf:info "Filter incoming routing updates";
786       }
787       enum "out" {
788         tailf:info "Filter outgoing routing updates";
789       }
790     }
791   }
792
793   typedef redist-ospf-external-type {
794     type enumeration {
795       enum "1" {
796         tailf:info "Redistribute external type 1 routes";
797       }
798       enum "2" {
799         tailf:info "Redistribute external type 2 routes";
800       }
801     }
802   }
803
804   typedef class-name-type {
805     type union {
806       type string {
807         tailf:info "WORD;;class-map name";
808       }
809       type enumeration {
810         enum "class-default" {
811           tailf:info "System default class matching otherwise unclassified packet";
812         }
813       }
814     }
815   }
816
817   typedef access-list-type {
818     type union {
819       type uint16 {
820         range "1..199";
821         tailf:info "<1-199>;;Access list";
822       }
823       type uint16 {
824         range "1300..2699";
825         tailf:info "<1300-2699>;;Access list (expanded range)";
826       }
827     }
828   }
829
830   typedef bgp-distribute-list-type {
831     type union {
832       type uint16 {
833         range "100..199";
834         tailf:info "<100-199>;;IP access-list number";
835       }
836       type uint16 {
837         range "2000..2699";
838         tailf:info "<2000-2699>;;IP expanded access list number";
839       }
840       type string {
841         tailf:info "WORD;;Access-list name";
842         pattern "[a-zA-Z].*";
843       }
844     }
845   }
846
847   typedef bgp-distribute-list-type2 {
848     type union {
849       type uint16 {
850         range "1..199";
851         tailf:info "<1-199>;;IP access list number";
852       }
853       type uint16 {
854         range "1300..2699";
855         tailf:info "<1300-2699>;;IP access list number (expanded range)";
856       }
857       type string {
858         tailf:info "WORD;;Access-list name";
859         pattern "[a-zA-Z].*";
860       }
861     }
862   }
863
864   typedef ospf-area-type {
865     type union {
866       type uint32 {
867         range "0 .. 4294967295";
868         tailf:info "<0-4294967295>;;OSPF area ID as a decimal value";
869       }
870       type inet:ipv4-address {
871         tailf:info "A.B.C.D;;OSPF area ID in IP address format";
872       }
873     }
874   }
875
876   typedef ospf-metric-type {
877     type uint32 {
878       range "1 .. 2";
879       tailf:info "<1-2>;;OSPF Link State type";
880     }
881   }
882
883   typedef limit-dc-non-dc-type {
884     type union {
885       type uint32 {
886         range "1 .. 255";
887         tailf:info "<1-255>;;The maximum number of retransmissions";
888       }
889       type enumeration {
890         enum "disable" {
891           tailf:info "Disable the feature";
892         }
893       }
894     }
895   }
896
897   typedef default-access-list-id-type {
898     type union {
899       type uint32 {
900         range "1 .. 199";
901         tailf:info "<1-199>;;IP access list number";
902       }
903       type uint32 {
904         range "1300 .. 2699";
905         tailf:info "<1300-2699>;;IP expanded access list number";
906       }
907     }
908   }
909
910   typedef access-list-id-type {
911     type union {
912       type default-access-list-id-type;
913       type string {
914         tailf:info "WORD;;Access-list name";
915         pattern "[a-zA-Z].*";
916       }
917     }
918   }
919
920   typedef default-offset-list-id-type {
921     type union {
922       type uint32 {
923         range "0 .. 99";
924         tailf:info "<0-99>;;Access list of networks to apply offset (0 selects all networks)";
925       }
926       type uint32 {
927         range "1300 .. 1999";
928         tailf:info "<1300-1999>;;Access list of networks to apply offset (expanded range)";
929       }
930     }
931   }
932
933   typedef offset-list-id-type {
934     type union {
935       type default-offset-list-id-type;
936       type string {
937         tailf:info "WORD;;Access-list name";
938         pattern "[a-zA-Z].*";
939       }
940     }
941   }
942
943   typedef offset-list-in-out-type {
944     type enumeration {
945       enum "in" {
946         tailf:info "Perform offset on incoming updates";
947       }
948       enum "out" {
949         tailf:info "Perform offset on outgoing updates";
950       }
951     }
952   }
953
954   typedef isis-net {
955     tailf:info "XX.XXXX. ... .XXX.XX;;Network entity title (NET)";
956     type string;
957   }
958
959   typedef isis-level-type {
960     type enumeration {
961       enum "level-1" {
962         tailf:info "Level-1 only";
963       }
964       enum "level-1-2" {
965         tailf:info "Level-1-2";
966       }
967       enum "level-2" {
968         tailf:info "Level-2 only";
969       }
970     }
971   }
972
973   typedef isis-routes-level-type {
974     type enumeration {
975       enum "level-1" {
976         tailf:info "IS-IS level-1 routes only";
977       }
978       enum "level-1-2" {
979         tailf:info "IS-IS level-1 and level-2 routes";
980       }
981       enum "level-2" {
982         tailf:info "IS-IS level-2 routes only";
983       }
984     }
985   }
986
987   typedef authentication-level-type {
988     type enumeration {
989       enum "level-1" {
990         tailf:info "ISIS authentication for level-1";
991       }
992       enum "level-2" {
993         tailf:info "ISIS authentication for level-2";
994       }
995     }
996   }
997
998   typedef logging-level-type {
999     type union {
1000       type uint16 {
1001         tailf:info "<0-7>;;Logging severity level";
1002         range "0..7";
1003       }
1004       type enumeration {
1005         enum "alerts" {
1006           tailf:info "Immediate action needed (severity=1)";
1007         }
1008         enum "critical" {
1009           tailf:info "Critical conditions (severity=2)";
1010         }
1011         enum "debugging" {
1012           tailf:info "Debugging messages (severity=7)";
1013         }
1014         enum "emergencies" {
1015           tailf:info "System is unusable (severity=0)";
1016         }
1017         enum "errors" {
1018           tailf:info "Error conditions (severity=3)";
1019         }
1020         enum "informational" {
1021           tailf:info "Informational messages (severity=6)";
1022         }
1023         enum "notifications" {
1024           tailf:info "Normal but significant conditions (severity=5)";
1025         }
1026         enum "warnings" {
1027           tailf:info "Warning conditions (severity=4)";
1028         }
1029         enum "bogus" {
1030           tailf:info "Force device refused error)";
1031         }
1032       }
1033     }
1034   }
1035
1036   typedef syslog-level-type {
1037     type enumeration {
1038       enum "alert" {
1039         tailf:info "Provide alert level logs     (severity = 2)";
1040       }
1041       enum "crit" {
1042         tailf:info "Provide critical level logs  (severity = 3)";
1043       }
1044       enum "debug" {
1045         tailf:info "Provide all logs             (severity = 8)";
1046       }
1047       enum "emerg" {
1048         tailf:info "Provide emergency level logs (severity = 1)";
1049       }
1050       enum "err" {
1051         tailf:info "Provide error level logs     (severity = 4)(default)";
1052       }
1053       enum "info" {
1054         tailf:info "Provide info level logs      (severity = 7)";
1055       }
1056       enum "notice" {
1057         tailf:info "Provide notice level logs    (severity = 6)";
1058       }
1059       enum "warning" {
1060         tailf:info "Provide warning level logs   (severity = 5)";
1061       }
1062     }
1063   }
1064
1065   typedef operator-type {
1066     type enumeration {
1067       enum "eq" {
1068         tailf:info "Equal to";
1069       }
1070       enum "ge" {
1071         tailf:info "Greater than or equal to";
1072       }
1073       enum "gt" {
1074         tailf:info "Greater than";
1075       }
1076       enum "le" {
1077         tailf:info "Less than or equal to";
1078       }
1079       enum "lt" {
1080         tailf:info "Less than";
1081       }
1082       enum "ne" {
1083         tailf:info "Not equal to";
1084       }
1085     }
1086   }
1087
1088   typedef police-packets-bytes-type {
1089     type enumeration {
1090       enum "packets" {
1091         tailf:info "Treat 'burst' value as packets";
1092       }
1093       enum "bytes" {
1094         tailf:info "Treat 'burst' value as bytes";
1095       }
1096     }
1097   }
1098
1099   typedef police-pps-bps-type {
1100     type enumeration {
1101       enum "pps" {
1102         tailf:info "pps  Treat 'rate' value in packets-per-second";
1103       }
1104       enum "bps" {
1105         tailf:info "pps  Treat 'rate' value in bytes-per-second";
1106       }
1107     }
1108   }
1109
1110   typedef police-bps-type {
1111     type uint64 {
1112       tailf:info "<8000-64000000000>;;Bits per second";
1113       range "8000..64000000000";
1114     }
1115   }
1116
1117   typedef police-burst-type {
1118     type uint32 {
1119       tailf:info "<1000-512000000>;;Burst bytes";
1120       range "1000..512000000";
1121     }
1122   }
1123
1124   typedef mobility-type {
1125     type union {
1126       type uint8 {
1127         tailf:info "<0-255>;;Mobility header type value";
1128       }
1129       type enumeration {
1130         enum "bind-acknowledgement" {
1131           tailf:info "Bind Acknowledgement mobility message";
1132         }
1133         enum "bind-error" {
1134           tailf:info "Bind Error mobility message";
1135         }
1136         enum "bind-refresh" {
1137           tailf:info "Bind Refresh mobility message";
1138         }
1139         enum "bind-update" {
1140           tailf:info "Bind Update mobility message";
1141         }
1142         enum "cot" {
1143           tailf:info "CoT mobility message";
1144         }
1145         enum "coti" {
1146           tailf:info "CoTi mobility message";
1147         }
1148         enum "hot" {
1149           tailf:info "HoT mobility message";
1150         }
1151         enum "hoti" {
1152           tailf:info "HoTi mobility message";
1153         }
1154       }
1155     }
1156   }
1157
1158   typedef acl-udp-port-type {
1159     type union {
1160       type uint16 {
1161         tailf:info "<0-65535>;;Port number";
1162       }
1163       type enumeration {
1164         enum "biff" {
1165           tailf:info "Biff (mail notification, comsat, 512)";
1166         }
1167         enum "bootpc" {
1168           tailf:info "Bootstrap Protocol (BOOTP) client (68)";
1169         }
1170         enum "bootps" {
1171           tailf:info "Bootstrap Protocol (BOOTP) server (67)";
1172         }
1173         enum "discard" {
1174           tailf:info "Discard (9)";
1175         }
1176         enum "dnsix" {
1177           tailf:info "DNSIX security protocol auditing (195)";
1178         }
1179         enum "domain" {
1180           tailf:info "Domain Name Service (DNS, 53)";
1181         }
1182         enum "echo" {
1183           tailf:info "Echo (7)";
1184         }
1185         enum "isakmp" {
1186           tailf:info "Internet Security Association and Key Management Protocol (500)";
1187         }
1188         enum "mobile-ip" {
1189           tailf:info "Mobile IP registration (434)";
1190         }
1191         enum "nameserver" {
1192           tailf:info "IEN116 name service (obsolete, 42)";
1193         }
1194         enum "netbios-dgm" {
1195           tailf:info "NetBios datagram service (138)";
1196         }
1197         enum "netbios-ns" {
1198           tailf:info "NetBios name service (137)";
1199         }
1200         enum "netbios-ss" {
1201           tailf:info "NetBios session service (139)";
1202         }
1203         enum "non500-isakmp" {
1204           tailf:info "Internet Security Association and Key Management Protocol (4500)";
1205         }
1206         enum "ntp" {
1207           tailf:info "Network Time Protocol (123)";
1208         }
1209         enum "pim-auto-rp" {
1210           tailf:info "PIM Auto-RP (496)";
1211         }
1212         enum "rip" {
1213           tailf:info "Routing Information Protocol (router, in.routed, 520)";
1214         }
1215         enum "ripv6" {
1216           tailf:info "Routing Information Protocol V6 (router, in.routed, 521)";
1217         }
1218         enum "snmp" {
1219           tailf:info "Simple Network Management Protocol (161)";
1220         }
1221         enum "snmptrap" {
1222           tailf:info "SNMP Traps (162)";
1223         }
1224         enum "sunrpc" {
1225           tailf:info "Sun Remote Procedure Call (111)";
1226         }
1227         enum "syslog" {
1228           tailf:info "System Logger (514)";
1229         }
1230         enum "tacacs" {
1231           tailf:info "TAC Access Control System (49)";
1232         }
1233         enum "talk" {
1234           tailf:info "Talk (517)";
1235         }
1236         enum "tftp" {
1237           tailf:info "Trivial File Transfer Protocol (69)";
1238         }
1239         enum "time" {
1240           tailf:info "Time (37)";
1241         }
1242         enum "who" {
1243           tailf:info "Who service (rwho, 513)";
1244         }
1245         enum "xdmcp" {
1246           tailf:info "X Display Manager Control Protocol (177)";
1247         }
1248       }
1249     }
1250   }
1251
1252   typedef acl-tcp-port-type {
1253     type union {
1254       type uint16 {
1255         tailf:info "<0-65535>;;Port number";
1256       }
1257       type enumeration {
1258         enum "bgp" {
1259           tailf:info "Border Gateway Protocol (179)";
1260         }
1261         enum "chargen" {
1262           tailf:info "Character generator (19)";
1263         }
1264         enum "cmd" {
1265           tailf:info "Remote commands (rcmd, 514)";
1266         }
1267         enum "connectedapps-plain" {
1268           tailf:info "ConnectedApps Cleartext (15001)";
1269         }
1270         enum "connectedapps-tls" {
1271           tailf:info "ConnectedApps TLS (15002)";
1272         }
1273         enum "daytime" {
1274           tailf:info "Daytime (13)";
1275         }
1276         enum "discard" {
1277           tailf:info "Discard (9)";
1278         }
1279         enum "domain" {
1280           tailf:info "Domain Name Service (53)";
1281         }
1282         enum "echo" {
1283           tailf:info "Echo (7)";
1284         }
1285         enum "exec" {
1286           tailf:info "Exec (rsh, 512)";
1287         }
1288         enum "finger" {
1289           tailf:info "Finger (79)";
1290         }
1291         enum "ftp" {
1292           tailf:info "File Transfer Protocol (21)";
1293         }
1294         enum "ftp-data" {
1295           tailf:info "FTP data connections (20)";
1296         }
1297         enum "gopher" {
1298           tailf:info "Gopher (70)";
1299         }
1300         enum "hostname" {
1301           tailf:info "NIC hostname server (101)";
1302         }
1303         enum "ident" {
1304           tailf:info "Ident Protocol (113)";
1305         }
1306         enum "irc" {
1307           tailf:info "Internet Relay Chat (194)";
1308         }
1309         enum "klogin" {
1310           tailf:info "Kerberos login (543)";
1311         }
1312         enum "kshell" {
1313           tailf:info "Kerberos shell (544)";
1314         }
1315         enum "login" {
1316           tailf:info "Login (rlogin, 513)";
1317         }
1318         enum "lpd" {
1319           tailf:info "Printer service (515)";
1320         }
1321         enum "msrpc" {
1322           tailf:info "MS Remote Procedure Call (135)";
1323         }
1324         enum "nntp" {
1325           tailf:info "Network News Transport Protocol (119)";
1326         }
1327         enum "pim-auto-rp" {
1328           tailf:info "PIM Auto-RP (496)";
1329         }
1330         enum "pop2" {
1331           tailf:info "Post Office Protocol v2 (109)";
1332         }
1333         enum "pop3" {
1334           tailf:info "Post Office Protocol v3 (110)";
1335         }
1336         enum "smtp" {
1337           tailf:info "Simple Mail Transport Protocol (25)";
1338         }
1339         enum "sunrpc" {
1340           tailf:info "Sun Remote Procedure Call (111)";
1341         }
1342         enum "syslog" {
1343           tailf:info "Syslog (514)";
1344         }
1345         enum "tacacs" {
1346           tailf:info "TAC Access Control System (49)";
1347         }
1348         enum "talk" {
1349           tailf:info "Talk (517)";
1350         }
1351         enum "telnet" {
1352           tailf:info "Telnet (23)";
1353         }
1354         enum "time" {
1355           tailf:info "Time (37)";
1356         }
1357         enum "uucp" {
1358           tailf:info "Unix-to-Unix Copy Program (540)";
1359         }
1360         enum "whois" {
1361           tailf:info "Nicname (43)";
1362         }
1363         enum "www" {
1364           tailf:info "World Wide Web (HTTP, 80)";
1365         }
1366       }
1367     }
1368   }
1369
1370   typedef bgp-as-number-type {
1371     type union {
1372       type uint32 {
1373         tailf:info "<1-4294967295>;;Autonomous system number";
1374         range "1..4294967295";
1375       }
1376       type string {
1377         tailf:info "<1.0-XX.YY>;;Autonomous system number";
1378       }
1379     }
1380   }
1381
1382   grouping vrf-route-target-grouping {
1383     list export {
1384       tailf:info "Export Target-VPN community";
1385       description
1386         "Export Target-VPN community";
1387       tailf:cli-suppress-mode;
1388       tailf:cli-delete-when-empty;
1389       key "asn-ip";
1390       leaf asn-ip {
1391         type asn-ip-type {
1392           tailf:info "ASN:nn or IP-address:nn;;Target VPN Extended Community";
1393         }
1394       }
1395     }
1396     list import {
1397       tailf:info "Import Target-VPN community";
1398       description
1399         "Import Target-VPN community";
1400       tailf:cli-suppress-mode;
1401       tailf:cli-delete-when-empty;
1402       key "asn-ip";
1403       leaf asn-ip {
1404         type asn-ip-type {
1405           tailf:info "ASN:nn or IP-address:nn;;Target VPN Extended Community";
1406         }
1407       }
1408     }
1409   }
1410
1411   grouping police-action-transmit-grouping {
1412     leaf transmit {
1413       tailf:info "transmit packet";
1414       description
1415         "transmit packet";
1416       type empty;
1417     }
1418   }
1419
1420   grouping police-action-drop-grouping {
1421     leaf drop {
1422       tailf:info "drop packet";
1423       description
1424         "drop packet";
1425       type empty;
1426     }
1427   }
1428
1429   grouping police-conform-action-grouping {
1430     container conform-set-clp-transmit {
1431       tailf:cli-no-keyword;
1432       tailf:cli-drop-node-name;
1433       tailf:cli-flatten-container;
1434       container conform-action {
1435         tailf:info "action when rate is less than conform burst";
1436         description
1437           "action when rate is less than conform burst";
1438         tailf:cli-flatten-container;
1439         leaf set-clp-transmit {
1440           tailf:info "set atm clp and send it";
1441           description
1442             "set atm clp and send it";
1443           type empty;
1444         }
1445       }
1446     }
1447     container conform-set-cos-transmit {
1448       tailf:cli-no-keyword;
1449       tailf:cli-drop-node-name;
1450       tailf:cli-flatten-container;
1451       container conform-action {
1452         tailf:info "action when rate is less than conform burst";
1453         description
1454           "action when rate is less than conform burst";
1455         tailf:cli-flatten-container;
1456         leaf set-cos-transmit {
1457           tailf:info "rewrite packet cos and send it";
1458           description
1459             "rewrite packet cos and send it";
1460           type cos_value-type;
1461         }
1462       }
1463     }
1464     container conform-set-cos-transmit-table {
1465       tailf:cli-no-keyword;
1466       tailf:cli-drop-node-name;
1467       tailf:cli-flatten-container;
1468       container conform-action {
1469         tailf:info "action when rate is less than conform burst";
1470         description
1471           "action when rate is less than conform burst";
1472         tailf:cli-compact-syntax;
1473         tailf:cli-flatten-container;
1474         tailf:cli-sequence-commands;
1475         leaf set-cos-transmit {
1476           tailf:info "rewrite packet cos and send it";
1477           description
1478             "rewrite packet cos and send it";
1479           type cos_value-type;
1480         }
1481         leaf table {
1482           tailf:info "Specify table-map";
1483           description
1484             "Specify table-map";
1485           type leafref {
1486             path "/ios:native/table-map/name";
1487           }
1488         }
1489       }
1490     }
1491     container conform-set-discard-class-transmit {
1492       tailf:cli-no-keyword;
1493       tailf:cli-drop-node-name;
1494       tailf:cli-flatten-container;
1495       container conform-action {
1496         tailf:info "action when rate is less than conform burst";
1497         description
1498           "action when rate is less than conform burst";
1499         tailf:cli-flatten-container;
1500         leaf set-discard-class-transmit {
1501           tailf:info "set discard-class and send it";
1502           description
1503             "set discard-class and send it";
1504           type uint8 {
1505             tailf:info "<0-7>;;new discard-class";
1506             range "0..7";
1507           }
1508         }
1509       }
1510     }
1511     container conform-set-dscp-transmit {
1512       tailf:cli-no-keyword;
1513       tailf:cli-drop-node-name;
1514       tailf:cli-flatten-container;
1515       container conform-action {
1516         tailf:info "action when rate is less than conform burst";
1517         description
1518           "action when rate is less than conform burst";
1519         tailf:cli-flatten-container;
1520         leaf set-dscp-transmit {
1521           tailf:info "set dscp and send it";
1522           description
1523             "set dscp and send it";
1524           type dscp-type;
1525         }
1526       }
1527     }
1528     container conform-set-dscp-transmit-table {
1529       tailf:cli-no-keyword;
1530       tailf:cli-drop-node-name;
1531       tailf:cli-flatten-container;
1532       container conform-action {
1533         tailf:info "action when rate is less than conform burst";
1534         description
1535           "action when rate is less than conform burst";
1536         tailf:cli-compact-syntax;
1537         tailf:cli-flatten-container;
1538         tailf:cli-sequence-commands;
1539         leaf set-dscp-transmit {
1540           tailf:info "set dscp and send it";
1541           description
1542             "set dscp and send it";
1543           type dscp-type;
1544         }
1545         leaf table {
1546           tailf:info "Specify table-map";
1547           description
1548             "Specify table-map";
1549           type leafref {
1550             path "/ios:native/table-map/name";
1551           }
1552         }
1553       }
1554     }
1555     container conform-set-frde-transmit {
1556       tailf:cli-no-keyword;
1557       tailf:cli-drop-node-name;
1558       tailf:cli-flatten-container;
1559       container conform-action {
1560         tailf:info "action when rate is less than conform burst";
1561         description
1562           "action when rate is less than conform burst";
1563         tailf:cli-flatten-container;
1564         leaf set-frde-transmit {
1565           tailf:info "set FR DE and send it";
1566           description
1567             "set FR DE and send it";
1568           type empty;
1569         }
1570       }
1571     }
1572     container conform-set-mpls-exp-imposition-transmit {
1573       tailf:cli-no-keyword;
1574       tailf:cli-drop-node-name;
1575       tailf:cli-flatten-container;
1576       container conform-action {
1577         tailf:info "action when rate is less than conform burst";
1578         description
1579           "action when rate is less than conform burst";
1580         tailf:cli-flatten-container;
1581         leaf set-mpls-exp-imposition-transmit {
1582           tailf:info "set exp at tag imposition and send it";
1583           description
1584             "set exp at tag imposition and send it";
1585           type exp_value-type;
1586         }
1587       }
1588     }
1589     container conform-set-mpls-exp-imposition-transmit-table {
1590       tailf:cli-no-keyword;
1591       tailf:cli-drop-node-name;
1592       tailf:cli-flatten-container;
1593       container conform-action {
1594         tailf:info "action when rate is less than conform burst";
1595         description
1596           "action when rate is less than conform burst";
1597         tailf:cli-compact-syntax;
1598         tailf:cli-flatten-container;
1599         tailf:cli-sequence-commands;
1600         leaf set-mpls-exp-imposition-transmit {
1601           tailf:info "set exp at tag imposition and send it";
1602           description
1603             "set exp at tag imposition and send it";
1604           type exp_value-type;
1605         }
1606         leaf table {
1607           tailf:info "Specify table-map";
1608           description
1609             "Specify table-map";
1610           type leafref {
1611             path "/ios:native/table-map/name";
1612           }
1613         }
1614       }
1615     }
1616     container conform-set-mpls-exp-topmost-transmit {
1617       tailf:cli-no-keyword;
1618       tailf:cli-drop-node-name;
1619       tailf:cli-flatten-container;
1620       container conform-action {
1621         tailf:info "action when rate is less than conform burst";
1622         description
1623           "action when rate is less than conform burst";
1624         tailf:cli-flatten-container;
1625         leaf set-mpls-exp-topmost-transmit {
1626           tailf:info "set exp on topmost label and send it";
1627           description
1628             "set exp on topmost label and send it";
1629           type exp_value-type;
1630         }
1631       }
1632     }
1633     container conform-set-mpls-exp-topmost-transmit-table {
1634       tailf:cli-no-keyword;
1635       tailf:cli-drop-node-name;
1636       tailf:cli-flatten-container;
1637       container conform-action {
1638         tailf:info "action when rate is less than conform burst";
1639         description
1640           "action when rate is less than conform burst";
1641         tailf:cli-compact-syntax;
1642         tailf:cli-flatten-container;
1643         tailf:cli-sequence-commands;
1644         leaf set-mpls-exp-topmost-transmit {
1645           tailf:info "set exp on topmost label and send it";
1646           description
1647             "set exp on topmost label and send it";
1648           type exp_value-type;
1649         }
1650         leaf table {
1651           tailf:info "Specify table-map";
1652           description
1653             "Specify table-map";
1654           type leafref {
1655             path "/ios:native/table-map/name";
1656           }
1657         }
1658       }
1659     }
1660     container conform-set-prec-transmit {
1661       tailf:cli-no-keyword;
1662       tailf:cli-drop-node-name;
1663       tailf:cli-flatten-container;
1664       container conform-action {
1665         tailf:info "action when rate is less than conform burst";
1666         description
1667           "action when rate is less than conform burst";
1668         tailf:cli-flatten-container;
1669         leaf set-prec-transmit {
1670           tailf:info "rewrite packet precedence and send it";
1671           description
1672             "rewrite packet precedence and send it";
1673           type prec_value-type;
1674         }
1675       }
1676     }
1677     container conform-set-prec-transmit-table {
1678       tailf:cli-no-keyword;
1679       tailf:cli-drop-node-name;
1680       tailf:cli-flatten-container;
1681       container conform-action {
1682         tailf:info "action when rate is less than conform burst";
1683         description
1684           "action when rate is less than conform burst";
1685         tailf:cli-compact-syntax;
1686         tailf:cli-flatten-container;
1687         tailf:cli-sequence-commands;
1688         leaf set-prec-transmit {
1689           tailf:info "rewrite packet precedence and send it";
1690           description
1691             "rewrite packet precedence and send it";
1692           type prec_value-type;
1693         }
1694         leaf table {
1695           tailf:info "Specify table-map";
1696           description
1697             "Specify table-map";
1698           type leafref {
1699             path "/ios:native/table-map/name";
1700           }
1701         }
1702       }
1703     }
1704     container conform-set-qos-transmit {
1705       tailf:cli-no-keyword;
1706       tailf:cli-drop-node-name;
1707       tailf:cli-flatten-container;
1708       container conform-action {
1709         tailf:info "action when rate is less than conform burst";
1710         description
1711           "action when rate is less than conform burst";
1712         tailf:cli-flatten-container;
1713         leaf set-qos-transmit {
1714           tailf:info "set qos-group and send it";
1715           description
1716             "set qos-group and send it";
1717           type qos_value-type;
1718         }
1719       }
1720     }
1721     container conform-set-qos-transmit-table {
1722       tailf:cli-no-keyword;
1723       tailf:cli-drop-node-name;
1724       tailf:cli-flatten-container;
1725       container conform-action {
1726         tailf:info "action when rate is less than conform burst";
1727         description
1728           "action when rate is less than conform burst";
1729         tailf:cli-compact-syntax;
1730         tailf:cli-flatten-container;
1731         tailf:cli-sequence-commands;
1732         leaf set-qos-transmit {
1733           tailf:info "set qos-group and send it";
1734           description
1735             "set qos-group and send it";
1736           type qos_value-type;
1737         }
1738         leaf table {
1739           tailf:info "Specify table-map";
1740           description
1741             "Specify table-map";
1742           type leafref {
1743             path "/ios:native/table-map/name";
1744           }
1745         }
1746       }
1747     }
1748     container conform-transmit {
1749       tailf:cli-no-keyword;
1750       tailf:cli-drop-node-name;
1751       tailf:cli-flatten-container;
1752       container conform-action {
1753         tailf:info "action when rate is less than conform burst";
1754         description
1755           "action when rate is less than conform burst";
1756         tailf:cli-flatten-container;
1757         uses police-action-transmit-grouping;
1758       }
1759     }
1760     container conform-drop {
1761       tailf:cli-no-keyword;
1762       tailf:cli-drop-node-name;
1763       tailf:cli-flatten-container;
1764       container conform-action {
1765         tailf:info "action when rate is less than conform burst";
1766         description
1767           "action when rate is less than conform burst";
1768         tailf:cli-flatten-container;
1769         uses police-action-drop-grouping;
1770       }
1771     }
1772   }
1773
1774   grouping police-exceed-action-grouping {
1775     container exceed-dscp {
1776       tailf:cli-no-keyword;
1777       tailf:cli-drop-node-name;
1778       tailf:cli-flatten-container;
1779       container exceed-action {
1780         tailf:info "action when rate is within conform and conform + exceed burst";
1781         description
1782           "action when rate is within conform and conform + exceed burst";
1783         tailf:cli-flatten-container;
1784         leaf dscp {
1785           type dscp-type;
1786         }
1787       }
1788     }
1789     container exceed-set-clp-transmit {
1790       tailf:cli-no-keyword;
1791       tailf:cli-drop-node-name;
1792       tailf:cli-flatten-container;
1793       container exceed-action {
1794         tailf:info "action when rate is within conform and conform + exceed burst";
1795         description
1796           "action when rate is within conform and conform + exceed burst";
1797         tailf:cli-flatten-container;
1798         leaf set-clp-transmit {
1799           tailf:info "set atm clp and send it";
1800           description
1801             "set atm clp and send it";
1802           type empty;
1803         }
1804       }
1805     }
1806     container exceed-set-cos-transmit {
1807       tailf:cli-no-keyword;
1808       tailf:cli-drop-node-name;
1809       tailf:cli-flatten-container;
1810       container exceed-action {
1811         tailf:info "action when rate is within conform and conform + exceed burst";
1812         description
1813           "action when rate is within conform and conform + exceed burst";
1814         tailf:cli-flatten-container;
1815         leaf set-cos-transmit {
1816           tailf:info "rewrite packet cos and send it";
1817           description
1818             "rewrite packet cos and send it";
1819           type cos_value-type;
1820         }
1821       }
1822     }
1823     container exceed-set-discard-class-transmit {
1824       tailf:cli-no-keyword;
1825       tailf:cli-drop-node-name;
1826       tailf:cli-flatten-container;
1827       container exceed-action {
1828         tailf:info "action when rate is within conform and conform + exceed burst";
1829         description
1830           "action when rate is within conform and conform + exceed burst";
1831         tailf:cli-flatten-container;
1832         leaf set-discard-class-transmit {
1833           tailf:info "set discard-class and send it";
1834           description
1835             "set discard-class and send it";
1836           type uint8 {
1837             tailf:info "<0-7>;;new discard-class";
1838             range "0..7";
1839           }
1840         }
1841       }
1842     }
1843     container exceed-set-dscp-transmit {
1844       tailf:cli-no-keyword;
1845       tailf:cli-drop-node-name;
1846       tailf:cli-flatten-container;
1847       container exceed-action {
1848         tailf:info "action when rate is within conform and conform + exceed burst";
1849         description
1850           "action when rate is within conform and conform + exceed burst";
1851         tailf:cli-flatten-container;
1852         leaf set-dscp-transmit {
1853           tailf:info "set dscp and send it";
1854           description
1855             "set dscp and send it";
1856           type dscp-type;
1857         }
1858         container set-dscp-transmit-c {
1859           tailf:alt-name "set-dscp-transmit";
1860           container dscp {
1861             leaf table {
1862               type enumeration {
1863                 enum "policed-dscp";
1864               }
1865             }
1866           }
1867         }
1868       }
1869     }
1870     container exceed-set-frde-transmit {
1871       tailf:cli-no-keyword;
1872       tailf:cli-drop-node-name;
1873       tailf:cli-flatten-container;
1874       container exceed-action {
1875         tailf:info "action when rate is within conform and conform + exceed burst";
1876         description
1877           "action when rate is within conform and conform + exceed burst";
1878         tailf:cli-flatten-container;
1879         leaf set-frde-transmit {
1880           tailf:info "set FR DE and send it";
1881           description
1882             "set FR DE and send it";
1883           type empty;
1884         }
1885       }
1886     }
1887     container exceed-set-mpls-exp-imposition-transmit {
1888       tailf:cli-no-keyword;
1889       tailf:cli-drop-node-name;
1890       tailf:cli-flatten-container;
1891       container exceed-action {
1892         tailf:info "action when rate is within conform and conform + exceed burst";
1893         description
1894           "action when rate is within conform and conform + exceed burst";
1895         tailf:cli-flatten-container;
1896         leaf set-mpls-exp-imposition-transmit {
1897           tailf:info "set exp at tag imposition and send it";
1898           description
1899             "set exp at tag imposition and send it";
1900           type exp_value-type;
1901         }
1902       }
1903     }
1904     container exceed-set-mpls-exp-topmost-transmit {
1905       tailf:cli-no-keyword;
1906       tailf:cli-drop-node-name;
1907       tailf:cli-flatten-container;
1908       container exceed-action {
1909         tailf:info "action when rate is within conform and conform + exceed burst";
1910         description
1911           "action when rate is within conform and conform + exceed burst";
1912         tailf:cli-flatten-container;
1913         leaf set-mpls-exp-topmost-transmit {
1914           tailf:info "set exp on topmost label and send it";
1915           description
1916             "set exp on topmost label and send it";
1917           type exp_value-type;
1918         }
1919       }
1920     }
1921     container exceed-set-prec-transmit {
1922       tailf:cli-no-keyword;
1923       tailf:cli-drop-node-name;
1924       tailf:cli-flatten-container;
1925       container exceed-action {
1926         tailf:info "action when rate is within conform and conform + exceed burst";
1927         description
1928           "action when rate is within conform and conform + exceed burst";
1929         tailf:cli-flatten-container;
1930         leaf set-prec-transmit {
1931           tailf:info "rewrite packet precedence and send it";
1932           description
1933             "rewrite packet precedence and send it";
1934           type prec_value-type;
1935         }
1936       }
1937     }
1938     container exceed-set-qos-transmit {
1939       tailf:cli-no-keyword;
1940       tailf:cli-drop-node-name;
1941       tailf:cli-flatten-container;
1942       container exceed-action {
1943         tailf:info "action when rate is within conform and conform + exceed burst";
1944         description
1945           "action when rate is within conform and conform + exceed burst";
1946         tailf:cli-flatten-container;
1947         leaf set-qos-transmit {
1948           tailf:info "set qos-group and send it";
1949           description
1950             "set qos-group and send it";
1951           type qos_value-type;
1952         }
1953       }
1954     }
1955     container exceed-transmit {
1956       tailf:cli-no-keyword;
1957       tailf:cli-drop-node-name;
1958       tailf:cli-flatten-container;
1959       container exceed-action {
1960         tailf:info "action when rate is within conform and conform + exceed burst";
1961         description
1962           "action when rate is within conform and conform + exceed burst";
1963         tailf:cli-flatten-container;
1964         uses police-action-transmit-grouping;
1965       }
1966     }
1967     container exceed-drop {
1968       tailf:cli-no-keyword;
1969       tailf:cli-drop-node-name;
1970       tailf:cli-flatten-container;
1971       container exceed-action {
1972         tailf:info "action when rate is within conform and conform + exceed burst";
1973         description
1974           "action when rate is within conform and conform + exceed burst";
1975         tailf:cli-flatten-container;
1976         uses police-action-drop-grouping;
1977       }
1978     }
1979   }
1980
1981   grouping police-violate-action-grouping {
1982     container violate-set-clp-transmit {
1983       tailf:cli-no-keyword;
1984       tailf:cli-drop-node-name;
1985       tailf:cli-flatten-container;
1986       container violate-action {
1987         tailf:info "action when rate is greater than conform + exceed burst";
1988         description
1989           "action when rate is greater than conform + exceed burst";
1990         tailf:cli-flatten-container;
1991         leaf set-clp-transmit {
1992           tailf:info "set atm clp and send it";
1993           description
1994             "set atm clp and send it";
1995           type empty;
1996         }
1997       }
1998     }
1999     container violate-set-cos-transmit {
2000       tailf:cli-no-keyword;
2001       tailf:cli-drop-node-name;
2002       tailf:cli-flatten-container;
2003       container violate-action {
2004         tailf:info "action when rate is greater than conform + exceed burst";
2005         description
2006           "action when rate is greater than conform + exceed burst";
2007         tailf:cli-flatten-container;
2008         leaf set-cos-transmit {
2009           tailf:info "rewrite packet cos and send it";
2010           description
2011             "rewrite packet cos and send it";
2012           type cos_value-type;
2013         }
2014       }
2015     }
2016     container violate-set-discard-class-transmit {
2017       tailf:cli-no-keyword;
2018       tailf:cli-drop-node-name;
2019       tailf:cli-flatten-container;
2020       container violate-action {
2021         tailf:info "action when rate is greater than conform + exceed burst";
2022         description
2023           "action when rate is greater than conform + exceed burst";
2024         tailf:cli-flatten-container;
2025         leaf set-discard-class-transmit {
2026           tailf:info "set discard-class and send it";
2027           description
2028             "set discard-class and send it";
2029           type uint8 {
2030             tailf:info "<0-7>;;new discard-class";
2031             range "0..7";
2032           }
2033         }
2034       }
2035     }
2036     container violate-set-dscp-transmit {
2037       tailf:cli-no-keyword;
2038       tailf:cli-drop-node-name;
2039       tailf:cli-flatten-container;
2040       container violate-action {
2041         tailf:info "action when rate is greater than conform + exceed burst";
2042         description
2043           "action when rate is greater than conform + exceed burst";
2044         tailf:cli-flatten-container;
2045         leaf set-dscp-transmit {
2046           tailf:info "set dscp and send it";
2047           description
2048             "set dscp and send it";
2049           type dscp-type;
2050         }
2051       }
2052     }
2053     container violate-set-frde-transmit {
2054       tailf:cli-no-keyword;
2055       tailf:cli-drop-node-name;
2056       tailf:cli-flatten-container;
2057       container violate-action {
2058         tailf:info "action when rate is greater than conform + exceed burst";
2059         description
2060           "action when rate is greater than conform + exceed burst";
2061         tailf:cli-flatten-container;
2062         leaf set-frde-transmit {
2063           tailf:info "set FR DE and send it";
2064           description
2065             "set FR DE and send it";
2066           type empty;
2067         }
2068       }
2069     }
2070     container violate-set-mpls-exp-imposition-transmit {
2071       tailf:cli-no-keyword;
2072       tailf:cli-drop-node-name;
2073       tailf:cli-flatten-container;
2074       container violate-action {
2075         tailf:info "action when rate is greater than conform + exceed burst";
2076         description
2077           "action when rate is greater than conform + exceed burst";
2078         tailf:cli-flatten-container;
2079         leaf set-mpls-exp-imposition-transmit {
2080           tailf:info "set exp at tag imposition and send it";
2081           description
2082             "set exp at tag imposition and send it";
2083           type exp_value-type;
2084         }
2085       }
2086     }
2087     container violate-set-mpls-exp-topmost-transmit {
2088       tailf:cli-no-keyword;
2089       tailf:cli-drop-node-name;
2090       tailf:cli-flatten-container;
2091       container violate-action {
2092         tailf:info "action when rate is greater than conform + exceed burst";
2093         description
2094           "action when rate is greater than conform + exceed burst";
2095         tailf:cli-flatten-container;
2096         leaf set-mpls-exp-topmost-transmit {
2097           tailf:info "set exp on topmost label and send it";
2098           description
2099             "set exp on topmost label and send it";
2100           type exp_value-type;
2101         }
2102       }
2103     }
2104     container violate-set-prec-transmit {
2105       tailf:cli-no-keyword;
2106       tailf:cli-drop-node-name;
2107       tailf:cli-flatten-container;
2108       container violate-action {
2109         tailf:info "action when rate is greater than conform + exceed burst";
2110         description
2111           "action when rate is greater than conform + exceed burst";
2112         tailf:cli-flatten-container;
2113         leaf set-prec-transmit {
2114           tailf:info "rewrite packet precedence and send it";
2115           description
2116             "rewrite packet precedence and send it";
2117           type prec_value-type;
2118         }
2119       }
2120     }
2121     container violate-set-qos-transmit {
2122       tailf:cli-no-keyword;
2123       tailf:cli-drop-node-name;
2124       tailf:cli-flatten-container;
2125       container violate-action {
2126         tailf:info "action when rate is greater than conform + exceed burst";
2127         description
2128           "action when rate is greater than conform + exceed burst";
2129         tailf:cli-flatten-container;
2130         leaf set-qos-transmit {
2131           tailf:info "set qos-group and send it";
2132           description
2133             "set qos-group and send it";
2134           type qos_value-type;
2135         }
2136       }
2137     }
2138     container violate-transmit {
2139       tailf:cli-no-keyword;
2140       tailf:cli-drop-node-name;
2141       tailf:cli-flatten-container;
2142       container violate-action {
2143         tailf:info "action when rate is greater than conform + exceed burst";
2144         description
2145           "action when rate is greater than conform + exceed burst";
2146         tailf:cli-flatten-container;
2147         uses police-action-transmit-grouping;
2148       }
2149     }
2150     container violate-drop {
2151       tailf:cli-no-keyword;
2152       tailf:cli-drop-node-name;
2153       tailf:cli-flatten-container;
2154       container violate-action {
2155         tailf:info "action when rate is greater than conform + exceed burst";
2156         description
2157           "action when rate is greater than conform + exceed burst";
2158         tailf:cli-flatten-container;
2159         uses police-action-drop-grouping;
2160       }
2161     }
2162   }
2163
2164   grouping police-action-grouping {
2165     container actions {
2166       tailf:cli-break-sequence-commands;
2167       tailf:cli-no-keyword;
2168       tailf:cli-drop-node-name;
2169       tailf:cli-flatten-container;
2170       uses police-conform-action-grouping;
2171       uses police-exceed-action-grouping;
2172       uses police-violate-action-grouping;
2173     }
2174   }
2175
2176   grouping password-grouping {
2177     container password-container {
2178       tailf:cli-compact-syntax;
2179       tailf:cli-flatten-container;
2180       tailf:cli-sequence-commands;
2181       tailf:cli-drop-node-name;
2182       leaf encryption {
2183         tailf:cli-drop-node-name;
2184         tailf:cli-incomplete-command;
2185         tailf:cli-optional-in-sequence;
2186         type uint8 {
2187           range "0..7";
2188           tailf:info "<0-7>;;Encryption type (0 to disable encryption, 7 for proprietary)";
2189         }
2190         default "0";
2191       }
2192       leaf password {
2193         tailf:cli-drop-node-name;
2194         tailf:cli-trim-default;
2195         type string {
2196           pattern "([1-680-9a-zA-Z].*)|(0.+)|(7.+)";
2197           tailf:info "LINE;;The password";
2198         }
2199       }
2200     }
2201   }
2202
2203   grouping distribute-list-grouping {
2204     container distribute-list {
2205       tailf:info "Filter networks in routing updates";
2206       description
2207         "Filter networks in routing updates";
2208       list accesslist {
2209         tailf:cli-drop-node-name;
2210         tailf:cli-compact-syntax;
2211         tailf:cli-suppress-mode;
2212         tailf:cli-delete-when-empty;
2213         tailf:cli-suppress-list-no;
2214         key "in-out";
2215         leaf in-out {
2216           type access-list-in-out-type;
2217         }
2218       }
2219       list accesslist-ifname {
2220         tailf:cli-drop-node-name;
2221         tailf:cli-compact-syntax;
2222         tailf:cli-suppress-mode;
2223         tailf:cli-delete-when-empty;
2224         tailf:cli-suppress-list-no;
2225         tailf:cli-diff-dependency "/ios:native/interface";
2226         key "in-out interface";
2227         leaf in-out {
2228           type access-list-in-out-type;
2229         }
2230         leaf interface {
2231           type string {
2232             tailf:info "WORD;;Interface name/routing protocol name";
2233           }
2234         }
2235         leaf interface-routing-id {
2236           tailf:cli-drop-node-name;
2237           type uint8 {
2238             tailf:info "Interface id/routing protocol process id";
2239           }
2240         }
2241         leaf isis-tag {
2242           tailf:cli-drop-node-name;
2243           type string {
2244             tailf:info "WORD;;ISO routing area tag";
2245           }
2246         }
2247         leaf vrf {
2248           tailf:info "VPN Routing/Forwarding Instance";
2249           description
2250             "VPN Routing/Forwarding Instance";
2251           type string {
2252             tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
2253           }
2254         }
2255       }
2256       list accesslist-prefix-gateway {
2257         tailf:cli-drop-node-name;
2258         tailf:cli-compact-syntax;
2259         tailf:cli-suppress-mode;
2260         tailf:cli-delete-when-empty;
2261         tailf:cli-suppress-list-no;
2262         tailf:cli-sequence-commands;
2263         key "in-out";
2264         leaf prefix-gateway {
2265           tailf:cli-drop-node-name;
2266           tailf:cli-incomplete-command;
2267           mandatory true;
2268           tailf:cli-prefix-key;
2269           type enumeration {
2270             enum "prefix" {
2271               tailf:info "Filter prefixes in routing updates";
2272             }
2273             enum "gateway" {
2274               tailf:info "Filtering incoming updates based on gateway";
2275             }
2276             enum "route-map" {
2277               tailf:info "Filter prefixes based on the route-map";
2278             }
2279           }
2280         }
2281         leaf name {
2282           tailf:cli-drop-node-name;
2283           mandatory true;
2284           tailf:cli-prefix-key;
2285           tailf:cli-disallow-value "in|out";
2286           type string {
2287             tailf:info "WORD;;Name of an IP prefix-list";
2288           }
2289         }
2290         leaf in-out {
2291           type access-list-in-out-type;
2292         }
2293       }
2294       list accesslist-prefix-gateway-ifname {
2295         tailf:cli-drop-node-name;
2296         tailf:cli-compact-syntax;
2297         tailf:cli-suppress-mode;
2298         tailf:cli-delete-when-empty;
2299         tailf:cli-suppress-list-no;
2300         key "in-out interface";
2301         leaf prefix-gateway {
2302           tailf:cli-drop-node-name;
2303           tailf:cli-incomplete-command;
2304           mandatory true;
2305           tailf:cli-prefix-key;
2306           type enumeration {
2307             enum "prefix" {
2308               tailf:info "Filter prefixes in routing updates";
2309             }
2310             enum "gateway" {
2311               tailf:info "Filtering incoming updates based on gateway";
2312             }
2313             enum "route-map" {
2314               tailf:info "Filter prefixes based on the route-map";
2315             }
2316           }
2317         }
2318         leaf name {
2319           tailf:cli-drop-node-name;
2320           mandatory true;
2321           tailf:cli-prefix-key;
2322           tailf:cli-disallow-value "in|out";
2323           type string {
2324             tailf:info "WORD;;Name of an IP prefix-list";
2325           }
2326         }
2327         leaf in-out {
2328           type access-list-in-out-type;
2329         }
2330         leaf interface {
2331           type string {
2332             tailf:info "WORD;;Interface name";
2333           }
2334         }
2335         leaf interface-routing-id {
2336           tailf:cli-drop-node-name;
2337           type uint8 {
2338             tailf:info "Interface id/routing protocol process id";
2339           }
2340         }
2341         leaf isis-tag {
2342           tailf:cli-drop-node-name;
2343           type string {
2344             tailf:info "WORD;;ISO routing area tag";
2345           }
2346         }
2347         leaf vrf {
2348           tailf:info "VPN Routing/Forwarding Instance";
2349           description
2350             "VPN Routing/Forwarding Instance";
2351           type string {
2352             tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
2353           }
2354         }
2355       }
2356     }
2357   }
2358
2359   grouping ipv6-router-distribute-list-grouping {
2360     container distribute-list {
2361       tailf:info "Filter networks in routing updates";
2362       description
2363         "Filter networks in routing updates";
2364       list prefix-list {
2365         tailf:info "Filter connections based on an IPv6 prefix-list";
2366         description
2367           "Filter connections based on an IPv6 prefix-list";
2368         tailf:cli-suppress-mode;
2369         key "name";
2370         leaf name {
2371           type string {
2372             tailf:info "WORD;;Prefix-list name";
2373           }
2374         }
2375         leaf in {
2376           tailf:info "Filter incoming routing updates";
2377           description
2378             "Filter incoming routing updates";
2379           type string {
2380             tailf:info "WORD;;interface name";
2381           }
2382         }
2383         leaf out {
2384           tailf:info "Filter outgoing routing updates";
2385           description
2386             "Filter outgoing routing updates";
2387           type string {
2388             tailf:info "WORD;;interface name";
2389           }
2390         }
2391       }
2392     }
2393   }
2394
2395   grouping passive-interface-grouping {
2396     container passive-interface {
2397       tailf:info "Suppress routing updates on an interface";
2398       description
2399         "Suppress routing updates on an interface";
2400       choice passive-interface-choice {
2401         leaf default {
2402           tailf:info "Suppress routing updates on all interfaces";
2403           description
2404             "Suppress routing updates on all interfaces";
2405           type empty;
2406         }
2407         leaf interface {
2408           tailf:cli-drop-node-name;
2409           tailf:cli-multi-value;
2410           type string {
2411             tailf:info "WORD;;Interface name";
2412           }
2413         }
2414       }
2415     }
2416     container disable {
2417       when "../passive-interface/default";
2418       list passive-interface {
2419         tailf:cli-suppress-mode;
2420         tailf:cli-delete-when-empty;
2421         tailf:cli-compact-syntax;
2422         key "interface";
2423         leaf interface {
2424           tailf:cli-drop-node-name;
2425           tailf:cli-multi-word-key;
2426           type string {
2427             tailf:info "WORD;;Interface name";
2428           }
2429         }
2430       }
2431     }
2432   }
2433
2434   grouping interface-grouping {
2435     choice interface-choice {
2436       leaf AppNav-Compress {
2437         tailf:info "Service-Context Virtual Interface Compress";
2438         description
2439           "Service-Context Virtual Interface Compress";
2440         tailf:cli-allow-join-with-value {
2441           tailf:cli-display-joined;
2442         }
2443         type uint16;
2444         tailf:non-strict-leafref {
2445           path "/ios:native/interface/AppNav-Compress/name";
2446         }
2447       }
2448       leaf AppNav-UnCompress {
2449         tailf:info "Service-Context Virtual Interface UnCompress";
2450         description
2451           "Service-Context Virtual Interface UnCompress";
2452         tailf:cli-allow-join-with-value {
2453           tailf:cli-display-joined;
2454         }
2455         type uint16;
2456         tailf:non-strict-leafref {
2457           path "/ios:native/interface/AppNav-UnCompress/name";
2458         }
2459       }
2460       leaf ATM {
2461         tailf:info "ATM interface";
2462         description
2463           "ATM interface";
2464         tailf:cli-allow-join-with-value {
2465           tailf:cli-display-joined;
2466         }
2467         type string {
2468           tailf:info "<slot>/<subslot>/<port>;;ATM interface number";
2469           pattern "([0-9]/){2}([0-9]|(ima[0-9]))(:[0-9])?";
2470         }
2471         tailf:non-strict-leafref {
2472           path "/ios:native/interface/ATM/name";
2473         }
2474       }
2475       container ATM-subinterface {
2476         tailf:cli-no-keyword;
2477         tailf:cli-drop-node-name;
2478         tailf:cli-flatten-container;
2479         tailf:cli-compact-syntax;
2480         leaf ATM {
2481           tailf:cli-allow-join-with-value {
2482             tailf:cli-display-joined;
2483           }
2484           type string {
2485             pattern "([0-9]/){2}[0-9]\\.([0-9]/){3}[0-9]";
2486           }
2487           tailf:non-strict-leafref {
2488             path "/ios:native/interface/ATM-subinterface/ATM/name";
2489           }
2490         }
2491       }
2492       leaf ATM-ACR {
2493         tailf:info "ATM-ACR interface";
2494         description
2495           "ATM-ACR interface";
2496         tailf:cli-allow-join-with-value {
2497           tailf:cli-display-joined;
2498         }
2499         type string {
2500           tailf:info "<slot>/<subslot>/<port>;;ATM-ACR interface number";
2501           pattern "[0-9]";
2502         }
2503         tailf:non-strict-leafref {
2504           path "/ios:native/interface/ATM-ACR/name";
2505         }
2506       }
2507       container ATM-ACRsubinterface {
2508         tailf:cli-no-keyword;
2509         tailf:cli-drop-node-name;
2510         tailf:cli-flatten-container;
2511         tailf:cli-compact-syntax;
2512         leaf ATM-ACR {
2513           tailf:cli-allow-join-with-value {
2514             tailf:cli-display-joined;
2515           }
2516           type string {
2517             pattern "[0-9]\\.([0-9]/){3}[0-9]";
2518           }
2519           tailf:non-strict-leafref {
2520             path "/ios:native/interface/ATM-ACRsubinterface/ATM-ACR/name";
2521           }
2522         }
2523       }
2524       leaf BDI {
2525         tailf:info "Bridge-Domain interface";
2526         description
2527           "Bridge-Domain interface";
2528         tailf:cli-allow-join-with-value {
2529           tailf:cli-display-joined;
2530         }
2531         type string;
2532         tailf:non-strict-leafref {
2533           path "/ios:native/interface/BDI/name";
2534         }
2535       }
2536       leaf CEM {
2537         tailf:info "CEM interface";
2538         description
2539           "CEM interface";
2540         tailf:cli-allow-join-with-value {
2541           tailf:cli-display-joined;
2542         }
2543         type string {
2544           tailf:info "<slot>/<subslot>/<port>;;CEM interface number";
2545           pattern "([0-9]/){2}[0-9]";
2546         }
2547         tailf:non-strict-leafref {
2548           path "/ios:native/interface/CEM/name";
2549         }
2550       }
2551       leaf CEM-ACR {
2552         tailf:info "CEM-ACR interface";
2553         description
2554           "CEM-ACR interface";
2555         tailf:cli-allow-join-with-value {
2556           tailf:cli-display-joined;
2557         }
2558         type uint8 {
2559           tailf:info "<0-255>;;CEM-ACR interface number";
2560           range "0..255";
2561         }
2562         tailf:non-strict-leafref {
2563           path "/ios:native/interface/CEM-ACR/name";
2564         }
2565       }
2566       leaf Embedded-Service-Engine {
2567         tailf:info "cisco embedded service engine module";
2568         description
2569           "cisco embedded service engine module";
2570         tailf:cli-allow-join-with-value {
2571           tailf:cli-display-joined;
2572         }
2573         type string;
2574         tailf:non-strict-leafref {
2575           path "/ios:native/interface/Embedded-Service-Engine/name";
2576         }
2577       }
2578       leaf FastEthernet {
2579         tailf:info "FastEthernet IEEE 802.3";
2580         description
2581           "FastEthernet IEEE 802.3";
2582         tailf:cli-allow-join-with-value {
2583           tailf:cli-display-joined;
2584         }
2585         type string;
2586         tailf:non-strict-leafref {
2587           path "/ios:native/interface/FastEthernet/name";
2588         }
2589       }
2590       leaf GigabitEthernet {
2591         tailf:info "GigabitEthernet IEEE 802.3z";
2592         description
2593           "GigabitEthernet IEEE 802.3z";
2594         tailf:cli-allow-join-with-value {
2595           tailf:cli-display-joined;
2596         }
2597         type string;
2598         tailf:non-strict-leafref {
2599           path "/ios:native/interface/GigabitEthernet/name";
2600         }
2601       }
2602       leaf Loopback {
2603         tailf:info "Loopback interface";
2604         description
2605           "Loopback interface";
2606         tailf:cli-allow-join-with-value {
2607           tailf:cli-display-joined;
2608         }
2609         type string;
2610         tailf:non-strict-leafref {
2611           path "/ios:native/interface/Loopback/name";
2612         }
2613       }
2614       leaf Multilink {
2615         tailf:info "Multilink-group interface";
2616         description
2617           "Multilink-group interface";
2618         tailf:cli-allow-join-with-value {
2619           tailf:cli-display-joined;
2620         }
2621         type uint16;
2622         tailf:non-strict-leafref {
2623           path "/ios:native/interface/Multilink/name";
2624         }
2625       }
2626       leaf nve {
2627         tailf:info "Network virtualization endpoint interface";
2628         description
2629           "Network virtualization endpoint interface";
2630         tailf:cli-allow-join-with-value {
2631           tailf:cli-display-joined;
2632         }
2633         type uint16;
2634         tailf:non-strict-leafref {
2635           path "/ios:native/interface/nve/name";
2636         }
2637       }
2638       leaf overlay {
2639         tailf:info "Overlay interface";
2640         description
2641           "Overlay interface";
2642         tailf:cli-allow-join-with-value {
2643           tailf:cli-display-joined;
2644         }
2645         type uint16;
2646         tailf:non-strict-leafref {
2647           path "/ios:native/interface/overlay/name";
2648         }
2649       }
2650       leaf Port-channel {
2651         tailf:info "Ethernet Channel of interfaces";
2652         description
2653           "Ethernet Channel of interfaces";
2654         tailf:cli-allow-join-with-value {
2655           tailf:cli-display-joined;
2656         }
2657         type uint32;
2658         tailf:non-strict-leafref {
2659           path "/ios:native/interface/Port-channel/name";
2660         }
2661       }
2662       container Port-channel-subinterface {
2663         tailf:cli-no-keyword;
2664         tailf:cli-drop-node-name;
2665         tailf:cli-flatten-container;
2666         tailf:cli-compact-syntax;
2667         leaf Port-channel {
2668           tailf:cli-allow-join-with-value {
2669             tailf:cli-display-joined;
2670           }
2671           type string;
2672           tailf:non-strict-leafref {
2673             path "/ios:native/interface/Port-channel-subinterface/Port-channel/name";
2674           }
2675         }
2676       }
2677       leaf pseudowire {
2678         tailf:info "Pseudowire Interface";
2679         description
2680           "Pseudowire Interface";
2681         tailf:cli-allow-join-with-value {
2682           tailf:cli-display-joined;
2683         }
2684         type uint32;
2685         tailf:non-strict-leafref {
2686           path "/ios:native/interface/pseudowire/name";
2687         }
2688       }
2689       leaf SM {
2690         tailf:info "SM Interface";
2691         description
2692           "SM Interface";
2693         tailf:cli-allow-join-with-value {
2694           tailf:cli-display-joined;
2695         }
2696         type string;
2697         tailf:non-strict-leafref {
2698           path "/ios:native/interface/SM/name";
2699         }
2700       }
2701       leaf Cellular {
2702         tailf:info "Cellular Interface";
2703         description
2704           "Cellular Interface";
2705         tailf:cli-allow-join-with-value {
2706           tailf:cli-display-joined;
2707         }
2708         type string;
2709         tailf:non-strict-leafref {
2710           path "/ios:native/interface/Cellular/name";
2711         }
2712       }
2713       leaf Serial {
2714         tailf:info "Serial interface";
2715         description
2716           "Serial interface";
2717         tailf:cli-allow-join-with-value {
2718           tailf:cli-display-joined;
2719         }
2720         type string;
2721         tailf:non-strict-leafref {
2722           path "/ios:native/interface/Serial/name";
2723         }
2724       }
2725       leaf TenGigabitEthernet {
2726         tailf:info "Ten Gigabit Ethernet";
2727         description
2728           "Ten Gigabit Ethernet";
2729         tailf:cli-allow-join-with-value {
2730           tailf:cli-display-joined;
2731         }
2732         type string;
2733         tailf:non-strict-leafref {
2734           path "/ios:native/interface/TenGigabitEthernet/name";
2735         }
2736       }
2737       leaf Tunnel {
2738         tailf:info "Tunnel interface";
2739         description
2740           "Tunnel interface";
2741         tailf:cli-allow-join-with-value {
2742           tailf:cli-display-joined;
2743         }
2744         type uint32;
2745         tailf:non-strict-leafref {
2746           path "/ios:native/interface/Tunnel/name";
2747         }
2748       }
2749       leaf Virtual-Template {
2750         tailf:info "Virtual Template interface";
2751         description
2752           "Virtual Template interface";
2753         tailf:cli-allow-join-with-value {
2754           tailf:cli-display-joined;
2755         }
2756         type uint16 {
2757           tailf:info "<1-4095>;;Virtual-Template interface number";
2758         }
2759         tailf:non-strict-leafref {
2760           path "/ios:native/interface/Virtual-Template/name";
2761         }
2762       }
2763       leaf Vlan {
2764         tailf:info "Iosxr Vlans";
2765         description
2766           "Iosxr Vlans";
2767         tailf:cli-allow-join-with-value {
2768           tailf:cli-display-joined;
2769         }
2770         type uint16;
2771         tailf:non-strict-leafref {
2772           path "/ios:native/interface/Vlan/name";
2773         }
2774       }
2775       leaf VirtualPortGroup {
2776         tailf:info "Virtual Port Group";
2777         description
2778           "Virtual Port Group";
2779         tailf:cli-allow-join-with-value {
2780           tailf:cli-display-joined;
2781         }
2782         type uint16;
2783         tailf:non-strict-leafref {
2784           path "/ios:native/interface/VirtualPortGroup/name";
2785         }
2786       }
2787       leaf vasileft {
2788         tailf:info "vasileft";
2789         description
2790           "vasileft";
2791         tailf:cli-allow-join-with-value {
2792           tailf:cli-display-joined;
2793         }
2794         type uint16;
2795         tailf:non-strict-leafref {
2796           path "/ios:native/interface/vasileft/name";
2797         }
2798       }
2799       leaf vasiright {
2800         tailf:info "vasiright";
2801         description
2802           "vasiright";
2803         tailf:cli-allow-join-with-value {
2804           tailf:cli-display-joined;
2805         }
2806         type uint16;
2807         tailf:non-strict-leafref {
2808           path "/ios:native/interface/vasiright/name";
2809         }
2810       }
2811     }
2812   }
2813
2814   grouping ethernet-grouping {
2815     choice ethernet-choice {
2816       leaf FastEthernet {
2817         tailf:info "FastEthernet IEEE 802.3";
2818         description
2819           "FastEthernet IEEE 802.3";
2820         tailf:cli-allow-join-with-value {
2821           tailf:cli-display-joined;
2822         }
2823         type string;
2824         tailf:non-strict-leafref {
2825           path "/ios:native/interface/FastEthernet/name";
2826         }
2827       }
2828       leaf GigabitEthernet {
2829         tailf:info "GigabitEthernet IEEE 802.3z";
2830         description
2831           "GigabitEthernet IEEE 802.3z";
2832         tailf:cli-allow-join-with-value {
2833           tailf:cli-display-joined;
2834         }
2835         type string;
2836         tailf:non-strict-leafref {
2837           path "/ios:native/interface/GigabitEthernet/name";
2838         }
2839       }
2840       leaf Port-channel {
2841         tailf:info "Ethernet Channel of interfaces";
2842         description
2843           "Ethernet Channel of interfaces";
2844         tailf:cli-allow-join-with-value {
2845           tailf:cli-display-joined;
2846         }
2847         type uint32;
2848         tailf:non-strict-leafref {
2849           path "/ios:native/interface/Port-channel/name";
2850         }
2851       }
2852       leaf TenGigabitEthernet {
2853         tailf:info "Ten Gigabit Ethernet";
2854         description
2855           "Ten Gigabit Ethernet";
2856         tailf:cli-allow-join-with-value {
2857           tailf:cli-display-joined;
2858         }
2859         type string;
2860         tailf:non-strict-leafref {
2861           path "/ios:native/interface/TenGigabitEthernet/name";
2862         }
2863       }
2864     }
2865   }
2866
2867   grouping ip-community-list-standard-grouping {
2868     container deny {
2869       tailf:info "Specify community to reject";
2870       description
2871         "Specify community to reject";
2872       presence "Specify community to reject";
2873       list deny-list {
2874         tailf:cli-drop-node-name;
2875         tailf:cli-suppress-mode;
2876         tailf:cli-delete-when-empty;
2877         key "expr";
2878         leaf expr {
2879           tailf:cli-multi-word-key {
2880             tailf:cli-max-words "10";
2881           }
2882           type string {
2883             tailf:info
2884               "<1-4294967295>  community number
2885                aa:nn           community number
2886                internet        Internet (well-known community)
2887                local-AS        Do not send outside local AS (well-known community)
2888                no-advertise    Do not advertise to any peer (well-known community)
2889                no-export       Do not export to next AS (well-known community)
2890               ";
2891             pattern "((internet)|(local\\-AS)|(no\\-advertise)|(no\\-export)|(\\d+:\\d+)|(\\d+))( (internet)|(local\\-AS)|(no\\-advertise)|(no\\-export)|(\\d+:\\d+)|(\\d+))*";
2892           }
2893         }
2894       }
2895     }
2896     container permit {
2897       tailf:info "Specify community to accept";
2898       description
2899         "Specify community to accept";
2900       presence "Specify community to accept";
2901       list permit-list {
2902         tailf:cli-drop-node-name;
2903         tailf:cli-suppress-mode;
2904         tailf:cli-delete-when-empty;
2905         key "expr";
2906         leaf expr {
2907           tailf:cli-multi-word-key {
2908             tailf:cli-max-words "10";
2909           }
2910           type string {
2911             tailf:info
2912               "<1-4294967295>  community number
2913                aa:nn           community number
2914                internet        Internet (well-known community)
2915                local-AS        Do not send outside local AS (well-known community)
2916                no-advertise    Do not advertise to any peer (well-known community)
2917                no-export       Do not export to next AS (well-known community)
2918               ";
2919             pattern "((internet)|(local-AS)|(no-advertise)|(no-export)|(\\d+:\\d+)|(\\d+))( (internet)|(local-AS)|(no-advertise)|(no-export)|(\\d+:\\d+)|(\\d+))*";
2920           }
2921         }
2922       }
2923     }
2924   }
2925
2926   grouping ip-community-list-expanded-grouping {
2927     container deny {
2928       tailf:info "Specify community to reject";
2929       description
2930         "Specify community to reject";
2931       presence "Specify community to reject";
2932       list deny-list {
2933         tailf:cli-suppress-mode;
2934         tailf:cli-delete-when-empty;
2935         tailf:cli-drop-node-name;
2936         key "expr";
2937         leaf expr {
2938           tailf:info "LINE;;An ordered list as a regular-expression";
2939           description
2940             "LINE;;An ordered list as a regular-expression";
2941           tailf:cli-multi-word-key {
2942             tailf:cli-max-words "10";
2943           }
2944           type string;
2945         }
2946       }
2947     }
2948     container permit {
2949       tailf:info "Specify community to accept";
2950       description
2951         "Specify community to accept";
2952       presence "Specify community to accept";
2953       list permit-list {
2954         tailf:cli-suppress-mode;
2955         tailf:cli-delete-when-empty;
2956         tailf:cli-drop-node-name;
2957         key "expr";
2958         leaf expr {
2959           tailf:info "LINE;;An ordered list as a regular-expression";
2960           description
2961             "LINE;;An ordered list as a regular-expression";
2962           tailf:cli-multi-word-key {
2963             tailf:cli-max-words "10";
2964           }
2965           type string;
2966         }
2967       }
2968     }
2969   }
2970
2971   grouping ip-route-options-grouping {
2972     leaf metric {
2973       tailf:cli-drop-node-name;
2974       tailf:cli-break-sequence-commands;
2975       type uint8 {
2976         tailf:info "<1-255>;;Distance metric for this route";
2977         range "1..255";
2978       }
2979     }
2980     leaf forwarding-router-adr {
2981       tailf:cli-drop-node-name;
2982       type inet:ipv4-address {
2983         tailf:info "A.B.C.D;;Forwarding router's address";
2984       }
2985     }
2986     leaf global {
2987       tailf:info "Next hop address is global";
2988       description
2989         "Next hop address is global";
2990       type empty;
2991     }
2992     leaf name {
2993       tailf:info "Specify name of the next hop";
2994       description
2995         "Specify name of the next hop";
2996       type string {
2997         tailf:info "WORD;;Name of the next hop";
2998       }
2999     }
3000     leaf permanent {
3001       tailf:info "permanent route";
3002       description
3003         "permanent route";
3004       type empty;
3005     }
3006     leaf multicast {
3007       tailf:info "multicast route";
3008       description
3009         "multicast route";
3010       type empty;
3011     }
3012     leaf dhcp {
3013       tailf:info "Default Gateway obtained from DHCP";
3014       description
3015         "Default Gateway obtained from DHCP";
3016       tailf:cli-case-insensitive;
3017       type empty;
3018     }
3019     leaf tag {
3020       tailf:info "Set tag for this route";
3021       description
3022         "Set tag for this route";
3023       type uint32 {
3024         tailf:info "<1-4294967295>;;Tag value";
3025         range "1..4294967295";
3026       }
3027     }
3028     leaf track {
3029       tailf:info "Install route depending on tracked item";
3030       description
3031         "Install route depending on tracked item";
3032       type uint16 {
3033         tailf:info "<1-1000>;;tracked object number";
3034         range "1..1000";
3035       }
3036     }
3037   }
3038
3039   grouping special-next-hop-grouping {
3040     container special-next-hop {
3041       tailf:cli-drop-node-name;
3042       tailf:cli-delete-when-empty;
3043       tailf:cli-compact-syntax;
3044       tailf:cli-reset-container;
3045       leaf special-hop {
3046         tailf:cli-drop-node-name;
3047         type enumeration {
3048           tailf:info "Special next hops: null0";
3049           enum "null0" {
3050             tailf:info "Blackhole";
3051           }
3052         }
3053       }
3054     }
3055   }
3056
3057   grouping ip-route-grouping {
3058     list ip-route-interface-forwarding-list {
3059       tailf:cli-drop-node-name;
3060       tailf:cli-suppress-mode;
3061       tailf:cli-delete-when-empty;
3062       tailf:cli-compact-syntax;
3063       tailf:cli-sequence-commands {
3064         tailf:cli-reset-all-siblings;
3065       }
3066       key "prefix mask";
3067       leaf prefix {
3068         tailf:cli-disallow-value "vrf";
3069         type inet:ipv4-address {
3070           tailf:info "A.B.C.D;;Destination prefix";
3071         }
3072       }
3073       leaf mask {
3074         type inet:ipv4-address {
3075           tailf:info "A.B.C.D;;Destination prefix mask";
3076         }
3077       }
3078       choice interface-forwarding {
3079         case interface {
3080           container interface-name-list {
3081             tailf:cli-drop-node-name;
3082             tailf:cli-diff-dependency "/ios:native/interface";
3083             tailf:cli-case-insensitive;
3084             tailf:cli-sequence-commands;
3085             tailf:cli-compact-syntax;
3086             leaf-list intf {
3087               tailf:cli-drop-node-name;
3088               tailf:cli-list-syntax;
3089               type union {
3090                 type string {
3091                   tailf:info "WORD;;Interface name";
3092                 }
3093                 type enumeration {
3094                   enum "dhcp" {
3095                     tailf:info "Default Gateway obtained from DHCP";
3096                   }
3097                 }
3098               }
3099             }
3100             uses ip-route-options-grouping;
3101           }
3102           container interface-name {
3103             tailf:cli-drop-node-name;
3104             tailf:cli-diff-dependency "/ios:native/interface";
3105             tailf:cli-case-insensitive;
3106             tailf:cli-sequence-commands;
3107             tailf:cli-compact-syntax;
3108             leaf intf {
3109               tailf:cli-drop-node-name;
3110               type union {
3111                 type string {
3112                   tailf:info "WORD;;Interface name";
3113                 }
3114                 type enumeration {
3115                   enum "dhcp" {
3116                     tailf:info "Default Gateway obtained from DHCP";
3117                   }
3118                 }
3119               }
3120             }
3121             uses ip-route-options-grouping;
3122           }
3123         }
3124         case forwarding-address {
3125           container next-hop {
3126             tailf:cli-drop-node-name;
3127             leaf addr {
3128               tailf:cli-drop-node-name;
3129               type union {
3130                 type inet:ipv4-address {
3131                   tailf:info "A.B.C.D;;Forwarding router's address";
3132                 }
3133                 type enumeration {
3134                   enum "multicast" {
3135                     tailf:info "multicast route";
3136                   }
3137                 }
3138               }
3139             }
3140             uses ip-route-options-grouping;
3141           }
3142         }
3143         case special-next-hop {
3144           uses special-next-hop-grouping;
3145         }
3146       }
3147     }
3148   }
3149
3150   grouping ip-pim-grouping {
3151     container autorp {
3152       tailf:info "Configure AutoRP global operations";
3153       description
3154         "Configure AutoRP global operations";
3155       presence "true";
3156       leaf listener {
3157         tailf:info "Allow AutoRP packets across sparse mode interface";
3158         description
3159           "Allow AutoRP packets across sparse mode interface";
3160         type empty;
3161       }
3162     }
3163     leaf register-source {
3164       tailf:info "Source address for PIM Register";
3165       description
3166         "Source address for PIM Register";
3167       tailf:cli-full-command;
3168       type string {
3169         tailf:info "WORD;;Interface name";
3170       }
3171     }
3172     container rp-address {
3173       tailf:info "PIM RP-address (Rendezvous Point)";
3174       description
3175         "PIM RP-address (Rendezvous Point)";
3176       tailf:cli-compact-syntax;
3177       tailf:cli-sequence-commands {
3178         tailf:cli-reset-siblings;
3179       }
3180       leaf address {
3181         tailf:cli-drop-node-name;
3182         type inet:ipv4-address {
3183           tailf:info "A.B.C.D;;IP address of Rendezvous-point for group";
3184         }
3185       }
3186       leaf access-list {
3187         tailf:cli-drop-node-name;
3188         tailf:cli-optional-in-sequence;
3189         type union {
3190           type uint16 {
3191             tailf:info "<1-99>;;Access-list reference for group";
3192             range "1..99";
3193           }
3194           type uint16 {
3195             tailf:info "<1300-1999>;;Access-list reference for group (expanded range)";
3196             range "1300..1999";
3197           }
3198           type string {
3199             tailf:info "WORD;;IP Named Standard Access list";
3200           }
3201         }
3202       }
3203       leaf override {
3204         tailf:info "Overrides dynamically learnt RP mappings";
3205         description
3206           "Overrides dynamically learnt RP mappings";
3207         type empty;
3208       }
3209     }
3210     list spt-threshold {
3211       tailf:info "Source-tree switching threshold";
3212       description
3213         "Source-tree switching threshold";
3214       tailf:cli-suppress-mode;
3215       tailf:cli-compact-syntax;
3216       key "how group-list";
3217       leaf how {
3218         type enumeration {
3219           enum "0" {
3220             tailf:info "Always switch to source-tree";
3221           }
3222           enum "infinity" {
3223             tailf:info "Never switch to source-tree";
3224           }
3225         }
3226       }
3227       leaf group-list {
3228         tailf:info "Group address access-list";
3229         description
3230           "Group address access-list";
3231         tailf:cli-expose-key-name;
3232         type std-acl-type;
3233       }
3234     }
3235     container ssm {
3236       tailf:info "Configure Source Specific Multicast";
3237       description
3238         "Configure Source Specific Multicast";
3239       leaf range {
3240         type union {
3241           type uint16 {
3242             tailf:info "<1-99>;;Access list number";
3243             range "1..99";
3244           }
3245           type string {
3246             tailf:info "WORD;;IP named access list";
3247             pattern "[a-zA-Z].*";
3248           }
3249         }
3250       }
3251     }
3252   }
3253
3254   grouping ip-sla-path-jitter-grouping {
3255     leaf frequency {
3256       tailf:info "Frequency of an operation";
3257       description
3258         "Frequency of an operation";
3259       tailf:cli-full-command;
3260       type uint32 {
3261         tailf:info "<1-604800>;;Frequency in seconds";
3262         range "1..604800";
3263       }
3264     }
3265     leaf-list lsr-path {
3266       tailf:info "Loose Source Routing Path";
3267       description
3268         "Loose Source Routing Path";
3269       tailf:cli-flat-list-syntax;
3270       tailf:cli-full-command;
3271       type union {
3272         type string;
3273         type inet:ipv4-address {
3274           tailf:info "Hostname or A.B.C.D;;Hop IP Address, broadcast disallowed";
3275         }
3276       }
3277     }
3278     leaf owner {
3279       tailf:info "Owner of Entry";
3280       description
3281         "Owner of Entry";
3282       tailf:cli-multi-value;
3283       tailf:cli-full-command;
3284       type string {
3285         tailf:info "LINE;;Owner String";
3286       }
3287     }
3288     leaf request-data-size {
3289       tailf:info "Request data size";
3290       description
3291         "Request data size";
3292       tailf:cli-full-command;
3293       type uint32 {
3294         tailf:info "<0-16384>;;Number of bytes in payload";
3295         range "0..16384";
3296       }
3297     }
3298     leaf tag {
3299       tailf:info "User defined tag";
3300       description
3301         "User defined tag";
3302       tailf:cli-multi-value;
3303       tailf:cli-full-command;
3304       type string {
3305         tailf:info "LINE;;Tag string";
3306       }
3307     }
3308     leaf threshold {
3309       tailf:info "Operation threshold in milliseconds";
3310       description
3311         "Operation threshold in milliseconds";
3312       tailf:cli-full-command;
3313       type uint32 {
3314         tailf:info "<0-60000>;;Millisecond threshold value";
3315         range "0..60000";
3316       }
3317     }
3318     leaf timeout {
3319       tailf:info "Timeout of an operation";
3320       description
3321         "Timeout of an operation";
3322       tailf:cli-full-command;
3323       type uint32 {
3324         tailf:info "<0-604800000>;;Timeout in milliseconds";
3325         range "0..604800000";
3326       }
3327     }
3328     leaf tos {
3329       tailf:info "Type Of Service";
3330       description
3331         "Type Of Service";
3332       tailf:cli-full-command;
3333       type uint8 {
3334         tailf:info "<0-255>;;Type of Service Value";
3335       }
3336     }
3337     leaf verify-data {
3338       tailf:info "Verify data";
3339       description
3340         "Verify data";
3341       tailf:cli-full-command;
3342       type empty;
3343     }
3344     leaf vrf {
3345       tailf:info "Configure IP SLAs for a VPN Routing/Forwarding instance";
3346       description
3347         "Configure IP SLAs for a VPN Routing/Forwarding instance";
3348       tailf:cli-full-command;
3349       type string {
3350         tailf:info "WORD;;VPN Routing/Forwarding instance name";
3351       }
3352     }
3353   }
3354
3355   grouping ip-sla-default-path-jitter-grouping {
3356     leaf frequency {
3357       tailf:info "Frequency of an operation";
3358       description
3359         "Frequency of an operation";
3360       tailf:cli-full-command;
3361       type empty;
3362     }
3363     leaf lsr-path {
3364       tailf:info "Loose Source Routing Path";
3365       description
3366         "Loose Source Routing Path";
3367       tailf:cli-full-command;
3368       type empty;
3369     }
3370     leaf owner {
3371       tailf:info "Owner of Entry";
3372       description
3373         "Owner of Entry";
3374       tailf:cli-full-command;
3375       type empty;
3376     }
3377     leaf request-data-size {
3378       tailf:info "Request data size";
3379       description
3380         "Request data size";
3381       tailf:cli-full-command;
3382       type empty;
3383     }
3384     leaf tag {
3385       tailf:info "User defined tag";
3386       description
3387         "User defined tag";
3388       tailf:cli-full-command;
3389       type empty;
3390     }
3391     leaf threshold {
3392       tailf:info "Operation threshold in milliseconds";
3393       description
3394         "Operation threshold in milliseconds";
3395       tailf:cli-full-command;
3396       type empty;
3397     }
3398     leaf timeout {
3399       tailf:info "Timeout of an operation";
3400       description
3401         "Timeout of an operation";
3402       tailf:cli-full-command;
3403       type empty;
3404     }
3405     leaf tos {
3406       tailf:info "Type Of Service";
3407       description
3408         "Type Of Service";
3409       tailf:cli-full-command;
3410       type empty;
3411     }
3412     leaf verify-data {
3413       tailf:info "Verify data";
3414       description
3415         "Verify data";
3416       tailf:cli-full-command;
3417       type empty;
3418     }
3419     leaf vrf {
3420       tailf:info "Configure IP SLAs for a VPN Routing/Forwarding instance";
3421       description
3422         "Configure IP SLAs for a VPN Routing/Forwarding instance";
3423       tailf:cli-full-command;
3424       type empty;
3425     }
3426   }
3427
3428   grouping ipv6-pim-grouping {
3429     container rp-address {
3430       tailf:info "Configure Sparse-Mode Rendezvous Point";
3431       description
3432         "Configure Sparse-Mode Rendezvous Point";
3433       tailf:cli-compact-syntax;
3434       tailf:cli-sequence-commands {
3435         tailf:cli-reset-siblings;
3436       }
3437       leaf address {
3438         tailf:cli-drop-node-name;
3439         type union {
3440           type string;
3441           type inet:ipv6-address {
3442             tailf:info "Hostname or X:X:X:X::X;;IP name or address of Rendezvous Point";
3443           }
3444         }
3445       }
3446       leaf access-list {
3447         tailf:cli-drop-node-name;
3448         tailf:cli-break-sequence-commands;
3449         type union {
3450           type string {
3451             tailf:info "WORD;;Named access list of groups that should map to given RP";
3452           }
3453         }
3454       }
3455       leaf bidir {
3456         tailf:info "Specify keyword bidir to configure a bidir RP";
3457         description
3458           "Specify keyword bidir to configure a bidir RP";
3459         tailf:cli-full-command;
3460         type empty;
3461       }
3462     }
3463   }
3464
3465   grouping ipv6-route-options-grouping {
3466     leaf distance {
3467       tailf:cli-drop-node-name;
3468       type uint8 {
3469         tailf:info "<1-254>;;Administrative distance";
3470       }
3471     }
3472     leaf next-hop {
3473       tailf:cli-drop-node-name;
3474       description
3475         "IPv6 address of next-hop";
3476       type inet:ipv6-address {
3477         tailf:info "X:X:X:X::X;;IPv6 address of next-hop";
3478       }
3479     }
3480     choice type-choice {
3481       leaf multicast {
3482         tailf:info "Route only usable by multicast";
3483         description
3484           "Route only usable by multicast";
3485         tailf:cli-full-command;
3486         type empty;
3487       }
3488       leaf unicast {
3489         tailf:info "Route only usable by unicast";
3490         description
3491           "Route only usable by unicast";
3492         type empty;
3493       }
3494     }
3495     leaf tag {
3496       tailf:info "Tag value";
3497       description
3498         "Tag value";
3499       tailf:cli-full-command;
3500       type uint32 {
3501         tailf:info "<0-4294967295>  Tag value";
3502       }
3503     }
3504     leaf track {
3505       tailf:info "Tracked";
3506       description
3507         "Tracked";
3508       type uint32 {
3509         tailf:info "<0-4294967295>;;Tracked object";
3510       }
3511     }
3512   }
3513
3514   grouping ipv6-route-grouping {
3515     list ipv6-route-list {
3516       tailf:cli-drop-node-name;
3517       tailf:cli-suppress-mode;
3518       tailf:cli-delete-when-empty;
3519       tailf:cli-compact-syntax;
3520       tailf:cli-reset-container;
3521       tailf:cli-incomplete-command;
3522       key "prefix";
3523       leaf prefix {
3524         type ipv6-prefix {
3525           tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix x:x::y/<z>";
3526         }
3527       }
3528       choice ip-route-options {
3529         case interface {
3530           container interface-name {
3531             tailf:cli-drop-node-name;
3532             tailf:cli-delete-when-empty;
3533             tailf:cli-compact-syntax;
3534             tailf:cli-reset-container;
3535             leaf name {
3536               tailf:cli-drop-node-name;
3537               type string {
3538                 tailf:info "Interface Name and number";
3539               }
3540             }
3541             uses ipv6-route-options-grouping;
3542           }
3543         }
3544         case next-hop {
3545           container ipv6-destination-list {
3546             tailf:cli-drop-node-name;
3547             tailf:cli-delete-when-empty;
3548             tailf:cli-compact-syntax;
3549             tailf:cli-reset-container;
3550             leaf destination {
3551               tailf:cli-drop-node-name;
3552               type inet:ipv6-address {
3553                 tailf:info "X:X:X:X::X;;IPv6 address of next-hop";
3554               }
3555             }
3556             uses ipv6-route-options-grouping;
3557           }
3558         }
3559         case special-next-hop {
3560           uses special-next-hop-grouping;
3561         }
3562       }
3563     }
3564   }
3565
3566   grouping random-detect-grouping {
3567     leaf min-threshold {
3568       tailf:cli-drop-node-name;
3569       tailf:cli-incomplete-command;
3570       type uint16 {
3571         range "1..4096";
3572         tailf:info "<1-4096>;;minimum threshold (number of packets)";
3573       }
3574     }
3575     leaf max-threshold {
3576       tailf:cli-drop-node-name;
3577       tailf:cli-incomplete-command;
3578       type uint16 {
3579         range "1..4096";
3580         tailf:info "<1-4096>;;maximum threshold (number of packets)";
3581       }
3582     }
3583     leaf denominator {
3584       tailf:cli-drop-node-name;
3585       type uint32 {
3586         range "1..65535";
3587         tailf:info "<1-65535>;;mark probability denominator";
3588       }
3589     }
3590   }
3591
3592   grouping class-map-match-grouping {
3593     container application {
3594       tailf:info "Application to match";
3595       description
3596         "Application to match";
3597       container application-group {
3598         tailf:info "Application Group to match";
3599         description
3600           "Application Group to match";
3601         leaf telepresence-group {
3602           tailf:info "Telepresence Group";
3603           description
3604             "Telepresence Group";
3605           tailf:cli-full-command;
3606           type empty;
3607         }
3608         leaf vmware-group {
3609           tailf:info "VMWARE Group";
3610           description
3611             "VMWARE Group";
3612           tailf:cli-full-command;
3613           type empty;
3614         }
3615         leaf webex-group {
3616           tailf:info "WebEx Group";
3617           description
3618             "WebEx Group";
3619           tailf:cli-full-command;
3620           type empty;
3621         }
3622       }
3623       container attribute {
3624         tailf:info "Application attribute to match";
3625         description
3626           "Application attribute to match";
3627         leaf media-type {
3628           tailf:info "Media type attribute to match";
3629           description
3630             "Media type attribute to match";
3631           type enumeration {
3632             enum "audio" {
3633               tailf:info "Audio";
3634             }
3635             enum "audio-video" {
3636               tailf:info "Audio Video";
3637             }
3638             enum "control" {
3639               tailf:info "Control";
3640             }
3641             enum "data" {
3642               tailf:info "Data";
3643             }
3644             enum "video" {
3645               tailf:info "Video";
3646             }
3647           }
3648         }
3649       }
3650     }
3651     container access-group {
3652       tailf:info "Access group";
3653       description
3654         "Access group";
3655       leaf index {
3656         tailf:cli-drop-node-name;
3657         type uint32 {
3658           range "1..2699" {
3659             tailf:info "<1-2699>;;Access list index";
3660           }
3661         }
3662       }
3663       leaf-list name {
3664         tailf:info "Named Access List";
3665         description
3666           "Named Access List";
3667         tailf:cli-list-syntax;
3668         type string {
3669           tailf:info "WORD;;Access List name";
3670         }
3671       }
3672     }
3673     leaf any {
3674       tailf:info "Any packets";
3675       description
3676         "Any packets";
3677       type empty;
3678     }
3679     leaf-list class-map {
3680       tailf:info "Class map";
3681       description
3682         "Class map";
3683       tailf:cli-list-syntax;
3684       type leafref {
3685         path "/ios:native/class-map/name";
3686       }
3687     }
3688     leaf-list cos {
3689       tailf:info "IEEE 802.1Q/ISL class of service/user priority values";
3690       description
3691         "IEEE 802.1Q/ISL class of service/user priority values";
3692       tailf:cli-flat-list-syntax;
3693       type uint8 {
3694         range "0..7";
3695         tailf:info "<0-7>;;Enter up to 4 class-of-service values separated by white-spaces";
3696       }
3697     }
3698     container destination-address {
3699       tailf:info "Destination address";
3700       description
3701         "Destination address";
3702       leaf-list mac {
3703         tailf:info "MAC address";
3704         description
3705           "MAC address";
3706         tailf:cli-list-syntax;
3707         type yang:mac-address {
3708           tailf:info "H.H.H;;MAC address";
3709         }
3710       }
3711     }
3712     leaf-list discard-class {
3713       tailf:info "Discard behavior identifier";
3714       description
3715         "Discard behavior identifier";
3716       tailf:cli-list-syntax;
3717       type uint8 {
3718         range "0..7";
3719         tailf:info "<0-7>;;Discard Class value";
3720       }
3721     }
3722     leaf-list dscp {
3723       tailf:info "Match DSCP in IP(v4) and IPv6 packets";
3724       description
3725         "Match DSCP in IP(v4) and IPv6 packets";
3726       tailf:cli-flat-list-syntax;
3727       tailf:cli-list-syntax;
3728       type dscp-type;
3729     }
3730     leaf fr-de {
3731       tailf:info "Match on Frame-relay DE bit";
3732       description
3733         "Match on Frame-relay DE bit";
3734       type empty;
3735     }
3736     leaf-list fr-dlci {
3737       tailf:info "Match on fr-dlci";
3738       description
3739         "Match on fr-dlci";
3740       tailf:cli-list-syntax;
3741       type uint16 {
3742         range "16..1007";
3743         tailf:info "<16-1007>;;frame-relay dlci number";
3744       }
3745     }
3746     leaf-list input-interface {
3747       tailf:info "Select an input interface to match";
3748       description
3749         "Select an input interface to match";
3750       tailf:cli-list-syntax;
3751       type string;
3752     }
3753     container ip {
3754       tailf:info "IP specific values";
3755       description
3756         "IP specific values";
3757       leaf-list dscp {
3758         tailf:info "Match IP DSCP (DiffServ CodePoints)";
3759         description
3760           "Match IP DSCP (DiffServ CodePoints)";
3761         tailf:cli-flat-list-syntax;
3762         tailf:cli-list-syntax;
3763         type dscp-type;
3764       }
3765       leaf-list precedence {
3766         tailf:info "Match IP precedence";
3767         description
3768           "Match IP precedence";
3769         tailf:cli-flat-list-syntax;
3770         type precedence-type;
3771       }
3772       list rtp {
3773         tailf:info "Match RTP port nos";
3774         description
3775           "Match RTP port nos";
3776         key "port1 port2";
3777         leaf port1 {
3778           type uint16 {
3779             range "2000..65535";
3780             tailf:info "<2000-65535>;;Lower bound of UDP destination port";
3781           }
3782         }
3783         leaf port2 {
3784           type uint16 {
3785             range "0..16383";
3786             tailf:info "<0-16383>;;Range of UDP ports";
3787           }
3788         }
3789       }
3790     }
3791     leaf non-client-nrt {
3792       tailf:cli-full-command;
3793       type empty;
3794     }
3795     container mpls {
3796       tailf:info "Multi Protocol Label Switching specific values";
3797       description
3798         "Multi Protocol Label Switching specific values";
3799       container experimental {
3800         tailf:info "Match MPLS experimental";
3801         description
3802           "Match MPLS experimental";
3803         leaf-list topmost {
3804           tailf:info "Match MPLS experimental value on topmost label";
3805           description
3806             "Match MPLS experimental value on topmost label";
3807           tailf:cli-flat-list-syntax;
3808           type uint8 {
3809             range "0..7";
3810             tailf:info "<0-7>;;Enter up to 8 experimental values separated by white-spaces";
3811           }
3812         }
3813       }
3814     }
3815     container packet {
3816       tailf:info "Layer 3 Packet length";
3817       description
3818         "Layer 3 Packet length";
3819       container length {
3820         tailf:info "Layer 3 Packet length";
3821         description
3822           "Layer 3 Packet length";
3823         leaf max {
3824           tailf:info "Maximum length of packet";
3825           description
3826             "Maximum length of packet";
3827           type uint16 {
3828             range "1..2000";
3829             tailf:info "<1-2000>;;Packet length in bytes";
3830           }
3831         }
3832         leaf min {
3833           tailf:info "Minimum length of packet";
3834           description
3835             "Minimum length of packet";
3836           type uint16 {
3837             range "1..2000";
3838             tailf:info "<1-2000>;;Packet length in bytes";
3839           }
3840         }
3841       }
3842     }
3843     leaf-list precedence {
3844       tailf:info "Match Precedence in IP(v4) and IPv6 packets";
3845       description
3846         "Match Precedence in IP(v4) and IPv6 packets";
3847       tailf:cli-flat-list-syntax;
3848       type precedence-type;
3849     }
3850     container protocol {
3851       tailf:info "Protocol";
3852       description
3853         "Protocol";
3854       leaf protocols {
3855         tailf:cli-drop-node-name;
3856         type enumeration {
3857           enum "x802-11-iapp" {
3858             tailf:info "IEEE 802.11 WLANs WG IAPP";
3859           }
3860           enum "ace-svr" {
3861             tailf:info "ACE Server/Propagation";
3862           }
3863           enum "aol" {
3864             tailf:info "America-Online Instant Messenger";
3865           }
3866           enum "appleqtc" {
3867             tailf:info "Apple QuickTime";
3868           }
3869           enum "biff" {
3870             tailf:info "Bliff mail notification";
3871           }
3872           enum "bittorrent" {
3873             tailf:info "bittorrent";
3874           }
3875           enum "bootpc" {
3876             tailf:info "Bootstrap Protocol Client";
3877           }
3878           enum "bootps" {
3879             tailf:info "Bootstrap Protocol Server";
3880           }
3881           enum "cddbp" {
3882             tailf:info "CD Database Protocol";
3883           }
3884           enum "cifs" {
3885             tailf:info "CIFS";
3886           }
3887           enum "cisco-fna" {
3888             tailf:info "Cisco FNATIVE";
3889           }
3890           enum "cisco-net-mgmt" {
3891             tailf:info "cisco-net-mgmt";
3892           }
3893           enum "cisco-svcs" {
3894             tailf:info "cisco license/perf/GDP/X.25/ident svcs";
3895           }
3896           enum "cisco-sys" {
3897             tailf:info "Cisco SYSMAINT";
3898           }
3899           enum "cisco-tdp" {
3900             tailf:info "Cisco TDP";
3901           }
3902           enum "cisco-tna" {
3903             tailf:info "Cisco TNATIVE";
3904           }
3905           enum "citriximaclient" {
3906             tailf:info "Citrix IMA Client";
3907           }
3908           enum "clp" {
3909             tailf:info "Cisco Line Protocol";
3910           }
3911           enum "creativepartnr" {
3912             tailf:info "Creative Partnr";
3913           }
3914           enum "creativeserver" {
3915             tailf:info "Creative Server";
3916           }
3917           enum "daytime" {
3918             tailf:info "Daytime (RFC 867)";
3919           }
3920           enum "dbase" {
3921             tailf:info "dBASE Unix";
3922           }
3923           enum "dbcontrol_agent" {
3924             tailf:info "Oracle dbControl Agent po";
3925           }
3926           enum "ddns-v3" {
3927             tailf:info "Dynamic DNS Version 3";
3928           }
3929           enum "dhcp-failover" {
3930             tailf:info "DHCP Failover";
3931           }
3932           enum "directconnect" {
3933             tailf:info "Direct Connect Version 2.0";
3934           }
3935           enum "discard" {
3936             tailf:info "Discard port";
3937           }
3938           enum "dnsix" {
3939             tailf:info "DNSIX Securit Attribute Token Map";
3940           }
3941           enum "echo" {
3942             tailf:info "Echo port";
3943           }
3944           enum "entrust-svc-hdlr" {
3945             tailf:info "Entrust KM/Admin Service Handler";
3946           }
3947           enum "entrust-svcs" {
3948             tailf:info "Entrust sps/aaas/aams";
3949           }
3950           enum "exec" {
3951             tailf:info "Remote Process Execution";
3952           }
3953           enum "fcip-port" {
3954             tailf:info "FCIP";
3955           }
3956           enum "ftps" {
3957             tailf:info "FTP over TLS/SSL";
3958           }
3959           enum "gdoi" {
3960             tailf:info "GDOI";
3961           }
3962           enum "giop" {
3963             tailf:info "Oracle GIOP/SSL";
3964           }
3965           enum "gtpv0" {
3966             tailf:info "GPRS Tunneling Protocol Version 0";
3967           }
3968           enum "gtpv1" {
3969             tailf:info "GPRS Tunneling Protocol Version 1";
3970           }
3971           enum "h225ras" {
3972             tailf:info "H225 RAS over Unicast";
3973           }
3974           enum "h323callsigalt" {
3975             tailf:info "h323 Call Signal Alternate";
3976           }
3977           enum "hp-alarm-mgr" {
3978             tailf:info "HP Performance data alarm manager";
3979           }
3980           enum "hp-collector" {
3981             tailf:info "HP Performance data collector";
3982           }
3983           enum "hp-managed-node" {
3984             tailf:info "HP Performance data managed node";
3985           }
3986           enum "hsrp" {
3987             tailf:info "Hot Standby Router Protocol";
3988           }
3989           enum "https" {
3990             tailf:info "Secure Hypertext Transfer Protocol";
3991           }
3992           enum "ica" {
3993             tailf:info "ica (Citrix)";
3994           }
3995           enum "icabrowser" {
3996             tailf:info "icabrowser (Citrix)";
3997           }
3998           enum "ident" {
3999             tailf:info "Authentication Service";
4000           }
4001           enum "igmpv3lite" {
4002             tailf:info "IGMP over UDP for SSM";
4003           }
4004           enum "imap3" {
4005             tailf:info "Interactive Mail Access Protocol 3";
4006           }
4007           enum "imaps" {
4008             tailf:info "IMAP over TLS/SSL";
4009           }
4010           enum "ipass" {
4011             tailf:info "IPASS";
4012           }
4013           enum "ipsec-msft" {
4014             tailf:info "Microsoft IPsec NAT-T";
4015           }
4016           enum "irc-serv" {
4017             tailf:info "IRC-SERV";
4018           }
4019           enum "ircs" {
4020             tailf:info "IRC over TLS/SSL";
4021           }
4022           enum "ircu" {
4023             tailf:info "IRCU";
4024           }
4025           enum "isakmp" {
4026             tailf:info "ISAKMP";
4027           }
4028           enum "iscsi" {
4029             tailf:info "iSCSI";
4030           }
4031           enum "iscsi-target" {
4032             tailf:info "iSCSI port";
4033           }
4034           enum "kermit" {
4035             tailf:info "kermit";
4036           }
4037           enum "ldap-admin" {
4038             tailf:info "LDAP admin server port";
4039           }
4040           enum "ldaps" {
4041             tailf:info "LDAP over TLS/SSL";
4042           }
4043           enum "login" {
4044             tailf:info "Remote login";
4045           }
4046           enum "lotusmtap" {
4047             tailf:info "Lotus Mail Tracking Agent Protocol";
4048           }
4049           enum "lotusnote" {
4050             tailf:info "Lotus Note";
4051           }
4052           enum "mapi" {
4053             tailf:info "MAPI";
4054           }
4055           enum "ms-ad-rep" {
4056             tailf:info "MS-AD-REP";
4057           }
4058           enum "ms-exch-nspi" {
4059             tailf:info "MS-EXCH-NSPI";
4060           }
4061           enum "ms-frs" {
4062             tailf:info "MS-FRS";
4063           }
4064           enum "ms-frsapi" {
4065             tailf:info "MS-FRSAPI";
4066           }
4067           enum "ms-rfr" {
4068             tailf:info "MS-RFR";
4069           }
4070           enum "msn-messenger" {
4071             tailf:info "MSN-MESSENGER";
4072           }
4073           enum "netlogon" {
4074             tailf:info "NETLOGON";
4075           }
4076           enum "microsoft-ds" {
4077             tailf:info "Microsoft-DS";
4078           }
4079           enum "ms-cluster-net" {
4080             tailf:info "MS Cluster Net";
4081           }
4082           enum "ms-dotnetster" {
4083             tailf:info "Microsoft .NETster Port";
4084           }
4085           enum "ms-sna" {
4086             tailf:info "Microsoft SNA Server/Base";
4087           }
4088           enum "ms-sql" {
4089             tailf:info "Microsoft SQL";
4090           }
4091           enum "ms-sql-m" {
4092             tailf:info "Microsoft SQL Monitor";
4093           }
4094           enum "msexch-routing" {
4095             tailf:info "Microsoft Exchange Routing";
4096           }
4097           enum "msnmsgr" {
4098             tailf:info "MSN Instant Messenger";
4099           }
4100           enum "msrpc" {
4101             tailf:info "Microsoft Remote Procedure Call";
4102           }
4103           enum "mysql" {
4104             tailf:info "MySQL";
4105           }
4106           enum "n2h2server" {
4107             tailf:info "N2H2 Filter Service Port";
4108           }
4109           enum "ncp" {
4110             tailf:info "NCP (Novell)";
4111           }
4112           enum "net8-cman" {
4113             tailf:info "Oracle Net8 Cman/Admin";
4114           }
4115           enum "netbios-dgm" {
4116             tailf:info "NETBIOS Datagram Service";
4117           }
4118           enum "netbios-ns" {
4119             tailf:info "NETBIOS Name Service";
4120           }
4121           enum "netbios-ssn" {
4122             tailf:info "NETBIOS Session Service";
4123           }
4124           enum "netstat" {
4125             tailf:info "Variant of systat";
4126           }
4127           enum "oem-agent" {
4128             tailf:info "OEM Agent (Oracle)";
4129           }
4130           enum "oracle" {
4131             tailf:info "Oracle";
4132           }
4133           enum "oracle-em-vp" {
4134             tailf:info "Oracle EM/VP";
4135           }
4136           enum "oraclenames" {
4137             tailf:info "Oracle Names";
4138           }
4139           enum "orasrv" {
4140             tailf:info "Oracle SQL*Net v1/v2";
4141           }
4142           enum "pcanywheredata" {
4143             tailf:info "pcANYWHEREdata";
4144           }
4145           enum "pcanywherestat" {
4146             tailf:info "pcANYWHEREstat";
4147           }
4148           enum "pop3s" {
4149             tailf:info "POP3 over TLS/SSL";
4150           }
4151           enum "pwdgen" {
4152             tailf:info "Password  Generator Protocol";
4153           }
4154           enum "qmtp" {
4155             tailf:info "Quick Mail Transfer Protocol";
4156           }
4157           enum "r-winsock" {
4158             tailf:info "remote-winsock";
4159           }
4160           enum "radius" {
4161             tailf:info "RADIUS & Accounting";
4162           }
4163           enum "rdb-dbs-disp" {
4164             tailf:info "Oracle RDB";
4165           }
4166           enum "realmedia" {
4167             tailf:info "RealNetwork's Realmedia Protocol";
4168           }
4169           enum "realsecure" {
4170             tailf:info "ISS Real Secure Console Service Port";
4171           }
4172           enum "router" {
4173             tailf:info "Local Routing Process";
4174           }
4175           enum "rsvp-encap" {
4176             tailf:info "RSVP ENCAPSULATION-1/2";
4177           }
4178           enum "rsvp_tunnel" {
4179             tailf:info "RSVP Tunnel";
4180           }
4181           enum "rtc-pm-port" {
4182             tailf:info "Oracle RTC-PM port";
4183           }
4184           enum "rtelnet" {
4185             tailf:info "Remote Telnet Service";
4186           }
4187           enum "send" {
4188             tailf:info "SEND";
4189           }
4190           enum "shell" {
4191             tailf:info "Remote command";
4192           }
4193           enum "sip-tls" {
4194             tailf:info "SIP-TLS";
4195           }
4196           enum "sms" {
4197             tailf:info "SMS RCINFO/XFER/CHAT";
4198           }
4199           enum "snmptrap" {
4200             tailf:info "SNMP Trap";
4201           }
4202           enum "sql-net" {
4203             tailf:info "SQL-NET";
4204           }
4205           enum "sqlserv" {
4206             tailf:info "SQL Services";
4207           }
4208           enum "sqlsrv" {
4209             tailf:info "SQL Service";
4210           }
4211           enum "sshell" {
4212             tailf:info "SSLshell";
4213           }
4214           enum "ssp" {
4215             tailf:info "State Sync Protocol";
4216           }
4217           enum "syslog-conn" {
4218             tailf:info "Reliable Syslog Service";
4219           }
4220           enum "tacacs" {
4221             tailf:info "Login Host Protocol (TACACS)";
4222           }
4223           enum "tacacs-ds" {
4224             tailf:info "TACACS-Database Service";
4225           }
4226           enum "tarantella" {
4227             tailf:info "Tarantella";
4228           }
4229           enum "tcp" {
4230             tailf:info "TCP";
4231           }
4232           enum "telnets" {
4233             tailf:info "Telnet over TLS/SSL";
4234           }
4235           enum "time" {
4236             tailf:info "Time";
4237           }
4238           enum "timed" {
4239             tailf:info "Time server";
4240           }
4241           enum "tr-rsrb" {
4242             tailf:info "cisco RSRB";
4243           }
4244           enum "ttc" {
4245             tailf:info "Oracle TTC/SSL";
4246           }
4247           enum "udp" {
4248             tailf:info "UDP";
4249           }
4250           enum "uucp" {
4251             tailf:info "UUCPD/UUCP-RLOGIN";
4252           }
4253           enum "vqp" {
4254             tailf:info "VQP";
4255           }
4256           enum "webster" {
4257             tailf:info "Network Disctionary";
4258           }
4259           enum "who" {
4260             tailf:info "Who's service";
4261           }
4262           enum "wins" {
4263             tailf:info "Microsoft WINS";
4264           }
4265           enum "x11" {
4266             tailf:info "X Window System";
4267           }
4268           enum "xdmcp" {
4269             tailf:info "XDM Control Protocol";
4270           }
4271           enum "ymsgr" {
4272             tailf:info "Yahoo! Instant Messenger";
4273           }
4274           enum "aarp" {
4275             tailf:info "AppleTalk ARP";
4276           }
4277           enum "appletalk" {
4278             tailf:info "AppleTalk";
4279           }
4280           enum "arp" {
4281             tailf:info "IP ARP";
4282           }
4283           enum "bgp" {
4284             tailf:info "Border Gateway Protocol";
4285           }
4286           enum "bridge" {
4287             tailf:info "Bridging";
4288           }
4289           enum "bstun" {
4290             tailf:info "Block Serial Tunnel";
4291           }
4292           enum "cdp" {
4293             tailf:info "Cisco Discovery Protocol";
4294           }
4295         }
4296       }
4297       container citrix {
4298         tailf:info "Citrix Systems ICA protocol";
4299         description
4300           "Citrix Systems ICA protocol";
4301         presence "enable citrix system protocol matching";
4302         leaf ica-tag {
4303           tailf:info "Citrix ICA tag 0-high 1-medium 2-low 3-background";
4304           description
4305             "Citrix ICA tag 0-high 1-medium 2-low 3-background";
4306           type string {
4307             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4308           }
4309         }
4310       }
4311       leaf clns {
4312         tailf:info "ISO CLNS";
4313         description
4314           "ISO CLNS";
4315         type empty;
4316       }
4317       leaf clns_es {
4318         tailf:info "ISO CLNS End System";
4319         description
4320           "ISO CLNS End System";
4321         type empty;
4322       }
4323       leaf clns_is {
4324         tailf:info "ISO CLNS Intermediate System";
4325         description
4326           "ISO CLNS Intermediate System";
4327         type empty;
4328       }
4329       leaf cmns {
4330         tailf:info "ISO CMNS";
4331         description
4332           "ISO CMNS";
4333         type empty;
4334       }
4335       leaf compressedtcp {
4336         tailf:info "Compressed TCP (VJ";
4337         description
4338           "Compressed TCP (VJ";
4339         type empty;
4340       }
4341       leaf cuseeme {
4342         tailf:info "CU-SeeMe desktop video conference";
4343         description
4344           "CU-SeeMe desktop video conference";
4345         type empty;
4346       }
4347       leaf decnet {
4348         tailf:info "DECnet";
4349         description
4350           "DECnet";
4351         type empty;
4352       }
4353       leaf decnet_node {
4354         tailf:info "DECnet Node";
4355         description
4356           "DECnet Node";
4357         type empty;
4358       }
4359       leaf decnet_router-l1 {
4360         tailf:info "DECnet Router L1";
4361         description
4362           "DECnet Router L1";
4363         type empty;
4364       }
4365       leaf decnet_router-l2 {
4366         tailf:info "DECnet Router L2";
4367         description
4368           "DECnet Router L2";
4369         type empty;
4370       }
4371       leaf dhcp {
4372         tailf:info "Dynamic Host Configuration";
4373         description
4374           "Dynamic Host Configuration";
4375         type empty;
4376       }
4377       leaf dlsw {
4378         type empty;
4379         tailf:info "Data Link Switching (Direct encapsulation only";
4380       }
4381       leaf dns {
4382         type empty;
4383         tailf:info "Domain Name Server lookup";
4384       }
4385       leaf edonkey {
4386         type empty;
4387         tailf:info "eDonkey";
4388       }
4389       leaf egp {
4390         type empty;
4391         tailf:info "Exterior Gateway Protocol";
4392       }
4393       leaf eigrp {
4394         type empty;
4395         tailf:info "Enhanced Interior Gateway Routing Protocol";
4396       }
4397       leaf exchange {
4398         type empty;
4399         tailf:info "MS-RPC for Exchange";
4400       }
4401       container fasttrack {
4402         tailf:info "FastTrack Traffic - KaZaA, Morpheus, Grokster";
4403         description
4404           "FastTrack Traffic - KaZaA, Morpheus, Grokster";
4405         presence "enable fasttrack matching";
4406         leaf file-transfer {
4407           tailf:info "File transfer stream";
4408           description
4409             "File transfer stream";
4410           type string {
4411             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4412           }
4413         }
4414       }
4415       leaf finger {
4416         type empty;
4417         tailf:info "Finger";
4418       }
4419       leaf ftp {
4420         type empty;
4421         tailf:info "File Transfer Protocol";
4422       }
4423       container gnutella {
4424         tailf:info "Gnutella Version2 Traffic - BearShare, Shareeza, Morpheus";
4425         description
4426           "Gnutella Version2 Traffic - BearShare, Shareeza, Morpheus";
4427         presence "enable gnutella matching";
4428         leaf file-transfer {
4429           tailf:info "File transfer stream";
4430           description
4431             "File transfer stream";
4432           type string {
4433             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4434           }
4435         }
4436       }
4437       leaf gopher {
4438         type empty;
4439         tailf:info "Gopher";
4440       }
4441       leaf gre {
4442         type empty;
4443         tailf:info "Generic Routing Encapsulation";
4444       }
4445       leaf h323 {
4446         type empty;
4447         tailf:info "H323 Protocol";
4448       }
4449       container http {
4450         tailf:info "World Wide Web traffic";
4451         description
4452           "World Wide Web traffic";
4453         presence "enable http traffic matching";
4454         leaf c-header-field {
4455           tailf:info "Client general Header Field";
4456           description
4457             "Client general Header Field";
4458           type string {
4459             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4460           }
4461         }
4462         leaf host {
4463           tailf:info "Server Host Name";
4464           description
4465             "Server Host Name";
4466           type string {
4467             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4468           }
4469         }
4470         leaf mime {
4471           tailf:info "Match MIME Type";
4472           description
4473             "Match MIME Type";
4474           type string {
4475             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4476           }
4477         }
4478         leaf s-header-field {
4479           tailf:info "Server general Header Field";
4480           description
4481             "Server general Header Field";
4482           type string {
4483             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4484           }
4485         }
4486         leaf url {
4487           tailf:info "Match URL String";
4488           description
4489             "Match URL String";
4490           type string {
4491             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4492           }
4493         }
4494       }
4495       leaf icmp {
4496         tailf:info "Internet Control Message";
4497         description
4498           "Internet Control Message";
4499         type empty;
4500       }
4501       leaf imap {
4502         tailf:info "Internet Message Access Protocol";
4503         description
4504           "Internet Message Access Protocol";
4505         type empty;
4506       }
4507       leaf ip {
4508         tailf:info "IP";
4509         description
4510           "IP";
4511         type empty;
4512       }
4513       leaf ipinip {
4514         tailf:info "IP in IP (encapsulation";
4515         description
4516           "IP in IP (encapsulation";
4517         type empty;
4518       }
4519       leaf ipsec {
4520         tailf:info "IP Security Protocol (ESP/AH";
4521         description
4522           "IP Security Protocol (ESP/AH";
4523         type empty;
4524       }
4525       leaf ipv6 {
4526         tailf:info "IPV6";
4527         description
4528           "IPV6";
4529         type empty;
4530       }
4531       leaf ipx {
4532         tailf:info "Novell IPX";
4533         description
4534           "Novell IPX";
4535         type empty;
4536       }
4537       leaf irc {
4538         type empty;
4539         tailf:info "Internet Relay Chat";
4540         description
4541           "Internet Relay Chat";
4542       }
4543       container kazaa2 {
4544         tailf:info "Kazaa Version 2";
4545         description
4546           "Kazaa Version 2";
4547         presence "enable kazaa version 2 matching";
4548         leaf file-transfer {
4549           tailf:info "File transfer stream";
4550           description
4551             "File transfer stream";
4552           type string {
4553             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4554           }
4555         }
4556       }
4557       leaf kerberos {
4558         tailf:info "Kerberos";
4559         description
4560           "Kerberos";
4561         type empty;
4562       }
4563       leaf l2tp {
4564         tailf:info "L2F/L2TP tunnel";
4565         description
4566           "L2F/L2TP tunnel";
4567         type empty;
4568       }
4569       leaf ldap {
4570         tailf:info "Lightweight Directory Access Protocol";
4571         description
4572           "Lightweight Directory Access Protocol";
4573         type empty;
4574       }
4575       leaf llc2 {
4576         tailf:info "llc2";
4577         description
4578           "llc2";
4579         type empty;
4580       }
4581       leaf mgcp {
4582         tailf:info "Media Gateway Control Protocol";
4583         description
4584           "Media Gateway Control Protocol";
4585         type empty;
4586       }
4587       container napster {
4588         tailf:info "Napster Traffic";
4589         description
4590           "Napster Traffic";
4591         presence "enable napster matching";
4592         leaf non-std {
4593           tailf:info "Non-standard port advertizements";
4594           description
4595             "Non-standard port advertizements";
4596           type empty;
4597         }
4598       }
4599       leaf netbios {
4600         tailf:info "NetBIOS";
4601         description
4602           "NetBIOS";
4603         type empty;
4604       }
4605       leaf netshow {
4606         tailf:info "Microsoft Netshow";
4607         description
4608           "Microsoft Netshow";
4609         type empty;
4610       }
4611       leaf nfs {
4612         tailf:info "Network File System";
4613         description
4614           "Network File System";
4615         type empty;
4616       }
4617       leaf nntp {
4618         tailf:info "Network News Transfer Protocol";
4619         description
4620           "Network News Transfer Protocol";
4621         type empty;
4622       }
4623       leaf notes {
4624         tailf:info "Lotus Notes(R";
4625         description
4626           "Lotus Notes(R";
4627         type empty;
4628       }
4629       leaf novadigm {
4630         tailf:info "Novadigm EDM";
4631         description
4632           "Novadigm EDM";
4633         type empty;
4634       }
4635       leaf ntp {
4636         tailf:info "Network Time Protocol";
4637         description
4638           "Network Time Protocol";
4639         type empty;
4640       }
4641       leaf ospf {
4642         tailf:info "Open Shortest Path First";
4643         description
4644           "Open Shortest Path First";
4645         type empty;
4646       }
4647       leaf pad {
4648         tailf:info "PAD links";
4649         description
4650           "PAD links";
4651         type empty;
4652       }
4653       leaf pcanywhere {
4654         tailf:info "Symantec pcANYWHERE";
4655         description
4656           "Symantec pcANYWHERE";
4657         type empty;
4658       }
4659       leaf pop3 {
4660         tailf:info "Post Office Protocol";
4661         description
4662           "Post Office Protocol";
4663         type empty;
4664       }
4665       leaf pppoe {
4666         tailf:info "PPP over Ethernet";
4667         description
4668           "PPP over Ethernet";
4669         type empty;
4670       }
4671       leaf pptp {
4672         tailf:info "Point-to-Point Tunneling Protocol";
4673         description
4674           "Point-to-Point Tunneling Protocol";
4675         type empty;
4676       }
4677       leaf printer {
4678         tailf:info "print spooler/lpd";
4679         description
4680           "print spooler/lpd";
4681         type empty;
4682       }
4683       leaf qllc {
4684         tailf:info "qllc protocol";
4685         description
4686           "qllc protocol";
4687         type empty;
4688       }
4689       leaf rcmd {
4690         tailf:info "BSD r-commands (rsh, rlogin, rexec";
4691         description
4692           "BSD r-commands (rsh, rlogin, rexec";
4693         type empty;
4694       }
4695       leaf rip {
4696         tailf:info "Routing Information Protocol";
4697         description
4698           "Routing Information Protocol";
4699         type empty;
4700       }
4701       leaf rsrb {
4702         tailf:info "Remote Source-Route Bridging";
4703         description
4704           "Remote Source-Route Bridging";
4705         type empty;
4706       }
4707       leaf rsvp {
4708         tailf:info "Resource Reservation Protocol";
4709         description
4710           "Resource Reservation Protocol";
4711         type empty;
4712       }
4713       leaf rtcp {
4714         tailf:info "Real Time Control Protocol";
4715         description
4716           "Real Time Control Protocol";
4717         type empty;
4718       }
4719       container rtp {
4720         tailf:info "Real Time Protocol";
4721         description
4722           "Real Time Protocol";
4723         presence "enable rtp matching";
4724         leaf audio {
4725           tailf:info "Match voice packets";
4726           description
4727             "Match voice packets";
4728           type empty;
4729         }
4730         leaf payload-type {
4731           tailf:info "Match an explicit PT";
4732           description
4733             "Match an explicit PT";
4734           type string {
4735             tailf:info "WORD;;Enter a string as the sub-protocol parameter";
4736           }
4737         }
4738         leaf video {
4739           tailf:info "Match video packets";
4740           description
4741             "Match video packets";
4742           type empty;
4743         }
4744       }
4745       leaf rtsp {
4746         tailf:info "Real Time Streaming Protocol";
4747         description
4748           "Real Time Streaming Protocol";
4749         type empty;
4750       }
4751       leaf secure-ftp {
4752         tailf:info "FTP over TLS/SSL";
4753         description
4754           "FTP over TLS/SSL";
4755         type empty;
4756       }
4757       leaf secure-http {
4758         tailf:info "Secured HTTP";
4759         description
4760           "Secured HTTP";
4761         type empty;
4762       }
4763       leaf secure-imap {
4764         tailf:info "Internet Message Access Protocol over TLS/SSL";
4765         description
4766           "Internet Message Access Protocol over TLS/SSL";
4767         type empty;
4768       }
4769       leaf secure-irc {
4770         tailf:info "Internet Relay Chat over TLS/SSL";
4771         description
4772           "Internet Relay Chat over TLS/SSL";
4773         type empty;
4774       }
4775       leaf secure-ldap {
4776         tailf:info "Lightweight Directory Access Protocol over TLS/SSL";
4777         description
4778           "Lightweight Directory Access Protocol over TLS/SSL";
4779         type empty;
4780       }
4781       leaf secure-nntp {
4782         tailf:info "Network News Transfer Protocol over TLS/SSL";
4783         description
4784           "Network News Transfer Protocol over TLS/SSL";
4785         type empty;
4786       }
4787       leaf secure-pop3 {
4788         tailf:info "Post Office Protocol over TLS/SSL";
4789         description
4790           "Post Office Protocol over TLS/SSL";
4791         type empty;
4792       }
4793       leaf secure-telnet {
4794         tailf:info "Telnet over TLS/SSL";
4795         description
4796           "Telnet over TLS/SSL";
4797         type empty;
4798       }
4799       leaf sip {
4800         tailf:info "Session Initiation Protocol";
4801         description
4802           "Session Initiation Protocol";
4803         type empty;
4804       }
4805       leaf skinny {
4806         tailf:info "Skinny Protocol";
4807         description
4808           "Skinny Protocol";
4809         type empty;
4810       }
4811       container smtp {
4812         tailf:info "Simple Mail Transfer Protocol";
4813         description
4814           "Simple Mail Transfer Protocol";
4815         leaf extended {
4816           type empty;
4817         }
4818       }
4819       leaf snapshot {
4820         tailf:info "Snapshot routing support";
4821         description
4822           "Snapshot routing support";
4823         type empty;
4824       }
4825       leaf snmp {
4826         tailf:info "Simple Network Management Protocol";
4827         description
4828           "Simple Network Management Protocol";
4829         type empty;
4830       }
4831       leaf socks {
4832         tailf:info "SOCKS";
4833         description
4834           "SOCKS";
4835         type empty;
4836       }
4837       leaf sqlnet {
4838         tailf:info "SQL*NET for Oracle";
4839         description
4840           "SQL*NET for Oracle";
4841         type empty;
4842       }
4843       leaf sqlserver {
4844         tailf:info "MS SQL Server";
4845         description
4846           "MS SQL Server";
4847         type empty;
4848       }
4849       leaf ssh {
4850         tailf:info "Secured Shell";
4851         description
4852           "Secured Shell";
4853         type empty;
4854       }
4855       leaf streamwork {
4856         tailf:info "Xing Technology StreamWorks player";
4857         description
4858           "Xing Technology StreamWorks player";
4859         type empty;
4860       }
4861       leaf stun {
4862         tailf:info "Serial Tunnel";
4863         description
4864           "Serial Tunnel";
4865         type empty;
4866       }
4867       leaf sunrpc {
4868         tailf:info "Sun RPC";
4869         description
4870           "Sun RPC";
4871         type empty;
4872       }
4873       leaf syslog {
4874         tailf:info "System Logging Utility";
4875         description
4876           "System Logging Utility";
4877         type empty;
4878       }
4879       leaf telnet {
4880         tailf:info "Telnet";
4881         description
4882           "Telnet";
4883         type empty;
4884       }
4885       leaf tftp {
4886         tailf:info "Trivial File Transfer Protocol";
4887         description
4888           "Trivial File Transfer Protocol";
4889         type empty;
4890       }
4891       leaf vdolive {
4892         tailf:info "VDOLive streaming video";
4893         description
4894           "VDOLive streaming video";
4895         type empty;
4896       }
4897       leaf vofr {
4898         tailf:info "voice over Frame Relay packets";
4899         description
4900           "voice over Frame Relay packets";
4901         type empty;
4902       }
4903       leaf winmx {
4904         tailf:info "WinMx file-sharing application";
4905         description
4906           "WinMx file-sharing application";
4907         type empty;
4908       }
4909       leaf xwindows {
4910         tailf:info "X-Windows remote access";
4911         description
4912           "X-Windows remote access";
4913         type empty;
4914       }
4915     }
4916     leaf-list qos-group {
4917       tailf:info "Qos-group";
4918       description
4919         "Qos-group";
4920       tailf:cli-list-syntax;
4921       type uint16 {
4922         tailf:info "<0-99>;;Qos Group value";
4923         range "0..99";
4924       }
4925     }
4926     container security-group {
4927       tailf:info "Security group";
4928       description
4929         "Security group";
4930       container destination {
4931         tailf:info "Destination security group";
4932         description
4933           "Destination security group";
4934         leaf tag {
4935           tailf:info "Security group tag";
4936           description
4937             "Security group tag";
4938           type uint16 {
4939             tailf:info "<1-65533>;;Security group tag id";
4940           }
4941         }
4942       }
4943       container source {
4944         tailf:info "Source security group";
4945         description
4946           "Source security group";
4947         leaf tag {
4948           tailf:info "Security group tag";
4949           description
4950             "Security group tag";
4951           type uint16 {
4952             tailf:info "<1-65533>;;Security group tag id";
4953           }
4954         }
4955       }
4956     }
4957     container source-address {
4958       tailf:info "Source address";
4959       description
4960         "Source address";
4961       leaf-list mac {
4962         tailf:info "MAC address";
4963         description
4964           "MAC address";
4965         tailf:cli-list-syntax;
4966         type yang:mac-address {
4967           tailf:info "H.H.H;;MAC address";
4968         }
4969       }
4970     }
4971     leaf-list vlan {
4972       tailf:info "VLANs to match";
4973       description
4974         "VLANs to match";
4975       tailf:cli-range-list-syntax;
4976       tailf:cli-list-syntax;
4977       type uint16 {
4978         tailf:info "<1-4094>;;VLAN id";
4979         range "1..4094";
4980       }
4981     }
4982   }
4983
4984   grouping class-map-appnav-match-grouping {
4985     leaf peer {
4986       when "../../type = 'appnav'";
4987       tailf:info "APPNAV Peer Filter";
4988       description
4989         "APPNAV Peer Filter";
4990       type string {
4991         tailf:info "H.H.H;;Device ID";
4992       }
4993     }
4994   }
4995
4996   grouping class-map-appnav-not-match-grouping {
4997     leaf peer {
4998       when "../../../type = 'appnav'";
4999       tailf:info "APPNAV Peer Filter";
5000       description
5001         "APPNAV Peer Filter";
5002       type string {
5003         tailf:info "H.H.H;;Device ID";
5004       }
5005     }
5006   }
5007
5008   grouping ntp-server-grouping {
5009     list server-list {
5010       tailf:cli-drop-node-name;
5011       tailf:cli-suppress-mode;
5012       tailf:cli-delete-when-empty;
5013       tailf:cli-compact-syntax;
5014       tailf:cli-reset-container;
5015       key "ip-address";
5016       leaf ip-address {
5017         tailf:cli-disallow-value "vrf";
5018         type host-type {
5019           tailf:info "Hostname or A.B.C.D;;IP address of peer";
5020         }
5021       }
5022       leaf key {
5023         tailf:info "Configure peer authentication key";
5024         description
5025           "Configure peer authentication key";
5026         type uint32 {
5027           tailf:info "<0-4294967295>;;Peer key number";
5028         }
5029       }
5030       leaf prefer {
5031         tailf:info "Prefer this peer when possible";
5032         description
5033           "Prefer this peer when possible";
5034         type empty;
5035       }
5036       leaf version {
5037         tailf:info "    Configure NTP version";
5038         description
5039           "    Configure NTP version";
5040         type uint8 {
5041           tailf:info "<1-3>;;NTP version number";
5042         }
5043       }
5044     }
5045   }
5046
5047   grouping line-grouping {
5048     container access-class {
5049       tailf:info "Filter connections based on an IP access list";
5050       description
5051         "Filter connections based on an IP access list";
5052       tailf:cli-compact-syntax;
5053       tailf:cli-sequence-commands;
5054       tailf:cli-reset-container;
5055       tailf:cli-flatten-container;
5056       list acccess-list {
5057         tailf:cli-drop-node-name;
5058         tailf:cli-compact-syntax;
5059         tailf:cli-reset-container;
5060         tailf:cli-suppress-mode;
5061         tailf:cli-delete-when-empty;
5062         key "direction";
5063         leaf direction {
5064           type enumeration {
5065             enum "in" {
5066               tailf:info "Filter incoming connections";
5067             }
5068             enum "out" {
5069               tailf:info "Filter outgoing connections";
5070             }
5071           }
5072         }
5073         leaf access-list {
5074           tailf:cli-drop-node-name;
5075           tailf:cli-prefix-key;
5076           type exp-acl-type;
5077           mandatory true;
5078         }
5079         leaf vrf-also {
5080           tailf:info "Same access list is applied for all VRFs";
5081           description
5082             "Same access list is applied for all VRFs";
5083           type empty;
5084         }
5085       }
5086     }
5087     leaf no-activation-character {
5088       tailf:alt-name "activation-character";
5089       tailf:cli-boolean-no;
5090       tailf:cli-trim-default;
5091       type boolean;
5092     }
5093     leaf activation-character {
5094       tailf:info "Define the activation character";
5095       description
5096         "Define the activation character";
5097       tailf:cli-no-value-on-delete;
5098       type union {
5099         type string;
5100         type uint8 {
5101           tailf:info "CHAR or <0-127>;;Activation character or its decimal equivalent";
5102           range "0..127";
5103         }
5104       }
5105     }
5106     leaf escape-character {
5107       tailf:info "Change the current line's escape character";
5108       description
5109         "Change the current line's escape character";
5110       type union {
5111         type uint8 {
5112           tailf:info "ASCII decimal equivalent";
5113         }
5114         type enumeration {
5115           enum "BREAK" {
5116             tailf:info "Cause escape on BREAK";
5117           }
5118           enum "DEFAULT" {
5119             tailf:info "Use default escape character";
5120           }
5121           enum "NONE" {
5122             tailf:info "Disable escape entirely";
5123           }
5124         }
5125       }
5126     }
5127     choice exec-choice {
5128       container no-exec {
5129         tailf:cli-drop-node-name;
5130         leaf exec {
5131           tailf:info "Configure EXEC";
5132           description
5133             "Configure EXEC";
5134           tailf:cli-boolean-no;
5135           tailf:cli-trim-default;
5136           type boolean;
5137           default "true";
5138         }
5139       }
5140       container exec {
5141         tailf:info "Configure EXEC";
5142         tailf:cli-incomplete-command;
5143         tailf:cli-incomplete-no;
5144         container prompt {
5145           tailf:info "EXEC prompt";
5146           leaf timestamp {
5147             tailf:info "Print timestamps for show commands";
5148             type empty;
5149           }
5150         }
5151       }
5152     }
5153     container exec-timeout {
5154       tailf:info "Set the EXEC timeout";
5155       description
5156         "Set the EXEC timeout";
5157       tailf:cli-sequence-commands;
5158       tailf:cli-compact-syntax;
5159       leaf minutes {
5160         tailf:info "<0-35791>;;Timeout in minutes";
5161         description
5162           "<0-35791>;;Timeout in minutes";
5163         tailf:cli-drop-node-name;
5164         type uint32;
5165       }
5166       leaf seconds {
5167         tailf:info "<0-2147483>;;Timeout in seconds";
5168         description
5169           "<0-2147483>;;Timeout in seconds";
5170         tailf:cli-drop-node-name;
5171         type uint32;
5172       }
5173     }
5174     container history {
5175       tailf:info "Enable and control the command history function";
5176       description
5177         "Enable and control the command history function";
5178       presence "true";
5179       leaf size {
5180         tailf:info "Set history buffer size";
5181         description
5182           "Set history buffer size";
5183         type uint8 {
5184           tailf:info "<0-256>;;Size of history buffer";
5185         }
5186       }
5187     }
5188     container ip {
5189       tailf:info "IP options";
5190       description
5191         "IP options";
5192       leaf netmask-format {
5193         tailf:info "Change display of netmasks";
5194         description
5195           "Change display of netmasks";
5196         type enumeration {
5197           enum "bit-count" {
5198             tailf:info "Display netmask as number of significant bits";
5199           }
5200           enum "decimal" {
5201             tailf:info "Display netmask in dotted decimal";
5202           }
5203           enum "hexadecimal" {
5204             tailf:info "Display netmask in hexadecimal";
5205           }
5206         }
5207       }
5208     }
5209     leaf length {
5210       tailf:info "Set number of lines on a screen";
5211       description
5212         "Set number of lines on a screen";
5213       type uint16 {
5214         tailf:info "<0-512>;;Number of lines on screen (0 for no pausing)";
5215         range "0..512";
5216       }
5217     }
5218     leaf line {
5219       type uint8;
5220     }
5221     container logging {
5222       tailf:info "Modify message logging facilities";
5223       description
5224         "Modify message logging facilities";
5225       container synchronous {
5226         tailf:info "Synchronized message output";
5227         description
5228           "Synchronized message output";
5229         presence "true";
5230       }
5231     }
5232     container login {
5233       tailf:info "Enable password checking";
5234       description
5235         "Enable password checking";
5236       tailf:cli-delete-when-empty;
5237       presence "true";
5238       leaf local {
5239         type empty;
5240       }
5241       leaf authentication {
5242         type string;
5243       }
5244     }
5245     leaf monitor {
5246       type empty;
5247     }
5248     container password {
5249       tailf:info "Set a password";
5250       description
5251         "Set a password";
5252       tailf:cli-compact-syntax;
5253       tailf:cli-sequence-commands;
5254       uses password-07-grouping;
5255     }
5256     container privilege {
5257       tailf:info "Change privilege level for line";
5258       description
5259         "Change privilege level for line";
5260       leaf level {
5261         tailf:info "Assign default privilege level for line";
5262         description
5263           "Assign default privilege level for line";
5264         type uint8 {
5265           tailf:info "<0-15>;;Default privilege level for line";
5266           range "0..15";
5267         }
5268       }
5269     }
5270     container session-timeout {
5271       tailf:info "Set interval for closing connection when there is no input traffic";
5272       description
5273         "Set interval for closing connection when there is no input traffic";
5274       tailf:cli-sequence-commands;
5275       tailf:cli-compact-syntax;
5276       leaf session-timeout-value {
5277         tailf:cli-drop-node-name;
5278         type uint16 {
5279           tailf:info "<0-35791>;;Session timeout interval in minutes";
5280           range "0..35791";
5281         }
5282       }
5283       leaf output {
5284         tailf:info "Include output traffic as well as input traffic";
5285         description
5286           "Include output traffic as well as input traffic";
5287         type empty;
5288       }
5289     }
5290     leaf stopbits {
5291       tailf:info "Set async line stop bits";
5292       description
5293         "Set async line stop bits";
5294       type enumeration {
5295         enum "1" {
5296           tailf:info "One stop bit";
5297         }
5298         enum "1.5" {
5299           tailf:info "One and one-half stop bits";
5300         }
5301         enum "2" {
5302           tailf:info "Two stop bits";
5303         }
5304       }
5305     }
5306     container telnet {
5307       tailf:info "Telnet protocol-specific configuration";
5308       description
5309         "Telnet protocol-specific configuration";
5310       leaf transparent {
5311         tailf:info "Send a CR as a CR followed by a NULL instead of a CR followed by a LF";
5312         description
5313           "Send a CR as a CR followed by a NULL instead of a CR followed by a LF";
5314         type empty;
5315       }
5316     }
5317     container transport {
5318       tailf:info "Define transport protocols for line";
5319       description
5320         "Define transport protocols for line";
5321       tailf:cli-incomplete-no;
5322       leaf-list input {
5323         tailf:info "Define which protocols to use when connecting to the terminal server";
5324         description
5325           "Define which protocols to use when connecting to the terminal server";
5326         ordered-by user;
5327         tailf:cli-flat-list-syntax;
5328         tailf:cli-no-value-on-delete;
5329         type enumeration {
5330           enum "acercon" {
5331             tailf:info "Remote console for ACE-based blade";
5332           }
5333           enum "all" {
5334             tailf:info "All protocols";
5335           }
5336           enum "lapb-ta";
5337           enum "lat" {
5338             tailf:info "DEC LAT protocol";
5339           }
5340           enum "mop" {
5341             tailf:info "DEC MOP Remote Console Protocol";
5342           }
5343           enum "nasi" {
5344             tailf:info "NASI protocol";
5345           }
5346           enum "none" {
5347             tailf:info "No protocols";
5348           }
5349           enum "pad" {
5350             tailf:info "X.3 PAD";
5351           }
5352           enum "rlogin" {
5353             tailf:info "Unix rlogin protocol";
5354           }
5355           enum "ssh" {
5356             tailf:info "TCP/IP SSH protocol";
5357           }
5358           enum "telnet" {
5359             tailf:info "TCP/IP Telnet protocol";
5360           }
5361           enum "udptn" {
5362             tailf:info "UDPTN async via UDP protocol";
5363           }
5364           enum "v120";
5365         }
5366       }
5367       leaf-list output {
5368         tailf:info "Define which protocols to use for outgoing connections";
5369         description
5370           "Define which protocols to use for outgoing connections";
5371         tailf:cli-flat-list-syntax;
5372         tailf:cli-no-value-on-delete;
5373         ordered-by user;
5374         type enumeration {
5375           enum "acercon" {
5376             tailf:info "Remote console for ACE-based blade";
5377           }
5378           enum "all" {
5379             tailf:info "All protocols";
5380           }
5381           enum "lapb-ta";
5382           enum "lat" {
5383             tailf:info "DEC LAT protocol";
5384           }
5385           enum "mop" {
5386             tailf:info "DEC MOP Remote Console Protocol";
5387           }
5388           enum "nasi" {
5389             tailf:info "NASI protocol";
5390           }
5391           enum "none" {
5392             tailf:info "No protocols";
5393           }
5394           enum "pad" {
5395             tailf:info "X.3 PAD";
5396           }
5397           enum "rlogin" {
5398             tailf:info "Unix rlogin protocol";
5399           }
5400           enum "ssh" {
5401             tailf:info "TCP/IP SSH protocol";
5402           }
5403           enum "telnet" {
5404             tailf:info "TCP/IP Telnet protocol";
5405           }
5406           enum "udptn" {
5407             tailf:info "UDPTN async via UDP protocol";
5408           }
5409           enum "v120";
5410         }
5411       }
5412       leaf preferred {
5413         tailf:info "Specify the preferred protocol to use";
5414         description
5415           "Specify the preferred protocol to use";
5416         tailf:cli-no-value-on-delete;
5417         type enumeration {
5418           enum "none" {
5419             tailf:info "No protocols";
5420           }
5421           enum "ssh" {
5422             tailf:info "TCP/IP SSH protocol";
5423           }
5424           enum "telnet" {
5425             tailf:info "TCP/IP Telnet protocol";
5426           }
5427         }
5428       }
5429     }
5430   }
5431
5432   grouping queue-size-grouping {
5433     leaf queue-size-1 {
5434       tailf:cli-drop-node-name;
5435       type uint8 {
5436         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5437         range "1..100";
5438       }
5439     }
5440     leaf queue-size-2 {
5441       tailf:cli-drop-node-name;
5442       type uint8 {
5443         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5444         range "1..100";
5445       }
5446     }
5447     leaf queue-size-3 {
5448       tailf:cli-drop-node-name;
5449       type uint8 {
5450         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5451         range "1..100";
5452       }
5453     }
5454     leaf queue-size-4 {
5455       tailf:cli-drop-node-name;
5456       type uint8 {
5457         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5458         range "1..100";
5459       }
5460     }
5461     leaf queue-size-5 {
5462       tailf:cli-drop-node-name;
5463       type uint8 {
5464         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5465         range "1..100";
5466       }
5467     }
5468     leaf queue-size-6 {
5469       tailf:cli-drop-node-name;
5470       type uint8 {
5471         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5472         range "1..100";
5473       }
5474     }
5475     leaf queue-size-7 {
5476       tailf:cli-drop-node-name;
5477       type uint8 {
5478         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5479         range "1..100";
5480       }
5481     }
5482     leaf queue-size-8 {
5483       tailf:cli-drop-node-name;
5484       type uint8 {
5485         tailf:info "<1-100>;;enter percent of queue size between 1 and 100";
5486         range "1..100";
5487       }
5488     }
5489   }
5490
5491   grouping authentication-ipsec-grouping {
5492     container ipsec {
5493       tailf:info "Use IPsec authentication";
5494       description
5495         "Use IPsec authentication";
5496       leaf spi {
5497         tailf:info "Set the SPI (Security Parameters Index)";
5498         description
5499           "Set the SPI (Security Parameters Index)";
5500         tailf:cli-incomplete-command;
5501         type uint64 {
5502           tailf:info "<256-4294967295>;;SPI";
5503           range "256..4294967295";
5504         }
5505       }
5506       container md5 {
5507         tailf:info "Use MD5 authentication";
5508         description
5509           "Use MD5 authentication";
5510         container key-string {
5511           tailf:cli-drop-node-name;
5512           tailf:cli-compact-syntax;
5513           leaf encrypt {
5514             tailf:cli-drop-node-name;
5515             type enumeration {
5516               enum "0" {
5517                 tailf:info "The key is not encrypted (plain text)";
5518               }
5519               enum "7" {
5520                 tailf:info "The key is encrypted";
5521               }
5522             }
5523           }
5524           leaf string {
5525             tailf:cli-drop-node-name;
5526             type string {
5527               tailf:info "Hex-string  MD5 key (32 chars)";
5528             }
5529           }
5530         }
5531       }
5532       container sha1 {
5533         tailf:info "Use SHA-1 authentication";
5534         description
5535           "Use SHA-1 authentication";
5536         container key-string {
5537           tailf:cli-drop-node-name;
5538           tailf:cli-compact-syntax;
5539           leaf encrypt {
5540             tailf:cli-drop-node-name;
5541             type enumeration {
5542               enum "0" {
5543                 tailf:info "The key is not encrypted (plain text)";
5544               }
5545               enum "7" {
5546                 tailf:info "The key is encrypted";
5547               }
5548             }
5549           }
5550           leaf string {
5551             tailf:cli-drop-node-name;
5552             type string {
5553               tailf:info "Hex-string  SHA-1 key (40 chars)";
5554             }
5555           }
5556         }
5557       }
5558     }
5559   }
5560
5561   grouping interface-xconnect-grouping {
5562     choice xconnect-choice {
5563       container xconnect {
5564         tailf:cli-add-mode;
5565         tailf:cli-mode-name "config-if-xconn";
5566         tailf:cli-compact-syntax;
5567         tailf:cli-sequence-commands;
5568         tailf:cli-incomplete-command;
5569         leaf address {
5570           tailf:cli-drop-node-name;
5571           tailf:cli-incomplete-command;
5572           tailf:cli-hide-in-submode;
5573           type inet:ipv4-address {
5574             tailf:info "A.B.C.D;;IP address of peer";
5575           }
5576         }
5577         leaf vcid {
5578           tailf:cli-drop-node-name;
5579           tailf:cli-incomplete-command;
5580           tailf:cli-hide-in-submode;
5581           type uint32 {
5582             tailf:info "<1-4294967295>;;Enter VC ID value";
5583             range "1..4294967295";
5584           }
5585         }
5586         leaf encapsulation {
5587           tailf:info "Data encapsulation method";
5588           description
5589             "Data encapsulation method";
5590           tailf:cli-hide-in-submode;
5591           type enumeration {
5592             enum "mpls" {
5593               tailf:info "Use MPLS encapsulation";
5594             }
5595             enum "l2tpv3" {
5596               tailf:info "Use L2TPv3 encapsulation";
5597             }
5598           }
5599         }
5600         leaf manual {
5601           tailf:info "Manually configure L2TP session parameters";
5602           description
5603             "Manually configure L2TP session parameters";
5604           tailf:cli-optional-in-sequence;
5605           tailf:cli-hide-in-submode;
5606           type empty;
5607         }
5608         leaf pw-class {
5609           tailf:info "Optional pseudowire-class to use for advanced configuration";
5610           description
5611             "Optional pseudowire-class to use for advanced configuration";
5612           tailf:cli-optional-in-sequence;
5613           tailf:cli-hide-in-submode;
5614           type string {
5615             tailf:info "WORD;;Pseudowire-class name";
5616           }
5617         }
5618         leaf sequencing {
5619           tailf:info "Configure sequencing options for xconnect";
5620           description
5621             "Configure sequencing options for xconnect";
5622           tailf:cli-full-command;
5623           tailf:cli-hide-in-submode;
5624           when "../encapsulation = 'l2tpv3'";
5625           type enumeration {
5626             enum "both" {
5627               tailf:info "Transmit and receive sequence numbers";
5628             }
5629             enum "receive" {
5630               tailf:info "Receive sequence numbers";
5631             }
5632             enum "transmit" {
5633               tailf:info "Transmit sequence numbers";
5634             }
5635           }
5636         }
5637         container backup {
5638           tailf:cli-break-sequence-commands;
5639           tailf:info "Xconnect backup configuration commands";
5640           description
5641             "Xconnect backup configuration commands";
5642           container peer {
5643             tailf:info "Backup pseudowire";
5644             description
5645               "Backup pseudowire";
5646             tailf:cli-compact-syntax;
5647             tailf:cli-sequence-commands {
5648               tailf:cli-reset-siblings;
5649             }
5650             leaf peer-router-ip-addr {
5651               tailf:cli-drop-node-name;
5652               tailf:cli-incomplete-command;
5653               type inet:ipv4-address {
5654                 tailf:info "A.B.C.D;;IP address of peer";
5655               }
5656             }
5657             leaf vcid {
5658               tailf:cli-drop-node-name;
5659               type uint32 {
5660                 tailf:info "<1-4294967295>;;Enter VC ID value";
5661                 range "1..4294967295";
5662               }
5663             }
5664             leaf pw-class {
5665               tailf:cli-optional-in-sequence;
5666               type string {
5667                 tailf:info "Optional Pseudowire-class to use for backup pseudowire";
5668               }
5669             }
5670             leaf priority {
5671               tailf:info "Optional priority to use for backup pseudowire.";
5672               description
5673                 "Optional priority to use for backup pseudowire.";
5674               type uint8 {
5675                 tailf:info "Peer priority";
5676                 range "1..10";
5677               }
5678             }
5679           }
5680           container delay {
5681             tailf:info "backup delay time";
5682             description
5683               "backup delay time";
5684             tailf:cli-compact-syntax;
5685             tailf:cli-sequence-commands {
5686               tailf:cli-reset-siblings;
5687             }
5688             leaf min {
5689               tailf:cli-drop-node-name;
5690               type uint32;
5691             }
5692             leaf max {
5693               tailf:cli-drop-node-name;
5694               type uint32;
5695             }
5696           }
5697         }
5698         leaf mtu {
5699           tailf:info "set XCONNECT Maximum Transfer Unit";
5700           type uint32 {
5701             tailf:info "<64-1500>;;per Xconnect MTU size in bytes";
5702           }
5703         }
5704       }
5705       container xconnect-pw-class {
5706         tailf:cli-drop-node-name;
5707         container xconnect {
5708           tailf:info "Xconnect commands";
5709           description
5710             "Xconnect commands";
5711           tailf:cli-add-mode;
5712           tailf:cli-mode-name "config-if-xconn";
5713           tailf:cli-sequence-commands;
5714           tailf:cli-compact-syntax;
5715           leaf address {
5716             tailf:cli-drop-node-name;
5717             tailf:cli-incomplete-command;
5718             tailf:cli-hide-in-submode;
5719             type inet:ipv4-address {
5720               tailf:info "A.B.C.D;;IP address of peer";
5721             }
5722           }
5723           leaf vcid {
5724             tailf:cli-drop-node-name;
5725             tailf:cli-incomplete-command;
5726             tailf:cli-hide-in-submode;
5727             type uint32 {
5728               tailf:info "<1-4294967295>;;Enter VC ID value";
5729               range "1..4294967295";
5730             }
5731           }
5732           leaf pw-class {
5733             tailf:info "Pseudowire-class to use for encapsulation and protocol configuration";
5734             description
5735               "Pseudowire-class to use for encapsulation and protocol configuration";
5736             tailf:cli-full-command;
5737             tailf:cli-hide-in-submode;
5738             type string {
5739               tailf:info "WORD;;Pseudowire-class name";
5740             }
5741           }
5742           container udp {
5743             tailf:info "UDP";
5744             description
5745               "UDP";
5746             container port {
5747               tailf:info "UDP ports";
5748               description
5749                 "UDP ports";
5750               tailf:cli-compact-syntax;
5751               leaf local {
5752                 type uint32 {
5753                   tailf:info "UDP local port number";
5754                 }
5755               }
5756               leaf remote {
5757                 type uint32 {
5758                   tailf:info "UDP remote port number";
5759                 }
5760               }
5761             }
5762           }
5763         }
5764       }
5765     }
5766   }
5767
5768   grouping interface-atm-grouping {
5769     container ip {
5770       tailf:info "IP address";
5771       description
5772         "IP address";
5773       leaf address {
5774         type inet:ipv4-address {
5775           tailf:info "A.B.C.D;;Virtual IP address";
5776         }
5777       }
5778     }
5779     container atm {
5780       tailf:info "ATM";
5781       description
5782         "ATM";
5783       leaf bandwidth {
5784         tailf:info "ATM bandwith";
5785         description
5786           "ATM bandwith";
5787         type enumeration {
5788           enum "dynamic";
5789         }
5790       }
5791       leaf enable-ilmi-trap {
5792         tailf:info "Enable-ilmi-trap";
5793         description
5794           "Enable-ilmi-trap";
5795         tailf:cli-boolean-no;
5796         tailf:cli-trim-default;
5797         type boolean;
5798         default "true";
5799       }
5800       list pvp {
5801         tailf:info "PVP";
5802         description
5803           "PVP";
5804         tailf:cli-mode-name "config-if-atm-pvp";
5805         key "pvp-number";
5806         leaf pvp-number {
5807           tailf:info "PVP number";
5808           description
5809             "PVP number";
5810           tailf:cli-drop-node-name;
5811           type uint16 {
5812             tailf:info "PVP number";
5813           }
5814         }
5815         leaf l2transport {
5816           tailf:cli-hide-in-submode;
5817           type empty;
5818         }
5819         uses interface-xconnect-grouping;
5820       }
5821     }
5822     leaf load-interval {
5823       tailf:info "Load interval";
5824       description
5825         "Load interval";
5826       type uint32 {
5827         tailf:info "Load interval";
5828       }
5829     }
5830     list cem {
5831       tailf:info "CEM";
5832       description
5833         "CEM";
5834       tailf:cli-mode-name "config-if-cem";
5835       key "number";
5836       leaf number {
5837         type uint32 {
5838           tailf:info "CEM number";
5839         }
5840       }
5841       uses interface-xconnect-grouping;
5842     }
5843     list pvc {
5844       tailf:info "PVC";
5845       description
5846         "PVC";
5847       tailf:cli-mode-name "config-if-pvc";
5848       key "local-vpi-vci";
5849       leaf local-vpi-vci {
5850         tailf:info "Vpi and vci";
5851         description
5852           "Vpi and vci";
5853         type string {
5854           tailf:info "<vpi>/<vci>";
5855         }
5856       }
5857       leaf remote-vpi-vci {
5858         tailf:info "Vpi and vci";
5859         description
5860           "Vpi and vci";
5861         tailf:cli-hide-in-submode;
5862         tailf:cli-drop-node-name;
5863         type string {
5864           tailf:info "<vpi>/<vci>";
5865         }
5866       }
5867       leaf l2transport {
5868         tailf:cli-hide-in-submode;
5869         type empty;
5870       }
5871       leaf ubr {
5872         tailf:info "UBR";
5873         description
5874           "UBR";
5875         type uint32 {
5876           tailf:info "UBR";
5877         }
5878       }
5879       uses interface-xconnect-grouping;
5880     }
5881   }
5882
5883   grouping sonet-grouping {
5884     leaf framing {
5885       tailf:info "SONET framing";
5886       description
5887         "SONET framing";
5888       type enumeration {
5889         enum "sonet" {
5890           tailf:info "sonet framing";
5891         }
5892         enum "sdh" {
5893           tailf:info "sdh framing";
5894         }
5895       }
5896     }
5897     leaf shutdown {
5898       type empty;
5899     }
5900     container clock {
5901       tailf:info "SONET clock";
5902       description
5903         "SONET clock";
5904       leaf source {
5905         tailf:info "SONET clock source";
5906         description
5907           "SONET clock source";
5908         type enumeration {
5909           enum "internal" {
5910             tailf:info "Clock its sent data from its internal clock";
5911           }
5912           enum "line" {
5913             tailf:info
5914               "Clock its sent data from a clock recovered from the
5915                receive data stream of the line";
5916           }
5917         }
5918       }
5919     }
5920     container aug {
5921       tailf:info "AUG";
5922       description
5923         "AUG";
5924       leaf mapping {
5925         type enumeration {
5926           enum "au-3" {
5927             tailf:info "AU-3";
5928           }
5929           enum "au-4" {
5930             tailf:info "AU-4";
5931           }
5932         }
5933       }
5934     }
5935     list au-3 {
5936       tailf:info "AU-3";
5937       description
5938         "AU-3";
5939       tailf:cli-mode-name "config-au3Path";
5940       key "number";
5941       leaf number {
5942         tailf:info "AU-3 number";
5943         description
5944           "AU-3 number";
5945         tailf:cli-drop-node-name;
5946         type int8 {
5947           range "1..3";
5948         }
5949       }
5950       container overhead {
5951         tailf:info "overhead";
5952         description
5953           "overhead";
5954         tailf:cli-no-keyword;
5955         tailf:cli-sequence-commands;
5956         tailf:cli-compact-syntax;
5957         leaf byte {
5958           tailf:cli-drop-node-name;
5959           type enumeration {
5960             enum "j1" {
5961               tailf:info "J1";
5962             }
5963           }
5964         }
5965         leaf length {
5966           type uint8;
5967         }
5968       }
5969       container mode {
5970         tailf:info "mode";
5971         description
5972           "mode";
5973         tailf:cli-no-keyword;
5974         tailf:cli-sequence-commands;
5975         tailf:cli-compact-syntax;
5976         leaf mapping {
5977           tailf:cli-drop-node-name;
5978           type enumeration {
5979             enum "c-11" {
5980               tailf:info "C-11 mode";
5981             }
5982             enum "c-12" {
5983               tailf:info "C-12 mode";
5984             }
5985             enum "c-2" {
5986               tailf:info "C-2 mode";
5987             }
5988           }
5989         }
5990       }
5991     }
5992     container au-4-atm {
5993       tailf:cli-drop-node-name;
5994       container au-4 {
5995         tailf:info "AU-4";
5996         description
5997           "AU-4";
5998         tailf:cli-compact-syntax;
5999         tailf:cli-sequence-commands;
6000         leaf number {
6001           tailf:info "AU-4 number";
6002           description
6003             "AU-4 number";
6004           tailf:cli-drop-node-name;
6005           type int8 {
6006             range "1..3";
6007           }
6008         }
6009         leaf atm {
6010           type empty;
6011         }
6012       }
6013     }
6014     list au-4 {
6015       tailf:info "AU-4";
6016       description
6017         "AU-4";
6018       tailf:cli-mode-name "config-au4Path";
6019       key "number tug-3";
6020       leaf number {
6021         tailf:info "AU-4 number";
6022         description
6023           "AU-4 number";
6024         type int8 {
6025           range "1..3";
6026         }
6027       }
6028       leaf tug-3 {
6029         tailf:info "TUG-3";
6030         description
6031           "TUG-3";
6032         tailf:cli-expose-key-name;
6033         type int8 {
6034           tailf:info "TUG-3 number";
6035           range "1..3";
6036         }
6037       }
6038       leaf mode {
6039         tailf:info "mode";
6040         description
6041           "mode";
6042         type enumeration {
6043           enum "c-11" {
6044             tailf:info "C-11 mode";
6045           }
6046           enum "c-12" {
6047             tailf:info "C-12 mode";
6048           }
6049           enum "c-2" {
6050             tailf:info "C-2 mode";
6051           }
6052           enum "c-3" {
6053             tailf:info "C-3 mode";
6054           }
6055           enum "c-4" {
6056             tailf:info "C-4 mode";
6057           }
6058           enum "e3" {
6059             tailf:info "e3 mode";
6060           }
6061         }
6062       }
6063       leaf cem-group {
6064         tailf:info "CEM group";
6065         description
6066           "CEM group";
6067         type int32 {
6068           tailf:info "CEM group number";
6069         }
6070       }
6071       choice framing-choice {
6072         case unframed-case {
6073           leaf unframed {
6074             tailf:info "Unframed";
6075             description
6076               "Unframed";
6077             type empty;
6078           }
6079         }
6080         case framing-case {
6081           leaf framing {
6082             type enumeration {
6083               enum "unframed";
6084             }
6085           }
6086         }
6087       }
6088       container cem-group-timeslots {
6089         tailf:cli-drop-node-name;
6090         list tug-2 {
6091           tailf:info "TUG-2";
6092           description
6093             "TUG-2";
6094           tailf:cli-suppress-mode;
6095           tailf:cli-compact-syntax;
6096           tailf:cli-sequence-commands;
6097           key "number e1 cem-group";
6098           leaf number {
6099             tailf:info "TUG-2 number";
6100             description
6101               "TUG-2 number";
6102             type int8 {
6103               range "1..7";
6104             }
6105           }
6106           leaf e1 {
6107             tailf:info "E1";
6108             description
6109               "E1";
6110             tailf:cli-expose-key-name;
6111             type int8 {
6112               tailf:info "E1 number";
6113               range "1..3";
6114             }
6115           }
6116           leaf cem-group {
6117             tailf:info "CEM group";
6118             description
6119               "CEM group";
6120             tailf:cli-expose-key-name;
6121             type int32 {
6122               tailf:info "CEM group number";
6123             }
6124           }
6125           leaf timeslots {
6126             tailf:info "Time slots";
6127             description
6128               "Time slots";
6129             type string {
6130               tailf:info "<1-31>-<1-31>;;Time slot number";
6131             }
6132           }
6133         }
6134       }
6135       container channel-group-timeslots {
6136         tailf:cli-drop-node-name;
6137         list tug-2 {
6138           tailf:info "TUG-2";
6139           description
6140             "TUG-2";
6141           tailf:cli-suppress-mode;
6142           tailf:cli-compact-syntax;
6143           tailf:cli-sequence-commands;
6144           key "number e1 channel-group";
6145           leaf number {
6146             tailf:info "TUG-2 number";
6147             description
6148               "TUG-2 number";
6149             type int8 {
6150               range "1..7";
6151             }
6152           }
6153           leaf e1 {
6154             tailf:info "E1";
6155             description
6156               "E1";
6157             tailf:cli-expose-key-name;
6158             type int8 {
6159               tailf:info "E1 number";
6160               range "1..3";
6161             }
6162           }
6163           leaf channel-group {
6164             tailf:info "Channel group";
6165             description
6166               "Channel group";
6167             tailf:cli-expose-key-name;
6168             type int32 {
6169               tailf:info "Channel group number";
6170             }
6171           }
6172           leaf timeslots {
6173             tailf:info "Time slots";
6174             description
6175               "Time slots";
6176             type string {
6177               tailf:info "<1-31>-<1-31>;;Time slot number";
6178             }
6179           }
6180         }
6181       }
6182       container cem-group-unframed {
6183         tailf:cli-drop-node-name;
6184         list tug-2 {
6185           tailf:info "TUG-2";
6186           description
6187             "TUG-2";
6188           tailf:cli-suppress-mode;
6189           tailf:cli-compact-syntax;
6190           tailf:cli-sequence-commands;
6191           key "number e1 cem-group";
6192           leaf number {
6193             tailf:info "TUG-2 number";
6194             description
6195               "TUG-2 number";
6196             type int8 {
6197               range "1..7";
6198             }
6199           }
6200           leaf e1 {
6201             tailf:info "E1";
6202             description
6203               "E1";
6204             tailf:cli-expose-key-name;
6205             type int8 {
6206               tailf:info "E1 number";
6207               range "1..3";
6208             }
6209           }
6210           leaf cem-group {
6211             tailf:cli-expose-key-name;
6212             tailf:info "CEM group";
6213             description
6214               "CEM group";
6215             type int32 {
6216               tailf:info "CEM group number";
6217             }
6218           }
6219           leaf unframed {
6220             tailf:info "Unframed";
6221             description
6222               "Unframed";
6223             type empty;
6224           }
6225         }
6226       }
6227       container framing-unframed {
6228         tailf:cli-drop-node-name;
6229         list tug-2 {
6230           tailf:info "TUG-2";
6231           description
6232             "TUG-2";
6233           tailf:cli-suppress-mode;
6234           tailf:cli-compact-syntax;
6235           tailf:cli-sequence-commands;
6236           key "number e1";
6237           leaf number {
6238             tailf:info "TUG-2 number";
6239             description
6240               "TUG-2 number";
6241             type int8 {
6242               range "1..7";
6243             }
6244           }
6245           leaf e1 {
6246             tailf:info "E1";
6247             description
6248               "E1";
6249             tailf:cli-expose-key-name;
6250             type int8 {
6251               tailf:info "E1 number";
6252               range "1..3";
6253             }
6254           }
6255           leaf framing {
6256             type enumeration {
6257               enum "unframed";
6258             }
6259           }
6260         }
6261       }
6262       container cem-group-atm {
6263         tailf:cli-drop-node-name;
6264         list tug-2 {
6265           tailf:info "TUG-2";
6266           description
6267             "TUG-2";
6268           tailf:cli-suppress-mode;
6269           tailf:cli-compact-syntax;
6270           tailf:cli-sequence-commands;
6271           key "number e1";
6272           leaf number {
6273             tailf:info "TUG-2 number";
6274             description
6275               "TUG-2 number";
6276             type int8 {
6277               range "1..7";
6278             }
6279           }
6280           leaf e1 {
6281             tailf:info "E1";
6282             description
6283               "E1";
6284             tailf:cli-expose-key-name;
6285             type int8 {
6286               tailf:info "E1 number";
6287               range "1..3";
6288             }
6289           }
6290           leaf atm {
6291             type empty;
6292           }
6293         }
6294       }
6295       container ima-group {
6296         tailf:cli-drop-node-name;
6297         list tug-2 {
6298           tailf:info "TUG-2";
6299           description
6300             "TUG-2";
6301           tailf:cli-suppress-mode;
6302           tailf:cli-compact-syntax;
6303           tailf:cli-sequence-commands;
6304           key "number e1 ima-group";
6305           leaf number {
6306             tailf:info "TUG-2 number";
6307             description
6308               "TUG-2 number";
6309             type int8 {
6310               range "1..7";
6311             }
6312           }
6313           leaf e1 {
6314             tailf:info "E1";
6315             description
6316               "E1";
6317             tailf:cli-expose-key-name;
6318             type int8 {
6319               tailf:info "E1 number";
6320               range "1..3";
6321             }
6322           }
6323           leaf ima-group {
6324             tailf:cli-expose-key-name;
6325             tailf:info "IMA group";
6326             description
6327               "IMA group";
6328             type int32 {
6329               tailf:info "IMA group number";
6330             }
6331           }
6332         }
6333       }
6334     }
6335     container aps {
6336       tailf:info "SONET APS";
6337       description
6338         "SONET APS";
6339       container group {
6340         tailf:info "SONET APS group";
6341         description
6342           "SONET APS group";
6343         leaf group-number {
6344           tailf:cli-drop-node-name;
6345           type uint8;
6346         }
6347         leaf acr {
6348           tailf:info "ACR";
6349           description
6350             "ACR";
6351           type int8 {
6352             tailf:info "ACR number";
6353           }
6354         }
6355       }
6356       leaf working {
6357         tailf:info "Working line";
6358         description
6359           "Working line";
6360         type int8 {
6361           tailf:info "Working line number";
6362         }
6363       }
6364       container protect {
6365         tailf:info "Protect line";
6366         description
6367           "Protect line";
6368         tailf:cli-compact-syntax;
6369         leaf number {
6370           tailf:cli-drop-node-name;
6371           type int8 {
6372             tailf:info "Working line number";
6373           }
6374         }
6375         leaf ip-addr {
6376           tailf:cli-drop-node-name;
6377           type inet:ipv4-address {
6378             tailf:info "A.B.C.D;;IP address of peer";
6379           }
6380         }
6381       }
6382       leaf hspw-icrm-grp {
6383         type uint8;
6384       }
6385       container interchassis {
6386         leaf group {
6387           type uint8;
6388         }
6389       }
6390     }
6391   }
6392
6393   grouping interface-ospf-encryption-grouping {
6394     container encryption {
6395       tailf:info "Enable encryption";
6396       description
6397         "Enable encryption";
6398       leaf null {
6399         tailf:info "No IPsec encryption on this interface";
6400         description
6401           "No IPsec encryption on this interface";
6402         type empty;
6403       }
6404       container ipsec {
6405         tailf:info "Use IPsec encryption";
6406         description
6407           "Use IPsec encryption";
6408         tailf:cli-sequence-commands;
6409         leaf spi {
6410           tailf:info "Set the SPI (Security Parameters Index)";
6411           description
6412             "Set the SPI (Security Parameters Index)";
6413           type uint64 {
6414             tailf:info "<256-4294967295>  SPI";
6415           }
6416         }
6417         leaf esp {
6418           tailf:info "Use ESP encapsulation";
6419           description
6420             "Use ESP encapsulation";
6421           type empty;
6422         }
6423         container ipsec_3des {
6424           tailf:alt-name "3des";
6425           tailf:info "Use 3DES encryption";
6426           description
6427             "Use 3DES encryption";
6428           tailf:cli-optional-in-sequence;
6429           container key-string {
6430             tailf:cli-drop-node-name;
6431             tailf:cli-compact-syntax;
6432             leaf encrypt {
6433               tailf:cli-drop-node-name;
6434               type enumeration {
6435                 enum "0" {
6436                   tailf:info "The key is not encrypted (plain text)";
6437                 }
6438                 enum "7" {
6439                   tailf:info "The key is encrypted";
6440                 }
6441               }
6442             }
6443             leaf string {
6444               tailf:cli-drop-node-name;
6445               type string {
6446                 tailf:info "Hex-string  192bit key (48 chars)";
6447               }
6448             }
6449           }
6450         }
6451         container aes-cbc {
6452           tailf:info "Use AES-CBC encryption";
6453           description
6454             "Use AES-CBC encryption";
6455           tailf:cli-optional-in-sequence;
6456           container aes-cbc-128 {
6457             tailf:alt-name "128";
6458             tailf:info "Use 128 bit key";
6459             description
6460               "Use 128 bit key";
6461             container key-string {
6462               tailf:cli-drop-node-name;
6463               tailf:cli-compact-syntax;
6464               leaf encrypt {
6465                 tailf:cli-drop-node-name;
6466                 type enumeration {
6467                   enum "0" {
6468                     tailf:info "The key is not encrypted (plain text)";
6469                   }
6470                   enum "7" {
6471                     tailf:info "The key is encrypted";
6472                   }
6473                 }
6474               }
6475               leaf string {
6476                 tailf:cli-drop-node-name;
6477                 type string {
6478                   tailf:info "Hex-string  128bit key (32 chars)";
6479                 }
6480               }
6481             }
6482           }
6483           container aes-cbc-192 {
6484             tailf:alt-name "192";
6485             tailf:info "Use 192 bit key";
6486             description
6487               "Use 192 bit key";
6488             container key-string {
6489               tailf:cli-drop-node-name;
6490               tailf:cli-compact-syntax;
6491               leaf encrypt {
6492                 tailf:cli-drop-node-name;
6493                 type enumeration {
6494                   enum "0" {
6495                     tailf:info "The key is not encrypted (plain text)";
6496                   }
6497                   enum "7" {
6498                     tailf:info "The key is encrypted";
6499                   }
6500                 }
6501               }
6502               leaf string {
6503                 tailf:cli-drop-node-name;
6504                 type string {
6505                   tailf:info "Hex-string  192bit key (48 chars)";
6506                 }
6507               }
6508             }
6509           }
6510           container aes-cbc-256 {
6511             tailf:alt-name "256";
6512             tailf:info "Use 256 bit key";
6513             description
6514               "Use 256 bit key";
6515             container key-string {
6516               tailf:cli-drop-node-name;
6517               tailf:cli-compact-syntax;
6518               leaf encrypt {
6519                 tailf:cli-drop-node-name;
6520                 type enumeration {
6521                   enum "0" {
6522                     tailf:info "The key is not encrypted (plain text)";
6523                   }
6524                   enum "7" {
6525                     tailf:info "The key is encrypted";
6526                   }
6527                 }
6528               }
6529               leaf string {
6530                 tailf:cli-drop-node-name;
6531                 type string {
6532                   tailf:info "Hex-string  256bit key (64 chars)";
6533                 }
6534               }
6535             }
6536           }
6537         }
6538       }
6539     }
6540   }
6541
6542   grouping interface-ospf-neighbor-grouping {
6543     list neighbor {
6544       tailf:info "OSPF neighbor";
6545       description
6546         "OSPF neighbor";
6547       tailf:cli-suppress-mode;
6548       tailf:cli-delete-when-empty;
6549       tailf:cli-incomplete-command;
6550       ordered-by user;
6551       must "count(*) > 1" {
6552         tailf:dependency ".";
6553       }
6554       key "id";
6555       leaf id {
6556         type inet:ipv6-address {
6557           tailf:info "X:X:X:X::X;;Neighbor link-local IPv6 address";
6558         }
6559       }
6560       leaf cost {
6561         tailf:info "OSPF cost for point-to-multipoint neighbor";
6562         description
6563           "OSPF cost for point-to-multipoint neighbor";
6564         type uint16 {
6565           tailf:info "<1-65535>;;Metric";
6566           range "1..65535";
6567         }
6568       }
6569       container database-filter {
6570         tailf:info "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor";
6571         description
6572           "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor";
6573         choice database {
6574           leaf all {
6575             tailf:info "Filter all LSA";
6576             description
6577               "Filter all LSA";
6578             type enumeration {
6579               enum "out" {
6580                 tailf:info "Outgoing LSA";
6581               }
6582             }
6583           }
6584         }
6585       }
6586       leaf poll-interval {
6587         tailf:info "OSPF dead-router polling interval";
6588         description
6589           "OSPF dead-router polling interval";
6590         type uint32 {
6591           tailf:info "<0-65535>;;Seconds";
6592           range "0..65535";
6593         }
6594       }
6595       leaf priority {
6596         tailf:info "OSPF priority of non-broadcast neighbor";
6597         description
6598           "OSPF priority of non-broadcast neighbor";
6599         type uint8 {
6600           tailf:info "<0-255>;;Priority";
6601           range "0..255";
6602         }
6603       }
6604     }
6605   }
6606
6607   grouping interface-ospf-network-grouping {
6608     container network {
6609       tailf:info "Network type";
6610       description
6611         "Network type";
6612       leaf broadcast {
6613         tailf:info "Specify OSPF broadcast multi-access network";
6614         description
6615           "Specify OSPF broadcast multi-access network";
6616         tailf:cli-full-command;
6617         type empty;
6618       }
6619       leaf manet {
6620         tailf:info "Specify MANET OSPF interface type";
6621         description
6622           "Specify MANET OSPF interface type";
6623         tailf:cli-full-command;
6624         type empty;
6625       }
6626       leaf non-broadcast {
6627         tailf:info "Specify OSPF NBMA network";
6628         description
6629           "Specify OSPF NBMA network";
6630         tailf:cli-full-command;
6631         type empty;
6632       }
6633       container point-to-multipoint {
6634         tailf:info "Specify OSPF point-to-multipoint network";
6635         description
6636           "Specify OSPF point-to-multipoint network";
6637         presence "true";
6638         leaf non-broadcast {
6639           tailf:info "Specify non-broadcast point-to-mpoint network";
6640           description
6641             "Specify non-broadcast point-to-mpoint network";
6642           type empty;
6643         }
6644       }
6645       leaf point-to-point {
6646         tailf:info "Specify OSPF point-to-point network";
6647         description
6648           "Specify OSPF point-to-point network";
6649         tailf:cli-full-command;
6650         type empty;
6651       }
6652     }
6653   }
6654
6655   grouping interface-ospf-prefix-suppression-grouping {
6656     container prefix-suppression {
6657       tailf:info "OSPF prefix suppression";
6658       description
6659         "OSPF prefix suppression";
6660       presence "true";
6661       leaf disable {
6662         tailf:info "Disable prefix suppression";
6663         description
6664           "Disable prefix suppression";
6665         type empty;
6666       }
6667     }
6668   }
6669
6670   grouping interface-ospf-priority-grouping {
6671     leaf priority {
6672       tailf:info "Router priority";
6673       description
6674         "Router priority";
6675       type uint8 {
6676         tailf:info "<0-255>;;Priority";
6677         range "0..255";
6678       }
6679     }
6680   }
6681
6682   grouping interface-ospf-retransmit-interval-grouping {
6683     leaf retransmit-interval {
6684       tailf:info "Time between retransmitting lost link state advertisements";
6685       description
6686         "Time between retransmitting lost link state advertisements";
6687       type uint32 {
6688         tailf:info "<1-65535>;;Seconds";
6689         range "1..65535";
6690       }
6691     }
6692   }
6693
6694   grouping interface-ospf-transmit-delay-grouping {
6695     leaf transmit-delay {
6696       tailf:info "Link state transmit delay";
6697       description
6698         "Link state transmit delay";
6699       type uint32 {
6700         tailf:info "<1-65535>;;Seconds";
6701         range "1..65535";
6702       }
6703     }
6704   }
6705
6706   grouping interface-ospf-bfd-grouping {
6707     container bfd {
6708       tailf:info "Enable BFD on this interface";
6709       description
6710         "Enable BFD on this interface";
6711       presence "true";
6712       leaf disable {
6713         tailf:info "Disable BFD on this interface";
6714         description
6715           "Disable BFD on this interface";
6716         type empty;
6717       }
6718     }
6719   }
6720
6721   grouping interface-ospfv3-cost-grouping {
6722     container cost {
6723       tailf:info "Route cost of this interface";
6724       description
6725         "Route cost of this interface";
6726       leaf value {
6727         tailf:cli-full-command;
6728         tailf:cli-drop-node-name;
6729         type uint32 {
6730           tailf:info "<1-65535>;;Route cost of this interface";
6731           range "1..65535";
6732         }
6733       }
6734       container dynamic {
6735         tailf:info "Specify dynamic cost options";
6736         description
6737           "Specify dynamic cost options";
6738         presence "true";
6739         leaf default {
6740           tailf:info "Specify default link metric value";
6741           description
6742             "Specify default link metric value";
6743           type uint32 {
6744             tailf:info "<0-65535>;;Default link metric on this interface";
6745             range "0..65535";
6746           }
6747         }
6748         container hysteresis {
6749           tailf:info "Specify hysteresis value for LSA dampening";
6750           description
6751             "Specify hysteresis value for LSA dampening";
6752           presence "true";
6753           leaf percent {
6754             tailf:info "Specify hysteresis percent changed";
6755             description
6756               "Specify hysteresis percent changed";
6757             tailf:cli-full-command;
6758             type uint8 {
6759               tailf:info "<1-100>;;Route cost percent changed";
6760               range "1..100";
6761             }
6762           }
6763           leaf threshold {
6764             tailf:info "Specify hysteresis threshold value";
6765             description
6766               "Specify hysteresis threshold value";
6767             tailf:cli-full-command;
6768             type uint32 {
6769               tailf:info "<0-65535>;;Significant route cost increment";
6770               range "0..65535";
6771             }
6772           }
6773         }
6774         container weight {
6775           tailf:info "Specify weight to be placed on individual metrics";
6776           description
6777             "Specify weight to be placed on individual metrics";
6778           container L2-factor {
6779             tailf:info "Specify weight to be given to L2-factor metric";
6780             description
6781               "Specify weight to be given to L2-factor metric";
6782             presence "true";
6783             leaf value {
6784               tailf:cli-drop-node-name;
6785               type uint8 {
6786                 tailf:info "<0-100>;;Percentage weight of L2-factor metric";
6787                 range "0..100";
6788               }
6789             }
6790           }
6791           container latency {
6792             tailf:info "Specify weight to be given to latency metric";
6793             description
6794               "Specify weight to be given to latency metric";
6795             presence "true";
6796             leaf value {
6797               tailf:cli-drop-node-name;
6798               type uint8 {
6799                 tailf:info "<0-100>;;Percentage weight of latency metric";
6800                 range "0..100";
6801               }
6802             }
6803           }
6804           container resources {
6805             tailf:info "Specify weight to be given to resources metric";
6806             description
6807               "Specify weight to be given to resources metric";
6808             presence "true";
6809             leaf value {
6810               tailf:cli-drop-node-name;
6811               type uint8 {
6812                 tailf:info "<0-100>;;Percentage weight of resources metric";
6813                 range "0..100";
6814               }
6815             }
6816           }
6817           container throughput {
6818             tailf:info "Specify weight to be given to throughput metric";
6819             description
6820               "Specify weight to be given to throughput metric";
6821             presence "true";
6822             leaf value {
6823               tailf:cli-drop-node-name;
6824               type uint8 {
6825                 tailf:info "<0-100>;;Percentage weight of throughput metric";
6826                 range "0..100";
6827               }
6828             }
6829           }
6830         }
6831       }
6832     }
6833   }
6834
6835   grouping interface-ospf-dead-interval-grouping {
6836     leaf dead-interval {
6837       tailf:info "Interval after which a neighbor is declared dead";
6838       description
6839         "Interval after which a neighbor is declared dead";
6840       type uint16 {
6841         tailf:info "<1-65535>;;Seconds";
6842         range "1..65535";
6843       }
6844     }
6845   }
6846
6847   grouping interface-ospf-hello-interval-grouping {
6848     leaf hello-interval {
6849       tailf:info "Time between HELLO packets";
6850       description
6851         "Time between HELLO packets";
6852       type uint32 {
6853         tailf:info "<1-65535>;;Seconds";
6854         range "1..65535";
6855       }
6856     }
6857   }
6858
6859   grouping interface-ospfv3-manet-grouping {
6860     container manet {
6861       tailf:info "Mobile Adhoc Networking options";
6862       description
6863         "Mobile Adhoc Networking options";
6864       container peering {
6865         tailf:info "MANET Peering options";
6866         description
6867           "MANET Peering options";
6868         container cost {
6869           tailf:info "Redundant path cost improvement required to peer";
6870           description
6871             "Redundant path cost improvement required to peer";
6872           leaf percent {
6873             tailf:info "Relative incremental path cost";
6874             description
6875               "Relative incremental path cost";
6876             tailf:cli-full-command;
6877             type uint8 {
6878               tailf:info "<0-100>;;Required incremental path cost improvement";
6879               range "0..100";
6880             }
6881           }
6882           leaf threshold {
6883             tailf:info "Absolute incremental path cost";
6884             description
6885               "Absolute incremental path cost";
6886             tailf:cli-full-command;
6887             type uint32 {
6888               tailf:info "<0-65535>;;Required incremental path cost improvement";
6889               range "0..65535";
6890             }
6891           }
6892         }
6893         leaf link-metrics {
6894           tailf:info "Require link metrics";
6895           description
6896             "Require link metrics";
6897           type uint32 {
6898             tailf:info "<0-65535>;;Minimum link cost threshold";
6899             range "0..65535";
6900           }
6901         }
6902       }
6903     }
6904   }
6905
6906   grouping interface-ospfv3-process-id-grouping {
6907     container authentication {
6908       tailf:info "Enable authentication";
6909       description
6910         "Enable authentication";
6911       leaf key-chain {
6912         tailf:info "Use a key-chain for cryptographic authentication keys";
6913         description
6914           "Use a key-chain for cryptographic authentication keys";
6915         tailf:cli-full-command;
6916         type string {
6917           tailf:info "WORD;;Key-chain name";
6918         }
6919       }
6920       leaf null {
6921         tailf:cli-full-command;
6922         tailf:info "Use no authentication";
6923         description
6924           "Use no authentication";
6925         type empty;
6926       }
6927     }
6928     uses interface-ospf-bfd-grouping;
6929     uses interface-ospfv3-cost-grouping;
6930     container database-filter {
6931       tailf:info "Filter OSPF LSA during synchronization and flooding";
6932       description
6933         "Filter OSPF LSA during synchronization and flooding";
6934       choice database {
6935         leaf all {
6936           tailf:info "Filter all LSA";
6937           description
6938             "Filter all LSA";
6939           type enumeration {
6940             enum "out" {
6941               tailf:info "Outgoing LSA";
6942             }
6943           }
6944         }
6945         leaf disable {
6946           tailf:info "Disable LSA Filter on this interface";
6947           description
6948             "Disable LSA Filter on this interface";
6949           type empty;
6950         }
6951       }
6952     }
6953     uses interface-ospf-dead-interval-grouping;
6954     container demand-circuit {
6955       tailf:info "OSPF demand circuit";
6956       description
6957         "OSPF demand circuit";
6958       presence "true";
6959       leaf disable {
6960         tailf:cli-full-command;
6961         tailf:info "Disable demand circuit on this interface";
6962         description
6963           "Disable demand circuit on this interface";
6964         type empty;
6965       }
6966       leaf ignore {
6967         tailf:cli-full-command;
6968         tailf:info "Ignore demand circuit auto-negotiation requests";
6969         description
6970           "Ignore demand circuit auto-negotiation requests";
6971         type empty;
6972       }
6973     }
6974     container flood-reduction {
6975       tailf:info "OSPF Flood Reduction";
6976       description
6977         "OSPF Flood Reduction";
6978       presence "true";
6979       leaf disable {
6980         tailf:info "Disable Flood Reduction on this interface";
6981         type empty;
6982       }
6983     }
6984     uses interface-ospf-hello-interval-grouping;
6985     uses interface-ospfv3-manet-grouping;
6986     container mtu-ignore {
6987       tailf:info "Ignores the MTU in DBD packets";
6988       description
6989         "Ignores the MTU in DBD packets";
6990       presence "true";
6991       leaf disable {
6992         tailf:info "Disable Ingore MTU on this interface";
6993         description
6994           "Disable Ingore MTU on this interface";
6995         type empty;
6996       }
6997     }
6998     container multi-area {
6999       tailf:info "Set the OSPF multi-area ID";
7000       description
7001         "Set the OSPF multi-area ID";
7002       tailf:cli-sequence-commands;
7003       tailf:cli-compact-syntax;
7004       leaf id {
7005         tailf:cli-drop-node-name;
7006         type union {
7007           type uint32 {
7008             tailf:info "<0-4294967295>;;OSPF multi-area ID as a decimal value";
7009             range "0..4294967295";
7010           }
7011           type inet:ipv4-address {
7012             tailf:info "A.B.C.D;;OSPF multi-area ID in IP address format";
7013           }
7014         }
7015       }
7016       leaf cost {
7017         tailf:info "Interface cost";
7018         description
7019           "Interface cost";
7020         tailf:cli-optional-in-sequence;
7021         tailf:cli-full-command;
7022         type uint32 {
7023           tailf:info " <1-65535>;;Cost";
7024           range "1..65535";
7025         }
7026       }
7027       leaf disable {
7028         tailf:info "disable OSPF multi-area";
7029         description
7030           "disable OSPF multi-area";
7031         tailf:cli-optional-in-sequence;
7032         tailf:cli-full-command;
7033         type empty;
7034       }
7035     }
7036     uses interface-ospf-neighbor-grouping;
7037     uses interface-ospf-network-grouping;
7038     uses interface-ospf-prefix-suppression-grouping;
7039     uses interface-ospf-priority-grouping;
7040     uses interface-ospf-retransmit-interval-grouping;
7041     container shutdown {
7042       tailf:info "Shut down the interface in OSPFv3";
7043       description
7044         "Shut down the interface in OSPFv3";
7045       presence "true";
7046       leaf disable {
7047         tailf:info "Disable inherited shutdown";
7048         description
7049           "Disable inherited shutdown";
7050         type empty;
7051       }
7052     }
7053     uses interface-ospf-transmit-delay-grouping;
7054   }
7055
7056   grouping interface-ip-monitor-grouping {
7057     container monitor {
7058       tailf:info "Apply a Flow Monitor";
7059       description
7060         "Apply a Flow Monitor";
7061       tailf:cli-sequence-commands;
7062       tailf:cli-compact-syntax;
7063       leaf name {
7064         tailf:cli-drop-node-name;
7065         type string {
7066           tailf:info "name;;User defined";
7067         }
7068       }
7069       leaf way {
7070         tailf:cli-drop-node-name;
7071         type enumeration {
7072           enum "input" {
7073             tailf:info "Apply Flow Monitor on input traffic";
7074           }
7075           enum "multicast" {
7076             tailf:info "Apply Flow Monitor on multicast traffic";
7077           }
7078           enum "output" {
7079             tailf:info "Apply Flow Monitor on output traffic";
7080           }
7081           enum "sampler" {
7082             tailf:info "Optional Sampler to apply to this Flow Monitor";
7083           }
7084           enum "unicast" {
7085             tailf:info "Apply Flow Monitor on unicast traffic";
7086           }
7087         }
7088       }
7089       leaf next {
7090         tailf:cli-drop-node-name;
7091         when "../way = 'multicast' or ../way = 'unicast'";
7092         type enumeration {
7093           enum "input" {
7094             tailf:info "Apply Flow Monitor on input traffic";
7095           }
7096           enum "output" {
7097             tailf:info "Apply Flow Monitor on output traffic";
7098           }
7099         }
7100       }
7101     }
7102   }
7103
7104   grouping interface-ip-wccp-group-listen-grouping {
7105     leaf group-listen {
7106       tailf:info "Listen for multicasted WCCP protocol packets";
7107       description
7108         "Listen for multicasted WCCP protocol packets";
7109       tailf:cli-full-command;
7110       type empty;
7111     }
7112     container redirect {
7113       tailf:info "Set packet redirection options for the service";
7114       description
7115         "Set packet redirection options for the service";
7116       leaf in {
7117         tailf:info "Redirect to a Cache Engine appropriate inbound packets";
7118         description
7119           "Redirect to a Cache Engine appropriate inbound packets";
7120         tailf:cli-full-command;
7121         type empty;
7122       }
7123       leaf out {
7124         tailf:info "Redirect to a Cache Engine appropriate outbound packets";
7125         description
7126           "Redirect to a Cache Engine appropriate outbound packets";
7127         tailf:cli-full-command;
7128         type empty;
7129       }
7130     }
7131   }
7132
7133   grouping interface-ip-wccp-grouping {
7134     list wccp-list {
7135       tailf:cli-drop-node-name;
7136       tailf:cli-suppress-mode;
7137       key "id";
7138       leaf id {
7139         type uint8 {
7140           tailf:info "<0-254>;;Dynamically defined service identifier number";
7141           range "0..254";
7142         }
7143       }
7144       uses interface-ip-wccp-group-listen-grouping;
7145     }
7146     container web-cache {
7147       tailf:info "Standard web caching service";
7148       description
7149         "Standard web caching service";
7150       uses interface-ip-wccp-group-listen-grouping;
7151     }
7152   }
7153
7154   grouping interface-common-grouping {
7155     container cemoudp {
7156       tailf:info "cemoudp";
7157       description
7158         "cemoudp";
7159       container reserve {
7160         leaf acr {
7161           type uint8;
7162         }
7163       }
7164     }
7165     container crypto {
7166       tailf:info "Encryption/Decryption commands";
7167       description
7168         "Encryption/Decryption commands";
7169       container map {
7170         tailf:info "Assign a Crypto Map";
7171         description
7172           "Assign a Crypto Map";
7173         tailf:cli-sequence-commands;
7174         tailf:cli-compact-syntax;
7175         leaf tag {
7176           tailf:cli-drop-node-name;
7177           type string {
7178             tailf:info "WORD;;Crypto Map tag";
7179           }
7180         }
7181         leaf redundancy {
7182           tailf:info "enable redundancy";
7183           description
7184             "enable redundancy";
7185           tailf:cli-optional-in-sequence;
7186           type string {
7187             tailf:info "WORD  Name of IP Redundancy Group";
7188           }
7189         }
7190         leaf stateful {
7191           tailf:info "enable stateful failover";
7192           description
7193             "enable stateful failover";
7194           tailf:cli-optional-in-sequence;
7195           type empty;
7196         }
7197       }
7198       container ipsec {
7199         tailf:info "Set IPSec parameters";
7200         description
7201           "Set IPSec parameters";
7202         leaf df-bit {
7203           tailf:info "Handling of encapsulated DF bit.";
7204           description
7205             "Handling of encapsulated DF bit.";
7206           type enumeration {
7207             enum "clear" {
7208               tailf:info "Clear DF bit for encapsulated packets.";
7209             }
7210             enum "copy" {
7211               tailf:info "Copy DF bit from inner for encapsulated packets.";
7212             }
7213             enum "set" {
7214               tailf:info "Set DF bit for encapsulated packets.";
7215             }
7216           }
7217         }
7218         leaf fragmentation {
7219           tailf:info "Handling of fragmentation of near-MTU sized packets";
7220           description
7221             "Handling of fragmentation of near-MTU sized packets";
7222           type enumeration {
7223             enum "after-encryption" {
7224               tailf:info "Perform fragmentation of large packets after IPSec encapsulation";
7225             }
7226             enum "before-encryption" {
7227               tailf:info "Perform fragmentation of large packets before IPSec encapsulation.";
7228             }
7229           }
7230         }
7231       }
7232     }
7233     leaf description {
7234       tailf:info "Interface specific description";
7235       description
7236         "Interface specific description";
7237       tailf:cli-multi-value;
7238       tailf:cli-full-command;
7239       type string {
7240         length "0..240";
7241       }
7242     }
7243     container mab {
7244       presence "true";
7245       leaf eap {
7246         type empty;
7247       }
7248     }
7249     container l2protocol-tunnel {
7250       tailf:info "Tunnel Layer2 protocols";
7251       description
7252         "Tunnel Layer2 protocols";
7253       tailf:cli-delete-when-empty;
7254       presence "true";
7255       leaf cdp {
7256         tailf:info "Cisco Discovery Protocol";
7257         description
7258           "Cisco Discovery Protocol";
7259         type empty;
7260       }
7261       container drop-threshold {
7262         tailf:info "Set drop threshold for protocol packets";
7263         description
7264           "Set drop threshold for protocol packets";
7265         leaf packet-rate {
7266           tailf:cli-drop-node-name;
7267           type uint16 {
7268             tailf:info "<1-4096>;;Packets/sec rate beyond which protocol packets will be dropped";
7269             range "1..4096";
7270           }
7271         }
7272         leaf cdp {
7273           tailf:info "Cisco Discovery Protocol";
7274           description
7275             "Cisco Discovery Protocol";
7276           type uint16 {
7277             tailf:info "<1-4096>;;Packets/sec rate beyond which protocol packets will be dropped";
7278             range "1..4096";
7279           }
7280         }
7281         leaf stp {
7282           tailf:info "Spanning Tree Protocol";
7283           description
7284             "Spanning Tree Protocol";
7285           type uint16 {
7286             tailf:info "<1-4096>;;Packets/sec rate beyond which protocol packets will be dropped";
7287             range "1..4096";
7288           }
7289         }
7290         leaf vtp {
7291           tailf:info "Vlan Trunking Protocol";
7292           description
7293             "Vlan Trunking Protocol";
7294           type uint16 {
7295             tailf:info "<1-4096>;;Packets/sec rate beyond which protocol packets will be dropped";
7296             range "1..4096";
7297           }
7298         }
7299       }
7300       container shutdown-threshold {
7301         tailf:info "Set shutdown threshold for protocol packets";
7302         description
7303           "Set shutdown threshold for protocol packets";
7304         leaf packet-rate {
7305           tailf:cli-drop-node-name;
7306           type uint16 {
7307             tailf:info "<1-4096>;;Packets/sec rate beyond which interface is put to err-disable";
7308             range "1..4096";
7309           }
7310         }
7311         leaf cdp {
7312           tailf:info "Cisco Discovery Protocol";
7313           description
7314             "Cisco Discovery Protocol";
7315           type uint16 {
7316             tailf:info "<1-4096>;;Packets/sec rate beyond which interface is put to err-disable";
7317             range "1..4096";
7318           }
7319         }
7320         leaf stp {
7321           tailf:info "Spanning Tree Protocol";
7322           description
7323             "Spanning Tree Protocol";
7324           type uint16 {
7325             tailf:info "<1-4096>;;Packets/sec rate beyond which interface is put to err-disable";
7326             range "1..4096";
7327           }
7328         }
7329         leaf vtp {
7330           tailf:info "Vlan Trunking Protocol";
7331           description
7332             "Vlan Trunking Protocol";
7333           type uint16 {
7334             tailf:info "<1-4096>;;Packets/sec rate beyond which interface is put to err-disable";
7335             range "1..4096";
7336           }
7337         }
7338       }
7339       leaf stp {
7340         tailf:info "Spanning Tree Protocol";
7341         description
7342           "Spanning Tree Protocol";
7343         type empty;
7344       }
7345       leaf vtp {
7346         tailf:info "Vlan Trunking Protocol";
7347         description
7348           "Vlan Trunking Protocol";
7349         type empty;
7350       }
7351     }
7352     container encapsulation {
7353       tailf:info "Set encapsulation type for an interface";
7354       description
7355         "Set encapsulation type for an interface";
7356       container dot1Q {
7357         tailf:info "IEEE 802.1Q Virtual LAN";
7358         description
7359           "IEEE 802.1Q Virtual LAN";
7360         tailf:cli-sequence-commands;
7361         tailf:cli-compact-syntax;
7362         leaf vlan-id {
7363           tailf:cli-drop-node-name;
7364           type uint16 {
7365             tailf:info "<1-4094>;;IEEE 802.1Q VLAN ID required";
7366             range "1..4094";
7367           }
7368         }
7369         leaf native {
7370           tailf:info "Make this as native vlan";
7371           description
7372             "Make this as native vlan";
7373           type empty;
7374         }
7375       }
7376       container isl {
7377         tailf:info "Inter Switch Link - Virtual LAN encapsulation";
7378         description
7379           "Inter Switch Link - Virtual LAN encapsulation";
7380         tailf:cli-sequence-commands;
7381         tailf:cli-compact-syntax;
7382         leaf vlan-id {
7383           tailf:cli-drop-node-name;
7384           type uint16 {
7385             tailf:info "<1-4095>;;Virtual LAN Identifier.";
7386             range "1..4095";
7387           }
7388         }
7389       }
7390       container ppp {
7391         tailf:info "Point-to-Point protocol";
7392         description
7393           "Point-to-Point protocol";
7394         presence "true";
7395       }
7396       container slip {
7397         tailf:info "Serial Line IP";
7398         description
7399           "Serial Line IP";
7400         presence "true";
7401       }
7402       container frame-relay {
7403         tailf:info "Frame Relay networks";
7404         description
7405           "Frame Relay networks";
7406         tailf:cli-delete-when-empty;
7407         presence "true";
7408         leaf ietf {
7409           tailf:info "Use RFC1490/RFC2427 encapsulation";
7410           description
7411             "Use RFC1490/RFC2427 encapsulation";
7412           type empty;
7413         }
7414       }
7415     }
7416     container fair-queue-conf {
7417       tailf:cli-no-keyword;
7418       tailf:cli-drop-node-name;
7419       when "not(../name[contains(.,'.')])" {
7420         tailf:dependency "../name";
7421       }
7422       leaf fair-queue {
7423         tailf:cli-boolean-no;
7424         tailf:cli-trim-default;
7425         type boolean;
7426       }
7427     }
7428     container fair-queue {
7429       tailf:info "Enable Fair Queuing on an Interface";
7430       description
7431         "Enable Fair Queuing on an Interface";
7432       tailf:cli-incomplete-no;
7433       leaf incomplete {
7434         type empty;
7435       }
7436     }
7437     container flowcontrol {
7438       tailf:info "Configure flow operation.";
7439       description
7440         "Configure flow operation.";
7441       leaf receive {
7442         tailf:info "Configure receiving flow operation";
7443         description
7444           "Configure receiving flow operation";
7445         type enumeration {
7446           enum "desired" {
7447             tailf:info "Allow but do not require flow-control packets on port";
7448           }
7449           enum "off" {
7450             tailf:info "Disable flow-control packets on port";
7451           }
7452           enum "on" {
7453             tailf:info "Enable flow-control packets on port";
7454           }
7455         }
7456       }
7457       leaf send {
7458         tailf:info "Configure sending flow operation";
7459         description
7460           "Configure sending flow operation";
7461         type enumeration {
7462           enum "desired" {
7463             tailf:info "Allow but do not require flow-control packets on port";
7464           }
7465           enum "off" {
7466             tailf:info "Disable flow-control packets on port";
7467           }
7468           enum "on" {
7469             tailf:info "Enable flow-control packets on port";
7470           }
7471         }
7472       }
7473     }
7474     choice keepalive-choice {
7475       leaf keepalive {
7476         tailf:info "Enable keepalive";
7477         description
7478           "Enable keepalive";
7479         tailf:cli-boolean-no;
7480         type boolean;
7481       }
7482       container keepalive-settings {
7483         tailf:cli-drop-node-name;
7484         container keepalive {
7485           tailf:info "Enable keepalive";
7486           description
7487             "Enable keepalive";
7488           tailf:cli-sequence-commands;
7489           tailf:cli-compact-syntax;
7490           presence "true";
7491           leaf period {
7492             tailf:cli-drop-node-name;
7493             type uint16 {
7494               tailf:info "<0-32767>;;Keepalive period (default 10 seconds)";
7495               range "0..32767";
7496             }
7497           }
7498           leaf retries {
7499             tailf:cli-drop-node-name;
7500             tailf:cli-optional-in-sequence;
7501             type uint8 {
7502               tailf:info "<1-255>;;Keepalive retries";
7503             }
7504           }
7505         }
7506       }
7507     }
7508     container lisp {
7509       tailf:info "Locator/ID Separation Protocol";
7510       description
7511         "Locator/ID Separation Protocol";
7512       leaf extended-subnet-mode {
7513         tailf:info "Configures to enable extended subnet mode on the interface";
7514         description
7515           "Configures to enable extended subnet mode on the interface";
7516         tailf:cli-full-command;
7517         type empty;
7518       }
7519       container mobility {
7520         tailf:info "Configures to allow EID mobility on interface";
7521         description
7522           "Configures to allow EID mobility on interface";
7523         container dynamic-eid {
7524           tailf:cli-drop-node-name;
7525           tailf:cli-sequence-commands;
7526           tailf:cli-compact-syntax;
7527           leaf dynamic-eid-name {
7528             tailf:cli-drop-node-name;
7529             type string {
7530               tailf:info "WORD;;Name of the dynamic-EID to use";
7531             }
7532           }
7533           leaf nbr-proxy-reply {
7534             tailf:info "Neighbor proxy reply behavior for dynamic EID group";
7535             description
7536               "Neighbor proxy reply behavior for dynamic EID group";
7537             tailf:cli-optional-in-sequence;
7538             tailf:cli-incomplete-command;
7539             type empty;
7540           }
7541           leaf requests {
7542             tailf:info "Send neighbor proxy reply after reaching request threshold";
7543             description
7544               "Send neighbor proxy reply after reaching request threshold";
7545             tailf:cli-optional-in-sequence;
7546             type uint8 {
7547               tailf:info "<0-5>;;Requests threshold, 1 is the default";
7548               range "0..5";
7549             }
7550           }
7551         }
7552         container discover {
7553           tailf:info "Configure mobility dynamic EID discover settings";
7554           description
7555             "Configure mobility dynamic EID discover settings";
7556           leaf arp {
7557             tailf:info "Dynamic EID discover through ARP events on this interface";
7558             description
7559               "Dynamic EID discover through ARP events on this interface";
7560             type empty;
7561           }
7562         }
7563         container liveness {
7564           tailf:info "Configure mobility liveness settings";
7565           description
7566             "Configure mobility liveness settings";
7567           leaf test {
7568             tailf:info "Perform liveness test on dynamic-EID discovered on this interface";
7569             description
7570               "Perform liveness test on dynamic-EID discovered on this interface";
7571             tailf:cli-trim-default;
7572             tailf:cli-boolean-no;
7573             type boolean;
7574           }
7575           leaf ttl {
7576             tailf:info "Configures the TTL in the liveness test packet";
7577             description
7578               "Configures the TTL in the liveness test packet";
7579             type uint8 {
7580               tailf:info "<2-255>;;TTL in liveness test packet";
7581               range "2..255";
7582             }
7583           }
7584         }
7585       }
7586     }
7587     container snmp {
7588       tailf:info "Modify SNMP interface parameters";
7589       description
7590         "Modify SNMP interface parameters";
7591       container ifindex {
7592         tailf:info "Persist ifindex for the interface";
7593         description
7594           "Persist ifindex for the interface";
7595         choice ifindex-choice {
7596           leaf persist {
7597             tailf:info "Enable/Disable ifIndex persistence ";
7598             description
7599               "Enable/Disable ifIndex persistence ";
7600             type empty;
7601           }
7602           leaf clear {
7603             tailf:info "Clear Enable/Disable ifIndex persistence";
7604             description
7605               "Clear Enable/Disable ifIndex persistence";
7606             tailf:cli-trim-default;
7607             tailf:cli-boolean-no;
7608             type boolean;
7609           }
7610         }
7611       }
7612       container trap {
7613         tailf:info "Allow a specific SNMP trap";
7614         description
7615           "Allow a specific SNMP trap";
7616         leaf link-status {
7617           tailf:info "Allow SNMP LINKUP and LINKDOWN traps";
7618           description
7619             "Allow SNMP LINKUP and LINKDOWN traps";
7620           tailf:cli-boolean-no;
7621           tailf:cli-trim-default;
7622           tailf:cli-full-command;
7623           type boolean;
7624         }
7625         container link-status-capas {
7626           tailf:cli-drop-node-name;
7627           container link-status {
7628             tailf:info "Allow SNMP LINKUP and LINKDOWN traps";
7629             description
7630               "Allow SNMP LINKUP and LINKDOWN traps";
7631             container permit {
7632               tailf:info "Permit the following capability";
7633               description
7634                 "Permit the following capability";
7635               leaf duplicates {
7636                 tailf:info "Permit duplicate SNMP LINKUP and LINKDOWN traps";
7637                 description
7638                   "Permit duplicate SNMP LINKUP and LINKDOWN traps";
7639                 type empty;
7640               }
7641             }
7642           }
7643         }
7644       }
7645     }
7646     container bfd {
7647       tailf:info "BFD interface configuration commands";
7648       description
7649         "BFD interface configuration commands";
7650       leaf echo {
7651         tailf:info "Use echo adjunct as bfd detection mechanism";
7652         description
7653           "Use echo adjunct as bfd detection mechanism";
7654         type empty;
7655       }
7656       leaf template {
7657         tailf:info "BFD template";
7658         description
7659           "BFD template";
7660         type string {
7661           tailf:info "WORD;;bfd template name";
7662         }
7663       }
7664       container interval {
7665         tailf:info "Transmit interval between BFD packets";
7666         description
7667           "Transmit interval between BFD packets";
7668         tailf:cli-reset-container;
7669         tailf:cli-compact-syntax;
7670         tailf:cli-sequence-commands;
7671         leaf msecs {
7672           tailf:cli-drop-node-name;
7673           tailf:cli-incomplete-command;
7674           type uint16 {
7675             tailf:info "<100-999>;;Milliseconds";
7676             range "100..999";
7677           }
7678         }
7679         leaf min_rx {
7680           tailf:info "Minimum receive interval capability";
7681           description
7682             "Minimum receive interval capability";
7683           tailf:cli-incomplete-command;
7684           type uint16 {
7685             tailf:info "<100-999>;;Milliseconds";
7686             range "100..999";
7687           }
7688         }
7689         leaf multiplier {
7690           tailf:info "Multiplier value used to compute holddown";
7691           description
7692             "Multiplier value used to compute holddown";
7693           type uint8 {
7694             tailf:info "<3-50>;;value used to multiply the interval";
7695             range "3..50";
7696           }
7697         }
7698       }
7699     }
7700     container bandwidth {
7701       tailf:info "Set bandwidth informational parameter";
7702       description
7703         "Set bandwidth informational parameter";
7704       container receive {
7705         tailf:info "Specify receive-side bandwidth";
7706         description
7707           "Specify receive-side bandwidth";
7708         tailf:cli-compact-syntax;
7709         leaf inherit {
7710           tailf:info "Specify how bandwidth is inherited";
7711           description
7712             "Specify how bandwidth is inherited";
7713           type empty;
7714         }
7715         leaf kilobits {
7716           tailf:cli-drop-node-name;
7717           type uint32 {
7718             tailf:info "<1-10000000>;;Bandwidth in kilobits";
7719             range "1..10000000";
7720           }
7721         }
7722       }
7723       container inherit {
7724         tailf:info "Specify how bandwidth is inherited";
7725         description
7726           "Specify how bandwidth is inherited";
7727         presence "true";
7728         leaf kilobits {
7729           tailf:cli-drop-node-name;
7730           type uint32 {
7731             tailf:info "<1-10000000>;;Bandwidth in kilobits";
7732             range "1..10000000";
7733           }
7734         }
7735       }
7736       leaf qos-reference {
7737         tailf:info "Reference bandwidth for QOS";
7738         description
7739           "Reference bandwidth for QOS";
7740         type uint32 {
7741           tailf:info "<1-10000000>;;Bandwidth in kilobits";
7742           range "1..10000000";
7743         }
7744       }
7745       leaf kilobits {
7746         tailf:cli-drop-node-name;
7747         type uint32 {
7748           tailf:info "<1-10000000>;;Bandwidth in kilobits";
7749           range "1..10000000";
7750         }
7751       }
7752     }
7753     container cdp {
7754       tailf:info "CDP interface subcommands";
7755       description
7756         "CDP interface subcommands";
7757       leaf enable {
7758         tailf:info "Enable CDP on interface";
7759         description
7760           "Enable CDP on interface";
7761         tailf:cli-boolean-no;
7762         tailf:cli-trim-default;
7763         tailf:cli-full-command;
7764         type boolean;
7765       }
7766       container tlv {
7767         tailf:info "Enable exchange of specific tlv information";
7768         description
7769           "Enable exchange of specific tlv information";
7770         container app {
7771           tailf:info "Enable/Configure Application TLV";
7772           description
7773             "Enable/Configure Application TLV";
7774           tailf:cli-display-separated;
7775           tailf:cli-compact-syntax;
7776           tailf:cli-reset-container;
7777           tailf:cli-sequence-commands;
7778           presence "true";
7779           leaf tlvtype {
7780             tailf:info "Configure APP TLV";
7781             description
7782               "Configure APP TLV";
7783             tailf:cli-incomplete-command;
7784             type uint16 {
7785               tailf:info "Configure App TLV Type information";
7786               range "1001..65535";
7787             }
7788           }
7789           leaf value {
7790             tailf:info "Configure App TLV Value information";
7791             description
7792               "Configure App TLV Value information";
7793             type string {
7794               tailf:info "WORD;;Configure App TLV value information";
7795             }
7796           }
7797         }
7798         leaf server-location {
7799           tailf:info "Enable CDP location server on interface";
7800           description
7801             "Enable CDP location server on interface";
7802           tailf:cli-full-command;
7803           type empty;
7804         }
7805         leaf location {
7806           tailf:info "Exchange location information";
7807           description
7808             "Exchange location information";
7809           tailf:cli-full-command;
7810           type empty;
7811         }
7812       }
7813     }
7814     container dampening {
7815       tailf:info "Enable event dampening";
7816       description
7817         "Enable event dampening";
7818       presence "true";
7819       leaf dampening-time {
7820         tailf:cli-drop-node-name;
7821         tailf:cli-delete-container-on-delete;
7822         tailf:info "<1-30>;;Half-life time for penalty";
7823         description
7824           "<1-30>;;Half-life time for penalty";
7825         type uint16 {
7826           range "1..30";
7827         }
7828       }
7829     }
7830     leaf if-state {
7831       type enumeration {
7832         enum "nhrp";
7833       }
7834     }
7835     leaf delay {
7836       tailf:info "Specify interface throughput delay";
7837       description
7838         "Specify interface throughput delay";
7839       type uint32 {
7840         tailf:info "<1-16777215>;;Throughput delay (tens of microseconds)";
7841         range "1..16777215";
7842       }
7843     }
7844     container domain {
7845       tailf:info "Specify a domain";
7846       description
7847         "Specify a domain";
7848       tailf:cli-compact-syntax;
7849       leaf name {
7850         tailf:cli-drop-node-name;
7851         type string {
7852           tailf:info "WORD;;Domain name";
7853         }
7854       }
7855       leaf path {
7856         tailf:info "Specify a service provider for this interface";
7857         description
7858           "Specify a service provider for this interface";
7859         type string {
7860           tailf:info "WORD;;Specify the color of service provider";
7861         }
7862       }
7863       leaf internet-bound {
7864         tailf:display-when "../path";
7865         tailf:info "Specify Internet-bound interface";
7866         description
7867           "Specify Internet-bound interface";
7868         type empty;
7869       }
7870       leaf path-id {
7871         tailf:display-when "../path";
7872         tailf:info "Specify service provider path-id for this interface";
7873         description
7874           "Specify service provider path-id for this interface";
7875         type uint8 {
7876           tailf:info "<1-255>;;service provider path-id value";
7877         }
7878       }
7879       leaf path-last-resort {
7880         tailf:display-when "../path";
7881         tailf:info "Specify if you want this interface to be a path of last resort";
7882         description
7883           "Specify if you want this interface to be a path of last resort";
7884         type empty;
7885       }
7886       leaf zero-sla {
7887         tailf:display-when "../path";
7888         tailf:info "Specify if you want this interface to be a 0-sla interface";
7889         description
7890           "Specify if you want this interface to be a 0-sla interface";
7891         type empty;
7892       }
7893     }
7894     container hold-queue {
7895       tailf:info "Set hold queue depth";
7896       description
7897         "Set hold queue depth";
7898       tailf:cli-compact-syntax;
7899       tailf:cli-reset-container;
7900       tailf:cli-sequence-commands;
7901       leaf queue-length {
7902         tailf:cli-drop-node-name;
7903         type uint16 {
7904           tailf:info "<0-4096>;;Queue length";
7905           range "0..4096";
7906         }
7907       }
7908       leaf direction {
7909         tailf:cli-drop-node-name;
7910         type enumeration {
7911           enum "in" {
7912             tailf:info "Input queue";
7913           }
7914           enum "out" {
7915             tailf:info "Output queue";
7916           }
7917         }
7918       }
7919     }
7920     container mpls {
7921       tailf:info "Configure MPLS interface parameters";
7922       description
7923         "Configure MPLS interface parameters";
7924       container accounting {
7925         tailf:info "Enable MPLS accounting on this interface";
7926         description
7927           "Enable MPLS accounting on this interface";
7928         container experimental {
7929           tailf:info "Count packets by MPLS experimental value on this interface";
7930           description
7931             "Count packets by MPLS experimental value on this interface";
7932           leaf input {
7933             tailf:info "received packets";
7934             description
7935               "received packets";
7936             type empty;
7937           }
7938           leaf output {
7939             tailf:info "transmitted packets";
7940             description
7941               "transmitted packets";
7942             type empty;
7943           }
7944         }
7945       }
7946       container bgp {
7947         tailf:info "MPLS BGP";
7948         description
7949           "MPLS BGP";
7950         leaf forwarding {
7951           tailf:info "Configure MPLS forwarding for directly connected BGP peers";
7952           description
7953             "Configure MPLS forwarding for directly connected BGP peers";
7954           type empty;
7955         }
7956       }
7957       leaf ip {
7958         tailf:info "Configure dynamic MPLS forwarding for IP";
7959         description
7960           "Configure dynamic MPLS forwarding for IP";
7961         tailf:cli-full-command;
7962         type empty;
7963       }
7964       container label {
7965         tailf:info "Label properties";
7966         description
7967           "Label properties";
7968         leaf protocol {
7969           tailf:info "Configure label/tag distribution protocol (LDP/TDP)";
7970           description
7971             "Configure label/tag distribution protocol (LDP/TDP)";
7972           type enumeration {
7973             enum "both" {
7974               tailf:info "Use LDP or TDP (Adapt to peer on multiaccess interface)";
7975             }
7976             enum "ldp" {
7977               tailf:code-name "lab_ldp";
7978               tailf:info "Use LDP (default)";
7979             }
7980             enum "tdp" {
7981               tailf:code-name "lab_tdp";
7982               tailf:info "Use TDP";
7983             }
7984           }
7985         }
7986       }
7987       container ldp {
7988         tailf:info "Configure Label Distribution Protocol (LDP) parameters";
7989         description
7990           "Configure Label Distribution Protocol (LDP) parameters";
7991         container discovery {
7992           tailf:info "Configure interface LDP Discovery parameters";
7993           description
7994             "Configure interface LDP Discovery parameters";
7995           leaf transport-address {
7996             tailf:info "Specify interface LDP transport address";
7997             description
7998               "Specify interface LDP transport address";
7999             type ldp-discovery-address-type;
8000           }
8001         }
8002       }
8003       leaf mtu {
8004         tailf:info "Set MPLS Maximum Transmission Unit";
8005         description
8006           "Set MPLS Maximum Transmission Unit";
8007         tailf:cli-full-command;
8008         type union {
8009           type uint16 {
8010             range "1501..1524";
8011             tailf:info "<1501-1524>;;MTU (baby giants bytes)";
8012           }
8013           type uint16 {
8014             range "64..1500";
8015             tailf:info "<64-1500>;;MTU (bytes)";
8016           }
8017           type uint16 {
8018             tailf:info "<64-9216>;;MTU size in bytes";
8019             range "64..9216";
8020           }
8021         }
8022       }
8023       container traffic-eng {
8024         tailf:info "Configure Traffic Engineering parameters";
8025         description
8026           "Configure Traffic Engineering parameters";
8027         leaf administrative-weight {
8028           tailf:info "Set the administrative weight for the interface";
8029           description
8030             "Set the administrative weight for the interface";
8031           tailf:cli-full-command;
8032           type uint32 {
8033             range "0..4294967295";
8034             tailf:info "<0-4294967295>;;Weight";
8035           }
8036         }
8037         leaf attribute-flags {
8038           tailf:info "Set user-defined interface attibute flags";
8039           description
8040             "Set user-defined interface attibute flags";
8041           tailf:cli-full-command;
8042           type string {
8043             tailf:info "<0x0-0xFFFFFFFF>;;Attribute flags";
8044           }
8045         }
8046         leaf backup-path {
8047           tailf:info "Configure an MPLS TE backup for this interface";
8048           description
8049             "Configure an MPLS TE backup for this interface";
8050           type string {
8051             tailf:info "Tunnel;;Tunnel interface";
8052           }
8053         }
8054         container flooding {
8055           tailf:info "Set flooding parameters";
8056           description
8057             "Set flooding parameters";
8058           container thresholds {
8059             tailf:info "Set flooding thresholds";
8060             description
8061               "Set flooding thresholds";
8062             leaf-list down {
8063               tailf:info "Set the thresholds for decreased resource availability";
8064               description
8065                 "Set the thresholds for decreased resource availability";
8066               tailf:cli-flat-list-syntax;
8067               type uint8 {
8068                 range "0..100";
8069                 tailf:info "<0-100>;;decreased bandwidth usage (percent)";
8070               }
8071             }
8072             leaf-list up {
8073               tailf:info "Set the thresholds for increased resource availability";
8074               description
8075                 "Set the thresholds for increased resource availability";
8076               tailf:cli-flat-list-syntax;
8077               type uint8 {
8078                 range "0..100";
8079                 tailf:info "<0-100>;;increased bandwidth usage (percent)";
8080               }
8081             }
8082           }
8083         }
8084         leaf tunnels {
8085           tailf:info "enable MPLS Traffic Engineering tunnels";
8086           description
8087             "enable MPLS Traffic Engineering tunnels";
8088           tailf:cli-full-command;
8089           type empty;
8090         }
8091       }
8092     }
8093     choice vrf-choice {
8094       container ip-vrf {
8095         tailf:cli-no-keyword;
8096         tailf:cli-drop-node-name;
8097         container ip {
8098           container vrf {
8099             leaf forwarding {
8100               tailf:info "Configure forwarding table";
8101               description
8102                 "Configure forwarding table";
8103               type string {
8104                 tailf:info "WORD;;VRF name";
8105               }
8106               tailf:non-strict-leafref {
8107                 path "/ios:native/ip/vrf/name";
8108               }
8109             }
8110           }
8111         }
8112       }
8113       container vrf {
8114         tailf:info "VPN Routing/Forwarding parameters on the interface";
8115         description
8116           "VPN Routing/Forwarding parameters on the interface";
8117         leaf forwarding {
8118           tailf:info "Configure forwarding table";
8119           description
8120             "Configure forwarding table";
8121           type string {
8122             tailf:info "WORD;;VRF name";
8123           }
8124           tailf:non-strict-leafref {
8125             path "/ios:native/vrf/definition/name";
8126           }
8127         }
8128       }
8129     }
8130     container ip {
8131       tailf:info "Interface Internet Protocol config commands";
8132       description
8133         "Interface Internet Protocol config commands";
8134       container access-group {
8135         tailf:info "Specify access control for packets";
8136         description
8137           "Specify access control for packets";
8138         container in {
8139           tailf:cli-drop-node-name;
8140           tailf:cli-incomplete-command;
8141           tailf:cli-sequence-commands;
8142           tailf:cli-compact-syntax;
8143           choice apply-type {
8144             case apply-common {
8145               container common-acl {
8146                 tailf:cli-drop-node-name;
8147                 tailf:cli-incomplete-command;
8148                 tailf:cli-sequence-commands;
8149                 tailf:cli-compact-syntax;
8150                 tailf:cli-flatten-container;
8151                 leaf common {
8152                   tailf:info "specify ipv4 common ACL for packet filtering";
8153                   description
8154                     "specify ipv4 common ACL for packet filtering";
8155                   tailf:cli-incomplete-command;
8156                   type exp-acl-type;
8157                   mandatory true;
8158                 }
8159                 leaf in {
8160                   tailf:cli-full-command;
8161                   tailf:info "inbound packets";
8162                   description
8163                     "inbound packets";
8164                   type empty;
8165                 }
8166               }
8167             }
8168             case apply-intf {
8169               container acl {
8170                 tailf:cli-drop-node-name;
8171                 tailf:cli-incomplete-command;
8172                 tailf:cli-sequence-commands;
8173                 tailf:cli-compact-syntax;
8174                 tailf:cli-flatten-container;
8175                 leaf acl-name {
8176                   tailf:cli-drop-node-name;
8177                   tailf:cli-incomplete-command;
8178                   type exp-acl-type;
8179                   mandatory true;
8180                 }
8181                 leaf in {
8182                   tailf:cli-full-command;
8183                   tailf:info "inbound packets";
8184                   description
8185                     "inbound packets";
8186                   type empty;
8187                 }
8188               }
8189             }
8190           }
8191         }
8192         container out {
8193           tailf:cli-drop-node-name;
8194           tailf:cli-incomplete-command;
8195           tailf:cli-sequence-commands;
8196           tailf:cli-compact-syntax;
8197           choice apply-type {
8198             case apply-common {
8199               container common-acl {
8200                 tailf:cli-drop-node-name;
8201                 tailf:cli-incomplete-command;
8202                 tailf:cli-sequence-commands;
8203                 tailf:cli-compact-syntax;
8204                 tailf:cli-flatten-container;
8205                 leaf common {
8206                   tailf:info "specify ipv4 common ACL for packet filtering";
8207                   description
8208                     "specify ipv4 common ACL for packet filtering";
8209                   tailf:cli-incomplete-command;
8210                   type exp-acl-type;
8211                   mandatory true;
8212                 }
8213                 leaf out {
8214                   tailf:cli-full-command;
8215                   tailf:info "outbound packets";
8216                   description
8217                     "outbound packets";
8218                   type empty;
8219                 }
8220               }
8221             }
8222             case apply-intf {
8223               container acl {
8224                 tailf:cli-drop-node-name;
8225                 tailf:cli-incomplete-command;
8226                 tailf:cli-sequence-commands;
8227                 tailf:cli-compact-syntax;
8228                 tailf:cli-flatten-container;
8229                 leaf acl-name {
8230                   tailf:cli-drop-node-name;
8231                   tailf:cli-incomplete-command;
8232                   type exp-acl-type;
8233                   mandatory true;
8234                 }
8235                 leaf out {
8236                   tailf:cli-full-command;
8237                   tailf:info "outbound packets";
8238                   description
8239                     "outbound packets";
8240                   type empty;
8241                 }
8242               }
8243             }
8244           }
8245         }
8246       }
8247       container arp {
8248         tailf:info "Configure ARP features";
8249         description
8250           "Configure ARP features";
8251         container inspection {
8252           tailf:info "Arp Inspection configuration";
8253           description
8254             "Arp Inspection configuration";
8255           container limit {
8256             tailf:info "Configure Rate limit of incoming ARP packets";
8257             description
8258               "Configure Rate limit of incoming ARP packets";
8259             leaf none {
8260               tailf:info "No limit";
8261               description
8262                 "No limit";
8263               tailf:cli-full-command;
8264               type empty;
8265             }
8266             leaf rate {
8267               tailf:info "Rate Limit";
8268               description
8269                 "Rate Limit";
8270               type uint32 {
8271                 tailf:info "<0-2048>;;Packets per second";
8272               }
8273             }
8274           }
8275           leaf trust {
8276             tailf:info "Configure Trust state";
8277             description
8278               "Configure Trust state";
8279             tailf:cli-full-command;
8280             type empty;
8281           }
8282         }
8283       }
8284       container vrf {
8285         tailf:info "VPN Routing/Forwarding parameters on the interface";
8286         description
8287           "VPN Routing/Forwarding parameters on the interface";
8288         leaf receive {
8289           tailf:info "Add Interface Address into VRF Table";
8290           description
8291             "Add Interface Address into VRF Table";
8292           tailf:cli-full-command;
8293           type string {
8294             tailf:info "WORD;;Table name";
8295           }
8296         }
8297         leaf sitemap {
8298           tailf:info "Configure route-map for routesreceived from this site";
8299           description
8300             "Configure route-map for routesreceived from this site";
8301           tailf:cli-full-command;
8302           type string {
8303             tailf:info "WORD;;Name of the route-map";
8304           }
8305         }
8306       }
8307       choice address-choice {
8308         leaf unnumbered {
8309           tailf:info "Enable IP processing without an explicit address";
8310           description
8311             "Enable IP processing without an explicit address";
8312           type string;
8313         }
8314         container no-address {
8315           tailf:cli-drop-node-name;
8316           leaf address {
8317             tailf:cli-boolean-no;
8318             tailf:cli-trim-default;
8319             type boolean;
8320             default "true";
8321           }
8322         }
8323         container address {
8324           tailf:info "Set the IP address of an interface";
8325           description
8326             "Set the IP address of an interface";
8327           tailf:cli-incomplete-command;
8328           tailf:cli-incomplete-no;
8329           choice address-choice {
8330             case fixed-case {
8331               container primary {
8332                 tailf:cli-drop-node-name;
8333                 tailf:cli-sequence-commands;
8334                 tailf:cli-compact-syntax;
8335                 tailf:cli-incomplete-command;
8336                 tailf:cli-incomplete-no;
8337                 leaf address {
8338                   tailf:cli-incomplete-command;
8339                   tailf:cli-drop-node-name;
8340                   tailf:cli-incomplete-no;
8341                   tailf:cli-diff-dependency "/ios:native/vrf/definition/address-family/ipv4";
8342                   tailf:cli-diff-dependency "../../../../vrf/forwarding";
8343                   mandatory true;
8344                   type inet:ipv4-address {
8345                     tailf:info "A.B.C.D;;IP address";
8346                   }
8347                 }
8348                 leaf mask {
8349                   tailf:cli-drop-node-name;
8350                   mandatory true;
8351                   type inet:ipv4-address {
8352                     tailf:info "A.B.C.D;;IP subnet mask";
8353                   }
8354                 }
8355               }
8356               list secondary {
8357                 key "address";
8358                 tailf:cli-incomplete-command;
8359                 tailf:cli-sequence-commands;
8360                 tailf:cli-compact-syntax;
8361                 tailf:cli-drop-node-name;
8362                 tailf:cli-suppress-mode;
8363                 tailf:cli-incomplete-no;
8364                 leaf address {
8365                   tailf:cli-incomplete-no;
8366                   type inet:ipv4-address {
8367                     tailf:info "A.B.C.D;;IP address";
8368                   }
8369                 }
8370                 leaf mask {
8371                   tailf:cli-drop-node-name;
8372                   tailf:cli-incomplete-command;
8373                   mandatory true;
8374                   type inet:ipv4-address {
8375                     tailf:info "A.B.C.D;;IP subnet mask";
8376                   }
8377                 }
8378                 leaf secondary {
8379                   tailf:info "Make this IP address a secondary address";
8380                   description
8381                     "Make this IP address a secondary address";
8382                   type empty;
8383                 }
8384               }
8385             }
8386             case dhcp-case {
8387               container dhcp {
8388                 tailf:info "IP Address negotiated via DHCP";
8389                 description
8390                   "IP Address negotiated via DHCP";
8391                 presence "IP Address negotiated via DHCP";
8392                 tailf:cli-sequence-commands;
8393                 container client-id {
8394                   tailf:info "Specify client-id to use";
8395                   description
8396                     "Specify client-id to use";
8397                   tailf:cli-flatten-container;
8398                   tailf:cli-optional-in-sequence;
8399                   tailf:cli-diff-dependency "/ios:native/interface";
8400                   uses ethernet-grouping;
8401                 }
8402                 leaf hostname {
8403                   tailf:info "Specify value for hostname option";
8404                   description
8405                     "Specify value for hostname option";
8406                   type string {
8407                     tailf:info "WORD;;hostname string";
8408                   }
8409                 }
8410               }
8411             }
8412           }
8413         }
8414       }
8415       leaf directed-broadcast {
8416         tailf:info "Enable forwarding of directed broadcasts";
8417         description
8418           "Enable forwarding of directed broadcasts";
8419         type exp-acl-type;
8420       }
8421       container flow {
8422         tailf:info "NetFlow related commands";
8423         description
8424           "NetFlow related commands";
8425         leaf ingress {
8426           tailf:info "Enable inbound NetFlow";
8427           description
8428             "Enable inbound NetFlow";
8429           type empty;
8430         }
8431         leaf egress {
8432           tailf:info "Enable outbound NetFlow";
8433           description
8434             "Enable outbound NetFlow";
8435           type empty;
8436         }
8437         uses interface-ip-monitor-grouping;
8438       }
8439       container hello-interval {
8440         tailf:info "Configures EIGRP-IPv4 hello interval";
8441         description
8442           "Configures EIGRP-IPv4 hello interval";
8443         tailf:cli-sequence-commands;
8444         tailf:cli-compact-syntax;
8445         leaf eigrp {
8446           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8447           description
8448             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8449           type uint16 {
8450             tailf:info "<1-65535>;;AS number";
8451           }
8452         }
8453         leaf seconds {
8454           tailf:cli-drop-node-name;
8455           description
8456             "Seconds between hello transmissions";
8457           type uint16 {
8458             tailf:info "<1-65535>;;Seconds between hello transmissions";
8459           }
8460         }
8461       }
8462       container authentication {
8463         tailf:info "authentication subcommands";
8464         description
8465           "authentication subcommands";
8466         container key-chain {
8467           tailf:info "key-chain";
8468           description
8469             "key-chain";
8470           tailf:cli-sequence-commands;
8471           tailf:cli-compact-syntax;
8472           leaf eigrp {
8473             tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8474             description
8475               "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8476             type uint16 {
8477               tailf:info "<1-65535>;;AS number";
8478             }
8479           }
8480           leaf name {
8481             tailf:cli-drop-node-name;
8482             description
8483               "name of key-chain";
8484             type string {
8485               tailf:info "WORD;;name of key-chain";
8486             }
8487           }
8488         }
8489         container mode {
8490           tailf:info "mode";
8491           description
8492             "mode";
8493           tailf:cli-sequence-commands;
8494           tailf:cli-compact-syntax;
8495           leaf eigrp {
8496             tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8497             description
8498               "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8499             type uint16 {
8500               tailf:info "<1-65535>;;AS number";
8501             }
8502           }
8503           leaf md5 {
8504             tailf:info "Keyed message digest";
8505             description
8506               "Keyed message digest";
8507             type empty;
8508           }
8509         }
8510       }
8511       container hold-time {
8512         tailf:info "Configures EIGRP-IPv4 hold time";
8513         description
8514           "Configures EIGRP-IPv4 hold time";
8515         tailf:cli-sequence-commands;
8516         tailf:cli-compact-syntax;
8517         leaf eigrp {
8518           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8519           description
8520             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
8521           type uint16 {
8522             tailf:info "<1-65535>;;AS number";
8523           }
8524         }
8525         leaf seconds {
8526           tailf:cli-drop-node-name;
8527           description
8528             "Seconds before neighbor is considered down";
8529           type uint16 {
8530             tailf:info "<1-65535>;;Seconds before neighbor is considered down";
8531           }
8532         }
8533       }
8534       container helper-address {
8535         tailf:info "Specify a destination address for UDP broadcasts";
8536         description
8537           "Specify a destination address for UDP broadcasts";
8538         tailf:cli-compact-syntax;
8539         tailf:cli-sequence-commands {
8540           tailf:cli-reset-siblings;
8541         }
8542         choice helper-choice {
8543           leaf global {
8544             tailf:info "Helper-address is global";
8545             description
8546               "Helper-address is global";
8547             tailf:cli-optional-in-sequence;
8548             type empty;
8549           }
8550           leaf vrf {
8551             tailf:info "VRF name for helper-address (if different from interface VRF)";
8552             description
8553               "VRF name for helper-address (if different from interface VRF)";
8554             tailf:cli-optional-in-sequence;
8555             tailf:cli-diff-dependency "/ios:native/ip/vrf";
8556             tailf:cli-diff-dependency "/ios:native/vrf/definition";
8557             type string {
8558               tailf:info "WORD;;VPN Routing/Forwarding instance name";
8559             }
8560           }
8561         }
8562         leaf address {
8563           tailf:cli-drop-node-name;
8564           type inet:ipv4-address {
8565             tailf:info "A.B.C.D;;IP destination address";
8566           }
8567         }
8568       }
8569       container nbar {
8570         tailf:info "Network-Based Application Recognition";
8571         description
8572           "Network-Based Application Recognition";
8573         container protocol-discovery {
8574           tailf:info "Enable protocol discovery for both ipv4 and ipv6";
8575           description
8576             "Enable protocol discovery for both ipv4 and ipv6";
8577           presence "true";
8578           leaf ipv4-ipv6 {
8579             tailf:cli-drop-node-name;
8580             type enumeration {
8581               enum "ipv4" {
8582                 tailf:info "Enable protocol discovery only for ipv4";
8583               }
8584               enum "ipv6" {
8585                 tailf:info "Enable protocol discovery only for ipv6";
8586               }
8587             }
8588           }
8589         }
8590       }
8591       container nhrp {
8592         tailf:info "NHRP interface subcommands";
8593         description
8594           "NHRP interface subcommands";
8595         container attribute {
8596           tailf:info "NHRP attribute set";
8597           description
8598             "NHRP attribute set";
8599           container set {
8600             tailf:info "attribute set";
8601             description
8602               "attribute set";
8603             list attr-type {
8604               tailf:cli-drop-node-name;
8605               tailf:cli-suppress-mode;
8606               key "attr-type";
8607               leaf attr-type {
8608                 tailf:info "attribute type";
8609                 description
8610                   "attribute type";
8611                 type string;
8612               }
8613               leaf attr-val {
8614                 tailf:info "attribute value";
8615                 description
8616                   "attribute value";
8617                 tailf:cli-drop-node-name;
8618                 type string;
8619               }
8620             }
8621           }
8622         }
8623         leaf authentication {
8624           tailf:info "Authentication string";
8625           description
8626             "authentication string";
8627           type string;
8628         }
8629         container cache {
8630           tailf:info "NHRP Cache related commands.";
8631           description
8632             "NHRP Cache related commands.";
8633           leaf non-authoritative {
8634             tailf:info "Mark cache entries non-authoritative";
8635             description
8636               "Mark cache entries non-authoritative";
8637             type empty;
8638           }
8639         }
8640         leaf connect {
8641           tailf:info "NHRP resolution request connect";
8642           description
8643             "NHRP event request id";
8644           type uint16 {
8645             range "1..65535";
8646           }
8647         }
8648         leaf group {
8649           type string;
8650         }
8651         leaf holdtime {
8652           tailf:info "Advertised holdtime";
8653           description
8654             "Number of seconds";
8655           type uint16 {
8656             range "1..65535";
8657           }
8658         }
8659         container interest {
8660           tailf:info "Specify an access list";
8661           description
8662             "Specify an access list";
8663           leaf acl-range {
8664             tailf:info "IP access list";
8665             description
8666               "IP access list";
8667             tailf:cli-drop-node-name;
8668             type uint8 {
8669               range "1..199";
8670             }
8671           }
8672           leaf none {
8673             tailf:info "No traffic is interesting.";
8674             description
8675               "No traffic is interesting.";
8676             type empty;
8677           }
8678         }
8679         container map {
8680           tailf:info "Map dest IP addresses to NBMA addresses";
8681           description
8682             "Map dest IP addresses to NBMA addresses";
8683           list dest-ipv4 {
8684             tailf:cli-drop-node-name;
8685             tailf:cli-suppress-mode;
8686             key "dest-ipv4";
8687             leaf dest-ipv4 {
8688               tailf:info "IP address of destination";
8689               description
8690                 "IP address of destination";
8691               type inet:ipv4-address;
8692             }
8693             list nbma-ipv4 {
8694               tailf:cli-drop-node-name;
8695               tailf:cli-suppress-mode;
8696               key "nbma-ipv4";
8697               leaf nbma-ipv4 {
8698                 tailf:info "IP NBMA address";
8699                 description
8700                   "IP NBMA address";
8701                 type inet:ipv4-address;
8702               }
8703               leaf ipv4 {
8704                 tailf:cli-drop-node-name;
8705                 type inet:ipv4-address;
8706               }
8707               leaf ipv6 {
8708                 tailf:cli-drop-node-name;
8709                 type inet:ipv6-address;
8710               }
8711             }
8712             list dest-mask {
8713               tailf:cli-drop-node-name;
8714               tailf:cli-suppress-mode;
8715               key "dest-mask";
8716               leaf dest-mask {
8717                 tailf:info "IP mask of destination";
8718                 description
8719                   "IP mask of destination";
8720                 type inet:ipv4-address;
8721               }
8722               leaf ipv4 {
8723                 tailf:cli-drop-node-name;
8724                 type inet:ipv4-address;
8725               }
8726               leaf ipv6 {
8727                 tailf:cli-drop-node-name;
8728                 type inet:ipv6-address;
8729               }
8730             }
8731             leaf nbma-ipv6 {
8732               tailf:cli-drop-node-name;
8733               type inet:ipv6-address;
8734             }
8735           }
8736           container multicast {
8737             tailf:info "Use this NBMA mapping for broadcasts/multicasts";
8738             description
8739               "Use this NBMA mapping for broadcasts/multicasts";
8740             leaf ipv4 {
8741               tailf:cli-drop-node-name;
8742               type inet:ipv4-address;
8743             }
8744             leaf ipv6 {
8745               tailf:cli-drop-node-name;
8746               type inet:ipv6-address;
8747             }
8748             leaf dynamic {
8749               tailf:info "Dynamically learn destinations from client registrations on hub";
8750               description
8751                 "Dynamically learn destinations from client registrations on hub";
8752               type empty;
8753             }
8754           }
8755           list group {
8756             tailf:cli-suppress-mode;
8757             key "name";
8758             leaf name {
8759               type string;
8760             }
8761             container service-policy {
8762               leaf output {
8763                 description
8764                   "Policy";
8765                 type string;
8766               }
8767             }
8768           }
8769         }
8770         container max-send {
8771           tailf:info "Rate limit NHRP traffic";
8772           description
8773             "Rate limit NHRP traffic";
8774           list pkt-count {
8775             tailf:cli-drop-node-name;
8776             tailf:cli-suppress-mode;
8777             key "pkt-count";
8778             leaf pkt-count {
8779               tailf:info "Packet count";
8780               description
8781                 "Packet count";
8782               type uint16 {
8783                 range "1..65535";
8784               }
8785             }
8786             leaf every {
8787               tailf:info "Specify interval over which to throttle";
8788               description
8789                 "Interval in seconds";
8790               type uint16 {
8791                 range "10..65535";
8792               }
8793             }
8794           }
8795         }
8796         leaf network-id {
8797           tailf:info "NBMA network identifier";
8798           description
8799             "Network identifier";
8800           type uint32 {
8801             range "1..4294967295";
8802           }
8803         }
8804         container nhs {
8805           tailf:info "Specify a next hop server";
8806           description
8807             "Specify a next hop server";
8808           list ipv4 {
8809             tailf:cli-drop-node-name;
8810             tailf:cli-suppress-mode;
8811             key "ipv4";
8812             leaf ipv4 {
8813               tailf:info "Protocol IP address of NHS";
8814               description
8815                 "Protocol IP address of NHS";
8816               type inet:ipv4-address;
8817             }
8818             leaf cluster {
8819               tailf:info "NHS cluster, don't specify for default cluster";
8820               description
8821                 "NHS cluster number";
8822               type uint8 {
8823                 range "0..10";
8824               }
8825             }
8826             container nbma {
8827               tailf:info "NBMA of NHS";
8828               description
8829                 "NBMA of NHS";
8830               list ipv4 {
8831                 tailf:cli-drop-node-name;
8832                 tailf:cli-suppress-mode;
8833                 key "ipv4";
8834                 leaf ipv4 {
8835                   tailf:info "IPv4 address";
8836                   description
8837                     "IPv4 address";
8838                   type inet:ipv4-address;
8839                 }
8840                 leaf cluster {
8841                   tailf:info "NHS cluster, don't specify for default cluster";
8842                   description
8843                     "NHS cluster number";
8844                   type uint8 {
8845                     range "0..10";
8846                   }
8847                 }
8848                 container multicast {
8849                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
8850                   description
8851                     "Use this NBMA mapping for broadcasts/multicasts";
8852                   presence "true";
8853                   leaf cluster {
8854                     tailf:info "NHS cluster, don't specify for default cluster";
8855                     description
8856                       "NHS cluster number";
8857                     type uint8 {
8858                       range "0..10";
8859                     }
8860                   }
8861                   container priority {
8862                     tailf:info "NHS priority, don't specify for default priority";
8863                     description
8864                       "NHS priority, don't specify for default priority";
8865                     list prior {
8866                       tailf:cli-drop-node-name;
8867                       tailf:cli-suppress-mode;
8868                       key "prior";
8869                       leaf prior {
8870                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
8871                         description
8872                           "NHS priority, range = 0 to 255, 0 is the highest";
8873                         type uint8 {
8874                           range "0..255";
8875                         }
8876                       }
8877                       leaf cluster {
8878                         tailf:info "NHS cluster, don't specify for default cluster";
8879                         description
8880                           "NHS cluster number";
8881                         type uint8 {
8882                           range "0..10";
8883                         }
8884                       }
8885                     }
8886                   }
8887                 }
8888                 container priority {
8889                   tailf:info "NHS priority, don't specify for default priority";
8890                   description
8891                     "NHS priority, don't specify for default priority";
8892                   list pri {
8893                     tailf:cli-drop-node-name;
8894                     tailf:cli-suppress-mode;
8895                     key "pri";
8896                     leaf pri {
8897                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
8898                       description
8899                         "NHS priority, range = 0 to 255, 0 is the highest";
8900                       type uint8 {
8901                         range "0..255";
8902                       }
8903                     }
8904                     leaf cluster {
8905                       tailf:info "NHS cluster, don't specify for default cluster";
8906                       description
8907                         "NHS cluster number";
8908                       type uint8 {
8909                         range "0..10";
8910                       }
8911                     }
8912                   }
8913                 }
8914               }
8915               list nhs-fqdn {
8916                 tailf:cli-drop-node-name;
8917                 tailf:cli-suppress-mode;
8918                 key "nhs-fqdn";
8919                 leaf nhs-fqdn {
8920                   tailf:info "NHS FQDN string";
8921                   description
8922                     "NHS FQDN string";
8923                   type string;
8924                 }
8925                 leaf cluster {
8926                   tailf:info "NHS cluster, don't specify for default cluster";
8927                   description
8928                     "NHS cluster number";
8929                   type uint8 {
8930                     range "0..10";
8931                   }
8932                 }
8933                 container multicast {
8934                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
8935                   description
8936                     "Use this NBMA mapping for broadcasts/multicasts";
8937                   presence "true";
8938                   leaf cluster {
8939                     tailf:info "NHS cluster, don't specify for default cluster";
8940                     description
8941                       "NHS cluster number";
8942                     type uint8 {
8943                       range "0..10";
8944                     }
8945                   }
8946                   container priority {
8947                     tailf:info "NHS priority, don't specify for default priority";
8948                     description
8949                       "NHS priority, don't specify for default priority";
8950                     list mc-pri {
8951                       tailf:cli-drop-node-name;
8952                       tailf:cli-suppress-mode;
8953                       key "mc-pri";
8954                       leaf mc-pri {
8955                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
8956                         description
8957                           "NHS priority, range = 0 to 255, 0 is the highest";
8958                         type uint8 {
8959                           range "0..255";
8960                         }
8961                       }
8962                       leaf cluster {
8963                         tailf:info "NHS cluster, don't specify for default cluster";
8964                         description
8965                           "NHS cluster number";
8966                         type uint8 {
8967                           range "0..10";
8968                         }
8969                       }
8970                     }
8971                   }
8972                 }
8973                 container priority {
8974                   tailf:info "NHS priority, don't specify for default priority";
8975                   description
8976                     "NHS priority, don't specify for default priority";
8977                   list nhs-pri {
8978                     tailf:cli-drop-node-name;
8979                     tailf:cli-suppress-mode;
8980                     key "nhs-pri";
8981                     leaf nhs-pri {
8982                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
8983                       description
8984                         "NHS priority, range = 0 to 255, 0 is the highest";
8985                       type uint8 {
8986                         range "0..255";
8987                       }
8988                     }
8989                     leaf cluster {
8990                       tailf:info "NHS cluster, don't specify for default cluster";
8991                       description
8992                         "NHS cluster number";
8993                       type uint8 {
8994                         range "0..10";
8995                       }
8996                     }
8997                   }
8998                 }
8999               }
9000               list ipv6 {
9001                 tailf:cli-drop-node-name;
9002                 tailf:cli-suppress-mode;
9003                 key "ipv6";
9004                 leaf ipv6 {
9005                   tailf:info "IPv6 address";
9006                   description
9007                     "IPv6 address";
9008                   type inet:ipv6-address;
9009                 }
9010                 leaf cluster {
9011                   tailf:info "NHS cluster, don't specify for default cluster";
9012                   description
9013                     "NHS cluster number";
9014                   type uint8 {
9015                     range "0..10";
9016                   }
9017                 }
9018                 container multicast {
9019                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
9020                   description
9021                     "Use this NBMA mapping for broadcasts/multicasts";
9022                   presence "true";
9023                   leaf cluster {
9024                     tailf:info "NHS cluster, don't specify for default cluster";
9025                     description
9026                       "NHS cluster number";
9027                     type uint8 {
9028                       range "0..10";
9029                     }
9030                   }
9031                   container priority {
9032                     tailf:info "NHS priority, don't specify for default priority";
9033                     description
9034                       "NHS priority, don't specify for default priority";
9035                     list mc-pri {
9036                       tailf:cli-drop-node-name;
9037                       tailf:cli-suppress-mode;
9038                       key "mc-pri";
9039                       leaf mc-pri {
9040                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9041                         description
9042                           "NHS priority, range = 0 to 255, 0 is the highest";
9043                         type uint8 {
9044                           range "0..255";
9045                         }
9046                       }
9047                       leaf cluster {
9048                         tailf:info "NHS cluster, don't specify for default cluster";
9049                         description
9050                           "NHS cluster number";
9051                         type uint8 {
9052                           range "0..10";
9053                         }
9054                       }
9055                     }
9056                   }
9057                 }
9058                 container priority {
9059                   tailf:info "NHS priority, don't specify for default priority";
9060                   description
9061                     "NHS priority, don't specify for default priority";
9062                   list mc-prior {
9063                     tailf:cli-drop-node-name;
9064                     tailf:cli-suppress-mode;
9065                     key "mc-prior";
9066                     leaf mc-prior {
9067                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9068                       description
9069                         "NHS priority, range = 0 to 255, 0 is the highest";
9070                       type uint8 {
9071                         range "0..255";
9072                       }
9073                     }
9074                     leaf cluster {
9075                       tailf:info "NHS cluster, don't specify for default cluster";
9076                       description
9077                         "NHS cluster number";
9078                       type uint8 {
9079                         range "0..10";
9080                       }
9081                     }
9082                   }
9083                 }
9084               }
9085             }
9086             container priority {
9087               tailf:info "NHS priority, don't specify for default priority";
9088               description
9089                 "NHS priority, don't specify for default priority";
9090               list pri-range {
9091                 tailf:cli-drop-node-name;
9092                 tailf:cli-suppress-mode;
9093                 key "pri-range";
9094                 leaf pri-range {
9095                   tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9096                   description
9097                     "NHS priority, range = 0 to 255, 0 is the highest";
9098                   type uint8 {
9099                     range "0..255";
9100                   }
9101                 }
9102                 leaf cluster {
9103                   tailf:info "NHS cluster, don't specify for default cluster";
9104                   description
9105                     "NHS cluster number";
9106                   type uint8 {
9107                     range "0..10";
9108                   }
9109                 }
9110               }
9111             }
9112           }
9113           container cluster {
9114             tailf:info "NHS Redundancy cluster configurations";
9115             description
9116               "NHS Redundancy cluster configurations";
9117             list clus-num {
9118               tailf:cli-drop-node-name;
9119               tailf:cli-suppress-mode;
9120               key "clus-num";
9121               leaf clus-num {
9122                 tailf:info "NHS cluster number";
9123                 description
9124                   "NHS cluster number";
9125                 type uint8 {
9126                   range "0..10";
9127                 }
9128               }
9129               leaf max-connections {
9130                 tailf:info "Max-connections value";
9131                 description
9132                   "Max-connections value";
9133                 type uint8 {
9134                   range "0..255";
9135                 }
9136               }
9137             }
9138           }
9139           container dynamic {
9140             tailf:info "NHS protocol address dynamically learnt";
9141             description
9142               "NHS protocol address dynamically learnt";
9143             container nbma {
9144               tailf:info "NBMA of NHS";
9145               description
9146                 "NBMA of NHS";
9147               list ipv4 {
9148                 description
9149                   "NBMA of NHS";
9150                 tailf:cli-drop-node-name;
9151                 tailf:cli-suppress-mode;
9152                 key "ipv4";
9153                 leaf ipv4 {
9154                   tailf:info "IPv4 address";
9155                   description
9156                     "IPv4 address";
9157                   type inet:ipv4-address;
9158                 }
9159                 leaf cluster {
9160                   tailf:info "NHS cluster, don't specify for default cluster";
9161                   description
9162                     "NHS cluster number";
9163                   type uint8 {
9164                     range "0..10";
9165                   }
9166                 }
9167                 container multicast {
9168                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
9169                   description
9170                     "Use this NBMA mapping for broadcasts/multicasts";
9171                   presence "true";
9172                   leaf cluster {
9173                     tailf:info "NHS cluster, don't specify for default cluster";
9174                     description
9175                       "NHS cluster number";
9176                     type uint8 {
9177                       range "0..10";
9178                     }
9179                   }
9180                   container priority {
9181                     tailf:info "NHS priority, don't specify for default priority";
9182                     description
9183                       "NHS priority, don't specify for default priority";
9184                     list dyn-pri {
9185                       tailf:cli-drop-node-name;
9186                       tailf:cli-suppress-mode;
9187                       key "dyn-pri";
9188                       leaf dyn-pri {
9189                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9190                         description
9191                           "NHS priority, range = 0 to 255, 0 is the highest";
9192                         type uint8 {
9193                           range "0..255";
9194                         }
9195                       }
9196                       leaf cluster {
9197                         tailf:info "NHS cluster, don't specify for default cluster";
9198                         description
9199                           "NHS cluster number";
9200                         type uint8 {
9201                           range "0..10";
9202                         }
9203                       }
9204                     }
9205                   }
9206                 }
9207                 container priority {
9208                   tailf:info "NHS priority, don't specify for default priority";
9209                   description
9210                     "NHS priority, don't specify for default priority";
9211                   list n-prior {
9212                     tailf:cli-drop-node-name;
9213                     tailf:cli-suppress-mode;
9214                     key "n-prior";
9215                     leaf n-prior {
9216                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9217                       description
9218                         "NHS priority, range = 0 to 255, 0 is the highest";
9219                       type uint8 {
9220                         range "0..255";
9221                       }
9222                     }
9223                     leaf cluster {
9224                       tailf:info "NHS cluster, don't specify for default cluster";
9225                       description
9226                         "NHS cluster number";
9227                       type uint8 {
9228                         range "0..10";
9229                       }
9230                     }
9231                   }
9232                 }
9233               }
9234               list dyn-fqdn {
9235                 tailf:cli-drop-node-name;
9236                 tailf:cli-suppress-mode;
9237                 key "dyn-fqdn";
9238                 leaf dyn-fqdn {
9239                   tailf:info "NHS FQDN string";
9240                   description
9241                     "NHS FQDN string";
9242                   type string;
9243                 }
9244                 leaf cluster {
9245                   tailf:info "NHS cluster, don't specify for default cluster";
9246                   description
9247                     "NHS cluster number";
9248                   type uint8 {
9249                     range "0..10";
9250                   }
9251                 }
9252                 container multicast {
9253                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
9254                   description
9255                     "Use this NBMA mapping for broadcasts/multicasts";
9256                   presence "true";
9257                   leaf cluster {
9258                     tailf:info "NHS cluster, don't specify for default cluster";
9259                     description
9260                       "NHS cluster number";
9261                     type uint8 {
9262                       range "0..10";
9263                     }
9264                   }
9265                   container priority {
9266                     tailf:info "NHS priority, don't specify for default priority";
9267                     description
9268                       "NHS priority, don't specify for default priority";
9269                     list dyn-mc-pri {
9270                       tailf:cli-drop-node-name;
9271                       tailf:cli-suppress-mode;
9272                       key "dyn-mc-pri";
9273                       leaf dyn-mc-pri {
9274                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9275                         description
9276                           "NHS priority, range = 0 to 255, 0 is the highest";
9277                         type uint8 {
9278                           range "0..255";
9279                         }
9280                       }
9281                       leaf cluster {
9282                         tailf:info "NHS cluster, don't specify for default cluster";
9283                         description
9284                           "NHS cluster number";
9285                         type uint8 {
9286                           range "0..10";
9287                         }
9288                       }
9289                     }
9290                   }
9291                 }
9292                 container priority {
9293                   tailf:info "NHS priority, don't specify for default priority";
9294                   description
9295                     "NHS priority, don't specify for default priority";
9296                   list dp {
9297                     tailf:cli-drop-node-name;
9298                     tailf:cli-suppress-mode;
9299                     key "dp";
9300                     leaf dp {
9301                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9302                       description
9303                         "NHS priority, range = 0 to 255, 0 is the highest";
9304                       type uint8 {
9305                         range "0..255";
9306                       }
9307                     }
9308                     leaf cluster {
9309                       tailf:info "NHS cluster, don't specify for default cluster";
9310                       description
9311                         "NHS cluster number";
9312                       type uint8 {
9313                         range "0..10";
9314                       }
9315                     }
9316                   }
9317                 }
9318               }
9319               list ipv6 {
9320                 tailf:cli-drop-node-name;
9321                 tailf:cli-suppress-mode;
9322                 key "ipv6";
9323                 leaf ipv6 {
9324                   tailf:info "IPv6 address";
9325                   description
9326                     "IPv6 address";
9327                   type inet:ipv6-address;
9328                 }
9329                 leaf cluster {
9330                   tailf:info "NHS cluster, don't specify for default cluster";
9331                   description
9332                     "NHS cluster number";
9333                   type uint8 {
9334                     range "0..10";
9335                   }
9336                 }
9337                 container multicast {
9338                   tailf:info "Use this NBMA mapping for broadcasts/multicasts";
9339                   description
9340                     "Use this NBMA mapping for broadcasts/multicasts";
9341                   presence "true";
9342                   leaf cluster {
9343                     tailf:info "NHS cluster, don't specify for default cluster";
9344                     description
9345                       "NHS cluster number";
9346                     type uint8 {
9347                       range "0..10";
9348                     }
9349                   }
9350                   container priority {
9351                     tailf:info "NHS priority, don't specify for default priority";
9352                     description
9353                       "NHS priority, don't specify for default priority";
9354                     list v6-pri {
9355                       tailf:cli-drop-node-name;
9356                       tailf:cli-suppress-mode;
9357                       key "v6-pri";
9358                       leaf v6-pri {
9359                         tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9360                         description
9361                           "NHS priority, range = 0 to 255, 0 is the highest";
9362                         type uint8 {
9363                           range "0..255";
9364                         }
9365                       }
9366                       leaf cluster {
9367                         tailf:info "NHS cluster, don't specify for default cluster";
9368                         description
9369                           "NHS cluster number";
9370                         type uint8 {
9371                           range "0..10";
9372                         }
9373                       }
9374                     }
9375                   }
9376                 }
9377                 container priority {
9378                   tailf:info "NHS priority, don't specify for default priority";
9379                   description
9380                     "NHS priority, don't specify for default priority";
9381                   list v6-pri2 {
9382                     tailf:cli-drop-node-name;
9383                     tailf:cli-suppress-mode;
9384                     key "v6-pri2";
9385                     leaf v6-pri2 {
9386                       tailf:info "NHS priority, range = 0 to 255, 0 is the highest";
9387                       description
9388                         "NHS priority, range = 0 to 255, 0 is the highest";
9389                       type uint8 {
9390                         range "0..255";
9391                       }
9392                     }
9393                     leaf cluster {
9394                       tailf:info "NHS cluster, don't specify for default cluster";
9395                       description
9396                         "NHS cluster number";
9397                       type uint8 {
9398                         range "0..10";
9399                       }
9400                     }
9401                   }
9402                 }
9403               }
9404             }
9405           }
9406           leaf fallback {
9407             tailf:info "NHS Redundancy Fallback time";
9408             description
9409               "NHS Redundancy Fallback time, 0 -60 seconds";
9410             type uint8 {
9411               range "0..60";
9412             }
9413           }
9414         }
9415         leaf record {
9416           tailf:info "Allow NHRP record option";
9417           description
9418             "Allow NHRP record option";
9419           type empty;
9420         }
9421         container redirect {
9422           tailf:info "Enable NHRP redirect traffic indication";
9423           description
9424             "Enable NHRP redirect traffic indication";
9425           presence "true";
9426           leaf timeout {
9427             tailf:info "Specify interval over which to throttle";
9428             description
9429               "Interval in seconds";
9430             type uint8 {
9431               range "2..30";
9432             }
9433           }
9434         }
9435         container registration {
9436           tailf:info "Settings for registration packets.";
9437           description
9438             "Settings for registration packets.";
9439           leaf no-unique {
9440             tailf:info "Do not set the 'Unique' flag in registration requests.";
9441             description
9442               "Do not set the 'Unique' flag in registration requests.";
9443             type empty;
9444           }
9445           leaf timeout {
9446             tailf:info "Time between periodic Registration messages";
9447             description
9448               "Number of seconds";
9449             type uint16 {
9450               range "1..65535";
9451             }
9452           }
9453         }
9454         container reject {
9455           tailf:info "NHRP resolution reject request";
9456           description
9457             "NHRP resolution reject request";
9458           list reqid {
9459             tailf:cli-drop-node-name;
9460             tailf:cli-suppress-mode;
9461             key "reqid";
9462             leaf reqid {
9463               tailf:info "reqid value";
9464               description
9465                 "reqid value";
9466               type uint16 {
9467                 range "1..65535";
9468               }
9469             }
9470             leaf rej-secs {
9471               tailf:info "Number of seconds";
9472               description
9473                 "Number of seconds";
9474               tailf:cli-drop-node-name;
9475               type uint16 {
9476                 range "0..65535";
9477               }
9478             }
9479           }
9480         }
9481         container responder {
9482           tailf:info "Responder interface";
9483           description
9484             "Responder interface";
9485           leaf res-int {
9486             tailf:info "Virtual ACR interface";
9487             description
9488               "Virtual ACR interface";
9489             tailf:cli-drop-node-name;
9490             type string;
9491           }
9492           leaf Analysis-Module {
9493             tailf:info "Cisco network analysis service module";
9494             description
9495               "Analysis-Module interface number";
9496             type uint8;
9497           }
9498           leaf Fcpa {
9499             tailf:info "Fiber Channel";
9500             description
9501               "Fcpa interface number";
9502             type uint8;
9503           }
9504           leaf SBC {
9505             tailf:info "Session Border Controller";
9506             description
9507               "SBC interface number";
9508             type uint32 {
9509               range "0..2147483647";
9510             }
9511           }
9512           leaf SONET_ACR {
9513             tailf:info "Virtual SONET-ACR controller";
9514             description
9515               "SONET_ACR interface number";
9516             type uint8;
9517           }
9518           leaf TB-controller {
9519             tailf:info "Telecom-Bus Clock Controller";
9520             description
9521               "Telecom-Bus Clock Controller";
9522             tailf:cli-drop-node-name;
9523             type string;
9524           }
9525           leaf Service-Engine {
9526             tailf:info "Cisco service engine module";
9527             description
9528               "Service-Engine interface number";
9529             type uint8;
9530           }
9531           leaf Tunnel {
9532             tailf:info "Tunnel interface";
9533             description
9534               "Tunnel interface number";
9535             type uint32 {
9536               range "0..2147483647";
9537             }
9538           }
9539           leaf Tunnel-tp {
9540             tailf:info "MPLS Transport Profile interface";
9541             description
9542               "Tunnel-tp interface number";
9543             type uint16 {
9544               range "0..65535";
9545             }
9546           }
9547           leaf VPN {
9548             tailf:info "VPN interface";
9549             description
9550               "VPN interface number";
9551             type uint32 {
9552               range "0..2147483647";
9553             }
9554           }
9555           leaf Virtual-TokenRing {
9556             tailf:info "Virtual TokenRing";
9557             description
9558               "Virtual-TokenRing interface number";
9559             type uint32 {
9560               range "0..2147483647";
9561             }
9562           }
9563           leaf VirtualPortGroup {
9564             tailf:info "Virtual Port Group";
9565             description
9566               "VirtualPortGroup interface number";
9567             type uint8 {
9568               range "0..31";
9569             }
9570           }
9571           leaf Vlan {
9572             tailf:info "Catalyst Vlans";
9573             description
9574               "Vlan interface number";
9575             type uint16 {
9576               range "1..4095";
9577             }
9578           }
9579           leaf ucse {
9580             tailf:info "Cisco ucse server";
9581             description
9582               "ucse interface number";
9583             type uint8;
9584           }
9585           leaf vasileft {
9586             tailf:info "VasiLeft interface";
9587             description
9588               "vasileft interface number";
9589             type uint16 {
9590               range "1..2000";
9591             }
9592           }
9593           leaf vasiright {
9594             tailf:info "VasiRight interface";
9595             description
9596               "vasiright interface number";
9597             type uint16 {
9598               range "1..2000";
9599             }
9600           }
9601         }
9602         container server-only {
9603           tailf:info "Disable NHRP requests";
9604           description
9605             "Disable NHRP requests";
9606           presence "true";
9607           leaf non-caching {
9608             tailf:info "Do not create NHRP cache entries";
9609             description
9610               "Do not create NHRP cache entries";
9611             type empty;
9612           }
9613         }
9614         container shortcut {
9615           tailf:info "Enable shortcut switching";
9616           description
9617             "Enable shortcut switching";
9618           presence "true";
9619           leaf virtual-template {
9620             tailf:info "Virtual template interface number";
9621             description
9622               "Virtual template number";
9623             type uint16 {
9624               range "1..4095";
9625             }
9626           }
9627         }
9628         container trigger-svc {
9629           tailf:info "Create NHRP cut-through based on traffic load";
9630           description
9631             "Create NHRP cut-through based on traffic load";
9632           list kbps {
9633             tailf:cli-drop-node-name;
9634             tailf:cli-suppress-mode;
9635             key "kbps";
9636             leaf kbps {
9637               tailf:info "Trigger rate in kbps";
9638               description
9639                 "Trigger rate in kbps";
9640               type uint32 {
9641                 range "1..4294967295";
9642               }
9643             }
9644             leaf tear-kbps {
9645               tailf:info "Teardown rate in kbps";
9646               description
9647                 "Teardown rate in kbps";
9648               tailf:cli-drop-node-name;
9649               type uint32 {
9650                 range "0..4294967295";
9651               }
9652             }
9653           }
9654         }
9655         leaf use {
9656           tailf:info "Specify usage count for sending requests";
9657           description
9658             "Number of packets to cause NHRP request";
9659           type uint16 {
9660             range "1..65535";
9661           }
9662         }
9663       }
9664       container ospf {
9665         tailf:info "OSPF interface commands";
9666         description
9667           "OSPF interface commands";
9668         list process-id {
9669           tailf:cli-drop-node-name;
9670           tailf:cli-suppress-mode;
9671           tailf:cli-delete-when-empty;
9672           tailf:cli-compact-syntax;
9673           tailf:cli-incomplete-command;
9674           tailf:cli-reset-container;
9675           tailf:cli-sequence-commands;
9676           key "id";
9677           leaf id {
9678             type uint16 {
9679               tailf:info "<1-65535>;;Process ID";
9680             }
9681           }
9682           leaf area {
9683             type ospf-area-type;
9684           }
9685           leaf secondaries {
9686             tailf:info "Include or exclude secondary IP addresses";
9687             description
9688               "Include or exclude secondary IP addresses";
9689             type empty;
9690           }
9691           leaf none {
9692             tailf:info "Do not include secondary IP addresses";
9693             description
9694               "Do not include secondary IP addresses";
9695             type empty;
9696           }
9697         }
9698         container authentication {
9699           tailf:info "Enable authentication";
9700           description
9701             "Enable authentication";
9702           presence "Enable authentication";
9703           container key-chain {
9704             tailf:info "Use a key-chain for cryptographic authentication keys";
9705             description
9706               "Use a key-chain for cryptographic authentication keys";
9707             tailf:cli-compact-syntax;
9708             leaf name {
9709               tailf:cli-drop-node-name;
9710               type string {
9711                 tailf:info " WORD  Key chain name";
9712               }
9713             }
9714           }
9715           leaf message-digest {
9716             tailf:info "Use message-digest authentication";
9717             description
9718               "Use message-digest authentication";
9719             type empty;
9720           }
9721           leaf null {
9722             tailf:info "Use no authentication";
9723             description
9724               "Use no authentication";
9725             type empty;
9726           }
9727         }
9728         uses ospf-authentication-key-grouping;
9729         leaf network {
9730           tailf:info "Network type";
9731           description
9732             "Network type";
9733           type enumeration {
9734             enum "broadcast" {
9735               tailf:info "Specify OSPF broadcast multi-access network";
9736             }
9737             enum "non-broadcast" {
9738               tailf:info "Specify OSPF NBMA network";
9739             }
9740             enum "point-to-multipoint" {
9741               tailf:info "Specify OSPF point-to-multipoint network";
9742             }
9743             enum "point-to-point" {
9744               tailf:info "Specify OSPF point-to-point network";
9745             }
9746           }
9747         }
9748         uses interface-ospf-bfd-grouping;
9749         leaf cost {
9750           tailf:info "Interface cost";
9751           description
9752             "Interface cost";
9753           type uint16 {
9754             tailf:info "<1-65535>;;Cost";
9755             range "1..65535";
9756           }
9757         }
9758         container database-filter {
9759           tailf:info "Filter OSPF LSA during synchronization and flooding";
9760           description
9761             "Filter OSPF LSA during synchronization and flooding";
9762           tailf:cli-compact-syntax;
9763           tailf:cli-sequence-commands;
9764           leaf all {
9765             tailf:info "Filter all LSA";
9766             description
9767               "Filter all LSA";
9768             type empty;
9769           }
9770           leaf out {
9771             tailf:info "Outgoing LSA";
9772             description
9773               "Outgoing LSA";
9774             type empty;
9775           }
9776         }
9777         container dead-interval {
9778           tailf:info "Interval after which a neighbor is declared dead";
9779           description
9780             "Interval after which a neighbor is declared dead";
9781           leaf value {
9782             tailf:cli-drop-node-name;
9783             type uint32 {
9784               tailf:info "<1-65535>;;Seconds";
9785               range "1..65535";
9786             }
9787           }
9788           container minimal {
9789             tailf:info "Set to 1 second";
9790             description
9791               "Set to 1 second";
9792             leaf hello-multiplier {
9793               tailf:info "Set multiplier for Hellos";
9794               description
9795                 "Set multiplier for Hellos";
9796               type uint8 {
9797                 tailf:info "<3-20>;;Number of Hellos sent within 1 second";
9798               }
9799             }
9800           }
9801         }
9802         container demand-circuit {
9803           tailf:info "OSPF Demand Circuit";
9804           description
9805             "OSPF Demand Circuit";
9806           presence "true";
9807           leaf ignore {
9808             tailf:info "Ignore demand circuit auto-negotiation requests";
9809             description
9810               "Ignore demand circuit auto-negotiation requests";
9811             type empty;
9812           }
9813         }
9814         container fast-reroute {
9815           tailf:info "LFA FastReroute parameters";
9816           description
9817             "LFA FastReroute parameters";
9818           container per-prefix {
9819             tailf:info "Per-prefix LFA FRR parameters";
9820             description
9821               "Per-prefix LFA FRR parameters";
9822             container candidate {
9823               tailf:info "If interface can be protecting";
9824               description
9825                 "If interface can be protecting";
9826               presence "true";
9827               leaf disable {
9828                 tailf:info "Disable LFA FRR interface protection";
9829                 description
9830                   "Disable LFA FRR interface protection";
9831                 type empty;
9832               }
9833             }
9834             container protection {
9835               tailf:info "If interface can be protected";
9836               description
9837                 "If interface can be protected";
9838               presence "true";
9839               leaf disable {
9840                 tailf:info "Disable LFA FRR interface protection";
9841                 description
9842                   "Disable LFA FRR interface protection";
9843                 type empty;
9844               }
9845             }
9846           }
9847         }
9848         leaf flood-reduction {
9849           tailf:info "OSPF Flood Reduction";
9850           description
9851             "OSPF Flood Reduction";
9852           type empty;
9853         }
9854         uses interface-ospf-hello-interval-grouping;
9855         container lls {
9856           tailf:info "Link-local Signaling (LLS) support";
9857           description
9858             "Link-local Signaling (LLS) support";
9859           presence "true";
9860           leaf disable {
9861             tailf:info "disable LLS";
9862             description
9863               "disable LLS";
9864             type empty;
9865           }
9866         }
9867         list message-digest-key {
9868           tailf:info "Set message digest key";
9869           description
9870             "Set message digest key";
9871           tailf:cli-suppress-mode;
9872           tailf:cli-delete-when-empty;
9873           tailf:cli-incomplete-command;
9874           key "id";
9875           leaf id {
9876             tailf:cli-suppress-range;
9877             type uint8 {
9878               range "1 .. 255";
9879               tailf:info "<1-255>;;Key ID";
9880             }
9881           }
9882           container md5 {
9883             tailf:info "Use MD5 algorithm";
9884             description
9885               "Use MD5 algorithm";
9886             tailf:cli-sequence-commands;
9887             tailf:cli-compact-syntax;
9888             leaf auth-type {
9889               tailf:cli-drop-node-name;
9890               tailf:cli-optional-in-sequence;
9891               type uint8 {
9892                 range "0 .. 7";
9893                 tailf:info "<0-7>;;Encryption type (0 for not yet encrypted, 7 for proprietary)";
9894               }
9895             }
9896             leaf auth-key {
9897               tailf:cli-drop-node-name;
9898               tailf:cli-full-command;
9899               tailf:cli-multi-value;
9900               type string {
9901                 tailf:info "LINE;;The OSPF password (key) (maximum 16 characters)";
9902               }
9903             }
9904           }
9905         }
9906         leaf mtu-ignore {
9907           tailf:info "Ignores the MTU in DBD packets";
9908           description
9909             "Ignores the MTU in DBD packets";
9910           type empty;
9911         }
9912         container multi-area {
9913           tailf:info "Set the OSPF multi-area ID";
9914           description
9915             "Set the OSPF multi-area ID";
9916           tailf:cli-sequence-commands;
9917           tailf:cli-compact-syntax;
9918           leaf id {
9919             tailf:cli-drop-node-name;
9920             type union {
9921               type uint32 {
9922                 tailf:info "<0-4294967295>;;OSPF multi-area ID as a decimal value";
9923                 range "0..4294967295";
9924               }
9925               type inet:ipv4-address {
9926                 tailf:info "A.B.C.D;;OSPF multi-area ID in IP address format";
9927               }
9928             }
9929           }
9930           leaf cost {
9931             tailf:info "Interface cost";
9932             description
9933               "Interface cost";
9934             tailf:cli-optional-in-sequence;
9935             type uint32 {
9936               tailf:info " <1-65535>;;Cost";
9937               range "1..65535";
9938             }
9939           }
9940         }
9941         uses interface-ospf-prefix-suppression-grouping;
9942         uses interface-ospf-priority-grouping;
9943         leaf resync-timeout {
9944           tailf:info "Interval after which adjacency is reset if oob-resync is not started";
9945           description
9946             "Interval after which adjacency is reset if oob-resync is not started";
9947           type uint32 {
9948             tailf:info "<1-65535>;;Seconds";
9949             range "1..65535";
9950           }
9951         }
9952         uses interface-ospf-retransmit-interval-grouping;
9953         leaf shutdown {
9954           tailf:info "Set OSPF protocol's state to disable under current interface";
9955           description
9956             "Set OSPF protocol's state to disable under current interface";
9957           type empty;
9958         }
9959         uses interface-ospf-transmit-delay-grouping;
9960         container ttl-security {
9961           tailf:info "TTL security check";
9962           description
9963             "TTL security check";
9964           presence "true";
9965           leaf diable {
9966             tailf:info "disable TTL security check";
9967             description
9968               "disable TTL security check";
9969             type empty;
9970           }
9971           leaf hops {
9972             tailf:info "IP hops";
9973             description
9974               "IP hops";
9975             type uint8 {
9976               tailf:info "<1-254>  maximum number of hops allowed";
9977               range "1..254";
9978             }
9979           }
9980         }
9981       }
9982       container pim {
9983         tailf:info "PIM interface commands";
9984         description
9985           "PIM interface commands";
9986         container accept-register {
9987           leaf list {
9988             type string;
9989           }
9990         }
9991         leaf sparse-mode {
9992           tailf:info "Enable PIM sparse-mode operation";
9993           description
9994             "Enable PIM sparse-mode operation";
9995           type empty;
9996         }
9997         leaf nbma-mode {
9998           tailf:info "Enable PIM nbma-mode operation";
9999           description
10000             "Enable PIM nbma-mode operation";
10001           type empty;
10002         }
10003         leaf dr-priority {
10004           tailf:info "PIM router DR priority";
10005           description
10006             "PIM router DR priority";
10007           type uint32 {
10008             tailf:info "<0-4294967294>;;DR priority, preference given to larger value";
10009           }
10010         }
10011         container query-interval {
10012           tailf:info "PIM router query interval";
10013           description
10014             "PIM router query interval";
10015           tailf:cli-sequence-commands;
10016           tailf:cli-compact-syntax;
10017           leaf interval {
10018             tailf:cli-drop-node-name;
10019             type uint16 {
10020               tailf:info "<1-65535>;;Query interval in seconds or milliseconds";
10021             }
10022           }
10023           leaf msec {
10024             tailf:info "Query interval in milliseconds";
10025             description
10026               "Query interval in milliseconds";
10027             tailf:cli-optional-in-sequence;
10028             type empty;
10029           }
10030         }
10031         leaf spt-threshold {
10032           type enumeration {
10033             enum "infinity";
10034           }
10035         }
10036       }
10037       container policy {
10038         tailf:info "Enable policy routing";
10039         description
10040           "Enable policy routing";
10041         leaf route-map {
10042           tailf:info "Policy route-map";
10043           description
10044             "Policy route-map";
10045           type string {
10046             tailf:info "WORD;;Route map name";
10047           }
10048         }
10049       }
10050       leaf local-proxy-arp {
10051         tailf:info "Enable local-proxy ARP";
10052         description
10053           "Enable local-proxy ARP";
10054         type empty;
10055       }
10056       leaf proxy-arp {
10057         tailf:info "Enable proxy ARP";
10058         description
10059           "Enable proxy ARP";
10060         tailf:cli-boolean-no;
10061         tailf:cli-trim-default;
10062         type boolean;
10063       }
10064       container route-cache-conf {
10065         tailf:cli-no-keyword;
10066         tailf:cli-drop-node-name;
10067         leaf route-cache {
10068           tailf:cli-boolean-no;
10069           tailf:cli-trim-default;
10070           type boolean;
10071         }
10072       }
10073       container route-cache {
10074         tailf:info "Enable fast-switching cache for outgoing packets";
10075         description
10076           "Enable fast-switching cache for outgoing packets";
10077         tailf:cli-incomplete-no;
10078         leaf cef {
10079           tailf:info "Enable Cisco Express Forwarding";
10080           description
10081             "Enable Cisco Express Forwarding";
10082           tailf:cli-boolean-no;
10083           tailf:cli-trim-default;
10084           type boolean;
10085         }
10086         leaf flow {
10087           tailf:info "Enable Flow fast-switching cache";
10088           description
10089             "Enable Flow fast-switching cache";
10090           tailf:cli-boolean-no;
10091           tailf:cli-trim-default;
10092           type boolean;
10093         }
10094         leaf policy {
10095           tailf:info "Enable fast-switching policy cache for outgoing packets";
10096           description
10097             "Enable fast-switching policy cache for outgoing packets";
10098           tailf:cli-boolean-no;
10099           tailf:cli-trim-default;
10100           type boolean;
10101         }
10102         leaf same-interface {
10103           tailf:info "Enable fast-switching on the same interface";
10104           description
10105             "Enable fast-switching on the same interface";
10106           tailf:cli-boolean-no;
10107           tailf:cli-trim-default;
10108           type boolean;
10109         }
10110       }
10111       container router {
10112         tailf:info "IP router interface commands";
10113         description
10114           "IP router interface commands";
10115         container isis {
10116           tailf:info "IS-IS Routing for IP";
10117           description
10118             "IS-IS Routing for IP";
10119           presence "true";
10120           leaf tag {
10121             tailf:cli-drop-node-name;
10122             type string {
10123               tailf:info "WORD;;Routing process tag";
10124             }
10125           }
10126         }
10127       }
10128       container igmp {
10129         tailf:info "IGMP interface commands";
10130         description
10131           "IGMP interface commands";
10132         container static-group {
10133           tailf:info "IGMP static multicast group";
10134           description
10135             "IGMP static multicast group";
10136           list groups {
10137             tailf:cli-suppress-mode;
10138             tailf:cli-delete-when-empty;
10139             tailf:cli-drop-node-name;
10140             key "name";
10141             leaf name {
10142               tailf:cli-suppress-range;
10143               type union {
10144                 type inet:ipv4-address {
10145                   tailf:info "A.B.C.D;;IP group address";
10146                 }
10147                 type enumeration {
10148                   enum "*" {
10149                     tailf:info "Populated for all groups";
10150                   }
10151                 }
10152               }
10153             }
10154           }
10155           list class-map {
10156             tailf:info "Class map of type multicast-flows";
10157             description
10158               "Class map of type multicast-flows";
10159             key "id";
10160             leaf id {
10161               type leafref {
10162                 path "/ios:native/class-map/name";
10163               }
10164             }
10165           }
10166         }
10167         leaf version {
10168           tailf:info "IGMP version";
10169           description
10170             "IGMP version";
10171           type uint8 {
10172             tailf:info "<1-3>;;version number";
10173             range "1..3";
10174           }
10175         }
10176       }
10177       leaf redirects {
10178         tailf:info "Enable sending ICMP Redirect messages";
10179         description
10180           "Enable sending ICMP Redirect messages";
10181         tailf:cli-boolean-no;
10182         tailf:cli-trim-default;
10183         type boolean;
10184       }
10185       leaf unreachables {
10186         tailf:info "Enable sending ICMP Unreachable messages";
10187         description
10188           "Enable sending ICMP Unreachable messages";
10189         tailf:cli-boolean-no;
10190         tailf:cli-trim-default;
10191         type boolean;
10192       }
10193       container tcp {
10194         tailf:info "TCP header compression and other parameters";
10195         description
10196           "TCP header compression and other parameters";
10197         leaf adjust-mss {
10198           tailf:info "Adjust the mss of transit packets";
10199           description
10200             "Adjust the mss of transit packets";
10201           type uint16 {
10202             tailf:info "<500-1460>;;Maximum segment size in bytes";
10203             range "500..1460";
10204           }
10205         }
10206       }
10207       container virtual-reassembly {
10208         tailf:cli-compact-syntax;
10209         leaf max-reassemblies {
10210           type uint32;
10211         }
10212         leaf max-fragments {
10213           type uint32;
10214         }
10215         leaf timeout {
10216           type uint32;
10217         }
10218         leaf drop-fragments {
10219           type empty;
10220         }
10221         leaf in {
10222           type empty;
10223         }
10224       }
10225       container dhcp {
10226         tailf:info "Configure DHCP parameters for this interface";
10227         description
10228           "Configure DHCP parameters for this interface";
10229         container relay {
10230           tailf:info "DHCP relay configuration parameters";
10231           description
10232             "DHCP relay configuration parameters";
10233           container information {
10234             tailf:info "DHCP relay information option";
10235             description
10236               "DHCP relay information option";
10237             container check-reply {
10238               tailf:info "Validate relay information in BOOTREPLY";
10239               description
10240                 "Validate relay information in BOOTREPLY";
10241               presence "true";
10242               leaf none {
10243                 tailf:info "Set to none";
10244                 description
10245                   "Set to none";
10246                 type empty;
10247               }
10248             }
10249             container option {
10250               tailf:info "DHCP relay information option";
10251               description
10252                 "DHCP relay information option";
10253               leaf subscriber-id {
10254                 tailf:info "Subscriber identifier sub option";
10255                 description
10256                   "Subscriber identifier sub option";
10257                 type string {
10258                   tailf:info "WORD;;Subscriber identifier string";
10259                 }
10260               }
10261             }
10262             container option-insert {
10263               tailf:info "Insert relay information in BOOTREQUEST";
10264               description
10265                 "Insert relay information in BOOTREQUEST";
10266               presence "true";
10267               leaf none {
10268                 tailf:info "Set to none";
10269                 description
10270                   "Set to none";
10271                 type empty;
10272               }
10273             }
10274             leaf policy-action {
10275               tailf:info "Define reforwarding policy";
10276               description
10277                 "Define reforwarding policy";
10278               type enumeration {
10279                 enum "drop" {
10280                   tailf:info "Do not forward BOOTREQUEST message";
10281                 }
10282                 enum "encapsulate" {
10283                   tailf:info "Encapsulate existing information";
10284                 }
10285                 enum "keep" {
10286                   tailf:info "Leave existing information alone";
10287                 }
10288                 enum "replace" {
10289                   tailf:info "Replace existing information";
10290                 }
10291               }
10292             }
10293             leaf trusted {
10294               tailf:info "Received DHCP packet may contain relay info option with zero giaddr";
10295               description
10296                 "Received DHCP packet may contain relay info option with zero giaddr";
10297               type empty;
10298             }
10299           }
10300         }
10301         container snooping {
10302           tailf:info "DHCP Snooping";
10303           description
10304             "DHCP Snooping";
10305           container limit {
10306             tailf:info "DHCP Snooping limit";
10307             description
10308               "DHCP Snooping limit";
10309             leaf rate {
10310               tailf:info "DHCP Snooping limit";
10311               description
10312                 "DHCP Snooping limit";
10313               type uint16 {
10314                 tailf:info "<1-2048>;;DHCP snooping rate limit";
10315                 range "1..2048";
10316               }
10317             }
10318           }
10319           leaf trust {
10320             tailf:info "DHCP Snooping trust config";
10321             description
10322               "DHCP Snooping trust config";
10323             type empty;
10324           }
10325           list vlan {
10326             tailf:info "DHCP Snooping vlan";
10327             description
10328               "DHCP Snooping vlan";
10329             key "id";
10330             max-elements "1";
10331             leaf id {
10332               tailf:cli-drop-node-name;
10333               type uint16 {
10334                 tailf:info "<1-4094>;;DHCP Snooping vlan";
10335                 range "1..4094";
10336               }
10337             }
10338             container information {
10339               tailf:info "DHCP Snooping information";
10340               description
10341                 "DHCP Snooping information";
10342               container option {
10343                 tailf:info "DHCP Snooping information option";
10344                 description
10345                   "DHCP Snooping information option";
10346                 container format-type {
10347                   tailf:info "Option 82 information format";
10348                   description
10349                     "Option 82 information format";
10350                   container circuit-id {
10351                     tailf:info "Circuit id option 82 format";
10352                     description
10353                       "Circuit id option 82 format";
10354                     leaf string {
10355                       tailf:info "User defined string for circuit id";
10356                       description
10357                         "User defined string for circuit id";
10358                       type string {
10359                         tailf:info "WORD;;Use string for circuit id (3-63 chars)";
10360                         length "3..63";
10361                       }
10362                     }
10363                   }
10364                 }
10365               }
10366             }
10367           }
10368         }
10369       }
10370       leaf mtu {
10371         tailf:info "Set IP Maximum Transmission Unit";
10372         description
10373           "Set IP Maximum Transmission Unit";
10374         type uint16 {
10375           tailf:info "<68-9198>;;MTU (bytes)";
10376           range "68..9198";
10377         }
10378       }
10379       leaf mroute-cache {
10380         tailf:info "Enable switching cache for incoming multicast packets";
10381         description
10382           "Enable switching cache for incoming multicast packets";
10383         tailf:cli-boolean-no;
10384         tailf:cli-trim-default;
10385         type boolean;
10386       }
10387       container nat {
10388         tailf:info "NAT interface commands";
10389         description
10390           "NAT interface commands";
10391         leaf allow-static-host {
10392           tailf:info "Allow static-ip clients";
10393           description
10394             "Allow static-ip clients";
10395           type empty;
10396         }
10397         leaf enable {
10398           tailf:info "Enable Address Translation (NVI)";
10399           description
10400             "Enable Address Translation (NVI)";
10401           type empty;
10402         }
10403         choice nat-choice {
10404           leaf inside {
10405             tailf:info "Inside interface for address translation";
10406             description
10407               "Inside interface for address translation";
10408             type empty;
10409           }
10410           leaf outside {
10411             tailf:info "Outside interface for address translation";
10412             description
10413               "Outside interface for address translation";
10414             type empty;
10415           }
10416         }
10417       }
10418       container rsvp {
10419         tailf:info "RSVP Interface Commands";
10420         description
10421           "RSVP Interface Commands";
10422         container bandwidth {
10423           tailf:info "RSVP Reservable Bandwidth (kbps)";
10424           description
10425             "RSVP Reservable Bandwidth (kbps)";
10426           tailf:cli-reset-container;
10427           presence "true";
10428         }
10429         container signalling {
10430           tailf:info "IP RSVP signalling";
10431           description
10432             "IP RSVP signalling";
10433           leaf hello {
10434             tailf:info "Enable neighbor-down detection";
10435             description
10436               "Enable neighbor-down detection";
10437             type empty;
10438           }
10439           leaf blockade {
10440             tailf:info "(Re)sets time duration of blockade state";
10441             description
10442               "(Re)sets time duration of blockade state";
10443             type empty;
10444           }
10445           leaf dscp {
10446             tailf:info "DSCP for RSVP signalling messages";
10447             description
10448               "DSCP for RSVP signalling messages";
10449             type empty;
10450           }
10451           leaf fast-local-repair {
10452             tailf:info "Fast Local Repair parameters";
10453             description
10454               "Fast Local Repair parameters";
10455             type empty;
10456           }
10457         }
10458         container resource-provider {
10459           tailf:info "RSVP resource provider";
10460           description
10461             "RSVP resource provider";
10462           choice resource-provider-choice {
10463             leaf none {
10464               tailf:info "Associates NO resources with reservations";
10465               description
10466                 "Associates NO resources with reservations";
10467               type empty;
10468             }
10469             leaf wfq {
10470               tailf:info "Associates WFQ resources with reservations";
10471               description
10472                 "Associates WFQ resources with reservations";
10473               type enumeration {
10474                 enum "interface" {
10475                   tailf:info "Associates WFQ queues and bandwidth at the interface level with reservations";
10476                 }
10477                 enum "pvc" {
10478                   tailf:info "Associates WFQ queues and bandwidth at the PVC level with reservations";
10479                 }
10480               }
10481             }
10482           }
10483         }
10484       }
10485       container verify {
10486         tailf:info "Enable per packet validation";
10487         description
10488           "Enable per packet validation";
10489         leaf source {
10490           tailf:info "Validation of source address";
10491           description
10492             "Validation of source address";
10493           type empty;
10494         }
10495         container unicast {
10496           tailf:info "Enable per packet validation for unicast";
10497           description
10498             "Enable per packet validation for unicast";
10499           container reverse-path {
10500             tailf:info "Reverse path validation of source address (old command format)";
10501             description
10502               "Reverse path validation of source address (old command format)";
10503             presence "true";
10504           }
10505           container source {
10506             tailf:info "Validation of source address";
10507             description
10508               "Validation of source address";
10509             tailf:cli-compact-syntax;
10510             tailf:cli-sequence-commands {
10511               tailf:cli-reset-all-siblings;
10512             }
10513             leaf reachable-via {
10514               tailf:info "Specify reachability check to apply to the source address";
10515               description
10516                 "Specify reachability check to apply to the source address";
10517               type enumeration {
10518                 enum "any" {
10519                   tailf:info "Source is reachable via any interface";
10520                 }
10521                 enum "rx" {
10522                   tailf:info "Source is reachable via interface on which packet was received";
10523                 }
10524               }
10525             }
10526             leaf allow-self-ping {
10527               tailf:cli-break-sequence-commands;
10528               tailf:info "Allow router to ping itself (opens vulnerability in verification)";
10529               description
10530                 "Allow router to ping itself (opens vulnerability in verification)";
10531               type empty;
10532             }
10533             leaf allow-default {
10534               tailf:info "Allow default route to match when checking source address";
10535               description
10536                 "Allow default route to match when checking source address";
10537               type empty;
10538             }
10539           }
10540         }
10541       }
10542       container wccp {
10543         tailf:info "WCCP IPv4 interface commands";
10544         description
10545           "WCCP IPv4 interface commands";
10546         uses interface-ip-wccp-grouping;
10547         container redirect {
10548           tailf:info "Set packet redirection options";
10549           description
10550             "Set packet redirection options";
10551           container exclude {
10552             tailf:info "Exclude packets from redirection";
10553             description
10554               "Exclude packets from redirection";
10555             leaf in {
10556               tailf:info "Exclude inbound packets from outbound redirection";
10557               description
10558                 "Exclude inbound packets from outbound redirection";
10559               type empty;
10560             }
10561           }
10562         }
10563         list vrf {
10564           tailf:info "Configure WCCP for a VRF";
10565           description
10566             "Configure WCCP for a VRF";
10567           tailf:cli-suppress-mode;
10568           key "name";
10569           leaf name {
10570             type string {
10571               tailf:info "WORD;;VRF name";
10572             }
10573           }
10574           uses interface-ip-wccp-grouping;
10575         }
10576       }
10577     }
10578     container ipv6 {
10579       tailf:info "IPv6 interface subcommands";
10580       description
10581         "IPv6 interface subcommands";
10582       container address {
10583         tailf:info "Configure IPv6 address on interface";
10584         description
10585           "Configure IPv6 address on interface";
10586         choice address-choice {
10587           case autoconfig-case {
10588             container autoconfig {
10589               tailf:info "Obtain address using autoconfiguration";
10590               description
10591                 "Obtain address using autoconfiguration";
10592               presence "true";
10593               leaf default {
10594                 tailf:info "Insert default route";
10595                 description
10596                   "Insert default route";
10597                 type empty;
10598               }
10599             }
10600           }
10601           case manual-case {
10602             list prefix-list {
10603               tailf:cli-drop-node-name;
10604               tailf:cli-suppress-mode;
10605               tailf:cli-delete-when-empty;
10606               key "prefix";
10607               leaf prefix {
10608                 type ios:ipv6-prefix {
10609                   tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix";
10610                 }
10611               }
10612               leaf anycast {
10613                 tailf:info "Configure as an anycast";
10614                 description
10615                   "Configure as an anycast";
10616                 tailf:cli-full-command;
10617                 type empty;
10618               }
10619               leaf eui-64 {
10620                 tailf:info "Use eui-64 interface identifier";
10621                 description
10622                   "Use eui-64 interface identifier";
10623                 tailf:cli-full-command;
10624                 type empty;
10625               }
10626             }
10627           }
10628           case link-local-case {
10629             list link-local-address {
10630               tailf:cli-drop-node-name;
10631               tailf:cli-suppress-mode;
10632               tailf:cli-delete-when-empty;
10633               key "address";
10634               leaf address {
10635                 type inet:ipv6-address {
10636                   tailf:info "X:X:X:X::X;;IPv6 link-local address";
10637                 }
10638               }
10639               leaf link-local {
10640                 tailf:info "Use link-local address";
10641                 description
10642                   "Use link-local address";
10643                 tailf:cli-full-command;
10644                 type empty;
10645               }
10646             }
10647           }
10648         }
10649       }
10650       leaf enable {
10651         tailf:info "Enable IPv6 on interface";
10652         description
10653           "Enable IPv6 on interface";
10654         type empty;
10655       }
10656       container flow {
10657         tailf:info "NetFlow related commands";
10658         description
10659           "NetFlow related commands";
10660         leaf ingress {
10661           tailf:info "Enable inbound NetFlow";
10662           description
10663             "Enable inbound NetFlow";
10664           type empty;
10665         }
10666         leaf egress {
10667           tailf:info "Enable outbound NetFlow";
10668           description
10669             "Enable outbound NetFlow";
10670           type empty;
10671         }
10672         uses interface-ip-monitor-grouping;
10673       }
10674       container ospf {
10675         tailf:info "OSPF interface commands";
10676         description
10677           "OSPF interface commands";
10678         list process {
10679           tailf:cli-suppress-mode;
10680           tailf:cli-delete-when-empty;
10681           tailf:cli-drop-node-name;
10682           tailf:cli-compact-syntax;
10683           tailf:cli-sequence-commands {
10684             tailf:cli-reset-siblings;
10685           }
10686           key "id";
10687           leaf id {
10688             type uint16 {
10689               tailf:info "<1-65535>;;Process ID";
10690               range "1..65535";
10691             }
10692           }
10693           leaf area {
10694             tailf:info "Set the OSPF area ID";
10695             description
10696               "Set the OSPF area ID";
10697             type union {
10698               type uint32 {
10699                 tailf:info "<0-4294967295>;;OSPF area ID as a decimal value";
10700                 range "0..4294967295";
10701               }
10702               type inet:ipv4-address {
10703                 tailf:info "A.B.C.D;;OSPF area ID in IP address format";
10704               }
10705             }
10706           }
10707           leaf instance {
10708             tailf:info "Set the OSPF instance";
10709             description
10710               "Set the OSPF instance";
10711             type union {
10712               type uint8 {
10713                 tailf:info "<0-31>;;Instance ID";
10714                 range "0..31";
10715               }
10716               type uint8 {
10717                 tailf:info "<32-255>;;Instance ID (DEPRECATED!)";
10718                 range "32..255";
10719               }
10720             }
10721           }
10722         }
10723         container authentication {
10724           tailf:info "Enable authentication";
10725           description
10726             "Enable authentication";
10727           leaf null {
10728             tailf:info "Use no authentication";
10729             description
10730               "Use no authentication";
10731             type empty;
10732           }
10733           uses authentication-ipsec-grouping;
10734         }
10735         uses interface-ospf-bfd-grouping;
10736         leaf cost {
10737           tailf:info "Route cost of this interface";
10738           description
10739             "Route cost of this interface";
10740           type uint16 {
10741             tailf:info "<1-65535>;;Route cost of this interface";
10742             range "1..65535";
10743           }
10744         }
10745         container database-filter {
10746           tailf:info "Filter OSPF LSA during synchronization and flooding";
10747           description
10748             "Filter OSPF LSA during synchronization and flooding";
10749           choice database {
10750             leaf all {
10751               tailf:info "Filter all LSA";
10752               description
10753                 "Filter all LSA";
10754               type enumeration {
10755                 enum "out" {
10756                   tailf:info "Outgoing LSA";
10757                 }
10758               }
10759             }
10760             leaf disable {
10761               tailf:info "Disable LSA Filter on this interface";
10762               description
10763                 "Disable LSA Filter on this interface";
10764               type empty;
10765             }
10766           }
10767         }
10768         uses interface-ospf-dead-interval-grouping;
10769         container demand-circuit {
10770           tailf:info "OSPF demand circuit";
10771           description
10772             "OSPF demand circuit";
10773           presence "true";
10774           leaf disable {
10775             tailf:info "Disable demand circuit on this interface";
10776             description
10777               "Disable demand circuit on this interface";
10778             tailf:cli-full-command;
10779             type empty;
10780           }
10781           leaf ignore {
10782             tailf:info "Ignore demand circuit auto-negotiation requests";
10783             description
10784               "Ignore demand circuit auto-negotiation requests";
10785             tailf:cli-full-command;
10786             type empty;
10787           }
10788         }
10789         uses interface-ospf-encryption-grouping;
10790         container flood-reduction {
10791           tailf:info "OSPF Flood Reduction";
10792           description
10793             "OSPF Flood Reduction";
10794           presence "true";
10795           leaf disable {
10796             tailf:info "Disable Flood Reduction on this interface";
10797             description
10798               "Disable Flood Reduction on this interface";
10799             type empty;
10800           }
10801         }
10802         uses interface-ospf-hello-interval-grouping;
10803         container mtu-ignore {
10804           tailf:info "Ignores the MTU in DBD packets";
10805           description
10806             "Ignores the MTU in DBD packets";
10807           presence "true";
10808           leaf disable {
10809             tailf:info "Disable Ingore MTU on this interface";
10810             description
10811               "Disable Ingore MTU on this interface";
10812             type empty;
10813           }
10814         }
10815         uses interface-ospf-neighbor-grouping;
10816         uses interface-ospf-network-grouping;
10817         uses interface-ospf-priority-grouping;
10818         uses interface-ospf-retransmit-interval-grouping;
10819         container shutdown {
10820           tailf:info "Shut down the interface in OSPFv3";
10821           description
10822             "Shut down the interface in OSPFv3";
10823           presence "true";
10824           leaf disable {
10825             tailf:info "Disable inherited shutdown";
10826             description
10827               "Disable inherited shutdown";
10828             type empty;
10829           }
10830         }
10831         uses interface-ospf-transmit-delay-grouping;
10832       }
10833       leaf mtu {
10834         tailf:info "Set IPv6 Maximum Transmission Unit";
10835         description
10836           "Set IPv6 Maximum Transmission Unit";
10837         type uint16 {
10838           tailf:info "<1280-9198>;;MTU (bytes)";
10839           range "1280..9198";
10840         }
10841       }
10842       leaf redirects {
10843         tailf:info "Enable sending ICMP Redirect messages";
10844         description
10845           "Enable sending ICMP Redirect messages";
10846         tailf:cli-boolean-no;
10847         tailf:cli-trim-default;
10848         type boolean;
10849       }
10850       list rip {
10851         tailf:info "Configure RIP routing protocol";
10852         description
10853           "Configure RIP routing protocol";
10854         tailf:cli-suppress-mode;
10855         key "id";
10856         leaf id {
10857           type string {
10858             tailf:info "WORD;;User selected string identifying this RIP process";
10859           }
10860         }
10861         leaf enable {
10862           tailf:info "Enable/disable RIP routing";
10863           description
10864             "Enable/disable RIP routing";
10865           tailf:cli-full-command;
10866           type empty;
10867         }
10868         container default-information {
10869           tailf:info "Configure handling of default route";
10870           description
10871             "Configure handling of default route";
10872           tailf:cli-compact-syntax;
10873           tailf:cli-sequence-commands;
10874           leaf route {
10875             tailf:cli-drop-node-name;
10876             type enumeration {
10877               enum "only" {
10878                 tailf:info "Advertise only the default route";
10879               }
10880               enum "originate" {
10881                 tailf:info "Originate the default route";
10882               }
10883             }
10884           }
10885           leaf metric {
10886             tailf:info "Default route metric";
10887             description
10888               "Default route metric";
10889             tailf:cli-optional-in-sequence;
10890             type uint8 {
10891               tailf:info "<1-15>;;Metric value";
10892               range "1..15";
10893             }
10894           }
10895         }
10896       }
10897       choice ipv6-pim-choice {
10898         container no-pim {
10899           tailf:cli-drop-node-name;
10900           leaf pim {
10901             tailf:info "PIM interface commands";
10902             description
10903               "PIM interface commands";
10904             tailf:cli-boolean-no;
10905             tailf:cli-trim-default;
10906             type boolean;
10907           }
10908         }
10909         container pim {
10910           tailf:info "PIM interface commands";
10911           description
10912             "PIM interface commands";
10913           leaf bfd {
10914             tailf:info "Configure BFD";
10915             description
10916               "Configure BFD";
10917             tailf:cli-full-command;
10918             type empty;
10919           }
10920           container bsr {
10921             tailf:info "Configure BSR";
10922             description
10923               "Configure BSR";
10924             leaf border {
10925               tailf:info "Border of PIM BSR domain";
10926               description
10927                 "Border of PIM BSR domain";
10928               type empty;
10929             }
10930           }
10931           leaf dr-priority {
10932             tailf:info "PIM Hello DR priority";
10933             description
10934               "PIM Hello DR priority";
10935             tailf:cli-full-command;
10936             type uint32 {
10937               tailf:info "<0-4294967295>;;Hello DR priority, preference given to larger value";
10938             }
10939           }
10940         }
10941       }
10942       container traffic-filter {
10943         tailf:info "Access control list for packets";
10944         description
10945           "Access control list for packets";
10946         tailf:cli-compact-syntax;
10947         tailf:cli-sequence-commands;
10948         leaf access-list {
10949           tailf:cli-drop-node-name;
10950           type string {
10951             tailf:info "WORD;;Access-list name";
10952           }
10953         }
10954         leaf direction {
10955           tailf:cli-drop-node-name;
10956           type enumeration {
10957             enum "in" {
10958               tailf:info "inbound packets";
10959             }
10960             enum "out" {
10961               tailf:info "outbound packets";
10962             }
10963           }
10964         }
10965       }
10966     }
10967     leaf load-interval {
10968       tailf:info "Specify interval for load calculation for an interface";
10969       description
10970         "Specify interval for load calculation for an interface";
10971       type uint16 {
10972         tailf:info "<30-600>;;Load interval delay in seconds";
10973         range "0..600";
10974       }
10975     }
10976     container logging {
10977       tailf:info "Configure logging for interface";
10978       description
10979         "Configure logging for interface";
10980       container event {
10981         tailf:info "Interface events";
10982         description
10983           "Interface events";
10984         leaf bundle-status {
10985           tailf:info "BUNDLE/UNBUNDLE messages";
10986           description
10987             "BUNDLE/UNBUNDLE messages";
10988           tailf:cli-full-command;
10989           type empty;
10990         }
10991         leaf link-status {
10992           tailf:info "UPDOWN and CHANGE messages";
10993           description
10994             "UPDOWN and CHANGE messages";
10995           tailf:cli-full-command;
10996           type empty;
10997         }
10998         leaf trunk-status {
10999           tailf:info "TRUNK status messages";
11000           description
11001             "TRUNK status messages";
11002           tailf:cli-full-command;
11003           type empty;
11004         }
11005         leaf nfas-status {
11006           tailf:info "NFAS D-channel status messages";
11007           description
11008             "NFAS D-channel status messages";
11009           tailf:cli-full-command;
11010           type empty;
11011         }
11012         container spanning-tree {
11013           tailf:info "Spanning-tree Interface events";
11014           description
11015             "Spanning-tree Interface events";
11016           presence "true";
11017           leaf status {
11018             tailf:info "Spanning-tree state change messages";
11019             description
11020               "Spanning-tree state change messages";
11021             tailf:cli-full-command;
11022             type empty;
11023           }
11024         }
11025         container subif-link-status {
11026           tailf:info "Sub-interface UPDOWN and CHANGE messages";
11027           description
11028             "Sub-interface UPDOWN and CHANGE messages";
11029           presence "true";
11030           leaf ignore-bulk {
11031             tailf:info "Do not log messages when the main interface is transitioning";
11032             description
11033               "Do not log messages when the main interface is transitioning";
11034             tailf:cli-full-command;
11035             type empty;
11036           }
11037         }
11038       }
11039     }
11040     container mdix {
11041       leaf auto {
11042         tailf:cli-full-command;
11043         tailf:cli-boolean-no;
11044         tailf:cli-trim-default;
11045         type boolean;
11046       }
11047     }
11048     container mop {
11049       leaf enabled {
11050         tailf:cli-full-command;
11051         tailf:cli-boolean-no;
11052         tailf:cli-trim-default;
11053         type boolean;
11054       }
11055     }
11056     leaf max-reserved-bandwidth {
11057       tailf:info "Maximum Reservable Bandwidth on an Interface";
11058       description
11059         "Maximum Reservable Bandwidth on an Interface";
11060       tailf:cli-full-command;
11061       type uint8 {
11062         tailf:info "<1-100>;;Max. reservable bandwidth as percent of interface bandwidth";
11063         range "1..100";
11064       }
11065     }
11066     container mls {
11067       tailf:info "mls sub/interface commands";
11068       description
11069         "mls sub/interface commands";
11070       container qos {
11071         tailf:info "qos command keyword";
11072         description
11073           "qos command keyword";
11074         leaf channel-consistency {
11075           tailf:info "enable or disable qos consistency checks";
11076           description
11077             "enable or disable qos consistency checks";
11078           tailf:cli-full-command;
11079           tailf:cli-boolean-no;
11080           tailf:cli-trim-default;
11081           type boolean;
11082         }
11083         leaf trust {
11084           tailf:info "trust keyword";
11085           description
11086             "trust keyword";
11087           tailf:cli-full-command;
11088           type enumeration {
11089             enum "cos" {
11090               tailf:info "cos keyword";
11091             }
11092             enum "device" {
11093               tailf:info "trusted device class";
11094             }
11095             enum "dscp" {
11096               tailf:info "dscp keyword";
11097             }
11098             enum "ip-precedence" {
11099               tailf:info "ip-precedence keyword";
11100             }
11101           }
11102         }
11103         leaf trust-device {
11104           tailf:cli-drop-node-name;
11105           when "../trust = 'device'";
11106           type enumeration {
11107             enum "cisco-phone" {
11108               tailf:info "Cisco IP Phone";
11109             }
11110             enum "cts" {
11111               tailf:info "Cisco-telepresence";
11112             }
11113             enum "ip-camera" {
11114               tailf:info "Cisco video surveillance camera";
11115             }
11116             enum "media-player" {
11117               tailf:info "Cisco Digital Media Player";
11118             }
11119           }
11120         }
11121         leaf vlan-based {
11122           tailf:info "vlan-based keyword";
11123           description
11124             "vlan-based keyword";
11125           tailf:cli-full-command;
11126           type empty;
11127         }
11128       }
11129     }
11130     leaf mtu {
11131       tailf:info "Set the interface Maximum Transmission Unit (MTU)";
11132       description
11133         "Set the interface Maximum Transmission Unit (MTU)";
11134       tailf:cli-full-command;
11135       type uint16 {
11136         range "64..18000";
11137         tailf:info "<64-18000>;;MTU size in bytes";
11138       }
11139     }
11140     container ospfv3 {
11141       tailf:info "OSPFv3 interface commands";
11142       description
11143         "OSPFv3 interface commands";
11144       list process-id {
11145         tailf:cli-drop-node-name;
11146         tailf:cli-suppress-mode;
11147         tailf:cli-delete-when-empty;
11148         tailf:cli-reset-container;
11149         key "id";
11150         leaf id {
11151           type uint16 {
11152             tailf:info "<1-65535>;;Process ID";
11153           }
11154         }
11155         uses interface-ospfv3-process-id-grouping;
11156         container ipv4 {
11157           tailf:info "Specify parameters for IPv4";
11158           description
11159             "Specify parameters for IPv4";
11160           list area {
11161             tailf:cli-suppress-mode;
11162             tailf:info "Set the OSPF area ID";
11163             description
11164               "Set the OSPF area ID";
11165             key "id";
11166             leaf id {
11167               type ospf-area-type;
11168             }
11169             leaf instance {
11170               tailf:info "Set the OSPF instance";
11171               description
11172                 "Set the OSPF instance";
11173               type uint8 {
11174                 tailf:info "<64-95>;;Instance ID";
11175                 range "64..95";
11176               }
11177             }
11178           }
11179           uses interface-ospfv3-process-id-grouping;
11180         }
11181         container ipv6 {
11182           tailf:info "Specify parameters for IPv6";
11183           description
11184             "Specify parameters for IPv6";
11185           list area {
11186             tailf:cli-suppress-mode;
11187             tailf:info "Set the OSPF area ID";
11188             description
11189               "Set the OSPF area ID";
11190             key "id";
11191             leaf id {
11192               type ospf-area-type;
11193             }
11194             leaf instance {
11195               tailf:info "Set the OSPF instance";
11196               description
11197                 "Set the OSPF instance";
11198               type uint8 {
11199                 tailf:info "<0-31>;;Instance ID";
11200                 range "0..31";
11201               }
11202             }
11203           }
11204           uses interface-ospfv3-process-id-grouping;
11205         }
11206       }
11207       container authentication {
11208         tailf:info "Enable authentication";
11209         description
11210           "Enable authentication";
11211         leaf key-chain {
11212           tailf:info "Use a key-chain for cryptographic authentication keys";
11213           description
11214             "Use a key-chain for cryptographic authentication keys";
11215           tailf:cli-full-command;
11216           type string {
11217             tailf:info "WORD;;Key-chain name";
11218           }
11219         }
11220         leaf null {
11221           tailf:cli-full-command;
11222           tailf:info "Use no authentication";
11223           description
11224             "Use no authentication";
11225           type empty;
11226         }
11227         uses authentication-ipsec-grouping;
11228       }
11229       uses interface-ospf-bfd-grouping;
11230       uses interface-ospfv3-cost-grouping;
11231       container database-filter {
11232         tailf:info "Filter OSPF LSA during synchronization and flooding";
11233         description
11234           "Filter OSPF LSA during synchronization and flooding";
11235         leaf all {
11236           tailf:info "Filter all LSA";
11237           description
11238             "Filter all LSA";
11239           type enumeration {
11240             enum "out" {
11241               tailf:info "Outgoing LSA";
11242             }
11243           }
11244         }
11245       }
11246       uses interface-ospf-dead-interval-grouping;
11247       container demand-circuit {
11248         tailf:info "OSPF Demand Circuit";
11249         description
11250           "OSPF Demand Circuit";
11251         presence "true";
11252         leaf ignore {
11253           tailf:info "Ignore demand circuit auto-negotiation requests";
11254           description
11255             "Ignore demand circuit auto-negotiation requests";
11256           type empty;
11257         }
11258       }
11259       uses interface-ospf-encryption-grouping;
11260       leaf flood-reduction {
11261         tailf:info "OSPF Flood Reduction";
11262         description
11263           "OSPF Flood Reduction";
11264         type empty;
11265       }
11266       uses interface-ospf-hello-interval-grouping;
11267       uses interface-ospfv3-manet-grouping;
11268       leaf mtu-ignore {
11269         tailf:info "Ignores the MTU in DBD packets";
11270         description
11271           "Ignores the MTU in DBD packets";
11272         type empty;
11273       }
11274       container multi-area {
11275         tailf:info "Set the OSPF multi-area ID";
11276         description
11277           "Set the OSPF multi-area ID";
11278         tailf:cli-sequence-commands;
11279         leaf id {
11280           tailf:cli-drop-node-name;
11281           type ospf-area-type;
11282         }
11283         leaf cost {
11284           tailf:info "Interface cost";
11285           description
11286             "Interface cost";
11287           tailf:cli-optional-in-sequence;
11288           type uint32 {
11289             tailf:info " <1-65535>;;Cost";
11290             range "1..65535";
11291           }
11292         }
11293       }
11294       uses interface-ospf-neighbor-grouping;
11295       uses interface-ospf-network-grouping;
11296       uses interface-ospf-prefix-suppression-grouping;
11297       uses interface-ospf-priority-grouping;
11298       uses interface-ospf-retransmit-interval-grouping;
11299       leaf shutdown {
11300         tailf:info "Shut down the interface in OSPFv3";
11301         description
11302           "Shut down the interface in OSPFv3";
11303         type empty;
11304       }
11305       uses interface-ospf-transmit-delay-grouping;
11306     }
11307     container power {
11308       container inline {
11309         leaf consumption {
11310           tailf:cli-full-command;
11311           type uint16 {
11312             range "4000..15400";
11313           }
11314         }
11315         leaf never {
11316           type empty;
11317         }
11318       }
11319     }
11320     container interface_qos {
11321       tailf:alt-name "qos";
11322       container trust {
11323         leaf device {
11324           type enumeration {
11325             enum "cisco-phone";
11326           }
11327         }
11328       }
11329     }
11330     container service-policy {
11331       tailf:info "Configure QoS Service Policy";
11332       description
11333         "Configure QoS Service Policy";
11334       leaf history {
11335         tailf:cli-full-command;
11336         tailf:info "Keep history of QoS metrics";
11337         description
11338           "Keep history of QoS metrics";
11339         type empty;
11340       }
11341       leaf input {
11342         tailf:cli-full-command;
11343         tailf:info "Assign policy-map to the input of an interface";
11344         description
11345           "Assign policy-map to the input of an interface";
11346         type string {
11347           tailf:info "WORD;;policy-map name";
11348         }
11349         tailf:non-strict-leafref {
11350           path "/ios:native/policy-map/name";
11351         }
11352       }
11353       leaf output {
11354         tailf:cli-full-command;
11355         tailf:info "Assign policy-map to the output of an interface";
11356         description
11357           "Assign policy-map to the output of an interface";
11358         type string {
11359           tailf:info "WORD;;policy-map name";
11360         }
11361         tailf:non-strict-leafref {
11362           path "/ios:native/policy-map/name";
11363         }
11364       }
11365       container type {
11366         tailf:info "Configure CPL Service Policy";
11367         description
11368           "Configure CPL Service Policy";
11369         container performance-monitor {
11370           tailf:info "Configure media monitor service-policy type";
11371           description
11372             "Configure media monitor service-policy type";
11373           tailf:cli-sequence-commands;
11374           tailf:cli-compact-syntax;
11375           leaf direction {
11376             tailf:cli-drop-node-name;
11377             type enumeration {
11378               enum "input" {
11379                 tailf:info "Assign policy-map to the input of an interfcae";
11380               }
11381               enum "output" {
11382                 tailf:info "Assign policy-map to the output of an interfcae";
11383               }
11384             }
11385           }
11386           leaf name {
11387             tailf:cli-drop-node-name;
11388             type string {
11389               tailf:info "WORD;;policy-map name";
11390             }
11391             tailf:non-strict-leafref {
11392               path "/ios:native/policy-map/name";
11393             }
11394           }
11395         }
11396         container service-chain {
11397           tailf:info "Configure Service-chain Service Policy";
11398           description
11399             "Configure Service-chain Service Policy";
11400           tailf:cli-sequence-commands;
11401           tailf:cli-compact-syntax;
11402           leaf direction {
11403             tailf:cli-drop-node-name;
11404             type enumeration {
11405               enum "input" {
11406                 tailf:info "Assign policy-map to the input of an interfcae";
11407               }
11408               enum "output" {
11409                 tailf:info "Assign policy-map to the output of an interfcae";
11410               }
11411             }
11412           }
11413           leaf name {
11414             tailf:cli-drop-node-name;
11415             type string {
11416               tailf:info "WORD;;policy-map name";
11417             }
11418             tailf:non-strict-leafref {
11419               path "/ios:native/policy-map/name";
11420             }
11421           }
11422         }
11423       }
11424     }
11425     leaf service-insertion {
11426       tailf:info "Service-insertion AppNav Controller";
11427       description
11428         "Service-insertion AppNav Controller";
11429       type enumeration {
11430         enum "waas" {
11431           tailf:info "Enable Service-insertion";
11432         }
11433       }
11434     }
11435     leaf shutdown {
11436       tailf:info "Shutdown the selected interface";
11437       description
11438         "Shutdown the selected interface";
11439       tailf:cli-full-command;
11440       type empty;
11441     }
11442     container standby {
11443       tailf:info "HSRP interface configuration commands";
11444       description
11445         "HSRP interface configuration commands";
11446       leaf version {
11447         tailf:info "HSRP version";
11448         description
11449           "HSRP version";
11450         tailf:cli-full-command;
11451         type enumeration {
11452           tailf:info "<1-2>;;Version number";
11453           enum "1";
11454           enum "2";
11455         }
11456       }
11457       leaf bfd {
11458         tailf:info "Enable HSRP BFD";
11459         description
11460           "Enable HSRP BFD";
11461         type empty;
11462       }
11463       container delay {
11464         tailf:info "HSRP initialisation delay";
11465         description
11466           "HSRP initialisation delay";
11467         tailf:cli-compact-syntax;
11468         leaf minimum {
11469           tailf:info "Minimum delay";
11470           description
11471             "Minimum delay";
11472           type uint16 {
11473             tailf:info "<0-10000>;;Delay in seconds";
11474             range "0..10000";
11475           }
11476         }
11477         leaf reload {
11478           tailf:info "Delay after reload";
11479           description
11480             "Delay after reload";
11481           type uint16 {
11482             tailf:info "<0-10000>;;Delay in seconds";
11483             range "0..10000";
11484           }
11485         }
11486       }
11487       leaf mac-refresh {
11488         tailf:info "Refresh MAC cache on switch by periodically sending packet from virtual mac address";
11489         description
11490           "Refresh MAC cache on switch by periodically sending packet from virtual mac address";
11491         type uint8 {
11492           tailf:info "<0-255>;;Interval to refresh MAC cache";
11493           range "0..255";
11494         }
11495       }
11496       container use-bia {
11497         tailf:info "HSRP uses interface's burned in address";
11498         description
11499           "HSRP uses interface's burned in address";
11500         presence "true";
11501         container scope {
11502           tailf:info "Specify the scope of use-bia";
11503           description
11504             "Specify the scope of use-bia";
11505           leaf interface {
11506             tailf:info "Use-bia applies to all groups on this interface or sub-interface";
11507             description
11508               "Use-bia applies to all groups on this interface or sub-interface";
11509             type empty;
11510           }
11511         }
11512       }
11513       list standby-list {
11514         tailf:cli-drop-node-name;
11515         tailf:cli-suppress-mode;
11516         tailf:cli-delete-when-empty;
11517         tailf:cli-incomplete-command;
11518         key "group-number";
11519         leaf group-number {
11520           tailf:cli-suppress-range;
11521           type uint16 {
11522             tailf:info "<0-255>;;group number";
11523           }
11524         }
11525         container authentication {
11526           tailf:info "Authentication";
11527           description
11528             "Authentication";
11529           choice auth {
11530             leaf word {
11531               tailf:cli-drop-node-name;
11532               tailf:cli-disallow-value "md5|text";
11533               type string {
11534                 tailf:info "WORD;;Plain text authentication string (8 chars max)";
11535               }
11536             }
11537             container md5 {
11538               tailf:info "Use MD5 authentication";
11539               description
11540                 "Use MD5 authentication";
11541               leaf key-chain {
11542                 tailf:info "Set key chain";
11543                 description
11544                   "Set key chain";
11545                 type string {
11546                   tailf:info "WORD;;Name of key-chain";
11547                 }
11548               }
11549               container key-string {
11550                 tailf:info "Set key string";
11551                 description
11552                   "Set key string";
11553                 tailf:cli-compact-syntax;
11554                 leaf encrypt {
11555                   tailf:cli-drop-node-name;
11556                   type enumeration {
11557                     enum "0" {
11558                       tailf:info "Specifies an UNENCRYPTED key string will follow";
11559                     }
11560                     enum "7" {
11561                       tailf:info "Specifies a HIDDEN key string will follow";
11562                     }
11563                   }
11564                 }
11565                 leaf string {
11566                   tailf:cli-drop-node-name;
11567                   type string {
11568                     tailf:info "WORD;;Key string (64 chars max)";
11569                   }
11570                 }
11571                 leaf timeout {
11572                   tailf:info "Set timeout";
11573                   description
11574                     "Set timeout";
11575                   type uint16 {
11576                     tailf:info "<0-32767>;;Timeout until only accepting new key (seconds)";
11577                     range "0..32767";
11578                   }
11579                 }
11580               }
11581             }
11582             leaf text {
11583               tailf:info "Plain text authentication";
11584               description
11585                 "Plain text authentication";
11586               type string {
11587                 tailf:info "WORD;;Plain text authentication string (8 chars max)";
11588               }
11589             }
11590           }
11591         }
11592         leaf follow {
11593           tailf:info "Name of HSRP group to follow";
11594           description
11595             "Name of HSRP group to follow";
11596           type string {
11597             tailf:info "WORD;;name string (25 chars. max)";
11598           }
11599         }
11600         container ip {
11601           tailf:info "Enable HSRP and set the virtual IP address";
11602           description
11603             "Enable HSRP and set the virtual IP address";
11604           tailf:cli-sequence-commands;
11605           tailf:cli-compact-syntax;
11606           presence "true";
11607           leaf address {
11608             tailf:cli-drop-node-name;
11609             type inet:ipv4-address {
11610               tailf:info "A.B.C.D;;Virtual IP address";
11611             }
11612           }
11613           leaf secondary {
11614             tailf:info "Make this IP address a secondary virtual IP address";
11615             description
11616               "Make this IP address a secondary virtual IP address";
11617             type empty;
11618           }
11619         }
11620         leaf ipv6 {
11621           tailf:info "Enable HSRP IPv6";
11622           description
11623             "Enable HSRP IPv6";
11624           type union {
11625             type inet:ipv6-address {
11626               tailf:info "X:X:X:X::X;;IPv6 link-local address";
11627             }
11628             type ios:ipv6-prefix;
11629             type enumeration {
11630               enum "autoconfig" {
11631                 tailf:info "Obtain address using autoconfiguration";
11632               }
11633             }
11634           }
11635         }
11636         leaf mac-address {
11637           tailf:info "Virtual MAC address";
11638           description
11639             "Virtual MAC address";
11640           type string {
11641             tailf:info "H.H.H;;MAC address";
11642           }
11643         }
11644         leaf name {
11645           tailf:info "Redundancy name string";
11646           description
11647             "Redundancy name string";
11648           tailf:cli-full-command;
11649           type string {
11650             tailf:info "WORD;;name string";
11651           }
11652         }
11653         container preempt {
11654           tailf:info "Overthrow lower priority Active routers";
11655           description
11656             "Overthrow lower priority Active routers";
11657           presence "true";
11658           container delay {
11659             tailf:info "Wait before preempting";
11660             description
11661               "Wait before preempting";
11662             tailf:cli-compact-syntax;
11663             leaf minimum {
11664               tailf:info "Delay at least this long";
11665               description
11666                 "Delay at least this long";
11667               type uint16 {
11668                 tailf:info "<0-3600>;;Number of seconds for minimum delay";
11669                 range "0..3600";
11670               }
11671             }
11672             leaf reload {
11673               tailf:info "Delay after reload";
11674               description
11675                 "Delay after reload";
11676               type uint16 {
11677                 tailf:info "<0-3600>;;Number of seconds for reload delay";
11678                 range "0..3600";
11679               }
11680             }
11681             leaf sync {
11682               tailf:info "Wait for IP redundancy client";
11683               description
11684                 "Wait for IP redundancy client";
11685               type uint16 {
11686                 tailf:info "<0-3600>;;Number of seconds for sync delay";
11687                 range "0..3600";
11688               }
11689             }
11690           }
11691         }
11692         leaf priority {
11693           tailf:info "Priority level";
11694           description
11695             "Priority level";
11696           tailf:cli-full-command;
11697           type uint8 {
11698             tailf:info "<0-255>;;Priority value";
11699           }
11700         }
11701         container redirect {
11702           tailf:info "Configure sending of ICMP Redirect messages with an HSRP virtual IP address as the gateway IP address";
11703           description
11704             "Configure sending of ICMP Redirect messages with an HSRP virtual IP address as the gateway IP address";
11705           container advertisement {
11706             tailf:info "Redirect advertisement messages";
11707             description
11708               "Redirect advertisement messages";
11709             container authentication {
11710               tailf:info "Authentication";
11711               description
11712                 "Authentication";
11713               container md5 {
11714                 tailf:info "Use MD5 authentication";
11715                 description
11716                   "Use MD5 authentication";
11717                 leaf key-chain {
11718                   tailf:info "Set key chain";
11719                   description
11720                     "Set key chain";
11721                   type string {
11722                     tailf:info "WORD;;Name of key-chain";
11723                   }
11724                 }
11725                 container key-string {
11726                   tailf:info "Set key string";
11727                   description
11728                     "Set key string";
11729                   tailf:cli-compact-syntax;
11730                   tailf:cli-sequence-commands {
11731                     tailf:cli-reset-siblings;
11732                   }
11733                   leaf encrypt {
11734                     tailf:cli-drop-node-name;
11735                     type enumeration {
11736                       enum "0" {
11737                         tailf:info "Specifies an UNENCRYPTED key string will follow";
11738                       }
11739                       enum "7" {
11740                         tailf:info "Specifies a HIDDEN key string will follow";
11741                       }
11742                     }
11743                   }
11744                   leaf string {
11745                     tailf:cli-drop-node-name;
11746                     type string {
11747                       tailf:info "WORD;;Key string (64 chars max)";
11748                     }
11749                   }
11750                   leaf timeout {
11751                     tailf:info "Set timeout";
11752                     description
11753                       "Set timeout";
11754                     type uint16 {
11755                       tailf:info "<0-32767>;;Timeout until only accepting new key (seconds)";
11756                       range "0..32767";
11757                     }
11758                   }
11759                 }
11760               }
11761             }
11762           }
11763           container timers {
11764             tailf:info "Adjust redirect timers";
11765             description
11766               "Adjust redirect timers";
11767             tailf:cli-compact-syntax;
11768             tailf:cli-sequence-commands {
11769               tailf:cli-reset-siblings;
11770             }
11771             leaf advertisement {
11772               tailf:cli-drop-node-name;
11773               type uint16 {
11774                 tailf:info "<10-180>;;Passive router advertisement interval in seconds";
11775                 range "10..180";
11776               }
11777             }
11778             leaf holddown {
11779               tailf:cli-drop-node-name;
11780               type uint16 {
11781                 tailf:info "<30-3600>;;Passive router holddown interval in seconds";
11782                 range "30..3600";
11783               }
11784             }
11785           }
11786           leaf unknown {
11787             tailf:info "Redirect to non-HSRP routers";
11788             description
11789               "Redirect to non-HSRP routers";
11790             type empty;
11791           }
11792         }
11793         container timers {
11794           tailf:info "Hello and hold timers";
11795           description
11796             "Hello and hold timers";
11797           tailf:cli-compact-syntax;
11798           tailf:cli-sequence-commands {
11799             tailf:cli-reset-siblings;
11800           }
11801           container hello-interval {
11802             tailf:cli-drop-node-name;
11803             tailf:cli-flatten-container;
11804             tailf:cli-compact-syntax;
11805             choice hello-interval-choice {
11806               leaf seconds {
11807                 tailf:cli-drop-node-name;
11808                 tailf:cli-incomplete-command;
11809                 type uint8 {
11810                   tailf:info "<1-254>;;Hello interval in seconds";
11811                   range "1..254";
11812                 }
11813               }
11814               leaf msec {
11815                 tailf:info "Specify hello interval in milliseconds";
11816                 description
11817                   "Specify hello interval in milliseconds";
11818                 tailf:cli-incomplete-command;
11819                 type uint16 {
11820                   tailf:info "<15-999>;;Hello interval in milliseconds";
11821                   range "15..999";
11822                 }
11823               }
11824             }
11825           }
11826           container hold-time {
11827             tailf:cli-drop-node-name;
11828             tailf:cli-flatten-container;
11829             tailf:cli-compact-syntax;
11830             choice hold-time-choice {
11831               leaf seconds {
11832                 tailf:cli-drop-node-name;
11833                 type uint8 {
11834                   tailf:info "<1-255>;;Hold time in seconds";
11835                   range "1..255";
11836                 }
11837               }
11838               leaf msec {
11839                 tailf:info "Specify hold time in milliseconds";
11840                 description
11841                   "Specify hold time in milliseconds";
11842                 type uint16 {
11843                   tailf:info "<50-3000>;;Hello interval in milliseconds";
11844                   range "50..3000";
11845                 }
11846               }
11847             }
11848           }
11849         }
11850         list track {
11851           tailf:info "Priority tracking";
11852           description
11853             "Priority tracking";
11854           tailf:cli-suppress-mode;
11855           key "number";
11856           leaf number {
11857             type uint16 {
11858               tailf:info "<1-1000>;;Tracked object number";
11859               range "1..1000";
11860             }
11861           }
11862           leaf decrement {
11863             tailf:info "Priority decrement";
11864             description
11865               "Priority decrement";
11866             tailf:cli-full-command;
11867             type uint8 {
11868               tailf:info "<1-255>;;Decrement value";
11869             }
11870           }
11871           leaf shutdown {
11872             tailf:info "Shutdown group";
11873             description
11874               "Shutdown group";
11875             tailf:cli-full-command;
11876             type empty;
11877           }
11878         }
11879       }
11880     }
11881     container storm-control {
11882       tailf:info "storm configuration";
11883       description
11884         "storm configuration";
11885       container action {
11886         tailf:info "Action to take for storm..control;";
11887         description
11888           "Action to take for storm..control;";
11889         leaf level {
11890           tailf:info "Set storm suppression level on this interface";
11891           description
11892             "Set storm suppression level on this interface";
11893           type decimal64 {
11894             fraction-digits 2;
11895             tailf:info "<0-100>;;Enter Integer part of level as percentage of bandwidth";
11896             range "0..100";
11897           }
11898         }
11899       }
11900       container broadcast {
11901         tailf:info "Broadcast address storm control";
11902         description
11903           "Broadcast address storm control";
11904         leaf level {
11905           tailf:info "Set storm suppression level on this interface";
11906           description
11907             "Set storm suppression level on this interface";
11908           type decimal64 {
11909             fraction-digits 2;
11910             tailf:info "<0-100>;;Enter Integer part of level as percentage of bandwidth";
11911             range "0..100";
11912           }
11913         }
11914       }
11915       container multicast {
11916         tailf:info "Multicast address storm control";
11917         description
11918           "Multicast address storm control";
11919         leaf level {
11920           tailf:info "Set storm suppression level on this interface";
11921           description
11922             "Set storm suppression level on this interface";
11923           type decimal64 {
11924             fraction-digits 2;
11925             tailf:info "<0-100>;;Enter Integer part of level as percentage of bandwidth";
11926             range "0..100";
11927           }
11928         }
11929       }
11930       container unicast {
11931         tailf:info "Unicast address storm control";
11932         description
11933           "Unicast address storm control";
11934         leaf level {
11935           tailf:info "Set storm suppression level on this interface";
11936           description
11937             "Set storm suppression level on this interface";
11938           type decimal64 {
11939             fraction-digits 2;
11940             tailf:info "<0-100>;;Enter Integer part of level as percentage of bandwidth";
11941             range "0..100";
11942           }
11943         }
11944       }
11945     }
11946     container utd {
11947       tailf:info "UTD support on this interface";
11948       description
11949         "UTD support on this interface";
11950       leaf enable {
11951         tailf:info "Enable threat defense on this interface";
11952         description
11953           "Enable threat defense on this interface";
11954         type empty;
11955       }
11956     }
11957     container wrr-queue {
11958       tailf:info "Configure weighted round-robin xmt queues";
11959       description
11960         "Configure weighted round-robin xmt queues";
11961       container bandwidth {
11962         tailf:info "Configure WRR minimum bandwidth with weights or percentages";
11963         description
11964           "Configure WRR minimum bandwidth with weights or percentages";
11965         tailf:cli-compact-syntax;
11966         tailf:cli-sequence-commands {
11967           tailf:cli-reset-siblings;
11968         }
11969         choice bandwidth-choice {
11970           case a {
11971             leaf weight-1 {
11972               tailf:cli-drop-node-name;
11973               type uint8 {
11974                 tailf:info "<0-255>;;enter bandwidth weight";
11975                 range "0..255";
11976               }
11977             }
11978             leaf weight-2 {
11979               tailf:cli-drop-node-name;
11980               type uint8 {
11981                 tailf:info "<0-255>;;enter bandwidth weight";
11982                 range "0..255";
11983               }
11984             }
11985             leaf weight-3 {
11986               tailf:cli-drop-node-name;
11987               type uint8 {
11988                 tailf:info "<0-255>;;enter bandwidth weight";
11989                 range "0..255";
11990               }
11991             }
11992             leaf weight-4 {
11993               tailf:cli-drop-node-name;
11994               type uint8 {
11995                 tailf:info "<0-255>;;enter bandwidth weight";
11996                 range "0..255";
11997               }
11998             }
11999             leaf weight-5 {
12000               tailf:cli-drop-node-name;
12001               type uint8 {
12002                 tailf:info "<0-255>;;enter bandwidth weight";
12003                 range "0..255";
12004               }
12005             }
12006             leaf weight-6 {
12007               tailf:cli-drop-node-name;
12008               type uint8 {
12009                 tailf:info "<0-255>;;enter bandwidth weight";
12010                 range "0..255";
12011               }
12012             }
12013             leaf weight-7 {
12014               tailf:cli-drop-node-name;
12015               type uint8 {
12016                 tailf:info "<0-255>;;enter bandwidth weight";
12017                 range "0..255";
12018               }
12019             }
12020           }
12021           case b {
12022             container percent {
12023               tailf:cli-compact-syntax;
12024               tailf:cli-sequence-commands {
12025                 tailf:cli-reset-siblings;
12026               }
12027               leaf percent-1 {
12028                 tailf:cli-drop-node-name;
12029                 type uint8 {
12030                   tailf:info "<0-100>;;enter bandwidth percent";
12031                   range "0..100";
12032                 }
12033               }
12034               leaf percent-2 {
12035                 tailf:cli-drop-node-name;
12036                 type uint8 {
12037                   tailf:info "<0-100>;;enter bandwidth percent";
12038                   range "0..100";
12039                 }
12040               }
12041               leaf percent-3 {
12042                 tailf:cli-drop-node-name;
12043                 type uint8 {
12044                   tailf:info "<0-100>;;enter bandwidth percent";
12045                   range "0..100";
12046                 }
12047               }
12048               leaf percent-4 {
12049                 tailf:cli-drop-node-name;
12050                 type uint8 {
12051                   tailf:info "<0-100>;;enter bandwidth percent";
12052                   range "0..100";
12053                 }
12054               }
12055               leaf percent-5 {
12056                 tailf:cli-drop-node-name;
12057                 type uint8 {
12058                   tailf:info "<0-100>;;enter bandwidth percent";
12059                   range "0..100";
12060                 }
12061               }
12062               leaf percent-6 {
12063                 tailf:cli-drop-node-name;
12064                 type uint8 {
12065                   tailf:info "<0-100>;;enter bandwidth percent";
12066                   range "0..100";
12067                 }
12068               }
12069               leaf percent-7 {
12070                 tailf:cli-drop-node-name;
12071                 type uint8 {
12072                   tailf:info "<0-100>;;enter bandwidth percent";
12073                   range "0..100";
12074                 }
12075               }
12076             }
12077           }
12078         }
12079       }
12080       list cos-map {
12081         tailf:info "Configure cos-map for a queue threshold";
12082         description
12083           "Configure cos-map for a queue threshold";
12084         tailf:cli-suppress-mode;
12085         tailf:cli-delete-when-empty;
12086         tailf:cli-compact-syntax;
12087         tailf:cli-sequence-commands {
12088           tailf:cli-reset-siblings;
12089         }
12090         key "queue-id threshold-id";
12091         leaf queue-id {
12092           type uint8 {
12093             tailf:info "<1-3>;;enter cos-map queue id";
12094             range "1..3";
12095           }
12096         }
12097         leaf threshold-id {
12098           type uint8 {
12099             tailf:info "<1-8>;;enter cos-map threshhold id";
12100             range "1..8";
12101           }
12102         }
12103         leaf-list cos-values {
12104           tailf:cli-drop-node-name;
12105           tailf:cli-flat-list-syntax;
12106           max-elements "8";
12107           type uint8 {
12108             tailf:info "<0-7>;;cos values separated by spaces (up to 8 values total)";
12109             range "0..7";
12110           }
12111         }
12112       }
12113       container queue-limit {
12114         tailf:info "Configure queue-limit";
12115         description
12116           "Configure queue-limit";
12117         tailf:cli-compact-syntax;
12118         tailf:cli-sequence-commands {
12119           tailf:cli-reset-siblings;
12120         }
12121         leaf weight-a {
12122           tailf:cli-drop-node-name;
12123           type uint8 {
12124             tailf:info "<0-100>;;enter queue size weight";
12125             range "0..100";
12126           }
12127         }
12128         leaf weight-b {
12129           tailf:cli-drop-node-name;
12130           type uint8 {
12131             tailf:info "<0-100>;;enter queue size weight";
12132             range "0..100";
12133           }
12134         }
12135         leaf weight-c {
12136           tailf:cli-drop-node-name;
12137           type uint8 {
12138             tailf:info "<0-100>;;enter queue size weight";
12139             range "0..100";
12140           }
12141         }
12142       }
12143       container random-detect {
12144         tailf:info "Configure random-detect";
12145         description
12146           "Configure random-detect";
12147         list max-threshold {
12148           tailf:info "Max threshold for WRED";
12149           description
12150             "Max threshold for WRED";
12151           tailf:cli-suppress-mode;
12152           tailf:cli-delete-when-empty;
12153           tailf:cli-compact-syntax;
12154           tailf:cli-sequence-commands {
12155             tailf:cli-reset-siblings;
12156           }
12157           key "id";
12158           leaf id {
12159             type uint8 {
12160               tailf:info "<1-3>;;enter queue id";
12161               range "1..3";
12162             }
12163           }
12164           uses queue-size-grouping;
12165         }
12166         list min-threshold {
12167           tailf:info "Min threshold for WRED";
12168           description
12169             "Min threshold for WRED";
12170           tailf:cli-suppress-mode;
12171           tailf:cli-delete-when-empty;
12172           tailf:cli-compact-syntax;
12173           tailf:cli-sequence-commands {
12174             tailf:cli-reset-siblings;
12175           }
12176           key "id";
12177           leaf id {
12178             type uint8 {
12179               tailf:info "<1-3>;;enter queue id";
12180               range "1..3";
12181             }
12182           }
12183           uses queue-size-grouping;
12184         }
12185       }
12186       list threshold {
12187         tailf:info "Configure queue tail-drop thresholds";
12188         description
12189           "Configure queue tail-drop thresholds";
12190         tailf:cli-suppress-mode;
12191         tailf:cli-delete-when-empty;
12192         tailf:cli-compact-syntax;
12193         tailf:cli-sequence-commands {
12194           tailf:cli-reset-siblings;
12195         }
12196         key "id";
12197         leaf id {
12198           type uint8 {
12199             tailf:info "<1-3>;;enter queue id";
12200             range "1..3";
12201           }
12202         }
12203         uses queue-size-grouping;
12204       }
12205     }
12206     container priority-queue {
12207       tailf:info "Configure priority scheduling";
12208       description
12209         "Configure priority scheduling";
12210       container cos-map {
12211         tailf:info "Configure cos-map for a queue";
12212         description
12213           "Configure cos-map for a queue";
12214         tailf:cli-compact-syntax;
12215         tailf:cli-sequence-commands {
12216           tailf:cli-reset-siblings;
12217         }
12218         leaf id {
12219           tailf:cli-drop-node-name;
12220           type uint8;
12221         }
12222         leaf-list cos-values {
12223           tailf:cli-drop-node-name;
12224           tailf:cli-flat-list-syntax;
12225           max-elements "8";
12226           type uint8 {
12227             tailf:info "<0-7>;;cos values separated by spaces (up to 8 values total)";
12228             range "0..7";
12229           }
12230         }
12231       }
12232       leaf out {
12233         tailf:info "egress priority queue";
12234         description
12235           "egress priority queue";
12236         tailf:cli-full-command;
12237         type empty;
12238       }
12239     }
12240     container rep {
12241       tailf:info "Resilient Ethernet Protocol characteristics";
12242       description
12243         "Resilient Ethernet Protocol characteristics";
12244       container block {
12245         tailf:info "Block port & VLANs for VLAN Load-balancing";
12246         description
12247           "Block port & VLANs for VLAN Load-balancing";
12248         container port {
12249           tailf:info "Specify port for VLAN Load-balancing";
12250           description
12251             "Specify port for VLAN Load-balancing";
12252           tailf:cli-sequence-commands {
12253             tailf:cli-reset-siblings;
12254           }
12255           tailf:cli-compact-syntax;
12256           choice port-choice {
12257             leaf neighbor-offset {
12258               tailf:cli-drop-node-name;
12259               type int16 {
12260                 tailf:info "<-256 - 256>;;Neighbor offset";
12261                 range "-256..256";
12262               }
12263             }
12264             leaf id {
12265               tailf:info "REP port ID";
12266               description
12267                 "REP port ID";
12268               type string {
12269                 tailf:info "WORD;;REP port ID (16 digit hexadecimal number)";
12270               }
12271             }
12272             leaf preferred {
12273               tailf:info "Preferred flag";
12274               description
12275                 "Preferred flag";
12276               type empty;
12277             }
12278           }
12279           leaf vlan {
12280             tailf:info "VLANs to block";
12281             description
12282               "VLANs to block";
12283             type union {
12284               type string {
12285                 tailf:info "WORD;;VLAN list (1-4094) ex: 1-65,72,300-320";
12286               }
12287               type enumeration {
12288                 enum "all" {
12289                   tailf:info "All VLANs";
12290                 }
12291               }
12292             }
12293           }
12294         }
12295       }
12296       container preempt {
12297         tailf:info "Preemption options";
12298         description
12299           "Preemption options";
12300         leaf delay {
12301           tailf:info "Delay timer in seconds";
12302           description
12303             "Delay timer in seconds";
12304           type uint16 {
12305             tailf:info "<15-300>;;number of seconds before automatic preemption takes place";
12306             range "15..300";
12307           }
12308         }
12309       }
12310       container segment {
12311         tailf:info "REP segment ID";
12312         description
12313           "REP segment ID";
12314         tailf:cli-compact-syntax;
12315         tailf:cli-sequence-commands {
12316           tailf:cli-reset-siblings;
12317         }
12318         leaf id {
12319           tailf:cli-drop-node-name;
12320           type uint16 {
12321             tailf:info "<1-1024>;;Between 1 and 1024";
12322             range "1..1024";
12323           }
12324         }
12325         leaf edge {
12326           tailf:info "Edge Port";
12327           description
12328             "Edge Port";
12329           tailf:cli-optional-in-sequence;
12330           type empty;
12331         }
12332         leaf primary {
12333           tailf:info "Primary Edge Port";
12334           description
12335             "Primary Edge Port";
12336           tailf:cli-optional-in-sequence;
12337           when "../edge" {
12338             tailf:dependency "../edge";
12339           }
12340           type empty;
12341         }
12342         leaf preferred {
12343           tailf:info "Preferred Alternate Port";
12344           description
12345             "Preferred Alternate Port";
12346           type empty;
12347         }
12348       }
12349       container stcn {
12350         tailf:info "Segment Topology Change Notification";
12351         description
12352           "Segment Topology Change Notification";
12353         leaf segment {
12354           tailf:info "for REP segment";
12355           description
12356             "for REP segment";
12357           type string {
12358             tailf:info "WORD;;segment ID list (1-1024) ex: 1-3,6-9";
12359           }
12360         }
12361         leaf stp {
12362           tailf:info "for STP network";
12363           description
12364             "for STP network";
12365           type empty;
12366         }
12367       }
12368     }
12369     container rcv-queue {
12370       tailf:info "Configure receive queue(s)";
12371       description
12372         "Configure receive queue(s)";
12373       list cos-map {
12374         tailf:info "Configure cos-map for a queue threshold";
12375         description
12376           "Configure cos-map for a queue threshold";
12377         tailf:cli-suppress-mode;
12378         tailf:cli-delete-when-empty;
12379         tailf:cli-compact-syntax;
12380         tailf:cli-sequence-commands {
12381           tailf:cli-reset-siblings;
12382         }
12383         key "queue-id threshold-id";
12384         leaf queue-id {
12385           type uint8 {
12386             tailf:info "<1-3>;;enter cos-map queue id";
12387             range "1..3";
12388           }
12389         }
12390         leaf threshold-id {
12391           type uint8 {
12392             tailf:info "<1-8>;;enter cos-map threshhold id";
12393             range "1..8";
12394           }
12395         }
12396         leaf-list cos-values {
12397           tailf:cli-drop-node-name;
12398           tailf:cli-flat-list-syntax;
12399           max-elements "8";
12400           type uint8 {
12401             tailf:info "<0-7>;;cos values separated by spaces (up to 8 values total)";
12402             range "0..7";
12403           }
12404         }
12405       }
12406     }
12407     container udld {
12408       tailf:info "Configure UDLD enabled or disabled and ignore global UDLD setting";
12409       description
12410         "Configure UDLD enabled or disabled and ignore global UDLD setting";
12411       container port {
12412         tailf:info "Enable UDLD protocol on this interface despite global UDLD setting";
12413         description
12414           "Enable UDLD protocol on this interface despite global UDLD setting";
12415         tailf:cli-delete-when-empty;
12416         presence "true";
12417         choice port-choice {
12418           leaf aggressive {
12419             tailf:info "Enable UDLD protocol in aggressive mode on this interface despite global UDLD setting";
12420             description
12421               "Enable UDLD protocol in aggressive mode on this interface despite global UDLD setting";
12422             type empty;
12423           }
12424           leaf disable {
12425             tailf:info "Disable UDLD protocol on this interface despite global UDLD setting";
12426             description
12427               "Disable UDLD protocol on this interface despite global UDLD setting";
12428             type empty;
12429           }
12430         }
12431       }
12432     }
12433     container peer {
12434       tailf:info "Peer parameters for point to point interfaces";
12435       description
12436         "Peer parameters for point to point interfaces";
12437       container default {
12438         tailf:info "Specify default parameters";
12439         description
12440           "Specify default parameters";
12441         container ip {
12442           tailf:info "Specify default IP parameters";
12443           description
12444             "Specify default IP parameters";
12445           container address {
12446             tailf:info "Specify default IP address";
12447             description
12448               "Specify default IP address";
12449             choice address-choice {
12450               leaf dhcp {
12451                 tailf:info "Use DHCP proxy client mechanism to allocate a peer IP address";
12452                 description
12453                   "Use DHCP proxy client mechanism to allocate a peer IP address";
12454                 type empty;
12455               }
12456               container dhcp-pool {
12457                 tailf:info "Use local DHCP pools to allocate a peer IP address";
12458                 description
12459                   "Use local DHCP pools to allocate a peer IP address";
12460                 presence "true";
12461                 leaf pools {
12462                   tailf:cli-drop-node-name;
12463                   tailf:cli-multi-value;
12464                   type string {
12465                     tailf:info "LINE;;List of one or more DHCP address pools";
12466                   }
12467                 }
12468               }
12469               container pool {
12470                 tailf:info "Use IP pool mechanism to allocate a peer IP address";
12471                 description
12472                   "Use IP pool mechanism to allocate a peer IP address";
12473                 presence "true";
12474                 leaf pools {
12475                   tailf:cli-drop-node-name;
12476                   tailf:cli-multi-value;
12477                   type string {
12478                     tailf:info "LINE;;List of one or more DHCP address pools";
12479                   }
12480                 }
12481               }
12482             }
12483           }
12484         }
12485       }
12486     }
12487     container performance {
12488       tailf:info "Global performance monitor configuration";
12489       description
12490         "Global performance monitor configuration";
12491       container monitor {
12492         tailf:info "monitor";
12493         description
12494           "monitor";
12495         leaf-list context {
12496           tailf:info "Select ezPM context";
12497           description
12498             "Select ezPM context";
12499           tailf:cli-list-syntax;
12500           type string;
12501         }
12502       }
12503     }
12504   }
12505
12506   grouping interface-tunnel-grouping {
12507     container nhrp {
12508       tailf:info "NHRP Interface commands";
12509       description
12510         "NHRP Interface commands";
12511       container event-publisher {
12512         tailf:info "Enable NHRP smart spoke feature";
12513         description
12514           "Enable NHRP smart spoke feature";
12515         leaf max-event-timeout {
12516           tailf:info "Advertised expiry time for nhrp ed event";
12517           description
12518             "Number of seconds";
12519           type uint8 {
12520             range "1..22";
12521           }
12522         }
12523       }
12524       leaf group {
12525         tailf:info "NHRP group name";
12526         description
12527           "group name string";
12528         type string;
12529       }
12530       container map {
12531         tailf:info "Map group name to QoS service policy";
12532         description
12533           "Map group name to QoS service policy";
12534         container group {
12535           tailf:info "NHRP group mapping";
12536           description
12537             "NHRP group mapping";
12538           list nhrp-name {
12539             tailf:cli-drop-node-name;
12540             tailf:cli-suppress-mode;
12541             key "nhrp-name";
12542             leaf nhrp-name {
12543               tailf:info "NHRP group name";
12544               description
12545                 "NHRP group name";
12546               type string;
12547             }
12548             container service-policy {
12549               tailf:info "QoS service-policy";
12550               description
12551                 "QoS service-policy";
12552               leaf output {
12553                 tailf:info "apply QoS service policy in the output direction";
12554                 description
12555                   "QoS policy-map name";
12556                 type string;
12557               }
12558             }
12559           }
12560         }
12561       }
12562       leaf route-watch {
12563         tailf:info "Enable NHRP route watch";
12564         description
12565           "Enable NHRP route watch";
12566         tailf:cli-boolean-no;
12567         tailf:cli-trim-default;
12568         tailf:cli-full-command;
12569         type boolean;
12570       }
12571     }
12572     container tunnel {
12573       tailf:info "protocol-over-protocol tunneling";
12574       description
12575         "protocol-over-protocol tunneling";
12576       container tun-6rd {
12577         tailf:alt-name "6rd";
12578         tailf:info "set tunnel 6rd parameters";
12579         description
12580           "set tunnel 6rd parameters";
12581         leaf br {
12582           tailf:info "Border Relay parameters";
12583           description
12584             "Border Relay parameters";
12585           type inet:ipv4-address {
12586             tailf:info "A.B.C.D;;BR IPv4 address";
12587           }
12588         }
12589         container ipv4 {
12590           tailf:info "Common IPv4 transport source parameters";
12591           description
12592             "Common IPv4 transport source parameters";
12593           leaf prefix-len {
12594             tailf:info "Common IPv4 transport source prefix length";
12595             description
12596               "Common IPv4 transport source prefix length";
12597             type uint8 {
12598               tailf:info "<0-31>;;Length in number of bits";
12599             }
12600           }
12601           leaf suffix-len {
12602             tailf:info "Common IPv4 transport source suffix length";
12603             description
12604               "Common IPv4 transport source suffix length";
12605             type uint8 {
12606               tailf:info "<0-31>;;Length in number of bits";
12607             }
12608           }
12609         }
12610         leaf prefix {
12611           tailf:info "Provider selected common IPv6 prefix";
12612           description
12613             "Provider selected common IPv6 prefix";
12614           type inet:ipv6-prefix {
12615             tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix x:x::y/<z>";
12616           }
12617         }
12618         leaf reverse-map-check {
12619           tailf:info "Enable source IP address and port verification";
12620           description
12621             "Enable source IP address and port verification";
12622           type empty;
12623         }
12624       }
12625       container bandwidth {
12626         tailf:info "Set tunnel bandwidth informational parameter";
12627         description
12628           "Set tunnel bandwidth informational parameter";
12629         leaf receive {
12630           tailf:info "Receive bandwidth";
12631           description
12632             "Receive bandwidth";
12633           type uint32 {
12634             tailf:info "<1-10000000>;;Bandwidth in kilobits";
12635           }
12636         }
12637         leaf transmit {
12638           tailf:info "Transmit bandwidth";
12639           description
12640             "Transmit bandwidth";
12641           type uint32 {
12642             tailf:info "<1-10000000>;;Bandwidth in kilobits";
12643           }
12644         }
12645       }
12646       leaf checksum {
12647         tailf:info "enable end to end checksumming of packets";
12648         description
12649           "enable end to end checksumming of packets";
12650         type empty;
12651       }
12652       leaf source {
12653         tailf:info "source of tunnel packets";
12654         description
12655           "source of tunnel packets";
12656         type string;
12657       }
12658       leaf destination {
12659         tailf:info "destination of tunnel";
12660         description
12661           "destination of tunnel";
12662         type host-v4v6-type;
12663       }
12664       container dst-port {
12665         tailf:info "tunnel destination port";
12666         description
12667           "tunnel destination port";
12668         choice dst-port-choice {
12669           case port-num-case {
12670             leaf port-num {
12671               tailf:cli-drop-node-name;
12672               type uint16 {
12673                 tailf:info "<0-65535>;;tunnel destination port number";
12674               }
12675             }
12676           }
12677           case dynamic-case {
12678             leaf dynamic {
12679               tailf:info "Set Destination Port Dynamically";
12680               description
12681                 "Set Destination Port Dynamically";
12682               type empty;
12683             }
12684           }
12685         }
12686       }
12687       container endpoint {
12688         tailf:info "Set endpoint parameter";
12689         description
12690           "Set endpoint parameter";
12691         container service-policy {
12692           tailf:info "Set service-policy";
12693           description
12694             "Set service-policy";
12695           leaf output {
12696             tailf:info "apply QoS service policy in the output direction";
12697             description
12698               "apply QoS service policy in the output direction";
12699             type string {
12700               tailf:info "WORD;;QoS policy-map name";
12701             }
12702           }
12703         }
12704       }
12705       leaf entropy {
12706         tailf:info "Compute hash (entropy) on payload and propagate to tunnel header";
12707         description
12708           "Compute hash (entropy) on payload and propagate to tunnel header";
12709         type empty;
12710       }
12711       container fixup {
12712         tailf:info "fixup on tunnel interface";
12713         description
12714           "fixup on tunnel interface";
12715         leaf nat {
12716           tailf:info "enable post nat fixup ";
12717           description
12718             "enable post nat fixup ";
12719           type empty;
12720         }
12721       }
12722       container flow {
12723         tailf:info "flow options";
12724         description
12725           "flow options";
12726         leaf egress-records {
12727           tailf:info "enable egress flow records ";
12728           description
12729             "enable egress flow records ";
12730           type empty;
12731         }
12732       }
12733       leaf key {
12734         tailf:info "security or selector key";
12735         description
12736           "security or selector key";
12737         type uint64 {
12738           tailf:info "<0-4294967295>;;key";
12739           range "0..4294967295";
12740         }
12741       }
12742       container mode {
12743         tailf:info "tunnel encapsulation method";
12744         description
12745           "tunnel encapsulation method";
12746         choice mode-choice {
12747           container ipsec {
12748             tailf:info "IPSec tunnel encapsulation";
12749             description
12750               "IPSec tunnel encapsulation";
12751             container ipv4 {
12752               tailf:info "over IPv4";
12753               description
12754                 "over IPv4";
12755               tailf:cli-delete-when-empty;
12756               presence "true";
12757             }
12758             container ipv6 {
12759               tailf:info "over IPv6";
12760               description
12761                 "over IPv6";
12762               tailf:cli-delete-when-empty;
12763               presence "true";
12764             }
12765           }
12766           container mpls {
12767             tailf:info "MPLS encapsulations";
12768             description
12769               "MPLS encapsulations";
12770             container traffic-eng {
12771               tailf:info "Traffic engineering tunnels";
12772               description
12773                 "Traffic engineering tunnels";
12774               tailf:cli-delete-when-empty;
12775               presence "true";
12776               leaf gre-ip {
12777                 type empty;
12778               }
12779             }
12780           }
12781           container ethernet {
12782             tailf:info "Ethernet over gre";
12783             description
12784               "Ethernet over gre";
12785             leaf gre {
12786               tailf:info "Ethernet over gre";
12787               description
12788                 "Ethernet over gre";
12789               type enumeration {
12790                 enum "ipv4" {
12791                   tailf:info "over ipv4";
12792                 }
12793                 enum "ipv6" {
12794                   tailf:info "over ipv6";
12795                 }
12796               }
12797             }
12798           }
12799           container gre {
12800             tailf:info "generic route encapsulation protocol";
12801             description
12802               "generic route encapsulation protocol";
12803             leaf ip {
12804               tailf:info "over IP";
12805               description
12806                 "over IP";
12807               tailf:cli-full-command;
12808               type empty;
12809             }
12810             leaf ipv6 {
12811               tailf:info "over IPv6";
12812               description
12813                 "over IPv6";
12814               tailf:cli-full-command;
12815               type empty;
12816             }
12817             container multipoint {
12818               tailf:info "over IPv4 (multipoint)";
12819               description
12820                 "over IPv4 (multipoint)";
12821               presence "true";
12822               leaf ipv6 {
12823                 tailf:info "over IPv6";
12824                 description
12825                   "over IPv6";
12826                 tailf:cli-full-command;
12827                 type empty;
12828               }
12829             }
12830           }
12831           container ipip {
12832             tailf:info "IP over IP encapsulation";
12833             description
12834               "IP over IP encapsulation";
12835             presence "true";
12836             leaf decapsulate-any {
12837               tailf:info "Incoming traffic only";
12838               description
12839                 "Incoming traffic only";
12840               tailf:cli-full-command;
12841               type empty;
12842             }
12843           }
12844           leaf ipv6 {
12845             tailf:info "Generic packet tunneling in IPv6";
12846             description
12847               "Generic packet tunneling in IPv6";
12848             tailf:cli-full-command;
12849             type empty;
12850           }
12851           container ipv6ip {
12852             tailf:info "IPv6 over IP encapsulation";
12853             description
12854               "IPv6 over IP encapsulation";
12855             presence "true";
12856             leaf auto-6rd {
12857               tailf:alt-name "6rd";
12858               tailf:info "IPv6 automatic tunnelling using 6rd";
12859               description
12860                 "IPv6 automatic tunnelling using 6rd";
12861               tailf:cli-full-command;
12862               type empty;
12863             }
12864             leaf auto-6to4 {
12865               tailf:alt-name "6to4";
12866               tailf:info "IPv6 automatic tunnelling using 6to4";
12867               description
12868                 "IPv6 automatic tunnelling using 6to4";
12869               tailf:cli-full-command;
12870               type empty;
12871             }
12872             leaf isatap {
12873               tailf:info "IPv6 automatic tunnelling using ISATAP";
12874               description
12875                 "IPv6 automatic tunnelling using ISATAP";
12876               tailf:cli-full-command;
12877               type empty;
12878             }
12879           }
12880           leaf udp {
12881             tailf:info "UDP encapsulation protocol";
12882             description
12883               "UDP encapsulation protocol";
12884             type enumeration {
12885               enum "ip" {
12886                 tailf:info "over ip";
12887               }
12888               enum "multipoint" {
12889                 tailf:info "over IPv4 (multipoint)";
12890               }
12891             }
12892           }
12893         }
12894       }
12895       container network-id {
12896         tailf:info "Set network-id";
12897         description
12898           "Set network-id";
12899         tailf:cli-sequence-commands;
12900         tailf:cli-compact-syntax;
12901         leaf id {
12902           tailf:cli-drop-node-name;
12903           type uint16 {
12904             tailf:info "<1-65535>;;network id";
12905           }
12906         }
12907         leaf nexthop {
12908           tailf:info "nexthop";
12909           description
12910             "nexthop";
12911           type inet:ipv4-address {
12912             tailf:info "A.B.C.D;;Next Hop Address";
12913           }
12914         }
12915         leaf qos {
12916           tailf:info "QoS profile";
12917           description
12918             "QoS profile";
12919           tailf:cli-break-sequence-commands;
12920           type string {
12921             tailf:info "WORD;;QoS profile name";
12922           }
12923         }
12924         leaf weight {
12925           tailf:info "weight";
12926           description
12927             "weight";
12928           type uint16 {
12929             tailf:info "<1-65535>;;weight";
12930           }
12931         }
12932       }
12933       container path-mtu-discovery {
12934         tailf:info "Enable Path MTU Discovery on tunnel";
12935         description
12936           "Enable Path MTU Discovery on tunnel";
12937         presence "true";
12938       }
12939       container protection {
12940         tailf:info "Enable tunnel protection";
12941         description
12942           "Enable tunnel protection";
12943         container ipsec {
12944           tailf:info "Use ipsec to protect this tunnel interface";
12945           description
12946             "Use ipsec to protect this tunnel interface";
12947           leaf profile {
12948             tailf:info "Determine the ipsec policy profile to use.";
12949             description
12950               "Determine the ipsec policy profile to use.";
12951             type string {
12952               tailf:info "WORD;;IPSec policy profile";
12953             }
12954           }
12955         }
12956       }
12957       container mpls {
12958         container traffic-eng {
12959           container affinity {
12960             tailf:cli-sequence-commands {
12961               tailf:cli-reset-siblings;
12962             }
12963             tailf:cli-compact-syntax;
12964             leaf attributes {
12965               tailf:cli-drop-node-name;
12966               type string;
12967             }
12968             leaf mask {
12969               type string;
12970             }
12971           }
12972           container auto-bw {
12973             tailf:info "Specify mpls tunnel should automatically change bw";
12974             description
12975               "Specify mpls tunnel should automatically change bw";
12976             leaf max-bw {
12977               tailf:info "Set the Maximum Bandwidth for auto-bw on this tunnel";
12978               description
12979                 "Set the Maximum Bandwidth for auto-bw on this tunnel";
12980               type uint32 {
12981                 tailf:info "<0-4294967295>;; Maximum kb/s that tunnel can be auto set to";
12982                 range "0..4294967295";
12983               }
12984             }
12985           }
12986           container autoroute {
12987             leaf announce {
12988               tailf:cli-full-command;
12989               type empty;
12990             }
12991           }
12992           container priority {
12993             tailf:cli-sequence-commands {
12994               tailf:cli-reset-siblings;
12995             }
12996             tailf:cli-compact-syntax;
12997             leaf setup-priority {
12998               tailf:cli-drop-node-name;
12999               type uint8 {
13000                 range "0..7";
13001               }
13002             }
13003             leaf hold-priority {
13004               tailf:cli-drop-node-name;
13005               type uint8 {
13006                 range "0..7";
13007               }
13008             }
13009           }
13010           leaf bandwidth {
13011             tailf:cli-full-command;
13012             type uint32;
13013           }
13014           list path-option {
13015             tailf:cli-suppress-mode;
13016             tailf:cli-delete-when-empty;
13017             tailf:cli-sequence-commands {
13018               tailf:cli-reset-siblings;
13019             }
13020             tailf:cli-compact-syntax;
13021             key "id";
13022             leaf id {
13023               type uint32;
13024             }
13025             choice path-option-choice {
13026               container dynamic {
13027                 presence "true";
13028               }
13029               container protect {
13030                 presence "true";
13031               }
13032               container explicit {
13033                 tailf:cli-compact-syntax;
13034                 choice explicit-choice {
13035                   leaf name {
13036                     type string;
13037                   }
13038                   leaf identifier {
13039                     type uint32;
13040                   }
13041                 }
13042               }
13043             }
13044             container lockdown {
13045               presence "true";
13046             }
13047           }
13048           container fast-reroute {
13049             presence "true";
13050           }
13051         }
13052       }
13053       leaf raw-packet-interface {
13054         tailf:info "physical interface for all packets entering itto be tunneled and for all packets entering the tunnel to exit";
13055         description
13056           "physical interface for all packets entering itto be tunneled and for all packets entering the tunnel to exit";
13057         type string;
13058       }
13059       container rbscp {
13060         tailf:info "Set tunnel RBSCP parameters";
13061         description
13062           "Set tunnel RBSCP parameters";
13063         leaf ack-split {
13064           tailf:info "ACK splitting";
13065           description
13066             "ACK splitting";
13067           type uint8 {
13068             tailf:info "<1-32>;;Split number";
13069             range "1..32";
13070           }
13071         }
13072         leaf delay {
13073           tailf:info "enable delay";
13074           description
13075             "enable delay";
13076           type empty;
13077         }
13078         leaf input-drop {
13079           tailf:info "max tunnel queue size (number of bw*delay)";
13080           description
13081             "max tunnel queue size (number of bw*delay)";
13082           type uint8 {
13083             tailf:info "<1-10>;;Number of bw*delay products";
13084             range "1..10";
13085           }
13086         }
13087         leaf long-drop {
13088           tailf:info "Drop non-transmitted packets w/excessive delay";
13089           description
13090             "Drop non-transmitted packets w/excessive delay";
13091           type empty;
13092         }
13093         leaf report {
13094           tailf:info "enable SCTP report chunk";
13095           description
13096             "enable SCTP report chunk";
13097           type empty;
13098         }
13099         leaf window-stuff {
13100           tailf:info "Window stuffing";
13101           description
13102             "Window stuffing";
13103           type uint8 {
13104             tailf:info "<1-20>;;Window step up size";
13105             range "1..20";
13106           }
13107         }
13108       }
13109       leaf snooping {
13110         tailf:info "Snooping on tunnel";
13111         description
13112           "Snooping on tunnel";
13113         type enumeration {
13114           enum "enable" {
13115             tailf:info "Enable tunnel snooping";
13116           }
13117         }
13118       }
13119       container src-port {
13120         tailf:info "tunnel source port";
13121         description
13122           "tunnel source port";
13123         choice src-port-choice {
13124           case port-num-case {
13125             leaf port-num {
13126               tailf:cli-drop-node-name;
13127               type uint16 {
13128                 tailf:info "<0-65535>;;tunnel source port number";
13129               }
13130             }
13131           }
13132           case dynamic-case {
13133             leaf dynamic {
13134               tailf:info "Set Source Port Dynamically";
13135               description
13136                 "Set Source Port Dynamically";
13137               type empty;
13138             }
13139           }
13140         }
13141       }
13142       leaf tos {
13143         tailf:info "set type of sevice byte";
13144         description
13145           "set type of sevice byte";
13146         type uint8 {
13147           tailf:info "<0-255>;;tos";
13148         }
13149       }
13150       leaf ttl {
13151         tailf:info "set time to live";
13152         description
13153           "set time to live";
13154         type uint8 {
13155           tailf:info "<1-255>;;ttl";
13156         }
13157       }
13158       container udlr {
13159         tailf:info "associate tunnel with unidirectional interface";
13160         description
13161           "associate tunnel with unidirectional interface";
13162         leaf address-resolution {
13163           tailf:info "Enable ARP and NHRP over a UDLR Tunnel";
13164           description
13165             "Enable ARP and NHRP over a UDLR Tunnel";
13166           type empty;
13167         }
13168         leaf receive-only {
13169           tailf:info "Tunnel is receive-only capable";
13170           description
13171             "Tunnel is receive-only capable";
13172           type string;
13173         }
13174         leaf send-only {
13175           tailf:info "Tunnel is send-only capable";
13176           description
13177             "Tunnel is send-only capable";
13178           type string;
13179         }
13180       }
13181       container vlan {
13182         tailf:info "Set vlan-id for ethernet over gre mode";
13183         description
13184           "Set vlan-id for ethernet over gre mode";
13185         tailf:cli-sequence-commands;
13186         tailf:cli-compact-syntax;
13187         leaf id1 {
13188           tailf:cli-drop-node-name;
13189           type uint16 {
13190             tailf:info "<1-4094>;;vlan-id";
13191           }
13192         }
13193         leaf hyphen {
13194           tailf:alt-name "-";
13195           tailf:cli-break-sequence-commands;
13196           type empty;
13197         }
13198         leaf id2 {
13199           tailf:cli-drop-node-name;
13200           type uint16 {
13201             tailf:info "<1-4094>;;vlan-id";
13202           }
13203         }
13204       }
13205       leaf vrf {
13206         tailf:info "set tunnel vrf membership";
13207         description
13208           "set tunnel vrf membership";
13209         type string {
13210           tailf:info "WORD;;vrf table name";
13211         }
13212       }
13213     }
13214   }
13215
13216   grouping interface-ethernet-carrier-delay-grouping {
13217     choice delay-choice {
13218       leaf seconds {
13219         tailf:cli-drop-node-name;
13220         type uint8 {
13221           tailf:info "<0-60>;;Carrier Transitions delay seconds";
13222           range "0..60";
13223         }
13224       }
13225       leaf msec {
13226         tailf:info "delay specified in milliseconds";
13227         description
13228           "delay specified in milliseconds";
13229         type uint16 {
13230           tailf:info "<0-1000>;;Carrier Transitions delay milliseconds";
13231           range "0..1000";
13232         }
13233       }
13234     }
13235   }
13236
13237   grouping interface-ethernet-service-instance-l2protocol-grouping {
13238     leaf-list protocol {
13239       tailf:cli-drop-node-name;
13240       tailf:cli-flat-list-syntax;
13241       type enumeration {
13242         enum "R4" {
13243           tailf:info "Reserved Protocol using DA Mac 0180.C200.0004";
13244         }
13245         enum "R5" {
13246           tailf:info "Reserved Protocol using DA Mac 0180.C200.0005";
13247         }
13248         enum "R6" {
13249           tailf:info "Reserved Protocol using DA Mac 0180.C200.0006";
13250         }
13251         enum "R8" {
13252           tailf:info "Reserved Protocol using DA Mac 0180.C200.0008";
13253         }
13254         enum "R9" {
13255           tailf:info "Reserved Protocol using DA Mac 0180.C200.0009";
13256         }
13257         enum "RA" {
13258           tailf:info "Reserved Protocol using DA Mac 0180.C200.000A";
13259         }
13260         enum "RB" {
13261           tailf:info "Reserved Protocol using DA Mac 0180.C200.000B";
13262         }
13263         enum "RC" {
13264           tailf:info "Reserved Protocol using DA Mac 0180.C200.000C";
13265         }
13266         enum "RD" {
13267           tailf:info "Reserved Protocol using DA Mac 0180.C200.000D";
13268         }
13269         enum "RF" {
13270           tailf:info "Reserved Protocol using DA Mac 0180.C200.000F";
13271         }
13272         enum "cdp" {
13273           tailf:info "Cisco Discovery Protocol";
13274         }
13275         enum "dtp" {
13276           tailf:info "Dynamic Trunking Protocol";
13277         }
13278         enum "elmi" {
13279           tailf:info "ELMI Protocol";
13280         }
13281         enum "esmc" {
13282           tailf:info "ESMC Protocol";
13283         }
13284         enum "lacp" {
13285           tailf:info "LACP Protocol";
13286         }
13287         enum "lldp" {
13288           tailf:info "Link Layer Discovery Protocol";
13289         }
13290         enum "loam" {
13291           tailf:info "Link OAM Protocol";
13292         }
13293         enum "pagp" {
13294           tailf:info "Port Aggregation Protocol";
13295         }
13296         enum "ptppd" {
13297           tailf:info "PTP Peer Delay Protocol";
13298         }
13299         enum "stp" {
13300           tailf:info "Spanning Tree Protocol";
13301         }
13302         enum "udld" {
13303           tailf:info "UDLD Protocol";
13304         }
13305         enum "vtp" {
13306           tailf:info "Vlan Trunking Protocol";
13307         }
13308       }
13309     }
13310   }
13311
13312   grouping interface-ethernet-grouping {
13313     container carrier-delay {
13314       tailf:info "Specify delay for interface transitions";
13315       description
13316         "Specify delay for interface transitions";
13317       uses interface-ethernet-carrier-delay-grouping;
13318       container down {
13319         tailf:info "Carrier Down Transitions";
13320         description
13321           "Carrier Down Transitions";
13322         uses interface-ethernet-carrier-delay-grouping;
13323       }
13324       container up {
13325         tailf:info "Carrier Up Transitions";
13326         description
13327           "Carrier Up Transitions";
13328         uses interface-ethernet-carrier-delay-grouping;
13329       }
13330     }
13331     container channel-group {
13332       tailf:info "Add this interface to an Etherchannel group";
13333       description
13334         "Add this interface to an Etherchannel group";
13335       tailf:cli-sequence-commands {
13336         tailf:cli-reset-siblings;
13337       }
13338       tailf:cli-compact-syntax;
13339       leaf number {
13340         tailf:cli-drop-node-name;
13341         type uint16 {
13342           tailf:info "<1-512>;;Channel group number";
13343           range "1..512";
13344         }
13345       }
13346       leaf mode {
13347         tailf:info "Etherchannel Mode of the interface";
13348         description
13349           "Etherchannel Mode of the interface";
13350         type enumeration {
13351           enum "active" {
13352             tailf:info "Enable LACP unconditionally";
13353           }
13354           enum "auto" {
13355             tailf:info "Enable PAgP only if a PAgP device is detected";
13356           }
13357           enum "desirable" {
13358             tailf:info "Enable PAgP unconditionally";
13359           }
13360           enum "on" {
13361             tailf:info "Enable Etherchannel only";
13362           }
13363           enum "passive" {
13364             tailf:info "Enable LACP only if a LACP device is detected";
13365           }
13366         }
13367       }
13368       leaf non-silent {
13369         tailf:info "Start negotiation only after data packets received";
13370         description
13371           "Start negotiation only after data packets received";
13372         tailf:cli-break-sequence-commands;
13373         type empty;
13374       }
13375       leaf link {
13376         tailf:info "Assign a link identifier used for load-balancing";
13377         description
13378           "Assign a link identifier used for load-balancing";
13379         type uint8 {
13380           tailf:info "<1-4>;;Channel group load-balancing link identifier";
13381           range "1..4";
13382         }
13383       }
13384     }
13385     leaf channel-protocol {
13386       tailf:info "Select the channel protocol (LACP, PAgP)";
13387       description
13388         "Select the channel protocol (LACP, PAgP)";
13389       type enumeration {
13390         enum "lacp" {
13391           tailf:info "Prepare interface for LACP protocol";
13392         }
13393         enum "pagp" {
13394           tailf:info "Prepare interface for PAgP protocol";
13395         }
13396       }
13397     }
13398     container ethernet {
13399       tailf:info "Ethernet interface parameters";
13400       description
13401         "Ethernet interface parameters";
13402       container oam {
13403         tailf:info "To enable Ethernet Link OAM";
13404         description
13405           "To enable Ethernet Link OAM";
13406         presence "true";
13407         container link-monitor {
13408           tailf:info "Ethernet OAM Link Monitor";
13409           description
13410             "Ethernet OAM Link Monitor";
13411           container frame {
13412             tailf:info "Errored frames in a period measured by time";
13413             description
13414               "Errored frames in a period measured by time";
13415             container threshold {
13416               tailf:info "Errored frame threshold";
13417               description
13418                 "Errored frame threshold";
13419               container high {
13420                 tailf:info "High Threshold";
13421                 description
13422                   "High Threshold";
13423                 leaf thresh {
13424                   tailf:info "Set the high errored frame threshold in number of frames";
13425                   description
13426                     "Set the high errored frame threshold in number of frames";
13427                   tailf:cli-drop-node-name;
13428                   type uint16 {
13429                     range "1..65535";
13430                   }
13431                 }
13432                 leaf none {
13433                   tailf:info "Disable high threshold";
13434                   description
13435                     "Disable high threshold";
13436                   type empty;
13437                 }
13438               }
13439               leaf low {
13440                 tailf:info "Low threshold";
13441                 description
13442                   "Set the low errored frame threshold in number of frames";
13443                 type uint16 {
13444                   range "0..65535";
13445                 }
13446               }
13447             }
13448             leaf window {
13449               tailf:info "Window size of the polling period";
13450               description
13451                 "Set window size in multiple of 100 milliseconds (will be rounded off to second)";
13452               type uint16 {
13453                 range "10..600";
13454               }
13455             }
13456           }
13457           container frame-period {
13458             tailf:info "Errored frames in a period measured by number of frames";
13459             description
13460               "Errored frames in a period measured by number of frames";
13461             container threshold {
13462               tailf:info "Errored frame-period threshold";
13463               description
13464                 "Errored frame-period threshold";
13465               container high {
13466                 tailf:info "High Threshold";
13467                 description
13468                   "High Threshold";
13469                 leaf f-thresh {
13470                   tailf:info "Set the high errored frame-period threshold in number of frames";
13471                   description
13472                     "Set the high errored frame-period threshold in number of frames";
13473                   tailf:cli-drop-node-name;
13474                   type uint16 {
13475                     range "1..65535";
13476                   }
13477                 }
13478                 leaf none {
13479                   tailf:info "Disable high threshold";
13480                   description
13481                     "Disable high threshold";
13482                   type empty;
13483                 }
13484               }
13485               leaf low {
13486                 tailf:info "Low threshold";
13487                 description
13488                   "Set the low errored frame-period threshold in number of frames";
13489                 type uint16 {
13490                   range "0..65535";
13491                 }
13492               }
13493             }
13494             leaf window {
13495               tailf:info "Window size of a polling period";
13496               description
13497                 "Set window size in number of 10000 frames";
13498               type uint16 {
13499                 range "1..65535";
13500               }
13501             }
13502           }
13503           container frame-seconds {
13504             tailf:info "Errored frame seconds in a period";
13505             description
13506               "Errored frame seconds in a period";
13507             container threshold {
13508               tailf:info "Errored frame-seconds threshold";
13509               description
13510                 "Errored frame-seconds threshold";
13511               container high {
13512                 tailf:info "High Threshold";
13513                 description
13514                   "High Threshold";
13515                 leaf e-thresh {
13516                   tailf:info "Set the high errored frame-seconds threshold in number of seconds";
13517                   description
13518                     "Set the high errored frame-seconds threshold in number of seconds";
13519                   tailf:cli-drop-node-name;
13520                   type uint16 {
13521                     range "1..900";
13522                   }
13523                 }
13524                 leaf none {
13525                   tailf:info "Disable high threshold";
13526                   description
13527                     "Disable high threshold";
13528                   type empty;
13529                 }
13530               }
13531               leaf low {
13532                 tailf:info "Low threshold";
13533                 description
13534                   "Set the low errored frame-seconds threshold in number of seconds";
13535                 type uint16 {
13536                   range "1..900";
13537                 }
13538               }
13539             }
13540             leaf window {
13541               tailf:info "Window size of a polling period";
13542               description
13543                 "Set window size in multiple of 100 milliseconds (will be rounded off to second)";
13544               type uint16 {
13545                 range "100..9000";
13546               }
13547             }
13548           }
13549           container high-threshold {
13550             tailf:info "Additional high threshold configuration";
13551             description
13552               "Additional high threshold configuration";
13553             container action {
13554               tailf:info "Specifiy an action when the high threshold is crossed";
13555               description
13556                 "Specifiy an action when the high threshold is crossed";
13557               leaf error-disable-interface {
13558                 tailf:info "Error-disable the interface";
13559                 description
13560                   "Error-disable the interface";
13561                 type empty;
13562               }
13563             }
13564           }
13565           leaf on {
13566             tailf:info "Enable link monitoring on the interface";
13567             description
13568               "Enable link monitoring on the interface";
13569             type empty;
13570           }
13571           container receive-crc {
13572             tailf:info "Received frames with CRC errors in a period";
13573             description
13574               "Received frames with CRC errors in a period";
13575             container threshold {
13576               tailf:info "Errored frame-seconds threshold";
13577               description
13578                 "Errored frame-seconds threshold";
13579               container high {
13580                 tailf:info "High Threshold";
13581                 description
13582                   "High Threshold";
13583                 leaf crc-thresh {
13584                   tailf:info "Set the high received crc error threshold in number of frames";
13585                   description
13586                     "Set the high received crc error threshold in number of frames";
13587                   tailf:cli-drop-node-name;
13588                   type uint16 {
13589                     range "1..65535";
13590                   }
13591                 }
13592                 leaf none {
13593                   tailf:info "Disable high threshold";
13594                   description
13595                     "Disable high threshold";
13596                   type empty;
13597                 }
13598               }
13599               leaf low {
13600                 tailf:info "Low threshold";
13601                 description
13602                   "Set the low received crc error threshold in number of frames";
13603                 type uint16 {
13604                   range "0..65535";
13605                 }
13606               }
13607             }
13608             leaf window {
13609               tailf:info "Window size of a polling period";
13610               description
13611                 "Set window size in multiple of 100 milliseconds (will be rounded off to second)";
13612               type uint16 {
13613                 range "10..1800";
13614               }
13615             }
13616           }
13617           leaf supported {
13618             tailf:info "Support link monitoring on the interface";
13619             description
13620               "Support link monitoring on the interface";
13621             type empty;
13622           }
13623           container symbol-period {
13624             tailf:info "Errored symbols in a period";
13625             description
13626               "Errored symbols in a period";
13627             container threshold {
13628               tailf:info "Error symbol-period threshold";
13629               description
13630                 "Error symbol-period threshold";
13631               container high {
13632                 tailf:info "High Threshold";
13633                 description
13634                   "High Threshold";
13635                 leaf err-thresh {
13636                   tailf:info "Set the high error symbol-period threshold in number of symbols";
13637                   description
13638                     "Set the high error symbol-period threshold in number of symbols";
13639                   tailf:cli-drop-node-name;
13640                   type uint16 {
13641                     range "1..65535";
13642                   }
13643                 }
13644                 leaf none {
13645                   tailf:info "Disable high threshold";
13646                   description
13647                     "Disable high threshold";
13648                   type empty;
13649                 }
13650               }
13651               leaf low {
13652                 tailf:info "Low threshold";
13653                 description
13654                   "Set the low error symbol-period threshold in number of symbols";
13655                 type uint16 {
13656                   range "0..65535";
13657                 }
13658               }
13659             }
13660             leaf window {
13661               tailf:info "Window size of the polling period";
13662               description
13663                 "Set window size in number of 1048576 symbols";
13664               type uint16 {
13665                 range "1..65535";
13666               }
13667             }
13668           }
13669         }
13670         leaf max-rate {
13671           type uint8 {
13672             tailf:info "Maximum number of OAM PDUs sent per second";
13673             range "1..10";
13674           }
13675         }
13676         leaf min-rate {
13677           type uint8 {
13678             tailf:info "Minimum transmission rate in seconds";
13679             range "1..10";
13680           }
13681         }
13682         leaf mode {
13683           type enumeration {
13684             enum "active" {
13685               tailf:info "Active OAM client mode";
13686             }
13687             enum "passive" {
13688               tailf:info "Passive OAM client mode";
13689             }
13690           }
13691         }
13692         container remote-failure {
13693           tailf:info "Ethernet OAM remote failure indication";
13694           description
13695             "Ethernet OAM remote failure indication";
13696           container critical-event {
13697             tailf:info "Critical event";
13698             description
13699               "Critical event";
13700             container action {
13701               tailf:info "Specifiy an action when a remote failure is detected";
13702               description
13703                 "Specifiy an action when a remote failure is detected";
13704               leaf error-disable-interface {
13705                 tailf:info "Error-disable the interface";
13706                 description
13707                   "Error-disable the interface";
13708                 type empty;
13709               }
13710             }
13711           }
13712           container dying-gasp {
13713             tailf:info "Dying gasp";
13714             description
13715               "Dying gasp";
13716             container action {
13717               tailf:info "Specifiy an action when a remote failure is detected";
13718               description
13719                 "Specifiy an action when a remote failure is detected";
13720               presence "true";
13721               leaf error-disable-interface {
13722                 tailf:info "Error-disable the interface";
13723                 description
13724                   "Error-disable the interface";
13725                 type empty;
13726               }
13727             }
13728           }
13729           container link-fault {
13730             tailf:info "Link fault";
13731             description
13732               "Link fault";
13733             container action {
13734               tailf:info "Specifiy an action when a remote failure is detected";
13735               description
13736                 "Specifiy an action when a remote failure is detected";
13737               presence "true";
13738               leaf error-disable-interface {
13739                 tailf:info "Error-disable the interface";
13740                 description
13741                   "Error-disable the interface";
13742                 type empty;
13743               }
13744             }
13745           }
13746         }
13747         container remote-loopback {
13748           tailf:info "Ethernet OAM Remote Loopback";
13749           description
13750             "Ethernet OAM Remote Loopback";
13751           leaf supported {
13752             tailf:info "Support remote loopback functionality";
13753             description
13754               "Support remote loopback functionality";
13755             type empty;
13756           }
13757           leaf timeout {
13758             tailf:info "Master loopback timeout setting";
13759             description
13760               "Set timeout value in number of seconds";
13761             type uint8 {
13762               range "1..10";
13763             }
13764           }
13765         }
13766         leaf timeout {
13767           type uint8 {
13768             tailf:info "OAM client timeout in seconds";
13769             range "2..30";
13770           }
13771         }
13772       }
13773     }
13774     container negotiation {
13775       tailf:info "Select autonegotiation mode";
13776       description
13777         "Select autonegotiation mode";
13778       leaf auto {
13779         tailf:info "Enable link autonegotiation";
13780         description
13781           "Enable link autonegotiation";
13782         tailf:cli-boolean-no;
13783         tailf:cli-trim-default;
13784         tailf:cli-full-command;
13785         type boolean;
13786       }
13787     }
13788     container synchronous {
13789       tailf:info "Synchronous";
13790       description
13791         "Synchronous";
13792       leaf mode {
13793         tailf:info "Mode";
13794         description
13795           "Mode";
13796         type empty;
13797       }
13798     }
13799     leaf duplex {
13800       tailf:info "Configure duplex operation.";
13801       description
13802         "Configure duplex operation.";
13803       type enumeration {
13804         enum "auto" {
13805           tailf:code-name "duplex_auto";
13806           tailf:info "Enable AUTO duplex configuration";
13807         }
13808         enum "full" {
13809           tailf:code-name "duplex_full";
13810           tailf:info "Force full duplex operation";
13811         }
13812         enum "half" {
13813           tailf:code-name "duplex_half";
13814           tailf:info "Force half-duplex operation";
13815         }
13816       }
13817     }
13818     container speed {
13819       tailf:info "Configure speed operation.";
13820       description
13821         "Configure speed operation.";
13822       tailf:cli-compact-syntax;
13823       leaf auto {
13824         tailf:info "Enable AUTO speed configuration";
13825         description
13826           "Enable AUTO speed configuration";
13827         type empty;
13828       }
13829       leaf value-10 {
13830         tailf:alt-name "10";
13831         tailf:info "10 Mbps operation";
13832         description
13833           "10 Mbps operation";
13834         type empty;
13835       }
13836       leaf value-100 {
13837         tailf:alt-name "100";
13838         tailf:info "100 Mbps operation";
13839         description
13840           "100 Mbps operation";
13841         type empty;
13842       }
13843       leaf value-1000 {
13844         tailf:alt-name "1000";
13845         tailf:info "1000 Mbps operation";
13846         description
13847           "1000 Mbps operation";
13848         type empty;
13849       }
13850       leaf nonegotiate {
13851         type empty;
13852       }
13853     }
13854     container xconnect {
13855       tailf:info "Xconnect commands";
13856       description
13857         "Xconnect commands";
13858       tailf:cli-sequence-commands;
13859       tailf:cli-compact-syntax;
13860       leaf address {
13861         tailf:cli-drop-node-name;
13862         tailf:cli-incomplete-command;
13863         type inet:ipv4-address {
13864           tailf:info "A.B.C.D;;IP address of peer";
13865         }
13866       }
13867       leaf vcid {
13868         tailf:cli-drop-node-name;
13869         tailf:cli-incomplete-command;
13870         type uint32 {
13871           tailf:info "<1-4294967295>;;Enter VC ID value";
13872           range "1..4294967295";
13873         }
13874       }
13875       leaf encapsulation {
13876         tailf:info "Data encapsulation method";
13877         description
13878           "Data encapsulation method";
13879         tailf:cli-optional-in-sequence;
13880         type enumeration {
13881           enum "mpls" {
13882             tailf:code-name "encap_mpls";
13883             tailf:info "Use MPLS encapsulation";
13884           }
13885           enum "l2tpv3" {
13886             tailf:info "Use L2TPv3 encapsulation";
13887           }
13888         }
13889       }
13890       leaf manual {
13891         tailf:info "Manually configure L2TP session parameters";
13892         description
13893           "Manually configure L2TP session parameters";
13894         tailf:cli-optional-in-sequence;
13895         when "../encapsulation = 'l2tpv3'";
13896         type empty;
13897       }
13898       leaf sequence {
13899         tailf:info "Configure sequencing options for xconnect";
13900         description
13901           "Configure sequencing options for xconnect";
13902         tailf:cli-full-command;
13903         tailf:cli-optional-in-sequence;
13904         when "../encapsulation = 'l2tpv3'";
13905         type enumeration {
13906           enum "both" {
13907             tailf:info "Transmit and receive sequence numbers";
13908           }
13909           enum "receive" {
13910             tailf:info "Receive sequence numbers";
13911           }
13912           enum "transmit" {
13913             tailf:info "Transmit sequence numbers";
13914           }
13915         }
13916       }
13917       leaf pw-class {
13918         tailf:info "Pseudowire-class to use for encapsulation and protocol configuration";
13919         description
13920           "Pseudowire-class to use for encapsulation and protocol configuration";
13921         type string {
13922           tailf:info "WORD;;Pseudowire-class name";
13923         }
13924       }
13925     }
13926     container plim {
13927       tailf:info "Configure features on the PLIM";
13928       description
13929         "Configure features on the PLIM";
13930       container ethernet {
13931         tailf:info "Configure features on the ethernet interface";
13932         description
13933           "Configure features on the ethernet interface";
13934         container vlan {
13935           tailf:info "vlan specific features";
13936           description
13937             "vlan specific features";
13938           container filter {
13939             tailf:info "Configure VLAN filtering";
13940             description
13941               "Configure VLAN filtering";
13942             leaf disable {
13943               tailf:info "Configure the interface to accept all VLAN traffic";
13944               description
13945                 "Configure the interface to accept all VLAN traffic";
13946               type empty;
13947             }
13948           }
13949         }
13950       }
13951       container qos {
13952         tailf:info "QoS on the PLIM";
13953         description
13954           "QoS on the PLIM";
13955         container input {
13956           tailf:info "Configure PLIM QoS at the input of an interface";
13957           description
13958             "Configure PLIM QoS at the input of an interface";
13959           container queue {
13960             tailf:info "Queue number";
13961             description
13962               "Queue number";
13963             choice priority {
13964               case low {
13965                 container zero {
13966                   tailf:alt-name "0";
13967                   tailf:info "Low priority queue";
13968                   description
13969                     "Low priority queue";
13970                   container pause {
13971                     tailf:info "Pause Frame generation and threshold";
13972                     description
13973                       "Pause Frame generation and threshold";
13974                     leaf enable {
13975                       tailf:info "Enable pause-frame generation";
13976                       description
13977                         "Enable pause-frame generation";
13978                       tailf:cli-boolean-no;
13979                       tailf:cli-trim-default;
13980                       tailf:cli-full-command;
13981                       type boolean;
13982                     }
13983                     leaf threshold {
13984                       tailf:info "Threshold as a percent of queue limit for pause frame generation";
13985                       description
13986                         "Threshold as a percent of queue limit for pause frame generation";
13987                       type uint8 {
13988                         tailf:info "<0-99>;;Percentage of queue limit";
13989                         range "0..99";
13990                       }
13991                     }
13992                   }
13993                 }
13994               }
13995               case high {
13996                 container strict-priority {
13997                   tailf:info "High priority queue";
13998                   description
13999                     "High priority queue";
14000                   container pause {
14001                     tailf:info "Pause Frame generation and threshold";
14002                     description
14003                       "Pause Frame generation and threshold";
14004                     leaf enable {
14005                       tailf:info "Enable pause-frame generation";
14006                       description
14007                         "Enable pause-frame generation";
14008                       tailf:cli-boolean-no;
14009                       tailf:cli-trim-default;
14010                       tailf:cli-full-command;
14011                       type boolean;
14012                     }
14013                     leaf threshold {
14014                       tailf:info "Threshold as a percent of queue limit for pause frame generation";
14015                       description
14016                         "Threshold as a percent of queue limit for pause frame generation";
14017                       type uint8 {
14018                         tailf:info "<0-99>;;Percentage of queue limit";
14019                         range "0..99";
14020                       }
14021                     }
14022                   }
14023                 }
14024               }
14025             }
14026           }
14027         }
14028       }
14029     }
14030     container pppoe {
14031       tailf:info "pppoe interface subcommands";
14032       description
14033         "pppoe interface subcommands";
14034       container enable {
14035         tailf:info "Enable pppoe";
14036         description
14037           "Enable pppoe";
14038         presence "true";
14039         leaf group {
14040           tailf:info "attach a BBA group";
14041           description
14042             "attach a BBA group";
14043           type union {
14044             type string {
14045               tailf:info "WORD;;BBA Group name";
14046             }
14047             type enumeration {
14048               enum "global" {
14049                 tailf:info "Attach global PPPoE group";
14050               }
14051             }
14052           }
14053         }
14054       }
14055       leaf max-sessions {
14056         tailf:info "Maximum PPPOE sessions";
14057         description
14058           "Maximum PPPOE sessions";
14059         type uint16 {
14060           tailf:info "<1-4085>;;Maximum PPPOE sessions";
14061           range "1..4085";
14062         }
14063       }
14064     }
14065     container service {
14066       tailf:info "Configure Ether Service";
14067       description
14068         "Configure Ether Service";
14069       list instance {
14070         tailf:info "Configure Ether Service Instance";
14071         description
14072           "Configure Ether Service Instance";
14073         tailf:cli-mode-name "config-if-srv";
14074         tailf:cli-incomplete-command;
14075         tailf:cli-sequence-commands;
14076         key "id";
14077         leaf id {
14078           type uint32 {
14079             tailf:info "<1-4000>;;Service Instance Identifier";
14080             range "1..4000";
14081           }
14082         }
14083         leaf trunk {
14084           tailf:info "Trunk Service Instance";
14085           description
14086             "Trunk Service Instance";
14087           tailf:cli-optional-in-sequence;
14088           tailf:cli-prefix-key;
14089           type empty;
14090         }
14091         leaf GigabitEthernet {
14092           tailf:info "Configure an GigabitEthernet Instance";
14093           description
14094             "Configure an GigabitEthernet Instance";
14095           tailf:cli-optional-in-sequence;
14096           tailf:cli-hide-in-submode;
14097           type empty;
14098         }
14099         leaf ethernet {
14100           tailf:info "Configure an Ethernet Instance";
14101           description
14102             "Configure an Ethernet Instance";
14103           tailf:cli-hide-in-submode;
14104           type empty;
14105         }
14106         leaf ethernet-evc-name {
14107           tailf:cli-drop-node-name;
14108           tailf:cli-hide-in-submode;
14109           type string {
14110             tailf:info "WORD;;Attach an EVC to the service instance";
14111           }
14112         }
14113         leaf description {
14114           tailf:cli-break-sequence-commands;
14115           tailf:info "Service instance specific description";
14116           description
14117             "Service instance specific description";
14118           tailf:cli-multi-value;
14119           tailf:cli-full-command;
14120           type string {
14121             tailf:info "LINE;;Up to 240 characters describing this service instance";
14122             length "0..240";
14123           }
14124         }
14125         leaf evc-name {
14126           tailf:cli-drop-node-name;
14127           tailf:cli-hide-in-submode;
14128           type string {
14129             tailf:info "WORD;;Attach an EVC to the service instance";
14130             length "1..100";
14131           }
14132         }
14133         container encapsulation {
14134           tailf:info "Configure ethernet frame match criteria";
14135           description
14136             "Configure ethernet frame match criteria";
14137           leaf default {
14138             tailf:info "catch-all unconfigured encapsulation";
14139             description
14140               "catch-all unconfigured encapsulation";
14141             tailf:cli-full-command;
14142             type empty;
14143           }
14144           container dot1ad {
14145             tailf:info "802.1ad - Provider Bridges";
14146             description
14147               "802.1ad - Provider Bridges";
14148             tailf:cli-sequence-commands;
14149             tailf:cli-compact-syntax;
14150             leaf-list id {
14151               tailf:cli-drop-node-name;
14152               tailf:cli-range-list-syntax;
14153               type union {
14154                 type uint16 {
14155                   tailf:info "<1-4094>;;VLAN id";
14156                   range "1..4094";
14157                 }
14158                 type enumeration {
14159                   enum "any" {
14160                     tailf:info "For all VLANS [1-4094]";
14161                   }
14162                 }
14163                 type string;
14164               }
14165             }
14166             leaf-list cos {
14167               tailf:info "CoS value to use for CFM packets";
14168               description
14169                 "CoS value to use for CFM packets";
14170               tailf:cli-break-sequence-commands;
14171               tailf:cli-range-list-syntax;
14172               type uint8 {
14173                 tailf:info "<0-7>;;CoS value";
14174                 range "0..7";
14175               }
14176             }
14177             leaf-list dot1q {
14178               tailf:info "Second tag (dot1q)";
14179               description
14180                 "Second tag (dot1q)";
14181               tailf:cli-range-list-syntax;
14182               type union {
14183                 type uint16 {
14184                   tailf:info "<1-4094>;;VLAN id";
14185                   range "1..4094";
14186                 }
14187                 type enumeration {
14188                   enum "any" {
14189                     tailf:info "For all VLANS [1-4094]";
14190                   }
14191                 }
14192                 type string;
14193               }
14194             }
14195             container cos2 {
14196               tailf:cli-drop-node-name;
14197               tailf:cli-flatten-container;
14198               leaf-list cos {
14199                 tailf:info "CoS value to use for CFM packets";
14200                 description
14201                   "CoS value to use for CFM packets";
14202                 tailf:cli-range-list-syntax;
14203                 type uint8 {
14204                   tailf:info "<0-7>;;CoS value";
14205                   range "0..7";
14206                 }
14207               }
14208             }
14209             leaf-list etype {
14210               tailf:info "payload ethertype after Vlan Field";
14211               description
14212                 "payload ethertype after Vlan Field";
14213               tailf:cli-range-list-syntax;
14214               type enumeration {
14215                 enum "ipv4" {
14216                   tailf:info "IPv4";
14217                 }
14218                 enum "ipv6" {
14219                   tailf:info "IPv6";
14220                 }
14221                 enum "pppoe-all" {
14222                   tailf:info "PPPoE ALL";
14223                 }
14224                 enum "pppoe-discovery" {
14225                   tailf:info "PPPoE Discovery Stage";
14226                 }
14227                 enum "pppoe-session" {
14228                   tailf:info "PPPoE Session Stage";
14229                 }
14230               }
14231             }
14232             leaf exact {
14233               tailf:info "payload Ethertype does not include 802.1q/802.1ad Tags.";
14234               description
14235                 "payload Ethertype does not include 802.1q/802.1ad Tags.";
14236               tailf:cli-full-command;
14237               type empty;
14238             }
14239           }
14240           container dot1q {
14241             tailf:info "IEEE 802.1Q Virtual LAN or S-VLAN";
14242             description
14243               "IEEE 802.1Q Virtual LAN or S-VLAN";
14244             tailf:cli-compact-syntax;
14245             tailf:cli-sequence-commands {
14246               tailf:cli-reset-siblings;
14247             }
14248             leaf-list id {
14249               tailf:cli-drop-node-name;
14250               tailf:cli-range-list-syntax;
14251               type union {
14252                 type uint16 {
14253                   tailf:info "<1-4094>;;VLAN id";
14254                   range "1..4094";
14255                 }
14256                 type enumeration {
14257                   enum "any" {
14258                     tailf:info "For all VLANS [1-4094]";
14259                   }
14260                 }
14261                 type string;
14262               }
14263             }
14264             leaf-list cos {
14265               tailf:info "cos Vlan";
14266               description
14267                 "cos Vlan";
14268               tailf:cli-range-list-syntax;
14269               tailf:cli-break-sequence-commands;
14270               type uint8 {
14271                 tailf:info "<0-7>;;cos values";
14272                 range "0..7";
14273               }
14274             }
14275             leaf-list second-dot1q {
14276               tailf:info "inner 802.1Q Virtual LAN or C-VLAN";
14277               description
14278                 "inner 802.1Q Virtual LAN or C-VLAN";
14279               tailf:cli-range-list-syntax;
14280               type union {
14281                 type uint16 {
14282                   tailf:info "<1-4094>;;VLAN id";
14283                   range "1..4094";
14284                 }
14285                 type enumeration {
14286                   enum "any" {
14287                     tailf:info "For all VLANS [1-4094]";
14288                   }
14289                 }
14290                 type string;
14291               }
14292             }
14293             container cos2 {
14294               tailf:cli-drop-node-name;
14295               tailf:cli-flatten-container;
14296               leaf-list cos {
14297                 tailf:info "cos Vlan";
14298                 description
14299                   "cos Vlan";
14300                 tailf:cli-range-list-syntax;
14301                 type uint8 {
14302                   tailf:info "<0-7>;;cos values";
14303                   range "0..7";
14304                 }
14305               }
14306             }
14307             leaf-list etype {
14308               tailf:info "payload ethertype after Vlan Field";
14309               description
14310                 "payload ethertype after Vlan Field";
14311               tailf:cli-range-list-syntax;
14312               type enumeration {
14313                 enum "ipv4" {
14314                   tailf:info "IPv4";
14315                 }
14316                 enum "ipv6" {
14317                   tailf:info "IPv6";
14318                 }
14319                 enum "pppoe-all" {
14320                   tailf:info "PPPoE ALL";
14321                 }
14322                 enum "pppoe-discovery" {
14323                   tailf:info "PPPoE Discovery Stage";
14324                 }
14325                 enum "pppoe-session" {
14326                   tailf:info "PPPoE Session Stage";
14327                 }
14328               }
14329             }
14330             leaf exact {
14331               tailf:info "payload Ethertype does not include 802.1q/802.1ad Tags.";
14332               description
14333                 "payload Ethertype does not include 802.1q/802.1ad Tags.";
14334               tailf:cli-full-command;
14335               type empty;
14336             }
14337             leaf vlan-type {
14338               tailf:info "Vlan Protocol Type";
14339               description
14340                 "Vlan Protocol Type";
14341               type enumeration {
14342                 enum "0x88A8" {
14343                   tailf:info "vlan protocol type 0x88A8";
14344                 }
14345                 enum "0x9100" {
14346                   tailf:info "vlan protocol type 0x9100";
14347                 }
14348                 enum "0x9200" {
14349                   tailf:info "vlan protocol type 0x9200";
14350                 }
14351               }
14352             }
14353           }
14354           container priority-tagged {
14355             tailf:info "Priority tagged EFP";
14356             description
14357               "Priority tagged EFP";
14358             container cos-container {
14359               tailf:cli-drop-node-name;
14360               tailf:cli-compact-syntax;
14361               tailf:cli-sequence-commands;
14362               leaf-list cos {
14363                 tailf:info "cos Vlan";
14364                 description
14365                   "cos Vlan";
14366                 tailf:cli-range-list-syntax;
14367                 type uint8 {
14368                   tailf:info "<0-7>;;cos values";
14369                   range "0..7";
14370                 }
14371               }
14372             }
14373             leaf-list etype {
14374               tailf:info "payload ethertype after Vlan Field";
14375               description
14376                 "payload ethertype after Vlan Field";
14377               tailf:cli-range-list-syntax;
14378               type enumeration {
14379                 enum "ipv4" {
14380                   tailf:info "IPv4";
14381                 }
14382                 enum "ipv6" {
14383                   tailf:info "IPv6";
14384                 }
14385                 enum "pppoe-all" {
14386                   tailf:info "PPPoE ALL";
14387                 }
14388                 enum "pppoe-discovery" {
14389                   tailf:info "PPPoE Discovery Stage";
14390                 }
14391                 enum "pppoe-session" {
14392                   tailf:info "PPPoE Session Stage";
14393                 }
14394               }
14395             }
14396           }
14397           container untagged {
14398             tailf:info "Untagged encapsulation";
14399             description
14400               "Untagged encapsulation";
14401             presence "true";
14402           }
14403         }
14404         container ip {
14405           tailf:info "Interface Internet Protocol config commands";
14406           description
14407             "Interface Internet Protocol config commands";
14408           container acl {
14409             tailf:cli-drop-node-name;
14410             tailf:cli-compact-syntax;
14411             tailf:cli-sequence-commands;
14412             leaf access-group {
14413               tailf:info "Specify access control for packets";
14414               description
14415                 "Specify access control for packets";
14416               type exp-acl-type;
14417             }
14418             leaf in {
14419               tailf:info "inbound packets";
14420               description
14421                 "inbound packets";
14422               tailf:cli-break-sequence-commands;
14423               type empty;
14424             }
14425             leaf out {
14426               tailf:info "outbound packets";
14427               description
14428                 "outbound packets";
14429               type empty;
14430             }
14431           }
14432           container dhcp {
14433             tailf:info "DHCP";
14434             description
14435               "DHCP";
14436             container relay {
14437               tailf:info "DHCP relay";
14438               description
14439                 "DHCP relay";
14440               container information {
14441                 tailf:info "DHCP relay information";
14442                 description
14443                   "DHCP relay information";
14444                 container option {
14445                   tailf:info "DHCP relay information option";
14446                   description
14447                     "DHCP relay information option";
14448                   leaf subscriber-id {
14449                     tailf:info "DHCP relay information option subscriber-id";
14450                     description
14451                       "DHCP relay information option subscriber-id";
14452                     type string {
14453                       tailf:info "WORD;;subscriber-id string";
14454                     }
14455                   }
14456                 }
14457               }
14458             }
14459           }
14460           container verify {
14461             tailf:info "verify";
14462             description
14463               "verify";
14464             tailf:cli-compact-syntax;
14465             tailf:cli-sequence-commands;
14466             leaf source {
14467               tailf:info "source address";
14468               description
14469                 "source address";
14470               type empty;
14471             }
14472             leaf vlan {
14473               tailf:info "vlan specification";
14474               description
14475                 "vlan specification";
14476               type empty;
14477             }
14478             leaf dhcp-snooping {
14479               tailf:info "snooping enable vlan";
14480               description
14481                 "snooping enable vlan";
14482               type empty;
14483             }
14484             leaf port-security {
14485               tailf:info "port security";
14486               description
14487                 "port security";
14488               tailf:cli-optional-in-sequence;
14489               type empty;
14490             }
14491           }
14492         }
14493         container ipv6 {
14494           tailf:info "IPv6 interface subcommands";
14495           description
14496             "IPv6 interface subcommands";
14497           tailf:cli-compact-syntax;
14498           tailf:cli-sequence-commands;
14499           leaf traffic-filter {
14500             tailf:info "Access control list for packets";
14501             description
14502               "Access control list for packets";
14503             type string {
14504               tailf:info "WORD;;ACL name";
14505             }
14506           }
14507           leaf in {
14508             tailf:info "inbound packets";
14509             description
14510               "inbound packets";
14511             tailf:cli-break-sequence-commands;
14512             type empty;
14513           }
14514           leaf out {
14515             tailf:info "outbound packets";
14516             description
14517               "outbound packets";
14518             type empty;
14519           }
14520         }
14521         container rewrite {
14522           tailf:info "Configure ethernet rewrite criteria";
14523           description
14524             "Configure ethernet rewrite criteria";
14525           container ingress {
14526             tailf:info "Ingress Rewrite";
14527             description
14528               "Ingress Rewrite";
14529             container tag {
14530               tailf:info "Configure Rewrite Tag";
14531               description
14532                 "Configure Rewrite Tag";
14533               container pop {
14534                 tailf:info "Pop the tag";
14535                 description
14536                   "Pop the tag";
14537                 tailf:cli-compact-syntax;
14538                 tailf:cli-sequence-commands;
14539                 leaf way {
14540                   tailf:cli-drop-node-name;
14541                   type enumeration {
14542                     enum "1" {
14543                       tailf:info "Pop the outermost tag";
14544                     }
14545                     enum "2" {
14546                       tailf:info "Pop two outermost tags";
14547                     }
14548                   }
14549                 }
14550                 leaf mode {
14551                   tailf:cli-drop-node-name;
14552                   type enumeration {
14553                     enum "symmetric" {
14554                       tailf:info "Tag egress packets as specified in encapsulation";
14555                     }
14556                   }
14557                 }
14558               }
14559               container push {
14560                 tailf:info "Rewrite Operation of push";
14561                 description
14562                   "Rewrite Operation of push";
14563                 tailf:cli-compact-syntax;
14564                 tailf:cli-sequence-commands;
14565                 leaf dot1q {
14566                   tailf:info "Push dot1q tag";
14567                   description
14568                     "Push dot1q tag";
14569                   type uint16 {
14570                     tailf:info "<1-4094>;;VLAN id";
14571                     range "1..4094";
14572                   }
14573                 }
14574                 leaf mode {
14575                   tailf:cli-drop-node-name;
14576                   type enumeration {
14577                     enum "symmetric" {
14578                       tailf:info "Tag egress packets as specified in encapsulation";
14579                     }
14580                   }
14581                 }
14582               }
14583               container translate {
14584                 tailf:info "Translate Tag";
14585                 description
14586                   "Translate Tag";
14587                 container t1-to-1 {
14588                   tailf:info "Translate 1-to-1";
14589                   description
14590                     "Translate 1-to-1";
14591                   tailf:alt-name "1-to-1";
14592                   tailf:cli-compact-syntax;
14593                   tailf:cli-sequence-commands;
14594                   leaf dot1q {
14595                     tailf:info "Ethertype dot1q of the translation";
14596                     description
14597                       "Ethertype dot1q of the translation";
14598                     type uint16 {
14599                       tailf:info "<1-4094>;;VLAN id";
14600                       range "1..4094";
14601                     }
14602                   }
14603                   leaf mode {
14604                     tailf:cli-drop-node-name;
14605                     type enumeration {
14606                       enum "symmetric" {
14607                         tailf:info "Tag egress packets as specified in encapsulation";
14608                       }
14609                     }
14610                   }
14611                 }
14612                 container t1-to-2 {
14613                   tailf:info "Translate 1-to-2";
14614                   description
14615                     "Translate 1-to-2";
14616                   tailf:alt-name "1-to-2";
14617                   tailf:cli-compact-syntax;
14618                   tailf:cli-sequence-commands;
14619                   leaf dot1q {
14620                     tailf:info "Translate ethertype of dot1q";
14621                     description
14622                       "Translate ethertype of dot1q";
14623                     type uint16 {
14624                       tailf:info "<1-4094>;;VLAN id";
14625                       range "1..4094";
14626                     }
14627                   }
14628                   leaf second-dot1q {
14629                     tailf:info "Second dot1q tag";
14630                     description
14631                       "Second dot1q tag";
14632                     type uint16 {
14633                       tailf:info "<1-4094>;;VLAN id";
14634                       range "1..4094";
14635                     }
14636                   }
14637                   leaf mode {
14638                     tailf:cli-drop-node-name;
14639                     type enumeration {
14640                       enum "symmetric" {
14641                         tailf:info "Tag egress packets as specified in encapsulation";
14642                       }
14643                     }
14644                   }
14645                 }
14646                 container t2-to-1 {
14647                   tailf:info "Translate 2-to-1";
14648                   description
14649                     "Translate 2-to-1";
14650                   tailf:alt-name "2-to-1";
14651                   tailf:cli-compact-syntax;
14652                   tailf:cli-sequence-commands;
14653                   leaf dot1q {
14654                     tailf:info "Ethertype dot1q of the translation";
14655                     description
14656                       "Ethertype dot1q of the translation";
14657                     type uint16 {
14658                       tailf:info "<1-4094>;;VLAN id";
14659                       range "1..4094";
14660                     }
14661                   }
14662                   leaf mode {
14663                     tailf:cli-drop-node-name;
14664                     type enumeration {
14665                       enum "symmetric" {
14666                         tailf:info "Tag egress packets as specified in encapsulation";
14667                       }
14668                     }
14669                   }
14670                 }
14671                 container t2-to-2 {
14672                   tailf:info "Translate 2-to-2";
14673                   description
14674                     "Translate 2-to-2";
14675                   tailf:alt-name "2-to-2";
14676                   tailf:cli-compact-syntax;
14677                   tailf:cli-sequence-commands;
14678                   leaf dot1q {
14679                     tailf:info "Translate ethertype of dot1q";
14680                     description
14681                       "Translate ethertype of dot1q";
14682                     type uint16 {
14683                       tailf:info "<1-4094>;;VLAN id";
14684                       range "1..4094";
14685                     }
14686                   }
14687                   leaf second-dot1q {
14688                     tailf:info "Second dot1q tag";
14689                     description
14690                       "Second dot1q tag";
14691                     type uint16 {
14692                       tailf:info "<1-4094>;;VLAN id";
14693                       range "1..4094";
14694                     }
14695                   }
14696                   leaf mode {
14697                     tailf:cli-drop-node-name;
14698                     type enumeration {
14699                       enum "symmetric" {
14700                         tailf:info "Tag egress packets as specified in encapsulation";
14701                       }
14702                     }
14703                   }
14704                 }
14705               }
14706             }
14707           }
14708         }
14709         leaf group {
14710           tailf:cli-full-command;
14711           type uint32;
14712         }
14713         container errdisable {
14714           tailf:info "Configure error disable";
14715           description
14716             "Configure error disable";
14717           container recovery {
14718             tailf:info "enable auto recovery";
14719             description
14720               "enable auto recovery";
14721             container cause {
14722               tailf:info "error disable cause";
14723               description
14724                 "error disable cause";
14725               leaf mac-security {
14726                 tailf:info "mac-security violation";
14727                 description
14728                   "mac-security violation";
14729                 type uint32 {
14730                   tailf:info "<30-86400>;;timer interval(sec)";
14731                   range "30..86400";
14732                 }
14733               }
14734             }
14735           }
14736         }
14737         container ethernet-container {
14738           tailf:cli-drop-node-name;
14739           container ethernet {
14740             tailf:info "ethernet";
14741             description
14742               "ethernet";
14743             container lmi {
14744               tailf:info "Configure ether lmi parameters";
14745               description
14746                 "Configure ether lmi parameters";
14747               container ce-vlan {
14748                 tailf:info "Configure ether lmi customer vlans";
14749                 description
14750                   "Configure ether lmi customer vlans";
14751                 container map {
14752                   tailf:info "Configure ether lmi ce-vlan/evc map";
14753                   description
14754                     "Configure ether lmi ce-vlan/evc map";
14755                   container vlan-range {
14756                     tailf:cli-drop-node-name;
14757                     tailf:cli-sequence-commands;
14758                     tailf:cli-compact-syntax;
14759                     leaf vlan-id {
14760                       tailf:cli-drop-node-name;
14761                       type uint16 {
14762                         tailf:info "<1-4094>;;VLAN id";
14763                         range "1..4094";
14764                       }
14765                     }
14766                     leaf comma {
14767                       tailf:info "comma";
14768                       description
14769                         "comma";
14770                       tailf:alt-name ",";
14771                       tailf:cli-break-sequence-commands;
14772                       type uint16 {
14773                         tailf:info "<1-4094>;;VLAN id";
14774                         range "1..4094";
14775                       }
14776                     }
14777                     leaf hyphen {
14778                       tailf:info "hyphen";
14779                       description
14780                         "hyphen";
14781                       tailf:alt-name "-";
14782                       type uint16 {
14783                         tailf:info "<1-4094>;;VLAN id";
14784                         range "1..4094";
14785                       }
14786                     }
14787                   }
14788                   leaf any {
14789                     tailf:info "For all VLANS [untagged,1-4094]";
14790                     description
14791                       "For all VLANS [untagged,1-4094]";
14792                     type empty;
14793                   }
14794                   leaf default {
14795                     tailf:info "Default EFP";
14796                     description
14797                       "Default EFP";
14798                     type empty;
14799                   }
14800                   leaf untagged {
14801                     tailf:info "Untagged frames";
14802                     description
14803                       "Untagged frames";
14804                     type empty;
14805                   }
14806                 }
14807               }
14808             }
14809             container loopback {
14810               tailf:info "Ethernet Dataplane Loopback";
14811               description
14812                 "Ethernet Dataplane Loopback";
14813               container permit {
14814                 tailf:info "Allow data plane loopback to be activated";
14815                 description
14816                   "Allow data plane loopback to be activated";
14817                 leaf external {
14818                   tailf:info "Allow to loopback the traffic from the wire";
14819                   description
14820                     "Allow to loopback the traffic from the wire";
14821                   type empty;
14822                 }
14823                 leaf internal {
14824                   tailf:info "Allow to loopback the traffic from the relay";
14825                   description
14826                     "Allow to loopback the traffic from the relay";
14827                   type empty;
14828                 }
14829               }
14830             }
14831           }
14832         }
14833         container snmp {
14834           tailf:info "Modify SNMP service instance parameters";
14835           description
14836             "Modify SNMP service instance parameters";
14837           container trap {
14838             tailf:info "Allow a specific SNMP trap";
14839             description
14840               "Allow a specific SNMP trap";
14841             leaf link-status {
14842               tailf:info "Allow SNMP LINKUP and LINKDOWN traps";
14843               description
14844                 "Allow SNMP LINKUP and LINKDOWN traps";
14845               type empty;
14846             }
14847           }
14848           container ifindex {
14849             tailf:info "Persist ifindex for the service instance";
14850             description
14851               "Persist ifindex for the service instance";
14852             leaf persist {
14853               tailf:info "Enable/Disable ifIndex persistence";
14854               description
14855                 "Enable/Disable ifIndex persistence";
14856               type empty;
14857             }
14858           }
14859         }
14860         container bridge-domain {
14861           tailf:info "Bridge-domain";
14862           description
14863             "Bridge-domain";
14864           tailf:cli-compact-syntax;
14865           tailf:cli-sequence-commands {
14866             tailf:cli-reset-all-siblings;
14867           }
14868           leaf bridge-id {
14869             tailf:cli-drop-node-name;
14870             type uint16 {
14871               tailf:info "<1-16384>;;Bridge-domain number";
14872             }
14873           }
14874           container split-horizon {
14875             tailf:info "Configure this port as a member of a split horizon group";
14876             description
14877               "Configure this port as a member of a split horizon group";
14878             tailf:cli-optional-in-sequence;
14879             leaf group {
14880               tailf:info "Split-horizon group";
14881               description
14882                 "Split-horizon group";
14883               type uint8 {
14884                 tailf:info "<0-13>;;Split-horizon group number";
14885                 range "0..13";
14886               }
14887             }
14888           }
14889           leaf from-encapsulation {
14890             tailf:info "from-encapsulation";
14891             description
14892               "from-encapsulation";
14893             type empty;
14894           }
14895         }
14896         container mac {
14897           tailf:info "Commands for MAC Address-based features";
14898           description
14899             "Commands for MAC Address-based features";
14900           container security {
14901             tailf:info "MAC Security commands";
14902             description
14903               "MAC Security commands";
14904             tailf:cli-display-separated;
14905             tailf:cli-delete-when-empty;
14906             presence "true";
14907             container maximum {
14908               tailf:info "Configure an upper bound";
14909               description
14910                 "Configure an upper bound";
14911               leaf addresses {
14912                 tailf:info "Maximum addresses that can be learnt on this service instance";
14913                 description
14914                   "Maximum addresses that can be learnt on this service instance";
14915                 type uint16 {
14916                   tailf:info "<1-1000>;;Address count";
14917                   range "1..1000";
14918                 }
14919               }
14920             }
14921             leaf violation {
14922               tailf:info "Configure the response when a MAC security policy is violated";
14923               description
14924                 "Configure the response when a MAC security policy is violated";
14925               tailf:cli-full-command;
14926               type enumeration {
14927                 enum "protect" {
14928                   tailf:info "Protect mode - don't report violations, drop violating frames";
14929                 }
14930                 enum "restrict" {
14931                   tailf:info "Restrict mode - report violations, drop violating frames";
14932                 }
14933               }
14934             }
14935           }
14936         }
14937         container service-policy {
14938           tailf:info "Attach a policy-map to an EFP";
14939           description
14940             "Attach a policy-map to an EFP";
14941           list input {
14942             tailf:info "service policy input";
14943             description
14944               "service policy input";
14945             tailf:cli-suppress-mode;
14946             tailf:cli-delete-when-empty;
14947             key "name";
14948             leaf name {
14949               type string {
14950                 tailf:info "WORD;;input Policy-map name";
14951               }
14952               tailf:non-strict-leafref {
14953                 path "/ios:native/policy-map/name";
14954               }
14955             }
14956           }
14957           list output {
14958             tailf:info "service policy output";
14959             description
14960               "service policy output";
14961             tailf:cli-suppress-mode;
14962             tailf:cli-delete-when-empty;
14963             key "name";
14964             leaf name {
14965               type string {
14966                 tailf:info "WORD;;output Policy-map name";
14967               }
14968               tailf:non-strict-leafref {
14969                 path "/ios:native/policy-map/name";
14970               }
14971             }
14972           }
14973         }
14974         leaf shutdown {
14975           tailf:info "Take the Service Instance out of Service";
14976           description
14977             "Take the Service Instance out of Service";
14978           tailf:cli-full-command;
14979           type empty;
14980         }
14981         uses interface-xconnect-grouping;
14982         container cfm {
14983           tailf:info "Ethernet CFM EFP subcommands";
14984           description
14985             "Ethernet CFM EFP subcommands";
14986           container encapsulation {
14987             tailf:info "Configure CFM ethernet frame encapsulation";
14988             description
14989               "Configure CFM ethernet frame encapsulation";
14990             container dot1ad {
14991               tailf:info "802.1ad - Provider Bridges";
14992               description
14993                 "802.1ad - Provider Bridges";
14994               tailf:cli-sequence-commands;
14995               tailf:cli-compact-syntax;
14996               leaf vlan-id {
14997                 tailf:cli-drop-node-name;
14998                 type uint16 {
14999                   tailf:info "<1-4094>;;VLAN id";
15000                   range "1..4094";
15001                 }
15002               }
15003               leaf cos {
15004                 tailf:info "CoS value to use for CFM packets";
15005                 description
15006                   "CoS value to use for CFM packets";
15007                 tailf:cli-break-sequence-commands;
15008                 type uint8 {
15009                   tailf:info "<0-7>;;CoS value";
15010                   range "0..7";
15011                 }
15012               }
15013               leaf dot1q {
15014                 tailf:info "Second tag (dot1q)";
15015                 description
15016                   "Second tag (dot1q)";
15017                 type uint16 {
15018                   tailf:info "<1-4094>;;VLAN id";
15019                   range "1..4094";
15020                 }
15021               }
15022             }
15023             container dot1q {
15024               tailf:info "IEEE 802.1Q Virtual LAN or S-VLAN";
15025               description
15026                 "IEEE 802.1Q Virtual LAN or S-VLAN";
15027               tailf:cli-sequence-commands;
15028               tailf:cli-compact-syntax;
15029               leaf vlan-id {
15030                 tailf:cli-drop-node-name;
15031                 type uint16 {
15032                   tailf:info "<1-4094>;;VLAN id";
15033                   range "1..4094";
15034                 }
15035               }
15036               leaf cos {
15037                 tailf:info "CoS value to use for CFM packets";
15038                 description
15039                   "CoS value to use for CFM packets";
15040                 tailf:cli-break-sequence-commands;
15041                 type uint8 {
15042                   tailf:info "<0-7>;;CoS value";
15043                   range "0..7";
15044                 }
15045               }
15046               leaf second-dot1q {
15047                 tailf:info "inner 802.1Q Virtual LAN or C-VLAN";
15048                 description
15049                   "inner 802.1Q Virtual LAN or C-VLAN";
15050                 type uint16 {
15051                   tailf:info "<1-4094>;;VLAN id";
15052                   range "1..4094";
15053                 }
15054               }
15055             }
15056           }
15057           container mep {
15058             tailf:info "Maintenance End Point";
15059             description
15060               "Maintenance End Point";
15061             tailf:cli-sequence-commands;
15062             tailf:cli-compact-syntax;
15063             leaf domain {
15064               tailf:info "Configure a domain for this mep";
15065               description
15066                 "Configure a domain for this mep";
15067               type string {
15068                 tailf:info "WORD;;maintenance domain name";
15069               }
15070             }
15071             leaf mpid {
15072               tailf:info "Maintenance End Point Identifier";
15073               description
15074                 "Maintenance End Point Identifier";
15075               type uint16 {
15076                 tailf:info "<1-8191>;;Maintenance End Point Identifier";
15077                 range "1..8191";
15078               }
15079             }
15080           }
15081           container mip {
15082             tailf:info "Maintenance Intermediate Point";
15083             description
15084               "Maintenance Intermediate Point";
15085             leaf level {
15086               tailf:info "Maintenance Level";
15087               description
15088                 "Maintenance Level";
15089               type uint8 {
15090                 tailf:info "<0-7>;;maintenance level number";
15091               }
15092             }
15093           }
15094         }
15095         container l2protocol {
15096           tailf:info "Configure l2 control protocol processing";
15097           description
15098             "Configure l2 control protocol processing";
15099           container peer {
15100             tailf:info "peer L2 control protocol packets as data";
15101             description
15102               "peer L2 control protocol packets as data";
15103             presence "true";
15104             uses interface-ethernet-service-instance-l2protocol-grouping;
15105           }
15106           container forward {
15107             tailf:info "forward L2 control protocol packets as data";
15108             description
15109               "forward L2 control protocol packets as data";
15110             presence "true";
15111             uses interface-ethernet-service-instance-l2protocol-grouping;
15112           }
15113           container tunnel {
15114             tailf:info "tunnel L2 control protocol packets as data";
15115             description
15116               "tunnel L2 control protocol packets as data";
15117             presence "true";
15118             uses interface-ethernet-service-instance-l2protocol-grouping;
15119           }
15120         }
15121       }
15122     }
15123   }
15124
15125   grouping interface-zone-member-grouping {
15126     container zone-member {
15127       tailf:info "Apply zone name";
15128       description
15129         "Apply zone name";
15130       leaf security {
15131         tailf:info "Security zone";
15132         description
15133           "Security zone";
15134         type string;
15135         tailf:non-strict-leafref {
15136           path "/ios:native/zone/security/id";
15137         }
15138       }
15139     }
15140   }
15141
15142   grouping interface-cellular-grouping {
15143     container dialer {
15144       leaf in-band {
15145         type empty;
15146       }
15147       leaf idle-timeout {
15148         type uint32;
15149       }
15150       leaf string {
15151         type string;
15152       }
15153       leaf watch-group {
15154         type uint32;
15155       }
15156     }
15157     container async {
15158       leaf mode {
15159         type enumeration {
15160           enum "interactive";
15161         }
15162       }
15163     }
15164   }
15165
15166   grouping interface-pointtopoint-grouping {
15167     container ppp {
15168       tailf:info "Point-to-Point Protocol";
15169       description
15170         "Point-to-Point Protocol";
15171       leaf accounting {
15172         tailf:info "Set PPP network accounting method";
15173         description
15174           "Set PPP network accounting method";
15175         type union {
15176           type string {
15177             tailf:info "WORD;;Named accounting list.";
15178           }
15179           type enumeration {
15180             enum "default" {
15181               tailf:info "The default accounting list.";
15182             }
15183           }
15184         }
15185       }
15186       container chap {
15187         tailf:info "Set CHAP authentication parameters";
15188         description
15189           "Set CHAP authentication parameters";
15190         leaf hostname {
15191           tailf:info "Set alternate CHAP hostname";
15192           description
15193             "Set alternate CHAP hostname";
15194           type string {
15195             tailf:info "WORD;;Alternate CHAP hostname";
15196           }
15197         }
15198         leaf challenge-length {
15199           tailf:info "Challenge Length for CHAP";
15200           description
15201             "Challenge Length for CHAP";
15202           type uint8 {
15203             tailf:info "<16-63>  Minimum length for CHAP challenge";
15204             range "16..63";
15205           }
15206         }
15207       }
15208       container authentication {
15209         tailf:info "Set PPP link authentication method";
15210         description
15211           "Set PPP link authentication method";
15212         tailf:cli-compact-syntax;
15213         tailf:cli-sequence-commands;
15214         leaf method {
15215           tailf:cli-drop-node-name;
15216           type enumeration {
15217             enum "chap" {
15218               tailf:info "Challenge Handshake Authentication Protocol (CHAP)";
15219             }
15220             enum "eap" {
15221               tailf:info "Extensible Authentication Protocol (EAP)";
15222             }
15223             enum "ms-chap" {
15224               tailf:info "Microsoft Challenge Handshake Authentication Protocol (MS-CHAP)";
15225             }
15226             enum "ms-chap-v2" {
15227               tailf:info "Microsoft CHAP Version 2 (MS-CHAP-V2)";
15228             }
15229             enum "pap" {
15230               tailf:info "Password Authentication Protocol (PAP)";
15231             }
15232           }
15233         }
15234         leaf list-name {
15235           tailf:cli-break-sequence-commands;
15236           tailf:cli-drop-node-name;
15237           type string {
15238             tailf:info "WORD;;Use an authentication list with this name";
15239           }
15240           tailf:cli-disallow-value "(callback)|(callin)|(callout)|(default)|(eap)|(ms-chap)|(ms-chap-v2)|(one-time)|(optional)|(pap)";
15241         }
15242         leaf chap {
15243           when "not(../method = 'chap')" {
15244             tailf:dependency "../method";
15245           }
15246           tailf:info "Challenge Handshake Authentication Protocol (CHAP)";
15247           type empty;
15248         }
15249         leaf callback {
15250           tailf:info "Authenticate remote on callback only";
15251           description
15252             "Authenticate remote on callback only";
15253           type empty;
15254         }
15255         leaf callin {
15256           tailf:info "Authenticate remote on incoming call only";
15257           description
15258             "Authenticate remote on incoming call only";
15259           type empty;
15260         }
15261         leaf callout {
15262           tailf:info "Authenticate remote on outgoing call only";
15263           description
15264             "Authenticate remote on outgoing call only";
15265           type empty;
15266         }
15267         leaf default {
15268           tailf:info "Use the default authentication list";
15269           description
15270             "Use the default authentication list";
15271           type empty;
15272         }
15273         leaf eap {
15274           when "not(../method = 'eap')" {
15275             tailf:dependency "../method";
15276           }
15277           tailf:info "Extensible Authentication Protocol (EAP)";
15278           description
15279             "Extensible Authentication Protocol (EAP)";
15280           type empty;
15281         }
15282         leaf ms-chap {
15283           when "not(../method = 'ms-chap')" {
15284             tailf:dependency "../method";
15285           }
15286           tailf:info "Microsoft Challenge Handshake Authentication Protocol (MS-CHAP)";
15287           description
15288             "Microsoft Challenge Handshake Authentication Protocol (MS-CHAP)";
15289           type empty;
15290         }
15291         leaf ms-chap-v2 {
15292           when "not(../method = 'ms-chap-v2')" {
15293             tailf:dependency "../method";
15294           }
15295           tailf:info "Microsoft CHAP Version 2 (MS-CHAP-V2)";
15296           description
15297             "Microsoft CHAP Version 2 (MS-CHAP-V2)";
15298           type empty;
15299         }
15300         leaf one-time {
15301           tailf:info "Allow use of username*OTP for one-time passwords";
15302           description
15303             "Allow use of username*OTP for one-time passwords";
15304           type empty;
15305         }
15306         leaf optional {
15307           tailf:info "Allow peer to refuse to authenticate";
15308           description
15309             "Allow peer to refuse to authenticate";
15310           type empty;
15311         }
15312         leaf pap {
15313           when "not(../method = 'pap')" {
15314             tailf:dependency "../method";
15315           }
15316           tailf:info "Password Authentication Protocol (PAP)";
15317           description
15318             "Password Authentication Protocol (PAP)";
15319           type empty;
15320         }
15321       }
15322       leaf authorization {
15323         tailf:info "Set PPP network authorization method";
15324         description
15325           "Set PPP network authorization method";
15326         type union {
15327           type string {
15328             tailf:info "WORD;;Named authorization list.";
15329           }
15330           type enumeration {
15331             enum "default" {
15332               tailf:info "The default authorization list.";
15333             }
15334           }
15335         }
15336       }
15337       container ipcp {
15338         tailf:info "Set IPCP negotiation options";
15339         description
15340           "Set IPCP negotiation options";
15341         container dns {
15342           tailf:info "Specify DNS negotiation options";
15343           description
15344             "Specify DNS negotiation options";
15345           tailf:cli-compact-syntax;
15346           tailf:cli-sequence-commands;
15347           leaf primary {
15348             tailf:cli-drop-node-name;
15349             type inet:ipv4-address {
15350               tailf:info "A.B.C.D;;Primary DNS IP address";
15351             }
15352           }
15353         }
15354       }
15355       container multilink {
15356         tailf:info "Make interface multilink capable";
15357         description
15358           "Make interface multilink capable";
15359         tailf:cli-display-separated;
15360         presence "true";
15361         container links {
15362           tailf:info "Specify the limits on the number of links in a bundle";
15363           description
15364             "Specify the limits on the number of links in a bundle";
15365           container minimum {
15366             tailf:info "Minimum number of links desired in the bundle";
15367             description
15368               "Minimum number of links desired in the bundle";
15369             tailf:cli-compact-syntax;
15370             tailf:cli-sequence-commands {
15371               tailf:cli-reset-all-siblings;
15372             }
15373             leaf minimum-value {
15374               tailf:cli-drop-node-name;
15375               type uint8 {
15376                 tailf:info "<1-255>;;Specify minimum desired number of links in a bundle";
15377               }
15378             }
15379             leaf mandatory {
15380               tailf:info "Disable network layer until minimum number of links is reach";
15381               description
15382                 "Disable network layer until minimum number of links is reach";
15383               type empty;
15384             }
15385           }
15386         }
15387         leaf group {
15388           tailf:info "Put interface in a multilink bundle";
15389           description
15390             "Put interface in a multilink bundle";
15391           type uint32 {
15392             tailf:info "<1-2147483647>;;Multilink group number";
15393             range "1..2147483647";
15394           }
15395         }
15396         container endpoint {
15397           tailf:info "Configure the local Endpoint Discriminator";
15398           description
15399             "Configure the local Endpoint Discriminator";
15400           leaf string {
15401             tailf:info "Use specified string";
15402             description
15403               "Use specified string";
15404             type string {
15405               tailf:info "LINE;;String to use as Endpoint Discriminator";
15406             }
15407           }
15408         }
15409         container fragment {
15410           tailf:info "Specify fragmentation parameters";
15411           description
15412             "Specify fragmentation parameters";
15413           container delay {
15414             tailf:info "Specify the maximum delay for each fragment";
15415             description
15416               "Specify the maximum delay for each fragment";
15417             tailf:cli-compact-syntax;
15418             tailf:cli-sequence-commands {
15419               tailf:cli-reset-siblings;
15420             }
15421             leaf delay-value {
15422               tailf:cli-drop-node-name;
15423               type uint16 {
15424                 tailf:info "<0-1000>;;Delay in milliseconds";
15425                 range "0..1000";
15426               }
15427             }
15428             leaf additional-delay-value {
15429               tailf:cli-drop-node-name;
15430               type uint16 {
15431                 tailf:info "<1-999>;;Additional delay in microseconds";
15432                 range "1..999";
15433               }
15434             }
15435           }
15436         }
15437       }
15438     }
15439   }
15440
15441   grouping interface-pseudowire-grouping {
15442     leaf description {
15443       tailf:info "Interface specific description";
15444       description
15445         "Interface specific description";
15446       tailf:cli-multi-value;
15447       tailf:cli-full-command;
15448       type string {
15449         length "0..240";
15450       }
15451     }
15452     container label {
15453       tailf:info "MPLS local and remote pseudowire static labels";
15454       description
15455         "MPLS local and remote pseudowire static labels";
15456       when "../encapsulation = 'mpls'";
15457       tailf:cli-compact-syntax;
15458       tailf:cli-sequence-commands {
15459         tailf:cli-reset-siblings;
15460       }
15461       leaf local {
15462         tailf:cli-drop-node-name;
15463         type uint32 {
15464           tailf:info "<20000-40000>;;Local pseudowire label";
15465           range "20000..40000";
15466         }
15467       }
15468       leaf remote {
15469         tailf:cli-drop-node-name;
15470         type uint32 {
15471           tailf:info "<16-1048575>;;Remote pseudowire label";
15472           range "16..1048575";
15473         }
15474       }
15475     }
15476     leaf mtu {
15477       tailf:info "Set Maximum Transmission Unit (MTU)";
15478       description
15479         "Set Maximum Transmission Unit (MTU)";
15480       tailf:cli-full-command;
15481       type uint16 {
15482         range "64..65535";
15483         tailf:info "<64-65535>;;Maximum Transmission Unit value";
15484       }
15485     }
15486     container neighbor {
15487       tailf:info "Neighbor options";
15488       description
15489         "Neighbor options";
15490       tailf:cli-compact-syntax;
15491       tailf:cli-sequence-commands {
15492         tailf:cli-reset-siblings;
15493       }
15494       leaf peer-ip {
15495         tailf:cli-drop-node-name;
15496         type inet:ipv4-address {
15497           tailf:info "A.B.C.D;;IP address of the peer PE";
15498         }
15499       }
15500       leaf vc-id {
15501         tailf:cli-drop-node-name;
15502         type uint64 {
15503           tailf:info "<1-4294967295>;;Virtual Circuit ID value";
15504           range "1..4294967295";
15505         }
15506       }
15507     }
15508     container performance {
15509       tailf:info "Global performance monitor configuration";
15510       description
15511         "Global performance monitor configuration";
15512       container monitor {
15513         tailf:info "monitor";
15514         description
15515           "monitor";
15516         leaf-list context {
15517           tailf:info "Select ezPM context";
15518           description
15519             "Select ezPM context";
15520           tailf:cli-list-syntax;
15521           type string;
15522         }
15523       }
15524     }
15525     container service-policy {
15526       tailf:info "Configure CPL Service Policy";
15527       description
15528         "Configure CPL Service Policy";
15529       leaf input {
15530         tailf:cli-full-command;
15531         tailf:info "Assign policy-map to the input of an interface";
15532         description
15533           "Assign policy-map to the input of an interface";
15534         type string {
15535           tailf:info "WORD;;policy-map name";
15536         }
15537         tailf:non-strict-leafref {
15538           path "/ios:native/policy-map/name";
15539         }
15540       }
15541       leaf output {
15542         tailf:cli-full-command;
15543         tailf:info "Assign policy-map to the output of an interface";
15544         description
15545           "Assign policy-map to the output of an interface";
15546         type string {
15547           tailf:info "WORD;;policy-map name";
15548         }
15549         tailf:non-strict-leafref {
15550           path "/ios:native/policy-map/name";
15551         }
15552       }
15553     }
15554     leaf shutdown {
15555       tailf:info "Shutdown the selected interface";
15556       description
15557         "Shutdown the selected interface";
15558       tailf:cli-full-command;
15559       type empty;
15560     }
15561     container signaling {
15562       tailf:info "Signaling options";
15563       description
15564         "Signaling options";
15565       container protocol-mpls {
15566         tailf:cli-drop-node-name;
15567         when "../../encapsulation = 'mpls'";
15568         leaf protocol {
15569           tailf:info "Signaling protocol to use";
15570           description
15571             "Signaling protocol to use";
15572           type enumeration {
15573             enum "ldp" {
15574               tailf:info "Use LDP signaling";
15575             }
15576             enum "none" {
15577               tailf:info "No signaling, use manually configured sessions";
15578             }
15579           }
15580         }
15581       }
15582       container protocol-l2tpv2 {
15583         tailf:cli-drop-node-name;
15584         when "../../encapsulation = 'l2tpv2'";
15585         leaf protocol {
15586           tailf:info "Signaling protocol to use";
15587           description
15588             "Signaling protocol to use";
15589           type enumeration {
15590             enum "l2tpv2" {
15591               tailf:info "Use L2TPv2 signaling";
15592             }
15593             enum "none" {
15594               tailf:info "No signaling, use manually configured sessions";
15595             }
15596           }
15597         }
15598       }
15599       container protocol-l2tpv3 {
15600         tailf:cli-drop-node-name;
15601         when "../../encapsulation = 'l2tpv3'";
15602         leaf protocol {
15603           tailf:info "Signaling protocol to use";
15604           description
15605             "Signaling protocol to use";
15606           type enumeration {
15607             enum "l2tpv3" {
15608               tailf:info "Use L2TPv3 signaling";
15609             }
15610             enum "l2tpv3ietf" {
15611               tailf:info "Use L2TPv3 ietf signaling";
15612             }
15613             enum "none" {
15614               tailf:info "No signaling, use manually configured sessions";
15615             }
15616           }
15617         }
15618       }
15619     }
15620     container source {
15621       tailf:info "Get config from another source";
15622       description
15623         "Get config from another source";
15624       container template {
15625         tailf:info "Get config from a template";
15626         description
15627           "Get config from a template";
15628         container type {
15629           tailf:info "Type of the template";
15630           description
15631             "Type of the template";
15632           leaf pseudowire {
15633             tailf:info "Template customized interface pseudowire";
15634             description
15635               "Template customized interface pseudowire";
15636             type string {
15637               tailf:info "WORD;;Template name";
15638             }
15639           }
15640         }
15641       }
15642     }
15643     container vc {
15644       tailf:info "Virtual Circuit options";
15645       description
15646         "Virtual Circuit options";
15647       when "../encapsulation = 'mpls'";
15648       leaf type {
15649         tailf:info "Virtual Circuit type to use";
15650         description
15651           "Virtual Circuit type to use";
15652         type enumeration {
15653           enum "ethernet" {
15654             tailf:info "Ethernet (type 5)";
15655           }
15656           enum "vlan" {
15657             tailf:info "VLAN (type 4)";
15658           }
15659         }
15660       }
15661     }
15662   }
15663
15664   grouping otv-isis-authentication-grouping {
15665     container authentication {
15666       tailf:info "ISIS authentication for interface related PDUs";
15667       description
15668         "ISIS authentication for interface related PDUs";
15669       leaf key-chain {
15670         tailf:info "Authentication key-chain";
15671         description
15672           "Authentication key-chain";
15673         type string {
15674           tailf:info "WORD;;Name of key-chain";
15675         }
15676       }
15677       leaf mode {
15678         tailf:info "Authentication mode for PDUs";
15679         description
15680           "Authentication mode for PDUs";
15681         type enumeration {
15682           enum "md5" {
15683             tailf:info "Keyed message digest";
15684           }
15685           enum "text" {
15686             tailf:info "Clear text password";
15687           }
15688         }
15689       }
15690       leaf send-only {
15691         tailf:info "Authentication send only, receive ignore";
15692         description
15693           "Authentication send only, receive ignore";
15694         type empty;
15695       }
15696     }
15697   }
15698
15699   grouping otv-isis-hostname-grouping {
15700     container hostname {
15701       tailf:info "Dynamic hostname for IS-IS";
15702       description
15703         "Dynamic hostname for IS-IS";
15704       leaf dynamic {
15705         tailf:info "Dynamic hostname";
15706         description
15707           "Dynamic hostname";
15708         type empty;
15709       }
15710     }
15711   }
15712
15713   grouping otv-isis-skeptical-grouping {
15714     container skeptical {
15715       tailf:info "Be a cautious NSF helper when refresh adjacency";
15716       description
15717         "Be a cautious NSF helper when refresh adjacency";
15718       leaf interval {
15719         tailf:info "Interval during which holdtime will NOT be refreshed";
15720         description
15721           "Interval during which holdtime will NOT be refreshed";
15722         type uint32 {
15723           tailf:info "<0-1440>;;Minutes";
15724           range "0..1440";
15725         }
15726       }
15727     }
15728   }
15729
15730   grouping otv-isis-log-adjacency-changes-grouping {
15731     container log-adjacency-changes {
15732       tailf:info "Log changes in adjacency state";
15733       description
15734         "Log changes in adjacency state";
15735       presence "true";
15736       leaf all {
15737         tailf:info "Include changes generated by non-IIH event";
15738         description
15739           "Include changes generated by non-IIH event";
15740         type empty;
15741       }
15742     }
15743   }
15744
15745   grouping otv-isis-site-grouping {
15746     container default {
15747       tailf:info "Set a command to its defaults";
15748       description
15749         "Set a command to its defaults";
15750       leaf log-adjacency-changes {
15751         tailf:info "Log changes in adjacency state";
15752         description
15753           "Log changes in adjacency state";
15754         type empty;
15755       }
15756       leaf net {
15757         tailf:info "A Network Entity Title for this process";
15758         description
15759           "A Network Entity Title for this process";
15760         type empty;
15761       }
15762       container skeptical {
15763         tailf:info "Be a cautious NSF helper when refresh adjacency";
15764         description
15765           "Be a cautious NSF helper when refresh adjacency";
15766         leaf interval {
15767           tailf:info "Interval during which holdtime will NOT be refreshed";
15768           description
15769             "Interval during which holdtime will NOT be refreshed";
15770           type empty;
15771         }
15772       }
15773     }
15774     uses otv-isis-log-adjacency-changes-grouping;
15775     leaf net {
15776       tailf:info "A Network Entity Title for this process";
15777       description
15778         "A Network Entity Title for this process";
15779       type string {
15780         tailf:info "XX.XXXX. ... .XXX.XX;;Network entity title (NET)";
15781       }
15782     }
15783     uses otv-isis-skeptical-grouping;
15784   }
15785
15786   grouping otv-isis-overlay-grouping {
15787     uses otv-isis-authentication-grouping;
15788     container default {
15789       tailf:info "Set a command to its defaults";
15790       description
15791         "Set a command to its defaults";
15792       uses otv-isis-authentication-grouping;
15793       uses otv-isis-hostname-grouping;
15794       leaf delayed-deletion-interval {
15795         tailf:info "Set delayed deletion interval";
15796         description
15797           "Set delayed deletion interval";
15798         type empty;
15799       }
15800       leaf log-adjacency-changes {
15801         tailf:info "Log changes in adjacency state";
15802         description
15803           "Log changes in adjacency state";
15804         type empty;
15805       }
15806       leaf lsp-gen-interval {
15807         tailf:info "Minimum interval between regenerating same LSP";
15808         description
15809           "Minimum interval between regenerating same LSP";
15810         type empty;
15811       }
15812       leaf lsp-mtu {
15813         tailf:info "Set maximum LSP size";
15814         description
15815           "Set maximum LSP size";
15816         type empty;
15817       }
15818       leaf lsp-refresh-interval {
15819         tailf:info "Set LSP refresh interval";
15820         description
15821           "Set LSP refresh interval";
15822         type empty;
15823       }
15824       leaf max-lsp-lifetime {
15825         tailf:info "Set maximum LSP lifetime";
15826         description
15827           "Set maximum LSP lifetime";
15828         type empty;
15829       }
15830       leaf prc-interval {
15831         tailf:info "Minimum interval between partial route calculations";
15832         description
15833           "Minimum interval between partial route calculations";
15834         type empty;
15835       }
15836       leaf spf-interval {
15837         tailf:info "Minimum interval between SPF calculations";
15838         description
15839           "Minimum interval between SPF calculations";
15840         type empty;
15841       }
15842       container nsf {
15843         tailf:info "Non-stop forwarding";
15844         description
15845           "Non-stop forwarding";
15846         leaf cisco {
15847           tailf:info "Checkpoint method";
15848           description
15849             "Checkpoint method";
15850           type empty;
15851         }
15852         leaf interval {
15853           tailf:info "Minimum required stable interval between restarts";
15854           description
15855             "Minimum required stable interval between restarts";
15856           type empty;
15857         }
15858       }
15859       container skeptical {
15860         tailf:info "Be a cautious NSF helper when refresh adjacency";
15861         description
15862           "Be a cautious NSF helper when refresh adjacency";
15863         leaf interval {
15864           tailf:info "Interval during which holdtime will NOT be refreshed";
15865           description
15866             "Interval during which holdtime will NOT be refreshed";
15867           type empty;
15868         }
15869       }
15870     }
15871     leaf delayed-deletion-interval {
15872       tailf:info "Set delayed deletion interval";
15873       description
15874         "Set delayed deletion interval";
15875       type uint32 {
15876         tailf:info "<1-86400>;;delayed deletion interval in seconds";
15877         range "1..86400";
15878       }
15879     }
15880     uses otv-isis-hostname-grouping;
15881     uses otv-isis-log-adjacency-changes-grouping;
15882     container lsp-gen-interval {
15883       tailf:info "Minimum interval between regenerating same LSP";
15884       description
15885         "Minimum interval between regenerating same LSP";
15886       tailf:cli-sequence-commands;
15887       tailf:cli-compact-syntax;
15888       leaf seconds {
15889         tailf:cli-drop-node-name;
15890         type uint8 {
15891           tailf:info "<1-120>;;Interval in seconds";
15892           range "1..120";
15893         }
15894       }
15895       leaf milliseconds {
15896         tailf:cli-drop-node-name;
15897         tailf:cli-optional-in-sequence;
15898         type uint32 {
15899           tailf:info "<1-120000>;;Initial wait in milliseconds";
15900           range "1..120000";
15901         }
15902       }
15903       leaf wait {
15904         tailf:cli-drop-node-name;
15905         tailf:cli-optional-in-sequence;
15906         type uint32 {
15907           tailf:info "<1-120000>;;Wait between first and second lsp generation in milliseconds";
15908           range "1..120000";
15909         }
15910       }
15911     }
15912     leaf lsp-mtu {
15913       tailf:info "Set maximum LSP size";
15914       description
15915         "Set maximum LSP size";
15916       type uint32 {
15917         tailf:info "<128-4352>;;Max LSP size in bytes";
15918         range "128..4352";
15919       }
15920     }
15921     leaf lsp-refresh-interval {
15922       tailf:info "Set LSP refresh interval";
15923       description
15924         "Set LSP refresh interval";
15925       type uint32 {
15926         tailf:info "<1-65535>;;LSP refresh time in seconds";
15927         range "1..65535";
15928       }
15929     }
15930     leaf max-lsp-lifetime {
15931       tailf:info "Set maximum LSP lifetime";
15932       description
15933         "Set maximum LSP lifetime";
15934       type uint32 {
15935         tailf:info " <1-65535>;;Maximum LSP lifetime in seconds";
15936         range "1..65535";
15937       }
15938     }
15939     container nsf {
15940       tailf:info "Non-stop forwarding";
15941       description
15942         "Non-stop forwarding";
15943       leaf cisco {
15944         tailf:info "Checkpoint method";
15945         description
15946           "Checkpoint method";
15947         type empty;
15948       }
15949       leaf interval {
15950         tailf:info "Minimum required stable interval between restarts";
15951         description
15952           "Minimum required stable interval between restarts";
15953         type uint32 {
15954           tailf:info "<0-1440>;;Minutes";
15955           range "0..1440";
15956         }
15957       }
15958     }
15959     container prc-interval {
15960       tailf:info "Minimum interval between partial route calculations";
15961       description
15962         "Minimum interval between partial route calculations";
15963       tailf:cli-sequence-commands;
15964       tailf:cli-compact-syntax;
15965       leaf seconds {
15966         tailf:cli-drop-node-name;
15967         type uint8 {
15968           tailf:info "<1-120>;;PRC in seconds";
15969           range "1..120";
15970         }
15971       }
15972       leaf milliseconds {
15973         tailf:cli-drop-node-name;
15974         tailf:cli-optional-in-sequence;
15975         type uint32 {
15976           tailf:info "<1-120000>;;Initial wait for PRC in  milliseconds";
15977           range "1..120000";
15978         }
15979       }
15980       leaf wait {
15981         tailf:cli-drop-node-name;
15982         tailf:cli-optional-in-sequence;
15983         type uint32 {
15984           tailf:info "<1-120000>;;Minimum wait between first and second PRC in milliseconds";
15985           range "1..120000";
15986         }
15987       }
15988     }
15989     uses otv-isis-skeptical-grouping;
15990     container spf-interval {
15991       tailf:info "Minimum interval between SPF calculations";
15992       description
15993         "Minimum interval between SPF calculations";
15994       tailf:cli-sequence-commands;
15995       tailf:cli-compact-syntax;
15996       leaf seconds {
15997         tailf:cli-drop-node-name;
15998         type uint8 {
15999           tailf:info "<1-120>;;Interval between consecutive SPFs in seconds";
16000           range "1..120";
16001         }
16002       }
16003       leaf milliseconds {
16004         tailf:cli-drop-node-name;
16005         tailf:cli-optional-in-sequence;
16006         type uint32 {
16007           tailf:info "<1-120000>;;Initial wait before first SPF in milliseconds";
16008           range "1..120000";
16009         }
16010       }
16011       leaf wait {
16012         tailf:cli-drop-node-name;
16013         tailf:cli-optional-in-sequence;
16014         type uint32 {
16015           tailf:info "<1-120000>;;Minimum wait between first and second SPF in milliseconds";
16016           range "1..120000";
16017         }
16018       }
16019     }
16020   }
16021
16022   grouping otv-isis-grouping {
16023     container isis {
16024       tailf:info "ISIS interface subcommands";
16025       description
16026         "ISIS interface subcommands";
16027       uses otv-isis-authentication-grouping;
16028       leaf bfd {
16029         tailf:info "Bidirectional Forwarding Protocol";
16030         description
16031           "Bidirectional Forwarding Protocol";
16032         type empty;
16033       }
16034       container hello {
16035         tailf:info "Add padding to IS-IS hello packets";
16036         description
16037           "Add padding to IS-IS hello packets";
16038         container padding {
16039           tailf:info "Pad hello packets";
16040           description
16041             "Pad hello packets";
16042           presence "true";
16043           leaf always {
16044             tailf:info "Never pad hello packets if no prefix present";
16045             description
16046               "Never pad hello packets if no prefix present";
16047             type empty;
16048           }
16049         }
16050       }
16051       container hello-interval {
16052         tailf:info "Set Hello interval in seconds";
16053         description
16054           "Set Hello interval in seconds";
16055         leaf value {
16056           tailf:cli-drop-node-name;
16057           type uint16 {
16058             tailf:info "<1-65535>;;Hello interval value";
16059             range "1..65535";
16060           }
16061         }
16062         leaf minimal {
16063           tailf:info "Holdtime 1 second, interval depends on multiplier";
16064           description
16065             "Holdtime 1 second, interval depends on multiplier";
16066           type empty;
16067         }
16068       }
16069       leaf hello-multiplier {
16070         tailf:info "Set multiplier for Hello holding time";
16071         description
16072           "Set multiplier for Hello holding time";
16073         type uint16 {
16074           tailf:info "<3-1000>;;Hello multiplier value";
16075           range "3..1000";
16076         }
16077       }
16078       leaf priority {
16079         tailf:info "Set priority for Designated Router election";
16080         description
16081           "Set priority for Designated Router election";
16082         type uint8 {
16083           tailf:info "<0-127>;;Priority value";
16084           range "0..127";
16085         }
16086       }
16087     }
16088   }
16089
16090   grouping interface-overlay-grouping {
16091     container otv {
16092       tailf:info "Configure OTV information";
16093       description
16094         "Configure OTV information";
16095       container adjacency-server {
16096         tailf:info "Indicate if the box is an Adjacency Server";
16097         description
16098           "Indicate if the box is an Adjacency Server";
16099         leaf unicast-only {
16100           tailf:info "Unicast Only";
16101           description
16102             "Unicast Only";
16103           type empty;
16104         }
16105       }
16106       leaf control-group {
16107         tailf:info "OTV VPN control multicast group";
16108         description
16109           "OTV VPN control multicast group";
16110         type inet:ipv4-address {
16111           tailf:info "A.B.C.D;;OTV VPN External Multicast Group IPv4 Address";
16112         }
16113       }
16114       leaf data-group {
16115         tailf:info "Multicast group range for data";
16116         description
16117           "Multicast group range for data";
16118         type ios:ipv4-prefix {
16119           tailf:info "A.B.C.D/nn;;IPv4 group range prefixes";
16120         }
16121       }
16122       container encapsulation-format {
16123         tailf:info "Encapsulation format";
16124         description
16125           "Encapsulation format";
16126         container ip {
16127           tailf:info "Use IP for outer header encapsulation";
16128           description
16129             "Use IP for outer header encapsulation";
16130           leaf gre {
16131             tailf:info "Use GRE middle header encapsulation";
16132             description
16133               "Use GRE middle header encapsulation";
16134             type empty;
16135           }
16136         }
16137       }
16138       leaf filter-fhrp {
16139         tailf:info "Configure to not forward HSRP, GLBP, and VRRP packets on overlay";
16140         description
16141           "Configure to not forward HSRP, GLBP, and VRRP packets on overlay";
16142         type empty;
16143       }
16144       container isis {
16145         tailf:info "ISIS interface subcommands";
16146         description
16147           "ISIS interface subcommands";
16148         uses otv-isis-authentication-grouping;
16149         leaf bfd {
16150           tailf:info "Bidirectional Forwarding Protocol";
16151           description
16152             "Bidirectional Forwarding Protocol";
16153           type empty;
16154         }
16155         leaf csnp-interval {
16156           tailf:info "Set CSNP interval in seconds";
16157           description
16158             "Set CSNP interval in seconds";
16159           type uint16 {
16160             tailf:info "<0-65535>;;CSNP interval value";
16161             range "0..65535";
16162           }
16163         }
16164         container hello {
16165           tailf:info "Add padding to IS-IS hello packets";
16166           description
16167             "Add padding to IS-IS hello packets";
16168           container padding {
16169             tailf:info "Pad hello packets";
16170             description
16171               "Pad hello packets";
16172             presence "true";
16173             leaf always {
16174               tailf:info "Never pad hello packets if no prefix present";
16175               description
16176                 "Never pad hello packets if no prefix present";
16177               type empty;
16178             }
16179           }
16180         }
16181         container hello-interval {
16182           tailf:info "Set Hello interval in seconds";
16183           description
16184             "Set Hello interval in seconds";
16185           leaf value {
16186             tailf:cli-drop-node-name;
16187             type uint16 {
16188               tailf:info "<1-65535>;;Hello interval value";
16189               range "1..65535";
16190             }
16191           }
16192           leaf minimal {
16193             tailf:info "Holdtime 1 second, interval depends on multiplier";
16194             description
16195               "Holdtime 1 second, interval depends on multiplier";
16196             type empty;
16197           }
16198         }
16199         leaf hello-multiplier {
16200           tailf:info "Set multiplier for Hello holding time";
16201           description
16202             "Set multiplier for Hello holding time";
16203           type uint16 {
16204             tailf:info "<3-1000>;;Hello multiplier value";
16205             range "3..1000";
16206           }
16207         }
16208         leaf lsp-interval {
16209           tailf:info "Set LSP transmission interval";
16210           description
16211             "Set LSP transmission interval";
16212           type uint64 {
16213             tailf:info "<1-4294967295>;;LSP transmission interval (milliseconds)";
16214             range "1..4294967295";
16215           }
16216         }
16217         container metric {
16218           tailf:info "Configure the metric for interface";
16219           description
16220             "Configure the metric for interface";
16221           tailf:cli-sequence-commands;
16222           tailf:cli-compact-syntax;
16223           choice default-maximum {
16224             case default-case {
16225               leaf default {
16226                 tailf:cli-drop-node-name;
16227                 type uint32 {
16228                   tailf:info "<1-16777214>;;Default metric";
16229                   range "1..16777214";
16230                 }
16231               }
16232             }
16233             case maximum-case {
16234               leaf maximum {
16235                 tailf:info "Maximum metric. All routers will exclude this link from their SPF";
16236                 description
16237                   "Maximum metric. All routers will exclude this link from their SPF";
16238                 type empty;
16239               }
16240             }
16241           }
16242           leaf delay {
16243             tailf:cli-drop-node-name;
16244             tailf:cli-optional-in-sequence;
16245             type uint32 {
16246               tailf:info "<1-16777214>;;Delay metric";
16247               range "1..16777214";
16248             }
16249           }
16250           leaf expense {
16251             tailf:cli-drop-node-name;
16252             tailf:cli-optional-in-sequence;
16253             type uint32 {
16254               tailf:info "<1-16777214>;;Expense metric";
16255               range "1..16777214";
16256             }
16257           }
16258           leaf error {
16259             tailf:cli-drop-node-name;
16260             tailf:cli-optional-in-sequence;
16261             type uint32 {
16262               tailf:info "<1-16777214>;;Error metric";
16263               range "1..16777214";
16264             }
16265           }
16266         }
16267         leaf priority {
16268           tailf:info "Set priority for Designated Router election";
16269           description
16270             "Set priority for Designated Router election";
16271           type uint8 {
16272             tailf:info "<0-127>;;Priority value";
16273             range "0..127";
16274           }
16275         }
16276         leaf retransmit-interval {
16277           tailf:info "Set per-LSP retransmission interval";
16278           description
16279             "Set per-LSP retransmission interval";
16280           type uint16 {
16281             tailf:info "<0-65535>;;Interval between retransmissions of the same LSP (seconds)";
16282           }
16283         }
16284         leaf retransmit-throttle-interval {
16285           tailf:info "Set interface LSP retransmission interval";
16286           description
16287             "Set interface LSP retransmission interval";
16288           type uint16 {
16289             tailf:info "<0-65535>;;Delay between retransmitted LSPs (milliseconds)";
16290           }
16291         }
16292       }
16293       container join-interface {
16294         tailf:info "OTV VPN join-interface";
16295         description
16296           "OTV VPN join-interface";
16297         uses interface-grouping;
16298       }
16299       container suppress {
16300         tailf:info "Enable overlay packet suppression";
16301         description
16302           "Enable overlay packet suppression";
16303         leaf arp-nd {
16304           tailf:info "Suppress sending ARP and neighbor discovery packets on overlay";
16305           description
16306             "Suppress sending ARP and neighbor discovery packets on overlay";
16307           type empty;
16308         }
16309       }
16310       container use-adjacency-server {
16311         tailf:info "Point to remote Adjacency Server address";
16312         description
16313           "Point to remote Adjacency Server address";
16314         tailf:cli-compact-syntax;
16315         tailf:cli-sequence-commands {
16316           tailf:cli-reset-siblings;
16317         }
16318         leaf remote-pri-ip {
16319           tailf:cli-drop-node-name;
16320           tailf:cli-incomplete-command;
16321           type inet:ipv4-address {
16322             tailf:info "A.B.C.D;;Remote Primary AS IPv4 address";
16323           }
16324         }
16325         leaf remote-sec-ip {
16326           tailf:cli-drop-node-name;
16327           tailf:cli-break-sequence-commands;
16328           type inet:ipv4-address {
16329             tailf:info "A.B.C.D;;Remote Secondary AS IPv4 address";
16330           }
16331         }
16332         leaf unicast-only {
16333           tailf:info "Unicast Only Capability";
16334           description
16335             "Unicast Only Capability";
16336           tailf:cli-full-command;
16337           type empty;
16338         }
16339       }
16340       leaf vpn-name {
16341         tailf:info "OTV VPN name";
16342         description
16343           "OTV VPN name";
16344         type string {
16345           tailf:info "WORD;;OTV VPN Name";
16346         }
16347       }
16348     }
16349   }
16350
16351   grouping crypto-pki-token-grouping {
16352     container removal {
16353       tailf:info "actions to take after token removal";
16354       description
16355         "actions to take after token removal";
16356       leaf timeout {
16357         tailf:info "seconds after token removal at which keys from the token are cleared";
16358         description
16359           "seconds after token removal at which keys from the token are cleared";
16360         type uint16 {
16361           tailf:info "<0-480>;;Token key timeout in seconds";
16362           range "0..480";
16363         }
16364       }
16365     }
16366   }
16367
16368   grouping max-path-grouping {
16369     container max-path {
16370       tailf:cli-drop-node-name;
16371       tailf:cli-compact-syntax;
16372       tailf:cli-sequence-commands {
16373         tailf:cli-reset-siblings;
16374       }
16375       tailf:display-when "../../../ipv4 or ../../ipv4 or ../../../ipv6 or ../../ipv6  or ../../../nsap or ../../nsap  or ../../../vpnv4 or ../../vpnv4";
16376       leaf max {
16377         tailf:cli-drop-node-name;
16378         type uint16 {
16379           range "1..32";
16380           tailf:info "<1-32>;;Number of paths";
16381         }
16382         default "1";
16383       }
16384     }
16385     container external-rtfilter {
16386       tailf:info "VPN prefix multipath on external RTFilter peers";
16387       description
16388         "VPN prefix multipath on external RTFilter peers";
16389       tailf:cli-compact-syntax;
16390       tailf:cli-sequence-commands {
16391         tailf:cli-reset-siblings;
16392       }
16393       tailf:display-when "../../../rtfilter";
16394       leaf max {
16395         tailf:cli-drop-node-name;
16396         type uint16 {
16397           range "1..32";
16398           tailf:info "<1-32>;;Number of paths";
16399         }
16400         default "1";
16401       }
16402     }
16403   }
16404
16405   grouping metric-route-map-grouping {
16406     leaf metric {
16407       tailf:cli-break-sequence-commands;
16408       tailf:info "Metric for redistributed routes";
16409       description
16410         "Metric for redistributed routes";
16411       type uint32 {
16412         range "0..4294967295";
16413         tailf:info "<0-4294967295>;;Default metric";
16414       }
16415     }
16416     leaf route-map {
16417       tailf:info "Route map reference";
16418       description
16419         "Route map reference";
16420       type string {
16421         tailf:info "WORD;;Pointer to route-map entries";
16422       }
16423     }
16424   }
16425
16426   grouping route-map-metric-grouping {
16427     leaf route-map {
16428       tailf:info "Route map reference";
16429       description
16430         "Route map reference";
16431       type string {
16432         tailf:info "WORD;;Pointer to route-map entries";
16433       }
16434     }
16435     leaf metric {
16436       tailf:info "Metric for redistributed routes";
16437       description
16438         "Metric for redistributed routes";
16439       type uint32 {
16440         range "0..4294967295";
16441         tailf:info "<0-4294967295>;;Default metric";
16442       }
16443     }
16444   }
16445
16446   grouping redistribute-isis-grouping {
16447     choice osi-ip-choice {
16448       leaf ip {
16449         tailf:info "Redistribution of IP dynamic routes";
16450         description
16451           "Redistribution of IP dynamic routes";
16452         type empty;
16453       }
16454       leaf clns {
16455         tailf:info "Redistribution of OSI dynamic routes";
16456         description
16457           "Redistribution of OSI dynamic routes";
16458         type empty;
16459       }
16460     }
16461     leaf routes {
16462       tailf:cli-drop-node-name;
16463       type enumeration {
16464         enum "level-1" {
16465           tailf:info "IS-IS level-1 routes only";
16466         }
16467         enum "level-2" {
16468           tailf:info "IS-IS level-2 routes only";
16469         }
16470         enum "level-1-2" {
16471           tailf:info "IS-IS level-1 and level-2 routes";
16472         }
16473       }
16474     }
16475     uses metric-route-map-grouping;
16476   }
16477
16478   grouping bgp-address-family-grouping {
16479     container aggregate-address {
16480       tailf:info "Configure BGP aggregate entries";
16481       description
16482         "Configure BGP aggregate entries";
16483       tailf:cli-compact-syntax;
16484       tailf:cli-sequence-commands {
16485         tailf:cli-reset-all-siblings;
16486       }
16487       tailf:display-when "../../ipv4 or ../ipv4 or ipv4  or ipv6 or ../../ipv6 or ../ipv6";
16488       leaf address {
16489         tailf:cli-drop-node-name;
16490         type inet:ipv4-address {
16491           tailf:info "A.B.C.D;;Aggregate address";
16492         }
16493       }
16494       leaf mask {
16495         tailf:cli-drop-node-name;
16496         type inet:ipv4-address {
16497           tailf:info "A.B.C.D;;Aggregate mask";
16498         }
16499       }
16500       leaf advertise-map {
16501         tailf:cli-break-sequence-commands;
16502         tailf:info "Set condition to advertise attribute";
16503         description
16504           "Set condition to advertise attribute";
16505         type string {
16506           tailf:info "WORD;;Route map to control attribute advertisement";
16507         }
16508       }
16509       leaf as-set {
16510         tailf:info "Generate AS set path information";
16511         description
16512           "Generate AS set path information";
16513         type empty;
16514       }
16515       leaf attribute-map {
16516         type string {
16517           tailf:info "WORD;;Route map for parameter control";
16518         }
16519       }
16520       leaf as-override {
16521         tailf:info "Override matching AS-number while sending update";
16522         description
16523           "Override matching AS-number while sending update";
16524         type empty;
16525       }
16526       leaf route-map {
16527         type string {
16528           tailf:info "WORD;;Route map for parameter control";
16529         }
16530       }
16531       leaf summary-only {
16532         tailf:info "Filter more specific routes from updates";
16533         description
16534           "Filter more specific routes from updates";
16535         type empty;
16536       }
16537       leaf suppress-map {
16538         tailf:info "Conditionally filter more specific routes from updates";
16539         description
16540           "Conditionally filter more specific routes from updates";
16541         type string {
16542           tailf:info "WORD;;Route map for suppression";
16543         }
16544       }
16545     }
16546     container bgp {
16547       tailf:info "BGP specific commands";
16548       description
16549         "BGP specific commands";
16550       leaf router-id {
16551         tailf:cli-full-command;
16552         tailf:info "Override configured router identifier (peers will reset)";
16553         description
16554           "Override configured router identifier (peers will reset)";
16555         type inet:ipv4-address {
16556           tailf:info "A.B.C.D;;Manually configured router identifier";
16557         }
16558       }
16559       leaf always-compare-med {
16560         tailf:info "Allow comparing MED from different neighbors";
16561         description
16562           "Allow comparing MED from different neighbors";
16563         tailf:cli-full-command;
16564         type empty;
16565       }
16566       leaf aggregate-timer {
16567         tailf:info "Configure Aggregation Timer";
16568         description
16569           "Timer interval";
16570         type uint8 {
16571           range "6..60";
16572         }
16573       }
16574       container nopeerup-delay {
16575         tailf:info "Set how long BGP will wait for the first peer to come up before beginning the update delay or graceful restart timers (in seconds)";
16576         description
16577           "Set how long BGP will wait for the first peer to come up before beginning the update delay or graceful restart timers (in seconds)";
16578         leaf cold-boot {
16579           tailf:info "How long to wait for the first peer to come up upon a cold boot";
16580           description
16581             "Delay in seconds";
16582           type uint16 {
16583             range "1..3600";
16584           }
16585         }
16586         leaf nsf-switchover {
16587           tailf:info "How long to wait for the first peer, post NSF switchover";
16588           description
16589             "Delay in seconds";
16590           type uint16 {
16591             range "1..3600";
16592           }
16593         }
16594         leaf post-boot {
16595           tailf:info "How long to wait for the first peer to come up once the system is already booted and all peers go down";
16596           description
16597             "Delay in seconds";
16598           type uint16 {
16599             range "1..3600";
16600           }
16601         }
16602         leaf user-initiated {
16603           tailf:info "How long to wait for the first peer, post a manual clear of BGP peers by the admin user";
16604           description
16605             "Delay in seconds";
16606           type uint16 {
16607             range "1..3600";
16608           }
16609         }
16610       }
16611       container recursion {
16612         tailf:info "recursion rule for the nexthops";
16613         description
16614           "recursion rule for the nexthops";
16615         leaf host {
16616           tailf:info "recursion via host for the nexthops";
16617           description
16618             "recursion via host for the nexthops";
16619           type empty;
16620         }
16621       }
16622       leaf advertise-best-external {
16623         tailf:info "Advertise best external path to internal peers";
16624         description
16625           "Advertise best external path to internal peers";
16626         type empty;
16627       }
16628       container additional-paths {
16629         tailf:info "Additional paths in the BGP table";
16630         description
16631           "Additional paths in the BGP table";
16632         leaf install {
16633           tailf:info "Additional paths to install into RIB";
16634           description
16635             "Additional paths to install into RIB";
16636           type empty;
16637         }
16638         leaf receive {
16639           tailf:info "Receive additional paths from neighbors";
16640           description
16641             "Receive additional paths from neighbors";
16642           type empty;
16643         }
16644         container select {
16645           tailf:info "Selection criteria to pick the paths";
16646           description
16647             "Selection criteria to pick the paths";
16648           container all {
16649             tailf:info "Select all available paths";
16650             description
16651               "Select all available paths";
16652             presence "true";
16653             container best {
16654               tailf:info "Select best N paths";
16655               description
16656                 "Select best N paths";
16657               list range {
16658                 tailf:cli-drop-node-name;
16659                 tailf:cli-suppress-mode;
16660                 key "range";
16661                 leaf range {
16662                   tailf:info "Number of best paths in additional paths to be selected";
16663                   description
16664                     "Number of best paths in additional paths to be selected";
16665                   type uint8 {
16666                     range "2..3";
16667                   }
16668                 }
16669                 leaf group-best {
16670                   tailf:info "Select group-best path";
16671                   description
16672                     "Select group-best path";
16673                   type empty;
16674                 }
16675               }
16676             }
16677             container group-best {
16678               tailf:info "Select group-best path";
16679               description
16680                 "Select group-best path";
16681               presence "true";
16682               leaf best {
16683                 tailf:info "Select best N paths";
16684                 description
16685                   "Number of best paths in additional paths to be selected";
16686                 type uint8 {
16687                   range "2..3";
16688                 }
16689               }
16690             }
16691           }
16692           container backup {
16693             tailf:info "Select backup path";
16694             description
16695               "Select backup path";
16696             presence "true";
16697             leaf best-external {
16698               tailf:info "Select best-external path";
16699               description
16700                 "Select best-external path";
16701               type empty;
16702             }
16703           }
16704           container best {
16705             tailf:info "Select best N paths";
16706             description
16707               "Select best N paths";
16708             list best-paths {
16709               tailf:cli-drop-node-name;
16710               tailf:cli-suppress-mode;
16711               key "best-paths";
16712               leaf best-paths {
16713                 tailf:info "Number of best paths in additional paths to be selected";
16714                 description
16715                   "Number of best paths in additional paths to be selected";
16716                 type uint8 {
16717                   range "2..3";
16718                 }
16719               }
16720               leaf all {
16721                 tailf:info "Select all available paths";
16722                 description
16723                   "Select all available paths";
16724                 type empty;
16725               }
16726               container group-best {
16727                 tailf:info "Select group-best path";
16728                 description
16729                   "Select group-best path";
16730                 presence "true";
16731                 leaf all {
16732                   tailf:info "Select all available paths";
16733                   description
16734                     "Select all available paths";
16735                   type empty;
16736                 }
16737               }
16738             }
16739           }
16740           container best-external {
16741             tailf:info "Select best-external path";
16742             description
16743               "Select best-external path";
16744             presence "true";
16745             leaf backup {
16746               tailf:info "Select backup path";
16747               description
16748                 "Select backup path";
16749               type empty;
16750             }
16751           }
16752           container group-best {
16753             tailf:info "Select group-best path";
16754             description
16755               "Select group-best path";
16756             presence "true";
16757             leaf all {
16758               tailf:info "Select all available paths";
16759               description
16760                 "Select all available paths";
16761               type empty;
16762             }
16763             leaf best {
16764               tailf:info "Select best N paths";
16765               description
16766                 "Number of best paths in additional paths to be selected";
16767               type uint8 {
16768                 range "2..3";
16769               }
16770             }
16771           }
16772         }
16773         container send {
16774           tailf:info "Send additional paths to neighbors";
16775           description
16776             "Send additional paths to neighbors";
16777           presence "true";
16778           leaf receive {
16779             tailf:info "Receive additional paths from neighbors";
16780             description
16781               "Receive additional paths from neighbors";
16782             type empty;
16783           }
16784         }
16785       }
16786       container bestpath {
16787         tailf:info "Change the default bestpath selection";
16788         description
16789           "Change the default bestpath selection";
16790         leaf compare-routerid {
16791           tailf:cli-full-command;
16792           tailf:info "Compare router-id for identical EBGP paths";
16793           type empty;
16794         }
16795         container cost-community {
16796           tailf:info "cost community";
16797           description
16798             "cost community";
16799           leaf ignore {
16800             tailf:info "Ignore cost communities in bestpath selection";
16801             description
16802               "Ignore cost communities in bestpath selection";
16803             type empty;
16804           }
16805         }
16806         container med {
16807           tailf:info "MED attribute";
16808           description
16809             "MED attribute";
16810           choice med-choice {
16811             container confed {
16812               tailf:info "Compare MED among confederation paths";
16813               description
16814                 "Compare MED among confederation paths";
16815               presence "Compare MED among confederation paths";
16816               leaf missing-at-worst {
16817                 tailf:info "Treat missing MED as the least preferred one";
16818                 description
16819                   "Treat missing MED as the least preferred one";
16820                 type empty;
16821               }
16822             }
16823             leaf missing-at-worst {
16824               tailf:info "Treat missing MED as the least preferred one";
16825               description
16826                 "Treat missing MED as the least preferred one";
16827               type empty;
16828             }
16829           }
16830         }
16831       }
16832       container client-to-client {
16833         tailf:info "Configure client to client route reflection";
16834         description
16835           "Configure client to client route reflection";
16836         leaf reflection {
16837           tailf:info "reflection of routes allowed";
16838           description
16839             "reflection of routes allowed";
16840           type empty;
16841         }
16842       }
16843       leaf cluster-id {
16844         tailf:cli-full-command;
16845         type union {
16846           type uint32 {
16847             range "1..4294967295";
16848             tailf:info "<1-4294967295>;;Route-Reflector Cluster-id as 32 bit quantity";
16849           }
16850           type inet:ipv4-address {
16851             tailf:info "A.B.C.D;;Route-Reflector Cluster-id in IP address format";
16852           }
16853         }
16854       }
16855       container confederation {
16856         tailf:info "AS confederation parameters";
16857         description
16858           "AS confederation parameters";
16859         leaf identifier {
16860           tailf:cli-full-command;
16861           tailf:info "as number";
16862           type uint16 {
16863             range "1..65535";
16864             tailf:info "<1-65535>;;Set routing domain confederation AS";
16865           }
16866         }
16867         container peers {
16868           tailf:info "Peer ASs in BGP confederation";
16869           description
16870             "Peer ASs in BGP confederation";
16871           presence "Peer ASs in BGP confederation";
16872           leaf-list peers-as {
16873             tailf:cli-drop-node-name;
16874             tailf:cli-flat-list-syntax;
16875             type uint16 {
16876               range "1..65535";
16877               tailf:info "AS number";
16878             }
16879           }
16880         }
16881       }
16882       container consistency-checker {
16883         tailf:info "Consistency-checker";
16884         description
16885           "Consistency-checker";
16886         container auto-repair {
16887           tailf:info "Auto-Repair";
16888           description
16889             "Auto-Repair";
16890           presence "true";
16891           leaf interval {
16892             tailf:info "Set the bgp consistency checker";
16893             description
16894               "Interval (minutes)";
16895             type uint16 {
16896               range "5..1440";
16897             }
16898           }
16899         }
16900         container error-message {
16901           tailf:info "Log Error-Msg";
16902           description
16903             "Log Error-Msg";
16904           presence "true";
16905           leaf interval {
16906             tailf:info "Set the bgp consistency checker";
16907             description
16908               "Interval (minutes)";
16909             type uint16 {
16910               range "5..1440";
16911             }
16912           }
16913         }
16914       }
16915       container dampening {
16916         tailf:info "Enable route-flap dampening";
16917         description
16918           "Enable route-flap dampening";
16919         presence "enable bgp route-flap dampening";
16920         choice dampening-choice {
16921           leaf route-map {
16922             tailf:info "Route-map to specify criteria for dampening";
16923             description
16924               "Route-map to specify criteria for dampening";
16925             type string {
16926               tailf:info "WORD;;route-map name";
16927             }
16928           }
16929           container dampen {
16930             tailf:cli-drop-node-name;
16931             tailf:cli-compact-syntax;
16932             tailf:cli-sequence-commands;
16933             leaf half-life-time {
16934               tailf:cli-drop-node-name;
16935               tailf:cli-incomplete-command;
16936               type uint8 {
16937                 range "1 .. 45";
16938                 tailf:info "<1-45>;;Half-life time for the penalty";
16939               }
16940             }
16941             leaf reuse-time {
16942               tailf:cli-drop-node-name;
16943               tailf:cli-incomplete-command;
16944               type uint16 {
16945                 range "1 .. 20000";
16946                 tailf:info "<1-20000>;;Value to start reusing a route";
16947               }
16948             }
16949             leaf suppress-time {
16950               tailf:cli-drop-node-name;
16951               tailf:cli-incomplete-command;
16952               type uint16 {
16953                 range "1 .. 20000";
16954                 tailf:info "<1-20000>;;Value to start suppressing a route";
16955               }
16956             }
16957             leaf max-suppress-time {
16958               tailf:cli-drop-node-name;
16959               type uint8 {
16960                 range "1 .. 255";
16961                 tailf:info "<1-255>  Maximum duration to suppress a stable route";
16962               }
16963             }
16964           }
16965         }
16966       }
16967       container default {
16968         tailf:info "Configure BGP defaults";
16969         description
16970           "Configure BGP defaults";
16971         choice default-choice {
16972           leaf ipv4-unicast {
16973             tailf:info "Activate ipv4-unicast for a peer by default";
16974             description
16975               "Activate ipv4-unicast for a peer by default";
16976             tailf:cli-boolean-no;
16977             tailf:cli-trim-default;
16978             type boolean;
16979           }
16980           leaf ipv6-nexthop {
16981             tailf:info "Default IPv6 nexthop format";
16982             description
16983               "Default IPv6 nexthop format";
16984             type empty;
16985           }
16986           leaf local-preference {
16987             tailf:info "local preference (higher=more preferred)";
16988             description
16989               "local preference (higher=more preferred)";
16990             type uint32 {
16991               range "1..4294967295";
16992               tailf:info "<0-4294967295>;;Configure default local preference value";
16993             }
16994           }
16995           leaf route-target {
16996             tailf:info "Control behavior based on Route-Target attributes";
16997             description
16998               "Control behavior based on Route-Target attributes";
16999             type enumeration {
17000               enum "filter" {
17001                 tailf:info "Control automatic VPN Route-Target filtering";
17002               }
17003             }
17004           }
17005         }
17006       }
17007       leaf deterministic-med {
17008         tailf:cli-full-command;
17009         tailf:info "Pick the best-MED path among paths advertised from the neighboring AS";
17010         description
17011           "Pick the best-MED path among paths advertised from the neighboring AS";
17012         type empty;
17013       }
17014       leaf dmzlink-bw {
17015         tailf:cli-full-command;
17016         tailf:info "Use DMZ Link Bandwidth as weight for BGP multipaths";
17017         description
17018           "Use DMZ Link Bandwidth as weight for BGP multipaths";
17019         type empty;
17020       }
17021       leaf enforce-first-as {
17022         tailf:cli-full-command;
17023         tailf:info "Enforce the first AS for EBGP routes(default)";
17024         description
17025           "Enforce the first AS for EBGP routes(default)";
17026         type empty;
17027       }
17028       leaf enhanced-error {
17029         tailf:info "Enabled BGP Enhanced error handling";
17030         description
17031           "Enabled BGP Enhanced error handling";
17032         type empty;
17033       }
17034       leaf fast-external-fallover {
17035         tailf:cli-full-command;
17036         tailf:info "Immediately reset session if a link to a directly connected external peer goes down";
17037         description
17038           "Immediately reset session if a link to a directly connected external peer goes down";
17039         type empty;
17040       }
17041       container graceful-restart {
17042         tailf:info "Graceful restart capability parameters";
17043         description
17044           "Graceful restart capability parameters";
17045         presence "Graceful restart capability parameters";
17046         tailf:cli-display-separated;
17047         leaf extended {
17048           tailf:info "Enable Graceful-Restart Extension";
17049           type empty;
17050         }
17051         leaf restart-time {
17052           tailf:cli-full-command;
17053           tailf:info "Set the max time needed to restart and come back up";
17054           description
17055             "Set the max time needed to restart and come back up";
17056           type uint16 {
17057             range "1..3600";
17058             tailf:info "<1-3600>;;Delay value (seconds)";
17059           }
17060         }
17061         leaf stalepath-time {
17062           tailf:info "Set the max time to hold onto restarting peer's stale paths";
17063           description
17064             "Set the max time to hold onto restarting peer's stale paths";
17065           type uint16 {
17066             range "1..3600";
17067             tailf:info "<1-3600>;;Delay value (seconds)";
17068           }
17069         }
17070       }
17071       container ha-mode {
17072         tailf:info "Select BGP High Availability mode";
17073         description
17074           "Select BGP High Availability mode";
17075         container sso {
17076           tailf:info "BGP High Availability NSR sso mode";
17077           description
17078             "BGP High Availability NSR sso mode";
17079           presence "true";
17080           leaf prefer {
17081             tailf:info "Perfer BGP High Availability NSR sso mode";
17082             description
17083               "Perfer BGP High Availability NSR sso mode";
17084             type empty;
17085           }
17086         }
17087       }
17088       list inject-map {
17089         tailf:info "Routemap which specifies prefixes to inject";
17090         description
17091           "Routemap which specifies prefixes to inject";
17092         tailf:cli-compact-syntax;
17093         tailf:cli-sequence-commands;
17094         tailf:cli-incomplete-command;
17095         tailf:cli-delete-when-empty;
17096         key "name";
17097         leaf name {
17098           type string {
17099             tailf:info "WORD;;route-map name";
17100           }
17101         }
17102         leaf exist-map {
17103           tailf:info "Routemap which specifies exist condition";
17104           description
17105             "Routemap which specifies exist condition";
17106           type string {
17107             tailf:info "WORD;;route-map name";
17108           }
17109         }
17110         leaf copy-attributes {
17111           tailf:info "Copy attributes from aggregate";
17112           description
17113             "Copy attributes from aggregate";
17114           type empty;
17115         }
17116       }
17117       leaf log-neighbor-changes {
17118         tailf:info "Log neighbor up/down and reset reason";
17119         description
17120           "Log neighbor up/down and reset reason";
17121         tailf:cli-full-command;
17122         type empty;
17123       }
17124       leaf maxas-limit {
17125         tailf:info "Allow AS-PATH attribute from any neighbor imposing a limit on number of ASes";
17126         description
17127           "Allow AS-PATH attribute from any neighbor imposing a limit on number of ASes";
17128         tailf:cli-full-command;
17129         type uint16 {
17130           range "1..2000";
17131           tailf:info "<1-2000>;;Number of ASes in the AS-PATH attribute";
17132         }
17133       }
17134       leaf maxcommunity-limit {
17135         tailf:info "Allow COMMUNITY attribute from any neighbor imposing a limit on number of communities";
17136         description
17137           "Number of communities in the COMMUNITY attribute";
17138         type uint16 {
17139           range "1..1018";
17140         }
17141       }
17142       container router-map {
17143         tailf:info "bgp route-map commands";
17144         description
17145           "bgp route-map commands";
17146         leaf priority {
17147           tailf:info "Have route-map set commands take priority over BGP commands such ";
17148           description
17149             "Have route-map set commands take priority over BGP commands such ";
17150           type empty;
17151         }
17152       }
17153       container slow-peer {
17154         tailf:info "Configure slow-peer";
17155         description
17156           "Configure slow-peer";
17157         container detection {
17158           tailf:info "Slow-peer detection";
17159           description
17160             "Slow-peer detection";
17161           presence "true";
17162           leaf disable {
17163             tailf:info "Disable slow-peer detection";
17164             description
17165               "Disable slow-peer detection";
17166             type empty;
17167           }
17168           leaf threshold {
17169             tailf:info "Set the slow-peer detection threshold";
17170             description
17171               "Threshold value (seconds)";
17172             type uint16 {
17173               range "120..3600";
17174             }
17175           }
17176         }
17177         container split-update-group {
17178           tailf:info "Configure slow-peer split-update-group";
17179           description
17180             "Configure slow-peer split-update-group";
17181           container dynamic {
17182             tailf:info "Dynamically split the slow peer to slow-update group";
17183             description
17184               "Dynamically split the slow peer to slow-update group";
17185             presence "true";
17186             leaf permanent {
17187               tailf:info "Keep the slow-peer permanently in slow-update group";
17188               description
17189                 "Keep the slow-peer permanently in slow-update group";
17190               type empty;
17191             }
17192           }
17193         }
17194       }
17195       container update-group {
17196         tailf:info "Manage peers in bgp update groups";
17197         description
17198           "Manage peers in bgp update groups";
17199         container split {
17200           tailf:info "Split update groups based on Policy";
17201           description
17202             "Split update groups based on Policy";
17203           leaf as-override {
17204             tailf:info "Keep peers with as-override in different update groups";
17205             description
17206               "Keep peers with as-override in different update groups";
17207             type empty;
17208           }
17209         }
17210       }
17211       container nexthop {
17212         tailf:info "Nexthop tracking commands";
17213         description
17214           "Nexthop tracking commands";
17215         container trigger {
17216           tailf:info "Nexthop triggering";
17217           description
17218             "Nexthop triggering";
17219           leaf delay {
17220             tailf:cli-full-command;
17221             tailf:info "Set the delay to tigger nexthop tracking";
17222             description
17223               "Set the delay to tigger nexthop tracking";
17224             type uint8 {
17225               range "0..100";
17226               tailf:info "<0-100>;;Delay value (seconds)";
17227             }
17228           }
17229           leaf enable {
17230             tailf:info "Enable nexthop tracking";
17231             description
17232               "Enable nexthop tracking";
17233             tailf:cli-full-command;
17234             tailf:cli-boolean-no;
17235             type boolean;
17236           }
17237         }
17238         leaf route-map {
17239           tailf:info "Route map for valid nexthops";
17240           description
17241             "Route map for valid nexthops";
17242           type string {
17243             tailf:info "WORD;;Route map name";
17244           }
17245         }
17246       }
17247       leaf redistribute-internal {
17248         tailf:info "Allow redistribution of iBGP into IGPs (dangerous)";
17249         description
17250           "Allow redistribution of iBGP into IGPs (dangerous)";
17251         tailf:cli-full-command;
17252         type empty;
17253       }
17254       container regexp {
17255         tailf:info "Select regular expression engine";
17256         description
17257           "Select regular expression engine";
17258         leaf deterministic {
17259           tailf:info "Enable bounded-execution-time regular expression engine";
17260           description
17261             "Enable bounded-execution-time regular expression engine";
17262           type empty;
17263         }
17264       }
17265       leaf scan-time {
17266         tailf:cli-full-command;
17267         tailf:info "Configure background scanner interval";
17268         description
17269           "Configure background scanner interval";
17270         type uint8 {
17271           range "5..60";
17272           tailf:info "<5-60>;;Scanner interval (seconds)";
17273         }
17274       }
17275       leaf soft-reconfig-backup {
17276         tailf:info "Use soft-reconfiguration inbound only when route-refresh is not negotiated";
17277         description
17278           "Use soft-reconfiguration inbound only when route-refresh is not negotiated";
17279         tailf:cli-full-command;
17280         type empty;
17281       }
17282       leaf suppress-inactive {
17283         tailf:info "Suppress routes that are not in the routing table";
17284         description
17285           "Suppress routes that are not in the routing table";
17286         tailf:cli-full-command;
17287         type empty;
17288       }
17289       container transport {
17290         tailf:info "Transport options";
17291         description
17292           "Transport options";
17293         container path-mtu-discovery {
17294           tailf:info "Use transport path MTU discovery";
17295           description
17296             "Use transport path MTU discovery";
17297           presence "true";
17298           leaf disable {
17299             tailf:info "disable";
17300             description
17301               "disable";
17302             type empty;
17303           }
17304         }
17305       }
17306       leaf update-delay {
17307         tailf:cli-full-command;
17308         tailf:info "Set the max initial delay for sending update";
17309         description
17310           "Set the max initial delay for sending update";
17311         type uint16 {
17312           range "1..3600";
17313           tailf:info "<1-3600>;;Delay value (seconds)";
17314         }
17315       }
17316     }
17317     container default-information {
17318       tailf:info "Control distribution of default information";
17319       description
17320         "Control distribution of default information";
17321       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6  or nsap or ../../nsap or ../nsap";
17322       leaf originate {
17323         tailf:info "Distribute a default route";
17324         description
17325           "Distribute a default route";
17326         type empty;
17327       }
17328     }
17329     leaf default-metric {
17330       tailf:info "Set metric of redistributed routes";
17331       description
17332         "Set metric of redistributed routes";
17333       tailf:cli-full-command;
17334       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6  or nsap or ../../nsap or ../nsap";
17335       type uint32 {
17336         range "1..4294967295";
17337         tailf:info "<1-4294967295>;;Default metric";
17338       }
17339     }
17340     container distance {
17341       tailf:info "Define an administrative distance";
17342       description
17343         "Define an administrative distance";
17344       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6 ";
17345       container bgp {
17346         tailf:info "BGP distance";
17347         description
17348           "BGP distance";
17349         tailf:cli-sequence-commands;
17350         tailf:cli-compact-syntax;
17351         leaf extern-as {
17352           tailf:cli-drop-node-name;
17353           tailf:cli-incomplete-command;
17354           type uint16 {
17355             tailf:info "<1-255>;;Distance for routes external to the AS";
17356             range "1..255";
17357           }
17358         }
17359         leaf internal-as {
17360           tailf:cli-drop-node-name;
17361           tailf:cli-incomplete-command;
17362           type uint16 {
17363             tailf:info "<1-255>;;Distance for routes internal to the AS";
17364             range "1..255";
17365           }
17366         }
17367         leaf local {
17368           tailf:cli-drop-node-name;
17369           type uint16 {
17370             tailf:info "<1-255>;;Distance for local routes";
17371             range "1..255";
17372           }
17373         }
17374       }
17375       list adm-distance {
17376         tailf:cli-drop-node-name;
17377         tailf:cli-suppress-mode;
17378         tailf:cli-delete-when-empty;
17379         key "distance srcip wildbits";
17380         leaf distance {
17381           type uint16 {
17382             tailf:info "<1-255>;;Administrative distance";
17383             range "1..255";
17384           }
17385         }
17386         leaf srcip {
17387           type inet:ipv4-address {
17388             tailf:info "A.B.C.D;;IP Source address";
17389           }
17390         }
17391         leaf wildbits {
17392           type inet:ipv4-address {
17393             tailf:info "A.B.C.D;;Wildcard bits";
17394           }
17395         }
17396         leaf acl {
17397           tailf:cli-drop-node-name;
17398           type union {
17399             type uint16 {
17400               range "1..99" {
17401                 tailf:info "<1-99>;;IP Standard access list number";
17402               }
17403             }
17404             type uint16 {
17405               range "1300..1999" {
17406                 tailf:info "<1300-1999>;;IP Standard expanded access list number";
17407               }
17408             }
17409             type string {
17410               pattern "[a-zA-Z].*";
17411               tailf:info "WORD;;Standard access-list name";
17412             }
17413           }
17414         }
17415       }
17416     }
17417     list distribute-list {
17418       tailf:info "Filter networks in routing updates";
17419       description
17420         "Filter networks in routing updates";
17421       tailf:cli-compact-syntax;
17422       tailf:cli-suppress-mode;
17423       tailf:cli-delete-when-empty;
17424       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4 ";
17425       key "id";
17426       leaf id {
17427         tailf:cli-incomplete-command;
17428         type bgp-distribute-list-type;
17429       }
17430       choice in-out-choice {
17431         container in {
17432           presence "enable incoming routing updates";
17433           tailf:info "Filter incoming routing updates";
17434           description
17435             "Filter incoming routing updates";
17436           leaf interface {
17437             type string;
17438           }
17439         }
17440         container out {
17441           presence "enable outgoing routing updates";
17442           tailf:info "Filter outgoing routing updates";
17443           description
17444             "Filter outgoing routing updates";
17445           leaf interface {
17446             type string;
17447           }
17448         }
17449       }
17450     }
17451     container maximum-paths {
17452       tailf:info "Forward packets over multiple paths";
17453       description
17454         "Forward packets over multiple paths";
17455       tailf:display-when "../../../../../ipv4 or ../../../../ipv4  or ../../../ipv4 or ../../ipv4 or ../../../../../ipv6 or ../../../../ipv6  or ../../../ipv6 or ../../ipv6  or ../../nsap or ../nsap  or ../../rtfilter or ../rtfilter  or ../../vpnv4 or ../vpnv4";
17456       uses max-path-grouping;
17457       choice max-path-choice {
17458         case eibgp-case {
17459           container eibgp {
17460             tailf:display-when "../../../ipv4  or ../../../ipv6";
17461             tailf:info "Both eBGP and iBGP paths as multipath";
17462             description
17463               "Both eBGP and iBGP paths as multipath";
17464             uses max-path-grouping;
17465           }
17466         }
17467         case ibgp-case {
17468           container ibgp {
17469             tailf:info "iBGP-multipath";
17470             description
17471               "iBGP-multipath";
17472             tailf:display-when "../../../ipv4  or ../../../ipv6 ";
17473             choice ibgp-choice {
17474               case a {
17475                 container unequal-cost {
17476                   tailf:info "Perform Un-Equal cost multipath selection";
17477                   description
17478                     "Perform Un-Equal cost multipath selection";
17479                   uses max-path-grouping;
17480                 }
17481               }
17482               case b {
17483                 uses max-path-grouping;
17484               }
17485             }
17486           }
17487         }
17488       }
17489     }
17490     list neighbor {
17491       tailf:info "Specify a neighbor router";
17492       description
17493         "Specify a neighbor router";
17494       tailf:cli-suppress-mode;
17495       tailf:cli-delete-when-empty;
17496       tailf:cli-incomplete-command;
17497       ordered-by user;
17498       must "count(*) > 1" {
17499         tailf:dependency ".";
17500       }
17501       key "id";
17502       leaf id {
17503         type union {
17504           type string {
17505             tailf:info "WORD;;Neighbor tag";
17506           }
17507           type inet:ipv4-address {
17508             tailf:info "A.B.C.D;;Neighbor address";
17509           }
17510           type inet:ipv6-address {
17511             tailf:info "X:X:X:X::X;;Neighbor IPv6 address";
17512           }
17513         }
17514       }
17515       container peer-group {
17516         tailf:info "Member of the peer-group";
17517         description
17518           "Member of the peer-group";
17519         tailf:cli-delete-when-empty;
17520         presence "true";
17521         leaf peer-group-name {
17522           tailf:info "WORD;;peer-group name";
17523           description
17524             "WORD;;peer-group name";
17525           tailf:cli-drop-node-name;
17526           tailf:cli-delete-container-on-delete;
17527           tailf:cli-full-command;
17528           tailf:cli-diff-dependency "../../remote-as";
17529           type string;
17530         }
17531       }
17532       leaf remote-as {
17533         tailf:info "Specify a BGP neighbor";
17534         description
17535           "Specify a BGP neighbor";
17536         tailf:cli-full-command;
17537         tailf:cli-delete-container-on-delete;
17538         type uint16 {
17539           tailf:info "<1-65535>  AS of remote neighbor";
17540           range "1..65535";
17541         }
17542       }
17543       container local-as {
17544         tailf:info "Specify a local-as number";
17545         description
17546           "Specify a local-as number";
17547         tailf:cli-compact-syntax;
17548         tailf:cli-sequence-commands {
17549           tailf:cli-reset-siblings;
17550         }
17551         tailf:cli-delete-when-empty;
17552         presence "Specify a local-as number";
17553         leaf as-no {
17554           tailf:cli-drop-node-name;
17555           type bgp-as-number-type;
17556         }
17557         leaf no-prepend {
17558           tailf:info "Do not prepend local-as to updates from ebgp peers";
17559           description
17560             "Do not prepend local-as to updates from ebgp peers";
17561           type empty;
17562         }
17563         leaf replace-as {
17564           tailf:info "Replace real AS with local AS in the EBGP updates";
17565           description
17566             "Replace real AS with local AS in the EBGP updates";
17567           type empty;
17568         }
17569         leaf dual-as {
17570           tailf:info "Accept either real AS or local AS from the ebgp peer";
17571           description
17572             "Accept either real AS or local AS from the ebgp peer";
17573           type empty;
17574         }
17575       }
17576       leaf activate {
17577         tailf:info "Enable the Address Family for this Neighbor";
17578         description
17579           "Enable the Address Family for this Neighbor";
17580         tailf:cli-full-command;
17581         type empty;
17582       }
17583       container additional-paths {
17584         leaf disable {
17585           tailf:info "Disable additional paths for this neighbor";
17586           description
17587             "Disable additional paths for this neighbor";
17588           type empty;
17589         }
17590         leaf receive {
17591           tailf:info "Receive additional paths from neighbors";
17592           description
17593             "Receive additional paths from neighbors";
17594           type empty;
17595         }
17596         container send {
17597           tailf:info "Send additional paths to this neighbor";
17598           description
17599             "Send additional paths to this neighbor";
17600           presence "true";
17601           leaf receive {
17602             tailf:info "Receive additional paths from this neighbor";
17603             description
17604               "Receive additional paths from this neighbor";
17605             type empty;
17606           }
17607         }
17608       }
17609       container advertise {
17610         tailf:info "Advertise to this neighbor";
17611         description
17612           "Advertise to this neighbor";
17613         container additional-paths {
17614           tailf:info "Advertise additional paths";
17615           description
17616             "Advertise additional paths";
17617           container all {
17618             tailf:info "Select all available paths";
17619             description
17620               "Select all available paths";
17621             presence "true";
17622             container best {
17623               tailf:info "Select best N paths";
17624               description
17625                 "Select best N paths";
17626               list best-range {
17627                 tailf:cli-drop-node-name;
17628                 tailf:cli-suppress-mode;
17629                 key "range";
17630                 leaf range {
17631                   tailf:info "Number of best paths in additional paths to be selected";
17632                   description
17633                     "Number of best paths in additional paths to be selected";
17634                   type uint8 {
17635                     range "2..3";
17636                   }
17637                 }
17638                 leaf group-best {
17639                   tailf:info "Select group-best paths";
17640                   description
17641                     "Select group-best paths";
17642                   type empty;
17643                 }
17644               }
17645             }
17646             container group-best {
17647               tailf:info "Select group-best paths";
17648               description
17649                 "Select group-best paths";
17650               presence "true";
17651               leaf best {
17652                 tailf:info "Select best N paths";
17653                 description
17654                   "Number of best paths in additional paths to be selected";
17655                 type uint8 {
17656                   range "2..3";
17657                 }
17658               }
17659             }
17660           }
17661           container best {
17662             tailf:info "Select best N paths";
17663             description
17664               "Select best N paths";
17665             list best-range {
17666               tailf:cli-drop-node-name;
17667               tailf:cli-suppress-mode;
17668               key "range";
17669               leaf range {
17670                 tailf:info "Number of best paths in additional paths to be selected";
17671                 description
17672                   "Number of best paths in additional paths to be selected";
17673                 type uint8 {
17674                   range "2..3";
17675                 }
17676               }
17677               leaf all {
17678                 tailf:info "Select all available paths";
17679                 description
17680                   "Select all available paths";
17681                 type empty;
17682               }
17683               container group-best {
17684                 tailf:info "Select group-best paths";
17685                 description
17686                   "Select group-best paths";
17687                 presence "true";
17688                 leaf all {
17689                   tailf:info "Select all available paths";
17690                   description
17691                     "Select all available paths";
17692                   type empty;
17693                 }
17694               }
17695             }
17696           }
17697           container group-best {
17698             tailf:info "Select group-best paths";
17699             description
17700               "Select group-best paths";
17701             presence "true";
17702             leaf all {
17703               tailf:info "Select all available paths";
17704               description
17705                 "Select all available paths";
17706               type empty;
17707             }
17708             leaf best {
17709               tailf:info "Select best N paths";
17710               description
17711                 "Number of best paths in additional paths to be selected";
17712               type uint8 {
17713                 range "2..3";
17714               }
17715             }
17716           }
17717         }
17718         leaf best-external {
17719           tailf:info "Advertise best-external (at RRs best-internal) path";
17720           description
17721             "Advertise best-external (at RRs best-internal) path";
17722           type empty;
17723         }
17724         container diverse-path {
17725           tailf:info "Advertise diverse path";
17726           description
17727             "Advertise diverse path";
17728           container backup {
17729             tailf:info "Diverse path can be backup path";
17730             description
17731               "Diverse path can be backup path";
17732             presence "true";
17733             leaf mpath {
17734               tailf:info "Diverse path can be multipath";
17735               description
17736                 "Diverse path can be multipath";
17737               type empty;
17738             }
17739           }
17740           leaf mpath {
17741             tailf:info "Diverse path can be multipath";
17742             description
17743               "Diverse path can be multipath";
17744             type empty;
17745           }
17746         }
17747       }
17748       container advertise-map {
17749         tailf:info "specify route-map for conditional advertisement";
17750         description
17751           "specify route-map for conditional advertisement";
17752         list name {
17753           tailf:cli-drop-node-name;
17754           tailf:cli-suppress-mode;
17755           key "word";
17756           leaf word {
17757             tailf:info "advertise route-map name";
17758             description
17759               "advertise route-map name";
17760             type string;
17761           }
17762           leaf exist-map {
17763             tailf:info "advertise prefix only if prefix is in the condition exists";
17764             description
17765               "condition route-map name";
17766             type string;
17767           }
17768           leaf non-exist-map {
17769             tailf:info "advertise prefix only if prefix in the condition does not exist";
17770             description
17771               "condition route-map name";
17772             type string;
17773           }
17774         }
17775       }
17776       container aigp {
17777         tailf:info "Enable a AIGP on neighbor";
17778         description
17779           "Enable a AIGP on neighbor";
17780         presence "true";
17781         container send {
17782           tailf:info "Cost community or MED carrying AIGP VALUE";
17783           description
17784             "Cost community or MED carrying AIGP VALUE";
17785           container cost-community {
17786             tailf:info "Cost extended community carrying AIGP Value";
17787             description
17788               "Cost extended community carrying AIGP Value";
17789             list cc-range {
17790               tailf:cli-drop-node-name;
17791               tailf:cli-suppress-mode;
17792               key "range";
17793               leaf range {
17794                 tailf:info "Community ID";
17795                 description
17796                   "Community ID";
17797                 type uint8 {
17798                   range "0..255";
17799                 }
17800               }
17801               container poi {
17802                 tailf:info "Point of Insertion";
17803                 description
17804                   "Point of Insertion";
17805                 container igp-cost {
17806                   tailf:info "Point of Insertion After IGP";
17807                   description
17808                     "Point of Insertion After IGP";
17809                   presence "true";
17810                   leaf transitive {
17811                     tailf:info "Cost community is Transitive";
17812                     description
17813                       "Cost community is Transitive";
17814                     type empty;
17815                   }
17816                 }
17817                 container pre-bestpath {
17818                   tailf:info "Point of Insertion At Beginning";
17819                   description
17820                     "Point of Insertion At Beginning";
17821                   presence "true";
17822                   leaf transitive {
17823                     tailf:info "Cost community is Transitive";
17824                     description
17825                       "Cost community is Transitive";
17826                     type empty;
17827                   }
17828                 }
17829               }
17830             }
17831           }
17832           leaf med {
17833             tailf:info "Med carrying AIGP Value";
17834             description
17835               "Med carrying AIGP Value";
17836             type empty;
17837           }
17838         }
17839       }
17840       leaf allow-policy {
17841         tailf:info "Enable the policy support for this IBGP Neighbor";
17842         description
17843           "Enable the policy support for this IBGP Neighbor";
17844         type empty;
17845       }
17846       container announce {
17847         tailf:info "Announce RPKI State using an Extended Community";
17848         description
17849           "Announce RPKI State using an Extended Community";
17850         container rpki {
17851           tailf:info "Announce RPKI information using an Extended Community";
17852           description
17853             "Announce RPKI information using an Extended Community";
17854           leaf state {
17855             tailf:info "Announce RPKI State information using an Extended Community";
17856             description
17857               "Announce RPKI State information using an Extended Community";
17858             type empty;
17859           }
17860         }
17861       }
17862       leaf advertisement-interval {
17863         tailf:info "Minimum interval between sending BGP routing updates";
17864         description
17865           "Minimum interval between sending BGP routing updates";
17866         tailf:cli-full-command;
17867         type uint16 {
17868           range "0..600";
17869           tailf:info "<0-600>;;time in seconds";
17870         }
17871       }
17872       container allowas-in {
17873         tailf:info "Accept as-path with my AS present in it";
17874         description
17875           "Accept as-path with my AS present in it";
17876         presence "accept as-paths";
17877         tailf:cli-delete-when-empty;
17878         leaf as-number {
17879           tailf:cli-drop-node-name;
17880           type uint8 {
17881             range "1..10";
17882             tailf:info "<1-10>  Number of occurances of AS number";
17883           }
17884         }
17885       }
17886       container as-override {
17887         tailf:info "Override matching AS-number while sending update";
17888         description
17889           "Override matching AS-number while sending update";
17890         tailf:cli-delete-when-empty;
17891         presence "true";
17892         leaf disable {
17893           type empty;
17894         }
17895       }
17896       container capability {
17897         tailf:info "Advertise capability to the peer";
17898         description
17899           "Advertise capability to the peer";
17900         container orf {
17901           tailf:info "Advertise ORF capability to the peer";
17902           description
17903             "Advertise ORF capability to the peer";
17904           leaf-list prefix-list {
17905             tailf:cli-flat-list-syntax;
17906             tailf:info "Advertise prefixlist ORF capability to this neighbor";
17907             description
17908               "Advertise prefixlist ORF capability to this neighbor";
17909             max-elements "1";
17910             type enumeration {
17911               enum "both" {
17912                 tailf:info "Capability to SEND and RECEIVE the ORF to/from this neighbor";
17913               }
17914               enum "receive" {
17915                 tailf:info "Capability to RECEIVE the ORF from this neighbor";
17916               }
17917               enum "send" {
17918                 tailf:info "Capability to SEND the ORF to this neighbor";
17919               }
17920             }
17921           }
17922         }
17923       }
17924       container cluster-id {
17925         tailf:info "Configure Route-Reflector Cluster-id (peers may reset)";
17926         description
17927           "Configure Route-Reflector Cluster-id (peers may reset)";
17928         leaf id {
17929           tailf:info "Route-Reflector Cluster-id as 32 bit quantity";
17930           description
17931             "Route-Reflector Cluster-id as 32 bit quantity";
17932           tailf:cli-drop-node-name;
17933           type uint32 {
17934             range "1..4294967294";
17935           }
17936         }
17937         leaf ip {
17938           tailf:info "Route-Reflector Cluster-id in IP address format";
17939           description
17940             "Route-Reflector Cluster-id in IP address format";
17941           tailf:cli-drop-node-name;
17942           type inet:ipv4-address;
17943         }
17944       }
17945       container default-originate {
17946         tailf:info "Originate default route to this neighbour";
17947         description
17948           "Originate default route to this neighbour";
17949         tailf:cli-delete-when-empty;
17950         presence "enable originate default route to this neighbour";
17951         leaf route-map {
17952           tailf:info "Route-map to specify criteria to originate default";
17953           description
17954             "Route-map to specify criteria to originate default";
17955           type string {
17956             tailf:info "WORD;;route-map name";
17957           }
17958         }
17959       }
17960       leaf description {
17961         tailf:info "Neighbor specific description";
17962         description
17963           "Neighbor specific description";
17964         tailf:cli-full-command;
17965         tailf:cli-multi-value;
17966         type string {
17967           tailf:info "LINE;;Up to 80 characters describing this neighbor";
17968         }
17969       }
17970       leaf disable-connected-check {
17971         tailf:info "One-hop away EBGP peer using loopback address";
17972         description
17973           "One-hop away EBGP peer using loopback address";
17974         tailf:cli-full-command;
17975         type empty;
17976       }
17977       list distribute-list {
17978         tailf:info "Filter updates to/from this neighbor";
17979         description
17980           "Filter updates to/from this neighbor";
17981         tailf:cli-suppress-mode;
17982         tailf:cli-delete-when-empty;
17983         key "inout";
17984         leaf inout {
17985           type enumeration {
17986             enum "in" {
17987               tailf:code-name "dist_in";
17988               tailf:info "Filter incoming updates";
17989             }
17990             enum "out" {
17991               tailf:code-name "dist_out";
17992               tailf:info "Filter outgoing updates";
17993             }
17994           }
17995         }
17996         leaf accesslist {
17997           tailf:cli-drop-node-name;
17998           tailf:cli-prefix-key;
17999           type bgp-distribute-list-type2;
18000           mandatory true;
18001         }
18002       }
18003       leaf dmzlink-bw {
18004         tailf:info "Propagate the DMZ link bandwidth";
18005         description
18006           "Propagate the DMZ link bandwidth";
18007         tailf:cli-full-command;
18008         type empty;
18009       }
18010       container ebgp-multihop {
18011         tailf:info "Allow EBGP neighbors not on directly connected networks";
18012         description
18013           "Allow EBGP neighbors not on directly connected networks";
18014         tailf:cli-delete-when-empty;
18015         presence "Allow EBGP neighbors not on directly connected networks";
18016         leaf max-hop {
18017           tailf:cli-drop-node-name;
18018           type uint8 {
18019             range "1..255";
18020             tailf:info "<1-255>;;maximum hop count";
18021           }
18022         }
18023       }
18024       container fall-over {
18025         tailf:info "session fall on peer route lost";
18026         description
18027           "session fall on peer route lost";
18028         container bfd {
18029           tailf:info "Use BFD to detect failure";
18030           description
18031             "Use BFD to detect failure";
18032           presence "true";
18033         }
18034       }
18035       list filter-list {
18036         tailf:info "Establish BGP filters";
18037         description
18038           "Establish BGP filters";
18039         tailf:cli-suppress-mode;
18040         tailf:cli-delete-when-empty;
18041         key "inout";
18042         leaf inout {
18043           type enumeration {
18044             enum "in" {
18045               tailf:code-name "filter_in";
18046               tailf:info "Filter incoming routes";
18047             }
18048             enum "out" {
18049               tailf:code-name "filter_out";
18050               tailf:info "Filter outgoing routes";
18051             }
18052           }
18053         }
18054         leaf as-path-list {
18055           tailf:cli-drop-node-name;
18056           tailf:cli-prefix-key;
18057           type uint16 {
18058             range "1..500";
18059             tailf:info "<1-500>;;AS path access list";
18060           }
18061           mandatory true;
18062         }
18063       }
18064       container inherit {
18065         tailf:info "Inherit a template";
18066         description
18067           "Inherit a template";
18068         leaf peer-policy {
18069           tailf:info "Inherit a peer-policy template";
18070           description
18071             "Inherit a peer-policy template";
18072           tailf:cli-full-command;
18073           type string {
18074             tailf:info "WORD;;Template name";
18075           }
18076         }
18077         leaf peer-session {
18078           tailf:info "Inherit a peer-session template";
18079           description
18080             "Inherit a peer-session template";
18081           tailf:cli-full-command;
18082           type string {
18083             tailf:info "WORD;;Template name";
18084           }
18085         }
18086       }
18087       container log-neighbor-changes {
18088         tailf:info "Log neighbor up/down and reset reason";
18089         description
18090           "Log neighbor up/down and reset reason";
18091         presence "true";
18092         leaf disable {
18093           tailf:info "disable";
18094           description
18095             "disable";
18096           type empty;
18097         }
18098       }
18099       container maximum-prefix {
18100         tailf:info "Maximum number of prefixes accepted from this peer";
18101         description
18102           "Maximum number of prefixes accepted from this peer";
18103         tailf:cli-compact-syntax;
18104         tailf:cli-sequence-commands {
18105           tailf:cli-reset-all-siblings;
18106         }
18107         leaf max-prefix-no {
18108           tailf:cli-drop-node-name;
18109           type uint32 {
18110             range "1..2147483647";
18111             tailf:info "<1-2147483647>;;maximum no. of prefix limit";
18112           }
18113         }
18114         leaf threshold {
18115           tailf:cli-drop-node-name;
18116           tailf:cli-break-sequence-commands;
18117           type uint8 {
18118             range "1..100";
18119             tailf:info "<1-100>;;Threshold value (%) at which to generate a warning msg";
18120           }
18121         }
18122         leaf restart {
18123           tailf:cli-full-command;
18124           tailf:info "Restart bgp connection after limit is exceeded";
18125           description
18126             "Restart bgp connection after limit is exceeded";
18127           type uint16 {
18128             range "1..65535";
18129             tailf:info "<1-65535>  Restart interval in minutes";
18130           }
18131         }
18132         leaf warning-only {
18133           tailf:cli-full-command;
18134           tailf:info "Only give warning message when limit is exceeded";
18135           description
18136             "Only give warning message when limit is exceeded";
18137           type empty;
18138         }
18139       }
18140       leaf next-hop-self {
18141         tailf:cli-full-command;
18142         tailf:info "Disable the next hop calculation for this neighbor";
18143         description
18144           "Disable the next hop calculation for this neighbor";
18145         type empty;
18146       }
18147       leaf next-hop-unchanged {
18148         tailf:cli-full-command;
18149         tailf:info "Propagate the iBGP paths's next hop unchanged for this neighbor";
18150         description
18151           "Propagate the iBGP paths's next hop unchanged for this neighbor";
18152         type empty;
18153       }
18154       container password {
18155         tailf:info "Set a password";
18156         description
18157           "Set a password";
18158         tailf:cli-compact-syntax;
18159         leaf enctype {
18160           tailf:cli-drop-node-name;
18161           tailf:cli-incomplete-command;
18162           tailf:cli-reset-container;
18163           type uint8 {
18164             range "0..7";
18165             tailf:info "<0-7>;;Encryption type (0 to disable encryption, 7 for proprietary)";
18166           }
18167           default "0";
18168         }
18169         leaf text {
18170           tailf:cli-drop-node-name;
18171           tailf:cli-full-command;
18172           tailf:cli-multi-value;
18173           tailf:cli-reset-container;
18174           type string {
18175             tailf:info "LINE;;The password";
18176           }
18177         }
18178       }
18179       list prefix-list {
18180         tailf:info "Filter updates to/from this neighbor";
18181         description
18182           "Filter updates to/from this neighbor";
18183         tailf:cli-suppress-mode;
18184         tailf:cli-delete-when-empty;
18185         key "inout";
18186         leaf inout {
18187           type enumeration {
18188             enum "in" {
18189               tailf:code-name "prefix_in";
18190               tailf:info "Filter incoming updates";
18191             }
18192             enum "out" {
18193               tailf:code-name "prefix_out";
18194               tailf:info "Filter outgoing updates";
18195             }
18196           }
18197         }
18198         leaf prefix-list-name {
18199           tailf:cli-drop-node-name;
18200           tailf:cli-prefix-key;
18201           type string {
18202             tailf:info "WORD;;Name of a prefix list";
18203           }
18204           mandatory true;
18205         }
18206       }
18207       container path-attribute {
18208         tailf:info "BGP optional attribute filtering";
18209         description
18210           "BGP optional attribute filtering";
18211         container discard {
18212           tailf:info "Discard matching path-attribute for this neighbor";
18213           description
18214             "Discard matching path-attribute for this neighbor";
18215           uses bgp-path-range-grouping;
18216         }
18217         container treat-as-withdraw {
18218           tailf:info "Treat-as-withdraw matching path-attribute for this neighbor";
18219           description
18220             "Treat-as-withdraw matching path-attribute for this neighbor";
18221           uses bgp-path-range-grouping;
18222         }
18223       }
18224       leaf remove-private-as {
18225         tailf:cli-full-command;
18226         tailf:info "Remove private AS number from outbound updates";
18227         description
18228           "Remove private AS number from outbound updates";
18229         type empty;
18230       }
18231       list route-map {
18232         tailf:info "Apply route map to neighbor";
18233         description
18234           "Apply route map to neighbor";
18235         tailf:cli-suppress-mode;
18236         tailf:cli-delete-when-empty;
18237         key "inout";
18238         leaf inout {
18239           type enumeration {
18240             enum "in" {
18241               tailf:code-name "route_in";
18242               tailf:info "Apply map to incoming routes";
18243             }
18244             enum "out" {
18245               tailf:code-name "route_out";
18246               tailf:info "Apply map to outbound routes";
18247             }
18248           }
18249         }
18250         leaf route-map-name {
18251           tailf:cli-drop-node-name;
18252           tailf:cli-prefix-key;
18253           type string {
18254             tailf:info "WORD;;Name of route map";
18255           }
18256           mandatory true;
18257         }
18258       }
18259       leaf route-reflector-client {
18260         tailf:cli-full-command;
18261         tailf:info "Configure a neighbor as Route Reflector client";
18262         description
18263           "Configure a neighbor as Route Reflector client";
18264         type empty;
18265       }
18266       leaf route-reflector-cluster-id {
18267         tailf:cli-full-command;
18268         type union {
18269           type uint32 {
18270             range "1..4294967295";
18271             tailf:info "<1-4294967295>;;Route-Reflector Cluster-id as 32 bit quantity";
18272           }
18273           type inet:ipv4-address {
18274             tailf:info "A.B.C.D;;Route-Reflector Cluster-id in IP address format";
18275           }
18276         }
18277       }
18278       container send-community {
18279         tailf:info "Send Community attribute to this neighbor";
18280         description
18281           "Send Community attribute to this neighbor";
18282         tailf:cli-delete-when-empty;
18283         presence "true";
18284         leaf send-community-where {
18285           tailf:cli-drop-node-name;
18286           type enumeration {
18287             enum "both" {
18288               tailf:info "Send Standard and Extended Community attributes";
18289             }
18290             enum "extended" {
18291               tailf:info "Send Extended Community attribute";
18292             }
18293             enum "standard" {
18294               tailf:code-name "send_standard";
18295               tailf:info "Send Standard Community attribute";
18296             }
18297           }
18298         }
18299       }
18300       container send-label {
18301         tailf:info "Send NLRI + MPLS Label to this peer";
18302         description
18303           "Send NLRI + MPLS Label to this peer";
18304         leaf send-label-explicit {
18305           tailf:cli-drop-node-name;
18306           type enumeration {
18307             enum "explicit-null" {
18308               tailf:code-name "send_explicit_null";
18309               tailf:info "Advertise Explicit Null label in place of Implicit Null";
18310             }
18311           }
18312         }
18313       }
18314       leaf shutdown {
18315         tailf:cli-full-command;
18316         tailf:info "Administratively shut down this neighbor";
18317         description
18318           "Administratively shut down this neighbor";
18319         type empty;
18320       }
18321       leaf soft-reconfiguration {
18322         tailf:cli-full-command;
18323         tailf:info "Per neighbor soft reconfiguration";
18324         description
18325           "Per neighbor soft reconfiguration";
18326         type enumeration {
18327           enum "inbound" {
18328             tailf:info "Allow inbound soft reconfiguration for this neighbor";
18329           }
18330         }
18331       }
18332       container slow-peer {
18333         tailf:info "Configure slow-peer";
18334         description
18335           "Configure slow-peer";
18336         container detection {
18337           tailf:info "Slow-peer detection";
18338           description
18339             "Slow-peer detection";
18340           presence "true";
18341           leaf threshold {
18342             tailf:info "Set the slow-peer detection threshold";
18343             description
18344               "Threshold value (seconds)";
18345             type uint16 {
18346               range "120..3600";
18347             }
18348           }
18349         }
18350         container split-update-group {
18351           tailf:info "Configure slow-peer split-update-group";
18352           description
18353             "Configure slow-peer split-update-group";
18354           container dynamic {
18355             tailf:info "Dynamically split the slow peer to slow-update group";
18356             description
18357               "Dynamically split the slow peer to slow-update group";
18358             presence "true";
18359             leaf permanent {
18360               tailf:info "Keep the slow-peer permanently in slow-update group";
18361               description
18362                 "Keep the slow-peer permanently in slow-update group";
18363               type empty;
18364             }
18365           }
18366         }
18367       }
18368       container timers {
18369         tailf:info "BGP per neighbor timers";
18370         description
18371           "BGP per neighbor timers";
18372         tailf:cli-compact-syntax;
18373         tailf:cli-sequence-commands {
18374           tailf:cli-reset-siblings;
18375         }
18376         leaf keepalive-interval {
18377           tailf:cli-drop-node-name;
18378           tailf:cli-incomplete-command;
18379           type uint16 {
18380             range "0..65535";
18381             tailf:info "<0-65535>;;Keepalive interval";
18382           }
18383         }
18384         leaf holdtime {
18385           tailf:cli-drop-node-name;
18386           type uint16 {
18387             range "0..65535";
18388             tailf:info "<0-65535>;;Holdtime";
18389           }
18390         }
18391         leaf minimum-neighbor-hold {
18392           tailf:cli-drop-node-name;
18393           type uint16 {
18394             range "0..65535";
18395             tailf:info "<0-65535>  Minimum hold time from neighbor";
18396           }
18397         }
18398       }
18399       container translate-update {
18400         tailf:info "Translate Update to MBGP format";
18401         description
18402           "Translate Update to MBGP format";
18403         container ipv4 {
18404           tailf:info "Address Family";
18405           description
18406             "Address Family";
18407           container multicast {
18408             tailf:info "Address Family modifier";
18409             description
18410               "Address Family modifier";
18411             tailf:cli-delete-when-empty;
18412             presence "Address Family modifier";
18413             leaf unicast {
18414               tailf:info "Address Family modifier";
18415               description
18416                 "Address Family modifier";
18417               type empty;
18418             }
18419           }
18420         }
18421       }
18422       container transport {
18423         tailf:info "Transport options";
18424         description
18425           "Transport options";
18426         leaf connection-mode {
18427           tailf:info "Specify passive or active connection";
18428           description
18429             "Specify passive or active connection";
18430           type enumeration {
18431             enum "active" {
18432               tailf:info "Actively establish the TCP session";
18433             }
18434             enum "passive" {
18435               tailf:info "Passively establish the TCP session";
18436             }
18437           }
18438         }
18439         leaf multi-session {
18440           tailf:info "Use Multi-session for transport";
18441           description
18442             "Use Multi-session for transport";
18443           type empty;
18444         }
18445         container path-mtu-discovery {
18446           tailf:info "Use transport path MTU discovery";
18447           description
18448             "Use transport path MTU discovery";
18449           presence "true";
18450           leaf disable {
18451             tailf:info "disable";
18452             description
18453               "disable";
18454             type empty;
18455           }
18456         }
18457       }
18458       container ttl-security {
18459         tailf:info "BGP ttl security check";
18460         description
18461           "BGP ttl security check";
18462         leaf hops {
18463           tailf:info "IP hops";
18464           description
18465             "IP hops";
18466           type uint8 {
18467             range "1..254";
18468             tailf:info "<1-254>;;maximum number of hops";
18469           }
18470         }
18471       }
18472       leaf unsuppress-map {
18473         tailf:info "Route-map to selectively unsuppress suppressed routes";
18474         description
18475           "Route-map to selectively unsuppress suppressed routes";
18476         tailf:cli-full-command;
18477         type string {
18478           tailf:info "WORD;;Name of route map";
18479         }
18480       }
18481       container update-source {
18482         tailf:info "Source of routing updates";
18483         description
18484           "Source of routing updates";
18485         tailf:cli-diff-dependency "/ios:native/interface";
18486         uses interface-grouping;
18487       }
18488       leaf version {
18489         tailf:cli-full-command;
18490         tailf:info "Set the BGP version to match a neighbor";
18491         description
18492           "Set the BGP version to match a neighbor";
18493         type uint16 {
18494           range "4";
18495           tailf:info "<4-4>;;Neighbor's BGP version";
18496         }
18497       }
18498       leaf weight {
18499         tailf:cli-full-command;
18500         tailf:info "Set default weight for routes from this neighbor";
18501         description
18502           "Set default weight for routes from this neighbor";
18503         type uint16 {
18504           range "0..65535";
18505           tailf:info "<0-65535>;;default weight";
18506         }
18507       }
18508       container ha-mode {
18509         tailf:info "high availability mode";
18510         description
18511           "high availability mode";
18512         container graceful-restart {
18513           tailf:info "graceful-restart for this peer";
18514           description
18515             "graceful-restart for this peer";
18516           presence "true";
18517           leaf disable {
18518             tailf:info "disable graceful-restart";
18519             description
18520               "disable graceful-restart";
18521             type empty;
18522           }
18523         }
18524         container sso {
18525           tailf:info "stateful-switchover support for this peer";
18526           description
18527             "stateful-switchover support for this peer";
18528           presence "true";
18529           leaf disable {
18530             tailf:info "disable stateful-switchover";
18531             description
18532               "disable stateful-switchover";
18533             type empty;
18534           }
18535         }
18536       }
18537     }
18538     list network {
18539       tailf:info "Specify a network to announce via BGP";
18540       description
18541         "Specify a network to announce via BGP";
18542       tailf:cli-suppress-mode;
18543       tailf:cli-delete-when-empty;
18544       tailf:cli-compact-syntax;
18545       tailf:cli-reset-container;
18546       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6  or nsap or ../../nsap or ../nsap";
18547       key "number";
18548       leaf number {
18549         type inet:ipv4-address {
18550           tailf:info "A.B.C.D;;Network number";
18551         }
18552       }
18553       leaf backdoor {
18554         tailf:info "Specify a BGP backdoor route";
18555         description
18556           "Specify a BGP backdoor route";
18557         tailf:cli-full-command;
18558         type empty;
18559       }
18560       leaf mask {
18561         tailf:info "Network mask";
18562         description
18563           "Network mask";
18564         type inet:ipv4-address {
18565           tailf:info "A.B.C.D;;Network mask";
18566         }
18567       }
18568       leaf route-map {
18569         tailf:info "Route-map to modify the attributes";
18570         description
18571           "Route-map to modify the attributes";
18572         type string {
18573           tailf:info "WORD;;Name of the route map";
18574         }
18575       }
18576     }
18577     container redistribute {
18578       tailf:info "Redistribute information from another routing protocol";
18579       description
18580         "Redistribute information from another routing protocol";
18581       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4 or ../../../ipv4 or ipv6 or ../../ipv6 or ../ipv6  or nsap or ../../nsap or ../nsap";
18582       container application {
18583         tailf:info "Application";
18584         description
18585           "Application";
18586         tailf:cli-compact-syntax;
18587         tailf:cli-sequence-commands {
18588           tailf:cli-reset-all-siblings;
18589         }
18590         presence "true";
18591         list name {
18592           tailf:cli-drop-node-name;
18593           tailf:cli-suppress-mode;
18594           key "name";
18595           leaf name {
18596             tailf:info "WORD;;Route map name";
18597             description
18598               "WORD;;Route map name";
18599             type string;
18600           }
18601           uses metric-route-map-grouping;
18602         }
18603       }
18604       container bgp {
18605         tailf:info "Border Gateway Protocol (BGP)";
18606         description
18607           "Border Gateway Protocol (BGP)";
18608         tailf:cli-compact-syntax;
18609         tailf:cli-sequence-commands {
18610           tailf:cli-reset-all-siblings;
18611         }
18612         leaf as-no {
18613           tailf:cli-drop-node-name;
18614           type bgp-as-number-type;
18615         }
18616         uses metric-route-map-grouping;
18617       }
18618       container connected {
18619         tailf:info "Connected";
18620         description
18621           "Connected";
18622         tailf:cli-delete-when-empty;
18623         presence "Connected";
18624         uses metric-route-map-grouping;
18625       }
18626       container dvmrp {
18627         tailf:info "Redistribution of DVMRP into BGP IPv4 Multicast";
18628         description
18629           "Redistribution of DVMRP into BGP IPv4 Multicast";
18630         tailf:cli-compact-syntax;
18631         tailf:cli-sequence-commands {
18632           tailf:cli-reset-siblings;
18633         }
18634         tailf:cli-delete-when-empty;
18635         presence "Redistribution of DVMRP into BGP IPv4 Multicast";
18636         uses route-map-metric-grouping;
18637       }
18638       container eigrp {
18639         tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
18640         description
18641           "Enhanced Interior Gateway Routing Protocol (EIGRP)";
18642         tailf:cli-compact-syntax;
18643         tailf:cli-sequence-commands {
18644           tailf:cli-reset-all-siblings;
18645         }
18646         leaf as-no {
18647           tailf:cli-drop-node-name;
18648           type uint16 {
18649             range "1..65535";
18650             tailf:info "<1-65535>;;Autonomous system number";
18651           }
18652         }
18653         uses metric-route-map-grouping;
18654       }
18655       container isis {
18656         tailf:info "ISO IS-IS";
18657         description
18658           "ISO IS-IS";
18659         list isis-area {
18660           tailf:cli-drop-node-name;
18661           key "name";
18662           leaf name {
18663             type string {
18664               tailf:info "WORD;;ISO routing area tag";
18665               pattern "^([^mlir].*)|(i[^p].*)|(ip..*)|(l[^e].*)|(le[^v].*)|(lev[^e].*)|(leve[^l].*)|(level[^\\-].*)|(m[^e].*)|(me[^t].*)|(met[^r].*)|(metr[^i].*)|(metri[^c].*)|(metric..*)*(r[^o].*)|(ro[^u].*)|(rou[^t].*)|(rout[^e].*)|(route[^\\-].*)|(route-[^m].*)|(route-m[^a].*)|(route-ma[^p].*)|(route-map..*)$";
18666             }
18667           }
18668           uses redistribute-isis-grouping;
18669         }
18670         container default {
18671           tailf:cli-drop-node-name;
18672           uses redistribute-isis-grouping;
18673         }
18674       }
18675       container iso-igrp {
18676         tailf:info "IGRP for OSI networks";
18677         description
18678           "IGRP for OSI networks";
18679         list iso-igrp-area {
18680           tailf:cli-compact-syntax;
18681           tailf:cli-sequence-commands;
18682           tailf:cli-drop-node-name;
18683           key "name";
18684           leaf name {
18685             type string {
18686               tailf:info "WORD;;Pointer to route-map entries";
18687               pattern "^([^r].*)|(r^[o].*)|(ro[^u].*)|(rou[^t].*)|(rout[^e].*)|(route[^\\-].*)|(route-[^m].*)|(route-m[^a].*)|(route-ma[^p])|(route-map..*)";
18688             }
18689           }
18690           uses route-map-metric-grouping;
18691         }
18692         container default {
18693           tailf:cli-compact-syntax;
18694           tailf:cli-sequence-commands;
18695           uses route-map-metric-grouping;
18696         }
18697       }
18698       container mobile {
18699         presence "Mobile routes";
18700         tailf:info "Mobile routes";
18701         description
18702           "Mobile routes";
18703         uses metric-route-map-grouping;
18704       }
18705       container odr {
18706         presence "On Demand stub Routes";
18707         tailf:info "On Demand stub Routes";
18708         description
18709           "On Demand stub Routes";
18710         uses metric-route-map-grouping;
18711       }
18712       list ospf {
18713         tailf:info "Open Shortest Path First (OSPF)";
18714         description
18715           "Open Shortest Path First (OSPF)";
18716         tailf:cli-suppress-mode;
18717         key "id";
18718         leaf id {
18719           type uint16 {
18720             range "1..65535";
18721             tailf:info "<1-65535>;;Process ID";
18722           }
18723         }
18724         list vrf {
18725           tailf:info "VPN Routing/Forwarding Instance";
18726           description
18727             "VPN Routing/Forwarding Instance";
18728           tailf:cli-diff-dependency "/ios:native/ip/vrf";
18729           tailf:cli-diff-dependency "/ios:native/vrf/definition";
18730           key "name";
18731           leaf name {
18732             type string {
18733               tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
18734             }
18735           }
18736           container match {
18737             tailf:info "Redistribution of OSPF routes";
18738           }
18739           uses metric-route-map-grouping;
18740         }
18741         container non-vrf {
18742           tailf:cli-drop-node-name;
18743           container match {
18744             tailf:info "Redistribution of OSPF routes";
18745             tailf:cli-flatten-container;
18746             tailf:cli-compact-syntax;
18747             leaf internal {
18748               tailf:info "Redistribute OSPF internal routes";
18749               description
18750                 "Redistribute OSPF internal routes";
18751               type empty;
18752             }
18753             leaf external {
18754               tailf:info "Redistribute OSPF external routes";
18755               description
18756                 "Redistribute OSPF external routes";
18757               type redist-ospf-external-type;
18758             }
18759             leaf external2 {
18760               tailf:alt-name "external";
18761               tailf:info "Redistribute OSPF external routes";
18762               description
18763                 "Redistribute OSPF external routes";
18764               type redist-ospf-external-type;
18765             }
18766             leaf nssa-external {
18767               tailf:info "Redistribute OSPF NSSA external routes";
18768               description
18769                 "Redistribute OSPF NSSA external routes";
18770               type redist-ospf-external-type;
18771             }
18772             uses metric-route-map-grouping;
18773           }
18774           uses metric-route-map-grouping;
18775         }
18776       }
18777       container rip {
18778         presence "Routing Information Protocol (RIP)";
18779         tailf:info "Routing Information Protocol (RIP)";
18780         description
18781           "Routing Information Protocol (RIP)";
18782         uses metric-route-map-grouping;
18783       }
18784       container static {
18785         presence "Static routes";
18786         tailf:info "Static routes";
18787         description
18788           "Static routes";
18789         container clns {
18790           tailf:info "Redistribution of OSI dynamic routes";
18791           description
18792             "Redistribution of OSI dynamic routes";
18793           presence "true";
18794           uses route-map-metric-grouping;
18795         }
18796         container ip {
18797           tailf:info "Redistribution of IP dynamic routes";
18798           presence "true";
18799           uses metric-route-map-grouping;
18800         }
18801         uses metric-route-map-grouping;
18802       }
18803     }
18804     leaf synchronization {
18805       tailf:info "Perform IGP synchronization";
18806       description
18807         "Perform IGP synchronization";
18808       tailf:cli-full-command;
18809       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6  or nsap or ../../nsap or ../nsap";
18810       type empty;
18811     }
18812     leaf auto-summary {
18813       tailf:info "Enable automatic network number summarization";
18814       description
18815         "Enable automatic network number summarization";
18816       tailf:cli-boolean-no;
18817       tailf:cli-trim-default;
18818       tailf:cli-full-command;
18819       type boolean;
18820     }
18821     container table-map {
18822       tailf:info "Map external entry attributes into routing table";
18823       tailf:cli-full-command;
18824       description
18825         "Map external entry attributes into routing table";
18826       tailf:display-when "ipv4 or ../../ipv4 or ../ipv4  or ipv6 or ../../ipv6 or ../ipv6 ";
18827       leaf name {
18828         description
18829           "route-map name";
18830         tailf:cli-drop-node-name;
18831         type string {
18832           tailf:info "WORD;;route-map name";
18833         }
18834       }
18835       leaf filter {
18836         tailf:info "Selective route download";
18837         type empty;
18838       }
18839     }
18840     container timers {
18841       tailf:info "Adjust routing timers";
18842       description
18843         "Adjust routing timers";
18844       container bgp {
18845         tailf:info "BGP timers";
18846         description
18847           "BGP timers";
18848         tailf:cli-compact-syntax;
18849         tailf:cli-sequence-commands {
18850           tailf:cli-reset-siblings;
18851         }
18852         leaf keepalive-interval {
18853           tailf:cli-drop-node-name;
18854           type uint16 {
18855             range "0..65535";
18856             tailf:info "<0-65535>;;Keepalive interval";
18857           }
18858         }
18859         leaf holdtime {
18860           tailf:cli-drop-node-name;
18861           type uint16 {
18862             range "0..65535";
18863             tailf:info "<0-65535>;;Holdtime";
18864           }
18865         }
18866         leaf minimum-neighbor-hold {
18867           tailf:cli-drop-node-name;
18868           tailf:cli-optional-in-sequence;
18869           type uint16 {
18870             range "0..65535";
18871             tailf:info "<0-65535>  Minimum hold time from neighbor";
18872           }
18873         }
18874       }
18875     }
18876     container transport {
18877       tailf:info "Transport options";
18878       description
18879         "Transport options";
18880       container path-mtu-discovery {
18881         tailf:info "Use transport path MTU discovery";
18882         description
18883           "Use transport path MTU discovery";
18884         presence "true";
18885         leaf disable {
18886           tailf:info "disable";
18887           description
18888             "disable";
18889           type empty;
18890         }
18891       }
18892     }
18893     container snmp {
18894       tailf:info "Modify snmp parameters";
18895       description
18896         "Modify snmp parameters";
18897       presence "true";
18898       container context {
18899         tailf:info "Configure a SNMP context";
18900         description
18901           "Configure a SNMP context";
18902         list context_word {
18903           tailf:cli-drop-node-name;
18904           tailf:cli-suppress-mode;
18905           key "context_word";
18906           leaf context_word {
18907             tailf:info "Context Name";
18908             description
18909               "Context Name";
18910             type string;
18911           }
18912         }
18913       }
18914     }
18915   }
18916
18917   grouping bgp-path-range-grouping {
18918     container attibute_type {
18919       leaf type {
18920         tailf:info "path attribute type";
18921         description
18922           "path attribute type";
18923         type uint8 {
18924           range "1..255";
18925         }
18926       }
18927       leaf in {
18928         tailf:info "Perform inbound path-attribute filtering";
18929         description
18930           "Perform inbound path-attribute filtering";
18931         type empty;
18932       }
18933     }
18934     container range {
18935       leaf start_value {
18936         tailf:info "path attribute range start value";
18937         description
18938           "path attribute range start value";
18939         type uint8 {
18940           range "1..255";
18941         }
18942       }
18943       leaf end_value {
18944         tailf:info "path attribute range end value";
18945         description
18946           "path attribute range end value";
18947         type uint8 {
18948           range "1..255";
18949         }
18950       }
18951       leaf in {
18952         tailf:info "Perform inbound path-attribute filtering";
18953         description
18954           "Perform inbound path-attribute filtering";
18955         type empty;
18956       }
18957     }
18958   }
18959
18960   grouping ospfv3-grouping {
18961     container authentication {
18962       tailf:info "Authentication parameters";
18963       description
18964         "Authentication parameters";
18965       leaf mode {
18966         tailf:info "Authentication operation mode";
18967         description
18968           "Authentication operation mode";
18969         type enumeration {
18970           enum "deployment" {
18971             tailf:info "Deployment mode of operation";
18972           }
18973           enum "strict" {
18974             tailf:info "Never use expired keys";
18975           }
18976         }
18977       }
18978     }
18979     container graceful-restart {
18980       tailf:info "Graceful-restart options";
18981       description
18982         "Graceful-restart options";
18983       presence "true";
18984       container helper {
18985         tailf:info "helper support";
18986         description
18987           "helper support";
18988         presence "true";
18989         leaf disable {
18990           tailf:info "disable helper support";
18991           description
18992             "disable helper support";
18993           type empty;
18994         }
18995         leaf strict-lsa-checking {
18996           tailf:info "enable helper strict LSA checking";
18997           description
18998             "enable helper strict LSA checking";
18999           type empty;
19000         }
19001       }
19002       leaf restart-interval {
19003         tailf:info "Graceful restart interval";
19004         description
19005           "Graceful restart interval";
19006         type uint16 {
19007           tailf:info "<1-1800>;;Maximum route lifetime following restart, in seconds";
19008         }
19009       }
19010     }
19011     container manet {
19012       tailf:info "Specify MANET OSPF parameters";
19013       description
19014         "Specify MANET OSPF parameters";
19015       container cache {
19016         tailf:info "Specify MANET cache sizes";
19017         description
19018           "Specify MANET cache sizes";
19019         leaf acknowledgement {
19020           tailf:info "Specify MANET acknowledgement cache size";
19021           description
19022             "Specify MANET acknowledgement cache size";
19023           type uint64 {
19024             tailf:info "<0-4294967295>;;Maximum number of acknowledgements in cache";
19025             range "0..4294967295";
19026           }
19027         }
19028         leaf update {
19029           tailf:info "Specify MANET LSA cache size";
19030           description
19031             "Specify MANET LSA cache size";
19032           type uint64 {
19033             tailf:info "<0-4294967295>;;Maximum number of acknowledgements in cache";
19034             range "0..4294967295";
19035           }
19036         }
19037       }
19038       leaf hello {
19039         tailf:info "Unicast Hellos rather than multicast";
19040         description
19041           "Unicast Hellos rather than multicast";
19042         type enumeration {
19043           enum "unicast" {
19044             tailf:info "Unicast Hello requests and responses rather than multicast";
19045           }
19046         }
19047       }
19048       container peering {
19049         tailf:info "MANET OSPF Smart Peering";
19050         description
19051           "MANET OSPF Smart Peering";
19052         container selective {
19053           tailf:info "Enable selective peering";
19054           description
19055             "Enable selective peering";
19056           leaf disable {
19057             tailf:info "Disable selective peering";
19058             description
19059               "Disable selective peering";
19060             tailf:cli-full-command;
19061             type empty;
19062           }
19063           leaf per-interface {
19064             tailf:info "Select peers per interface rather than per node";
19065             description
19066               "Select peers per interface rather than per node";
19067             type empty;
19068           }
19069           leaf redundancy {
19070             tailf:info "Redundant paths";
19071             description
19072               "Redundant paths";
19073             type uint8 {
19074               tailf:info "<0-10>;; Number of redundant OSPF paths";
19075             }
19076           }
19077         }
19078       }
19079       leaf willingness {
19080         tailf:info "Specify Relay willingness value";
19081         description
19082           "Specify Relay willingness value";
19083         type uint8 {
19084           tailf:info "<0-255>;;Relay willingness value";
19085           range "0..255";
19086         }
19087       }
19088     }
19089   }
19090
19091   grouping ospfv3-address-family-grouping {
19092     container authentication {
19093       tailf:info "Authentication parameters";
19094       description
19095         "Authentication parameters";
19096       leaf mode {
19097         tailf:info "Authentication operation mode";
19098         description
19099           "Authentication operation mode";
19100         type enumeration {
19101           enum "deployment" {
19102             tailf:info "Deployment mode of operation";
19103           }
19104           enum "normal" {
19105             tailf:info "Normal mode of operation";
19106           }
19107           enum "strict" {
19108             tailf:info "Never use expired keys";
19109           }
19110         }
19111       }
19112     }
19113     container graceful-restart {
19114       tailf:info "Graceful-restart options";
19115       description
19116         "Graceful-restart options";
19117       presence "true";
19118       leaf disable {
19119         tailf:info "Graceful restart disable";
19120         description
19121           "Graceful restart disable";
19122         type empty;
19123       }
19124       container helper {
19125         tailf:info "helper support";
19126         description
19127           "helper support";
19128         presence "true";
19129         leaf disable {
19130           tailf:info "disable helper support";
19131           description
19132             "disable helper support";
19133           type empty;
19134         }
19135         leaf strict-lsa-checking {
19136           tailf:info "enable helper strict LSA checking";
19137           description
19138             "enable helper strict LSA checking";
19139           type empty;
19140         }
19141       }
19142       leaf restart-interval {
19143         tailf:info "Graceful restart interval";
19144         description
19145           "Graceful restart interval";
19146         type uint16 {
19147           tailf:info "<1-1800>;;Maximum route lifetime following restart, in seconds";
19148         }
19149       }
19150     }
19151     container manet {
19152       tailf:info "Specify MANET OSPF parameters";
19153       description
19154         "Specify MANET OSPF parameters";
19155       container cache {
19156         tailf:info "Specify MANET cache sizes";
19157         description
19158           "Specify MANET cache sizes";
19159         leaf acknowledgement {
19160           tailf:info "Specify MANET acknowledgement cache size";
19161           description
19162             "Specify MANET acknowledgement cache size";
19163           type uint64 {
19164             tailf:info "<0-4294967295>;;Maximum number of acknowledgements in cache";
19165             range "0..4294967295";
19166           }
19167         }
19168         leaf update {
19169           tailf:info "Specify MANET LSA cache size";
19170           description
19171             "Specify MANET LSA cache size";
19172           type uint64 {
19173             tailf:info "<0-4294967295>;;Maximum number of acknowledgements in cache";
19174             range "0..4294967295";
19175           }
19176         }
19177       }
19178       leaf hello {
19179         tailf:info "Unicast Hellos rather than multicast";
19180         description
19181           "Unicast Hellos rather than multicast";
19182         type enumeration {
19183           enum "unicast" {
19184             tailf:info "Unicast Hello requests and responses rather than multicast";
19185           }
19186           enum "multicast" {
19187             tailf:info "Multicast Hello requests and responses rather than unicast";
19188           }
19189         }
19190       }
19191       container peering {
19192         tailf:info "MANET OSPF Smart Peering";
19193         description
19194           "MANET OSPF Smart Peering";
19195         container selective {
19196           tailf:info "Enable selective peering";
19197           description
19198             "Enable selective peering";
19199           leaf disable {
19200             tailf:info "Disable selective peering";
19201             description
19202               "Disable selective peering";
19203             tailf:cli-full-command;
19204             type empty;
19205           }
19206           leaf per-interface {
19207             tailf:info "Select peers per interface rather than per node";
19208             description
19209               "Select peers per interface rather than per node";
19210             type empty;
19211           }
19212           leaf redundancy {
19213             tailf:info "Redundant paths";
19214             description
19215               "Redundant paths";
19216             type uint8 {
19217               tailf:info "<0-10>;; Number of redundant OSPF paths";
19218             }
19219           }
19220         }
19221       }
19222       leaf willingness {
19223         tailf:info "Specify Relay willingness value";
19224         description
19225           "Specify Relay willingness value";
19226         type uint8 {
19227           tailf:info "<0-255>;;Relay willingness value";
19228           range "0..255";
19229         }
19230       }
19231     }
19232   }
19233
19234   grouping ospf-ospfv3-common-address-family-grouping {
19235     container capability {
19236       tailf:info "Enable specific OSPF feature";
19237       description
19238         "Enable specific OSPF feature";
19239       leaf capability-type {
19240         tailf:cli-drop-node-name;
19241         type enumeration {
19242           enum "lls" {
19243             tailf:info "Link-local Signaling (LLS) support";
19244           }
19245           enum "opaque" {
19246             tailf:info "Opaque LSA";
19247           }
19248           enum "transit" {
19249             tailf:info "Transit Area";
19250           }
19251           enum "vrf-lite" {
19252             tailf:info "vrf-lite";
19253           }
19254         }
19255       }
19256     }
19257     container compatible {
19258       tailf:info "OSPF compatibility list";
19259       description
19260         "OSPF compatibility list";
19261       leaf rfc1583 {
19262         tailf:info "Compatible with RFC 1583";
19263         description
19264           "Compatible with RFC 1583";
19265         type empty;
19266       }
19267       leaf rfc1587 {
19268         tailf:info "Compatible with RFC 1587";
19269         description
19270           "Compatible with RFC 1587";
19271         type empty;
19272       }
19273       leaf rfc5243 {
19274         tailf:info "Compatible with RFC 5243";
19275         description
19276           "Compatible with RFC 5243";
19277         type empty;
19278       }
19279     }
19280     container default-information {
19281       tailf:info "Control distribution of default information";
19282       description
19283         "Control distribution of default information";
19284       container originate {
19285         tailf:info "Distribute a default route";
19286         description
19287           "Distribute a default route";
19288         presence "Distribute a default route";
19289         leaf always {
19290           tailf:info "Always advertise default route";
19291           description
19292             "Always advertise default route";
19293           type empty;
19294         }
19295         leaf metric {
19296           tailf:info "OSPF default metric";
19297           description
19298             "OSPF default metric";
19299           type uint32 {
19300             range "0 .. 16777214";
19301             tailf:info "<0-16777214>;;OSPF metric";
19302           }
19303           tailf:cli-no-value-on-delete;
19304         }
19305         leaf metric-type {
19306           tailf:info "OSPF metric type for default routes";
19307           description
19308             "OSPF metric type for default routes";
19309           type ospf-metric-type;
19310           tailf:cli-no-value-on-delete;
19311         }
19312         leaf route-map {
19313           tailf:info "Route map reference";
19314           description
19315             "Route map reference";
19316           type string {
19317             tailf:info "WORD;;Route map name";
19318           }
19319           tailf:cli-no-value-on-delete;
19320         }
19321       }
19322     }
19323     leaf default-metric {
19324       tailf:info "Set metric of redistributed routes";
19325       description
19326         "Set metric of redistributed routes";
19327       tailf:cli-full-command;
19328       type uint32 {
19329         range "1 .. 16777214";
19330         tailf:info "<1-16777214>;;OSPF default metric";
19331       }
19332     }
19333     container discard-route {
19334       tailf:info "Enable or disable discard-route installation";
19335       description
19336         "Enable or disable discard-route installation";
19337       presence "Enable or disable discard-route installation";
19338       tailf:cli-compact-syntax;
19339       leaf external {
19340         tailf:info "Discard route for redistributed summarised routes";
19341         description
19342           "Discard route for redistributed summarised routes";
19343         type empty;
19344       }
19345       leaf internal {
19346         tailf:info "Discard route for summarised internal routes";
19347         description
19348           "Discard route for summarised internal routes";
19349         type empty;
19350       }
19351       leaf metric {
19352         tailf:cli-drop-node-name;
19353         type uint32 {
19354           range "1 .. 255";
19355           tailf:info "<1-255>;;Administrative distance for redistributed summarised routes";
19356         }
19357       }
19358     }
19359     container distance {
19360       tailf:cli-compact-syntax;
19361       tailf:info "Define an administrative distance";
19362       description
19363         "Define an administrative distance";
19364       container ospf-distance {
19365         tailf:cli-compact-syntax;
19366         tailf:cli-drop-node-name;
19367         leaf distance {
19368           tailf:cli-drop-node-name;
19369           type uint32 {
19370             range "1 .. 255";
19371             tailf:info "<1-255>;;OSPF Administrative distance";
19372           }
19373         }
19374         tailf:cli-sequence-commands;
19375         leaf ip {
19376           tailf:cli-drop-node-name;
19377           tailf:cli-incomplete-command;
19378           type inet:ipv4-address {
19379             tailf:info "A.B.C.D;;IP source address";
19380           }
19381         }
19382         leaf wildcard {
19383           tailf:cli-drop-node-name;
19384           type inet:ipv4-address {
19385             tailf:info "A.B.C.D;;Wildcard bits";
19386           }
19387         }
19388         leaf acl-name {
19389           tailf:cli-drop-node-name;
19390           type access-list-standard-id-type;
19391           tailf:cli-no-value-on-delete;
19392         }
19393       }
19394       container ospf {
19395         tailf:info "OSPF routes Administrative distance";
19396         description
19397           "OSPF routes Administrative distance";
19398         leaf external {
19399           tailf:info "External routes";
19400           description
19401             "External routes";
19402           type uint32 {
19403             range "1 .. 255";
19404             tailf:info "<1-255>;;Distance for external routes";
19405           }
19406           tailf:cli-suppress-no;
19407           tailf:cli-no-value-on-delete;
19408           tailf:cli-no-name-on-delete;
19409         }
19410         leaf inter-area {
19411           tailf:info "Inter-area routes";
19412           description
19413             "Inter-area routes";
19414           type uint32 {
19415             range "1 .. 255";
19416             tailf:info "<1-255>;;Distance for inter-area routes";
19417           }
19418           tailf:cli-suppress-no;
19419           tailf:cli-no-name-on-delete;
19420           tailf:cli-no-value-on-delete;
19421         }
19422         leaf intra-area {
19423           tailf:info "Intra-area routes";
19424           description
19425             "Intra-area routes";
19426           type uint32 {
19427             range "1 .. 255";
19428             tailf:info "<1-255>;;Distance for intra-area routes";
19429           }
19430           tailf:cli-suppress-no;
19431           tailf:cli-no-name-on-delete;
19432           tailf:cli-no-value-on-delete;
19433         }
19434       }
19435     }
19436     leaf maximum-paths {
19437       tailf:info "Forward packets over multiple paths";
19438       description
19439         "Forward packets over multiple paths";
19440       tailf:cli-full-command;
19441       type uint32 {
19442         range "1 .. 32";
19443         tailf:info "<1-32>;;Number of paths";
19444       }
19445     }
19446     container redistribute {
19447       tailf:info "Redistribute information from another routing protocol";
19448       description
19449         "Redistribute information from another routing protocol";
19450       uses ospf-redistribute-top-grouping;
19451       container maximum-prefix {
19452         tailf:info "Maximum number of prefixes redistributed to protocol";
19453         description
19454           "Maximum number of prefixes redistributed to protocol";
19455         tailf:cli-sequence-commands;
19456         tailf:cli-compact-syntax;
19457         leaf number {
19458           tailf:cli-drop-node-name;
19459           type uint32 {
19460             range "1 .. 4294967295";
19461             tailf:info "<1-4294967295>;;Maximum number of IP prefixes redistributed";
19462           }
19463         }
19464         container threshold-warning-only-container {
19465           tailf:cli-compact-syntax;
19466           tailf:cli-drop-node-name;
19467           leaf threshold {
19468             tailf:cli-drop-node-name;
19469             type uint32 {
19470               range "1 .. 100";
19471               tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
19472             }
19473           }
19474           leaf warning-only {
19475             tailf:info "Only give warning message when limit is exceeded";
19476             description
19477               "Only give warning message when limit is exceeded";
19478             tailf:cli-full-command;
19479             type empty;
19480           }
19481         }
19482       }
19483       container vrf {
19484         tailf:info "Specify a source VRF";
19485         description
19486           "Specify a source VRF";
19487         list non-global-vrf {
19488           tailf:cli-drop-node-name;
19489           tailf:cli-suppress-mode;
19490           tailf:cli-diff-dependency "/ios:native/ip/vrf";
19491           tailf:cli-diff-dependency "/ios:native/vrf/definition";
19492           key "name";
19493           leaf name {
19494             tailf:cli-incomplete-command;
19495             type string {
19496               tailf:info "WORD;;Source VRF name";
19497             }
19498           }
19499           uses ospf-redistribute-top-grouping;
19500         }
19501         container global {
19502           tailf:info "global VRF";
19503           description
19504             "global VRF";
19505           tailf:cli-compact-syntax;
19506           uses ospf-redistribute-top-grouping;
19507         }
19508       }
19509     }
19510   }
19511
19512   grouping ospf-authentication-key-grouping {
19513     container authentication-key {
19514       tailf:info "Set authentication key";
19515       description
19516         "Set authentication key";
19517       tailf:cli-sequence-commands;
19518       tailf:cli-compact-syntax;
19519       leaf auth-type {
19520         tailf:cli-drop-node-name;
19521         type uint8 {
19522           range "0 .. 7";
19523           tailf:info "<0-7>;;Encryption type (0 for not yet encrypted, 7 for proprietary)";
19524         }
19525       }
19526       leaf auth-key {
19527         tailf:cli-drop-node-name;
19528         tailf:cli-full-command;
19529         tailf:cli-multi-value;
19530         type string {
19531           tailf:info "WORD;;Authentication key (8 chars)";
19532         }
19533       }
19534     }
19535   }
19536
19537   grouping ospf-area-virtual-link-grouping {
19538     uses ospf-authentication-key-grouping;
19539     list message-digest-key {
19540       tailf:info "Set message digest key";
19541       description
19542         "Set message digest key";
19543       tailf:cli-suppress-mode;
19544       tailf:cli-delete-when-empty;
19545       tailf:cli-incomplete-command;
19546       key "id";
19547       leaf id {
19548         tailf:cli-suppress-range;
19549         type uint8 {
19550           range "1 .. 255";
19551           tailf:info "<1-255>;;Key ID";
19552         }
19553       }
19554       container md5 {
19555         tailf:info "Use MD5 algorithm";
19556         description
19557           "Use MD5 algorithm";
19558         tailf:cli-sequence-commands;
19559         leaf auth-type {
19560           tailf:cli-drop-node-name;
19561           tailf:cli-optional-in-sequence;
19562           type uint8 {
19563             range "0 .. 7";
19564             tailf:info "<0-7>;;Encryption type (0 for not yet encrypted, 7 for proprietary)";
19565           }
19566         }
19567         leaf auth-key {
19568           tailf:cli-drop-node-name;
19569           type string {
19570             length "1 .. 16";
19571             tailf:info "WORD;;Authentication key (16 chars)";
19572           }
19573         }
19574       }
19575     }
19576   }
19577
19578   grouping ospfv3-af-ipv6-summary-prefix-grouping {
19579     list summary-prefix {
19580       tailf:info "Configure IPv6 summary prefix";
19581       description
19582         "Configure IPv6 summary prefix";
19583       tailf:cli-suppress-mode;
19584       tailf:cli-delete-when-empty;
19585       key "prefix";
19586       leaf prefix {
19587         type inet:ipv6-prefix {
19588           tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix x:x::y/<z>";
19589         }
19590       }
19591       choice tag-no-advertise-choice {
19592         leaf nssa-only {
19593           tailf:info "Limit summary to NSSA areas";
19594           description
19595             "Limit summary to NSSA areas";
19596           type empty;
19597         }
19598         leaf tag {
19599           tailf:info "Set tag";
19600           description
19601             "Set tag";
19602           tailf:cli-full-command;
19603           type uint32 {
19604             range "0 .. 4294967295";
19605             tailf:info "<0-4294967295>;;32-bit tag value";
19606           }
19607         }
19608         leaf not-advertise {
19609           tailf:info "Do not advertise when translating OSPF type-7 LSA";
19610           description
19611             "Do not advertise when translating OSPF type-7 LSA";
19612           type empty;
19613           tailf:cli-full-command;
19614         }
19615       }
19616     }
19617   }
19618
19619   grouping ospf-ospfv3-common-grouping {
19620     list area {
19621       tailf:info "OSPF area parameters";
19622       description
19623         "OSPF area parameters";
19624       tailf:cli-suppress-mode;
19625       tailf:cli-delete-when-empty;
19626       tailf:cli-incomplete-command;
19627       key "id";
19628       leaf id {
19629         tailf:cli-suppress-range;
19630         type ospf-area-type;
19631       }
19632       container authentication {
19633         tailf:info "Enable authentication";
19634         description
19635           "Enable authentication";
19636         presence "true";
19637         leaf message-digest {
19638           tailf:info "Use message-digest authentication";
19639           description
19640             "Use message-digest authentication";
19641           type empty;
19642         }
19643       }
19644       container capability {
19645         tailf:info "Enable area specific capability";
19646         description
19647           "Enable area specific capability";
19648         leaf default-exclusion {
19649           tailf:info "Enable exclusion of links from base topology";
19650           description
19651             "Enable exclusion of links from base topology";
19652           type empty;
19653         }
19654       }
19655       leaf default-cost {
19656         tailf:info "Set the summary default-cost of a NSSA/stub area";
19657         description
19658           "Set the summary default-cost of a NSSA/stub area";
19659         tailf:cli-full-command;
19660         tailf:cli-no-value-on-delete;
19661         type uint32 {
19662           range "0 .. 16777215";
19663           tailf:info "<0-16777215;;Stub's advertised external route metric";
19664         }
19665       }
19666       list filter-list {
19667         tailf:info "Filter networks between OSPF areas";
19668         description
19669           "Filter networks between OSPF areas";
19670         tailf:cli-suppress-mode;
19671         tailf:cli-delete-when-empty;
19672         tailf:cli-compact-syntax;
19673         key "in-out";
19674         leaf prefix {
19675           tailf:cli-prefix-key;
19676           mandatory true;
19677           tailf:info "Filter prefixes between OSPF areas";
19678           description
19679             "Filter prefixes between OSPF areas";
19680           type string {
19681             tailf:info "WORD;;Name of an IP prefix-list";
19682           }
19683         }
19684         leaf in-out {
19685           type enumeration {
19686             enum "in" {
19687               tailf:info "Filter networks sent to this area";
19688             }
19689             enum "out" {
19690               tailf:info "Filter networks sent from this area";
19691             }
19692           }
19693         }
19694       }
19695       container nssa {
19696         tailf:info "Specify a NSSA area";
19697         description
19698           "Specify a NSSA area";
19699         presence "Specify a NSSA area";
19700         container default-information-originate {
19701           tailf:cli-flatten-container;
19702           tailf:info "Originate Type 7 default into NSSA area";
19703           description
19704             "Originate Type 7 default into NSSA area";
19705           presence "Originate Type 7 default into NSSA area";
19706           leaf metric {
19707             tailf:info "OSPF default metric";
19708             description
19709               "OSPF default metric";
19710             type int32 {
19711               range "0 .. 16777214";
19712               tailf:info "<0-16777214>;;OSPF metric";
19713             }
19714             tailf:cli-no-value-on-delete;
19715             tailf:cli-no-name-on-delete;
19716             tailf:cli-suppress-no;
19717           }
19718           leaf metric-type {
19719             tailf:info "OSPF metric type for default routes";
19720             description
19721               "OSPF metric type for default routes";
19722             type ospf-metric-type;
19723           }
19724           leaf no-ext-capability {
19725             tailf:info "Do not send domain specific capabilities into NSSA";
19726             description
19727               "Do not send domain specific capabilities into NSSA";
19728             type empty;
19729           }
19730           leaf no-redistribution {
19731             tailf:info "No redistribution into this NSSA area";
19732             description
19733               "No redistribution into this NSSA area";
19734             type empty;
19735           }
19736           leaf no-summary {
19737             tailf:info "Do not send summary LSA into NSSA";
19738             description
19739               "Do not send summary LSA into NSSA";
19740             type empty;
19741           }
19742           leaf nssa-only {
19743             tailf:info "Limit default advertisement to this NSSA area";
19744             description
19745               "Limit default advertisement to this NSSA area";
19746             type empty;
19747           }
19748           container translate {
19749             tailf:info "Translate LSA";
19750             description
19751               "Translate LSA";
19752             container type7 {
19753               tailf:info "From Type 7 to Type 5";
19754               description
19755                 "From Type 7 to Type 5";
19756               leaf always {
19757                 tailf:info "Always translate LSAs on this ABR";
19758                 description
19759                   "Always translate LSAs on this ABR";
19760                 type empty;
19761               }
19762               leaf suppress-fa {
19763                 tailf:info "Suppress forwarding address in translated LSAs";
19764                 description
19765                   "Suppress forwarding address in translated LSAs";
19766                 type empty;
19767               }
19768             }
19769           }
19770         }
19771         leaf no-ext-capability {
19772           tailf:info "Do not send domain specific capabilities into NSSA";
19773           description
19774             "Do not send domain specific capabilities into NSSA";
19775           type empty;
19776         }
19777         leaf no-redistribution {
19778           tailf:info "No redistribution into this NSSA area";
19779           description
19780             "No redistribution into this NSSA area";
19781           type empty;
19782         }
19783         leaf no-summary {
19784           tailf:info "Do not send summary LSA into NSSA";
19785           description
19786             "Do not send summary LSA into NSSA";
19787           type empty;
19788         }
19789         leaf nssa-only {
19790           tailf:info "Limit default advertisement to this NSSA area";
19791           description
19792             "Limit default advertisement to this NSSA area";
19793           type empty;
19794         }
19795         container translate {
19796           tailf:info "Translate LSA";
19797           description
19798             "Translate LSA";
19799           container type7 {
19800             tailf:info "From Type 7 to Type 5";
19801             description
19802               "From Type 7 to Type 5";
19803             leaf always {
19804               tailf:info "Always translate LSAs on this ABR";
19805               description
19806                 "Always translate LSAs on this ABR";
19807               type empty;
19808             }
19809             leaf suppress-fa {
19810               tailf:info "Suppress forwarding address in translated LSAs";
19811               description
19812                 "Suppress forwarding address in translated LSAs";
19813               type empty;
19814             }
19815           }
19816         }
19817       }
19818       list range {
19819         tailf:info "Summarize routes matching address/mask (border routers only)";
19820         description
19821           "Summarize routes matching address/mask (border routers only)";
19822         tailf:cli-suppress-mode;
19823         tailf:cli-delete-when-empty;
19824         key "ip mask";
19825         leaf ip {
19826           type inet:ipv4-address {
19827             tailf:info "A.B.C.D;;IP address to match";
19828           }
19829         }
19830         leaf mask {
19831           type inet:ipv4-address {
19832             tailf:info "A.B.C.D;;IP mask for address";
19833           }
19834         }
19835         choice advertise-choice {
19836           leaf advertise {
19837             tailf:info "Advertise this range (default)";
19838             description
19839               "Advertise this range (default)";
19840             type empty;
19841           }
19842           leaf not-advertise {
19843             tailf:info "DoNotAdvertise this range";
19844             description
19845               "DoNotAdvertise this range";
19846             type empty;
19847           }
19848         }
19849         leaf cost {
19850           tailf:info "User specified metric for this range";
19851           description
19852             "User specified metric for this range";
19853           tailf:cli-full-command;
19854           type uint32 {
19855             range "0 .. 16777215";
19856             tailf:info "<0-16777215>;;Advertised metric for this range";
19857           }
19858         }
19859       }
19860       list sham-link {
19861         tailf:info "Define a sham link and its parameters";
19862         description
19863           "Define a sham link and its parameters";
19864         tailf:cli-suppress-mode;
19865         tailf:cli-delete-when-empty;
19866         key "source dest";
19867         leaf source {
19868           type inet:ip-address {
19869             tailf:info "A.B.C.D/X:X:X:X::X;;IP addr associated with sham-link source";
19870           }
19871         }
19872         leaf dest {
19873           type inet:ip-address {
19874             tailf:info "A.B.C.D/X:X:X:X::X;;IP addr associated with sham-link destination";
19875           }
19876         }
19877         leaf cost {
19878           tailf:info "Associate a cost with the sham-link";
19879           description
19880             "Associate a cost with the sham-link";
19881           type uint16 {
19882             range "0 .. 65535";
19883             tailf:info "<1-65535>;;Cost of the sham-link";
19884           }
19885         }
19886         container ttl-security {
19887           tailf:info "TTL security check";
19888           description
19889             "TTL security check";
19890           tailf:cli-flatten-container;
19891           leaf hops {
19892             tailf:info "IP hops";
19893             description
19894               "IP hops";
19895             type uint8 {
19896               tailf:info "<1-254>;;maximum number of hops allowed";
19897             }
19898           }
19899         }
19900       }
19901       container stub {
19902         tailf:info "Specify a stub area";
19903         description
19904           "Specify a stub area";
19905         presence "Specify a stub area";
19906         leaf no-ext-capability {
19907           tailf:info "Do not send domain specific capabilities into stub area";
19908           description
19909             "Do not send domain specific capabilities into stub area";
19910           type empty;
19911         }
19912         leaf no-summary {
19913           tailf:info "Do not send summary LSA into stub area";
19914           description
19915             "Do not send summary LSA into stub area";
19916           tailf:cli-full-command;
19917           type empty;
19918         }
19919       }
19920       list virtual-link {
19921         tailf:info "Define a virtual link and its parameters";
19922         description
19923           "Define a virtual link and its parameters";
19924         tailf:cli-suppress-mode;
19925         tailf:cli-delete-when-empty;
19926         key "id";
19927         leaf id {
19928           type inet:ip-address {
19929             tailf:info "A.B.C.D/X:X:X:X::X;;ID (IP addr) associated with virtual link neighbor";
19930           }
19931         }
19932         container authentication {
19933           tailf:info "Set authentication type";
19934           description
19935             "Set authentication type";
19936           tailf:cli-flatten-container;
19937           uses ospf-area-virtual-link-grouping;
19938           container key-chain {
19939             tailf:info "Use a key-chain for cryptographic authentication keys";
19940             description
19941               "Use a key-chain for cryptographic authentication keys";
19942             tailf:cli-compact-syntax;
19943             leaf name {
19944               tailf:cli-drop-node-name;
19945               type string {
19946                 tailf:info " WORD  Key chain name";
19947               }
19948             }
19949             uses ospf-area-virtual-link-grouping;
19950           }
19951           container message-digest {
19952             tailf:info "Message-digest authentication";
19953             description
19954               "Message-digest authentication";
19955             uses ospf-area-virtual-link-grouping;
19956           }
19957           leaf null {
19958             tailf:info "No authentication";
19959             description
19960               "No authentication";
19961             type empty;
19962           }
19963         }
19964         container hello-interval {
19965           tailf:info "Hello packet interval";
19966           description
19967             "Hello packet interval";
19968           tailf:cli-compact-syntax;
19969           leaf hello-interval-value {
19970             tailf:cli-no-value-on-delete;
19971             tailf:cli-drop-node-name;
19972             type int32 {
19973               range "1 .. 8192";
19974               tailf:info "<1-8192;;Seconds>";
19975             }
19976           }
19977         }
19978         container dead-interval {
19979           tailf:info "Dead router detection time";
19980           description
19981             "Dead router detection time";
19982           tailf:cli-compact-syntax;
19983           leaf dead-interval-value {
19984             tailf:cli-no-value-on-delete;
19985             tailf:cli-drop-node-name;
19986             type uint16 {
19987               range "1 .. 8192";
19988               tailf:info "<1-8192;;Seconds>";
19989             }
19990           }
19991         }
19992         container retransmit-interval {
19993           tailf:info "LSA retransmit interval";
19994           description
19995             "LSA retransmit interval";
19996           tailf:cli-compact-syntax;
19997           leaf retransmit-interval-value {
19998             tailf:cli-drop-node-name;
19999             type uint16 {
20000               range "1 .. 8192";
20001               tailf:info "<1-8192>;;Seconds";
20002             }
20003             tailf:cli-no-value-on-delete;
20004           }
20005         }
20006         container transmit-delay {
20007           tailf:info "LSA transmission delay";
20008           description
20009             "LSA transmission delay";
20010           tailf:cli-compact-syntax;
20011           leaf transmit-delay-value {
20012             tailf:cli-drop-node-name;
20013             type uint16 {
20014               range "1 .. 8192";
20015               tailf:info "<1-8192>;;Seconds";
20016             }
20017             tailf:cli-no-value-on-delete;
20018           }
20019         }
20020         container topology {
20021           tailf:info "Disable virtual link on topology";
20022           description
20023             "Disable virtual link on topology";
20024           tailf:cli-compact-syntax;
20025           leaf disable {
20026             tailf:info "Disable virtual link";
20027             description
20028               "Disable virtual link";
20029             type empty;
20030           }
20031         }
20032         container ttl-security {
20033           tailf:info "TTL security check";
20034           description
20035             "TTL security check";
20036           tailf:cli-compact-syntax;
20037           leaf hops {
20038             tailf:info "IP hops";
20039             description
20040               "IP hops";
20041             type uint8 {
20042               tailf:info "<1-254>  maximum number of hops allowed";
20043               range "1..254";
20044             }
20045           }
20046         }
20047         uses ospf-area-virtual-link-grouping;
20048       }
20049     }
20050     container auto-cost {
20051       tailf:info "Calculate OSPF interface cost according to bandwidth";
20052       description
20053         "Calculate OSPF interface cost according to bandwidth";
20054       presence "Calculate OSPF interface cost according to bandwidth";
20055       leaf reference-bandwidth {
20056         tailf:info "Use reference bandwidth method to assign OSPF cost";
20057         description
20058           "Use reference bandwidth method to assign OSPF cost";
20059         type uint32 {
20060           tailf:info "<1-4294967>;;The reference bandwidth in terms of Mbits per second";
20061           range "1 .. 4294967";
20062         }
20063       }
20064     }
20065     container event-log {
20066       tailf:info "OSPF Event Logging";
20067       description
20068         "OSPF Event Logging";
20069       presence "true";
20070       leaf one-shot {
20071         tailf:info "Disable Logging When Log Buffer Becomes Full";
20072         description
20073           "Disable Logging When Log Buffer Becomes Full";
20074         type empty;
20075       }
20076       leaf pause {
20077         tailf:info "Pause Event Logging";
20078         description
20079           "Pause Event Logging";
20080         type empty;
20081       }
20082       leaf size {
20083         tailf:info "Maximum Number of Events Stored in the Event Log";
20084         description
20085           "Maximum Number of Events Stored in the Event Log";
20086         type uint32 {
20087           tailf:info "<1-65534>;;Number of Events";
20088           range "1..65534";
20089         }
20090       }
20091     }
20092     container bfd {
20093       tailf:info "BFD configuration commands";
20094       description
20095         "BFD configuration commands";
20096       leaf all-interfaces {
20097         tailf:info "Enable BFD on all interfaces";
20098         description
20099           "Enable BFD on all interfaces";
20100         type empty;
20101       }
20102     }
20103     container interface-id {
20104       tailf:info "Source of the interface ID";
20105       description
20106         "Source of the interface ID";
20107       leaf snmp-if-index {
20108         tailf:info "SNMP MIB ifIndex";
20109         description
20110           "SNMP MIB ifIndex";
20111         type empty;
20112       }
20113     }
20114     container log-adjacency-changes {
20115       tailf:info "Log changes in adjacency state";
20116       description
20117         "Log changes in adjacency state";
20118       presence "true";
20119       leaf detail {
20120         tailf:info "Log all state changes";
20121         description
20122           "Log all state changes";
20123         type empty;
20124       }
20125     }
20126     container max-lsa {
20127       tailf:info "maximum number of LSAs OSPF process will receive";
20128       description
20129         "maximum number of LSAs OSPF process will receive";
20130       tailf:cli-sequence-commands;
20131       tailf:cli-compact-syntax;
20132       leaf number {
20133         tailf:cli-drop-node-name;
20134         type uint32 {
20135           range "1 .. 4294967294";
20136           tailf:info "<1-4294967294>;;Maximum number of non self-generated LSAs this process can receive";
20137         }
20138       }
20139       leaf threshold-value {
20140         tailf:cli-drop-node-name;
20141         tailf:cli-break-sequence-commands;
20142         type uint32 {
20143           range "1 .. 100";
20144           tailf:info "<1-100>;;Threshold value (%) at which to generate a warning msg";
20145         }
20146       }
20147       leaf ignore-count {
20148         tailf:info "maximum number of times adjacencies can be suppressed";
20149         description
20150           "maximum number of times adjacencies can be suppressed";
20151         type uint32 {
20152           range "1 .. 65534";
20153           tailf:info "<1-65534>;;count on how many times adjacencies can be suppressed";
20154         }
20155       }
20156       leaf ignore-time {
20157         tailf:info "time during which all adjacencies are suppressed";
20158         description
20159           "time during which all adjacencies are suppressed";
20160         type uint32 {
20161           range "1 .. 17895";
20162           tailf:info "<1-17895>;;number of minutes during which all adjacencies are suppressed";
20163         }
20164       }
20165       leaf reset-time {
20166         tailf:info "time after which ignore-count is reset to zero";
20167         description
20168           "time after which ignore-count is reset to zero";
20169         type uint32 {
20170           range "2 .. 35791";
20171           tailf:info "<2-35791>;;number of minutes after which ignore-count is reset to zero";
20172         }
20173       }
20174       leaf warning-only {
20175         tailf:info "Only give warning message when limit is exceeded";
20176         description
20177           "Only give warning message when limit is exceeded";
20178         tailf:cli-full-command;
20179         type empty;
20180       }
20181     }
20182     container max-metric {
20183       tailf:info "Set maximum metric";
20184       description
20185         "Set maximum metric";
20186       container router-lsa {
20187         tailf:info "Maximum metric in self-originated router-LSAs";
20188         description
20189           "Maximum metric in self-originated router-LSAs";
20190         presence "Maximum metric in self-originated router-LSAs";
20191         tailf:cli-compact-syntax;
20192         container external-lsa {
20193           tailf:info "Override external-lsa metric with max-metric value";
20194           presence "Override external-lsa metric with max-metric value";
20195           tailf:cli-flatten-container;
20196           description
20197             "Override external-lsa metric with max-metric value";
20198           leaf metric {
20199             tailf:cli-drop-node-name;
20200             type uint32 {
20201               range "1 .. 16777215";
20202               tailf:info "<1-16777215>;;Overriding metric in external-LSAs (default 16711680)";
20203             }
20204           }
20205         }
20206         leaf include-stub {
20207           tailf:info "Set maximum metric for stub links in router-LSAs";
20208           description
20209             "Set maximum metric for stub links in router-LSAs";
20210           type empty;
20211         }
20212         container on-startup {
20213           tailf:info "Set maximum metric temporarily after reboot";
20214           description
20215             "Set maximum metric temporarily after reboot";
20216           presence "Set maximum metric temporarily after reboot";
20217           tailf:cli-flatten-container;
20218           choice time-wait-for-bgp-choice {
20219             leaf time {
20220               tailf:cli-drop-node-name;
20221               type uint32 {
20222                 range "5 .. 86400";
20223                 tailf:info "<5-86400>;;Time, in seconds, router-LSAs are originated with max-metric";
20224               }
20225             }
20226             leaf wait-for-bgp {
20227               tailf:info "Let BGP decide when to originate router-LSA with normal metric";
20228               description
20229                 "Let BGP decide when to originate router-LSA with normal metric";
20230               type empty;
20231             }
20232           }
20233         }
20234         container summary-lsa {
20235           tailf:info "Override summary-lsa metric with max-metric value";
20236           description
20237             "Override summary-lsa metric with max-metric value";
20238           presence "Override summary-lsa metric with max-metric value";
20239           tailf:cli-flatten-container;
20240           leaf metric {
20241             tailf:cli-drop-node-name;
20242             type uint32 {
20243               range "1 .. 16777215";
20244               tailf:info " <1-16777215>;;Overriding metric in summary-LSAs (default 16711680)";
20245             }
20246           }
20247         }
20248       }
20249     }
20250     uses passive-interface-grouping;
20251     container queue-depth {
20252       tailf:info "OSPF Hello/Router process queue depth";
20253       description
20254         "OSPF Hello/Router process queue depth";
20255       container hello {
20256         tailf:info "OSPF Hello process queue depth";
20257         description
20258           "OSPF Hello process queue depth";
20259         uses queue-depth-grouping;
20260       }
20261       container update {
20262         tailf:info "OSPF Router process queue depth";
20263         description
20264           "OSPF Router process queue depth";
20265         uses queue-depth-grouping;
20266       }
20267     }
20268     container timers {
20269       tailf:info "Adjust routing timers";
20270       description
20271         "Adjust routing timers";
20272       container lsa {
20273         tailf:info "OSPF LSA timers";
20274         description
20275           "OSPF LSA timers";
20276         leaf arrival {
20277           tailf:info "OSPF LSA arrival timer";
20278           description
20279             "OSPF LSA arrival timer";
20280           type uint32 {
20281             range "0 .. 600000";
20282             tailf:info "<0-600000>;;The minimum interval in milliseconds between accepting the same LSA";
20283           }
20284         }
20285       }
20286       container pacing {
20287         tailf:info "OSPF pacing timers";
20288         description
20289           "OSPF pacing timers";
20290         leaf flood {
20291           tailf:info "OSPF flood pacing timer";
20292           description
20293             "OSPF flood pacing timer";
20294           tailf:cli-full-command;
20295           type uint32 {
20296             range "5 .. 100";
20297             tailf:info "<5-100>;;The minimum interval in msec to pace limit flooding on interface";
20298           }
20299         }
20300         leaf lsa-group {
20301           tailf:info "OSPF LSA group pacing timer";
20302           description
20303             "OSPF LSA group pacing timer";
20304           tailf:cli-full-command;
20305           type uint32 {
20306             range "10 .. 1800";
20307             tailf:info "<10-1800>;;Interval in sec between group of LSA being refreshed or maxaged";
20308           }
20309         }
20310         leaf retransmission {
20311           tailf:info "OSPF retransmission pacing timer";
20312           description
20313             "OSPF retransmission pacing timer";
20314           tailf:cli-full-command;
20315           type uint32 {
20316             range "5 .. 200";
20317             tailf:info "<5-200>;;The minimum interval in msec between neighbor retransmissions";
20318           }
20319         }
20320       }
20321       container throttle {
20322         tailf:info "OSPF throttle timers";
20323         description
20324           "OSPF throttle timers";
20325         container lsa {
20326           tailf:info "OSPF LSA throttle timers";
20327           description
20328             "OSPF LSA throttle timers";
20329           container all {
20330             tailf:info "For all type of OSPF LSAs";
20331             description
20332               "For all type of OSPF LSAs";
20333             tailf:cli-drop-node-name;
20334             tailf:cli-sequence-commands;
20335             tailf:cli-compact-syntax;
20336             leaf delay {
20337               tailf:cli-drop-node-name;
20338               tailf:cli-incomplete-command;
20339               type uint32 {
20340                 range "0 .. 600000";
20341                 tailf:info "<0-600000>;;Delay to generate first occurrence of LSA in milliseconds";
20342               }
20343             }
20344             leaf min-delay {
20345               tailf:cli-drop-node-name;
20346               tailf:cli-incomplete-command;
20347               type uint32 {
20348                 range "0 .. 600000";
20349                 tailf:info "<0-600000>;;Minimum delay between originating the same LSA in milliseconds";
20350               }
20351             }
20352             leaf max-delay {
20353               tailf:cli-drop-node-name;
20354               type uint32 {
20355                 range "0 .. 600000";
20356                 tailf:info "<0-600000>;;Maximum delay between originating the same LSA in milliseconds";
20357               }
20358             }
20359           }
20360         }
20361         container spf {
20362           tailf:info "OSPF SPF throttle timers";
20363           description
20364             "OSPF SPF throttle timers";
20365           tailf:cli-sequence-commands;
20366           tailf:cli-compact-syntax;
20367           leaf delay {
20368             tailf:cli-drop-node-name;
20369             tailf:cli-incomplete-command;
20370             type uint32 {
20371               range "0 .. 600000";
20372               tailf:info "<0-600000>;;Delay between receiving a change to SPF calculation in milliseconds";
20373             }
20374           }
20375           leaf min-delay {
20376             tailf:cli-drop-node-name;
20377             tailf:cli-incomplete-command;
20378             type uint32 {
20379               range "0 .. 600000";
20380               tailf:info "<0-600000>;;Delay between first and second SPF calculation in milliseconds";
20381             }
20382           }
20383           leaf max-delay {
20384             tailf:cli-drop-node-name;
20385             type uint32 {
20386               range "0 .. 600000";
20387               tailf:info "<0-600000>;;Maximum wait time in milliseconds for SPF calculations";
20388             }
20389           }
20390         }
20391       }
20392     }
20393     leaf router-id {
20394       tailf:cli-full-command;
20395       tailf:info "Override configured router identifier (peers will reset)";
20396       description
20397         "Override configured router identifier (peers will reset)";
20398       type inet:ipv4-address {
20399         tailf:info "A.B.C.D;;Manually configured router identifier";
20400       }
20401     }
20402     leaf nsr {
20403       tailf:cli-full-command;
20404       tailf:info "Enable non-stop routing";
20405       description
20406         "Enable non-stop routing";
20407       type empty;
20408     }
20409     container traffic-share {
20410       tailf:info "How to compute traffic share over alternate paths";
20411       description
20412         "How to compute traffic share over alternate paths";
20413       tailf:cli-sequence-commands;
20414       tailf:cli-compact-syntax;
20415       leaf min {
20416         tailf:info "All traffic shared among min metric paths";
20417         description
20418           "All traffic shared among min metric paths";
20419         type empty;
20420       }
20421       leaf across-interfaces {
20422         tailf:info "Use different interfaces for equal-cost paths";
20423         description
20424           "Use different interfaces for equal-cost paths";
20425         type empty;
20426       }
20427     }
20428     container ttl-security {
20429       tailf:info "TTL security check";
20430       description
20431         "TTL security check";
20432       tailf:cli-sequence-commands;
20433       tailf:cli-compact-syntax;
20434       leaf all-interfaces {
20435         tailf:info "Enable TTL Security on all interfaces";
20436         description
20437           "Enable TTL Security on all interfaces";
20438         type empty;
20439       }
20440       leaf hops {
20441         tailf:info "IP hops";
20442         description
20443           "IP hops";
20444         tailf:cli-break-sequence-commands;
20445         type uint8 {
20446           tailf:info "<1-254>  maximum number of hops allowed";
20447           range "1..254";
20448         }
20449       }
20450     }
20451   }
20452
20453   grouping tie-break-index {
20454     leaf required {
20455       tailf:info "Mandatory repair path attribute";
20456       description
20457         "Mandatory repair path attribute";
20458       tailf:cli-incomplete-command;
20459       type empty;
20460     }
20461     leaf index {
20462       tailf:info "Tiebreak attribute priority";
20463       description
20464         "Tiebreak attribute priority";
20465       tailf:cli-full-command;
20466       type uint8 {
20467         tailf:info "<1-255>;;Tiebreak attribute priority number";
20468         range "1..255";
20469       }
20470     }
20471   }
20472
20473   grouping queue-depth-grouping {
20474     leaf options {
20475       tailf:cli-drop-node-name;
20476       tailf:cli-full-command;
20477       tailf:cli-trim-default;
20478       type union {
20479         type uint32 {
20480           range "1 .. 2147483647";
20481           tailf:info "<1-2147483647>;;maximum numer of packets in the queue";
20482         }
20483         type enumeration {
20484           enum "unlimited" {
20485             tailf:info "Unlimited queue depth";
20486           }
20487         }
20488       }
20489       default "unlimited";
20490     }
20491   }
20492
20493   grouping ospf-redistribute-match-grouping {
20494     leaf metric {
20495       tailf:info "Metric for redistributed routes";
20496       description
20497         "Metric for redistributed routes";
20498       type uint32 {
20499         tailf:info "<0-16777214>;;OSPF default metric";
20500       }
20501     }
20502     leaf metric-type {
20503       tailf:info "OSPF/IS-IS exterior metric type for redistributed routes";
20504       description
20505         "OSPF/IS-IS exterior metric type for redistributed routes";
20506       type enumeration {
20507         enum "1" {
20508           tailf:info "Set OSPF External Type 1 metrics";
20509           tailf:code-name "metric_type_1";
20510         }
20511         enum "2" {
20512           tailf:info "Set OSPF External Type 2 metrics";
20513           tailf:code-name "metric_type_2";
20514         }
20515       }
20516     }
20517     leaf nssa-only {
20518       tailf:info "Limit redistributed routes to NSSA areas";
20519       description
20520         "Limit redistributed routes to NSSA areas";
20521       type empty;
20522     }
20523     leaf subnets {
20524       tailf:info "Consider subnets for redistribution into OSPF";
20525       description
20526         "Consider subnets for redistribution into OSPF";
20527       type empty;
20528     }
20529     leaf route-map {
20530       tailf:info "Route map reference";
20531       description
20532         "Route map reference";
20533       type string {
20534         tailf:info "WORD;;Pointer to route-map entries";
20535       }
20536     }
20537     leaf tag {
20538       tailf:info "Set tag for routes redistributed into OSPF";
20539       description
20540         "Set tag for routes redistributed into OSPF";
20541       type uint32 {
20542         range "0 .. 4294967295";
20543         tailf:info "<0-4294967295>;;32-bit tag value";
20544       }
20545     }
20546   }
20547
20548   grouping ospf-redistribute-top-match-grouping {
20549     container match {
20550       tailf:cli-compact-syntax;
20551       tailf:cli-flatten-container;
20552       tailf:info "Redistribution of OSPF routes";
20553       description
20554         "Redistribution of OSPF routes";
20555       container internal {
20556         presence "Redistribute OSPF internal routes";
20557         tailf:info "Redistribute OSPF internal routes";
20558         description
20559           "Redistribute OSPF internal routes";
20560         tailf:cli-compact-syntax;
20561         tailf:cli-flatten-container;
20562         uses ospf-redistribute-match-grouping;
20563       }
20564       container external {
20565         tailf:info "Redistribute OSPF external routes";
20566         description
20567           "Redistribute OSPF external routes";
20568         presence "Redistribute OSPF external routes";
20569         tailf:cli-compact-syntax;
20570         tailf:cli-flatten-container;
20571         leaf external-routes {
20572           tailf:cli-drop-node-name;
20573           type redist-ospf-external-type;
20574         }
20575         uses ospf-redistribute-match-grouping;
20576       }
20577       container nssa-external {
20578         tailf:info "Redistribute OSPF NSSA external routes";
20579         description
20580           "Redistribute OSPF NSSA external routes";
20581         presence "Redistribute OSPF NSSA external routes";
20582         tailf:cli-compact-syntax;
20583         tailf:cli-flatten-container;
20584         leaf nssa-external-routes {
20585           tailf:cli-drop-node-name;
20586           type redist-ospf-external-type;
20587         }
20588         uses ospf-redistribute-match-grouping;
20589       }
20590     }
20591   }
20592
20593   grouping ospf-iso-igrp-redistribute-grouping {
20594     leaf metric {
20595       tailf:info "Metric for redistributed routes";
20596       description
20597         "Metric for redistributed routes";
20598       type uint32 {
20599         tailf:info "<0-16777214>;;OSPF default metric";
20600       }
20601     }
20602     leaf metric-type {
20603       tailf:info "OSPF/IS-IS exterior metric type for redistributed routes";
20604       description
20605         "OSPF/IS-IS exterior metric type for redistributed routes";
20606       type enumeration {
20607         enum "1" {
20608           tailf:info "Set OSPF External Type 1 metrics";
20609           tailf:code-name "metric_type_1";
20610         }
20611         enum "2" {
20612           tailf:info "Set OSPF External Type 2 metrics";
20613           tailf:code-name "metric_type_2";
20614         }
20615       }
20616     }
20617     leaf tag {
20618       tailf:info "Set tag for routes redistributed into OSPF";
20619       description
20620         "Set tag for routes redistributed into OSPF";
20621       type uint32 {
20622         range "0 .. 4294967295";
20623         tailf:info "<0-4294967295>;;32-bit tag value";
20624       }
20625     }
20626     leaf subnets {
20627       tailf:info "Consider subnets for redistribution into OSPF";
20628       description
20629         "Consider subnets for redistribution into OSPF";
20630       type empty;
20631     }
20632   }
20633
20634   grouping ospf-redistribute-grouping {
20635     container redist-options {
20636       tailf:cli-drop-node-name;
20637       tailf:cli-compact-syntax;
20638       uses ospf-iso-igrp-redistribute-grouping;
20639       leaf route-map {
20640         tailf:info "Route map reference";
20641         description
20642           "Route map reference";
20643         type string {
20644           tailf:info "WORD;;Pointer to route-map entries";
20645         }
20646       }
20647       leaf nssa-only {
20648         tailf:info "Limit redistributed routes to NSSA areas";
20649         description
20650           "Limit redistributed routes to NSSA areas";
20651         type empty;
20652       }
20653     }
20654   }
20655
20656   grouping ospf-redistribute-top-grouping {
20657     list application {
20658       tailf:info "Application";
20659       description
20660         "Application";
20661       tailf:cli-suppress-mode;
20662       key "name";
20663       leaf name {
20664         type string {
20665           tailf:info "WORD;;Application name";
20666         }
20667       }
20668       uses ospf-redistribute-grouping;
20669     }
20670     list bgp {
20671       tailf:info "Border Gateway Protocol (BGP)";
20672       description
20673         "Border Gateway Protocol (BGP)";
20674       tailf:cli-suppress-mode;
20675       key "as-number";
20676       uses ospf-redistribute-bgp-grouping;
20677     }
20678     container connected {
20679       tailf:info "Connected";
20680       description
20681         "Connected";
20682       presence "Connected";
20683       uses ospf-redistribute-grouping;
20684     }
20685     list eigrp {
20686       tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
20687       description
20688         "Enhanced Interior Gateway Routing Protocol (EIGRP)";
20689       tailf:cli-suppress-mode;
20690       key "as-number";
20691       uses ospf-redistribute-bgp-grouping;
20692     }
20693     container isis {
20694       presence "ISO IS-IS";
20695       tailf:info "ISO IS-IS";
20696       description
20697         "ISO IS-IS";
20698       choice isis-level-routes-isis-area-choice {
20699         leaf isis-level-routes {
20700           tailf:cli-drop-node-name;
20701           type enumeration {
20702             enum "level-1" {
20703               tailf:info "IS-IS level-1 routes only";
20704             }
20705             enum "level-2" {
20706               tailf:info "IS-IS level-2 routes only";
20707             }
20708             enum "level-1-2" {
20709               tailf:info "IS-IS level-1 and level-2 routes";
20710             }
20711           }
20712         }
20713         list isis-area {
20714           tailf:cli-suppress-mode;
20715           tailf:cli-delete-when-empty;
20716           tailf:cli-drop-node-name;
20717           key "name";
20718           leaf name {
20719             tailf:cli-disallow-value "level-1|level-2|level-1-2|metric|metric-type|route-map|subnets|tag";
20720             type string {
20721               tailf:info "WORD;;ISO routing area tag";
20722             }
20723           }
20724           leaf isis-level-routes {
20725             tailf:cli-drop-node-name;
20726             type enumeration {
20727               enum "level-1" {
20728                 tailf:info "IS-IS level-1 routes only";
20729               }
20730               enum "level-2" {
20731                 tailf:info "IS-IS level-2 routes only";
20732               }
20733               enum "level-1-2" {
20734                 tailf:info "IS-IS level-1 and level-2 routes";
20735               }
20736             }
20737           }
20738           uses ospf-redistribute-grouping;
20739         }
20740       }
20741       uses ospf-redistribute-grouping;
20742     }
20743     container iso-igrp {
20744       tailf:info "IGRP for OSI networks";
20745       description
20746         "IGRP for OSI networks";
20747       presence "IGRP for OSI networks";
20748       tailf:cli-sequence-commands;
20749       choice area-tag-route-map-choice {
20750         container area-tag-route-map-container {
20751           tailf:cli-drop-node-name;
20752           tailf:cli-flatten-container;
20753           tailf:cli-sequence-commands;
20754           leaf area-tag {
20755             tailf:cli-drop-node-name;
20756             tailf:cli-disallow-value "route-map";
20757             type string {
20758               tailf:info "WORD;;ISO routing area tag";
20759             }
20760           }
20761           leaf route-map {
20762             tailf:info "Route map reference";
20763             description
20764               "Route map reference";
20765             type string {
20766               tailf:info "WORD;;Pointer to route-map entries";
20767             }
20768           }
20769         }
20770         leaf route-map {
20771           tailf:info "Route map reference";
20772           description
20773             "Route map reference";
20774           type string {
20775             tailf:info "WORD;;Pointer to route-map entries";
20776           }
20777         }
20778       }
20779       container iso-igrp-container {
20780         tailf:cli-drop-node-name;
20781         tailf:cli-compact-syntax;
20782         uses ospf-iso-igrp-redistribute-grouping;
20783       }
20784     }
20785     container lisp {
20786       tailf:info "Locator ID Separation Protocol (LISP)";
20787       description
20788         "Locator ID Separation Protocol (LISP)";
20789       uses ospf-redistribute-grouping;
20790     }
20791     container mobile {
20792       tailf:info "Mobile routes";
20793       description
20794         "Mobile routes";
20795       presence "Mobile routes";
20796       uses ospf-redistribute-grouping;
20797     }
20798     container odr {
20799       tailf:info "On Demand stub Routes";
20800       description
20801         "On Demand stub Routes";
20802       presence "On Demand stub Routes";
20803       uses ospf-redistribute-grouping;
20804     }
20805     list ospf {
20806       tailf:info "Open Shortest Path First (OSPF)";
20807       description
20808         "Open Shortest Path First (OSPF)";
20809       tailf:cli-suppress-mode;
20810       tailf:cli-delete-when-empty;
20811       key "id";
20812       leaf id {
20813         tailf:cli-suppress-range;
20814         type uint32 {
20815           range "1 .. 65535";
20816           tailf:info "<1-65535>;;Process ID";
20817         }
20818       }
20819       uses ospf-redistribute-top-match-grouping;
20820       uses ospf-redistribute-match-grouping;
20821       leaf vrf {
20822         tailf:info "VPN Routing/Forwarding Instance";
20823         description
20824           "VPN Routing/Forwarding Instance";
20825         tailf:cli-diff-dependency "/ios:native/ip/vrf";
20826         tailf:cli-diff-dependency "/ios:native/vrf/definition";
20827         type string {
20828           tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
20829         }
20830       }
20831     }
20832     list ospfv3 {
20833       tailf:info "OSPFv3";
20834       description
20835         "OSPFv3";
20836       tailf:cli-suppress-mode;
20837       tailf:cli-delete-when-empty;
20838       key "id";
20839       leaf id {
20840         tailf:cli-suppress-range;
20841         type uint32 {
20842           range "1 .. 65535";
20843           tailf:info "<1-65535>;;Process ID";
20844         }
20845       }
20846       uses ospf-redistribute-top-match-grouping;
20847       uses ospf-redistribute-match-grouping;
20848     }
20849     list rip {
20850       tailf:info "Routing Information Protocol (RIP)";
20851       description
20852         "Routing Information Protocol (RIP)";
20853       tailf:cli-suppress-mode;
20854       tailf:cli-delete-when-empty;
20855       key "id";
20856       leaf id {
20857         description
20858           "User selected string identifying this rip process";
20859         type string {
20860           tailf:info "WORD;;User selected string identifying this process";
20861         }
20862       }
20863       uses ospf-redistribute-grouping;
20864     }
20865     container static {
20866       tailf:info "Static routes";
20867       description
20868         "Static routes";
20869       presence "Static routes";
20870       uses ospf-redistribute-grouping;
20871     }
20872   }
20873
20874   grouping ospf-redistribute-bgp-grouping {
20875     leaf as-number {
20876       type bgp-as-number-type;
20877     }
20878     uses ospf-redistribute-grouping;
20879   }
20880
20881   grouping ospf-snmp-grouping {
20882     container snmp {
20883       tailf:info "Modify snmp parameters";
20884       description
20885         "Modify snmp parameters";
20886       list context {
20887         tailf:info "Configure a SNMP context";
20888         description
20889           "Configure a SNMP context";
20890         tailf:cli-suppress-mode;
20891         key "name";
20892         leaf name {
20893           tailf:info "Context Name";
20894           description
20895             "Context Name";
20896           tailf:cli-drop-node-name;
20897           type string {
20898             tailf:info "WORD;;Context Name";
20899           }
20900         }
20901         container community {
20902           tailf:info "Configure a SNMP v2c Community string and access privs";
20903           description
20904             "Configure a SNMP v2c Community string and access privs";
20905           tailf:cli-compact-syntax;
20906           tailf:cli-sequence-commands;
20907           leaf community-string {
20908             tailf:cli-drop-node-name;
20909             type string {
20910               tailf:info "WORD;;SNMP community string";
20911             }
20912           }
20913           container access {
20914             tailf:cli-drop-node-name;
20915             tailf:cli-flatten-container;
20916             leaf standard-acl {
20917               tailf:cli-drop-node-name;
20918               tailf:cli-full-command;
20919               type uint32 {
20920                 tailf:info "<1-99>;;Standard IP accesslist allowing access with this community string";
20921                 range "1..99";
20922               }
20923             }
20924             leaf expanded-acl {
20925               tailf:cli-drop-node-name;
20926               tailf:cli-full-command;
20927               type uint32 {
20928                 tailf:info "<1300-1999>;;Expanded IP accesslist allowing access with this community string";
20929                 range "1300..1999";
20930               }
20931             }
20932             leaf acl-name {
20933               tailf:cli-drop-node-name;
20934               tailf:cli-full-command;
20935               type string {
20936                 tailf:info "WORD;;Access-list name";
20937               }
20938             }
20939             leaf ipv6 {
20940               tailf:info "Specify IPv6 Named Access-List";
20941               description
20942                 "Specify IPv6 Named Access-List";
20943               tailf:cli-full-command;
20944               type string {
20945                 tailf:info "WORD;;IPv6 Access-list name";
20946               }
20947             }
20948             leaf ro {
20949               tailf:info "Read-only access with this community string";
20950               description
20951                 "Read-only access with this community string";
20952               type empty;
20953             }
20954             leaf rw {
20955               tailf:info "Read-write access with this community string";
20956               description
20957                 "Read-write access with this community string";
20958               type empty;
20959             }
20960           }
20961         }
20962         container user {
20963           tailf:info "Configure a SNMP v3 user";
20964           description
20965             "Configure a SNMP v3 user";
20966           tailf:cli-compact-syntax;
20967           tailf:cli-sequence-commands;
20968           leaf name {
20969             tailf:cli-drop-node-name;
20970             type string {
20971               tailf:info "WORD;;Name of the user";
20972             }
20973           }
20974           container permisssion {
20975             tailf:cli-drop-node-name;
20976             tailf:cli-flatten-container;
20977             container access {
20978               tailf:info "specify an access-list associated with this group";
20979               description
20980                 "specify an access-list associated with this group";
20981               tailf:cli-flatten-container;
20982               leaf standard-acl {
20983                 tailf:cli-drop-node-name;
20984                 tailf:cli-full-command;
20985                 type uint32 {
20986                   tailf:info "<1-99>;;Standard IP accesslist allowing access with this username";
20987                 }
20988               }
20989               leaf acl-name {
20990                 tailf:cli-drop-node-name;
20991                 tailf:cli-full-command;
20992                 type string {
20993                   tailf:info "WORD;;Access-list name";
20994                 }
20995               }
20996               leaf ipv6 {
20997                 tailf:cli-full-command;
20998                 type string {
20999                   tailf:info "WORD;;IPv6 Access-list name";
21000                 }
21001               }
21002             }
21003             container auth {
21004               tailf:info "authentication parameters for the user";
21005               description
21006                 "authentication parameters for the user";
21007               tailf:cli-flatten-container;
21008               leaf md5 {
21009                 tailf:info "Use HMAC MD5 algorithm for authentication";
21010                 description
21011                   "Use HMAC MD5 algorithm for authentication";
21012                 tailf:cli-full-command;
21013                 type string {
21014                   tailf:info "WORD;;authentication password for user";
21015                 }
21016               }
21017               leaf sha {
21018                 tailf:info "Use HMAC SHA algorithm for authentication";
21019                 description
21020                   "Use HMAC SHA algorithm for authentication";
21021                 tailf:cli-full-command;
21022                 type string {
21023                   tailf:info "WORD;;authentication password for user";
21024                 }
21025               }
21026             }
21027             leaf credential {
21028               tailf:info "If the user password is already configured and saved";
21029               description
21030                 "If the user password is already configured and saved";
21031               type empty;
21032             }
21033             leaf encrypted {
21034               tailf:info "specifying passwords as MD5 or SHA digests";
21035               description
21036                 "specifying passwords as MD5 or SHA digests";
21037               type empty;
21038             }
21039           }
21040         }
21041       }
21042     }
21043   }
21044
21045   grouping ospf-address-family-grouping {
21046     uses ospf-snmp-grouping;
21047     container topology {
21048       tailf:info "Associate the routing protocol to a topology instance";
21049       description
21050         "Associate the routing protocol to a topology instance";
21051       tailf:cli-compact-syntax;
21052       tailf:cli-sequence-commands;
21053       leaf name {
21054         tailf:cli-drop-node-name;
21055         type string {
21056           tailf:info "WORD;;Routing topology instance name";
21057         }
21058       }
21059       leaf tid {
21060         tailf:info "Configuring the routing protocol topology tid";
21061         description
21062           "Configuring the routing protocol topology tid";
21063         tailf:cli-optional-in-sequence;
21064         type uint32 {
21065           tailf:info "<32-127>;;Routing topology tid";
21066           range "32..127";
21067         }
21068       }
21069     }
21070   }
21071
21072   grouping router-rip-grouping {
21073     uses address-family-vrf-grouping;
21074     leaf flash-update-threshold {
21075       tailf:info "Specify flash update threshold in second";
21076       description
21077         "Specify flash update threshold in second";
21078       tailf:cli-full-command;
21079       type uint8 {
21080         range "0 .. 30";
21081         tailf:info "<0-30>;;threshold in seconds";
21082       }
21083     }
21084     leaf input-queue {
21085       tailf:info "Specify input queue depth";
21086       description
21087         "Specify input queue depth";
21088       tailf:cli-full-command;
21089       type uint16 {
21090         range "0 .. 1024";
21091         tailf:info "0-1024;;queue depth";
21092       }
21093     }
21094     leaf output-delay {
21095       tailf:info "Interpacket delay for RIP updates";
21096       description
21097         "Interpacket delay for RIP updates";
21098       tailf:cli-full-command;
21099       type uint8 {
21100         range "8 .. 50";
21101         tailf:info "8-50;;Delay in milliseconds";
21102       }
21103     }
21104     uses passive-interface-grouping;
21105     container traffic-share {
21106       tailf:info "How to compute traffic share over alternate paths";
21107       description
21108         "How to compute traffic share over alternate paths";
21109       container min {
21110         tailf:info "All traffic shared among min metric paths";
21111         description
21112           "All traffic shared among min metric paths";
21113         leaf across-interfaces {
21114           tailf:info "Use different interfaces for equal-cost paths";
21115           description
21116             "Use different interfaces for equal-cost paths";
21117           type empty;
21118         }
21119       }
21120     }
21121   }
21122
21123   grouping default-redistribute-grouping {
21124     container connected {
21125       presence "Connected";
21126       tailf:info "Connected";
21127       description
21128         "Connected";
21129       uses rip-metric-route-map-grouping;
21130     }
21131     list bgp {
21132       tailf:info "Border Gateway Protocol (BGP)";
21133       description
21134         "Border Gateway Protocol (BGP)";
21135       tailf:cli-suppress-mode;
21136       tailf:cli-delete-when-empty;
21137       key "as-number";
21138       leaf as-number {
21139         type bgp-as-number-type;
21140       }
21141       uses rip-metric-route-map-grouping;
21142     }
21143     list eigrp {
21144       tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
21145       description
21146         "Enhanced Interior Gateway Routing Protocol (EIGRP)";
21147       tailf:cli-suppress-mode;
21148       tailf:cli-delete-when-empty;
21149       key "as-number";
21150       leaf as-number {
21151         type uint16 {
21152           range "1 .. 65535";
21153           tailf:info "<1-65535>;;Autonomous system number";
21154         }
21155       }
21156       uses rip-metric-route-map-grouping;
21157     }
21158     container isis {
21159       presence "ISO IS-IS";
21160       tailf:info "ISO IS-IS";
21161       description
21162         "ISO IS-IS";
21163       list isis-area {
21164         tailf:cli-suppress-mode;
21165         tailf:cli-delete-when-empty;
21166         tailf:cli-drop-node-name;
21167         key "name";
21168         leaf name {
21169           tailf:cli-disallow-value "level-1|level-2|level-1-2|metric|route-map";
21170           type string {
21171             tailf:info "WORD;;ISO routing area tag";
21172           }
21173         }
21174         uses redist-isis-grouping;
21175       }
21176       uses redist-isis-grouping;
21177     }
21178     container iso-igrp {
21179       presence "IGRP for OSI networks";
21180       tailf:info "IGRP for OSI networks";
21181       description
21182         "IGRP for OSI networks";
21183       list isoigrp-list {
21184         tailf:info "Border Gateway Protocol (BGP)";
21185         description
21186           "Border Gateway Protocol (BGP)";
21187         tailf:cli-suppress-mode;
21188         tailf:cli-delete-when-empty;
21189         tailf:cli-drop-node-name;
21190         key "iso-area-tag";
21191         leaf iso-area-tag {
21192           tailf:cli-disallow-value "route-map";
21193           type string {
21194             tailf:info "WORD;;ISO routing area tag";
21195           }
21196         }
21197         uses rip-iso-igrp-metric-route-map-grouping;
21198       }
21199       uses rip-iso-igrp-metric-route-map-grouping;
21200     }
21201     container mobile {
21202       presence "Mobile routes";
21203       tailf:info "Mobile routes";
21204       description
21205         "Mobile routes";
21206       uses rip-metric-route-map-grouping;
21207     }
21208     container odr {
21209       presence "On Demand stub Routes";
21210       tailf:info "On Demand stub Routes";
21211       description
21212         "On Demand stub Routes";
21213       uses rip-metric-route-map-grouping;
21214     }
21215     list ospf {
21216       tailf:info "Open Shortest Path First (OSPF)";
21217       description
21218         "Open Shortest Path First (OSPF)";
21219       tailf:cli-suppress-mode;
21220       tailf:cli-delete-when-empty;
21221       key "process-id";
21222       leaf process-id {
21223         tailf:cli-suppress-range;
21224         type uint16 {
21225           range "1 .. 65535";
21226           tailf:info "<1-65535>;;Process ID";
21227         }
21228       }
21229       list vrf {
21230         tailf:info "VPN Routing/Forwarding Instance";
21231         description
21232           "VPN Routing/Forwarding Instance";
21233         tailf:cli-diff-dependency "/ios:native/ip/vrf";
21234         tailf:cli-diff-dependency "/ios:native/vrf/definition";
21235         key "name";
21236         leaf name {
21237           type string {
21238             tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
21239           }
21240         }
21241       }
21242       container match {
21243         tailf:cli-compact-syntax;
21244         tailf:cli-flatten-container;
21245         tailf:info "Redistribution of OSPF routes";
21246         description
21247           "Redistribution of OSPF routes";
21248         container internal {
21249           presence "Redistribute OSPF internal routes";
21250           tailf:info "Redistribute OSPF internal routes";
21251           description
21252             "Redistribute OSPF internal routes";
21253           tailf:cli-compact-syntax;
21254           tailf:cli-flatten-container;
21255           uses rip-metric-route-map-grouping;
21256         }
21257         container external {
21258           tailf:info "Redistribute OSPF external routes";
21259           description
21260             "Redistribute OSPF external routes";
21261           presence "Redistribute OSPF external routes";
21262           tailf:cli-compact-syntax;
21263           tailf:cli-flatten-container;
21264           leaf external-routes {
21265             tailf:cli-drop-node-name;
21266             type redist-ospf-external-type;
21267           }
21268           uses rip-metric-route-map-grouping;
21269         }
21270         container nssa-external {
21271           tailf:info "Redistribute OSPF NSSA external routes";
21272           description
21273             "Redistribute OSPF NSSA external routes";
21274           presence "Redistribute OSPF NSSA external routes";
21275           tailf:cli-compact-syntax;
21276           tailf:cli-flatten-container;
21277           leaf nssa-external-routes {
21278             tailf:cli-drop-node-name;
21279             type redist-ospf-external-type;
21280           }
21281           uses rip-metric-route-map-grouping;
21282         }
21283       }
21284       uses rip-metric-route-map-grouping;
21285     }
21286     container static {
21287       presence "Static routes";
21288       tailf:info "Static routes";
21289       description
21290         "Static routes";
21291       uses rip-metric-route-map-grouping;
21292     }
21293     container rip {
21294       presence "Routing Information Protocol (RIP)";
21295       tailf:info "Routing Information Protocol (RIP)";
21296       description
21297         "Routing Information Protocol (RIP)";
21298       uses rip-metric-route-map-grouping;
21299     }
21300   }
21301
21302   grouping ipv6-router-rip-redistribute-grouping {
21303     leaf include-connected {
21304       tailf:info "Include connected";
21305       description
21306         "Include connected";
21307       type empty;
21308     }
21309     leaf metric {
21310       tailf:info "Metric for redistributed routes";
21311       description
21312         "Metric for redistributed routes";
21313       type uint8 {
21314         tailf:info "<1-16>;;Default metric (default is transparent)";
21315         range "1..16";
21316       }
21317     }
21318     leaf route-map {
21319       tailf:info "Route map reference";
21320       description
21321         "Route map reference";
21322       type string {
21323         tailf:info "WORD;;Pointer to route-map entries";
21324       }
21325     }
21326   }
21327
21328   grouping distance-grouping {
21329     container distance {
21330       tailf:cli-compact-syntax;
21331       tailf:info "Define an administrative distance";
21332       description
21333         "Define an administrative distance";
21334       leaf distance-leaf {
21335         tailf:cli-drop-node-name;
21336         tailf:cli-full-command;
21337         type uint8 {
21338           range "1..255";
21339           tailf:info "1-255;;Administrative distance";
21340         }
21341       }
21342       list distance-list {
21343         tailf:cli-suppress-mode;
21344         tailf:cli-delete-when-empty;
21345         tailf:cli-drop-node-name;
21346         key "number ip mask";
21347         leaf number {
21348           tailf:cli-suppress-range;
21349           type uint8 {
21350             range "1 .. 255";
21351             tailf:info "1-255;;Administrative distance";
21352           }
21353         }
21354         leaf ip {
21355           type inet:ipv4-address {
21356             tailf:info "A.B.C.D;;IP source address";
21357           }
21358         }
21359         leaf mask {
21360           type inet:ipv4-address {
21361             tailf:info "A.B.C.D;;Wildcard bits";
21362           }
21363         }
21364       }
21365     }
21366   }
21367
21368   grouping offset-list-grouping {
21369     list offset-list {
21370       tailf:info "Add or subtract offset from RIP metrics";
21371       description
21372         "Add or subtract offset from RIP metrics";
21373       tailf:cli-compact-syntax;
21374       tailf:cli-suppress-mode;
21375       tailf:cli-delete-when-empty;
21376       tailf:cli-suppress-list-no;
21377       tailf:cli-sequence-commands;
21378       key "in-out";
21379       leaf in-out {
21380         tailf:cli-incomplete-command;
21381         type offset-list-in-out-type;
21382       }
21383       leaf offset {
21384         tailf:cli-drop-node-name;
21385         mandatory true;
21386         type uint8 {
21387           range "0 .. 16";
21388           tailf:info "<0-16>;;Offset";
21389         }
21390       }
21391     }
21392   }
21393
21394   grouping default-router-rip-grouping {
21395     leaf auto-summary {
21396       tailf:info "Enable automatic network number summarization";
21397       description
21398         "Enable automatic network number summarization";
21399       type empty;
21400     }
21401     leaf maximum-paths {
21402       tailf:cli-full-command;
21403       tailf:info "Forward packets over multiple paths";
21404       description
21405         "Forward packets over multiple paths";
21406       type uint8 {
21407         range "1 .. 32";
21408         tailf:info "1-32;;Number of paths";
21409       }
21410     }
21411     list neighbor {
21412       tailf:info "Specify a neighbor router";
21413       description
21414         "Specify a neighbor router";
21415       tailf:cli-suppress-mode;
21416       tailf:cli-delete-when-empty;
21417       key "ip";
21418       leaf ip {
21419         type inet:ipv4-address;
21420         tailf:info "A.B.C.D;;Neighbor address";
21421       }
21422     }
21423     list network {
21424       tailf:info "Enable routing on an IP network";
21425       description
21426         "Enable routing on an IP network";
21427       tailf:cli-suppress-mode;
21428       tailf:cli-delete-when-empty;
21429       key "ip";
21430       leaf ip {
21431         type inet:ipv4-address;
21432         tailf:info "A.B.C.D;;Network number";
21433       }
21434     }
21435     leaf validate-update-source {
21436       tailf:info "Perform sanity checks against source address of routing updates";
21437       description
21438         "Perform sanity checks against source address of routing updates";
21439       tailf:cli-full-command;
21440       tailf:cli-boolean-no;
21441       tailf:cli-trim-default;
21442       type boolean;
21443       default "true";
21444     }
21445   }
21446
21447   grouping address-family-vrf-grouping {
21448     uses default-router-rip-grouping;
21449     container default-information {
21450       tailf:cli-incomplete-no;
21451       tailf:info "Control distribution of default information";
21452       description
21453         "Control distribution of default information";
21454       container originate {
21455         tailf:cli-full-no;
21456         presence "Distribute a default route";
21457         tailf:info "Distribute a default route";
21458         description
21459           "Distribute a default route";
21460         leaf route-map {
21461           tailf:info "Route-map reference";
21462           description
21463             "Route-map reference";
21464           tailf:cli-no-value-on-delete;
21465           type string {
21466             tailf:info "WORD;;Route map name";
21467           }
21468         }
21469       }
21470     }
21471     leaf default-metric {
21472       tailf:info "Set metric of redistributed routes";
21473       description
21474         "Set metric of redistributed routes";
21475       tailf:cli-full-command;
21476       type uint32 {
21477         range "1..4294967295";
21478         tailf:info "<1-4294967295>;;Default metric";
21479       }
21480     }
21481     uses distance-grouping;
21482     uses distribute-list-grouping;
21483     uses offset-list-grouping;
21484     container redistribute {
21485       tailf:info "Redistribute information from another routing protocol";
21486       description
21487         "Redistribute information from another routing protocol";
21488       uses rip-metric-route-map-grouping;
21489       uses default-redistribute-grouping;
21490     }
21491     container timers {
21492       tailf:info "Adjust routing timers";
21493       description
21494         "Adjust routing timers";
21495       tailf:cli-incomplete-no;
21496       tailf:cli-compact-syntax;
21497       container basic {
21498         tailf:info "Basic routing protocol update timers";
21499         description
21500           "Basic routing protocol update timers";
21501         tailf:cli-sequence-commands;
21502         tailf:cli-full-no;
21503         leaf updates {
21504           tailf:cli-drop-node-name;
21505           tailf:cli-incomplete-command;
21506           tailf:cli-no-value-on-delete;
21507           type uint32 {
21508             range "1 .. 4294967295";
21509             tailf:info "1-4294967295;;Interval between updates for RIP";
21510           }
21511         }
21512         leaf invalid {
21513           tailf:cli-drop-node-name;
21514           tailf:cli-incomplete-command;
21515           tailf:cli-no-value-on-delete;
21516           type uint32 {
21517             range "1 .. 4294967295";
21518             tailf:info "1-4294967295;;Invalid";
21519           }
21520         }
21521         leaf holddown {
21522           tailf:cli-drop-node-name;
21523           tailf:cli-incomplete-command;
21524           tailf:cli-no-value-on-delete;
21525           type uint32 {
21526             range "1 .. 4294967295";
21527             tailf:info "1-4294967295;;Holddown";
21528           }
21529         }
21530         leaf flush {
21531           tailf:cli-drop-node-name;
21532           tailf:cli-incomplete-command;
21533           tailf:cli-no-value-on-delete;
21534           type uint32 {
21535             range "1 .. 4294967295";
21536             tailf:info "1-4294967295;;Flush";
21537           }
21538         }
21539         leaf sleep {
21540           tailf:cli-drop-node-name;
21541           tailf:cli-no-value-on-delete;
21542           type uint32 {
21543             range "1 .. 4294967295";
21544             tailf:info "1-4294967295;;Sleep time, in milliseconds";
21545           }
21546         }
21547       }
21548     }
21549     leaf version {
21550       tailf:info "Set routing protocol version";
21551       description
21552         "Set routing protocol version";
21553       type uint8 {
21554         range "1 .. 2";
21555         tailf:info "1-2;;rip version 1 or 2";
21556       }
21557     }
21558   }
21559
21560   grouping redist-isis-grouping {
21561     container rip-isis-redist {
21562       tailf:cli-drop-node-name;
21563       leaf isis-level-routes {
21564         tailf:cli-drop-node-name;
21565         type enumeration {
21566           enum "level-1" {
21567             tailf:info "IS-IS level-1 routes only";
21568           }
21569           enum "level-2" {
21570             tailf:info "IS-IS level-2 routes only";
21571           }
21572           enum "level-1-2" {
21573             tailf:info "IS-IS level-1 and level-2 routes";
21574           }
21575         }
21576       }
21577       uses rip-metric-route-map-grouping;
21578     }
21579   }
21580
21581   grouping rip-metric-route-map-grouping {
21582     container rip-metric-route-map {
21583       tailf:cli-drop-node-name;
21584       tailf:cli-compact-syntax;
21585       container metric {
21586         tailf:cli-compact-syntax;
21587         tailf:cli-flatten-container;
21588         tailf:info "Metric for redistributed routes";
21589         description
21590           "Metric for redistributed routes";
21591         choice metric-transparent-choice {
21592           leaf metric-value {
21593             tailf:cli-drop-node-name;
21594             tailf:info "Metric for redistributed routes";
21595             description
21596               "Metric for redistributed routes";
21597             type uint32 {
21598               range "0 .. 16";
21599               tailf:info "<0-16>;;Default metric";
21600             }
21601           }
21602           leaf transparent {
21603             tailf:info "Transparently redistribute metric";
21604             description
21605               "Transparently redistribute metric";
21606             type empty;
21607           }
21608         }
21609       }
21610       leaf route-map {
21611         tailf:info "Route map reference";
21612         description
21613           "Route map reference";
21614         type string {
21615           tailf:info "WORD;;Pointer to route-map entries";
21616         }
21617       }
21618     }
21619   }
21620
21621   grouping rip-iso-igrp-metric-route-map-grouping {
21622     container rip-metric-route-map {
21623       tailf:cli-drop-node-name;
21624       tailf:cli-compact-syntax;
21625       tailf:cli-sequence-commands;
21626       leaf route-map {
21627         tailf:info "Route map reference";
21628         description
21629           "Route map reference";
21630         type string {
21631           tailf:info "WORD;;Pointer to route-map entries";
21632         }
21633       }
21634       container metric {
21635         tailf:cli-compact-syntax;
21636         tailf:info "Metric for redistributed routes";
21637         description
21638           "Metric for redistributed routes";
21639         choice metric-transparent-choice {
21640           leaf metric-value {
21641             tailf:cli-drop-node-name;
21642             tailf:info "Metric for redistributed routes";
21643             description
21644               "Metric for redistributed routes";
21645             type uint32 {
21646               range "0 .. 16";
21647               tailf:info "<0-16>;;Default metric";
21648             }
21649           }
21650           leaf transparent {
21651             tailf:info "Transparently redistribute metric";
21652             description
21653               "Transparently redistribute metric";
21654             type empty;
21655           }
21656         }
21657       }
21658     }
21659   }
21660
21661   grouping narrow-wide-transition-grouping {
21662     leaf narrow-wide {
21663       tailf:cli-drop-node-name;
21664       tailf:cli-full-command;
21665       type isis-level-type;
21666     }
21667     leaf transition {
21668       tailf:info "Accept both styles of TLVs during transition";
21669       description
21670         "Accept both styles of TLVs during transition";
21671       type isis-level-type;
21672       tailf:cli-full-command;
21673     }
21674   }
21675
21676   grouping spf-intervals-grouping {
21677     leaf interval {
21678       tailf:cli-drop-node-name;
21679       type uint32 {
21680         range "1 .. 120";
21681         tailf:info "<1-120>;;Interval between consecutive SPFs in seconds";
21682       }
21683     }
21684     leaf initial-wait {
21685       tailf:cli-drop-node-name;
21686       type uint32 {
21687         range "1 .. 120000";
21688         tailf:info "<1-120000>;;Initial wait before first SPF in milliseconds";
21689       }
21690     }
21691     leaf minimum-wait {
21692       tailf:cli-drop-node-name;
21693       type uint32 {
21694         range "1 .. 120000";
21695         tailf:info "<1-120000>;;Minimum wait between first and second SPF in milliseconds";
21696       }
21697     }
21698   }
21699
21700   grouping authenticate-snp-grouping {
21701     leaf authenticate {
21702       tailf:info "Authentication";
21703       description
21704         "Authentication";
21705       tailf:cli-incomplete-command;
21706       type empty;
21707     }
21708     leaf snp {
21709       tailf:info "SNP PDUs";
21710       description
21711         "SNP PDUs";
21712       type enumeration {
21713         enum "send-only" {
21714           tailf:info "Send but do not check PDUs on receiving";
21715         }
21716         enum "validate" {
21717           tailf:info "Send and check PDUs on receiving";
21718         }
21719       }
21720     }
21721   }
21722
21723   grouping lsp-gen-interval-grouping {
21724     leaf interval {
21725       tailf:cli-drop-node-name;
21726       type uint32 {
21727         range "1 .. 120";
21728         tailf:info "<1-120>;;Interval in seconds";
21729       }
21730     }
21731     leaf initial-wait {
21732       tailf:cli-drop-node-name;
21733       type uint32 {
21734         range "1 .. 120000";
21735         tailf:info "<1-120000>;;Initial wait in milliseconds";
21736       }
21737     }
21738     leaf wait {
21739       tailf:cli-drop-node-name;
21740       type uint32 {
21741         range "1 .. 120000";
21742         tailf:info "<1-120000>;;Wait between first and second lsp generation in milliseconds";
21743       }
21744     }
21745   }
21746
21747   grouping set-overload-bit-suppress-grouping {
21748     leaf external {
21749       tailf:info "If overload-bit set, don't advertise IP prefixes learned from other protocols";
21750       description
21751         "If overload-bit set, don't advertise IP prefixes learned from other protocols";
21752       tailf:cli-break-sequence-commands;
21753       type empty;
21754     }
21755     leaf interlevel {
21756       tailf:info "If overload-bit set, don't advertise IP prefixes learned from another ISIS level";
21757       description
21758         "If overload-bit set, don't advertise IP prefixes learned from another ISIS level";
21759       type empty;
21760     }
21761   }
21762
21763   grouping summary-address-metric-tag-grouping {
21764     leaf metric {
21765       tailf:info "Set metric for summay route";
21766       description
21767         "Set metric for summay route";
21768       tailf:cli-full-command;
21769       type uint32 {
21770         range "1 .. 4294967295";
21771         tailf:info "<1-4294967295>;;metric";
21772       }
21773     }
21774     leaf tag {
21775       tailf:info "Set tag";
21776       description
21777         "Set tag";
21778       type uint32 {
21779         range "1 .. 4294967295";
21780         tailf:info "<1-4294967295>;;32-bit tag value";
21781       }
21782     }
21783   }
21784
21785   grouping authentication-level-grouping {
21786     leaf levels {
21787       tailf:cli-drop-node-name;
21788       type authentication-level-type;
21789     }
21790   }
21791
21792   grouping redist-level-grouping {
21793     leaf levels {
21794       tailf:cli-drop-node-name;
21795       tailf:cli-break-sequence-commands;
21796       type isis-routes-level-type;
21797     }
21798   }
21799
21800   grouping isis-redist-container-content-grouping {
21801     uses redist-level-grouping;
21802     leaf metric {
21803       tailf:info "ISIS default metric";
21804       description
21805         "ISIS default metric";
21806       type uint32 {
21807         range "0 .. 4294967295";
21808         tailf:info "<0-4294967295>;;ISIS default metric";
21809       }
21810     }
21811     leaf metric-type {
21812       tailf:info "OSPF/IS-IS exterior metric type for redistributed routes";
21813       description
21814         "OSPF/IS-IS exterior metric type for redistributed routes";
21815       type enumeration {
21816         enum "external" {
21817           tailf:info "Set IS-IS External metric type";
21818         }
21819         enum "internal" {
21820           tailf:info "Set IS-IS Internal metric type";
21821         }
21822         enum "rib-metric-as-external" {
21823           tailf:info "Set IS-IS rib External metric type";
21824         }
21825         enum "rib-metric-as-internal" {
21826           tailf:info "Set IS-IS rib internal metric type";
21827         }
21828       }
21829     }
21830     leaf route-map {
21831       tailf:info "Route map reference";
21832       description
21833         "Route map reference";
21834       type string {
21835         tailf:info "WORD;;Pointer to route-map entries";
21836       }
21837     }
21838   }
21839
21840   grouping isis-redist-grouping {
21841     container isis-redist-container {
21842       tailf:cli-drop-node-name;
21843       uses isis-redist-container-content-grouping;
21844     }
21845   }
21846
21847   grouping isis-redist-af-grouping {
21848     container isis-redist-af-container {
21849       tailf:cli-drop-node-name;
21850       leaf include-connected {
21851         tailf:info "Include connected";
21852         description
21853           "Include connected";
21854         type empty;
21855       }
21856       uses isis-redist-container-content-grouping;
21857     }
21858   }
21859
21860   grouping isis-redist-ospf-match-grouping {
21861     uses redist-level-grouping;
21862     leaf metric {
21863       tailf:info "ISIS default metric";
21864       description
21865         "ISIS default metric";
21866       type uint32 {
21867         range "0 .. 4294967295";
21868         tailf:info "<0-4294967295>;;ISIS default metric";
21869       }
21870     }
21871     leaf route-map {
21872       tailf:info "Route map reference";
21873       description
21874         "Route map reference";
21875       type string {
21876         tailf:info "WORD;;Pointer to route-map entries";
21877       }
21878     }
21879   }
21880
21881   grouping isis-redist-clns-ip-grouping {
21882     container clns {
21883       tailf:info "Redistribution of BGP NSAP routes";
21884       description
21885         "Redistribution of BGP NSAP routes";
21886       presence "Redistribution of BGP NSAP routes";
21887       leaf route-map {
21888         tailf:info "Route map reference";
21889         description
21890           "Route map reference";
21891         type string {
21892           tailf:info "WORD;;Pointer to route-map entries";
21893         }
21894       }
21895       uses isis-redist-grouping;
21896     }
21897     container ip {
21898       tailf:info "Redistribution of BGP IP routes";
21899       description
21900         "Redistribution of BGP IP routes";
21901       uses isis-redist-grouping;
21902     }
21903   }
21904
21905   grouping isis-address-family-grouping {
21906     leaf adjacency-check {
21907       tailf:info "Check ISIS neighbor protocol support";
21908       description
21909         "Check ISIS neighbor protocol support";
21910       type empty;
21911       tailf:cli-full-command;
21912     }
21913     container default-information {
21914       tailf:cli-incomplete-no;
21915       tailf:info "Control distribution of default information";
21916       description
21917         "Control distribution of default information";
21918       container originate {
21919         tailf:cli-full-no;
21920         presence "Distribute a default route";
21921         tailf:info "Distribute a default route";
21922         description
21923           "Distribute a default route";
21924         leaf route-map {
21925           tailf:info "Route-map reference";
21926           description
21927             "Route-map reference";
21928           tailf:cli-no-value-on-delete;
21929           type string {
21930             tailf:info "WORD;;Route map name";
21931           }
21932         }
21933       }
21934     }
21935     leaf maximum-paths {
21936       tailf:info "Forward packets over multiple paths";
21937       description
21938         "Forward packets over multiple paths";
21939       tailf:cli-full-command;
21940       type uint32 {
21941         range "1 .. 32";
21942         tailf:info "<1-32>;;Number of paths";
21943       }
21944     }
21945     container metric {
21946       tailf:info "Set ISIS metric for all interfaces";
21947       description
21948         "Set ISIS metric for all interfaces";
21949       tailf:cli-compact-syntax;
21950       tailf:cli-sequence-commands;
21951       leaf default {
21952         tailf:cli-drop-node-name;
21953         type uint32 {
21954           range "1 .. 63";
21955           tailf:info "<1-63>;;Default metric";
21956         }
21957       }
21958       leaf level-1-2 {
21959         tailf:cli-drop-node-name;
21960         type enumeration {
21961           enum "level-1" {
21962             tailf:info "Apply metric to level-1 links";
21963           }
21964           enum "level-2" {
21965             tailf:info "Apply metric to level-2 links";
21966           }
21967         }
21968       }
21969     }
21970     container prc-interval {
21971       tailf:info "Minimum interval between partial route calculations";
21972       description
21973         "Minimum interval between partial route calculations";
21974       tailf:cli-compact-syntax;
21975       tailf:cli-sequence-commands;
21976       leaf interval {
21977         tailf:cli-drop-node-name;
21978         type uint32 {
21979           range "1 .. 120";
21980           tailf:info "<1-120>;;PRC interval in seconds";
21981         }
21982       }
21983       leaf initial-wait {
21984         tailf:cli-drop-node-name;
21985         type uint32 {
21986           range "1 .. 120000";
21987           tailf:info "<1-120000>;;Initial wait for PRC in milliseconds";
21988         }
21989       }
21990       leaf minimum-wait {
21991         tailf:cli-drop-node-name;
21992         type uint32 {
21993           range "1 .. 120000";
21994           tailf:info "<1-120000>;;Minimum wait between first and second PRC in milliseconds";
21995         }
21996       }
21997     }
21998     container set-overload-bit {
21999       tailf:info "Signal other routers not to use us in SPF";
22000       description
22001         "Signal other routers not to use us in SPF";
22002       choice set-overload-bit-choice {
22003         container on-startup {
22004           tailf:info "Set overload-bit only temporarily after reboot";
22005           description
22006             "Set overload-bit only temporarily after reboot";
22007           choice on-startup-choice {
22008             container time {
22009               tailf:cli-drop-node-name;
22010               tailf:cli-compact-syntax;
22011               tailf:cli-sequence-commands;
22012               leaf time {
22013                 tailf:cli-drop-node-name;
22014                 type uint32 {
22015                   range "5 .. 86400";
22016                   tailf:info "<5-86400>;;Time in seconds to advertise ourself as overloaded after reboot";
22017                 }
22018               }
22019               leaf suppress {
22020                 tailf:info "If overload-bit set, suppress the following types of IP prefixes";
22021                 description
22022                   "If overload-bit set, suppress the following types of IP prefixes";
22023                 tailf:cli-incomplete-command;
22024                 type empty;
22025               }
22026               uses set-overload-bit-suppress-grouping;
22027             }
22028             container wait-for-bgp {
22029               tailf:info "Let BGP decide when to unset the overload bit";
22030               description
22031                 "Let BGP decide when to unset the overload bit";
22032               presence "Let BGP decide when to unset the overload bitW";
22033               container suppress {
22034                 tailf:info "If overload-bit set, suppress the following types of IP prefixes";
22035                 description
22036                   "If overload-bit set, suppress the following types of IP prefixes";
22037                 tailf:cli-compact-syntax;
22038                 uses set-overload-bit-suppress-grouping;
22039               }
22040             }
22041           }
22042         }
22043         container suppress {
22044           tailf:info "If overload-bit set, suppress the following types of IP prefixes";
22045           description
22046             "If overload-bit set, suppress the following types of IP prefixes";
22047           tailf:cli-compact-syntax;
22048           uses set-overload-bit-suppress-grouping;
22049         }
22050       }
22051     }
22052     container spf-interval {
22053       tailf:info "Minimum interval between SPF calculations";
22054       description
22055         "Minimum interval between SPF calculations";
22056       tailf:cli-compact-syntax;
22057       choice spf-interval-choice {
22058         list level-1-2 {
22059           tailf:cli-drop-node-name;
22060           tailf:cli-suppress-mode;
22061           tailf:cli-delete-when-empty;
22062           tailf:cli-compact-syntax;
22063           tailf:cli-sequence-commands;
22064           tailf:cli-incomplete-command;
22065           key "level";
22066           leaf level {
22067             type enumeration {
22068               enum "level-1" {
22069                 tailf:info "Set interval for level 1 only";
22070               }
22071               enum "level-2" {
22072                 tailf:info "Set interval for level 2 only";
22073               }
22074             }
22075           }
22076           uses spf-intervals-grouping;
22077         }
22078         container intervals {
22079           tailf:cli-drop-node-name;
22080           tailf:cli-compact-syntax;
22081           tailf:cli-sequence-commands;
22082           uses spf-intervals-grouping;
22083         }
22084       }
22085     }
22086     container traffic-share {
22087       tailf:info "How to compute traffic share over alternate paths";
22088       description
22089         "How to compute traffic share over alternate paths";
22090       container min {
22091         tailf:info "All traffic shared among min metric paths";
22092         description
22093           "All traffic shared among min metric paths";
22094         leaf across-interfaces {
22095           tailf:info "Use different interfaces for equal-cost paths";
22096           description
22097             "Use different interfaces for equal-cost paths";
22098           type empty;
22099         }
22100       }
22101     }
22102     leaf vrf {
22103       tailf:info "VRF name for this process";
22104       description
22105         "VRF name for this process";
22106       type string;
22107     }
22108   }
22109
22110   grouping isis-redist-vrf-grouping {
22111     container application {
22112       tailf:info "Application";
22113       description
22114         "Application";
22115       list appname {
22116         tailf:cli-drop-node-name;
22117         tailf:cli-suppress-mode;
22118         key "appname";
22119         leaf appname {
22120           tailf:info "Application name";
22121           description
22122             "Application name";
22123           type string;
22124         }
22125         uses isis-redist-grouping;
22126       }
22127     }
22128     container bgp {
22129       tailf:info "Border Gateway Protocol (BGP)";
22130       description
22131         "Border Gateway Protocol (BGP)";
22132       list bp-as-num {
22133         tailf:cli-drop-node-name;
22134         tailf:cli-suppress-mode;
22135         key "bp-as-num";
22136         leaf bp-as-num {
22137           tailf:info "Autonomous system number";
22138           description
22139             "Autonomous system number";
22140           type bgp-as-number-type;
22141         }
22142         uses isis-redist-clns-ip-grouping;
22143         uses isis-redist-grouping;
22144       }
22145       leaf a_LESSER_1_PERIOD_0-XX_PERIOD_YY_GREATER_ {
22146         tailf:alt-name "_LT_1.0-XX.YY_GT_";
22147         tailf:info "Autonomous system number";
22148         description
22149           "Autonomous system number";
22150         type empty;
22151       }
22152     }
22153     container connected {
22154       tailf:info "Connected";
22155       description
22156         "Connected";
22157       presence "true";
22158       uses isis-redist-grouping;
22159     }
22160     container eigrp {
22161       tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
22162       description
22163         "Enhanced Interior Gateway Routing Protocol (EIGRP)";
22164       list eigrp-as {
22165         tailf:cli-drop-node-name;
22166         tailf:cli-suppress-mode;
22167         key "eigrp-as";
22168         leaf eigrp-as {
22169           tailf:info "AS number";
22170           description
22171             "AS number";
22172           type uint16 {
22173             range "1..65535";
22174           }
22175         }
22176         uses isis-redist-grouping;
22177       }
22178     }
22179     container isis {
22180       tailf:info "ISO IS-IS";
22181       description
22182         "ISO IS-IS";
22183       list isis-atag {
22184         tailf:cli-drop-node-name;
22185         tailf:cli-suppress-mode;
22186         key "isis-atag";
22187         leaf isis-atag {
22188           tailf:info "ISO routing area tag";
22189           description
22190             "ISO routing area tag";
22191           type string;
22192         }
22193         container ip {
22194           tailf:info "Redistribution of IP routes between levels or processes";
22195           description
22196             "Redistribution of IP routes between levels or processes";
22197           uses isis-redist-grouping;
22198         }
22199       }
22200       container ip {
22201         tailf:info "Redistribution of IP routes between levels or processes";
22202         description
22203           "Redistribution of IP routes between levels or processes";
22204         presence "true";
22205         uses isis-redist-grouping;
22206       }
22207     }
22208     container iso-igrp {
22209       tailf:info "IGRP for OSI networks";
22210       description
22211         "IGRP for OSI networks";
22212       presence "true";
22213       list iso-atag {
22214         tailf:cli-drop-node-name;
22215         tailf:cli-suppress-mode;
22216         key "iso-atag";
22217         leaf iso-atag {
22218           tailf:info "ISO routing area tag";
22219           description
22220             "ISO routing area tag";
22221           type string;
22222         }
22223         leaf route-map {
22224           tailf:info "Route map reference";
22225           description
22226             "Route map reference";
22227           type empty;
22228         }
22229       }
22230       container route-map {
22231         tailf:info "Route map reference";
22232         description
22233           "Route map reference";
22234         presence "true";
22235         leaf rm-point {
22236           tailf:info "Pointer to route-map entries";
22237           description
22238             "Pointer to route-map entries";
22239           tailf:cli-drop-node-name;
22240           type string;
22241         }
22242       }
22243     }
22244     container lisp {
22245       tailf:info "Locator ID Separation Protocol (LISP)";
22246       description
22247         "Locator ID Separation Protocol (LISP)";
22248       presence "true";
22249       uses isis-redist-grouping;
22250     }
22251     container mobile {
22252       tailf:info "Mobile routes";
22253       description
22254         "Mobile routes";
22255       presence "true";
22256       uses isis-redist-grouping;
22257     }
22258     container odr {
22259       tailf:info "On Demand stub Routes";
22260       description
22261         "On Demand stub Routes";
22262       presence "true";
22263       uses isis-redist-grouping;
22264     }
22265     leaf ospf {
22266       tailf:info "Open Shortest Path First (OSPF)";
22267       description
22268         "Process ID";
22269       type uint16 {
22270         range "1..65535";
22271       }
22272     }
22273     container ospfv3 {
22274       tailf:info "OSPFv3";
22275       description
22276         "OSPFv3";
22277       list os3-id {
22278         tailf:cli-drop-node-name;
22279         tailf:cli-suppress-mode;
22280         key "os3-id";
22281         leaf os3-id {
22282           tailf:info "Process ID";
22283           description
22284             "Process ID";
22285           type uint16 {
22286             range "1..65535";
22287           }
22288         }
22289         uses isis-redist-grouping;
22290       }
22291     }
22292     container rip {
22293       tailf:info "Routing Information Protocol (RIP)";
22294       description
22295         "Routing Information Protocol (RIP)";
22296       presence "true";
22297       uses isis-redist-grouping;
22298     }
22299     container static {
22300       tailf:info "Static routes";
22301       description
22302         "Static routes";
22303       presence "true";
22304       uses isis-redist-clns-ip-grouping;
22305       uses isis-redist-grouping;
22306     }
22307   }
22308
22309   grouping tie-break-prefer-repair-grouping {
22310     leaf downstream {
22311       tailf:info "Prefer repair path via downstream node";
22312       description
22313         "priority number";
22314       type uint8 {
22315         range "1..255";
22316       }
22317     }
22318     leaf linecard-disjoint {
22319       tailf:info "Prefer line card disjoint repair path";
22320       description
22321         "priority number";
22322       type uint8 {
22323         range "1..255";
22324       }
22325     }
22326     leaf lowest-backup-path-metric {
22327       tailf:info "Prefer repair path with lowest total metric";
22328       description
22329         "priority number";
22330       type uint8 {
22331         range "1..255";
22332       }
22333     }
22334     leaf node-protecting {
22335       tailf:info "Prefer node protecting repair path";
22336       description
22337         "priority number";
22338       type uint8 {
22339         range "1..255";
22340       }
22341     }
22342     leaf primary-path {
22343       tailf:info "Prefer repair path from ECMP set";
22344       description
22345         "priority number";
22346       type uint8 {
22347         range "1..255";
22348       }
22349     }
22350     leaf secondary-path {
22351       tailf:info "Prefer non-ECMP repair path";
22352       description
22353         "priority number";
22354       type uint8 {
22355         range "1..255";
22356       }
22357     }
22358     leaf srlg-disjoint {
22359       tailf:info "Prefer SRLG disjoint repair path";
22360       description
22361         "priority number";
22362       type uint8 {
22363         range "1..255";
22364       }
22365     }
22366   }
22367
22368   grouping isis-main-grouping {
22369     container isis-main-container {
22370       tailf:cli-full-command;
22371       tailf:cli-drop-node-name;
22372       uses isis-address-family-grouping;
22373       container address-family {
22374         tailf:info "Enter Address Family command mode";
22375         description
22376           "Enter Address Family command mode";
22377         container ipv4 {
22378           tailf:info "Address family";
22379           description
22380             "Address family";
22381           presence "true";
22382           leaf multicast {
22383             tailf:info "Address Family modifier";
22384             description
22385               "Address Family modifier";
22386             type empty;
22387           }
22388           leaf unicast {
22389             tailf:info "Address Family modifier";
22390             description
22391               "Address Family modifier";
22392             type empty;
22393           }
22394         }
22395         container ipv6 {
22396           tailf:info "Address family";
22397           description
22398             "Address family";
22399           presence "true";
22400           container unicast {
22401             tailf:cli-add-mode;
22402             tailf:cli-mode-name "config-router-af";
22403             tailf:info "Address Family Modifier";
22404             description
22405               "Address Family Modifier";
22406             tailf:cli-full-command;
22407             tailf:cli-exit-command "exit-address-family" {
22408               tailf:info "Exit from Address Family configuration mode";
22409             }
22410             uses isis-address-family-grouping;
22411             leaf distance {
22412               tailf:info "Administrative distance";
22413               description
22414                 "Administrative distance";
22415               tailf:cli-full-command;
22416               type uint32 {
22417                 range "1 .. 255";
22418                 tailf:info "<1-255>;;OSPF Administrative distance";
22419               }
22420             }
22421             container multi-topology {
22422               tailf:info "Enable multi-topology mode";
22423               description
22424                 "Enable multi-topology mode";
22425               presence "Enable multi-topology mode";
22426               leaf transition {
22427                 tailf:info "Accept and generate both IS-IS IPv6 and Multi-topology IPv6 TLVs";
22428                 description
22429                   "Accept and generate both IS-IS IPv6 and Multi-topology IPv6 TLVs";
22430                 type empty;
22431               }
22432             }
22433             container redistribute {
22434               tailf:info "Redistribute IPv6 prefixes from another routing protocol";
22435               description
22436                 "Redistribute IPv6 prefixes from another routing protocol";
22437               container bgp {
22438                 tailf:info "Border Gateway Protocol (BGP)";
22439                 description
22440                   "Border Gateway Protocol (BGP)";
22441                 tailf:cli-sequence-commands;
22442                 tailf:cli-compact-syntax;
22443                 leaf as-number {
22444                   tailf:cli-drop-node-name;
22445                   type bgp-as-number-type;
22446                 }
22447                 uses isis-redist-af-grouping;
22448               }
22449               container connected {
22450                 tailf:info "Connected";
22451                 description
22452                   "Connected";
22453                 presence "Connected";
22454                 uses isis-redist-grouping;
22455               }
22456               list eigrp {
22457                 tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
22458                 description
22459                   "Enhanced Interior Gateway Routing Protocol (EIGRP)";
22460                 tailf:cli-suppress-mode;
22461                 tailf:cli-delete-when-empty;
22462                 key "as-number";
22463                 leaf as-number {
22464                   tailf:cli-drop-node-name;
22465                   type uint32 {
22466                     range "1 .. 65535";
22467                     tailf:info "<1-65535>;;Autonomous system number";
22468                   }
22469                 }
22470                 uses isis-redist-af-grouping;
22471               }
22472               container isis {
22473                 tailf:info "ISO IS-IS";
22474                 description
22475                   "ISO IS-IS";
22476                 tailf:cli-compact-syntax;
22477                 leaf area-tag {
22478                   tailf:cli-drop-node-name;
22479                   tailf:cli-disallow-value "level-1|level-2";
22480                   type string {
22481                     tailf:info "WORD;;IPv6 process name";
22482                   }
22483                 }
22484                 container levels {
22485                   tailf:cli-drop-node-name;
22486                   tailf:cli-sequence-commands;
22487                   leaf isis-redist-levels1 {
22488                     tailf:cli-drop-node-name;
22489                     tailf:cli-incomplete-command;
22490                     type enumeration {
22491                       enum "level-1" {
22492                         tailf:info "Inter-area routes from level-1";
22493                       }
22494                       enum "level-2" {
22495                         tailf:info "Inter-area routes from level-2";
22496                       }
22497                     }
22498                   }
22499                   leaf into {
22500                     tailf:info "from level-n into level-m";
22501                     description
22502                       "from level-n into level-m";
22503                     tailf:cli-incomplete-command;
22504                     type empty;
22505                   }
22506                   leaf isis-redist-levels2 {
22507                     tailf:cli-drop-node-name;
22508                     tailf:cli-incomplete-command;
22509                     type enumeration {
22510                       enum "level-1" {
22511                         tailf:info "Inter-area routes from level-1";
22512                       }
22513                       enum "level-2" {
22514                         tailf:info "Inter-area routes from level-2";
22515                       }
22516                     }
22517                   }
22518                   leaf distribute-list {
22519                     tailf:info "select routes";
22520                     description
22521                       "select routes";
22522                     type string {
22523                       tailf:info "WORD;;IPv6 prefix-list name";
22524                     }
22525                   }
22526                 }
22527               }
22528               container nemo {
22529                 tailf:info "Network Mobility (NEMO)";
22530                 description
22531                   "Network Mobility (NEMO)";
22532                 tailf:cli-compact-syntax;
22533                 uses isis-redist-af-grouping;
22534               }
22535               list ospf {
22536                 tailf:info "Open Shortest Path First (OSPF)";
22537                 description
22538                   "Open Shortest Path First (OSPF)";
22539                 tailf:cli-suppress-mode;
22540                 tailf:cli-delete-when-empty;
22541                 key "process-id";
22542                 leaf process-id {
22543                   tailf:cli-suppress-range;
22544                   type uint32 {
22545                     range "1 .. 65535";
22546                     tailf:info "<1-65535>;;Process ID";
22547                   }
22548                 }
22549                 uses isis-redist-af-grouping;
22550                 container match {
22551                   tailf:cli-compact-syntax;
22552                   tailf:cli-flatten-container;
22553                   tailf:info "Redistribution of OSPF routes";
22554                   description
22555                     "Redistribution of OSPF routes";
22556                   container internal {
22557                     presence "Redistribute OSPF internal routes";
22558                     tailf:info "Redistribute OSPF internal routes";
22559                     description
22560                       "Redistribute OSPF internal routes";
22561                     tailf:cli-compact-syntax;
22562                     tailf:cli-flatten-container;
22563                     uses isis-redist-container-content-grouping;
22564                   }
22565                   container external {
22566                     tailf:info "Redistribute OSPF external routes";
22567                     description
22568                       "Redistribute OSPF external routes";
22569                     presence "Redistribute OSPF external routes";
22570                     tailf:cli-compact-syntax;
22571                     tailf:cli-flatten-container;
22572                     leaf external-routes {
22573                       tailf:cli-drop-node-name;
22574                       type redist-ospf-external-type;
22575                     }
22576                     uses isis-redist-container-content-grouping;
22577                   }
22578                   container nssa-external {
22579                     tailf:info "Redistribute OSPF NSSA external routes";
22580                     description
22581                       "Redistribute OSPF NSSA external routes";
22582                     presence "Redistribute OSPF NSSA external routes";
22583                     tailf:cli-compact-syntax;
22584                     tailf:cli-flatten-container;
22585                     leaf nssa-external-routes {
22586                       tailf:cli-drop-node-name;
22587                       type redist-ospf-external-type;
22588                     }
22589                     uses isis-redist-container-content-grouping;
22590                   }
22591                 }
22592               }
22593               list rip {
22594                 tailf:info "IPv6 Routing Information Protocol (RIPv6)";
22595                 description
22596                   "IPv6 Routing Information Protocol (RIPv6)";
22597                 tailf:cli-suppress-mode;
22598                 tailf:cli-delete-when-empty;
22599                 key "process";
22600                 leaf process {
22601                   type string {
22602                     tailf:info "WORD;;User selected string identifying this process";
22603                   }
22604                 }
22605                 uses isis-redist-af-grouping;
22606               }
22607               container static {
22608                 tailf:info "Static routes";
22609                 description
22610                   "Static routes";
22611                 presence "Static routes";
22612                 uses isis-redist-grouping;
22613               }
22614             }
22615             list summary-prefix {
22616               tailf:info "Configure IPv6 summary prefix";
22617               description
22618                 "Configure IPv6 summary prefix";
22619               tailf:cli-suppress-mode;
22620               tailf:cli-delete-when-empty;
22621               key "prefix";
22622               leaf prefix {
22623                 type inet:ipv6-prefix {
22624                   tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix x:x::y/<z>";
22625                 }
22626               }
22627               leaf levels {
22628                 tailf:cli-drop-node-name;
22629                 type enumeration {
22630                   enum "level-1" {
22631                     tailf:info "Summarize into level-1 area";
22632                   }
22633                   enum "level-1-2" {
22634                     tailf:info "Summarize into both area and sub-domain";
22635                   }
22636                   enum "level-2" {
22637                     tailf:info "Summarize into level-2 sub-domain";
22638                   }
22639                 }
22640               }
22641             }
22642           }
22643         }
22644       }
22645       container advertise {
22646         tailf:info "Control which IP routes flow in L1 and L2 LSPs";
22647         description
22648           "Control which IP routes flow in L1 and L2 LSPs";
22649         leaf passive-only {
22650           tailf:info "only interface address of passive interfaces";
22651           description
22652             "only interface address of passive interfaces";
22653           type empty;
22654         }
22655       }
22656       container area-password {
22657         tailf:info "Configure the authentication password for an area";
22658         description
22659           "Configure the authentication password for an area";
22660         tailf:cli-sequence-commands;
22661         tailf:cli-compact-syntax;
22662         leaf name {
22663           tailf:cli-drop-node-name;
22664           type string {
22665             tailf:info "WORD;;Area password";
22666           }
22667         }
22668         uses authenticate-snp-grouping;
22669       }
22670       container authentication {
22671         tailf:info "ISIS authentication for LSPs";
22672         description
22673           "ISIS authentication for LSPs";
22674         container mode {
22675           tailf:info "Authentication mode";
22676           description
22677             "Authentication mode";
22678           container md5 {
22679             tailf:info "Keyed message digest";
22680             description
22681               "Keyed message digest";
22682             presence "Keyed message digest";
22683             uses authentication-level-grouping;
22684           }
22685           container text {
22686             tailf:info "Clear text password";
22687             description
22688               "Clear text password";
22689             presence "Clear text password";
22690             uses authentication-level-grouping;
22691           }
22692         }
22693         container key-chain {
22694           tailf:info "Authentication key-chain";
22695           description
22696             "Authentication key-chain";
22697           tailf:cli-compact-syntax;
22698           tailf:cli-sequence-commands;
22699           leaf name {
22700             tailf:cli-drop-node-name;
22701             type string {
22702               tailf:info "WORD;;Name of key-chain";
22703             }
22704           }
22705           uses authentication-level-grouping;
22706         }
22707         container send-only {
22708           tailf:info "Authentication send only, receive ignore";
22709           description
22710             "Authentication send only, receive ignore";
22711           presence "Authentication send only, receive ignore";
22712           uses authentication-level-grouping;
22713         }
22714       }
22715       container bfd {
22716         tailf:info "BFD configuration commands";
22717         description
22718           "BFD configuration commands";
22719         leaf all-interfaces {
22720           tailf:info "Enable BFD on all interfaces";
22721           description
22722             "Enable BFD on all interfaces";
22723           type empty;
22724         }
22725         leaf check-ctrl-plane-failure {
22726           tailf:info "BFD check control plane failure";
22727           description
22728             "BFD check control plane failure";
22729           type empty;
22730         }
22731       }
22732       list distance {
22733         tailf:info "Define an administrative distance";
22734         description
22735           "Define an administrative distance";
22736         tailf:cli-compact-syntax;
22737         tailf:cli-suppress-mode;
22738         key "number";
22739         leaf number {
22740           type uint8 {
22741             range "1 .. 255";
22742             tailf:info "1-255;;Administrative distance";
22743           }
22744         }
22745         list ip-list {
22746           tailf:cli-drop-node-name;
22747           tailf:cli-suppress-mode;
22748           tailf:cli-compact-syntax;
22749           key "ip";
22750           leaf ip {
22751             tailf:info "IP Source address";
22752             description
22753               "IP Source address";
22754             type inet:ipv4-address;
22755           }
22756           list wildcard-bits {
22757             tailf:cli-drop-node-name;
22758             tailf:cli-suppress-mode;
22759             key "w-bits";
22760             leaf w-bits {
22761               tailf:info "Wildcard bits";
22762               type inet:ipv4-address;
22763             }
22764             leaf access-list {
22765               tailf:info "IP Standard expanded access list number";
22766               tailf:cli-drop-node-name;
22767               type default-access-list-standard-id-type;
22768             }
22769           }
22770         }
22771         leaf clns {
22772           tailf:info "Distance applied for CLNS derived routes";
22773           description
22774             "Distance applied for CLNS derived routes";
22775           tailf:cli-hide-in-submode;
22776           type empty;
22777         }
22778         leaf ip {
22779           tailf:info "Distance applied for IP derived routes";
22780           description
22781             "Distance applied for IP derived routes";
22782           tailf:cli-hide-in-submode;
22783           type empty;
22784         }
22785       }
22786       container distribute-list {
22787         tailf:info "Filter networks in routing updates";
22788         description
22789           "Filter networks in routing updates";
22790         leaf acl-name {
22791           tailf:cli-drop-node-name;
22792           type access-list-standard-id-type;
22793           tailf:cli-no-value-on-delete;
22794         }
22795         container in {
22796           tailf:info "Filter incoming routing updates";
22797           description
22798             "Filter incoming routing updates";
22799           presence "true";
22800           container interface {
22801             tailf:info "Specify interface";
22802             description
22803               "Specify interface";
22804             tailf:cli-drop-node-name;
22805             tailf:cli-compact-syntax;
22806             tailf:cli-flatten-container;
22807             uses interface-grouping;
22808           }
22809         }
22810         container gateway {
22811           tailf:info "Filtering incoming updates based on gateway";
22812           description
22813             "Filtering incoming updates based on gateway";
22814           list pr-list {
22815             tailf:cli-drop-node-name;
22816             tailf:cli-suppress-mode;
22817             key "pr-list";
22818             leaf pr-list {
22819               tailf:info "Name of an IP prefix-list";
22820               description
22821                 "Name of an IP prefix-list";
22822               type string;
22823             }
22824             container in {
22825               tailf:info "Filter incoming routing updates";
22826               description
22827                 "Filter incoming routing updates";
22828               presence "true";
22829               container interface {
22830                 tailf:info "Specify interface";
22831                 description
22832                   "Specify interface";
22833                 tailf:cli-drop-node-name;
22834                 tailf:cli-compact-syntax;
22835                 tailf:cli-flatten-container;
22836                 uses interface-grouping;
22837               }
22838             }
22839           }
22840         }
22841         container prefix {
22842           tailf:info "Filter prefixes in routing updates";
22843           description
22844             "Filter prefixes in routing updates";
22845           list pr-ip {
22846             tailf:cli-drop-node-name;
22847             tailf:cli-suppress-mode;
22848             key "pr-ip";
22849             leaf pr-ip {
22850               tailf:info "Name of an IP prefix-list";
22851               description
22852                 "Name of an IP prefix-list";
22853               type string;
22854             }
22855             container gateway {
22856               tailf:info "Filtering incoming updates based on gateway";
22857               description
22858                 "Filtering incoming updates based on gateway";
22859               list filter {
22860                 tailf:cli-drop-node-name;
22861                 tailf:cli-suppress-mode;
22862                 key "filter";
22863                 leaf filter {
22864                   tailf:info "Name of an IP prefix-list";
22865                   description
22866                     "Name of an IP prefix-list";
22867                   type string;
22868                 }
22869                 container in {
22870                   tailf:info "Filter incoming routing updates";
22871                   description
22872                     "Filter incoming routing updates";
22873                   presence "true";
22874                   container interface {
22875                     tailf:info "Specify interface";
22876                     description
22877                       "Specify interface";
22878                     tailf:cli-drop-node-name;
22879                     tailf:cli-compact-syntax;
22880                     tailf:cli-flatten-container;
22881                     uses interface-grouping;
22882                   }
22883                 }
22884               }
22885             }
22886             container in {
22887               tailf:info "Filter incoming routing updates";
22888               description
22889                 "Filter incoming routing updates";
22890               presence "true";
22891               container interface {
22892                 tailf:info "Specify interface";
22893                 description
22894                   "Specify interface";
22895                 tailf:cli-drop-node-name;
22896                 tailf:cli-compact-syntax;
22897                 tailf:cli-flatten-container;
22898                 uses interface-grouping;
22899               }
22900             }
22901           }
22902         }
22903         container route-map {
22904           tailf:info "Filter prefixes based on the route-map";
22905           description
22906             "Filter prefixes based on the route-map";
22907           list rm-name {
22908             tailf:cli-drop-node-name;
22909             tailf:cli-suppress-mode;
22910             key "rm-name";
22911             leaf rm-name {
22912               tailf:info "route-map name";
22913               description
22914                 "route-map name";
22915               type string;
22916             }
22917             container in {
22918               tailf:info "Filter incoming routing updates";
22919               description
22920                 "Filter incoming routing updates";
22921               presence "true";
22922               container interface {
22923                 tailf:info "Specify interface";
22924                 description
22925                   "Specify interface";
22926                 tailf:cli-drop-node-name;
22927                 tailf:cli-compact-syntax;
22928                 tailf:cli-flatten-container;
22929                 uses interface-grouping;
22930               }
22931             }
22932           }
22933         }
22934       }
22935       container domain-password {
22936         tailf:info "Set the authentication password for a routing domain";
22937         description
22938           "Set the authentication password for a routing domain";
22939         tailf:cli-sequence-commands;
22940         tailf:cli-compact-syntax;
22941         leaf name {
22942           tailf:cli-drop-node-name;
22943           type string {
22944             tailf:info "WORD;;Routing domain password";
22945           }
22946         }
22947         uses authenticate-snp-grouping;
22948       }
22949       container fast-flood {
22950         tailf:info "Flood LSPs (that triggered SPF) before running SPF";
22951         description
22952           "Flood LSPs (that triggered SPF) before running SPF";
22953         presence "Flood LSPs (that triggered SPF) before running SPF";
22954         leaf number {
22955           tailf:cli-drop-node-name;
22956           type uint32 {
22957             range "1 .. 15";
22958             tailf:info "<1-15>;;number of LSPs to be flooded before starting SPF";
22959           }
22960         }
22961       }
22962       container fast-reroute {
22963         tailf:info "Configure Fast-Reroute";
22964         description
22965           "Configure Fast-Reroute";
22966         container load-sharing {
22967           tailf:info "Distributes repair paths equally among links and prefixes";
22968           description
22969             "Distributes repair paths equally among links and prefixes";
22970           container level-1 {
22971             tailf:info "Apply to level-1";
22972             description
22973               "Apply to level-1";
22974             presence "true";
22975             leaf disable {
22976               tailf:info "Disable load-sharing";
22977               description
22978                 "Disable load-sharing";
22979               type empty;
22980             }
22981           }
22982           container level-2 {
22983             tailf:info "Apply to level-2";
22984             description
22985               "Apply to level-2";
22986             presence "true";
22987             leaf disable {
22988               tailf:info "Disable load-sharing";
22989               description
22990                 "Disable load-sharing";
22991               type empty;
22992             }
22993           }
22994         }
22995         container per-prefix {
22996           tailf:info "Enable Fast-Reroute Per-Prefix";
22997           description
22998             "Enable Fast-Reroute Per-Prefix";
22999           container level-1 {
23000             tailf:info "Apply to level-1";
23001             description
23002               "Apply to level-1";
23003             leaf all {
23004               tailf:info "Enable Fast-Reroute for primary paths";
23005               description
23006                 "Enable Fast-Reroute for primary paths";
23007               type empty;
23008             }
23009             leaf route-map {
23010               tailf:info "route-map for selecting primary paths for protection";
23011               description
23012                 "route-map name";
23013               type string;
23014             }
23015           }
23016           container level-2 {
23017             tailf:info "Apply to level-2";
23018             description
23019               "Apply to level-2";
23020             leaf all {
23021               tailf:info "Enable Fast-Reroute for primary paths";
23022               description
23023                 "Enable Fast-Reroute for primary paths";
23024               type empty;
23025             }
23026             leaf route-map {
23027               tailf:info "route-map for selecting primary paths for protection";
23028               description
23029                 "route-map name";
23030               type string;
23031             }
23032           }
23033         }
23034         container remote-lfa {
23035           tailf:info "Configuring fast-reroute remote-lfa";
23036           description
23037             "Configuring fast-reroute remote-lfa";
23038           container level-1 {
23039             tailf:info "Apply to level-1";
23040             description
23041               "Apply to level-1";
23042             container mpls-ldp {
23043               tailf:info "Use mpls-ldp tunnel type";
23044               description
23045                 "Use mpls-ldp tunnel type";
23046               presence "true";
23047               container maximum-metric {
23048                 tailf:info "maximum metric to reach release node";
23049                 description
23050                   "maximum metric to reach release node";
23051                 presence "true";
23052                 leaf max-met {
23053                   tailf:info "metric value";
23054                   description
23055                     "metric value";
23056                   tailf:cli-drop-node-name;
23057                   type uint32 {
23058                     range "1..4294967295";
23059                   }
23060                 }
23061               }
23062             }
23063           }
23064           container level-2 {
23065             tailf:info "Apply to level-2";
23066             description
23067               "Apply to level-2";
23068             container mpls-ldp {
23069               tailf:info "Use mpls-ldp tunnel type";
23070               description
23071                 "Use mpls-ldp tunnel type";
23072               presence "true";
23073               container maximum-metric {
23074                 tailf:info "maximum metric to reach release node";
23075                 description
23076                   "maximum metric to reach release node";
23077                 presence "true";
23078                 leaf max-met {
23079                   tailf:info "metric value";
23080                   description
23081                     "metric value";
23082                   tailf:cli-drop-node-name;
23083                   type uint32 {
23084                     range "1..4294967295";
23085                   }
23086                 }
23087               }
23088             }
23089           }
23090         }
23091         container tie-break {
23092           tailf:info "Set repair path preference";
23093           description
23094             "Set repair path preference";
23095           container level-1 {
23096             tailf:info "Apply to level-1";
23097             description
23098               "Apply to level-1";
23099             uses tie-break-prefer-repair-grouping;
23100           }
23101           container level-2 {
23102             tailf:info "Apply to level-2";
23103             description
23104               "Apply to level-2";
23105             uses tie-break-prefer-repair-grouping;
23106           }
23107         }
23108       }
23109       container hello {
23110         tailf:info "Pad ISIS hello PDUs to full MTU";
23111         description
23112           "Pad ISIS hello PDUs to full MTU";
23113         container padding {
23114           tailf:info "Pad hello PDU";
23115           description
23116             "Pad hello PDU";
23117           presence "Pad hello PDU";
23118           leaf pad-type {
23119             tailf:cli-drop-node-name;
23120             type enumeration {
23121               enum "multi-point" {
23122                 tailf:info "Pad LAN hello PDUs";
23123               }
23124               enum "point-to-point" {
23125                 tailf:info "Pad point-to-point hello PDUs";
23126               }
23127             }
23128           }
23129         }
23130       }
23131       container hostname {
23132         tailf:info "Dynamic hostname for IS-IS";
23133         description
23134           "Dynamic hostname for IS-IS";
23135         leaf dynamic {
23136           tailf:info "Dynamic hostname";
23137           description
23138             "Dynamic hostname";
23139           type empty;
23140         }
23141       }
23142       leaf ignore-lsp-errors {
23143         tailf:info "Ignore LSPs with bad checksums";
23144         description
23145           "Ignore LSPs with bad checksums";
23146         tailf:cli-full-command;
23147         type empty;
23148       }
23149       container ip {
23150         tailf:info "IP specific commands";
23151         description
23152           "IP specific commands";
23153         container route {
23154           tailf:info "ISIS IP routes";
23155           description
23156             "ISIS IP routes";
23157           container priority {
23158             tailf:info "Assign priority to IP prefixes";
23159             description
23160               "Assign priority to IP prefixes";
23161             container high {
23162               tailf:info "Assign high priority to important IP prefixes in ISIS IP local RIB";
23163               description
23164                 "Assign high priority to important IP prefixes in ISIS IP local RIB";
23165               leaf tag {
23166                 tailf:info "Assign high priority to IP prefixes with a specific route tag";
23167                 description
23168                   "Assign high priority to IP prefixes with a specific route tag";
23169                 type uint32 {
23170                   range "1 .. 4294967295";
23171                   tailf:info "<1-4294967295>;;tag value";
23172                 }
23173               }
23174             }
23175           }
23176         }
23177       }
23178       leaf is-type {
23179         tailf:info "IS Level for this routing process (OSI only)";
23180         description
23181           "IS Level for this routing process (OSI only)";
23182         tailf:cli-full-command;
23183         type enumeration {
23184           enum "level-1" {
23185             tailf:info "Act as a station router only";
23186           }
23187           enum "level-1-2" {
23188             tailf:info "Act as both a station router and an area router";
23189           }
23190           enum "level-2-only" {
23191             tailf:info "Act as an area router only";
23192           }
23193         }
23194       }
23195       container ispf {
23196         tailf:info "Configure execution of incremental SPF";
23197         description
23198           "Configure execution of incremental SPF";
23199         tailf:cli-compact-syntax;
23200         tailf:cli-sequence-commands;
23201         leaf level {
23202           tailf:cli-drop-node-name;
23203           type enumeration {
23204             enum "level-1" {
23205               tailf:info "Do incremental SPF for level-1";
23206             }
23207             enum "level-1-2" {
23208               tailf:info "Do incremental SPF for both levels";
23209             }
23210             enum "level-2" {
23211               tailf:info "Do incremental SPF for level-2";
23212             }
23213           }
23214         }
23215         leaf number {
23216           tailf:cli-drop-node-name;
23217           type uint32 {
23218             range "1 .. 600";
23219             tailf:info "<1-600>;;Number of seconds before activating incremental-spf";
23220           }
23221         }
23222       }
23223       container log-adjacency-changes {
23224         tailf:info "Log changes in adjacency state";
23225         description
23226           "Log changes in adjacency state";
23227         presence "Log changes in adjacency state";
23228         leaf all {
23229           tailf:info "Include changes generated by non-IIH event";
23230           description
23231             "Include changes generated by non-IIH event";
23232           type empty;
23233         }
23234       }
23235       container lsp-full {
23236         tailf:info "If we run out of LSP fragments";
23237         description
23238           "If we run out of LSP fragments";
23239         container suppress {
23240           tailf:info "suppress the following types of IP prefixes";
23241           description
23242             "suppress the following types of IP prefixes";
23243           choice lsp-full-choince {
23244             container external-interlevel-container {
23245               tailf:cli-drop-node-name;
23246               tailf:cli-compact-syntax;
23247               leaf external {
23248                 tailf:info "don't advertise IP prefixes learned from other protocols";
23249                 description
23250                   "don't advertise IP prefixes learned from other protocols";
23251                 type empty;
23252               }
23253               leaf interlevel {
23254                 tailf:info "don't advertise IP prefixes learned from another ISIS level";
23255                 description
23256                   "don't advertise IP prefixes learned from another ISIS level";
23257                 type empty;
23258               }
23259             }
23260             leaf none {
23261               tailf:info "don't suppress any prefixes";
23262               description
23263                 "don't suppress any prefixes";
23264               type empty;
23265             }
23266           }
23267         }
23268       }
23269       container lsp-gen-interval {
23270         tailf:info "Minimum interval between regenerating same LSP";
23271         description
23272           "Minimum interval between regenerating same LSP";
23273         choice lsp-gen-interval-choice {
23274           container intervals {
23275             tailf:cli-drop-node-name;
23276             tailf:cli-compact-syntax;
23277             tailf:cli-sequence-commands;
23278             uses lsp-gen-interval-grouping;
23279           }
23280           container intervals-levels {
23281             tailf:cli-drop-node-name;
23282             container intervals-level-1 {
23283               tailf:cli-drop-node-name;
23284               tailf:cli-compact-syntax;
23285               tailf:cli-sequence-commands;
23286               leaf level-1 {
23287                 tailf:info "Set interval for level 1 only";
23288                 description
23289                   "Set interval for level 1 only";
23290                 type empty;
23291               }
23292               uses lsp-gen-interval-grouping;
23293             }
23294             container intervals-level-2 {
23295               tailf:cli-drop-node-name;
23296               tailf:cli-compact-syntax;
23297               tailf:cli-sequence-commands;
23298               leaf level-2 {
23299                 tailf:info "Set interval for level 2 only";
23300                 description
23301                   "Set interval for level 2 only";
23302                 type empty;
23303               }
23304               uses lsp-gen-interval-grouping;
23305             }
23306           }
23307         }
23308       }
23309       leaf lsp-mtu {
23310         tailf:info "Set maximum LSP size";
23311         description
23312           "Set maximum LSP size";
23313         tailf:cli-full-command;
23314         type uint32 {
23315           range "128 .. 4352";
23316           tailf:info "<128-4352>;;Max LSP size in bytes";
23317         }
23318       }
23319       leaf lsp-refresh-interval {
23320         tailf:info "Set LSP refresh interval";
23321         description
23322           "Set LSP refresh interval";
23323         tailf:cli-full-command;
23324         type uint32 {
23325           range "1 .. 65535";
23326           tailf:info "<1-65535>;;LSP refresh time in seconds";
23327         }
23328       }
23329       leaf max-area-addresses {
23330         tailf:info "Allow configuration of more manual area addresses";
23331         description
23332           "Allow configuration of more manual area addresses";
23333         tailf:cli-full-command;
23334         type uint32 {
23335           range "3 .. 254";
23336           tailf:info "<3-254>;;Max number of manual area addresses";
23337         }
23338       }
23339       leaf max-lsp-lifetime {
23340         tailf:info "Set maximum LSP lifetime";
23341         description
23342           "Set maximum LSP lifetime";
23343         tailf:cli-full-command;
23344         type uint32 {
23345           range "1 .. 65535";
23346           tailf:info "<1-65535>;;Maximum LSP lifetime in seconds";
23347         }
23348       }
23349       container metric-style {
23350         tailf:info "Use old-style (ISO 10589) or new-style packet formats";
23351         description
23352           "Use old-style (ISO 10589) or new-style packet formats";
23353         choice metric-style-choice {
23354           container narrow {
23355             tailf:info "Use old style of TLVs with narrow metric";
23356             description
23357               "Use old style of TLVs with narrow metric";
23358             presence "true";
23359             uses narrow-wide-transition-grouping;
23360           }
23361           container transition {
23362             tailf:info "Send and accept both styles of TLVs during transition";
23363             description
23364               "Send and accept both styles of TLVs during transition";
23365             presence "true";
23366             leaf transition {
23367               type isis-level-type;
23368               tailf:cli-drop-node-name;
23369             }
23370           }
23371           container wide {
23372             tailf:info "Use new style of TLVs to carry wider metric";
23373             description
23374               "Use new style of TLVs to carry wider metric";
23375             presence "true";
23376             uses narrow-wide-transition-grouping;
23377           }
23378         }
23379       }
23380       container microloop {
23381         tailf:info "Enable microloop protection configuration commands";
23382         description
23383           "Enable microloop protection configuration commands";
23384         container avoidance {
23385           tailf:info "Enable local microloop avoidance";
23386           description
23387             "Enable local microloop avoidance";
23388           presence "true";
23389           leaf disable {
23390             tailf:info "Disable Microloop avoidance";
23391             description
23392               "Disable Microloop avoidance";
23393             type empty;
23394           }
23395           leaf protected {
23396             tailf:info "Microloop avoidance for protected link or prefix only";
23397             description
23398               "Microloop avoidance for protected link or prefix only";
23399             type empty;
23400           }
23401           leaf rib-update-delay {
23402             tailf:info "Microloop avoidance RIB update delay";
23403             description
23404               "Value of the delay in milliseconds";
23405             type uint32 {
23406               range "1..600000";
23407             }
23408           }
23409         }
23410       }
23411       container mpls {
23412         tailf:info "Configure MPLS routing protocol parameters";
23413         description
23414           "Configure MPLS routing protocol parameters";
23415         container ldp {
23416           tailf:info "routing protocol commands for MPLS LDP";
23417           description
23418             "routing protocol commands for MPLS LDP";
23419           container autoconfig {
23420             tailf:info "Configure LDP automatic configuration";
23421             description
23422               "Configure LDP automatic configuration";
23423             presence "true";
23424             leaf level-1 {
23425               tailf:info "Configure ISIS level-1 to run MPLS LDP";
23426               description
23427                 "Configure ISIS level-1 to run MPLS LDP";
23428               type empty;
23429             }
23430             leaf level-2 {
23431               tailf:info "Configure ISIS level-2 to run MPLS LDP";
23432               description
23433                 "Configure ISIS level-2 to run MPLS LDP";
23434               type empty;
23435             }
23436           }
23437           leaf sync {
23438             tailf:info "Configure LDP-IGP Synchronization";
23439             description
23440               "Configure LDP-IGP Synchronization";
23441             type empty;
23442           }
23443           leaf sync-igp-shortcuts {
23444             tailf:info "Configure LDP-IGP Synchronization on MPLS shortcuts";
23445             description
23446               "Configure LDP-IGP Synchronization on MPLS shortcuts";
23447             type empty;
23448           }
23449         }
23450         container traffic-eng {
23451           tailf:info "routing protocol commands for MPLS Traffic Engineering";
23452           description
23453             "routing protocol commands for MPLS Traffic Engineering";
23454           leaf level-1 {
23455             tailf:info "Run MPLS TE on IS-IS level 1 only";
23456             description
23457               "Run MPLS TE on IS-IS level 1 only";
23458             tailf:cli-full-command;
23459             type empty;
23460           }
23461           leaf level-2 {
23462             tailf:info "Run MPLS TE on IS-IS level 2 only";
23463             description
23464               "Run MPLS TE on IS-IS level 2 only";
23465             tailf:cli-full-command;
23466             type empty;
23467           }
23468           leaf multicast-intact {
23469             tailf:info "MPLS TE and PIM interaction";
23470             description
23471               "MPLS TE and PIM interaction";
23472             tailf:cli-full-command;
23473             type empty;
23474           }
23475           container router-id {
23476             tailf:info "Traffic Engineering stable IP address for system";
23477             description
23478               "Traffic Engineering stable IP address for system";
23479             tailf:cli-diff-dependency "/ios:native/interface";
23480             uses interface-grouping;
23481           }
23482           container scanner {
23483             tailf:info "Timer parameters for TE database";
23484             description
23485               "Timer parameters for TE database";
23486             presence "Timer parameters for TE database";
23487             tailf:cli-compact-syntax;
23488             leaf interval {
23489               tailf:info "time (secs) between LSPDB walks for TE";
23490               description
23491                 "time (secs) between LSPDB walks for TE";
23492               type uint32 {
23493                 range "1 .. 60";
23494                 tailf:info "<1-60>;;interval between LSPDB walks for TE TLVs extraction";
23495               }
23496             }
23497             leaf max-flash {
23498               tailf:info "Number of ISIS LSPs to be processed with no delay";
23499               description
23500                 "Number of ISIS LSPs to be processed with no delay";
23501               type uint32 {
23502                 range "0 .. 200";
23503                 tailf:info "<0-200>;;Max. number of LSPs ISIS may send to TE db without delay";
23504               }
23505             }
23506           }
23507         }
23508       }
23509       list net {
23510         tailf:info "A Network Entity Title for this process (OSI only)";
23511         description
23512           "A Network Entity Title for this process (OSI only)";
23513         tailf:cli-suppress-mode;
23514         tailf:cli-delete-when-empty;
23515         key "tag";
23516         leaf tag {
23517           type isis-net;
23518         }
23519       }
23520       container nsf {
23521         tailf:info "Non-stop forwarding";
23522         description
23523           "Non-stop forwarding";
23524         leaf cisco {
23525           tailf:info "Checkpoint method";
23526           description
23527             "Checkpoint method";
23528           type empty;
23529         }
23530         leaf ietf {
23531           tailf:info "IETF method";
23532           description
23533             "IETF method";
23534           type empty;
23535         }
23536         container interface {
23537           tailf:info "Interface properties";
23538           description
23539             "Interface properties";
23540           leaf wait {
23541             tailf:info "Maximum time to wait for interface up";
23542             description
23543               "Seconds";
23544             type uint8 {
23545               range "1..60";
23546             }
23547           }
23548         }
23549         leaf interval {
23550           tailf:info "Minimum required stable interval between restarts";
23551           description
23552             "Minutes";
23553           type uint16 {
23554             range "0..1440";
23555           }
23556         }
23557       }
23558       container partition {
23559         tailf:info "CLNS area partition";
23560         description
23561           "CLNS area partition";
23562         leaf avoidance {
23563           tailf:info "Withdraw area prefix if partition detected";
23564           description
23565             "Withdraw area prefix if partition detected";
23566           type empty;
23567         }
23568       }
23569       leaf priority {
23570         tailf:info "Priority associated with a topology";
23571         description
23572           "priority value";
23573         type uint8 {
23574           range "0..127";
23575         }
23576       }
23577       uses passive-interface-grouping;
23578       container protocol {
23579         tailf:info "Set protocol's administrative state";
23580         description
23581           "Set protocol's administrative state";
23582         leaf shutdown {
23583           tailf:info "Set protocol's administrative state to disable";
23584           description
23585             "Set protocol's administrative state to disable";
23586           type empty;
23587         }
23588       }
23589       container redistribute {
23590         tailf:info "Redistribute information from another routing protocol";
23591         description
23592           "Redistribute information from another routing protocol";
23593         uses isis-redist-grouping;
23594         container application {
23595           tailf:info "Application";
23596           description
23597             "Application";
23598           list app-name {
23599             tailf:cli-drop-node-name;
23600             tailf:cli-suppress-mode;
23601             key "app-name";
23602             leaf app-name {
23603               tailf:info "Application name";
23604               description
23605                 "Application name";
23606               type string;
23607             }
23608             container level-1 {
23609               tailf:info "IS-IS level-1 routes only";
23610               description
23611                 "IS-IS level-1 routes only";
23612               presence "true";
23613               uses isis-redist-grouping;
23614             }
23615             container level-1-2 {
23616               tailf:info "IS-IS level-1 and level-2 routes";
23617               description
23618                 "IS-IS level-1 and level-2 routes";
23619               presence "true";
23620               uses isis-redist-grouping;
23621             }
23622             container level-2 {
23623               tailf:info "IS-IS level-2 routes only";
23624               description
23625                 "IS-IS level-2 routes only";
23626               presence "true";
23627               uses isis-redist-grouping;
23628             }
23629             uses isis-redist-grouping;
23630           }
23631         }
23632         container bgp {
23633           tailf:info "Border Gateway Protocol (BGP)";
23634           description
23635             "Border Gateway Protocol (BGP)";
23636           tailf:cli-compact-syntax;
23637           leaf as-number {
23638             tailf:cli-drop-node-name;
23639             type bgp-as-number-type;
23640           }
23641           uses isis-redist-grouping;
23642           uses isis-redist-clns-ip-grouping;
23643         }
23644         container connected {
23645           tailf:info "Connected";
23646           description
23647             "Connected";
23648           presence "Connected";
23649           uses isis-redist-grouping;
23650         }
23651         list eigrp {
23652           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
23653           description
23654             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
23655           tailf:cli-suppress-mode;
23656           tailf:cli-delete-when-empty;
23657           key "as-number";
23658           leaf as-number {
23659             tailf:cli-drop-node-name;
23660             type uint32 {
23661               range "1 .. 65535";
23662               tailf:info "<1-65535>;;Autonomous system number";
23663             }
23664           }
23665           uses isis-redist-grouping;
23666         }
23667         container isis {
23668           tailf:info "ISO IS-IS";
23669           description
23670             "ISO IS-IS";
23671           tailf:cli-compact-syntax;
23672           leaf area-tag {
23673             tailf:cli-drop-node-name;
23674             type string {
23675               tailf:info "WORD;;ISO routing area tag";
23676             }
23677           }
23678           container ip {
23679             tailf:info "Redistribution of IP routes between levels";
23680             description
23681               "Redistribution of IP routes between levels";
23682             tailf:cli-compact-syntax;
23683             uses isis-redist-grouping;
23684             leaf isis-redist-levels1 {
23685               tailf:cli-drop-node-name;
23686               tailf:cli-incomplete-command;
23687               type enumeration {
23688                 enum "level-1" {
23689                   tailf:info "Inter-area routes from level-1";
23690                 }
23691                 enum "level-2" {
23692                   tailf:info "Inter-area routes from level-2";
23693                 }
23694               }
23695             }
23696             leaf into {
23697               tailf:info "from level-n into level-m";
23698               description
23699                 "from level-n into level-m";
23700               tailf:cli-incomplete-command;
23701               type empty;
23702             }
23703             leaf isis-redist-levels2 {
23704               tailf:cli-drop-node-name;
23705               tailf:cli-incomplete-command;
23706               type enumeration {
23707                 enum "level-1" {
23708                   tailf:info "Inter-area routes from level-1";
23709                 }
23710                 enum "level-2" {
23711                   tailf:info "Inter-area routes from level-2";
23712                 }
23713               }
23714             }
23715             choice isis-redist-isis-ip-choice {
23716               leaf distribute-list {
23717                 tailf:info "select routes";
23718                 description
23719                   "select routes";
23720                 type uint32 {
23721                   range "100 .. 199";
23722                   tailf:info "<100-199>;;IP extended acces-list number";
23723                 }
23724               }
23725               leaf route-map {
23726                 tailf:info "Route map for route matching";
23727                 description
23728                   "Route map for route matching";
23729                 type string {
23730                   tailf:info "WORD;;Name of the route-map";
23731                 }
23732               }
23733             }
23734           }
23735         }
23736         container iso-igrp {
23737           tailf:info "IGRP for OSI networks";
23738           description
23739             "IGRP for OSI networks";
23740           presence "IGRP for OSI networks";
23741           tailf:cli-sequence-commands;
23742           choice iso-igrp-choice {
23743             container area-tag-route-map-container {
23744               tailf:cli-drop-node-name;
23745               tailf:cli-sequence-commands;
23746               tailf:cli-flatten-container;
23747               leaf area-tag {
23748                 tailf:cli-drop-node-name;
23749                 tailf:cli-disallow-value "route-map";
23750                 type string {
23751                   tailf:info "WORD;;ISO routing area tag";
23752                 }
23753               }
23754               leaf route-map {
23755                 tailf:info "Route map reference";
23756                 description
23757                   "Route map reference";
23758                 type string {
23759                   tailf:info "WORD;;Pointer to route-map entries";
23760                 }
23761               }
23762             }
23763             leaf route-map {
23764               tailf:info "Route map reference";
23765               description
23766                 "Route map reference";
23767               type string {
23768                 tailf:info "WORD;;Pointer to route-map entries";
23769               }
23770             }
23771           }
23772           uses redist-level-grouping;
23773           leaf metric {
23774             tailf:info "ISIS default metric";
23775             description
23776               "ISIS default metric";
23777             type uint32 {
23778               range "0 .. 4294967295";
23779               tailf:info "<0-4294967295>;;ISIS default metric";
23780             }
23781           }
23782           leaf metric-type {
23783             tailf:info "OSPF/IS-IS exterior metric type for redistributed routes";
23784             description
23785               "OSPF/IS-IS exterior metric type for redistributed routes";
23786             type enumeration {
23787               enum "external" {
23788                 tailf:info "Set IS-IS External metric type";
23789               }
23790               enum "internal" {
23791                 tailf:info "Set IS-IS Internal metric type";
23792               }
23793               enum "rib-metric-as-external" {
23794                 tailf:info "Set IS-IS rib External metric type";
23795               }
23796               enum "rib-metric-as-internal" {
23797                 tailf:info "Set IS-IS rib Internal metric type";
23798               }
23799             }
23800           }
23801         }
23802         container lisp {
23803           tailf:info "Locator ID Separation Protocol (LISP)";
23804           description
23805             "Locator ID Separation Protocol (LISP)";
23806           presence "true";
23807           uses isis-redist-af-grouping;
23808         }
23809         container maximum-prefix {
23810           tailf:info "Maximum number of prefixes redistributed to protocol";
23811           description
23812             "Maximum number of prefixes redistributed to protocol";
23813           tailf:cli-compact-syntax;
23814           tailf:cli-sequence-commands;
23815           leaf number {
23816             tailf:cli-drop-node-name;
23817             type uint32 {
23818               range "1 .. 4294967295";
23819               tailf:info "<1-4294967295>;;Maximum number of IP prefixes redistributed";
23820             }
23821           }
23822           leaf threshold-value {
23823             tailf:cli-drop-node-name;
23824             tailf:cli-break-sequence-commands;
23825             type uint32 {
23826               range "1 .. 100";
23827               tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
23828             }
23829           }
23830           leaf warning-only {
23831             tailf:info "Only give warning message when limit is exceeded";
23832             description
23833               "Only give warning message when limit is exceeded";
23834             tailf:cli-full-command;
23835             type empty;
23836           }
23837           leaf withdraw {
23838             tailf:info "Withdraw redistibuted prefixes";
23839             description
23840               "Withdraw redistibuted prefixes";
23841             tailf:cli-full-command;
23842             type empty;
23843           }
23844         }
23845         container mobile {
23846           tailf:info "Mobile routes";
23847           description
23848             "Mobile routes";
23849           presence "Mobile routes";
23850           uses isis-redist-grouping;
23851         }
23852         container odr {
23853           tailf:info "On Demand stub Routes";
23854           description
23855             "On Demand stub Routes";
23856           presence "On Demand stub Routes";
23857           uses isis-redist-grouping;
23858         }
23859         list ospf {
23860           tailf:info "Open Shortest Path First (OSPF)";
23861           description
23862             "Open Shortest Path First (OSPF)";
23863           tailf:cli-suppress-mode;
23864           tailf:cli-delete-when-empty;
23865           key "process-id";
23866           leaf process-id {
23867             tailf:cli-suppress-range;
23868             type uint32 {
23869               range "1 .. 65535";
23870               tailf:info "<1-65535>;;Process ID";
23871             }
23872           }
23873           uses isis-redist-grouping;
23874           container match {
23875             tailf:cli-compact-syntax;
23876             tailf:cli-flatten-container;
23877             tailf:info "Redistribution of OSPF routes";
23878             description
23879               "Redistribution of OSPF routes";
23880             container internal {
23881               presence "Redistribute OSPF internal routes";
23882               tailf:info "Redistribute OSPF internal routes";
23883               description
23884                 "Redistribute OSPF internal routes";
23885               tailf:cli-compact-syntax;
23886               tailf:cli-flatten-container;
23887               uses isis-redist-container-content-grouping;
23888             }
23889             container external {
23890               tailf:info "Redistribute OSPF external routes";
23891               description
23892                 "Redistribute OSPF external routes";
23893               presence "Redistribute OSPF external routes";
23894               tailf:cli-compact-syntax;
23895               tailf:cli-flatten-container;
23896               leaf external-routes {
23897                 tailf:cli-drop-node-name;
23898                 type redist-ospf-external-type;
23899               }
23900               uses isis-redist-container-content-grouping;
23901             }
23902             container nssa-external {
23903               tailf:info "Redistribute OSPF NSSA external routes";
23904               description
23905                 "Redistribute OSPF NSSA external routes";
23906               presence "Redistribute OSPF NSSA external routes";
23907               tailf:cli-compact-syntax;
23908               tailf:cli-flatten-container;
23909               leaf nssa-external-routes {
23910                 tailf:cli-drop-node-name;
23911                 type redist-ospf-external-type;
23912               }
23913               uses isis-redist-container-content-grouping;
23914             }
23915           }
23916           leaf vrf {
23917             tailf:info "VPN Routing/Forwarding Instance";
23918             description
23919               "VPN Routing/Forwarding Instance";
23920             tailf:cli-diff-dependency "/ios:native/ip/vrf";
23921             tailf:cli-diff-dependency "/ios:native/vrf/definition";
23922             type string {
23923               tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
23924             }
23925           }
23926         }
23927         list ospfv3 {
23928           tailf:info "Open Shortest Path First (OSPF)";
23929           description
23930             "Open Shortest Path First (OSPF)";
23931           tailf:cli-suppress-mode;
23932           tailf:cli-delete-when-empty;
23933           key "process-id";
23934           leaf process-id {
23935             tailf:cli-suppress-range;
23936             type uint32 {
23937               range "1 .. 65535";
23938               tailf:info "<1-65535>;;Process ID";
23939             }
23940           }
23941           uses isis-redist-grouping;
23942           container match {
23943             tailf:cli-compact-syntax;
23944             tailf:cli-flatten-container;
23945             tailf:info "Redistribution of OSPF routes";
23946             description
23947               "Redistribution of OSPF routes";
23948             container internal {
23949               presence "Redistribute OSPF internal routes";
23950               tailf:info "Redistribute OSPF internal routes";
23951               description
23952                 "Redistribute OSPF internal routes";
23953               tailf:cli-compact-syntax;
23954               tailf:cli-flatten-container;
23955               uses isis-redist-container-content-grouping;
23956             }
23957             container external {
23958               tailf:info "Redistribute OSPF external routes";
23959               description
23960                 "Redistribute OSPF external routes";
23961               presence "Redistribute OSPF external routes";
23962               tailf:cli-compact-syntax;
23963               tailf:cli-flatten-container;
23964               leaf external-routes {
23965                 tailf:cli-drop-node-name;
23966                 type redist-ospf-external-type;
23967               }
23968               uses isis-redist-container-content-grouping;
23969             }
23970             container nssa-external {
23971               tailf:info "Redistribute OSPF NSSA external routes";
23972               description
23973                 "Redistribute OSPF NSSA external routes";
23974               presence "Redistribute OSPF NSSA external routes";
23975               tailf:cli-compact-syntax;
23976               tailf:cli-flatten-container;
23977               leaf nssa-external-routes {
23978                 tailf:cli-drop-node-name;
23979                 type redist-ospf-external-type;
23980               }
23981               uses isis-redist-container-content-grouping;
23982             }
23983           }
23984           leaf vrf {
23985             tailf:info "VPN Routing/Forwarding Instance";
23986             description
23987               "VPN Routing/Forwarding Instance";
23988             tailf:cli-diff-dependency "/ios:native/ip/vrf";
23989             tailf:cli-diff-dependency "/ios:native/vrf/definition";
23990             type string {
23991               tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
23992             }
23993           }
23994         }
23995         container rip {
23996           tailf:info "Routing Information Protocol (RIP)";
23997           description
23998             "Routing Information Protocol (RIP)";
23999           presence "Routing Information Protocol (RIP)";
24000           uses isis-redist-grouping;
24001         }
24002         container static {
24003           tailf:info "Static routes";
24004           description
24005             "Static routes";
24006           presence "Static routes";
24007           uses isis-redist-clns-ip-grouping;
24008         }
24009         container vrf {
24010           tailf:info "Specify a source VRF";
24011           description
24012             "Specify a source VRF";
24013           list vrf-nm {
24014             tailf:cli-drop-node-name;
24015             tailf:cli-suppress-mode;
24016             key "vrf-nm";
24017             leaf vrf-nm {
24018               tailf:info "Source VRF name";
24019               description
24020                 "Source VRF name";
24021               type string;
24022             }
24023             uses isis-redist-vrf-grouping;
24024           }
24025           container global {
24026             tailf:info "global VRF";
24027             description
24028               "global VRF";
24029             uses isis-redist-vrf-grouping;
24030           }
24031         }
24032       }
24033       container segment-routing {
24034         tailf:info "Enable Segment Routing Feature";
24035         description
24036           "Enable Segment Routing Feature";
24037         leaf mpls {
24038           tailf:info "Enable Segment Routing Feature using MPLS encapsulation";
24039           description
24040             "Enable Segment Routing Feature using MPLS encapsulation";
24041           type empty;
24042         }
24043         container prefix-sid-map {
24044           tailf:info "Enable prefix-sid-map";
24045           description
24046             "Enable prefix-sid-map";
24047           leaf advertise-local {
24048             tailf:info "Advertise active local prefix-SID mappings";
24049             description
24050               "Advertise active local prefix-SID mappings";
24051             type empty;
24052           }
24053           container receive {
24054             tailf:info "Enable prefix-SID mapping client";
24055             description
24056               "Enable prefix-SID mapping client";
24057             presence "true";
24058             leaf disable {
24059               tailf:info "Disable prefix-SID mapping";
24060               description
24061                 "Disable prefix-SID mapping";
24062               type empty;
24063             }
24064           }
24065         }
24066       }
24067       container set-attached-bit {
24068         tailf:info "Conditionally advertise us as attached to L2";
24069         description
24070           "Conditionally advertise us as attached to L2";
24071         leaf route-map {
24072           tailf:info "Route-map reference";
24073           description
24074             "Route-map reference";
24075           type string {
24076             tailf:info "WORD;;Route map name";
24077           }
24078         }
24079       }
24080       container skeptical {
24081         tailf:info "Be a cautious NSF helper when refresh adjacency";
24082         description
24083           "Be a cautious NSF helper when refresh adjacency";
24084         leaf interval {
24085           tailf:info "Interval during which holdtime for an adjacency with a recently restarted router will NOT be refreshed based on holdtime in IIH-RR";
24086           description
24087             "Minutes";
24088           type uint16 {
24089             range "0..1440";
24090           }
24091         }
24092       }
24093       container snmp {
24094         tailf:info "Modify snmp parameters";
24095         description
24096           "Modify snmp parameters";
24097         tailf:cli-drop-node-name;
24098         uses ospf-snmp-grouping;
24099       }
24100       list summary-address {
24101         tailf:info "Configure IP address summaries";
24102         description
24103           "Configure IP address summaries";
24104         tailf:cli-suppress-mode;
24105         tailf:cli-delete-when-empty;
24106         key "ip mask";
24107         leaf ip {
24108           type inet:ipv4-address {
24109             tailf:info "A.B.C.D;;IP summary address";
24110           }
24111         }
24112         leaf mask {
24113           type inet:ipv4-address {
24114             tailf:info "A.B.C.D;;Summary mask";
24115           }
24116         }
24117         container level-1 {
24118           tailf:info "Summarize into level-1 area";
24119           description
24120             "Summarize into level-1 area";
24121           presence "Summarize into level-1 area";
24122           tailf:cli-compact-syntax;
24123           uses summary-address-metric-tag-grouping;
24124         }
24125         container level-1-2 {
24126           tailf:info "Summarize into both area and sub-domain";
24127           description
24128             "Summarize into both area and sub-domain";
24129           presence "Summarize into both area and sub-domain";
24130           tailf:cli-compact-syntax;
24131           uses summary-address-metric-tag-grouping;
24132         }
24133         container level-2 {
24134           tailf:info "Summarize into level-2 sub-domain";
24135           description
24136             "Summarize into level-2 sub-domain";
24137           presence "Summarize into level-2 sub-domain";
24138           tailf:cli-compact-syntax;
24139           uses summary-address-metric-tag-grouping;
24140         }
24141         container metric-tag-container {
24142           tailf:cli-drop-node-name;
24143           tailf:cli-compact-syntax;
24144           uses summary-address-metric-tag-grouping;
24145         }
24146       }
24147       leaf update-queue-depth {
24148         tailf:info "Set Update process queue depth";
24149         description
24150           "Set Update process queue depth";
24151         type uint32 {
24152           range "1 .. 2147483647";
24153           tailf:info "<1-2147483647>;;Max queue depth";
24154         }
24155       }
24156       container use {
24157         tailf:info "Use different algorithms during SPF";
24158         description
24159           "Use different algorithms during SPF";
24160         leaf external-metrics {
24161           tailf:info "Honour external metrics during SPF";
24162           description
24163             "Honour external metrics during SPF";
24164           type empty;
24165         }
24166       }
24167     }
24168   }
24169
24170   grouping interface-switch-grouping {
24171     container dual-active {
24172       leaf fast-hello {
24173         type empty;
24174       }
24175     }
24176     container lldp {
24177       tailf:info "LLDP interface subcommands";
24178       description
24179         "LLDP interface subcommands";
24180       leaf receive {
24181         tailf:info "Enable LLDP reception on interface";
24182         description
24183           "Enable LLDP reception on interface";
24184         tailf:cli-boolean-no;
24185         tailf:cli-trim-default;
24186         type boolean;
24187       }
24188       leaf transmit {
24189         tailf:info "Enable LLDP transmission on interface";
24190         description
24191           "Enable LLDP transmission on interface";
24192         tailf:cli-boolean-no;
24193         tailf:cli-trim-default;
24194         type boolean;
24195       }
24196     }
24197     container load-balancing {
24198       tailf:info "Etherchannel Load-Balancing";
24199       description
24200         "Etherchannel Load-Balancing";
24201       leaf flow {
24202         tailf:info "Based on the traffic flows identified by the packet headers";
24203         description
24204           "Based on the traffic flows identified by the packet headers";
24205         tailf:cli-full-command;
24206         type empty;
24207       }
24208       leaf vlan {
24209         tailf:info "Based on the VLAN to member links manual configuration";
24210         description
24211           "Based on the VLAN to member links manual configuration";
24212         tailf:cli-full-command;
24213         type empty;
24214       }
24215     }
24216     container dot1x {
24217       tailf:info "Interface Config Commands for IEEE 802.1X";
24218       description
24219         "Interface Config Commands for IEEE 802.1X";
24220       container authenticator {
24221         tailf:info "Configure authenticator parameters";
24222         description
24223           "Configure authenticator parameters";
24224         container eap {
24225           tailf:info "Configure EAP authenticator parameters";
24226           description
24227             "Configure EAP authenticator parameters";
24228           leaf profile {
24229             tailf:info "EAP authenticator profile configuration";
24230             description
24231               "EAP authenticator profile configuration";
24232             type string {
24233               tailf:info "WORD;;EAP authenticator profile name";
24234             }
24235           }
24236         }
24237       }
24238       leaf credentials {
24239         tailf:info "Credentials profile configuration";
24240         description
24241           "Credentials profile configuration";
24242         tailf:cli-full-command;
24243         type string {
24244           tailf:info "WORD;;Profile Name";
24245         }
24246       }
24247       leaf max-reauth-req {
24248         tailf:info "Max No. of Reauthentication Attempts";
24249         description
24250           "Max No. of Reauthentication Attempts";
24251         tailf:cli-full-command;
24252         type uint8 {
24253           tailf:info "<1-10>;;Enter a value between 1 and 10";
24254           range "1..10";
24255         }
24256       }
24257       leaf max-req {
24258         tailf:info "Max No. of Retries";
24259         description
24260           "Max No. of Retries";
24261         tailf:cli-full-command;
24262         type uint8 {
24263           tailf:info "<1-10>;;Enter a value between 1 and 10";
24264           range "1..10";
24265         }
24266       }
24267       leaf max-start {
24268         tailf:info "Max No. of EAPOL-Start requests";
24269         description
24270           "Max No. of EAPOL-Start requests";
24271         tailf:cli-full-command;
24272         type uint8 {
24273           tailf:info "<1-10>;;Enter a value between 1 and 10";
24274           range "1..10";
24275         }
24276       }
24277       leaf pae {
24278         tailf:info "Set 802.1x interface pae type";
24279         description
24280           "Set 802.1x interface pae type";
24281         tailf:cli-full-command;
24282         type enumeration {
24283           enum "authenticator" {
24284             tailf:info "Set pae type as Authenticator";
24285           }
24286           enum "supplicant" {
24287             tailf:info "Set pae type as Supplicant";
24288           }
24289         }
24290       }
24291       container supplicant {
24292         tailf:info "Configure supplicant parameters";
24293         description
24294           "Configure supplicant parameters";
24295         container eap {
24296           tailf:info "Configure EAP supplicant parameters";
24297           description
24298             "Configure EAP supplicant parameters";
24299           leaf profile {
24300             tailf:info "EAP supplicant profile configuration";
24301             description
24302               "EAP supplicant profile configuration";
24303             type string {
24304               tailf:info "WORD;;EAP supplicant profile name";
24305             }
24306           }
24307         }
24308       }
24309       container timeout {
24310         tailf:info "Various Timeouts";
24311         description
24312           "Various Timeouts";
24313         leaf auth-period {
24314           tailf:info "Timeout for authenticator reply";
24315           description
24316             "Timeout for authenticator reply";
24317           tailf:cli-full-command;
24318           type uint16 {
24319             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24320           }
24321         }
24322         leaf held-period {
24323           tailf:info "Timeout for authentication retries";
24324           description
24325             "Timeout for authentication retries";
24326           tailf:cli-full-command;
24327           type uint16 {
24328             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24329           }
24330         }
24331         leaf quiet-period {
24332           tailf:info "QuietPeriod in Seconds";
24333           description
24334             "QuietPeriod in Seconds";
24335           tailf:cli-full-command;
24336           type uint16 {
24337             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24338           }
24339         }
24340         leaf ratelimit-period {
24341           tailf:info "Ratelimit Period in seconds";
24342           description
24343             "Ratelimit Period in seconds";
24344           tailf:cli-full-command;
24345           type uint16 {
24346             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24347           }
24348         }
24349         leaf server-timeout {
24350           tailf:info "Timeout for Radius Retries";
24351           description
24352             "Timeout for Radius Retries";
24353           tailf:cli-full-command;
24354           type uint16 {
24355             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24356           }
24357         }
24358         leaf start-period {
24359           tailf:info "Timeout for EAPOL-start retries";
24360           description
24361             "Timeout for EAPOL-start retries";
24362           tailf:cli-full-command;
24363           type uint16 {
24364             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24365           }
24366         }
24367         leaf supp-timeout {
24368           tailf:info "Timeout for supplicant reply";
24369           description
24370             "Timeout for supplicant reply";
24371           tailf:cli-full-command;
24372           type uint16 {
24373             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24374           }
24375         }
24376         leaf tx-period {
24377           tailf:info "Timeout for supplicant retries";
24378           description
24379             "Timeout for supplicant retries";
24380           tailf:cli-full-command;
24381           type uint16 {
24382             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
24383           }
24384         }
24385       }
24386     }
24387     list vlan-range {
24388       key "id";
24389       leaf id {
24390         type uint16 {
24391           tailf:info "<1-4094>;;vlan id";
24392           range "1..4094";
24393         }
24394       }
24395       container service-policy {
24396         tailf:info "Configure QoS Service Policy";
24397         description
24398           "Configure QoS Service Policy";
24399         leaf input {
24400           tailf:cli-full-command;
24401           tailf:info "Assign policy-map to the input of an interface";
24402           description
24403             "Assign policy-map to the input of an interface";
24404           type string {
24405             tailf:info "WORD;;policy-map name";
24406           }
24407           tailf:non-strict-leafref {
24408             path "/ios:native/policy-map/name";
24409           }
24410         }
24411         leaf output {
24412           tailf:cli-full-command;
24413           tailf:info "Assign policy-map to the output of an interface";
24414           description
24415             "Assign policy-map to the output of an interface";
24416           type string {
24417             tailf:info "WORD;;policy-map name";
24418           }
24419           tailf:non-strict-leafref {
24420             path "/ios:native/policy-map/name";
24421           }
24422         }
24423       }
24424     }
24425     container switch {
24426       container virtual {
24427         leaf link {
24428           type uint8;
24429         }
24430       }
24431     }
24432     container switchport-conf {
24433       tailf:cli-no-keyword;
24434       tailf:cli-drop-node-name;
24435       leaf switchport {
24436         tailf:cli-boolean-no;
24437         type boolean;
24438       }
24439     }
24440     container switchport {
24441       tailf:info "Set switching mode characteristics";
24442       description
24443         "Set switching mode characteristics";
24444       tailf:cli-incomplete-no;
24445       container access {
24446         tailf:info "Set access mode characteristics of the interface";
24447         description
24448           "Set access mode characteristics of the interface";
24449         leaf vlan {
24450           tailf:info "Set VLAN when interface is in access mode";
24451           description
24452             "Set VLAN when interface is in access mode";
24453           tailf:cli-diff-dependency "/ios:native/vlan/vlan-list/id";
24454           type union {
24455             type uint16 {
24456               tailf:info "<1-4094>;;VLAN ID of the VLAN when this port is in access mode";
24457               range "1..4094";
24458             }
24459             type enumeration {
24460               enum "dynamic" {
24461                 tailf:info "When in access mode, this interfaces VLAN is controlled by VMPS";
24462               }
24463             }
24464           }
24465         }
24466       }
24467       container block {
24468         tailf:info "Disable forwarding of unknown uni/multi cast addresses";
24469         description
24470           "Disable forwarding of unknown uni/multi cast addresses";
24471         leaf multicast {
24472           tailf:info "Block unknown multicast addresses";
24473           description
24474             "Block unknown multicast addresses";
24475           tailf:cli-full-command;
24476           type empty;
24477         }
24478         leaf unicast {
24479           tailf:cli-full-command;
24480           tailf:info "Block unknown unicast addresses";
24481           description
24482             "Block unknown unicast addresses";
24483           type empty;
24484         }
24485       }
24486       container mode {
24487         tailf:info "Set trunking mode of the interface";
24488         description
24489           "Set trunking mode of the interface";
24490         choice mode-choice {
24491           container access {
24492             presence "true";
24493             tailf:info "Set trunking mode to ACCESS unconditionally";
24494             description
24495               "Set trunking mode to ACCESS unconditionally";
24496           }
24497           container dot1q-tunnel {
24498             presence "true";
24499             tailf:info "set trunking mode to TUNNEL unconditionally";
24500             description
24501               "set trunking mode to TUNNEL unconditionally";
24502           }
24503           leaf dynamic {
24504             tailf:info "Set trunking mode to dynamically negotiate access or trunk mode";
24505             description
24506               "Set trunking mode to dynamically negotiate access or trunk mode";
24507             type enumeration {
24508               enum "auto" {
24509                 tailf:info "Set trunking mode dynamic negotiation parameter to AUTO";
24510               }
24511               enum "desirable" {
24512                 tailf:info "Set trunking mode dynamic negotiation parameter to DESIRABLE";
24513               }
24514             }
24515           }
24516           container trunk {
24517             presence "true";
24518             tailf:info "Set trunking mode to TRUNK unconditionally";
24519             description
24520               "Set trunking mode to TRUNK unconditionally";
24521           }
24522         }
24523       }
24524       leaf nonegotiate {
24525         tailf:info "Device will not engage in negotiation protocol on this interface";
24526         description
24527           "Device will not engage in negotiation protocol on this interface";
24528         type empty;
24529       }
24530       container port-security {
24531         tailf:info "Security related command";
24532         description
24533           "Security related command";
24534         presence "true";
24535         container aging {
24536           tailf:info "Port-security aging commands";
24537           description
24538             "Port-security aging commands";
24539           leaf time {
24540             tailf:info "Port-security aging time";
24541             description
24542               "Port-security aging time";
24543             type uint16 {
24544               tailf:info "<1-1440>;;Aging time in minutes. Enter a value between 1 and 1440";
24545               range "1..1440";
24546             }
24547           }
24548           leaf type {
24549             tailf:info "Port-security aging type";
24550             description
24551               "Port-security aging type";
24552             type enumeration {
24553               enum "absolute" {
24554                 tailf:info "Absolute aging (default)";
24555               }
24556               enum "inactivity" {
24557                 tailf:info "Aging based on inactivity time period";
24558               }
24559             }
24560           }
24561         }
24562         container mac-address {
24563           tailf:info "Secure mac address";
24564           description
24565             "Secure mac address";
24566           tailf:cli-sequence-commands {
24567             tailf:cli-reset-siblings;
24568           }
24569           tailf:cli-compact-syntax;
24570           leaf sticky {
24571             tailf:info "Configure dynamic secure addresses as sticky";
24572             description
24573               "Configure dynamic secure addresses as sticky";
24574             tailf:cli-optional-in-sequence;
24575             type empty;
24576           }
24577           leaf hw-address {
24578             tailf:cli-drop-node-name;
24579             type yang:mac-address {
24580               tailf:info "H.H.H;;48 bit mac address";
24581             }
24582           }
24583           leaf vlan {
24584             tailf:info "set VLAN ID of the VLAN on which this address can be learned";
24585             description
24586               "set VLAN ID of the VLAN on which this address can be learned";
24587             type uint16 {
24588               tailf:info "<1-4094>;;VLAN ID on which this address can be learned";
24589               range "1..4094";
24590             }
24591           }
24592         }
24593         container maximum {
24594           tailf:info "Max secure addresses";
24595           description
24596             "Max secure addresses";
24597           tailf:cli-sequence-commands {
24598             tailf:cli-reset-siblings;
24599           }
24600           tailf:cli-compact-syntax;
24601           leaf max-addresses {
24602             tailf:cli-drop-node-name;
24603             type uint16 {
24604               tailf:info "<1-4097>;;Maximum addresses";
24605               range "1..4097";
24606             }
24607           }
24608           leaf vlan {
24609             tailf:info "Max secure addresses per vlan";
24610             description
24611               "Max secure addresses per vlan";
24612             type string {
24613               tailf:info "WORD;;VLAN IDs to which this maximum applies";
24614             }
24615           }
24616         }
24617         leaf violation {
24618           tailf:info "Security violation mode";
24619           description
24620             "Security violation mode";
24621           type enumeration {
24622             enum "protect" {
24623               tailf:info "Security violation protect mode";
24624             }
24625             enum "restrict" {
24626               tailf:info "Security violation restrict mode";
24627             }
24628             enum "shutdown" {
24629               tailf:info "Security violation shutdown mode";
24630             }
24631           }
24632         }
24633       }
24634       container trunk {
24635         tailf:info "Set trunking characteristics of the interface";
24636         description
24637           "Set trunking characteristics of the interface";
24638         container allowed {
24639           tailf:info "Set allowed VLAN characteristics when interface is in trunking mode";
24640           description
24641             "Set allowed VLAN characteristics when interface is in trunking mode";
24642           container vlan {
24643             tailf:info "Set allowed VLANs when interface is in trunking mode";
24644             description
24645               "Set allowed VLANs when interface is in trunking mode";
24646             choice vlan-choice {
24647               leaf-list vlans {
24648                 tailf:cli-replace-all;
24649                 tailf:cli-range-list-syntax;
24650                 tailf:cli-drop-node-name;
24651                 type union {
24652                   type uint16 {
24653                     tailf:info "WORD;;VLAN IDs of the allowed VLANs when this port is in trunking mode";
24654                   }
24655                   type string;
24656                 }
24657               }
24658               leaf all {
24659                 tailf:info "all VLANs";
24660                 description
24661                   "all VLANs";
24662                 type empty;
24663               }
24664               leaf-list except {
24665                 tailf:info "all VLANs except the following";
24666                 description
24667                   "all VLANs except the following";
24668                 tailf:cli-range-list-syntax;
24669                 type union {
24670                   type uint16 {
24671                     tailf:info "WORD;;VLAN IDs of the allowed VLANs when this port is in trunking mode";
24672                   }
24673                   type string;
24674                 }
24675               }
24676               leaf none {
24677                 tailf:info "no VLANs";
24678                 description
24679                   "no VLANs";
24680                 type empty;
24681               }
24682             }
24683           }
24684         }
24685         leaf encapsulation {
24686           tailf:info "Set encapsulation format on trunk port";
24687           description
24688             "Set encapsulation format on trunk port";
24689           type enumeration {
24690             enum "dot1q";
24691             enum "isl";
24692             enum "negotiate";
24693           }
24694         }
24695         container native {
24696           tailf:info "Set trunking native characteristics when interface is in trunking mode";
24697           description
24698             "Set trunking native characteristics when interface is in trunking mode";
24699           leaf vlan {
24700             tailf:info "Set native VLAN when interface is in trunking mode";
24701             description
24702               "Set native VLAN when interface is in trunking mode";
24703             type union {
24704               type enumeration {
24705                 enum "tag" {
24706                   tailf:info "Set native VLAN tagging state";
24707                 }
24708               }
24709               type uint16 {
24710                 tailf:info "<1-4094>;;VLAN ID of the native VLAN when this port is in trunking mode";
24711                 range "1..4094";
24712               }
24713             }
24714           }
24715         }
24716         container pruning {
24717           tailf:info "Set pruning VLAN characteristics when interface is in trunking mode";
24718           description
24719             "Set pruning VLAN characteristics when interface is in trunking mode";
24720           container vlan {
24721             tailf:info "Set VLANs enabled for pruning when interface is in trunking mode";
24722             description
24723               "Set VLANs enabled for pruning when interface is in trunking mode";
24724             choice vlan-choice {
24725               leaf-list vlans {
24726                 tailf:cli-range-list-syntax;
24727                 tailf:cli-drop-node-name;
24728                 type union {
24729                   type uint16 {
24730                     tailf:info "WORD;;VLAN IDs of the allowed VLANs when this port is in trunking mode";
24731                   }
24732                   type string;
24733                 }
24734               }
24735               leaf-list except {
24736                 tailf:info "all VLANs except the following";
24737                 description
24738                   "all VLANs except the following";
24739                 tailf:cli-range-list-syntax;
24740                 type union {
24741                   type uint16 {
24742                     tailf:info "WORD;;VLAN IDs of the allowed VLANs when this port is in trunking mode";
24743                   }
24744                   type string;
24745                 }
24746               }
24747               leaf none {
24748                 tailf:info "no VLANs";
24749                 description
24750                   "no VLANs";
24751                 type empty;
24752               }
24753             }
24754           }
24755         }
24756       }
24757       container voice {
24758         tailf:info "Voice appliance attributes";
24759         description
24760           "Voice appliance attributes";
24761         leaf vlan {
24762           tailf:info "Vlan for voice traffic";
24763           description
24764             "Vlan for voice traffic";
24765           type union {
24766             type enumeration {
24767               enum "dot1p" {
24768                 tailf:info "Priority tagged on PVID";
24769               }
24770               enum "none" {
24771                 tailf:info "Don't tell telephone about voice vlan";
24772               }
24773               enum "untagged" {
24774                 tailf:info "Untagged on PVID";
24775               }
24776             }
24777             type uint16 {
24778               tailf:info "<1-4094>;;Vlan for voice traffic";
24779               range "1..4094";
24780             }
24781           }
24782         }
24783         container detect {
24784           tailf:info "detection enhancement keyword";
24785           description
24786             "detection enhancement keyword";
24787           tailf:cli-incomplete-command;
24788           container cisco-phone {
24789             tailf:info "Cisco IP phone";
24790             description
24791               "Cisco IP phone";
24792             presence "true";
24793             leaf full-duplex {
24794               tailf:info "full duplex keyword";
24795               description
24796                 "full duplex keyword";
24797               type empty;
24798             }
24799           }
24800         }
24801       }
24802       container priority {
24803         tailf:info "Set appliance 802.1p priority";
24804         description
24805           "Set appliance 802.1p priority";
24806         tailf:cli-incomplete-command;
24807         container extend {
24808           tailf:info "Set appliance 802.1p priority";
24809           description
24810             "Set appliance 802.1p priority";
24811           tailf:cli-incomplete-command;
24812           choice trust-choice {
24813             leaf trust {
24814               tailf:cli-full-command;
24815               tailf:info "Trust 802.1p priorities of devices on appliance";
24816               description
24817                 "Trust 802.1p priorities of devices on appliance";
24818               type empty;
24819             }
24820             leaf cos {
24821               tailf:info "Override 802.1p priority of devices on appliance";
24822               description
24823                 "Override 802.1p priority of devices on appliance";
24824               tailf:cli-full-command;
24825               type uint8 {
24826                 tailf:info "<0-7>;;Priority for devices on appliance";
24827                 range "0..7";
24828               }
24829             }
24830           }
24831         }
24832       }
24833       container autostate {
24834         tailf:info "Include or exclude this port from vlan link up calculation";
24835         description
24836           "Include or exclude this port from vlan link up calculation";
24837         tailf:cli-incomplete-command;
24838         leaf exclude {
24839           tailf:info "Exclude this port from vlan link up calculation";
24840           description
24841             "Exclude this port from vlan link up calculation";
24842           type empty;
24843         }
24844       }
24845       leaf protected {
24846         tailf:info "Configure an interface to be a protected port";
24847         description
24848           "Configure an interface to be a protected port";
24849         type empty;
24850       }
24851       leaf host {
24852         tailf:info "Set port host";
24853         description
24854           "Set port host";
24855         type empty;
24856       }
24857     }
24858     container authentication {
24859       tailf:info "Auth Manager Interface Configuration Commands";
24860       description
24861         "Auth Manager Interface Configuration Commands";
24862       leaf control-direction {
24863         tailf:info "Set the control-direction on the interface";
24864         description
24865           "Set the control-direction on the interface";
24866         type enumeration {
24867           enum "both" {
24868             tailf:info "Control traffic in BOTH directions";
24869           }
24870           enum "in" {
24871             tailf:info "Control inbound traffic only";
24872           }
24873         }
24874       }
24875       container event {
24876         tailf:info "Set action for authentication events";
24877         description
24878           "Set action for authentication events";
24879         container server {
24880           tailf:info "Configure actions for AAA server events";
24881           description
24882             "Configure actions for AAA server events";
24883           container alive {
24884             tailf:info "Configure AAA server alive action";
24885             description
24886               "Configure AAA server alive action";
24887             container action {
24888               tailf:info "Required action for authentication event";
24889               description
24890                 "Required action for authentication event";
24891               leaf reinitialize {
24892                 tailf:info "Reinitialize all authorized clients";
24893                 description
24894                   "Reinitialize all authorized clients";
24895                 type empty;
24896               }
24897             }
24898           }
24899           container dead {
24900             tailf:info "Configure AAA server alive action";
24901             description
24902               "Configure AAA server dead action";
24903             container action {
24904               tailf:info "Required action for authentication event";
24905               description
24906                 "Required action for authentication event";
24907               container authorize {
24908                 tailf:info "Authorize the port";
24909                 description
24910                   "Authorize the port";
24911                 presence "true";
24912                 leaf vlan {
24913                   tailf:info "Configure Critical Authorization VLAN";
24914                   description
24915                     "Configure Critical Authorization VLAN";
24916                   tailf:cli-full-command;
24917                   type uint16 {
24918                     tailf:info "<1-4094>;;Enter a VlanId";
24919                   }
24920                 }
24921                 leaf voice {
24922                   tailf:info "Authorize the port for VOICE traffic";
24923                   description
24924                     "Authorize the port for VOICE traffic";
24925                   tailf:cli-full-command;
24926                   type empty;
24927                 }
24928               }
24929               container reinitialize {
24930                 tailf:info "Reinitialize all client on the port";
24931                 description
24932                   "Reinitialize all client on the port";
24933                 leaf vlan {
24934                   tailf:info "Configure Critical Authorization VLAN";
24935                   description
24936                     "Configure Critical Authorization VLAN";
24937                   type uint16 {
24938                     tailf:info "<1-4094>;;Enter a VlanId";
24939                   }
24940                 }
24941               }
24942             }
24943           }
24944         }
24945       }
24946       leaf fallback {
24947         tailf:info "Enable the Webauth fallback mechanism";
24948         description
24949           "Enable the Webauth fallback mechanism";
24950         tailf:cli-full-command;
24951         type string {
24952           tailf:info "WORD;;Name of Webauth Profile (max 200 characters)";
24953         }
24954       }
24955       leaf host-mode {
24956         tailf:info "Set the Host mode for authentication on this interface";
24957         description
24958           "Set the Host mode for authentication on this interface";
24959         type enumeration {
24960           enum "multi-auth" {
24961             tailf:info "Multiple Authentication Mode";
24962           }
24963           enum "multi-domain" {
24964             tailf:info "Multiple Domain Mode";
24965           }
24966           enum "multi-host" {
24967             tailf:info "Multiple Host Mode";
24968           }
24969           enum "single-host" {
24970             tailf:info "SINGLE HOST Mode";
24971           }
24972         }
24973       }
24974       leaf open {
24975         tailf:info "Enable or Disable open access on this port";
24976         description
24977           "Enable or Disable open access on this port";
24978         tailf:cli-full-command;
24979         type empty;
24980       }
24981       container order {
24982         tailf:info "Add an authentication method to the order list";
24983         description
24984           "Add an authentication method to the order list";
24985         tailf:cli-compact-syntax;
24986         leaf dot1x {
24987           tailf:info "Authentication method dot1x allowed";
24988           description
24989             "Authentication method dot1x allowed";
24990           type empty;
24991         }
24992         leaf mab {
24993           tailf:info "Authentication method mab allowed";
24994           description
24995             "Authentication method mab allowed";
24996           type empty;
24997         }
24998         leaf webauth {
24999           tailf:info "Authentication method webauth allowed";
25000           description
25001             "Authentication method webauth allowed";
25002           type empty;
25003         }
25004       }
25005       container priority {
25006         tailf:info "Add an authentication method to the priority list";
25007         description
25008           "Add an authentication method to the priority list";
25009         tailf:cli-compact-syntax;
25010         leaf dot1x {
25011           tailf:info "Authentication method dot1x allowed";
25012           description
25013             "Authentication method dot1x allowed";
25014           type empty;
25015         }
25016         leaf mab {
25017           tailf:info "Authentication method mab allowed";
25018           description
25019             "Authentication method mab allowed";
25020           type empty;
25021         }
25022         leaf webauth {
25023           tailf:info "Authentication method webauth allowed";
25024           description
25025             "Authentication method webauth allowed";
25026           type empty;
25027         }
25028       }
25029       leaf port-control {
25030         tailf:info "set the port-control value";
25031         description
25032           "set the port-control value";
25033         type enumeration {
25034           enum "auto" {
25035             tailf:info "PortState will be set to AUTO";
25036           }
25037           enum "force-authorized" {
25038             tailf:info "PortState set to Authorized";
25039           }
25040           enum "force-unauthorized" {
25041             tailf:info "PortState will be set to UnAuthorized";
25042           }
25043         }
25044       }
25045       leaf periodic {
25046         tailf:info "Enable or Disable Reauthentication for this port";
25047         description
25048           "Enable or Disable Reauthentication for this port";
25049         tailf:cli-full-command;
25050         type empty;
25051       }
25052       container timer {
25053         tailf:info "Set authentication timer values";
25054         description
25055           "Set authentication timer values";
25056         container inactivity {
25057           tailf:info "Interval in seconds after which if there is no activity fromthe client then it will be unauthorized (default OFF)";
25058           description
25059             "Interval in seconds after which if there is no activity fromthe client then it will be unauthorized (default OFF)";
25060           container value {
25061             tailf:cli-drop-node-name;
25062             tailf:cli-sequence-commands;
25063             tailf:cli-compact-syntax;
25064             leaf value {
25065               tailf:cli-drop-node-name;
25066               type uint16 {
25067                 tailf:info "<1-65535>;;Enter a value between 1 and 65535";
25068               }
25069             }
25070             leaf dynamic {
25071               tailf:info "Initiate a dynamic probe on inactivity timeout";
25072               description
25073                 "Initiate a dynamic probe on inactivity timeout";
25074               tailf:cli-optional-in-sequence;
25075               type empty;
25076             }
25077           }
25078           container server {
25079             tailf:info "Obtain inactivity timeout value from the server";
25080             description
25081               "Obtain inactivity timeout value from the server";
25082             presence "true";
25083             leaf dynamic {
25084               tailf:info "Initiate a dynamic probe on inactivity timeout";
25085               description
25086                 "Initiate a dynamic probe on inactivity timeout";
25087               tailf:cli-optional-in-sequence;
25088               type empty;
25089             }
25090           }
25091         }
25092         container reauthenticate {
25093           tailf:info "Time in seconds after which an automatic re-authenticationshould be initiated (default 1 hour)";
25094           description
25095             "Time in seconds after which an automatic re-authenticationshould be initiated (default 1 hour)";
25096           leaf value {
25097             tailf:cli-drop-node-name;
25098             tailf:cli-full-command;
25099             type uint16 {
25100               tailf:info "<1-65535>;;Enter a value between 1 and 65535";
25101             }
25102           }
25103           leaf server {
25104             tailf:info "Obtain re-authentication timeout value from the server";
25105             description
25106               "Obtain re-authentication timeout value from the server";
25107             tailf:cli-full-command;
25108             type empty;
25109           }
25110         }
25111         leaf restart {
25112           tailf:info "Interval in seconds after which an attempt should be made toauthenticate an unauthorized port (default 60 sec)";
25113           description
25114             "Interval in seconds after which an attempt should be made toauthenticate an unauthorized port (default 60 sec)";
25115           tailf:cli-full-command;
25116           type uint16 {
25117             tailf:info "<1-65535>;;Enter a value between 1 and 65535";
25118           }
25119         }
25120       }
25121       leaf violation {
25122         tailf:info "Configure action to take on security violations";
25123         description
25124           "Configure action to take on security violations";
25125         tailf:cli-full-command;
25126         type enumeration {
25127           enum "protect" {
25128             tailf:info "Protect the port";
25129           }
25130           enum "replace" {
25131             tailf:info "Replace the existing session";
25132           }
25133           enum "restrict" {
25134             tailf:info "Restrict the port";
25135           }
25136           enum "shutdown" {
25137             tailf:info "SHUTDOWN the port";
25138           }
25139         }
25140       }
25141     }
25142     container auto {
25143       tailf:info "Configure Automation";
25144       description
25145         "Configure Automation";
25146       container qos {
25147         leaf voip {
25148           type enumeration {
25149             enum "cisco-phone";
25150           }
25151         }
25152       }
25153     }
25154     container spanning-tree {
25155       tailf:info "Spanning Tree Subsystem";
25156       description
25157         "Spanning Tree Subsystem";
25158       leaf bpdufilter {
25159         tailf:info "Don't send or receive BPDUs on this interface";
25160         description
25161           "Don't send or receive BPDUs on this interface";
25162         type enumeration {
25163           enum "disable" {
25164             tailf:info "Disable BPDU filtering for this interface";
25165           }
25166           enum "enable" {
25167             tailf:info "Enable BPDU filtering for this interface";
25168           }
25169         }
25170       }
25171       container bpduguard {
25172         tailf:info "Don't accept BPDUs on this interface";
25173         description
25174           "Don't accept BPDUs on this interface";
25175         choice bpduguard-choice {
25176           leaf disable {
25177             tailf:info "Disable BPDU guard for this interface";
25178             description
25179               "Disable BPDU guard for this interface";
25180             type empty;
25181           }
25182           leaf enable {
25183             type empty;
25184             tailf:info "Enable BPDU guard for this interface";
25185             description
25186               "Enable BPDU guard for this interface";
25187           }
25188         }
25189       }
25190       leaf cost {
25191         tailf:info "To set the path cost of the interface";
25192         description
25193           "To set the path cost of the interface";
25194         tailf:cli-full-command;
25195         type uint32 {
25196           range "1..200000000";
25197         }
25198       }
25199       leaf guard {
25200         tailf:info "Change an interface's spanning tree guard mode";
25201         description
25202           "Change an interface's spanning tree guard mode";
25203         tailf:cli-full-command;
25204         type enumeration {
25205           enum "loop" {
25206             tailf:info "Set guard mode to loop guard on interface";
25207           }
25208           enum "none" {
25209             tailf:info "Set guard mode to none";
25210           }
25211           enum "root" {
25212             tailf:info "Set guard mode to root guard on interface";
25213           }
25214         }
25215       }
25216       leaf link-type {
25217         tailf:info "Specify a link type for spanning tree tree protocol use";
25218         description
25219           "Specify a link type for spanning tree tree protocol use";
25220         tailf:cli-full-command;
25221         type enumeration {
25222           enum "auto" {
25223             tailf:code-name "link_type_auto";
25224             tailf:info "Determine link type based on media duplex of this interface";
25225           }
25226           enum "none" {
25227             tailf:info "Consider the interface as point-to-point";
25228           }
25229           enum "point-to-point" {
25230             tailf:info "Consider the interface as point-to-point";
25231           }
25232           enum "root" {
25233             tailf:info "Consider the interface as shared";
25234           }
25235         }
25236       }
25237       container portfast {
25238         tailf:info "Spanning tree portfast options";
25239         description
25240           "Spanning tree portfast options";
25241         tailf:cli-delete-when-empty;
25242         presence "true";
25243         leaf enable {
25244           tailf:cli-full-command;
25245           tailf:cli-drop-node-name;
25246           type enumeration {
25247             enum "disable" {
25248               tailf:info "Disable portfast for this interface";
25249             }
25250           }
25251         }
25252         leaf trunk {
25253           type empty;
25254         }
25255       }
25256       container loopguard {
25257         tailf:info "Spanning tree loopguard options";
25258         description
25259           "Spanning tree loopguard options";
25260         leaf default {
25261           tailf:info "Enable loopguard by default on all ports";
25262           description
25263             "Enable loopguard by default on all ports";
25264           type empty;
25265         }
25266       }
25267     }
25268     container srr-queue {
25269       container bandwidth {
25270         container shape {
25271           tailf:cli-compact-syntax;
25272           tailf:cli-sequence-commands;
25273           tailf:cli-reset-container;
25274           leaf weight1 {
25275             tailf:cli-drop-node-name;
25276             tailf:cli-incomplete-command;
25277             type uint16;
25278           }
25279           leaf weight2 {
25280             tailf:cli-drop-node-name;
25281             tailf:cli-incomplete-command;
25282             type uint16;
25283           }
25284           leaf weight3 {
25285             tailf:cli-drop-node-name;
25286             tailf:cli-incomplete-command;
25287             type uint16;
25288           }
25289           leaf weight4 {
25290             tailf:cli-drop-node-name;
25291             type uint16;
25292           }
25293         }
25294         container share {
25295           tailf:cli-compact-syntax;
25296           tailf:cli-sequence-commands;
25297           tailf:cli-reset-container;
25298           leaf weight1 {
25299             tailf:cli-drop-node-name;
25300             tailf:cli-incomplete-command;
25301             type uint8 {
25302               range "1..255";
25303             }
25304           }
25305           leaf weight2 {
25306             tailf:cli-drop-node-name;
25307             tailf:cli-incomplete-command;
25308             type uint8 {
25309               range "1..255";
25310             }
25311           }
25312           leaf weight3 {
25313             tailf:cli-drop-node-name;
25314             tailf:cli-incomplete-command;
25315             type uint8 {
25316               range "1..255";
25317             }
25318           }
25319           leaf weight4 {
25320             tailf:cli-drop-node-name;
25321             type uint8 {
25322               range "1..255";
25323             }
25324           }
25325         }
25326       }
25327     }
25328   }
25329
25330   grouping password-07-grouping {
25331     leaf level {
25332       tailf:info "Set exec level password";
25333       description
25334         "Set exec level password";
25335       tailf:cli-optional-in-sequence;
25336       type uint8 {
25337         tailf:info "<1-15>;;Level number";
25338       }
25339     }
25340     leaf type {
25341       tailf:cli-drop-node-name;
25342       tailf:cli-optional-in-sequence;
25343       type enumeration {
25344         enum "0" {
25345           tailf:info "Specifies an UNENCRYPTED password will follow";
25346         }
25347         enum "7" {
25348           tailf:info "Specifies a HIDDEN password will follow";
25349         }
25350       }
25351     }
25352     leaf secret {
25353       tailf:cli-drop-node-name;
25354       type string {
25355         tailf:info "LINE;;The UNENCRYPTED (cleartext) password";
25356       }
25357     }
25358   }
25359
25360   grouping aaa-authentication-dot1x-grouping {
25361     leaf group {
25362       tailf:info "Use Server-group";
25363       description
25364         "Use Server-group";
25365       type union {
25366         type string {
25367           tailf:info "Server-group name";
25368         }
25369         type enumeration {
25370           enum "radius" {
25371             tailf:info "Use list of all Radius hosts.";
25372           }
25373           enum "tacacs+" {
25374             tailf:info "Use list of all Tacacs+ hosts.";
25375           }
25376         }
25377       }
25378     }
25379   }
25380
25381   grouping mpls-static-binding-ipv4-grouping {
25382     leaf label {
25383       tailf:cli-drop-node-name;
25384       tailf:cli-full-command;
25385       type uint32 {
25386         tailf:info "Label Value";
25387       }
25388     }
25389     container input {
25390       tailf:info "Incoming (local) label";
25391       description
25392         "Incoming (local) label";
25393       tailf:cli-flatten-container;
25394       tailf:cli-display-separated;
25395       leaf label {
25396         tailf:cli-drop-node-name;
25397         tailf:cli-full-command;
25398         type uint32 {
25399           tailf:info "Label Value";
25400         }
25401       }
25402     }
25403     container output {
25404       tailf:info "Outgoing (remote) label";
25405       description
25406         "Outgoing (remote) label";
25407       tailf:cli-sequence-commands {
25408         tailf:cli-reset-all-siblings;
25409       }
25410       tailf:cli-compact-syntax;
25411       tailf:cli-display-separated;
25412       leaf dst-next-hop {
25413         tailf:cli-drop-node-name;
25414         tailf:cli-incomplete-command;
25415         type inet:ipv4-address {
25416           tailf:info "A.B.C.D  Destination next hop";
25417         }
25418       }
25419       leaf label {
25420         tailf:cli-drop-node-name;
25421         tailf:cli-full-command;
25422         tailf:cli-break-sequence-commands;
25423         type union {
25424           type uint32 {
25425             tailf:info "Label Value";
25426           }
25427           type enumeration {
25428             enum "explicit-null" {
25429               tailf:code-name "lbl_explicit_null";
25430               tailf:info "IETF MPLS IPv4 explicit null label (0)";
25431             }
25432             enum "implicit-null" {
25433               tailf:code-name "lbl_implicit_null";
25434               tailf:info "IETF MPLS implicit null label (3)";
25435             }
25436           }
25437         }
25438       }
25439     }
25440   }
25441
25442   grouping next-hop-address-grouping {
25443     container next-hop {
25444       tailf:info "Next hop along path";
25445       description
25446         "Next hop along path";
25447       tailf:cli-flatten-container;
25448       leaf-list address {
25449         tailf:cli-drop-node-name;
25450         tailf:cli-flat-list-syntax;
25451         type inet:ipv4-address {
25452           tailf:info "A.B.C.D;;IP address of next hop";
25453         }
25454       }
25455     }
25456   }
25457
25458   grouping ip-access-list-grouping {
25459     leaf-list access-list {
25460       tailf:cli-drop-node-name;
25461       tailf:cli-full-command;
25462       tailf:cli-flat-list-syntax;
25463       type exp-acl-type;
25464     }
25465     leaf-list prefix-list {
25466       tailf:info "Match entries of prefix-lists";
25467       description
25468         "Match entries of prefix-lists";
25469       tailf:cli-flat-list-syntax;
25470       tailf:cli-full-command;
25471       type string {
25472         tailf:info "WORD;;Name of a prefix list";
25473       }
25474     }
25475   }
25476
25477   grouping ipv6-access-list-grouping {
25478     leaf access-list {
25479       tailf:cli-drop-node-name;
25480       type string {
25481         tailf:info "WORD;;IPv6 access-list name";
25482         pattern "[a-zA-Z].*";
25483       }
25484     }
25485     leaf prefix-list {
25486       tailf:info "IPv6 prefix-list";
25487       description
25488         "IPv6 prefix-list";
25489       type string;
25490       tailf:non-strict-leafref {
25491         path "/ios:native/ipv6/prefix-list/prefixes/name";
25492       }
25493     }
25494   }
25495
25496   grouping route-map-community-grouping {
25497     list community-id {
25498       tailf:cli-drop-node-name;
25499       tailf:cli-suppress-mode;
25500       key "community-id cost-value";
25501       leaf community-id {
25502         tailf:info "Community ID";
25503         description
25504           "Community ID";
25505         tailf:cli-drop-node-name;
25506         type uint8 {
25507           tailf:info "<0..255>;;Community ID";
25508           range "0..255";
25509         }
25510       }
25511       leaf cost-value {
25512         tailf:info "Cost Value (No-preference Cost = 2147483647)";
25513         description
25514           "Cost Value (No-preference Cost = 2147483647)";
25515         tailf:cli-drop-node-name;
25516         type uint32 {
25517           tailf:info "<0..4294967295>;;Cost Value";
25518           range "0..4294967295";
25519         }
25520       }
25521     }
25522   }
25523
25524   grouping acl-udp-port-match-operand {
25525     leaf udp-port-operand {
25526       tailf:cli-drop-node-name;
25527       type acl-udp-port-type;
25528     }
25529   }
25530
25531   grouping acl-port-match-operand {
25532     leaf port-operand {
25533       tailf:cli-drop-node-name;
25534       type acl-tcp-port-type;
25535     }
25536   }
25537
25538   grouping acl-port-match-oper {
25539     choice port-oper-choice {
25540       case eq-case {
25541         container eq {
25542           tailf:info "Match only packets on a given port number";
25543           description
25544             "Match only packets on a given port number";
25545           tailf:cli-flatten-container;
25546           tailf:cli-incomplete-command;
25547           uses acl-port-match-operand;
25548           uses acl-udp-port-match-operand;
25549         }
25550       }
25551       case gt-case {
25552         container gt {
25553           tailf:info "Match only packets with a greater port number";
25554           description
25555             "Match only packets with a greater port number";
25556           tailf:cli-flatten-container;
25557           tailf:cli-incomplete-command;
25558           uses acl-port-match-operand;
25559           uses acl-udp-port-match-operand;
25560         }
25561       }
25562       case lt-case {
25563         container lt {
25564           tailf:info "Match only packets with a lower port number";
25565           description
25566             "Match only packets with a lower port number";
25567           tailf:cli-flatten-container;
25568           tailf:cli-incomplete-command;
25569           uses acl-port-match-operand;
25570           uses acl-udp-port-match-operand;
25571         }
25572       }
25573       case neq-case {
25574         container neq {
25575           tailf:info "Match only packets not on a given port number";
25576           description
25577             "Match only packets not on a given port number";
25578           tailf:cli-flatten-container;
25579           tailf:cli-incomplete-command;
25580           uses acl-port-match-operand;
25581           uses acl-udp-port-match-operand;
25582         }
25583       }
25584       case range-case {
25585         container range {
25586           tailf:info "Match only packets in the range of port numbers";
25587           description
25588             "Match only packets in the range of port numbers";
25589           tailf:cli-flatten-container;
25590           container port-operand1 {
25591             tailf:cli-drop-node-name;
25592             tailf:cli-flatten-container;
25593             uses acl-port-match-operand;
25594             uses acl-udp-port-match-operand;
25595             container port-operand2 {
25596               tailf:cli-drop-node-name;
25597               tailf:cli-flatten-container;
25598               uses acl-port-match-operand;
25599               uses acl-udp-port-match-operand;
25600             }
25601           }
25602         }
25603       }
25604     }
25605   }
25606
25607   grouping ipv4-acl-icmp-match {
25608     container msg {
25609       tailf:cli-drop-node-name;
25610       tailf:cli-flatten-container;
25611       tailf:cli-sequence-commands;
25612       tailf:cli-incomplete-command;
25613       leaf msg-type {
25614         tailf:cli-drop-node-name;
25615         type uint8 {
25616           tailf:info "<0-255>;;ICMP message type";
25617         }
25618       }
25619       leaf msg-code {
25620         tailf:cli-drop-node-name;
25621         type uint8 {
25622           tailf:info "<0-255>;;ICMP message code";
25623         }
25624       }
25625     }
25626     leaf named-msg-type {
25627       tailf:cli-drop-node-name;
25628       type enumeration {
25629         enum "administratively-prohibited" {
25630           tailf:info "Administratively prohibited";
25631         }
25632         enum "alternate-address" {
25633           tailf:info "Alternate address";
25634         }
25635         enum "conversion-error" {
25636           tailf:info "Datagram conversion";
25637         }
25638         enum "dod-host-prohibited" {
25639           tailf:info "Host prohibited";
25640         }
25641         enum "dod-net-prohibited" {
25642           tailf:info "Net prohibited";
25643         }
25644         enum "echo" {
25645           tailf:info "Echo (ping)";
25646         }
25647         enum "echo-reply" {
25648           tailf:info "Echo reply";
25649         }
25650         enum "general-parameter-problem" {
25651           tailf:info "Parameter problem";
25652         }
25653         enum "host-isolated" {
25654           tailf:info "Host isolated";
25655         }
25656         enum "host-precedence-unreachable" {
25657           tailf:info "Host unreachable for precedence";
25658         }
25659         enum "host-redirect" {
25660           tailf:info "Host redirect";
25661         }
25662         enum "host-tos-redirect" {
25663           tailf:info "Host redirect for TOS";
25664         }
25665         enum "host-tos-unreachable" {
25666           tailf:info "Host unreachable for TOS";
25667         }
25668         enum "host-unknown" {
25669           tailf:info "Host unknown";
25670         }
25671         enum "host-unreachable" {
25672           tailf:info "Host unreachable";
25673         }
25674         enum "information-reply" {
25675           tailf:info "Information replies";
25676         }
25677         enum "information-request" {
25678           tailf:info "Information requests";
25679         }
25680         enum "mask-reply" {
25681           tailf:info "Mask replies";
25682         }
25683         enum "mask-request" {
25684           tailf:info "Mask requests";
25685         }
25686         enum "mobile-redirect" {
25687           tailf:info "Mobile host redirect";
25688         }
25689         enum "net-redirect" {
25690           tailf:info "Network redirect";
25691         }
25692         enum "net-tos-redirect" {
25693           tailf:info "Net redirect for TOS";
25694         }
25695         enum "net-tos-unreachable" {
25696           tailf:info "Network unreachable for TOS";
25697         }
25698         enum "net-unreachable" {
25699           tailf:info "Net unreachable";
25700         }
25701         enum "network-unknown" {
25702           tailf:info "Network unknown";
25703         }
25704         enum "no-room-for-option" {
25705           tailf:info "Parameter required but no room";
25706         }
25707         enum "option-missing" {
25708           tailf:info "Parameter required but not present";
25709         }
25710         enum "packet-too-big" {
25711           tailf:info "Fragmentation needed and DF set";
25712         }
25713         enum "parameter-problem" {
25714           tailf:info "All parameter problems";
25715         }
25716         enum "port-unreachable" {
25717           tailf:info "Port unreachable";
25718         }
25719         enum "precedence-unreachable" {
25720           tailf:info "Precedence cutoff";
25721         }
25722         enum "protocol-unreachable" {
25723           tailf:info "Protocol unreachable";
25724         }
25725         enum "reassembly-timeout" {
25726           tailf:info "Reassembly timeout";
25727         }
25728         enum "redirect" {
25729           tailf:info "All redirects";
25730         }
25731         enum "router-advertisement" {
25732           tailf:info "Router discovery advertisements";
25733         }
25734         enum "router-solicitation" {
25735           tailf:info "Router discovery solicitations";
25736         }
25737         enum "source-quench" {
25738           tailf:info "Source quenches";
25739         }
25740         enum "source-route-failed" {
25741           tailf:info "Source route failed";
25742         }
25743         enum "time-exceeded" {
25744           tailf:info "All time exceededs";
25745         }
25746         enum "timestamp-reply" {
25747           tailf:info "Timestamp replies";
25748         }
25749         enum "timestamp-request" {
25750           tailf:info "Timestamp requests";
25751         }
25752         enum "traceroute" {
25753           tailf:info "Traceroute";
25754         }
25755         enum "ttl-exceeded" {
25756           tailf:info "TTL exceeded";
25757         }
25758         enum "unreachable" {
25759           tailf:info "All unreachables";
25760         }
25761       }
25762     }
25763   }
25764
25765   grouping ipv6-acl-icmp-match {
25766     container msg {
25767       tailf:cli-drop-node-name;
25768       tailf:cli-flatten-container;
25769       tailf:cli-sequence-commands;
25770       tailf:cli-incomplete-command;
25771       leaf msg-type {
25772         tailf:cli-drop-node-name;
25773         type uint8 {
25774           tailf:info "<0-255>;;ICMPv6 message type";
25775         }
25776       }
25777       leaf msg-code {
25778         tailf:cli-drop-node-name;
25779         type uint8 {
25780           tailf:info "<0-255>;;ICMPv6 message code";
25781         }
25782       }
25783     }
25784     leaf named-msg-type {
25785       tailf:cli-drop-node-name;
25786       type enumeration {
25787         enum "beyond-scope" {
25788           tailf:info "Destination beyond scope";
25789         }
25790         enum "destination-unreachable" {
25791           tailf:info "Destination address is unreachable";
25792         }
25793         enum "dhaad-reply" {
25794           tailf:info "Home agent address discovery reply";
25795         }
25796         enum "dhaad-request" {
25797           tailf:info "Home agent address discovery request";
25798         }
25799         enum "echo-reply" {
25800           tailf:info "Echo reply";
25801         }
25802         enum "echo-request" {
25803           tailf:info "Echo request (ping)";
25804         }
25805         enum "header" {
25806           tailf:info "Parameter header problems";
25807         }
25808         enum "hop-limit" {
25809           tailf:info "Hop limit exceeded in transit";
25810         }
25811         enum "mld-query" {
25812           tailf:info "Multicast Listener Discovery Query";
25813         }
25814         enum "mld-reduction" {
25815           tailf:info "Multicast Listener Discovery Reduction";
25816         }
25817         enum "mld-report" {
25818           tailf:info "Multicast Listener Discovery Report";
25819         }
25820         enum "mpd-advertisement" {
25821           tailf:info "Mobile prefix advertisement";
25822         }
25823         enum "mpd-solicitation" {
25824           tailf:info "Mobile prefix solicitation";
25825         }
25826         enum "nd-na" {
25827           tailf:info "Neighbor discovery neighbor advertisements";
25828         }
25829         enum "nd-ns" {
25830           tailf:info "Neighbor discovery neighbor solicitations";
25831         }
25832         enum "next-header" {
25833           tailf:info "Parameter next header problems";
25834         }
25835         enum "no-admin" {
25836           tailf:info "Administration prohibited destination";
25837         }
25838         enum "no-route" {
25839           tailf:info "No route to destination";
25840         }
25841         enum "packet-too-big" {
25842           tailf:info "Packet too big";
25843         }
25844         enum "parameter-option" {
25845           tailf:info "Parameter option problems";
25846         }
25847         enum "parameter-problem" {
25848           tailf:info "All parameter problems";
25849         }
25850         enum "port-unreachable" {
25851           tailf:info "Port unreachable";
25852         }
25853         enum "reassembly-timeout" {
25854           tailf:info "Reassembly timeout";
25855         }
25856         enum "redirect" {
25857           tailf:info "Neighbor redirect";
25858         }
25859         enum "reject-route" {
25860           tailf:info "Reject route to destination";
25861         }
25862         enum "renum-command" {
25863           tailf:info "Router renumbering command";
25864         }
25865         enum "renum-result" {
25866           tailf:info "Router renumbering result";
25867         }
25868         enum "renum-seq-number" {
25869           tailf:info "Router renumbering sequence number reset";
25870         }
25871         enum "router-advertisement" {
25872           tailf:info "Neighbor discovery router advertisements";
25873         }
25874         enum "router-renumbering" {
25875           tailf:info "All router renumbering";
25876         }
25877         enum "router-solicitation" {
25878           tailf:info "Neighbor discovery router solicitations";
25879         }
25880         enum "source-policy" {
25881           tailf:info "Source address failed ingress/egress policy";
25882         }
25883         enum "time-exceeded" {
25884           tailf:info "All time exceeded";
25885         }
25886         enum "unreachable" {
25887           tailf:info "All unreachable";
25888         }
25889       }
25890     }
25891   }
25892
25893   grouping ipv4-acl-tcp-bit-match {
25894     leaf plusack {
25895       tailf:alt-name "+ack";
25896       tailf:info "Match on ACK set";
25897       description
25898         "Match on ACK set";
25899       type empty;
25900     }
25901     leaf plusfin {
25902       tailf:alt-name "+fin";
25903       tailf:info "Match on FIN set";
25904       description
25905         "Match on FIN set";
25906       type empty;
25907     }
25908     leaf pluspsh {
25909       tailf:alt-name "+psh";
25910       tailf:info "Match on PSH set";
25911       description
25912         "Match on PSH set";
25913       type empty;
25914     }
25915     leaf plusrst {
25916       tailf:alt-name "+rst";
25917       tailf:info "Match on RST set";
25918       description
25919         "Match on RST set";
25920       type empty;
25921     }
25922     leaf plussyn {
25923       tailf:alt-name "+syn";
25924       tailf:info "Match on SYN set";
25925       description
25926         "Match on SYN set";
25927       type empty;
25928     }
25929     leaf plusurg {
25930       tailf:alt-name "+urg";
25931       tailf:info "Match on URG set";
25932       description
25933         "Match on URG set";
25934       type empty;
25935     }
25936     leaf minusack {
25937       tailf:alt-name "-ack";
25938       tailf:info "Match on ACK not set";
25939       description
25940         "Match on ACK not set";
25941       type empty;
25942     }
25943     leaf minusfin {
25944       tailf:alt-name "-fin";
25945       tailf:info "Match on FIN not set";
25946       description
25947         "Match on FIN not set";
25948       type empty;
25949     }
25950     leaf minuspsh {
25951       tailf:alt-name "-psh";
25952       tailf:info "Match on PSH not set";
25953       description
25954         "Match on PSH not set";
25955       type empty;
25956     }
25957     leaf minusrst {
25958       tailf:alt-name "-rst";
25959       tailf:info "Match on RST not set";
25960       description
25961         "Match on RST not set";
25962       type empty;
25963     }
25964     leaf minussyn {
25965       tailf:alt-name "-syn";
25966       tailf:info "Match on SYN not set";
25967       description
25968         "Match on SYN not set";
25969       type empty;
25970     }
25971     leaf minusurg {
25972       tailf:alt-name "-urg";
25973       tailf:info "Match on URG not set";
25974       description
25975         "Match on URG not set";
25976       type empty;
25977     }
25978   }
25979
25980   grouping ipv4-acl-tcp-match {
25981     container match-all {
25982       tailf:info "Match if all specified flags are present";
25983       description
25984         "Match if all specified flags are present";
25985       tailf:cli-flatten-container;
25986       tailf:cli-incomplete-command;
25987       uses ipv4-acl-tcp-bit-match;
25988     }
25989     container match-any {
25990       tailf:info "Match if any specified flags is present";
25991       description
25992         "Match if any specified flags is present";
25993       tailf:cli-flatten-container;
25994       tailf:cli-incomplete-command;
25995       uses ipv4-acl-tcp-bit-match;
25996     }
25997   }
25998
25999   grouping acl-tcp-match {
26000     leaf ack {
26001       tailf:info "Match on the ACK bit";
26002       description
26003         "Match on the ACK bit";
26004       type empty;
26005     }
26006     leaf fin {
26007       tailf:info "Match on the FIN bit";
26008       description
26009         "Match on the FIN bit";
26010       type empty;
26011     }
26012     leaf psh {
26013       tailf:info "Match on the PSH bit";
26014       description
26015         "Match on the PSH bit";
26016       type empty;
26017     }
26018     leaf rst {
26019       tailf:info "Match on the RST bit";
26020       description
26021         "Match on the RST bit";
26022       type empty;
26023     }
26024     leaf syn {
26025       tailf:info "Match on the SYN bit";
26026       description
26027         "Match on the SYN bit";
26028       type empty;
26029     }
26030     leaf urg {
26031       tailf:info "Match on the URG bit";
26032       description
26033         "Match on the URG bit";
26034       type empty;
26035     }
26036     leaf established {
26037       tailf:info "Match established connections";
26038       description
26039         "Match established connections";
26040       type empty;
26041     }
26042   }
26043
26044   grouping ipv4-acl-match-common-attribute {
26045     leaf dscp {
26046       tailf:info "Match packets with given dscp value";
26047       description
26048         "Match packets with given dscp value";
26049       type dscp-type;
26050     }
26051     leaf fragments {
26052       tailf:info "Check non-initial fragments";
26053       description
26054         "Check non-initial fragments";
26055       type empty;
26056     }
26057     leaf log {
26058       tailf:info "Log matches against this entry";
26059       description
26060         "Log matches against this entry";
26061       type empty;
26062     }
26063     leaf log-input {
26064       tailf:info "Log matches against this entry, including input interface";
26065       description
26066         "Log matches against this entry, including input interface";
26067       type empty;
26068     }
26069     leaf option {
26070       tailf:info "Match packets with given IP Options value";
26071       description
26072         "Match packets with given IP Options value";
26073       type union {
26074         type uint8 {
26075           tailf:info "<0-255>;;IP Options value";
26076         }
26077         type enumeration {
26078           enum "add-ext" {
26079             tailf:info "Match packets with Address Extension Option (147)";
26080           }
26081           enum "any-options" {
26082             tailf:info "Match packets with ANY Option";
26083           }
26084           enum "com-security" {
26085             tailf:info "Match packets with Commercial Security Option (134)";
26086           }
26087           enum "dps" {
26088             tailf:info "Match packets with Dynamic Packet State Option (151)";
26089           }
26090           enum "encode" {
26091             tailf:info "Match packets with Encode Option (15)";
26092           }
26093           enum "eool" {
26094             tailf:info "Match packets with End of Options (0)";
26095           }
26096           enum "ext-ip" {
26097             tailf:info "Match packets with Extended IP Option (145)";
26098           }
26099           enum "ext-security" {
26100             tailf:info "Match packets with Extended Security Option (133)";
26101           }
26102           enum "finn" {
26103             tailf:info "Match packets with Experimental Flow Control Option (205)";
26104           }
26105           enum "imitd" {
26106             tailf:info "Match packets with IMI Traffic Desriptor Option (144)";
26107           }
26108           enum "lsr" {
26109             tailf:info "Match packets with Loose Source Route Option (131)";
26110           }
26111           enum "mtup" {
26112             tailf:info "Match packets with MTU Probe Option (11)";
26113           }
26114           enum "mtur" {
26115             tailf:info "Match packets with MTU Reply Option (12)";
26116           }
26117           enum "no-op" {
26118             tailf:info "Match packets with No Operation Option (1)";
26119           }
26120           enum "nsapa" {
26121             tailf:info "Match packets with NSAP Addresses Option (150)";
26122           }
26123           enum "record-route" {
26124             tailf:info "Match packets with Record Route Option (7)";
26125           }
26126           enum "router-alert" {
26127             tailf:info "Match packets with Router Alert Option (148)";
26128           }
26129           enum "sdb" {
26130             tailf:info "Match packets with Selective Directed Broadcast Option (149)";
26131           }
26132           enum "security" {
26133             tailf:info "Match packets with Basic Security Option (130)";
26134           }
26135           enum "ssr" {
26136             tailf:info "Match packets with Strict Source Routing Option (137)";
26137           }
26138           enum "stream-id" {
26139             tailf:info "Match packets with Stream ID Option (136)";
26140           }
26141           enum "timestamp" {
26142             tailf:info "Match packets with Time Stamp Option (68)";
26143           }
26144           enum "traceroute" {
26145             tailf:info "Match packets with Trace Route Option (82)";
26146           }
26147           enum "ump" {
26148             tailf:info "Match packets with Upstream Multicast Packet Option (152)";
26149           }
26150           enum "visa" {
26151             tailf:info "Match packets with Experimental Access Control Option (142)";
26152           }
26153           enum "zsu" {
26154             tailf:info "Match packets with Experimental Measurement Option (10)";
26155           }
26156         }
26157       }
26158     }
26159     leaf precedence {
26160       tailf:info "Match packets with given precedence value";
26161       description
26162         "Match packets with given precedence value";
26163       type union {
26164         type uint8 {
26165           tailf:info "<0-7>;;Precedence value";
26166           range "0..7";
26167         }
26168         type enumeration {
26169           enum "critical" {
26170             tailf:info "Match packets with critical precedence (5)";
26171           }
26172           enum "flash" {
26173             tailf:info "Match packets with flash precedence (3)";
26174           }
26175           enum "flash-override" {
26176             tailf:info "Match packets with flash override precedence (4)";
26177           }
26178           enum "immediate" {
26179             tailf:info "Match packets with immediate precedence (2)";
26180           }
26181           enum "internet" {
26182             tailf:info "Match packets with internetwork control precedence (6)";
26183           }
26184           enum "network" {
26185             tailf:info "Match packets with network control precedence (7)";
26186           }
26187           enum "priority" {
26188             tailf:info "Match packets with priority precedence (1)";
26189           }
26190           enum "routine" {
26191             tailf:info "Match packets with routine precedence (0)";
26192           }
26193         }
26194       }
26195     }
26196     leaf time-range {
26197       tailf:info "Specify a time-range";
26198       description
26199         "Specify a time-range";
26200       type string {
26201         tailf:info "WORD;;Time-range entry name";
26202       }
26203     }
26204     leaf tos {
26205       tailf:info "Match packets with given TOS value";
26206       description
26207         "Match packets with given TOS value";
26208       type union {
26209         type uint8 {
26210           tailf:info "<0-15>;;Type of service value";
26211           range "0..15";
26212         }
26213         type enumeration {
26214           enum "max-reliability" {
26215             tailf:info "Match packets with max reliable TOS (2)";
26216           }
26217           enum "max-throughput" {
26218             tailf:info "Match packets with max throughput TOS (4)";
26219           }
26220           enum "min-delay" {
26221             tailf:info "Match packets with min delay TOS (8)";
26222           }
26223           enum "min-monetary-cost" {
26224             tailf:info "Match packets with min monetary cost TOS (1)";
26225           }
26226           enum "normal" {
26227             tailf:info "Match packets with normal TOS (0)";
26228           }
26229         }
26230       }
26231     }
26232     container ttl {
26233       tailf:info "Match packets with given TTL value";
26234       description
26235         "Match packets with given TTL value";
26236       tailf:cli-flatten-container;
26237       tailf:cli-incomplete-command;
26238       choice ttl-choice {
26239         case eq-case {
26240           leaf eq {
26241             tailf:info "Match only packets on a given TTL number";
26242             description
26243               "Match only packets on a given TTL number";
26244             type uint8 {
26245               tailf:info "<0-255>;;Time to live value";
26246             }
26247           }
26248         }
26249         case gt-case {
26250           leaf gt {
26251             tailf:info "Match only packets on a given TTL number";
26252             description
26253               "Match only packets on a given TTL number";
26254             type uint8 {
26255               tailf:info "<0-255>;;Time to live value";
26256             }
26257           }
26258         }
26259         case lt-case {
26260           leaf lt {
26261             tailf:info "Match only packets on a given TTL number";
26262             description
26263               "Match only packets on a given TTL number";
26264             type uint8 {
26265               tailf:info "<0-255>;;Time to live value";
26266             }
26267           }
26268         }
26269         case neq-case {
26270           leaf neq {
26271             tailf:info "Match only packets on a given TTL number";
26272             description
26273               "Match only packets on a given TTL number";
26274             type uint8 {
26275               tailf:info "<0-255>;;Time to live value";
26276             }
26277           }
26278         }
26279         case range-case {
26280           container range {
26281             tailf:info "Match only packets in the range of TTLs";
26282             description
26283               "Match only packets in the range of TTLs";
26284             tailf:cli-flatten-container;
26285             tailf:cli-sequence-commands;
26286             tailf:cli-compact-syntax;
26287             tailf:cli-incomplete-command;
26288             leaf value1 {
26289               tailf:cli-drop-node-name;
26290               type uint8 {
26291                 tailf:info "<0-255>;;Time to live value";
26292               }
26293             }
26294             leaf value2 {
26295               tailf:cli-drop-node-name;
26296               type uint8 {
26297                 tailf:info "<0-255>;;Time to live value";
26298               }
26299             }
26300           }
26301         }
26302       }
26303     }
26304   }
26305
26306   grouping ipv6-acl-match-common-attribute {
26307     leaf auth {
26308       tailf:info "Match on authentication header";
26309       description
26310         "Match on authentication header";
26311       type empty;
26312     }
26313     leaf dest-option {
26314       tailf:info "Destination Option header (all types)";
26315       description
26316         "Destination Option header (all types)";
26317       type empty;
26318     }
26319     leaf dscp {
26320       tailf:info "Match packets with given dscp value";
26321       description
26322         "Match packets with given dscp value";
26323       type dscp-type;
26324     }
26325     leaf flow-label {
26326       tailf:info "Flow label";
26327       description
26328         "Flow label";
26329       type uint32 {
26330         tailf:info "<0-1048575>;;Flow label value";
26331         range "0..1048575";
26332       }
26333     }
26334     leaf hbh {
26335       tailf:info "Match on hop-by-hop option";
26336       description
26337         "Match on hop-by-hop option";
26338       type empty;
26339     }
26340     leaf log {
26341       tailf:info "Log matches against this entry";
26342       description
26343         "Log matches against this entry";
26344       type empty;
26345     }
26346     leaf log-input {
26347       tailf:info "Log matches against this entry, including input";
26348       description
26349         "Log matches against this entry, including input";
26350       type empty;
26351     }
26352     leaf mobility {
26353       tailf:info "Mobility header (all types)";
26354       description
26355         "Mobility header (all types)";
26356       type empty;
26357     }
26358     leaf mobility-type {
26359       tailf:info "Mobility header with type";
26360       description
26361         "Mobility header with type";
26362       type mobility-type;
26363     }
26364     leaf routing {
26365       tailf:info "Routing header (all types)";
26366       description
26367         "Routing header (all types)";
26368       type empty;
26369     }
26370     leaf routing-type {
26371       tailf:info "Routing header with type";
26372       description
26373         "Routing header with type";
26374       type uint8 {
26375         tailf:info "<0-255>;;Routing header type value";
26376       }
26377     }
26378     leaf sequence {
26379       tailf:info "Sequence number for this entry";
26380       description
26381         "Sequence number for this entry";
26382       type uint64 {
26383         tailf:info "<1-4294967294>;;Sequence number for this entry";
26384         range "1..4294967294";
26385       }
26386     }
26387     leaf time-range {
26388       tailf:info "Specify a time-range";
26389       description
26390         "Specify a time-range";
26391       type string {
26392         tailf:info "WORD;;Time-range entry name";
26393       }
26394     }
26395   }
26396
26397   grouping ipv4-acl-match-attribute {
26398     container acl-match-attribute {
26399       tailf:cli-drop-node-name;
26400       tailf:cli-flatten-container;
26401       tailf:cli-optional-in-sequence;
26402       uses ipv4-acl-match-common-attribute;
26403       container tcp-match {
26404         when "../../../../tcp";
26405         tailf:cli-drop-node-name;
26406         tailf:cli-flatten-container;
26407         uses ipv4-acl-match-common-attribute;
26408         uses acl-tcp-match;
26409         uses ipv4-acl-tcp-match;
26410         uses acl-port-match-oper;
26411       }
26412       container port-match-oper {
26413         when "(../../../../udp)";
26414         tailf:cli-drop-node-name;
26415         tailf:cli-flatten-container;
26416         uses ipv4-acl-match-common-attribute;
26417         uses acl-port-match-oper;
26418       }
26419       container icmp-option {
26420         when "../../../../icmp";
26421         tailf:cli-drop-node-name;
26422         tailf:cli-flatten-container;
26423         uses ipv4-acl-match-common-attribute;
26424         uses ipv4-acl-icmp-match;
26425       }
26426     }
26427   }
26428
26429   grouping ipv4-acl-match-proto-num-attribute {
26430     container acl-match-attribute {
26431       tailf:cli-drop-node-name;
26432       tailf:cli-flatten-container;
26433       tailf:cli-optional-in-sequence;
26434       uses ipv4-acl-match-common-attribute;
26435       container tcp-option {
26436         when "../../../number = '6'";
26437         tailf:cli-drop-node-name;
26438         tailf:cli-flatten-container;
26439         uses ipv4-acl-match-common-attribute;
26440         uses acl-tcp-match;
26441         uses ipv4-acl-tcp-match;
26442         uses acl-port-match-oper;
26443       }
26444       container icmp-option {
26445         when "../../../number = '1'";
26446         tailf:cli-drop-node-name;
26447         tailf:cli-flatten-container;
26448         uses ipv4-acl-match-common-attribute;
26449         uses ipv4-acl-icmp-match;
26450       }
26451       container port-option {
26452         when "(../../../number = '17')";
26453         tailf:cli-drop-node-name;
26454         tailf:cli-flatten-container;
26455         uses ipv4-acl-match-common-attribute;
26456         uses acl-port-match-oper;
26457       }
26458     }
26459   }
26460
26461   grouping ipv6-acl-match-attribute {
26462     container acl-match-attribute {
26463       tailf:cli-drop-node-name;
26464       tailf:cli-flatten-container;
26465       tailf:cli-optional-in-sequence;
26466       uses ipv6-acl-match-common-attribute;
26467       container tcp-match {
26468         when "../../../../tcp";
26469         tailf:cli-drop-node-name;
26470         tailf:cli-flatten-container;
26471         uses ipv6-acl-match-common-attribute;
26472         uses acl-tcp-match;
26473         uses acl-port-match-oper;
26474       }
26475       container port-match-oper {
26476         when "(../../../../udp) or (../../../../sctp)";
26477         tailf:cli-drop-node-name;
26478         tailf:cli-flatten-container;
26479         uses ipv6-acl-match-common-attribute;
26480         uses acl-port-match-oper;
26481       }
26482       container icmp-option {
26483         when "../../../../icmp";
26484         tailf:cli-drop-node-name;
26485         tailf:cli-flatten-container;
26486         uses ipv6-acl-match-common-attribute;
26487         uses ipv6-acl-icmp-match;
26488       }
26489     }
26490   }
26491
26492   grouping ipv6-acl-match-proto-num-attribute {
26493     container acl-match-attribute {
26494       tailf:cli-drop-node-name;
26495       tailf:cli-flatten-container;
26496       tailf:cli-optional-in-sequence;
26497       uses ipv6-acl-match-common-attribute;
26498       container tcp-option {
26499         when "../../../number = '6'";
26500         tailf:cli-drop-node-name;
26501         tailf:cli-flatten-container;
26502         uses ipv6-acl-match-common-attribute;
26503         uses acl-tcp-match;
26504         uses acl-port-match-oper;
26505       }
26506       container icmp-option {
26507         when "../../../number = '1'";
26508         tailf:cli-drop-node-name;
26509         tailf:cli-flatten-container;
26510         uses ipv6-acl-match-common-attribute;
26511         uses ipv6-acl-icmp-match;
26512       }
26513       container port-option {
26514         when "(../../../number = '17') or (../../../number = '132')";
26515         tailf:cli-drop-node-name;
26516         tailf:cli-flatten-container;
26517         uses ipv6-acl-match-common-attribute;
26518         uses acl-port-match-oper;
26519       }
26520     }
26521   }
26522
26523   grouping ace-log-grouping {
26524     leaf log {
26525       tailf:info "Log matches against this entry";
26526       description
26527         "Log matches against this entry";
26528       tailf:cli-optional-in-sequence;
26529       type empty;
26530     }
26531   }
26532
26533   grouping ipv4-std-ace-grouping {
26534     container std-ace {
26535       tailf:cli-drop-node-name;
26536       tailf:cli-flatten-container;
26537       tailf:cli-sequence-commands;
26538       tailf:cli-compact-syntax;
26539       choice source-choice {
26540         case ipv4-prefix-case {
26541           leaf ipv4-prefix {
26542             tailf:cli-drop-node-name;
26543             type ipv4-host-type {
26544               tailf:info "Hostname or A.B.C.D;;Address to match";
26545             }
26546           }
26547           leaf mask {
26548             tailf:cli-drop-node-name;
26549             tailf:cli-optional-in-sequence;
26550             type inet:ipv4-address {
26551               tailf:info "A.B.C.D;;Wildcard bits";
26552             }
26553           }
26554         }
26555         case any-case {
26556           leaf any {
26557             tailf:info "Any source prefix";
26558             description
26559               "Any source prefix";
26560             type empty;
26561           }
26562         }
26563         case host-case {
26564           leaf host {
26565             tailf:info "A single source host";
26566             description
26567               "A single source host";
26568             type ipv4-host-type {
26569               tailf:info "Hostname or A.B.C.D  Host address";
26570             }
26571           }
26572         }
26573       }
26574       uses ace-log-grouping;
26575     }
26576   }
26577
26578   grouping ipv4-source-destination-main-grouping {
26579     choice source-choice {
26580       case ipv4-prefix-case {
26581         leaf ipv4-address {
26582           tailf:cli-drop-node-name;
26583           tailf:cli-incomplete-command;
26584           mandatory true;
26585           type inet:ipv4-address {
26586             tailf:info "A.B.C.D;;Source address";
26587           }
26588         }
26589         leaf mask {
26590           mandatory true;
26591           tailf:cli-drop-node-name;
26592           tailf:cli-incomplete-command;
26593           type inet:ipv4-address {
26594             tailf:info "A.B.C.D;;Source wildcard bits";
26595           }
26596         }
26597       }
26598       case any-case {
26599         leaf any {
26600           tailf:cli-incomplete-command;
26601           tailf:info "Any source host";
26602           description
26603             "Any source host";
26604           type empty;
26605         }
26606       }
26607       case host-case {
26608         leaf host {
26609           tailf:info "A single source host";
26610           description
26611             "A single source host";
26612           tailf:cli-incomplete-command;
26613           type ipv4-host-type {
26614             tailf:info "Hostname or A.B.C.D;;Source address";
26615           }
26616         }
26617       }
26618       case object-group-case {
26619         leaf object-group {
26620           tailf:cli-incomplete-command;
26621           tailf:info "Source network object group";
26622           description
26623             "Source network object group";
26624           type string {
26625             tailf:info "WORD;;Source network object group name";
26626           }
26627         }
26628       }
26629     }
26630     choice src-port-choice {
26631       case src-eq-case {
26632         leaf src-udp-eq {
26633           tailf:alt-name "eq";
26634           tailf:info "Match only packets on a given port number";
26635           description
26636             "Match only packets on a given port number";
26637           tailf:cli-optional-in-sequence;
26638           when "../../../udp";
26639           type acl-udp-port-type;
26640         }
26641         leaf src-tcp-eq {
26642           tailf:alt-name "eq";
26643           tailf:info "Match only packets on a given port number";
26644           description
26645             "Match only packets on a given port number";
26646           tailf:cli-optional-in-sequence;
26647           when "../../../tcp";
26648           type acl-tcp-port-type;
26649         }
26650       }
26651       case src-gt-case {
26652         leaf src-udp-gt {
26653           tailf:alt-name "gt";
26654           tailf:info "Match only packets with a greater port number";
26655           description
26656             "Match only packets with a greater port number";
26657           tailf:cli-optional-in-sequence;
26658           when "../../../udp";
26659           type acl-udp-port-type;
26660         }
26661         leaf src-tcp-gt {
26662           tailf:alt-name "gt";
26663           tailf:info "Match only packets with a greater port number";
26664           description
26665             "Match only packets with a greater port number";
26666           tailf:cli-optional-in-sequence;
26667           when "../../../tcp";
26668           type acl-tcp-port-type;
26669         }
26670       }
26671       case src-lt-case {
26672         leaf src-udp-lt {
26673           tailf:alt-name "lt";
26674           tailf:info "Match only packets with a lower port number";
26675           description
26676             "Match only packets with a lower port number";
26677           tailf:cli-optional-in-sequence;
26678           when "../../../udp";
26679           type acl-udp-port-type;
26680         }
26681         leaf src-tcp-lt {
26682           tailf:alt-name "lt";
26683           tailf:info "Match only packets with a lower port number";
26684           description
26685             "Match only packets with a lower port number";
26686           tailf:cli-optional-in-sequence;
26687           when "../../../tcp";
26688           type acl-tcp-port-type;
26689         }
26690       }
26691       case src-neq-case {
26692         leaf src-udp-neq {
26693           tailf:alt-name "neq";
26694           tailf:info "Match only packets not on a given port number";
26695           description
26696             "Match only packets not on a given port number";
26697           tailf:cli-optional-in-sequence;
26698           when "../../../udp";
26699           type acl-udp-port-type;
26700         }
26701         leaf src-tcp-neq {
26702           tailf:alt-name "neq";
26703           tailf:info "Match only packets not on a given port number";
26704           description
26705             "Match only packets not on a given port number";
26706           tailf:cli-optional-in-sequence;
26707           when "../../../tcp";
26708           type acl-tcp-port-type;
26709         }
26710       }
26711     }
26712     choice destination-choice {
26713       case ipv4-prefix-case {
26714         leaf dest-ipv4-address {
26715           tailf:cli-drop-node-name;
26716           tailf:cli-incomplete-command;
26717           mandatory true;
26718           type inet:ipv4-address {
26719             tailf:info "A.B.C.D;;Destination address";
26720           }
26721         }
26722         leaf dest-mask {
26723           tailf:cli-drop-node-name;
26724           mandatory true;
26725           type inet:ipv4-address {
26726             tailf:info "A.B.C.D;;Destination wildcard bits";
26727           }
26728         }
26729       }
26730       case any-case {
26731         leaf dst-any {
26732           tailf:alt-name "any";
26733           tailf:info "Any destination host";
26734           description
26735             "Any destination host";
26736           type empty;
26737         }
26738       }
26739       case host-case {
26740         leaf dst-host {
26741           tailf:alt-name "host";
26742           tailf:info "A single destination host";
26743           description
26744             "A single destination host";
26745           type ipv4-host-type {
26746             tailf:info "Hostname or A.B.C.D;;Destination address";
26747           }
26748         }
26749       }
26750       case object-group-case {
26751         leaf dst-object-group {
26752           tailf:alt-name "object-group";
26753           tailf:info "Destination network object group";
26754           description
26755             "Destination network object group";
26756           type string {
26757             tailf:info "WORD;;Destination network object group name";
26758           }
26759         }
26760       }
26761     }
26762   }
26763
26764   grouping ipv4-source-destination-proto-num-main-grouping {
26765     choice source-choice {
26766       case ipv4-prefix-case {
26767         leaf ipv4-address {
26768           tailf:cli-drop-node-name;
26769           tailf:cli-incomplete-command;
26770           mandatory true;
26771           type inet:ipv4-address {
26772             tailf:info "A.B.C.D;;Source address";
26773           }
26774         }
26775         leaf mask {
26776           mandatory true;
26777           tailf:cli-drop-node-name;
26778           tailf:cli-incomplete-command;
26779           type inet:ipv4-address {
26780             tailf:info "A.B.C.D;;Source wildcard bits";
26781           }
26782         }
26783       }
26784       case any-case {
26785         leaf any {
26786           tailf:cli-incomplete-command;
26787           tailf:info "Any source host";
26788           description
26789             "Any source host";
26790           type empty;
26791         }
26792       }
26793       case host-case {
26794         leaf host {
26795           tailf:info "A single source host";
26796           description
26797             "A single source host";
26798           tailf:cli-incomplete-command;
26799           type ipv4-host-type {
26800             tailf:info "Hostname or A.B.C.D;;Source address";
26801           }
26802         }
26803       }
26804       case object-group-case {
26805         leaf object-group {
26806           tailf:cli-incomplete-command;
26807           tailf:info "Source network object group";
26808           description
26809             "Source network object group";
26810           type string {
26811             tailf:info "WORD;;Source network object group name";
26812           }
26813         }
26814       }
26815     }
26816     choice src-port-choice {
26817       case src-eq-case {
26818         leaf src-udp-eq {
26819           tailf:alt-name "eq";
26820           tailf:info "Match only packets on a given port number";
26821           description
26822             "Match only packets on a given port number";
26823           tailf:cli-optional-in-sequence;
26824           when "../../number = 17";
26825           type acl-udp-port-type;
26826         }
26827         leaf src-tcp-eq {
26828           tailf:alt-name "eq";
26829           tailf:info "Match only packets on a given port number";
26830           description
26831             "Match only packets on a given port number";
26832           tailf:cli-optional-in-sequence;
26833           when "../../number = 6";
26834           type acl-tcp-port-type;
26835         }
26836       }
26837       case src-gt-case {
26838         leaf src-udp-gt {
26839           tailf:alt-name "gt";
26840           tailf:info "Match only packets with a greater port number";
26841           description
26842             "Match only packets with a greater port number";
26843           tailf:cli-optional-in-sequence;
26844           when "../../number = 17";
26845           type acl-udp-port-type;
26846         }
26847         leaf src-tcp-gt {
26848           tailf:alt-name "gt";
26849           tailf:info "Match only packets with a greater port number";
26850           description
26851             "Match only packets with a greater port number";
26852           tailf:cli-optional-in-sequence;
26853           when "../../number = 6";
26854           type acl-tcp-port-type;
26855         }
26856       }
26857       case src-lt-case {
26858         leaf src-udp-lt {
26859           tailf:alt-name "lt";
26860           tailf:info "Match only packets with a lower port number";
26861           description
26862             "Match only packets with a lower port number";
26863           tailf:cli-optional-in-sequence;
26864           when "../../number = 17";
26865           type acl-udp-port-type;
26866         }
26867         leaf src-tcp-lt {
26868           tailf:alt-name "lt";
26869           tailf:info "Match only packets with a lower port number";
26870           description
26871             "Match only packets with a lower port number";
26872           tailf:cli-optional-in-sequence;
26873           when "../../number = 6";
26874           type acl-tcp-port-type;
26875         }
26876       }
26877       case src-neq-case {
26878         leaf src-udp-neq {
26879           tailf:alt-name "neq";
26880           tailf:info "Match only packets not on a given port number";
26881           description
26882             "Match only packets not on a given port number";
26883           tailf:cli-optional-in-sequence;
26884           when "../../number = 17";
26885           type acl-udp-port-type;
26886         }
26887         leaf src-tcp-neq {
26888           tailf:alt-name "neq";
26889           tailf:info "Match only packets not on a given port number";
26890           description
26891             "Match only packets not on a given port number";
26892           tailf:cli-optional-in-sequence;
26893           when "../../number = 6";
26894           type acl-tcp-port-type;
26895         }
26896       }
26897     }
26898     choice destination-choice {
26899       case ipv4-prefix-case {
26900         leaf dest-ipv4-address {
26901           tailf:cli-drop-node-name;
26902           tailf:cli-incomplete-command;
26903           mandatory true;
26904           type inet:ipv4-address {
26905             tailf:info "A.B.C.D;;Destination address";
26906           }
26907         }
26908         leaf dest-mask {
26909           tailf:cli-drop-node-name;
26910           mandatory true;
26911           type inet:ipv4-address {
26912             tailf:info "A.B.C.D;;Destination wildcard bits";
26913           }
26914         }
26915       }
26916       case any-case {
26917         leaf dst-any {
26918           tailf:alt-name "any";
26919           tailf:info "Any destination host";
26920           description
26921             "Any destination host";
26922           type empty;
26923         }
26924       }
26925       case host-case {
26926         leaf dst-host {
26927           tailf:alt-name "host";
26928           tailf:info "A single destination host";
26929           description
26930             "A single destination host";
26931           type ipv4-host-type {
26932             tailf:info "Hostname or A.B.C.D;;Destination address";
26933           }
26934         }
26935       }
26936       case object-group-case {
26937         leaf dst-object-group {
26938           tailf:alt-name "object-group";
26939           tailf:info "Destination network object group";
26940           description
26941             "Destination network object group";
26942           type string {
26943             tailf:info "WORD;;Destination network object group name";
26944           }
26945         }
26946       }
26947     }
26948   }
26949
26950   grouping ipv6-source-grouping {
26951     container source {
26952       tailf:cli-drop-node-name;
26953       tailf:cli-incomplete-command;
26954       tailf:cli-flatten-container;
26955       choice source-choice {
26956         case ipv6-prefix {
26957           leaf ipv6-prefix {
26958             tailf:cli-drop-node-name;
26959             type ipv6-prefix {
26960               tailf:info "X:X:X:X::X/<0-128>;;IPv6 source prefix x:x::y/<z>";
26961             }
26962           }
26963         }
26964         case any-case {
26965           leaf any {
26966             tailf:info "Any source prefix";
26967             description
26968               "Any source prefix";
26969             tailf:cli-incomplete-command;
26970             type empty;
26971           }
26972         }
26973         case host-case {
26974           leaf host {
26975             tailf:info "A single source host";
26976             description
26977               "A single source host";
26978             tailf:cli-incomplete-command;
26979             type inet:ipv6-address {
26980               tailf:info "X:X:X:X::X;;IPv6 source address x:x::y";
26981             }
26982           }
26983         }
26984       }
26985     }
26986   }
26987
26988   grouping ipv6-destination-grouping {
26989     container destination {
26990       tailf:cli-drop-node-name;
26991       tailf:cli-flatten-container;
26992       choice destination-choice {
26993         case ipv6-prefix-case {
26994           leaf ipv6-prefix {
26995             tailf:cli-drop-node-name;
26996             type ipv6-prefix {
26997               tailf:info "X:X:X:X::X/<0-128>;;IPv6 destination prefix x:x::y/<z>";
26998             }
26999           }
27000         }
27001         case any-case {
27002           leaf any {
27003             tailf:info "Any destination prefix";
27004             description
27005               "Any destination prefix";
27006             type empty;
27007           }
27008         }
27009         case host-case {
27010           leaf host {
27011             tailf:info "A single destination host";
27012             description
27013               "A single destination host";
27014             type inet:ipv6-address {
27015               tailf:info "X:X:X:X::X;;IPv6 destination address x:x::y";
27016             }
27017           }
27018         }
27019       }
27020     }
27021   }
27022
27023   grouping ipv6-source-destination-proto-num-grouping {
27024     container source-destination {
27025       tailf:cli-drop-node-name;
27026       tailf:cli-flatten-container;
27027       tailf:cli-sequence-commands;
27028       uses ipv6-source-grouping;
27029       uses ipv6-destination-grouping;
27030       uses ipv6-acl-match-proto-num-attribute;
27031     }
27032   }
27033
27034   grouping ipv6-source-destination-match-grouping {
27035     container source-destination-match {
27036       tailf:cli-drop-node-name;
27037       tailf:cli-flatten-container;
27038       tailf:cli-sequence-commands;
27039       uses ipv6-source-grouping;
27040       uses ipv6-destination-grouping;
27041       uses ipv6-acl-match-attribute;
27042     }
27043   }
27044
27045   grouping ipv6-source-destination-grouping {
27046     container source-destination-match {
27047       tailf:cli-drop-node-name;
27048       tailf:cli-flatten-container;
27049       tailf:cli-sequence-commands;
27050       uses ipv6-source-grouping;
27051       uses ipv6-destination-grouping;
27052       container acl-match-attribute {
27053         tailf:cli-drop-node-name;
27054         tailf:cli-flatten-container;
27055         tailf:cli-optional-in-sequence;
27056         uses ipv6-acl-match-common-attribute;
27057       }
27058     }
27059   }
27060
27061   grouping ipv4-source-destination-proto-num-grouping {
27062     container source-destination-match {
27063       tailf:cli-drop-node-name;
27064       tailf:cli-flatten-container;
27065       tailf:cli-sequence-commands;
27066       tailf:cli-compact-syntax;
27067       uses ipv4-source-destination-proto-num-main-grouping;
27068       uses ipv4-acl-match-proto-num-attribute;
27069     }
27070   }
27071
27072   grouping ipv4-source-destination-match-grouping {
27073     container source-destination-match {
27074       tailf:cli-drop-node-name;
27075       tailf:cli-flatten-container;
27076       tailf:cli-sequence-commands;
27077       tailf:cli-compact-syntax;
27078       uses ipv4-source-destination-main-grouping;
27079       uses ipv4-acl-match-attribute;
27080     }
27081   }
27082
27083   grouping ipv4-ext-acl-protocol-grouping {
27084     container acl-protocol {
27085       tailf:cli-drop-node-name;
27086       tailf:cli-flatten-container;
27087       tailf:cli-compact-syntax;
27088       choice acl-protocol-choice {
27089         case protocol-number-case {
27090           container protocol-number {
27091             tailf:cli-drop-node-name;
27092             tailf:cli-sequence-commands;
27093             tailf:cli-compact-syntax;
27094             leaf number {
27095               tailf:cli-drop-node-name;
27096               type string {
27097                 tailf:info "<0-255>;;An IP protocol number";
27098               }
27099             }
27100             uses ipv4-source-destination-proto-num-grouping;
27101           }
27102         }
27103         case object-group-case {
27104           container object-group-container {
27105             tailf:cli-drop-node-name;
27106             tailf:cli-sequence-commands;
27107             tailf:cli-compact-syntax;
27108             leaf object-group {
27109               tailf:info "Service object group";
27110               description
27111                 "Service object group";
27112               type string {
27113                 tailf:info "WORD;;Service object group name";
27114               }
27115             }
27116             uses ipv4-source-destination-match-grouping;
27117           }
27118         }
27119         case ahp-case {
27120           container ahp {
27121             tailf:cli-compact-syntax;
27122             tailf:info "Authentication Header Protocol";
27123             description
27124               "Authentication Header Protocol";
27125             uses ipv4-source-destination-match-grouping;
27126           }
27127         }
27128         case eigrp-case {
27129           container eigrp {
27130             tailf:cli-compact-syntax;
27131             tailf:info "Cisco's EIGRP routing protocol";
27132             description
27133               "Cisco's EIGRP routing protocol";
27134             uses ipv4-source-destination-match-grouping;
27135           }
27136         }
27137         case esp-case {
27138           container esp {
27139             tailf:cli-compact-syntax;
27140             tailf:info "Encapsulation Security Payload";
27141             description
27142               "Encapsulation Security Payload";
27143             uses ipv4-source-destination-match-grouping;
27144           }
27145         }
27146         case gre-case {
27147           container gre {
27148             tailf:cli-compact-syntax;
27149             tailf:info "Cisco's GRE tunneling";
27150             description
27151               "Cisco's GRE tunneling";
27152             uses ipv4-source-destination-match-grouping;
27153           }
27154         }
27155         case icmp-case {
27156           container icmp {
27157             tailf:cli-compact-syntax;
27158             tailf:info "Internet Control Message Protocol";
27159             description
27160               "Internet Control Message Protocol";
27161             uses ipv4-source-destination-match-grouping;
27162           }
27163         }
27164         case igmp-case {
27165           container igmp {
27166             tailf:cli-compact-syntax;
27167             tailf:info "Internet Gateway Message Protocol";
27168             description
27169               "Internet Gateway Message Protocol";
27170             uses ipv4-source-destination-match-grouping;
27171           }
27172         }
27173         case ip-case {
27174           container ip {
27175             tailf:cli-compact-syntax;
27176             tailf:info "Any Internet Protocol";
27177             description
27178               "Any Internet Protocol";
27179             uses ipv4-source-destination-match-grouping;
27180           }
27181         }
27182         case ipinip-case {
27183           container ipinip {
27184             tailf:cli-compact-syntax;
27185             tailf:info "IP in IP tunneling";
27186             description
27187               "IP in IP tunneling";
27188             uses ipv4-source-destination-match-grouping;
27189           }
27190         }
27191         case nos-case {
27192           container nos {
27193             tailf:cli-compact-syntax;
27194             tailf:info "KA9Q NOS compatible IP over IP tunneling";
27195             description
27196               "KA9Q NOS compatible IP over IP tunneling";
27197             uses ipv4-source-destination-match-grouping;
27198           }
27199         }
27200         case ospf-case {
27201           container ospf {
27202             tailf:cli-compact-syntax;
27203             tailf:info "OSPF routing protocol";
27204             description
27205               "OSPF routing protocol";
27206             uses ipv4-source-destination-match-grouping;
27207           }
27208         }
27209         case pcp-case {
27210           container pcp {
27211             tailf:cli-compact-syntax;
27212             tailf:info "Payload Compression Protocol";
27213             description
27214               "Payload Compression Protocol";
27215             uses ipv4-source-destination-match-grouping;
27216           }
27217         }
27218         case pim-case {
27219           container pim {
27220             tailf:cli-compact-syntax;
27221             tailf:info "Protocol Independent Multicast";
27222             description
27223               "Protocol Independent Multicast";
27224             uses ipv4-source-destination-match-grouping;
27225           }
27226         }
27227         case tcp-case {
27228           container tcp {
27229             tailf:cli-compact-syntax;
27230             tailf:info "Transmission Control Protocol";
27231             description
27232               "Transmission Control Protocol";
27233             uses ipv4-source-destination-match-grouping;
27234           }
27235         }
27236         case udp-case {
27237           container udp {
27238             tailf:cli-compact-syntax;
27239             tailf:info "Datagram Protocol";
27240             description
27241               "Datagram Protocol";
27242             uses ipv4-source-destination-match-grouping;
27243           }
27244         }
27245       }
27246     }
27247   }
27248
27249   grouping ipv6-acl-protocol-grouping {
27250     container acl-protocol {
27251       tailf:cli-drop-node-name;
27252       tailf:cli-flatten-container;
27253       uses ipv6-source-destination-grouping;
27254       choice acl-protocol-choice {
27255         case protocol-number-case {
27256           container protocol-number {
27257             tailf:cli-drop-node-name;
27258             tailf:cli-sequence-commands;
27259             leaf number {
27260               tailf:cli-drop-node-name;
27261               type uint8 {
27262                 tailf:info "<0-255>;;An IPv6 protocol number";
27263               }
27264             }
27265             uses ipv6-source-destination-proto-num-grouping;
27266           }
27267         }
27268         case ahp-case {
27269           container ahp {
27270             tailf:info "Authentication Header Protocol";
27271             description
27272               "Authentication Header Protocol";
27273             uses ipv6-source-destination-match-grouping;
27274           }
27275         }
27276         case esp-case {
27277           container esp {
27278             tailf:info "Encapsulation Security Payload";
27279             description
27280               "Encapsulation Security Payload";
27281             uses ipv6-source-destination-match-grouping;
27282           }
27283         }
27284         case hbh-case {
27285           container hbh {
27286             tailf:info "Hop by Hop options header";
27287             description
27288               "Hop by Hop options header";
27289             uses ipv6-source-destination-match-grouping;
27290           }
27291         }
27292         case icmp-case {
27293           container icmp {
27294             tailf:info "Internet Control Message Protocol";
27295             description
27296               "Internet Control Message Protocol";
27297             uses ipv6-source-destination-match-grouping;
27298           }
27299         }
27300         case ipv6-case {
27301           container ipv6 {
27302             tailf:info "Any IPv6";
27303             description
27304               "Any IPv6";
27305             uses ipv6-source-destination-match-grouping;
27306           }
27307         }
27308         case pcp-case {
27309           container pcp {
27310             tailf:info "Payload Compression Protocol";
27311             description
27312               "Payload Compression Protocol";
27313             uses ipv6-source-destination-match-grouping;
27314           }
27315         }
27316         case sctp-case {
27317           container sctp {
27318             tailf:info "Streams Control Transmission Protocol";
27319             description
27320               "Streams Control Transmission Protocol";
27321             uses ipv6-source-destination-match-grouping;
27322           }
27323         }
27324         case tcp-case {
27325           container tcp {
27326             tailf:info "Transmission Control Protocol";
27327             description
27328               "Transmission Control Protocol";
27329             uses ipv6-source-destination-match-grouping;
27330           }
27331         }
27332         case udp-case {
27333           container udp {
27334             tailf:info "Datagram Protocol";
27335             description
27336               "Datagram Protocol";
27337             uses ipv6-source-destination-match-grouping;
27338           }
27339         }
27340       }
27341     }
27342   }
27343
27344   grouping acl-remark-grouping {
27345     leaf remark {
27346       tailf:info "Access list entry comment";
27347       description
27348         "Access list entry comment";
27349       tailf:cli-hide-in-submode;
27350       tailf:cli-multi-value;
27351       type string {
27352         tailf:info "LINE  Comment up to 100 characters";
27353         length "1..100";
27354       }
27355     }
27356   }
27357
27358   grouping ipv6-acl-grouping {
27359     list access-list-seq-rule {
27360       tailf:cli-suppress-mode;
27361       tailf:cli-delete-when-empty;
27362       tailf:cli-drop-node-name;
27363       tailf:cli-show-long-obu-diffs;
27364       ordered-by user;
27365       key "sequence";
27366       leaf sequence {
27367         tailf:info "Sequence number for this entry";
27368         description
27369           "Sequence number for this entry";
27370         tailf:cli-expose-key-name;
27371         tailf:cli-incomplete-command;
27372         type uint64 {
27373           tailf:info "<1-4294967294>;;Sequence number for this entry";
27374           range "1..4294967294";
27375         }
27376       }
27377       choice deny-permit {
27378         container deny {
27379           presence "";
27380           tailf:info "Specify packets to reject";
27381           description
27382             "Specify packets to reject";
27383           tailf:cli-hide-in-submode;
27384           uses ipv6-acl-protocol-grouping;
27385         }
27386         container permit {
27387           presence "";
27388           tailf:info "Specify packets to forward";
27389           description
27390             "Specify packets to forward";
27391           tailf:cli-hide-in-submode;
27392           uses ipv6-acl-protocol-grouping;
27393         }
27394       }
27395       uses acl-remark-grouping;
27396     }
27397   }
27398
27399   grouping ipv4-std-acl-grouping {
27400     list access-list-seq-rule {
27401       tailf:cli-suppress-mode;
27402       tailf:cli-delete-when-empty;
27403       tailf:cli-drop-node-name;
27404       tailf:cli-show-long-obu-diffs;
27405       key "sequence";
27406       leaf sequence {
27407         tailf:cli-incomplete-command;
27408         type uint64 {
27409           tailf:info "<1-2147483647>;;Sequence Number";
27410           range "1..2147483647";
27411         }
27412       }
27413       choice deny-permit {
27414         container deny {
27415           tailf:info "Specify packets to reject";
27416           description
27417             "Specify packets to reject";
27418           uses ipv4-std-ace-grouping;
27419         }
27420         container permit {
27421           tailf:info "Specify packets to forward";
27422           description
27423             "Specify packets to forward";
27424           uses ipv4-std-ace-grouping;
27425         }
27426       }
27427     }
27428   }
27429
27430   grouping ipv4-std-acl-remark-grouping {
27431     list access-list-remark-seq-rule {
27432       tailf:cli-suppress-mode;
27433       tailf:cli-delete-when-empty;
27434       tailf:cli-drop-node-name;
27435       tailf:cli-show-long-obu-diffs;
27436       key "sequence";
27437       leaf sequence {
27438         tailf:cli-incomplete-command;
27439         type uint64 {
27440           tailf:info "<1-2147483647>;;Sequence Number";
27441           range "1..2147483647";
27442         }
27443       }
27444     }
27445   }
27446
27447   grouping ipv4-ext-acl-grouping {
27448     list access-list-seq-rule {
27449       tailf:cli-suppress-mode;
27450       tailf:cli-delete-when-empty;
27451       tailf:cli-drop-node-name;
27452       tailf:cli-show-long-obu-diffs;
27453       key "sequence";
27454       leaf sequence {
27455         tailf:cli-incomplete-command;
27456         type uint64 {
27457           tailf:info "<1-2147483647>;;Sequence Number";
27458           range "1..2147483647";
27459         }
27460       }
27461       choice deny-permit {
27462         container deny {
27463           tailf:info "Specify packets to reject";
27464           description
27465             "Specify packets to reject";
27466           uses ipv4-ext-acl-protocol-grouping;
27467         }
27468         container permit {
27469           tailf:info "Specify packets to forward";
27470           description
27471             "Specify packets to forward";
27472           uses ipv4-ext-acl-protocol-grouping;
27473         }
27474       }
27475     }
27476   }
27477
27478   grouping ipv4-ext-acl-remark-grouping {
27479     list access-list-remark-seq-rule {
27480       tailf:cli-suppress-mode;
27481       tailf:cli-delete-when-empty;
27482       tailf:cli-drop-node-name;
27483       tailf:cli-show-long-obu-diffs;
27484       key "sequence";
27485       leaf sequence {
27486         tailf:cli-incomplete-command;
27487         type uint64 {
27488           tailf:info "<1-2147483647>;;Sequence Number";
27489           range "1..2147483647";
27490         }
27491       }
27492       uses acl-remark-grouping;
27493     }
27494   }
27495
27496   grouping flow-name-grouping {
27497     container name {
27498       tailf:info "Application name";
27499       description
27500         "Application name";
27501       presence "true";
27502       leaf account-on-resolution {
27503         tailf:info "Account on resolution";
27504         description
27505           "Account on resolution";
27506         type empty;
27507       }
27508     }
27509   }
27510
27511   grouping flow-vendor-version-grouping {
27512     leaf vendor {
27513       tailf:info "Application vendor id";
27514       description
27515         "Application vendor id";
27516       tailf:cli-full-command;
27517       type empty;
27518     }
27519     leaf version {
27520       tailf:info "Application version id";
27521       description
27522         "Application version id";
27523       tailf:cli-full-command;
27524       type empty;
27525     }
27526   }
27527
27528   grouping flow-client-ipv4-ipv6-transport-grouping {
27529     container ipv4 {
27530       tailf:info "Client side IPv4 metrics";
27531       description
27532         "Client side IPv4 metrics";
27533       leaf address {
27534         tailf:info "IPv4 address of the flow initiator";
27535         description
27536           "IPv4 address of the flow initiator";
27537         tailf:cli-full-command;
27538         type empty;
27539       }
27540     }
27541     container ipv6 {
27542       tailf:info "Client side IPv6 metrics";
27543       description
27544         "Client side IPv6 metrics";
27545       leaf address {
27546         tailf:info "IPv6 address of the flow initiator";
27547         description
27548           "IPv6 address of the flow initiator";
27549         tailf:cli-full-command;
27550         type empty;
27551       }
27552     }
27553     container transport {
27554       tailf:info "Client side transport metrics";
27555       description
27556         "Client side transport metrics";
27557       leaf port {
27558         tailf:info "Transport port of the flow initiator";
27559         description
27560           "Transport port of the flow initiator";
27561         tailf:cli-full-command;
27562         type empty;
27563       }
27564     }
27565   }
27566
27567   grouping flow-server-ipv4-ipv6-transport-grouping {
27568     container ipv4 {
27569       tailf:info "Server side IPv4 metrics";
27570       description
27571         "Server side IPv4 metrics";
27572       leaf address {
27573         tailf:info "IPv4 address of the flow responder";
27574         description
27575           "IPv4 address of the flow responder";
27576         tailf:cli-full-command;
27577         type empty;
27578       }
27579     }
27580     container ipv6 {
27581       tailf:info "Server side IPv6 metrics";
27582       description
27583         "Server side IPv6 metrics";
27584       leaf address {
27585         tailf:info "IPv6 address of the flow responder";
27586         description
27587           "IPv6 address of the flow responder";
27588         tailf:cli-full-command;
27589         type empty;
27590       }
27591     }
27592     container transport {
27593       tailf:info "Server side transport metrics";
27594       description
27595         "Server side transport metrics";
27596       leaf port {
27597         tailf:info "Transport port of the flow responder";
27598         description
27599           "Transport port of the flow responder";
27600         tailf:cli-full-command;
27601         type empty;
27602       }
27603     }
27604   }
27605
27606   grouping flow-transaction-id-grouping {
27607     leaf transaction-id {
27608       tailf:info "An identifier for a transaction between client and server";
27609       description
27610         "An identifier for a transaction between client and server";
27611       tailf:cli-full-command;
27612       type empty;
27613     }
27614   }
27615
27616   grouping flow-id-initiator-grouping {
27617     leaf id {
27618       tailf:info "An identifier for a connection between client and server";
27619       description
27620         "An identifier for a connection between client and server";
27621       tailf:cli-full-command;
27622       type empty;
27623     }
27624     leaf initiator {
27625       tailf:info "The direction of the flow";
27626       description
27627         "The direction of the flow";
27628       tailf:cli-full-command;
27629       type empty;
27630     }
27631   }
27632
27633   grouping flow-datalink-grouping {
27634     leaf destination-vlan-id {
27635       tailf:info "ID of the VLAN that the packet is going to";
27636       description
27637         "ID of the VLAN that the packet is going to";
27638       tailf:cli-full-command;
27639       type empty;
27640     }
27641     container mac {
27642       tailf:info "MAC fields";
27643       description
27644         "MAC fields";
27645       container destination {
27646         tailf:info "destination MAC fields";
27647         description
27648           "destination MAC fields";
27649         container address {
27650           tailf:info "Destination MAC address from packet";
27651           description
27652             "Destination MAC address from packet";
27653           leaf input {
27654             tailf:info "Destination MAC address from packet at input";
27655             description
27656               "Destination MAC address from packet at input";
27657             tailf:cli-full-command;
27658             type empty;
27659           }
27660           leaf output {
27661             tailf:info "Destination MAC address from packet at output";
27662             description
27663               "Destination MAC address from packet at output";
27664             tailf:cli-full-command;
27665             type empty;
27666           }
27667         }
27668       }
27669       container source {
27670         tailf:info "source MAC fields";
27671         description
27672           "source MAC fields";
27673         container address {
27674           tailf:info "Source MAC address from packet";
27675           description
27676             "Source MAC address from packet";
27677           leaf input {
27678             tailf:info "Source MAC address from packet at input";
27679             description
27680               "Source MAC address from packet at input";
27681             tailf:cli-full-command;
27682             type empty;
27683           }
27684           leaf output {
27685             tailf:info "Source MAC address from packet at output";
27686             description
27687               "Source MAC address from packet at output";
27688             tailf:cli-full-command;
27689             type empty;
27690           }
27691         }
27692       }
27693     }
27694     leaf source-vlan-id {
27695       tailf:info "ID of the VLAN that the packet came from";
27696       description
27697         "ID of the VLAN that the packet came from";
27698       tailf:cli-full-command;
27699       type empty;
27700     }
27701   }
27702
27703   grouping flow-flow-common-grouping {
27704     container cts {
27705       tailf:info "Cisco Trusted Security fields";
27706       description
27707         "Cisco Trusted Security fields";
27708       container destination {
27709         tailf:info "Cisco Trusted Security destination fields";
27710         description
27711           "Cisco Trusted Security destination fields";
27712         leaf group-tag {
27713           tailf:info "destination group-tag";
27714           description
27715             "destination group-tag";
27716           type empty;
27717         }
27718       }
27719       container source {
27720         tailf:info "Cisco Trusted Security source fields";
27721         description
27722           "Cisco Trusted Security source fields";
27723         leaf group-tag {
27724           tailf:info "source group-tag";
27725           description
27726             "source group-tag";
27727           type empty;
27728         }
27729       }
27730     }
27731     leaf direction {
27732       tailf:info "Direction the flow was monitored in";
27733       description
27734         "Direction the flow was monitored in";
27735       tailf:cli-full-command;
27736       type empty;
27737     }
27738     container observation {
27739       tailf:info "Flow observation metrics";
27740       description
27741         "Flow observation metrics";
27742       leaf point {
27743         tailf:info "Observation point ID";
27744         description
27745           "Observation point ID";
27746         type empty;
27747       }
27748     }
27749     leaf sampler {
27750       tailf:info "ID of the sampler";
27751       description
27752         "ID of the sampler";
27753       tailf:cli-full-command;
27754       type empty;
27755     }
27756   }
27757
27758   grouping flow-interface-grouping {
27759     container input {
27760       tailf:info "The input interface";
27761       description
27762         "The input interface";
27763       presence "true";
27764       leaf snmp {
27765         tailf:info "SNMP Index of the input interface";
27766         description
27767           "SNMP Index of the input interface";
27768         type empty;
27769       }
27770     }
27771     container output {
27772       tailf:info "The output interface";
27773       description
27774         "The output interface";
27775       presence "true";
27776       leaf snmp {
27777         tailf:info "SNMP Index of the output interface";
27778         description
27779           "SNMP Index of the output interface";
27780         type empty;
27781       }
27782     }
27783   }
27784
27785   grouping flow-ipv4-grouping {
27786     container destination {
27787       tailf:info "IPv4 destination address based fields";
27788       description
27789         "IPv4 destination address based fields";
27790       leaf address {
27791         tailf:info "IPv4 destination address";
27792         description
27793           "IPv4 destination address";
27794         tailf:cli-full-command;
27795         type empty;
27796       }
27797       container mask {
27798         tailf:info "IPv4 address mask for the IPv4 destination address";
27799         description
27800           "IPv4 address mask for the IPv4 destination address";
27801         presence "true";
27802         leaf minimum-mask {
27803           tailf:info "Provide a minimum mask for this field";
27804           description
27805             "Provide a minimum mask for this field";
27806           type uint8 {
27807             tailf:info "<1-32>;;Specify optional minimum mask";
27808             range "1..32";
27809           }
27810         }
27811       }
27812       container prefix {
27813         tailf:info "IPv4 address prefix for the IPv4 destination address";
27814         description
27815           "IPv4 address prefix for the IPv4 destination address";
27816         presence "true";
27817         leaf minimum-mask {
27818           tailf:info "Provide a minimum mask for this field";
27819           description
27820             "Provide a minimum mask for this field";
27821           type uint8 {
27822             tailf:info "<1-32>;;Specify optional minimum mask";
27823             range "1..32";
27824           }
27825         }
27826       }
27827     }
27828     leaf dscp {
27829       tailf:info "IPv4 DSCP (part of TOS)";
27830       description
27831         "IPv4 DSCP (part of TOS)";
27832       tailf:cli-full-command;
27833       type empty;
27834     }
27835     container fragmentation {
27836       tailf:info "IPv4 fragmentation fields";
27837       description
27838         "IPv4 fragmentation fields";
27839       leaf flags {
27840         tailf:info "IPv4 fragmentation flags";
27841         description
27842           "IPv4 fragmentation flags";
27843         tailf:cli-full-command;
27844         type empty;
27845       }
27846       leaf offset {
27847         tailf:info "IPv4 fragmentation offset";
27848         description
27849           "IPv4 fragmentation offset";
27850         tailf:cli-full-command;
27851         type empty;
27852       }
27853     }
27854     leaf header-length {
27855       tailf:info "IPv4 header length (IHL in 32 bit words)";
27856       description
27857         "IPv4 header length (IHL in 32 bit words)";
27858       tailf:cli-full-command;
27859       type empty;
27860     }
27861     leaf id {
27862       tailf:info "IPv4 ID";
27863       description
27864         "IPv4 ID";
27865       tailf:cli-full-command;
27866       type empty;
27867     }
27868     container length {
27869       tailf:info "IPv4 length fields";
27870       description
27871         "IPv4 length fields";
27872       leaf header {
27873         tailf:info "Length of the IPv4 header in bytes";
27874         description
27875           "Length of the IPv4 header in bytes";
27876         tailf:cli-full-command;
27877         type empty;
27878       }
27879       leaf payload {
27880         tailf:info "Length of the IPv4 payload in bytes";
27881         description
27882           "Length of the IPv4 payload in bytes";
27883         tailf:cli-full-command;
27884         type empty;
27885       }
27886       container total {
27887         tailf:info "Total length of the IPv4 header and payload in bytes";
27888         description
27889           "Total length of the IPv4 header and payload in bytes";
27890         presence "true";
27891         leaf maximum {
27892           tailf:info "Maximum total length in bytes";
27893           description
27894             "Maximum total length in bytes";
27895           tailf:cli-full-command;
27896           type empty;
27897         }
27898         leaf minimum {
27899           tailf:info "Minimum total length in bytes";
27900           description
27901             "Minimum total length in bytes";
27902           tailf:cli-full-command;
27903           type empty;
27904         }
27905       }
27906     }
27907     container option {
27908       tailf:info "IPv4 option fields";
27909       description
27910         "IPv4 option fields";
27911       leaf map {
27912         tailf:info "Bitmap of IPv4 options";
27913         description
27914           "Bitmap of IPv4 options";
27915         tailf:cli-full-command;
27916         type empty;
27917       }
27918     }
27919     leaf precedence {
27920       tailf:info "IPv4 precedence (part of TOS)";
27921       description
27922         "IPv4 precedence (part of TOS)";
27923       tailf:cli-full-command;
27924       type empty;
27925     }
27926     leaf protocol {
27927       tailf:info "IPv4 protocol";
27928       description
27929         "IPv4 protocol";
27930       tailf:cli-full-command;
27931       type empty;
27932     }
27933     container section {
27934       tailf:info "Part of the packet";
27935       description
27936         "Part of the packet";
27937       container header {
27938         tailf:info "Raw data starting at the IPv4 header";
27939         description
27940           "Raw data starting at the IPv4 header";
27941         leaf size {
27942           tailf:info "Specify the number of bytes to capture";
27943           description
27944             "Specify the number of bytes to capture";
27945           type uint16 {
27946             tailf:info "<1-1200>;;Number of bytes to capture";
27947             range "1..1200";
27948           }
27949         }
27950       }
27951       container payload {
27952         tailf:info "Raw data starting at the IPv4 payload";
27953         description
27954           "Raw data starting at the IPv4 payload";
27955         leaf size {
27956           tailf:info "Specify the number of bytes to capture";
27957           description
27958             "Specify the number of bytes to capture";
27959           type uint16 {
27960             tailf:info "<1-1200>;;Number of bytes to capture";
27961             range "1..1200";
27962           }
27963         }
27964       }
27965     }
27966     container source {
27967       tailf:info "IPv4 source address based fields";
27968       description
27969         "IPv4 source address based fields";
27970       leaf address {
27971         tailf:info "IPv4 source address";
27972         description
27973           "IPv4 source address";
27974         tailf:cli-full-command;
27975         type empty;
27976       }
27977       container mask {
27978         tailf:info "IPv4 address mask for the IPv4 source address";
27979         description
27980           "IPv4 address mask for the IPv4 source address";
27981         presence "true";
27982         leaf minimum-mask {
27983           tailf:info "Provide a minimum mask for this field";
27984           description
27985             "Provide a minimum mask for this field";
27986           type uint8 {
27987             tailf:info "<1-32>;;Specify optional minimum mask";
27988             range "1..32";
27989           }
27990         }
27991       }
27992       container prefix {
27993         tailf:info "IPv4 address prefix for the IPv4 source address";
27994         description
27995           "IPv4 address prefix for the IPv4 source address";
27996         presence "true";
27997         leaf minimum-mask {
27998           tailf:info "Provide a minimum mask for this field";
27999           description
28000             "Provide a minimum mask for this field";
28001           type uint8 {
28002             tailf:info "<1-32>;;Specify optional minimum mask";
28003             range "1..32";
28004           }
28005         }
28006       }
28007     }
28008     leaf tos {
28009       tailf:info "IPv4 type of service";
28010       description
28011         "IPv4 type of service";
28012       tailf:cli-full-command;
28013       type empty;
28014     }
28015     container total-length {
28016       tailf:info "IPv4 total length";
28017       description
28018         "IPv4 total length";
28019       presence "true";
28020       leaf maximum {
28021         tailf:info "Largest value for IPv4 length seen in the flow";
28022         description
28023           "Largest value for IPv4 length seen in the flow";
28024         tailf:cli-full-command;
28025         type empty;
28026       }
28027       leaf minimum {
28028         tailf:info "Smallest value for IPv4 length seen in the flow";
28029         description
28030           "Smallest value for IPv4 length seen in the flow";
28031         tailf:cli-full-command;
28032         type empty;
28033       }
28034     }
28035     container ttl {
28036       tailf:info "IPv4 TTL";
28037       description
28038         "IPv4 TTL";
28039       presence "true";
28040       leaf maximum {
28041         tailf:info "Largest value seen for TTL in the flow";
28042         description
28043           "Largest value seen for TTL in the flow";
28044         tailf:cli-full-command;
28045         type empty;
28046       }
28047       leaf minimum {
28048         tailf:info "Smallest value seen for TTL in the flow";
28049         description
28050           "Smallest value seen for TTL in the flow";
28051         tailf:cli-full-command;
28052         type empty;
28053       }
28054     }
28055     leaf version {
28056       tailf:info "IP version from IPv4 header";
28057       description
28058         "IP version from IPv4 header";
28059       tailf:cli-full-command;
28060       type empty;
28061     }
28062   }
28063
28064   grouping flow-ipv6-grouping {
28065     container destination {
28066       tailf:info "IPv6 destination address based fields";
28067       description
28068         "IPv6 destination address based fields";
28069       leaf address {
28070         tailf:info "IPv6 destination address";
28071         description
28072           "IPv6 destination address";
28073         tailf:cli-full-command;
28074         type empty;
28075       }
28076       container mask {
28077         tailf:info "IPv6 address mask for the IPv6 destination address";
28078         description
28079           "IPv6 address mask for the IPv6 destination address";
28080         presence "true";
28081         leaf minimum-mask {
28082           tailf:info "Provide a minimum mask for this field";
28083           description
28084             "Provide a minimum mask for this field";
28085           type uint8 {
28086             tailf:info "<1-128>;;Specify optional minimum mask";
28087             range "1..128";
28088           }
28089         }
28090       }
28091       container prefix {
28092         tailf:info "IPv6 address prefix for the IPv6 destination address";
28093         description
28094           "IPv6 address prefix for the IPv6 destination address";
28095         presence "true";
28096         leaf minimum-mask {
28097           tailf:info "Provide a minimum mask for this field";
28098           description
28099             "Provide a minimum mask for this field";
28100           type uint8 {
28101             tailf:info "<1-128>;;Specify optional minimum mask";
28102             range "1..128";
28103           }
28104         }
28105       }
28106     }
28107     leaf dscp {
28108       tailf:info "IPv6 DSCP (part of Traffic Class)";
28109       description
28110         "IPv6 DSCP (part of Traffic Class)";
28111       tailf:cli-full-command;
28112       type empty;
28113     }
28114     container extension {
28115       tailf:info "IPv6 extension header fields";
28116       description
28117         "IPv6 extension header fields";
28118       leaf map {
28119         tailf:info "Bitmap of IPv6 extension headers";
28120         description
28121           "Bitmap of IPv6 extension headers";
28122         tailf:cli-full-command;
28123         type empty;
28124       }
28125     }
28126     leaf flow-label {
28127       tailf:info "IPv6 flow label";
28128       description
28129         "IPv6 flow label";
28130       tailf:cli-full-command;
28131       type empty;
28132     }
28133     container fragmentation {
28134       tailf:info "IPv6 fragmentation fields";
28135       description
28136         "IPv6 fragmentation fields";
28137       leaf flags {
28138         tailf:info "IPv6 fragmentation flags";
28139         description
28140           "IPv6 fragmentation flags";
28141         tailf:cli-full-command;
28142         type empty;
28143       }
28144       leaf id {
28145         tailf:info "IPv6 fragmentation ID";
28146         description
28147           "IPv6 fragmentation ID";
28148         tailf:cli-full-command;
28149         type empty;
28150       }
28151       leaf offset {
28152         tailf:info "IPv6 fragmentation offset";
28153         description
28154           "IPv6 fragmentation offset";
28155         tailf:cli-full-command;
28156         type empty;
28157       }
28158     }
28159     container hop-limit {
28160       tailf:info "IPv6 hop limit";
28161       description
28162         "IPv6 hop limit";
28163       presence "true";
28164       leaf maximum {
28165         tailf:info "Largest value seen for hop-limit in the flow";
28166         description
28167           "Largest value seen for hop-limit in the flow";
28168         tailf:cli-full-command;
28169         type empty;
28170       }
28171       leaf minimum {
28172         tailf:info "Smallest value seen for hop-limit in the flow";
28173         description
28174           "Smallest value seen for hop-limit in the flow";
28175         tailf:cli-full-command;
28176         type empty;
28177       }
28178     }
28179     container length {
28180       tailf:info "IPv6 length fields";
28181       description
28182         "IPv6 length fields";
28183       leaf header {
28184         tailf:info "Length of the IPv6 header, not including any extension headers, in bytes";
28185         description
28186           "Length of the IPv6 header, not including any extension headers, in bytes";
28187         tailf:cli-full-command;
28188         type empty;
28189       }
28190       leaf payload {
28191         tailf:info "Length of the IPv6 payload, including any extension headers, in bytes";
28192         description
28193           "Length of the IPv6 payload, including any extension headers, in bytes";
28194         tailf:cli-full-command;
28195         type empty;
28196       }
28197       container total {
28198         tailf:info "Total length of the IPv6 header and payload in bytes";
28199         description
28200           "Total length of the IPv6 header and payload in bytes";
28201         presence "true";
28202         leaf maximum {
28203           tailf:info "Maximum total length in bytes";
28204           description
28205             "Maximum total length in bytes";
28206           tailf:cli-full-command;
28207           type empty;
28208         }
28209         leaf minimum {
28210           tailf:info "Minimum total length in bytes";
28211           description
28212             "Minimum total length in bytes";
28213           tailf:cli-full-command;
28214           type empty;
28215         }
28216       }
28217     }
28218     leaf next-header {
28219       tailf:info "The value of the next-header field in the IPv6 header";
28220       description
28221         "The value of the next-header field in the IPv6 header";
28222       tailf:cli-full-command;
28223       type empty;
28224     }
28225     leaf payload-length {
28226       tailf:info "Length of the IPv6 payload in bytes";
28227       description
28228         "Length of the IPv6 payload in bytes";
28229       tailf:cli-full-command;
28230       type empty;
28231     }
28232     leaf precedence {
28233       tailf:info "IPv6 precedence (part of Traffic Class)";
28234       description
28235         "IPv6 precedence (part of Traffic Class)";
28236       tailf:cli-full-command;
28237       type empty;
28238     }
28239     leaf protocol {
28240       tailf:info "IPv6 payload protocol";
28241       description
28242         "IPv6 payload protocol";
28243       tailf:cli-full-command;
28244       type empty;
28245     }
28246     container section {
28247       tailf:info "Part of the packet";
28248       description
28249         "Part of the packet";
28250       container header {
28251         tailf:info "Raw data starting at the IPv6 header";
28252         description
28253           "Raw data starting at the IPv6 header";
28254         leaf size {
28255           tailf:info "Specify the number of bytes to capture";
28256           description
28257             "Specify the number of bytes to capture";
28258           type uint16 {
28259             tailf:info "<1-1200>;;Number of bytes to capture";
28260             range "1..1200";
28261           }
28262         }
28263       }
28264       container payload {
28265         tailf:info "Raw data starting at the IPv6 payload";
28266         description
28267           "Raw data starting at the IPv6 payload";
28268         leaf size {
28269           tailf:info "Specify the number of bytes to capture";
28270           description
28271             "Specify the number of bytes to capture";
28272           type uint16 {
28273             tailf:info "<1-1200>;;Number of bytes to capture";
28274             range "1..1200";
28275           }
28276         }
28277       }
28278     }
28279     container source {
28280       tailf:info "IPv6 source address based fields";
28281       description
28282         "IPv6 source address based fields";
28283       leaf address {
28284         tailf:info "IPv6 source address";
28285         description
28286           "IPv6 source address";
28287         tailf:cli-full-command;
28288         type empty;
28289       }
28290       container mask {
28291         tailf:info "IPv6 address mask for the IPv6 source address";
28292         description
28293           "IPv6 address mask for the IPv6 source address";
28294         presence "true";
28295         leaf minimum-mask {
28296           tailf:info "Provide a minimum mask for this field";
28297           description
28298             "Provide a minimum mask for this field";
28299           type uint8 {
28300             tailf:info "<1-128>;;Specify optional minimum mask";
28301             range "1..128";
28302           }
28303         }
28304       }
28305       container prefix {
28306         tailf:info "IPv6 address prefix for the IPv6 source address";
28307         description
28308           "IPv6 address prefix for the IPv6 source address";
28309         presence "true";
28310         leaf minimum-mask {
28311           tailf:info "Provide a minimum mask for this field";
28312           description
28313             "Provide a minimum mask for this field";
28314           type uint8 {
28315             tailf:info "<1-128>;;Specify optional minimum mask";
28316             range "1..128";
28317           }
28318         }
28319       }
28320     }
28321     leaf traffic-class {
28322       tailf:info "IPv6 traffic class";
28323       description
28324         "IPv6 traffic class";
28325       tailf:cli-full-command;
28326       type empty;
28327     }
28328     leaf version {
28329       tailf:info "IP version from IPv6 header";
28330       description
28331         "IP version from IPv6 header";
28332       tailf:cli-full-command;
28333       type empty;
28334     }
28335   }
28336
28337   grouping flow-mpls-grouping {
28338     container label {
28339       tailf:info "MPLS label details";
28340       description
28341         "MPLS label details";
28342       container one {
28343         tailf:info "MPLS label 1 information";
28344         description
28345           "MPLS label 1 information";
28346         tailf:alt-name "1";
28347         leaf details {
28348           tailf:info "MPLS label 1 details";
28349           description
28350             "MPLS label 1 details";
28351           tailf:cli-full-command;
28352           type empty;
28353         }
28354         leaf exp {
28355           tailf:info "MPLS EXP field from the last label that was pushed";
28356           description
28357             "MPLS EXP field from the last label that was pushed";
28358           tailf:cli-full-command;
28359           type empty;
28360         }
28361         leaf ttl {
28362           tailf:info "MPLS TTL field from the last label that was pushed";
28363           description
28364             "MPLS TTL field from the last label that was pushed";
28365           tailf:cli-full-command;
28366           type empty;
28367         }
28368         leaf type {
28369           tailf:info "MPLS label type of the last label that was pushed";
28370           description
28371             "MPLS label type of the last label that was pushed";
28372           tailf:cli-full-command;
28373           type empty;
28374         }
28375       }
28376       container two {
28377         tailf:info "MPLS label 2 information";
28378         description
28379           "MPLS label 2 information";
28380         tailf:alt-name "2";
28381         leaf details {
28382           tailf:info "MPLS label 2 details";
28383           description
28384             "MPLS label 2 details";
28385           tailf:cli-full-command;
28386           type empty;
28387         }
28388       }
28389       container three {
28390         tailf:info "MPLS label 3 information";
28391         description
28392           "MPLS label 3 information";
28393         tailf:alt-name "3";
28394         leaf details {
28395           tailf:info "MPLS label 3 details";
28396           description
28397             "MPLS label 3 details";
28398           tailf:cli-full-command;
28399           type empty;
28400         }
28401       }
28402       container four {
28403         tailf:info "MPLS label 4 information";
28404         description
28405           "MPLS label 4 information";
28406         tailf:alt-name "4";
28407         leaf details {
28408           tailf:info "MPLS label 4 details";
28409           description
28410             "MPLS label 4 details";
28411           tailf:cli-full-command;
28412           type empty;
28413         }
28414       }
28415       container five {
28416         tailf:info "MPLS label 5 information";
28417         description
28418           "MPLS label 5 information";
28419         tailf:alt-name "5";
28420         leaf details {
28421           tailf:info "MPLS label 5 details";
28422           description
28423             "MPLS label 5 details";
28424           tailf:cli-full-command;
28425           type empty;
28426         }
28427       }
28428       container six {
28429         tailf:info "MPLS label 6 information";
28430         description
28431           "MPLS label 6 information";
28432         tailf:alt-name "6";
28433         leaf details {
28434           tailf:info "MPLS label 6 details";
28435           description
28436             "MPLS label 6 details";
28437           tailf:cli-full-command;
28438           type empty;
28439         }
28440       }
28441     }
28442   }
28443
28444   grouping flow-network-grouping {
28445     container delay {
28446       tailf:info "network delay metrics";
28447       description
28448         "network delay metrics";
28449       leaf sample {
28450         tailf:info "The number of samples of roundtrip delay";
28451         description
28452           "The number of samples of roundtrip delay";
28453         tailf:cli-full-command;
28454         type empty;
28455       }
28456       leaf sum {
28457         tailf:info "The sum of roundtrip delay";
28458         description
28459           "The sum of roundtrip delay";
28460         tailf:cli-full-command;
28461         type empty;
28462       }
28463     }
28464   }
28465
28466   grouping flow-pfr-grouping {
28467     container label {
28468       tailf:info "PfR label metrics";
28469       description
28470         "PfR label metrics";
28471       leaf identifier {
28472         tailf:info "pfr label id";
28473         description
28474           "pfr label id";
28475         tailf:cli-full-command;
28476         type empty;
28477       }
28478     }
28479     container one-way-delay {
28480       tailf:info "The packet transmission delay between specified nodes";
28481       description
28482         "The packet transmission delay between specified nodes";
28483       leaf samples {
28484         tailf:info "Total number of one-way-delay samples";
28485         description
28486           "Total number of one-way-delay samples";
28487         tailf:cli-full-command;
28488         type empty;
28489       }
28490       leaf sum {
28491         tailf:info "The packet transmission delay sum between specified nodes";
28492         description
28493           "The packet transmission delay sum between specified nodes";
28494         tailf:cli-full-command;
28495         type empty;
28496       }
28497     }
28498     container service {
28499       tailf:info "PfR service metrics";
28500       description
28501         "PfR service metrics";
28502       tailf:cli-sequence-commands;
28503       tailf:cli-compact-syntax;
28504       leaf provider {
28505         tailf:info "PfR service provider metrics";
28506         description
28507           "PfR service provider metrics";
28508         type empty;
28509       }
28510       leaf tag {
28511         tailf:info "PfR service provider tag metrics";
28512         description
28513           "PfR service provider tag metrics";
28514         type empty;
28515       }
28516       leaf identifier {
28517         tailf:info "PfR service provider tag";
28518         description
28519           "PfR service provider tag";
28520         type empty;
28521       }
28522     }
28523     container site {
28524       tailf:info "PfR site  metrics";
28525       description
28526         "PfR site  metrics";
28527       container destination {
28528         tailf:info "PfR site destination metrics";
28529         description
28530           "PfR site destination metrics";
28531         container id {
28532           tailf:info "PfR site destination ID metrics";
28533           description
28534             "PfR site destination ID metrics";
28535           leaf ipv4 {
28536             tailf:info "site ID of the packet destination";
28537             description
28538               "site ID of the packet destination";
28539             tailf:cli-full-command;
28540             type empty;
28541           }
28542         }
28543         container prefix {
28544           tailf:info "PfR site prefix of the packet destination";
28545           description
28546             "PfR site prefix of the packet destination";
28547           leaf ipv4 {
28548             tailf:info "site prefix of the packet destination";
28549             description
28550               "site prefix of the packet destination";
28551             tailf:cli-full-command;
28552             type empty;
28553           }
28554           container mask {
28555             tailf:info "PfR site prefix mask of the packet destination";
28556             description
28557               "PfR site prefix mask of the packet destination";
28558             leaf ipv4 {
28559               tailf:info "site prefix mask of the packet destination";
28560               description
28561                 "site prefix mask of the packet destination";
28562               tailf:cli-full-command;
28563               type empty;
28564             }
28565           }
28566         }
28567       }
28568       container source {
28569         tailf:info "PfR site source metrics";
28570         description
28571           "PfR site source metrics";
28572         container id {
28573           tailf:info "PfR site source ID metrics";
28574           description
28575             "PfR site source ID metrics";
28576           leaf ipv4 {
28577             tailf:info "site ID of the packet source";
28578             description
28579               "site ID of the packet source";
28580             tailf:cli-full-command;
28581             type empty;
28582           }
28583         }
28584         container prefix {
28585           tailf:info "PfR site prefix of the packet source";
28586           description
28587             "PfR site prefix of the packet source";
28588           leaf ipv4 {
28589             tailf:info "site prefix of the packet source";
28590             description
28591               "site prefix of the packet source";
28592             tailf:cli-full-command;
28593             type empty;
28594           }
28595           container mask {
28596             tailf:info "PfR site prefix mask of the packet source";
28597             description
28598               "PfR site prefix mask of the packet source";
28599             leaf ipv4 {
28600               tailf:info "site prefix mask of the packet source";
28601               description
28602                 "site prefix mask of the packet source";
28603               tailf:cli-full-command;
28604               type empty;
28605             }
28606           }
28607         }
28608       }
28609     }
28610   }
28611
28612   grouping flow-policy-grouping {
28613     container performance-monitor {
28614       tailf:info "Performance-monitor policy related metrics";
28615       description
28616         "Performance-monitor policy related metrics";
28617       container classification {
28618         tailf:info "Classification metrics";
28619         description
28620           "Classification metrics";
28621         leaf hierarchy {
28622           tailf:info "Performance-monitor class hierarchy";
28623           description
28624             "Performance-monitor class hierarchy";
28625           tailf:cli-full-command;
28626           type empty;
28627         }
28628       }
28629     }
28630     container qos {
28631       tailf:info "QoS policy related metrics";
28632       description
28633         "QoS policy related metrics";
28634       container classification {
28635         tailf:info "Classification metrics";
28636         description
28637           "Classification metrics";
28638         leaf hierarchy {
28639           tailf:info "QoS class hierarchy";
28640           description
28641             "QoS class hierarchy";
28642           tailf:cli-full-command;
28643           type empty;
28644         }
28645       }
28646       container queue {
28647         tailf:info "Queue metrics";
28648         description
28649           "Queue metrics";
28650         leaf drops {
28651           tailf:info "QoS queue drops";
28652           description
28653             "QoS queue drops";
28654           when "../../../../../collect";
28655           tailf:cli-full-command;
28656           type empty;
28657         }
28658         leaf index {
28659           tailf:info "QoS queue index";
28660           description
28661             "QoS queue index";
28662           tailf:cli-full-command;
28663           type empty;
28664         }
28665       }
28666     }
28667   }
28668
28669   grouping flow-routing-grouping {
28670     container destination {
28671       tailf:info "Destination routing attributes";
28672       description
28673         "Destination routing attributes";
28674       container as {
28675         tailf:info "AS number of the destination network";
28676         description
28677           "AS number of the destination network";
28678         presence "true";
28679         leaf as4-octet {
28680           tailf:alt-name "4-octet";
28681           tailf:info "4 octet AS number of the destination network";
28682           description
28683             "4 octet AS number of the destination network";
28684           tailf:cli-full-command;
28685           type empty;
28686         }
28687         container peer {
28688           tailf:info "AS number of the peer network we will forward to";
28689           description
28690             "AS number of the peer network we will forward to";
28691           presence "true";
28692           leaf peer4-octet {
28693             tailf:alt-name "4-octet";
28694             tailf:info "4 octet AS number of the peer network we will forward to";
28695             description
28696               "4 octet AS number of the peer network we will forward to";
28697             tailf:cli-full-command;
28698             type empty;
28699           }
28700         }
28701       }
28702       leaf traffic-index {
28703         tailf:info "BGP destination traffic index";
28704         description
28705           "BGP destination traffic index";
28706         tailf:cli-full-command;
28707         type empty;
28708       }
28709     }
28710     container forwarding-status {
28711       tailf:info "Forwarding status of the packet";
28712       description
28713         "Forwarding status of the packet";
28714       presence "true";
28715       leaf reason {
28716         tailf:info "Forwarding status reason of the packet";
28717         description
28718           "Forwarding status reason of the packet";
28719         tailf:cli-full-command;
28720         type empty;
28721       }
28722     }
28723     leaf is-multicast {
28724       tailf:info "Indicates if this is multicast";
28725       description
28726         "Indicates if this is multicast";
28727       tailf:cli-full-command;
28728       type empty;
28729     }
28730     container next-hop {
28731       tailf:info "Information regarding the next hop";
28732       description
28733         "Information regarding the next hop";
28734       container address {
28735         tailf:info "IP address of the next hop";
28736         description
28737           "IP address of the next hop";
28738         container ipv4 {
28739           tailf:info "IPv4 address of the next hop";
28740           description
28741             "IPv4 address of the next hop";
28742           presence "true";
28743           leaf bgp {
28744             tailf:info "IPv4 address of the BGP next hop";
28745             description
28746               "IPv4 address of the BGP next hop";
28747             tailf:cli-full-command;
28748             type empty;
28749           }
28750         }
28751         container ipv6 {
28752           tailf:info "IPv6 address of the next hop";
28753           description
28754             "IPv6 address of the next hop";
28755           presence "true";
28756           leaf bgp {
28757             tailf:info "IPv6 address of the BGP next hop";
28758             description
28759               "IPv6 address of the BGP next hop";
28760             tailf:cli-full-command;
28761             type empty;
28762           }
28763         }
28764       }
28765     }
28766     container pw {
28767       tailf:info "Pseudowire fields";
28768       description
28769         "Pseudowire fields";
28770       container destination {
28771         tailf:info "Pseudowire destination";
28772         description
28773           "Pseudowire destination";
28774         leaf address {
28775           tailf:info "Pseudowire destination address";
28776           description
28777             "Pseudowire destination address";
28778           tailf:cli-full-command;
28779           type empty;
28780         }
28781       }
28782     }
28783     container source {
28784       tailf:info "Source routing attributes";
28785       description
28786         "Source routing attributes";
28787       container as {
28788         tailf:info "AS number of the original network";
28789         description
28790           "AS number of the original network";
28791         presence "true";
28792         leaf orig4-octet {
28793           tailf:alt-name "4-octet";
28794           tailf:info "4 octet AS number of the original network";
28795           description
28796             "4 octet AS number of the original network";
28797           tailf:cli-full-command;
28798           type empty;
28799         }
28800         container peer {
28801           tailf:info "AS number of the peer network where the packet came from";
28802           description
28803             "AS number of the peer network where the packet came from";
28804           presence "true";
28805           leaf peer4-octet {
28806             tailf:alt-name "4-octet";
28807             tailf:info "4 octet AS number of the peer network where the packet came from";
28808             description
28809               "4 octet AS number of the peer network where the packet came from";
28810             tailf:cli-full-command;
28811             type empty;
28812           }
28813         }
28814       }
28815       leaf traffic-index {
28816         tailf:info "BGP source traffic index";
28817         description
28818           "BGP source traffic index";
28819         tailf:cli-full-command;
28820         type empty;
28821       }
28822     }
28823     container vrf {
28824       tailf:info "VRF routing attributes";
28825       description
28826         "VRF routing attributes";
28827       leaf input {
28828         tailf:info "VRF ID for incoming packet";
28829         description
28830           "VRF ID for incoming packet";
28831         tailf:cli-full-command;
28832         type empty;
28833       }
28834       leaf output {
28835         tailf:info "VRF ID for outgoing packet";
28836         description
28837           "VRF ID for outgoing packet";
28838         tailf:cli-full-command;
28839         type empty;
28840       }
28841     }
28842   }
28843
28844   grouping flow-services-grouping {
28845     container waas {
28846       tailf:info "WAAS (Wide Area Application Services) metrics";
28847       description
28848         "WAAS (Wide Area Application Services) metrics";
28849       leaf passthrough-reason {
28850         tailf:info "WAAS passthrough reason";
28851         description
28852           "WAAS passthrough reason";
28853         when "../../../../collect";
28854         tailf:cli-full-command;
28855         type empty;
28856       }
28857       container segment {
28858         tailf:info "WAAS optimization segment";
28859         description
28860           "WAAS optimization segment";
28861         presence "true";
28862         leaf account-on-resolution {
28863           tailf:info "Account on resolution";
28864           description
28865             "Account on resolution";
28866           tailf:cli-full-command;
28867           type empty;
28868         }
28869       }
28870     }
28871   }
28872
28873   grouping flow-transport-common-grouping {
28874     leaf destination-port {
28875       tailf:info "Transport destination port";
28876       description
28877         "Transport destination port";
28878       tailf:cli-full-command;
28879       type empty;
28880     }
28881     container icmp {
28882       tailf:info "ICMP fields";
28883       description
28884         "ICMP fields";
28885       container ipv4 {
28886         tailf:info "IPv4 ICMP fields";
28887         description
28888           "IPv4 ICMP fields";
28889         leaf code {
28890           tailf:info "IPv4 ICMP code";
28891           description
28892             "IPv4 ICMP code";
28893           tailf:cli-full-command;
28894           type empty;
28895         }
28896         leaf type {
28897           tailf:info "IPv4 ICMP type";
28898           description
28899             "IPv4 ICMP type";
28900           tailf:cli-full-command;
28901           type empty;
28902         }
28903       }
28904       container ipv6 {
28905         tailf:info "IPv6 ICMP fields";
28906         description
28907           "IPv6 ICMP fields";
28908         leaf code {
28909           tailf:info "IPv6 ICMP code";
28910           description
28911             "IPv6 ICMP code";
28912           tailf:cli-full-command;
28913           type empty;
28914         }
28915         leaf type {
28916           tailf:info "IPv6 ICMP type";
28917           description
28918             "IPv6 ICMP type";
28919           tailf:cli-full-command;
28920           type empty;
28921         }
28922       }
28923     }
28924     container igmp {
28925       tailf:info "IGMP fields";
28926       description
28927         "IGMP fields";
28928       leaf type {
28929         tailf:info "IGMP type";
28930         description
28931           "IGMP type";
28932         tailf:cli-full-command;
28933         type empty;
28934       }
28935     }
28936     leaf source-port {
28937       tailf:info "Transport source port";
28938       description
28939         "Transport source port";
28940       tailf:cli-full-command;
28941       type empty;
28942     }
28943     container tcp {
28944       tailf:info "TCP fields";
28945       description
28946         "TCP fields";
28947       leaf acknowledgement-number {
28948         tailf:info "TCP acknowledgement number";
28949         description
28950           "TCP acknowledgement number";
28951         tailf:cli-full-command;
28952         type empty;
28953       }
28954       leaf destination-port {
28955         tailf:info "TCP destination port";
28956         description
28957           "TCP destination port";
28958         tailf:cli-full-command;
28959         type empty;
28960       }
28961       container flags {
28962         tailf:info "TCP flags";
28963         description
28964           "TCP flags";
28965         tailf:cli-compact-syntax;
28966         presence "true";
28967         leaf ack {
28968           tailf:info "TCP acknowledgement flag";
28969           description
28970             "TCP acknowledgement flag";
28971           type empty;
28972         }
28973         leaf cwr {
28974           tailf:info "TCP congestion window reduced flag";
28975           description
28976             "TCP congestion window reduced flag";
28977           type empty;
28978         }
28979         leaf ece {
28980           tailf:info "TCP ECN echo flag";
28981           description
28982             "TCP ECN echo flag";
28983           type empty;
28984         }
28985         leaf fin {
28986           tailf:info "TCP finish flag";
28987           description
28988             "TCP finish flag";
28989           type empty;
28990         }
28991         leaf psh {
28992           tailf:info "TCP push flag";
28993           description
28994             "TCP push flag";
28995           type empty;
28996         }
28997         leaf rst {
28998           tailf:info "TCP reset flag";
28999           description
29000             "TCP reset flag";
29001           type empty;
29002         }
29003         leaf syn {
29004           tailf:info "TCP synchronise flag";
29005           description
29006             "TCP synchronise flag";
29007           type empty;
29008         }
29009         leaf urg {
29010           tailf:info "TCP urgent flag";
29011           description
29012             "TCP urgent flag";
29013           type empty;
29014         }
29015       }
29016       container flow {
29017         tailf:info "TCP flow";
29018         description
29019           "TCP flow";
29020         when "../../../../collect";
29021         leaf count {
29022           tailf:info "Number of tcp flows";
29023           description
29024             "Number of tcp flows";
29025           tailf:cli-full-command;
29026           type empty;
29027         }
29028       }
29029       leaf header-length {
29030         tailf:info "TCP header length (in 32 bit words)";
29031         description
29032           "TCP header length (in 32 bit words)";
29033         tailf:cli-full-command;
29034         type empty;
29035       }
29036       leaf maximum-segment-size {
29037         tailf:info "The maximum size of TCP segment";
29038         description
29039           "The maximum size of TCP segment";
29040         tailf:cli-full-command;
29041         type empty;
29042       }
29043       container option {
29044         tailf:info "TCP option fields";
29045         description
29046           "TCP option fields";
29047         container map {
29048           tailf:info "Bitmap of TCP options";
29049           description
29050             "Bitmap of TCP options";
29051           presence "true";
29052           leaf long {
29053             tailf:info "Extended bitmap of TCP options";
29054             description
29055               "Extended bitmap of TCP options";
29056             tailf:cli-full-command;
29057             type empty;
29058           }
29059         }
29060       }
29061       leaf sequence-number {
29062         tailf:info "TCP sequence number";
29063         description
29064           "TCP sequence number";
29065         tailf:cli-full-command;
29066         type empty;
29067       }
29068       leaf source-port {
29069         tailf:info "TCP source port";
29070         description
29071           "TCP source port";
29072         tailf:cli-full-command;
29073         type empty;
29074       }
29075       leaf urgent-pointer {
29076         tailf:info "TCP urgent pointer";
29077         description
29078           "TCP urgent pointer";
29079         tailf:cli-full-command;
29080         type empty;
29081       }
29082       container window-size {
29083         tailf:info "TCP window size";
29084         description
29085           "TCP window size";
29086         presence "true";
29087         container average {
29088           tailf:info "The average size of TCP window";
29089           description
29090             "The average size of TCP window";
29091           presence "true";
29092           leaf sum {
29093             tailf:info "The sum of per flow TCP window average size";
29094             description
29095               "The sum of per flow TCP window average size";
29096             tailf:cli-full-command;
29097             type empty;
29098           }
29099         }
29100         leaf maximum {
29101           tailf:info "The maximum size of TCP window";
29102           description
29103             "The maximum size of TCP window";
29104           tailf:cli-full-command;
29105           type empty;
29106         }
29107         leaf minimum {
29108           tailf:info "The minimum size of TCP window";
29109           description
29110             "The minimum size of TCP window";
29111           tailf:cli-full-command;
29112           type empty;
29113         }
29114         leaf sum {
29115           tailf:info "The sum of TCP window size";
29116           description
29117             "The sum of TCP window size";
29118           tailf:cli-full-command;
29119           type empty;
29120         }
29121       }
29122     }
29123     container udp {
29124       tailf:info "UDP fields";
29125       description
29126         "UDP fields";
29127       leaf destination-port {
29128         tailf:info "UDP destination port";
29129         description
29130           "UDP destination port";
29131         tailf:cli-full-command;
29132         type empty;
29133       }
29134       leaf message-length {
29135         tailf:info "UDP message length";
29136         description
29137           "UDP message length";
29138         tailf:cli-full-command;
29139         type empty;
29140       }
29141       leaf source-port {
29142         tailf:info "UDP source port";
29143         description
29144           "UDP source port";
29145         tailf:cli-full-command;
29146         type empty;
29147       }
29148     }
29149   }
29150
29151   grouping flow-record-collect-grouping {
29152     container collect {
29153       tailf:info "Specify a non-key field";
29154       description
29155         "Specify a non-key field";
29156       container application {
29157         tailf:info "Application fields";
29158         description
29159           "Application fields";
29160         container dns {
29161           tailf:info "Domain Name Server lookup";
29162           description
29163             "Domain Name Server lookup";
29164           leaf domain-name {
29165             tailf:info "Domain name";
29166             description
29167               "Domain name";
29168             type empty;
29169           }
29170         }
29171         container http {
29172           tailf:info "World Wide Web traffic";
29173           description
29174             "World Wide Web traffic";
29175           leaf host {
29176             tailf:info "Host name of Origin Server containing resource";
29177             description
29178               "Host name of Origin Server containing resource";
29179             tailf:cli-full-command;
29180             type empty;
29181           }
29182           leaf referer {
29183             tailf:info "Address the resource request was obtained from";
29184             description
29185               "Address the resource request was obtained from";
29186             tailf:cli-full-command;
29187             type empty;
29188           }
29189           container uri {
29190             tailf:info "List of URIs and associated hit counts";
29191             description
29192               "List of URIs and associated hit counts";
29193             leaf statistics {
29194               tailf:info "Collect URI statistics";
29195               description
29196                 "Collect URI statistics";
29197               tailf:cli-full-command;
29198               type empty;
29199             }
29200           }
29201           leaf url {
29202             tailf:info "Uniform Resource Locator path";
29203             description
29204               "Uniform Resource Locator path";
29205             tailf:cli-full-command;
29206             type empty;
29207           }
29208           leaf user-agent {
29209             tailf:info "Software used by agent sending the request";
29210             description
29211               "Software used by agent sending the request";
29212             tailf:cli-full-command;
29213             type empty;
29214           }
29215         }
29216         container media {
29217           tailf:info "Media fields";
29218           description
29219             "Media fields";
29220           container bytes {
29221             tailf:info "Media fields";
29222             description
29223               "Media fields";
29224             container counter {
29225               tailf:info "A count of the number of bytes of media payload";
29226               description
29227                 "A count of the number of bytes of media payload";
29228               presence "true";
29229               leaf long {
29230                 tailf:info "A count of the number of bytes of media payload (64 bit counter)";
29231                 description
29232                   "A count of the number of bytes of media payload (64 bit counter)";
29233                 type empty;
29234               }
29235             }
29236             container rate {
29237               tailf:info "Byte rate for the media stream";
29238               description
29239                 "Byte rate for the media stream";
29240               presence "true";
29241               container per-flow {
29242                 tailf:info "Average media byte rate across flows";
29243                 description
29244                   "Average media byte rate across flows";
29245                 presence "true";
29246                 leaf max {
29247                   tailf:info "Maximum byte rate in the media stream";
29248                   description
29249                     "Maximum byte rate in the media stream";
29250                   tailf:cli-full-command;
29251                   type empty;
29252                 }
29253                 leaf min {
29254                   tailf:info "Minumun byte rate in the media stream";
29255                   description
29256                     "Minumun byte rate in the media stream";
29257                   tailf:cli-full-command;
29258                   type empty;
29259                 }
29260               }
29261             }
29262           }
29263           leaf event {
29264             tailf:info "Flags indicating media events";
29265             description
29266               "Flags indicating media events";
29267             tailf:cli-full-command;
29268             type empty;
29269           }
29270           container packets {
29271             tailf:info "Media fields";
29272             description
29273               "Media fields";
29274             container counter {
29275               tailf:info "A count of the number of packets with a media payload";
29276               description
29277                 "A count of the number of packets with a media payload";
29278               presence "true";
29279               leaf long {
29280                 tailf:info "A count of the number of packets with a media payload (64 bit counter)";
29281                 description
29282                   "A count of the number of packets with a media payload (64 bit counter)";
29283                 type empty;
29284               }
29285             }
29286             container rate {
29287               tailf:info "Packet rate for the media stream";
29288               description
29289                 "Packet rate for the media stream";
29290               presence "true";
29291               container variation {
29292                 tailf:info "Variation in packet rate from configured expected rate";
29293                 description
29294                   "Variation in packet rate from configured expected rate";
29295                 presence "true";
29296                 leaf max {
29297                   tailf:info "Max variation in packet rate from configured expected rate";
29298                   description
29299                     "Max variation in packet rate from configured expected rate";
29300                   tailf:cli-full-command;
29301                   type empty;
29302                 }
29303                 leaf min {
29304                   tailf:info "Variation in packet rate from configured expected rate";
29305                   description
29306                     "Variation in packet rate from configured expected rate";
29307                   tailf:cli-full-command;
29308                   type empty;
29309                 }
29310                 leaf sum {
29311                   tailf:info "The sum of media rate variation from the configured rate for the RTP stream";
29312                   description
29313                     "The sum of media rate variation from the configured rate for the RTP stream";
29314                   tailf:cli-full-command;
29315                   type empty;
29316                 }
29317               }
29318             }
29319           }
29320         }
29321         uses flow-name-grouping;
29322         container nntp {
29323           tailf:info "Network news transfer protocol";
29324           description
29325             "Network news transfer protocol";
29326           leaf group-name {
29327             tailf:info "NNTP Group name";
29328             description
29329               "NNTP Group name";
29330             type empty;
29331           }
29332         }
29333         container pop3 {
29334           tailf:info "Post Office Protocol 3";
29335           description
29336             "Post Office Protocol 3";
29337           leaf server {
29338             tailf:info "POP3 Server Name";
29339             description
29340               "POP3 Server Name";
29341             type empty;
29342           }
29343         }
29344         container rtmp {
29345           tailf:info "Real Time Messaging Protocol";
29346           description
29347             "Real Time Messaging Protocol";
29348           leaf pageUrl {
29349             tailf:info "RTMP page url address";
29350             description
29351               "RTMP page url address";
29352             type empty;
29353           }
29354         }
29355         container rtsp {
29356           tailf:info "Real Time Streaming Protocol";
29357           description
29358             "Real Time Streaming Protocol";
29359           leaf host {
29360             tailf:info "RTSP Host Name";
29361             description
29362               "RTSP Host Name";
29363             type empty;
29364           }
29365         }
29366         container sip {
29367           tailf:info "Session Initiation Protocol";
29368           description
29369             "Session Initiation Protocol";
29370           leaf destination {
29371             tailf:info "The destination domain of SIP transactions";
29372             description
29373               "The destination domain of SIP transactions";
29374             tailf:cli-full-command;
29375             type empty;
29376           }
29377           leaf source {
29378             tailf:info "The source domain of SIP transactions";
29379             description
29380               "The source domain of SIP transactions";
29381             tailf:cli-full-command;
29382             type empty;
29383           }
29384         }
29385         container smtp {
29386           tailf:info "Simple Mail Transfer Protocol";
29387           description
29388             "Simple Mail Transfer Protocol";
29389           leaf sender {
29390             tailf:info "SMTP Sender Mail Address";
29391             description
29392               "SMTP Sender Mail Address";
29393             tailf:cli-full-command;
29394             type empty;
29395           }
29396           leaf server {
29397             tailf:info "SMTP Server Name";
29398             description
29399               "SMTP Server Name";
29400             tailf:cli-full-command;
29401             type empty;
29402           }
29403         }
29404         container ssl {
29405           tailf:info "Secure Socket Layer Protocol";
29406           description
29407             "Secure Socket Layer Protocol";
29408           leaf common-name {
29409             tailf:info "Certificate Common Name (CN)";
29410             description
29411               "Certificate Common Name (CN)";
29412             type empty;
29413           }
29414         }
29415         uses flow-vendor-version-grouping;
29416       }
29417       container connection {
29418         tailf:info "Connection fields";
29419         description
29420           "Connection fields";
29421         container client {
29422           tailf:info "Client side (flow initiator) related metrics";
29423           description
29424             "Client side (flow initiator) related metrics";
29425           leaf all {
29426             tailf:info "All non-key client metrics";
29427             description
29428               "All non-key client metrics";
29429             tailf:cli-full-command;
29430             type empty;
29431           }
29432           container counter {
29433             tailf:info "Client side counter metrics";
29434             description
29435               "Client side counter metrics";
29436             container bytes {
29437               tailf:info "Number of bytes sent by the client";
29438               description
29439                 "Number of bytes sent by the client";
29440               leaf long {
29441                 tailf:info "64 bits counter";
29442                 description
29443                   "64 bits counter";
29444                 tailf:cli-full-command;
29445                 type empty;
29446               }
29447               container network {
29448                 tailf:info "Number of bytes sent by the client";
29449                 description
29450                   "Number of bytes sent by the client";
29451                 leaf long {
29452                   tailf:info "Total number of bytes transmitted by the client";
29453                   description
29454                     "Total number of bytes transmitted by the client";
29455                   tailf:cli-full-command;
29456                   type empty;
29457                 }
29458               }
29459               leaf retransmitted {
29460                 tailf:info "Number of bytes retransmitted by the client";
29461                 description
29462                   "Number of bytes retransmitted by the client";
29463                 tailf:cli-full-command;
29464                 type empty;
29465               }
29466               container transport {
29467                 tailf:info "Number of bytes sent by the client";
29468                 description
29469                   "Number of bytes sent by the client";
29470                 leaf long {
29471                   tailf:info "64 bit counter";
29472                   description
29473                     "64 bit counter";
29474                   tailf:cli-full-command;
29475                   type empty;
29476                 }
29477               }
29478             }
29479             container packets {
29480               tailf:info "Number of packets sent by the client";
29481               description
29482                 "Number of packets sent by the client";
29483               leaf long {
29484                 tailf:info "64 bits counter";
29485                 description
29486                   "64 bits counter";
29487                 tailf:cli-full-command;
29488                 type empty;
29489               }
29490               leaf retransmitted {
29491                 tailf:info "Number of packets retransmitted by the client";
29492                 description
29493                   "Number of packets retransmitted by the client";
29494                 tailf:cli-full-command;
29495                 type empty;
29496               }
29497             }
29498           }
29499           uses flow-client-ipv4-ipv6-transport-grouping;
29500         }
29501         container delay {
29502           tailf:info "Connection delay metrics";
29503           description
29504             "Connection delay metrics";
29505           leaf all {
29506             tailf:info "All non-key client metrics";
29507             description
29508               "All non-key client metrics";
29509             tailf:cli-full-command;
29510             type empty;
29511           }
29512           container application {
29513             tailf:info "Application time metrics";
29514             description
29515               "Application time metrics";
29516             leaf max {
29517               tailf:info "Maximum application response time";
29518               description
29519                 "Maximum application response time";
29520               tailf:cli-full-command;
29521               type empty;
29522             }
29523             leaf min {
29524               tailf:info "Minimum application response time";
29525               description
29526                 "Minimum application response time";
29527               tailf:cli-full-command;
29528               type empty;
29529             }
29530             leaf sum {
29531               tailf:info "Total application response time";
29532               description
29533                 "Total application response time";
29534               tailf:cli-full-command;
29535               type empty;
29536             }
29537           }
29538           container network {
29539             tailf:info "Network time metrics";
29540             description
29541               "Network time metrics";
29542             container client-to-server {
29543               tailf:info "RTT between the client and the server";
29544               description
29545                 "RTT between the client and the server";
29546               leaf max {
29547                 tailf:info "Maximum network time";
29548                 description
29549                   "Maximum network time";
29550                 tailf:cli-full-command;
29551                 type empty;
29552               }
29553               leaf min {
29554                 tailf:info "Minimum network time";
29555                 description
29556                   "Minimum network time";
29557                 tailf:cli-full-command;
29558                 type empty;
29559               }
29560               leaf num-samples {
29561                 tailf:info "The number of CSND samples";
29562                 description
29563                   "The number of CSND samples";
29564                 tailf:cli-full-command;
29565                 type empty;
29566               }
29567               leaf sum {
29568                 tailf:info "Total network time";
29569                 description
29570                   "Total network time";
29571                 tailf:cli-full-command;
29572                 type empty;
29573               }
29574             }
29575             container long-lived {
29576               tailf:info "Long-lived network delay metrics";
29577               description
29578                 "Long-lived network delay metrics";
29579               container client-to-serve {
29580                 tailf:info "Long-lived network delay client-to-server metrics";
29581                 description
29582                   "Long-lived network delay client-to-server metrics";
29583                 leaf sum {
29584                   tailf:info "Total network time";
29585                   description
29586                     "Total network time";
29587                   type empty;
29588                 }
29589               }
29590               container to-client {
29591                 tailf:info "Long-lived network delay to-client metrics";
29592                 description
29593                   "Long-lived network delay to-client metrics";
29594                 leaf sum {
29595                   tailf:info "Total network time";
29596                   description
29597                     "Total network time";
29598                   type empty;
29599                 }
29600               }
29601               container to-serve {
29602                 tailf:info "Long-lived network delay to-server metrics";
29603                 description
29604                   "Long-lived network delay to-server metrics";
29605                 leaf sum {
29606                   tailf:info "Total network time";
29607                   description
29608                     "Total network time";
29609                   type empty;
29610                 }
29611               }
29612             }
29613             container to-client {
29614               tailf:info "RTT from observation point to the client";
29615               description
29616                 "RTT from observation point to the client";
29617               leaf max {
29618                 tailf:info "Maximum network time";
29619                 description
29620                   "Maximum network time";
29621                 tailf:cli-full-command;
29622                 type empty;
29623               }
29624               leaf min {
29625                 tailf:info "Minimum network time";
29626                 description
29627                   "Minimum network time";
29628                 tailf:cli-full-command;
29629                 type empty;
29630               }
29631               leaf num-samples {
29632                 tailf:info "The number of CND samples";
29633                 description
29634                   "The number of CND samples";
29635                 tailf:cli-full-command;
29636                 type empty;
29637               }
29638               leaf sum {
29639                 tailf:info "Total network time";
29640                 description
29641                   "Total network time";
29642                 tailf:cli-full-command;
29643                 type empty;
29644               }
29645             }
29646             container to-server {
29647               tailf:info "RTT from observation point to the server";
29648               description
29649                 "RTT from observation point to the server";
29650               leaf max {
29651                 tailf:info "Maximum network time";
29652                 description
29653                   "Maximum network time";
29654                 tailf:cli-full-command;
29655                 type empty;
29656               }
29657               leaf min {
29658                 tailf:info "Minimum network time";
29659                 description
29660                   "Minimum network time";
29661                 tailf:cli-full-command;
29662                 type empty;
29663               }
29664               leaf num-samples {
29665                 tailf:info "The number of SND samples";
29666                 description
29667                   "The number of SND samples";
29668                 tailf:cli-full-command;
29669                 type empty;
29670               }
29671               leaf sum {
29672                 tailf:info "Total network time";
29673                 description
29674                   "Total network time";
29675                 tailf:cli-full-command;
29676                 type empty;
29677               }
29678             }
29679           }
29680           container response {
29681             tailf:info "Response time metrics";
29682             description
29683               "Response time metrics";
29684             container client-to-server {
29685               tailf:info "Response time as seen by the client";
29686               description
29687                 "Response time as seen by the client";
29688               leaf max {
29689                 tailf:info "Maximum response time";
29690                 description
29691                   "Maximum response time";
29692                 tailf:cli-full-command;
29693                 type empty;
29694               }
29695               leaf min {
29696                 tailf:info "Minimum response time";
29697                 description
29698                   "Minimum response time";
29699                 tailf:cli-full-command;
29700                 type empty;
29701               }
29702               leaf sum {
29703                 tailf:info "Total response time";
29704                 description
29705                   "Total response time";
29706                 tailf:cli-full-command;
29707                 type empty;
29708               }
29709             }
29710             container to-server {
29711               tailf:info "Response time as seen from observation point";
29712               description
29713                 "Response time as seen from observation point";
29714               leaf histogram {
29715                 tailf:info "Histogram for response time";
29716                 description
29717                   "Histogram for response time";
29718                 tailf:cli-full-command;
29719                 type empty;
29720               }
29721               leaf max {
29722                 tailf:info "Maximum response time";
29723                 description
29724                   "Maximum response time";
29725                 tailf:cli-full-command;
29726                 type empty;
29727               }
29728               leaf min {
29729                 tailf:info "Minimum response time";
29730                 description
29731                   "Minimum response time";
29732                 tailf:cli-full-command;
29733                 type empty;
29734               }
29735               leaf sum {
29736                 tailf:info "Total response time";
29737                 description
29738                   "Total response time";
29739                 tailf:cli-full-command;
29740                 type empty;
29741               }
29742             }
29743           }
29744         }
29745         uses flow-id-initiator-grouping;
29746         leaf new-connections {
29747           tailf:info "The number of connection initiations observed";
29748           description
29749             "The number of connection initiations observed";
29750           tailf:cli-full-command;
29751           type empty;
29752         }
29753         container server {
29754           tailf:info "Server side (flow responder) related metrics";
29755           description
29756             "Server side (flow responder) related metrics";
29757           leaf all {
29758             tailf:info "All non-key server metrics";
29759             description
29760               "All non-key server metrics";
29761             tailf:cli-full-command;
29762             type empty;
29763           }
29764           container counter {
29765             tailf:info "Server side counter metrics";
29766             description
29767               "Server side counter metrics";
29768             container bytes {
29769               tailf:info "Number of bytes sent by the server";
29770               description
29771                 "Number of bytes sent by the server";
29772               leaf long {
29773                 tailf:info "64 bits counter";
29774                 description
29775                   "64 bits counter";
29776                 tailf:cli-full-command;
29777                 type empty;
29778               }
29779               container network {
29780                 tailf:info "Number of bytes sent by the server";
29781                 description
29782                   "Number of bytes sent by the server";
29783                 leaf long {
29784                   tailf:info "Total number of bytes transmitted by the server";
29785                   description
29786                     "Total number of bytes transmitted by the server";
29787                   tailf:cli-full-command;
29788                   type empty;
29789                 }
29790               }
29791               leaf retransmitted {
29792                 tailf:info "Number of bytes retransmitted by the server";
29793                 description
29794                   "Number of bytes retransmitted by the server";
29795                 tailf:cli-full-command;
29796                 type empty;
29797               }
29798               container transport {
29799                 tailf:info "Number of bytes sent by the server";
29800                 description
29801                   "Number of bytes sent by the server";
29802                 leaf long {
29803                   tailf:info "64 bit counter";
29804                   description
29805                     "64 bit counter";
29806                   tailf:cli-full-command;
29807                   type empty;
29808                 }
29809               }
29810             }
29811             container packets {
29812               tailf:info "Number of packets sent by the server";
29813               description
29814                 "Number of packets sent by the server";
29815               leaf long {
29816                 tailf:info "64 bits counter";
29817                 description
29818                   "64 bits counter";
29819                 tailf:cli-full-command;
29820                 type empty;
29821               }
29822               leaf retransmitted {
29823                 tailf:info "Number of packets retransmitted by the server";
29824                 description
29825                   "Number of packets retransmitted by the server";
29826                 tailf:cli-full-command;
29827                 type empty;
29828               }
29829             }
29830             leaf responses {
29831               tailf:info "Number of responses sent by the server";
29832               description
29833                 "Number of responses sent by the server";
29834               tailf:cli-full-command;
29835               type empty;
29836             }
29837           }
29838           uses flow-server-ipv4-ipv6-transport-grouping;
29839         }
29840         leaf sum-duration {
29841           tailf:info "The overall time in seconds for all connections";
29842           description
29843             "The overall time in seconds for all connections";
29844           tailf:cli-full-command;
29845           type empty;
29846         }
29847         container transaction {
29848           tailf:info "Transaction related metrics";
29849           description
29850             "Transaction related metrics";
29851           leaf all {
29852             tailf:info "All non-key transaction metrics";
29853             description
29854               "All non-key transaction metrics";
29855             tailf:cli-full-command;
29856             type empty;
29857           }
29858           container counter {
29859             tailf:info "Transaction counter metrics";
29860             description
29861               "Transaction counter metrics";
29862             leaf complete {
29863               tailf:info "Number of completed transactions";
29864               description
29865                 "Number of completed transactions";
29866               tailf:cli-full-command;
29867               type empty;
29868             }
29869           }
29870           container duration {
29871             tailf:info "Transaction duration metrics";
29872             description
29873               "Transaction duration metrics";
29874             leaf max {
29875               tailf:info "Maximum transaction time";
29876               description
29877                 "Maximum transaction time";
29878               tailf:cli-full-command;
29879               type empty;
29880             }
29881             leaf min {
29882               tailf:info "Minimum transaction time";
29883               description
29884                 "Minimum transaction time";
29885               tailf:cli-full-command;
29886               type empty;
29887             }
29888             leaf sum {
29889               tailf:info "Total transaction time";
29890               description
29891                 "Total transaction time";
29892               tailf:cli-full-command;
29893               type empty;
29894             }
29895           }
29896         }
29897         uses flow-transaction-id-grouping;
29898       }
29899       container counter {
29900         tailf:info "Counter fields";
29901         description
29902           "Counter fields";
29903         container bytes {
29904           tailf:info "Total number of bytes";
29905           description
29906             "Total number of bytes";
29907           presence "true";
29908           leaf long {
29909             tailf:info "Total number of bytes (64 bit counter)";
29910             description
29911               "Total number of bytes (64 bit counter)";
29912             tailf:cli-full-command;
29913             type empty;
29914           }
29915           container rate {
29916             tailf:info "Byte rate for the flow";
29917             description
29918               "Byte rate for the flow";
29919             presence "true";
29920             container per-flow {
29921               tailf:info "Average byte rate for the flow";
29922               description
29923                 "Average byte rate for the flow";
29924               presence "true";
29925               leaf max {
29926                 tailf:info "Maximum byte rate among the aggregated flows";
29927                 description
29928                   "Maximum byte rate among the aggregated flows";
29929                 tailf:cli-full-command;
29930                 type empty;
29931               }
29932               leaf min {
29933                 tailf:info "Minimum byte rate among the aggregated flows";
29934                 description
29935                   "Minimum byte rate among the aggregated flows";
29936                 tailf:cli-full-command;
29937                 type empty;
29938               }
29939             }
29940           }
29941           container squared {
29942             tailf:info "Total of the square of the number of bytes";
29943             description
29944               "Total of the square of the number of bytes";
29945             leaf long {
29946               tailf:info "Total of the square of the packet length in bytes (64 bit counter)";
29947               description
29948                 "Total of the square of the packet length in bytes (64 bit counter)";
29949               tailf:cli-full-command;
29950               type empty;
29951             }
29952           }
29953         }
29954         leaf flows {
29955           tailf:info "Total number of flows";
29956           description
29957             "Total number of flows";
29958           tailf:cli-full-command;
29959           type empty;
29960         }
29961         container packets {
29962           tailf:info "Total number of packets";
29963           description
29964             "Total number of packets";
29965           presence "true";
29966           leaf dropped {
29967             tailf:info "Dropped packets";
29968             description
29969               "Dropped packets";
29970             type empty;
29971           }
29972           leaf long {
29973             tailf:info "Total number of packets (64 bit counter)";
29974             description
29975               "Total number of packets (64 bit counter)";
29976             tailf:cli-full-command;
29977             type empty;
29978           }
29979           container rate {
29980             tailf:info "Packet rate for the flow";
29981             description
29982               "Packet rate for the flow";
29983             presence "true";
29984             container per-flow {
29985               tailf:info "Average packet rate for aggregated flows";
29986               description
29987                 "Average packet rate for aggregated flows";
29988               presence "true";
29989               leaf max {
29990                 tailf:info "Maximum packet rate in the aggregated flows";
29991                 description
29992                   "Maximum packet rate in the aggregated flows";
29993                 tailf:cli-full-command;
29994                 type empty;
29995               }
29996               leaf min {
29997                 tailf:info "Minimum packet rate in the aggregated flows";
29998                 description
29999                   "Minimum packet rate in the aggregated flows";
30000                 tailf:cli-full-command;
30001                 type empty;
30002               }
30003             }
30004           }
30005         }
30006       }
30007       container datalink {
30008         tailf:info "Datalink (layer2) fields";
30009         description
30010           "Datalink (layer2) fields";
30011         uses flow-datalink-grouping;
30012       }
30013       container flow {
30014         tailf:info "Flow identifying fields";
30015         description
30016           "Flow identifying fields";
30017         uses flow-flow-common-grouping;
30018         leaf end-reason {
30019           tailf:info "The reason for a flow ending";
30020           description
30021             "The reason for a flow ending";
30022           tailf:cli-full-command;
30023           type empty;
30024         }
30025       }
30026       container interface {
30027         tailf:info "Interface fields";
30028         description
30029           "Interface fields";
30030         uses flow-interface-grouping;
30031       }
30032       container ipv4 {
30033         tailf:info "IPv4 fields";
30034         description
30035           "IPv4 fields";
30036         uses flow-ipv4-grouping;
30037       }
30038       container ipv6 {
30039         tailf:info "IPv6 fields";
30040         description
30041           "IPv6 fields";
30042         uses flow-ipv6-grouping;
30043       }
30044       container metadata {
30045         tailf:info "Metadata fields";
30046         description
30047           "Metadata fields";
30048         leaf clock-rate {
30049           tailf:info "Metadata clock-rate";
30050           description
30051             "Metadata clock-rate";
30052           tailf:cli-full-command;
30053           type empty;
30054         }
30055         leaf global-session-id {
30056           tailf:info "Metadata global-session-id";
30057           description
30058             "Metadata global-session-id";
30059           tailf:cli-full-command;
30060           type empty;
30061         }
30062         leaf multi-party-session-id {
30063           tailf:info "Metadata multi-party-session-id";
30064           description
30065             "Metadata multi-party-session-id";
30066           tailf:cli-full-command;
30067           type empty;
30068         }
30069       }
30070       container monitor {
30071         tailf:info "monitor fields";
30072         description
30073           "monitor fields";
30074         leaf event {
30075           tailf:info "Flags indicating monitor events";
30076           description
30077             "Flags indicating monitor events";
30078           tailf:cli-full-command;
30079           type empty;
30080         }
30081       }
30082       container mpls {
30083         tailf:info "MPLS fields";
30084         description
30085           "MPLS fields";
30086         uses flow-mpls-grouping;
30087       }
30088       container network {
30089         tailf:info "network metrics";
30090         description
30091           "network metrics";
30092         uses flow-network-grouping;
30093       }
30094       container pfr {
30095         tailf:info "PfR metrics";
30096         description
30097           "PfR metrics";
30098         uses flow-pfr-grouping;
30099       }
30100       container policy {
30101         tailf:info "policy fields";
30102         description
30103           "policy fields";
30104         uses flow-policy-grouping;
30105       }
30106       container routing {
30107         tailf:info "Routing attributes";
30108         description
30109           "Routing attributes";
30110         uses flow-routing-grouping;
30111       }
30112       container services {
30113         tailf:info "Services fields";
30114         description
30115           "Services fields";
30116         uses flow-services-grouping;
30117       }
30118       container timestamp {
30119         tailf:info "Timestamp fields";
30120         description
30121           "Timestamp fields";
30122         container absolute {
30123           tailf:info "Timestamps based on the epoch of 00:00 UTC 1st Jan 1970";
30124           description
30125             "Timestamps based on the epoch of 00:00 UTC 1st Jan 1970";
30126           leaf first {
30127             tailf:info "Absolute time the first packet was seen (milliseconds)";
30128             description
30129               "Absolute time the first packet was seen (milliseconds)";
30130             tailf:cli-full-command;
30131             type empty;
30132           }
30133           leaf last {
30134             tailf:info "Absolute time the most recent packet was seen (milliseconds)";
30135             description
30136               "Absolute time the most recent packet was seen (milliseconds)";
30137             tailf:cli-full-command;
30138             type empty;
30139           }
30140           container monitoring-interval {
30141             tailf:info "Monitoring interval timestamps";
30142             description
30143               "Monitoring interval timestamps";
30144             leaf end {
30145               tailf:info "Absolute end time of a monitoring interval (milliseconds)";
30146               description
30147                 "Absolute end time of a monitoring interval (milliseconds)";
30148               tailf:cli-full-command;
30149               type empty;
30150             }
30151             leaf start {
30152               tailf:info "Absolute start time of a monitoring interval (milliseconds)";
30153               description
30154                 "Absolute start time of a monitoring interval (milliseconds)";
30155               tailf:cli-full-command;
30156               type empty;
30157             }
30158           }
30159         }
30160         leaf interval {
30161           tailf:info "Epoch of a monitoring interval";
30162           description
30163             "Epoch of a monitoring interval";
30164           tailf:cli-full-command;
30165           type empty;
30166         }
30167         container sys-uptime {
30168           tailf:info "Timestamps based on the sys-uptime";
30169           description
30170             "Timestamps based on the sys-uptime";
30171           leaf first {
30172             tailf:info "Time the first packet was seen";
30173             description
30174               "Time the first packet was seen";
30175             tailf:cli-full-command;
30176             type empty;
30177           }
30178           leaf last {
30179             tailf:info "Time the most recent packet was seen";
30180             description
30181               "Time the most recent packet was seen";
30182             tailf:cli-full-command;
30183             type empty;
30184           }
30185         }
30186       }
30187       container transport {
30188         tailf:info "Transport layer fields";
30189         description
30190           "Transport layer fields";
30191         container bytes {
30192           tailf:info "Bytes fields";
30193           description
30194             "Bytes fields";
30195           leaf expected {
30196             tailf:info "Transport bytes expected";
30197             description
30198               "Transport bytes expected";
30199             tailf:cli-full-command;
30200             type empty;
30201           }
30202           container lost {
30203             tailf:info "Transport bytes lost";
30204             description
30205               "Transport bytes lost";
30206             presence "true";
30207             leaf rate {
30208               tailf:info "Transport bytes lost rate";
30209               description
30210                 "Transport bytes lost rate";
30211               tailf:cli-full-command;
30212               type empty;
30213             }
30214           }
30215           leaf out-of-order {
30216             tailf:info "Total number of out-of-order bytes";
30217             description
30218               "Total number of out-of-order bytes";
30219             tailf:cli-full-command;
30220             type empty;
30221           }
30222         }
30223         uses flow-transport-common-grouping;
30224         container event {
30225           tailf:info "Transport event fields";
30226           description
30227             "Transport event fields";
30228           container packet-loss {
30229             tailf:info "Transport event packet-loss fields";
30230             description
30231               "Transport event packet-loss fields";
30232             container counter {
30233               tailf:info "Count of sets of packets that were lost";
30234               description
30235                 "Count of sets of packets that were lost";
30236               presence "true";
30237               leaf max {
30238                 tailf:info "Highest packet loss counter when multiple flows are aggregated";
30239                 description
30240                   "Highest packet loss counter when multiple flows are aggregated";
30241                 tailf:cli-full-command;
30242                 type empty;
30243               }
30244               leaf min {
30245                 tailf:info "Lowest packet loss counter when multiple flows are aggregated";
30246                 description
30247                   "Lowest packet loss counter when multiple flows are aggregated";
30248                 tailf:cli-full-command;
30249                 type empty;
30250               }
30251             }
30252           }
30253         }
30254         container packets {
30255           tailf:info "Transport packet fields";
30256           description
30257             "Transport packet fields";
30258           container expected {
30259             tailf:info "Transport packets expected fields";
30260             description
30261               "Transport packets expected fields";
30262             leaf counter {
30263               tailf:info "Expected number of packets from sequencing information";
30264               description
30265                 "Expected number of packets from sequencing information";
30266               tailf:cli-full-command;
30267               type empty;
30268             }
30269           }
30270           container lost {
30271             tailf:info "Transport packets lost fields";
30272             description
30273               "Transport packets lost fields";
30274             container counter {
30275               tailf:info "A count of the number of lost packets from sequencing information";
30276               description
30277                 "A count of the number of lost packets from sequencing information";
30278               presence "true";
30279               leaf max {
30280                 tailf:info "Highest lost packet count seen among the aggregated flows";
30281                 description
30282                   "Highest lost packet count seen among the aggregated flows";
30283                 tailf:cli-full-command;
30284                 type empty;
30285               }
30286               leaf min {
30287                 tailf:info "Lowest lost packet count seen among the aggregated flows";
30288                 description
30289                   "Lowest lost packet count seen among the aggregated flows";
30290                 tailf:cli-full-command;
30291                 type empty;
30292               }
30293             }
30294             container rate {
30295               tailf:info "Packet loss rate from sequencing information";
30296               description
30297                 "Packet loss rate from sequencing information";
30298               presence "true";
30299               leaf max {
30300                 tailf:info "Maximum packet loss rate in the aggregated flows";
30301                 description
30302                   "Maximum packet loss rate in the aggregated flows";
30303                 tailf:cli-full-command;
30304                 type empty;
30305               }
30306               leaf min {
30307                 tailf:info "Minimum packet loss rate in the aggregated flows";
30308                 description
30309                   "Minimum packet loss rate in the aggregated flows";
30310                 tailf:cli-full-command;
30311                 type empty;
30312               }
30313             }
30314           }
30315           leaf out-of-order {
30316             tailf:info "Total number of out-of-order bytes";
30317             description
30318               "Total number of out-of-order bytes";
30319             tailf:cli-full-command;
30320             type empty;
30321           }
30322         }
30323         container round-trip-time {
30324           tailf:info "RTT calculation for flow";
30325           description
30326             "RTT calculation for flow";
30327           presence "true";
30328           leaf max {
30329             tailf:info "Highest RTT among all flows";
30330             description
30331               "Highest RTT among all flows";
30332             tailf:cli-full-command;
30333             type empty;
30334           }
30335           leaf min {
30336             tailf:info "Lowest RTT among all flows";
30337             description
30338               "Lowest RTT among all flows";
30339             tailf:cli-full-command;
30340             type empty;
30341           }
30342           leaf samples {
30343             tailf:info "RTT samples";
30344             description
30345               "RTT samples";
30346             tailf:cli-full-command;
30347             type empty;
30348           }
30349           leaf sum {
30350             tailf:info "Sum RTT for all flows";
30351             description
30352               "Sum RTT for all flows";
30353             tailf:cli-full-command;
30354             type empty;
30355           }
30356         }
30357         container rtp {
30358           tailf:info "RTP fields";
30359           description
30360             "RTP fields";
30361           container flow {
30362             tailf:info "RTP  flow";
30363             description
30364               "RTP  flow";
30365             leaf count {
30366               tailf:info "Number of RTP flows";
30367               description
30368                 "Number of RTP flows";
30369               tailf:cli-full-command;
30370               type empty;
30371             }
30372           }
30373           container jitter {
30374             tailf:info "RTP jitter fields";
30375             description
30376               "RTP jitter fields";
30377             leaf maximum {
30378               tailf:info "Maximum jitter for the RTP stream";
30379               description
30380                 "Maximum jitter for the RTP stream";
30381               tailf:cli-full-command;
30382               type empty;
30383             }
30384             container mean {
30385               tailf:info "Mean jitter for the RTP stream";
30386               description
30387                 "Mean jitter for the RTP stream";
30388               presence "true";
30389               leaf sum {
30390                 tailf:info "The sum of jitter mean for the RTP stream";
30391                 description
30392                   "The sum of jitter mean for the RTP stream";
30393                 tailf:cli-full-command;
30394                 type empty;
30395               }
30396             }
30397             leaf minimum {
30398               tailf:info "Minimum jitter for the RTP stream";
30399               description
30400                 "Minimum jitter for the RTP stream";
30401               tailf:cli-full-command;
30402               type empty;
30403             }
30404           }
30405           leaf payload-type {
30406             tailf:info "RTP payload type";
30407             description
30408               "RTP payload type";
30409             tailf:cli-full-command;
30410             type empty;
30411           }
30412           leaf ssrc {
30413             tailf:info "RTP SSRC";
30414             description
30415               "RTP SSRC";
30416             tailf:cli-full-command;
30417             type empty;
30418           }
30419         }
30420       }
30421     }
30422   }
30423
30424   grouping flow-record-match-grouping {
30425     container match {
30426       tailf:info "Specify a key field";
30427       description
30428         "Specify a key field";
30429       container application {
30430         tailf:info "Application fields";
30431         description
30432           "Application fields";
30433         uses flow-name-grouping;
30434         uses flow-vendor-version-grouping;
30435       }
30436       container connection {
30437         tailf:info "Connection fields";
30438         description
30439           "Connection fields";
30440         container client {
30441           tailf:info "Client side (flow initiator) related metrics";
30442           description
30443             "Client side (flow initiator) related metrics";
30444           uses flow-client-ipv4-ipv6-transport-grouping;
30445         }
30446         uses flow-id-initiator-grouping;
30447         container server {
30448           tailf:info "Server side (flow responder) related metrics";
30449           description
30450             "Server side (flow responder) related metrics";
30451           uses flow-server-ipv4-ipv6-transport-grouping;
30452         }
30453         uses flow-transaction-id-grouping;
30454       }
30455       container datalink {
30456         tailf:info "Datalink (layer2) fields";
30457         description
30458           "Datalink (layer2) fields";
30459         uses flow-datalink-grouping;
30460       }
30461       container flow {
30462         tailf:info "Flow identifying fields";
30463         description
30464           "Flow identifying fields";
30465         uses flow-flow-common-grouping;
30466       }
30467       container interface {
30468         tailf:info "Interface fields";
30469         description
30470           "Interface fields";
30471         uses flow-interface-grouping;
30472       }
30473       container ipv4 {
30474         tailf:info "IPv4 fields";
30475         description
30476           "IPv4 fields";
30477         uses flow-ipv4-grouping;
30478       }
30479       container ipv6 {
30480         tailf:info "IPv6 fields";
30481         description
30482           "IPv6 fields";
30483         uses flow-ipv6-grouping;
30484       }
30485       container metadata {
30486         tailf:info "Metadata fields";
30487         description
30488           "Metadata fields";
30489         leaf global-session-id {
30490           tailf:info "Metadata global-session-id";
30491           description
30492             "Metadata global-session-id";
30493           tailf:cli-full-command;
30494           type empty;
30495         }
30496         leaf multi-party-session-id {
30497           tailf:info "Metadata multi-party-session-id";
30498           description
30499             "Metadata multi-party-session-id";
30500           tailf:cli-full-command;
30501           type empty;
30502         }
30503       }
30504       container mpls {
30505         tailf:info "MPLS fields";
30506         description
30507           "MPLS fields";
30508         uses flow-mpls-grouping;
30509       }
30510       container network {
30511         tailf:info "network metrics";
30512         description
30513           "network metrics";
30514         uses flow-network-grouping;
30515       }
30516       container pfr {
30517         tailf:info "PfR metrics";
30518         description
30519           "PfR metrics";
30520         uses flow-pfr-grouping;
30521       }
30522       container policy {
30523         tailf:info "policy fields";
30524         description
30525           "policy fields";
30526         uses flow-policy-grouping;
30527       }
30528       container routing {
30529         tailf:info "Routing attributes";
30530         description
30531           "Routing attributes";
30532         uses flow-routing-grouping;
30533       }
30534       container services {
30535         tailf:info "Services fields";
30536         description
30537           "Services fields";
30538         uses flow-services-grouping;
30539       }
30540       container timestamp {
30541         tailf:info "Timestamp fields";
30542         description
30543           "Timestamp fields";
30544         container absolute {
30545           tailf:info "Timestamps based on the epoch of 00:00 UTC 1st Jan 1970";
30546           description
30547             "Timestamps based on the epoch of 00:00 UTC 1st Jan 1970";
30548           container monitoring-interval {
30549             tailf:info "Monitoring interval timestamps";
30550             description
30551               "Monitoring interval timestamps";
30552             leaf start {
30553               tailf:info "Absolute start time of a monitoring interval (milliseconds)";
30554               description
30555                 "Absolute start time of a monitoring interval (milliseconds)";
30556               tailf:cli-full-command;
30557               type empty;
30558             }
30559           }
30560         }
30561       }
30562       container transport {
30563         tailf:info "Transport layer fields";
30564         description
30565           "Transport layer fields";
30566         container bytes {
30567           tailf:info "Bytes fields";
30568           description
30569             "Bytes fields";
30570           leaf expected {
30571             tailf:info "Transport bytes expected";
30572             description
30573               "Transport bytes expected";
30574             tailf:cli-full-command;
30575             type empty;
30576           }
30577           container lost {
30578             tailf:info "Transport bytes lost";
30579             description
30580               "Transport bytes lost";
30581             presence "true";
30582             leaf rate {
30583               tailf:info "Transport bytes lost rate";
30584               description
30585                 "Transport bytes lost rate";
30586               tailf:cli-full-command;
30587               type empty;
30588             }
30589           }
30590         }
30591         container rtp {
30592           tailf:info "RTP fields";
30593           description
30594             "RTP fields";
30595           leaf ssrc {
30596             tailf:info "RTP SSRC";
30597             description
30598               "RTP SSRC";
30599             tailf:cli-full-command;
30600             type empty;
30601           }
30602         }
30603         uses flow-transport-common-grouping;
30604       }
30605     }
30606   }
30607
30608   grouping flow-monitor-record-netflow-grouping {
30609     container as {
30610       tailf:info "AS aggregation schemes";
30611       description
30612         "AS aggregation schemes";
30613       presence "true";
30614       leaf peer {
30615         tailf:info "AS aggregation scheme with peer ASs";
30616         description
30617           "AS aggregation scheme with peer ASs";
30618         tailf:cli-full-command;
30619         type empty;
30620       }
30621     }
30622     container destination-prefix {
30623       tailf:info "Destination Prefix aggregation schemes";
30624       description
30625         "Destination Prefix aggregation schemes";
30626       presence "true";
30627       leaf peer {
30628         tailf:info "Destination Prefix aggregation scheme with peer AS";
30629         description
30630           "Destination Prefix aggregation scheme with peer AS";
30631         tailf:cli-full-command;
30632         type empty;
30633       }
30634     }
30635     container original-input {
30636       tailf:info "Traditional IPv6 input NetFlow with ASs";
30637       description
30638         "Traditional IPv6 input NetFlow with ASs";
30639       presence "true";
30640       leaf peer {
30641         tailf:info "Traditional IPv6 input NetFlow with peer ASs";
30642         description
30643           "Traditional IPv6 input NetFlow with peer ASs";
30644         tailf:cli-full-command;
30645         type empty;
30646       }
30647     }
30648     container original-output {
30649       tailf:info "Traditional IPv6 output NetFlow with ASs";
30650       description
30651         "Traditional IPv6 output NetFlow with ASs";
30652       presence "true";
30653       leaf peer {
30654         tailf:info "Traditional IPv6 output NetFlow with peer ASs";
30655         description
30656           "Traditional IPv6 output NetFlow with peer ASs";
30657         tailf:cli-full-command;
30658         type empty;
30659       }
30660     }
30661     container prefix {
30662       tailf:info "Source and Destination Prefixes aggregation schemes";
30663       description
30664         "Source and Destination Prefixes aggregation schemes";
30665       presence "true";
30666       leaf peer {
30667         tailf:info "Source and Destination Prefixes aggregation scheme with peer ASs";
30668         description
30669           "Source and Destination Prefixes aggregation scheme with peer ASs";
30670         tailf:cli-full-command;
30671         type empty;
30672       }
30673     }
30674     leaf protocol-port {
30675       tailf:info "Protocol and Ports aggregation scheme";
30676       description
30677         "Protocol and Ports aggregation scheme";
30678       tailf:cli-full-command;
30679       type empty;
30680     }
30681     container source-prefix {
30682       tailf:info "Source AS and Prefix aggregation schemes";
30683       description
30684         "Source AS and Prefix aggregation schemes";
30685       presence "true";
30686       leaf peer {
30687         tailf:info "Source AS and Prefix aggregation scheme with peer AS";
30688         description
30689           "Source AS and Prefix aggregation scheme with peer AS";
30690         tailf:cli-full-command;
30691         type empty;
30692       }
30693     }
30694   }
30695
30696   grouping flow-monitor-grouping {
30697     container cache {
30698       tailf:info "Monitor cache entries";
30699       description
30700         "Monitor cache entries";
30701       leaf entries {
30702         tailf:info "Number of cache entries";
30703         description
30704           "Number of cache entries";
30705         tailf:cli-full-command;
30706         type uint32 {
30707           tailf:info "<16-2000000>;;Number of cache entries";
30708           range "16..2000000";
30709         }
30710       }
30711       container timeout {
30712         tailf:info "Cache timeout";
30713         description
30714           "Cache timeout";
30715         leaf active {
30716           tailf:info "Active timeout";
30717           description
30718             "Active timeout";
30719           tailf:cli-full-command;
30720           type uint32 {
30721             tailf:info "<1-604800>;;Active timeout value";
30722             range "1..604800";
30723           }
30724         }
30725         container event {
30726           tailf:info "Timeout event";
30727           description
30728             "Timeout event";
30729           leaf transaction-end {
30730             tailf:info "Transaction-end event";
30731             description
30732               "Transaction-end event";
30733             tailf:cli-full-command;
30734             type empty;
30735           }
30736         }
30737         leaf inactive {
30738           tailf:info "Inactive timeout";
30739           description
30740             "Inactive timeout";
30741           tailf:cli-full-command;
30742           type uint32 {
30743             tailf:info "<1-604800>;;Inactive timeout value";
30744             range "1..604800";
30745           }
30746         }
30747         leaf synchronized {
30748           tailf:info "Synchronized timeout";
30749           description
30750             "Synchronized timeout";
30751           tailf:cli-full-command;
30752           type uint16 {
30753             tailf:info "<1-300>;;Synchronized timeout value";
30754             range "1..300";
30755           }
30756         }
30757       }
30758       leaf type {
30759         tailf:info "Cache type";
30760         description
30761           "Cache type";
30762         tailf:cli-full-command;
30763         type enumeration {
30764           enum "immediate" {
30765             tailf:info "Immediate cache type";
30766           }
30767           enum "normal" {
30768             tailf:info "Normal cache type";
30769           }
30770           enum "permanent" {
30771             tailf:info "Permanent cache type";
30772           }
30773           enum "synchronized" {
30774             tailf:info "synchronized cache type";
30775           }
30776         }
30777       }
30778     }
30779     leaf description {
30780       tailf:info "Provide a description for this Flow Monitor";
30781       description
30782         "Provide a description for this Flow Monitor";
30783       tailf:cli-multi-value;
30784       tailf:cli-full-command;
30785       type string {
30786         tailf:info "LINE;;Flow Monitor description";
30787       }
30788     }
30789     list exporter {
30790       tailf:info "Add an Exporter to use to export records";
30791       description
30792         "Add an Exporter to use to export records";
30793       tailf:cli-suppress-mode;
30794       key "name";
30795       leaf name {
30796         type string {
30797           tailf:info "xxx;;User defined";
30798         }
30799       }
30800     }
30801     container history {
30802       tailf:info "Monitor history intervals";
30803       description
30804         "Monitor history intervals";
30805       tailf:cli-sequence-commands;
30806       tailf:cli-compact-syntax;
30807       leaf size {
30808         tailf:info "History size";
30809         description
30810           "History size";
30811         type uint8 {
30812           tailf:info "<0-60>;;Number of intervals monitored";
30813           range "0..60";
30814         }
30815       }
30816       leaf timeout {
30817         tailf:info "Specify timeout interval";
30818         description
30819           "Specify timeout interval";
30820         tailf:cli-optional-in-sequence;
30821         type uint8 {
30822           tailf:info "<1-30>;;Timeout interval length";
30823           range "1..30";
30824         }
30825       }
30826     }
30827     container record {
30828       tailf:info "Specify Flow Record to use to define Cache";
30829       description
30830         "Specify Flow Record to use to define Cache";
30831       leaf type {
30832         tailf:cli-drop-node-name;
30833         type union {
30834           type enumeration {
30835             enum "default-rtp" {
30836               tailf:info "VM default RTP record";
30837             }
30838             enum "default-tcp" {
30839               tailf:info "VM default TCP record";
30840             }
30841             enum "netflow-original" {
30842               tailf:info "Traditional IPv4 input NetFlow with origin ASs";
30843             }
30844           }
30845           type string {
30846             tailf:info "xxx;;User defined";
30847           }
30848         }
30849       }
30850       container netflow {
30851         tailf:info "Traditional NetFlow collection schemes";
30852         description
30853           "Traditional NetFlow collection schemes";
30854         container ipv4 {
30855           tailf:info "Traditional IPv4 NetFlow collection schemes";
30856           description
30857             "Traditional IPv4 NetFlow collection schemes";
30858           uses flow-monitor-record-netflow-grouping;
30859           container as-tos {
30860             tailf:info "AS and TOS aggregation schemes";
30861             description
30862               "AS and TOS aggregation schemes";
30863             presence "true";
30864             leaf peer {
30865               tailf:info "AS and TOS aggregation scheme with peer ASs";
30866               description
30867                 "AS and TOS aggregation scheme with peer ASs";
30868               tailf:cli-full-command;
30869               type empty;
30870             }
30871           }
30872           container bgp-nexthop-tos {
30873             tailf:info "BGP next-hop and TOS aggregation schemes";
30874             description
30875               "BGP next-hop and TOS aggregation schemes";
30876             presence "true";
30877             leaf peer {
30878               tailf:info "BGP next-hop and TOS aggregation scheme with peer ASs";
30879               description
30880                 "BGP next-hop and TOS aggregation scheme with peer ASs";
30881               tailf:cli-full-command;
30882               type empty;
30883             }
30884           }
30885           container destination-prefix-tos {
30886             tailf:info "Destination Prefix and TOS  aggregation schemes";
30887             description
30888               "Destination Prefix and TOS  aggregation schemes";
30889             presence "true";
30890             leaf peer {
30891               tailf:info "Destination Prefix and TOS aggregation scheme with peer AS";
30892               description
30893                 "Destination Prefix and TOS aggregation scheme with peer AS";
30894               tailf:cli-full-command;
30895               type empty;
30896             }
30897           }
30898           leaf prefix-port {
30899             tailf:info "Prefixes and Ports aggregation scheme";
30900             description
30901               "Prefixes and Ports aggregation scheme";
30902             tailf:cli-full-command;
30903             type empty;
30904           }
30905           container prefix-tos {
30906             tailf:info "Prefixes and TOS aggregation schemes";
30907             description
30908               "Prefixes and TOS aggregation schemes";
30909             presence "true";
30910             leaf peer {
30911               tailf:info "Prefixes and TOS aggregation scheme with peer ASs";
30912               description
30913                 "Prefixes and TOS aggregation scheme with peer ASs";
30914               tailf:cli-full-command;
30915               type empty;
30916             }
30917           }
30918           leaf protocol-port-tos {
30919             tailf:info "Protocol, Ports and TOS aggregation scheme";
30920             description
30921               "Protocol, Ports and TOS aggregation scheme";
30922             tailf:cli-full-command;
30923             type empty;
30924           }
30925           container source-prefix-tos {
30926             tailf:info "Source Prefix and TOS aggregation schemes";
30927             description
30928               "Source Prefix and TOS aggregation schemes";
30929             presence "true";
30930             leaf peer {
30931               tailf:info "Source Prefix and TOS aggregation scheme with peer AS";
30932               description
30933                 "Source Prefix and TOS aggregation scheme with peer AS";
30934               tailf:cli-full-command;
30935               type empty;
30936             }
30937           }
30938         }
30939         container ipv6 {
30940           tailf:info "Traditional IPv6 NetFlow collection schemes";
30941           description
30942             "Traditional IPv6 NetFlow collection schemes";
30943           uses flow-monitor-record-netflow-grouping;
30944           container bgp-nexthop {
30945             tailf:info "BGP next-hop aggregation schemes";
30946             description
30947               "BGP next-hop aggregation schemes";
30948             presence "true";
30949             leaf peer {
30950               tailf:info "BGP next-hop aggregation scheme with peer ASs";
30951               description
30952                 "BGP next-hop aggregation scheme with peer ASs";
30953               tailf:cli-full-command;
30954               type empty;
30955             }
30956           }
30957         }
30958       }
30959     }
30960     container statistics {
30961       tailf:info "Collect statistics";
30962       description
30963         "Collect statistics";
30964       container packet {
30965         tailf:info "Collect packet statistics";
30966         description
30967           "Collect packet statistics";
30968         leaf protocol {
30969           tailf:info "Collect packet protocol distribution statistics";
30970           description
30971             "Collect packet protocol distribution statistics";
30972           tailf:cli-full-command;
30973           type empty;
30974         }
30975         leaf size {
30976           tailf:info "Collect packet size distribution statistics";
30977           description
30978             "Collect packet size distribution statistics";
30979           tailf:cli-full-command;
30980           type empty;
30981         }
30982       }
30983     }
30984   }
30985
30986   grouping flow-default-monitor-grouping {
30987     container cache {
30988       tailf:info "Monitor cache entries";
30989       description
30990         "Monitor cache entries";
30991       leaf entries {
30992         tailf:info "Maximum flow entries in the Flow Cache";
30993         description
30994           "Maximum flow entries in the Flow Cache";
30995         tailf:cli-full-command;
30996         type empty;
30997       }
30998       container timeout {
30999         tailf:info "Configure flow cache timeout parameters";
31000         description
31001           "Configure flow cache timeout parameters";
31002         leaf active {
31003           tailf:info "Specify the active flow timeout";
31004           description
31005             "Specify the active flow timeout";
31006           tailf:cli-full-command;
31007           type empty;
31008         }
31009         container event {
31010           tailf:info "Event-based export";
31011           description
31012             "Event-based export";
31013           leaf transaction-end {
31014             tailf:info "Export on transaction end event";
31015             description
31016               "Export on transaction end event";
31017             tailf:cli-full-command;
31018             type empty;
31019           }
31020         }
31021         leaf inactive {
31022           tailf:info "Specify the inactive flow timeout";
31023           description
31024             "Specify the inactive flow timeout";
31025           tailf:cli-full-command;
31026           type empty;
31027         }
31028         leaf synchronized {
31029           tailf:info "Specify the timeout for a synchronized Flow Cache";
31030           description
31031             "Specify the timeout for a synchronized Flow Cache";
31032           tailf:cli-full-command;
31033           type empty;
31034         }
31035         leaf update {
31036           tailf:info "Specify the update timeout for a permanent Flow Cache";
31037           description
31038             "Specify the update timeout for a permanent Flow Cache";
31039           tailf:cli-full-command;
31040           type empty;
31041         }
31042       }
31043       leaf type {
31044         tailf:info "Set the type of the Flow Cache";
31045         description
31046           "Set the type of the Flow Cache";
31047         tailf:cli-full-command;
31048         type empty;
31049       }
31050     }
31051     leaf description {
31052       tailf:info "Provide a description for this Flow Monitor";
31053       description
31054         "Provide a description for this Flow Monitor";
31055       tailf:cli-full-command;
31056       type empty;
31057     }
31058     leaf exporter {
31059       tailf:info "Add an Exporter to use to export records";
31060       description
31061         "Add an Exporter to use to export records";
31062       tailf:cli-full-command;
31063       type empty;
31064     }
31065     leaf record {
31066       tailf:info "Specify Flow Record to use to define Cache";
31067       description
31068         "Specify Flow Record to use to define Cache";
31069       tailf:cli-full-command;
31070       type empty;
31071     }
31072     container statistics {
31073       tailf:info "Collect statistics";
31074       description
31075         "Collect statistics";
31076       container packet {
31077         tailf:info "Collect packet statistics";
31078         description
31079           "Collect packet statistics";
31080         leaf protocol {
31081           tailf:info "Collect packet protocol distribution statistics";
31082           description
31083             "Collect packet protocol distribution statistics";
31084           tailf:cli-full-command;
31085           type empty;
31086         }
31087         leaf size {
31088           tailf:info "Collect packet size distribution statistics";
31089           description
31090             "Collect packet size distribution statistics";
31091           tailf:cli-full-command;
31092           type empty;
31093         }
31094       }
31095     }
31096   }
31097
31098   grouping flow-exporter-option-timeout-grouping {
31099     leaf timeout {
31100       tailf:info "Option resend time";
31101       description
31102         "Option resend time";
31103       type uint32 {
31104         tailf:info "<1-86400>;;Time in seconds";
31105         range "1..86400";
31106       }
31107     }
31108   }
31109
31110   grouping flow-exporter-grouping {
31111     leaf description {
31112       tailf:info "Provide a description for this Flow Exporter";
31113       description
31114         "Provide a description for this Flow Exporter";
31115       tailf:cli-multi-value;
31116       tailf:cli-full-command;
31117       type string {
31118         tailf:info "LINE;;Flow Exporter description";
31119       }
31120     }
31121     container destination {
31122       tailf:info "Export destination configuration";
31123       description
31124         "Export destination configuration";
31125       tailf:cli-sequence-commands;
31126       tailf:cli-compact-syntax;
31127       leaf ip {
31128         tailf:cli-drop-node-name;
31129         type inet:ip-address {
31130           tailf:info "Hostname or A.B.C.D;;Destination IPv4 address or hostnameHostname or X:X:X:X::X;;Destination IPv6 address or hostname";
31131         }
31132       }
31133       leaf vrf {
31134         tailf:info "Optional VRF label";
31135         description
31136           "Optional VRF label";
31137         tailf:cli-optional-in-sequence;
31138         type string {
31139           tailf:info "WORD;;VRF Label";
31140         }
31141       }
31142     }
31143     leaf dscp {
31144       tailf:info "Optional DSCP";
31145       description
31146         "Optional DSCP";
31147       tailf:cli-full-command;
31148       type uint8 {
31149         tailf:info "<0-63>;;Differentiated services codepoint value";
31150         range "0..63";
31151       }
31152     }
31153     leaf export-protocol {
31154       tailf:info "Export protocol version";
31155       description
31156         "Export protocol version";
31157       tailf:cli-full-command;
31158       type enumeration {
31159         enum "ipfix" {
31160           tailf:info "IPFIX (Version 10)";
31161         }
31162         enum "netflow-v5" {
31163           tailf:info "NetFlow Version 5";
31164         }
31165         enum "netflow-v9" {
31166           tailf:info "NetFlow Version 9";
31167         }
31168       }
31169     }
31170     container option {
31171       tailf:info "Select an option for exporting";
31172       description
31173         "Select an option for exporting";
31174       container application-attributes {
31175         tailf:info "Application Attributes Table Option";
31176         description
31177           "Application Attributes Table Option";
31178         presence "true";
31179         uses flow-exporter-option-timeout-grouping;
31180       }
31181       container application-table {
31182         tailf:info "Application Table Option";
31183         description
31184           "Application Table Option";
31185         presence "true";
31186         uses flow-exporter-option-timeout-grouping;
31187       }
31188       container c3pl-class-table {
31189         tailf:info "C3PL class cce-id table";
31190         description
31191           "C3PL class cce-id table";
31192         presence "true";
31193         uses flow-exporter-option-timeout-grouping;
31194       }
31195       container c3pl-policy-table {
31196         tailf:info "C3PL policy cce-id table";
31197         description
31198           "C3PL policy cce-id table";
31199         presence "true";
31200         uses flow-exporter-option-timeout-grouping;
31201       }
31202       container exporter-stats {
31203         tailf:info "Exporter Statistics Option";
31204         description
31205           "Exporter Statistics Option";
31206         presence "true";
31207         uses flow-exporter-option-timeout-grouping;
31208       }
31209       container interface-table {
31210         tailf:info "Interface SNMP-index-to-name Table Option";
31211         description
31212           "Interface SNMP-index-to-name Table Option";
31213         presence "true";
31214         uses flow-exporter-option-timeout-grouping;
31215       }
31216       container metadata-version-table {
31217         tailf:info "Metadata Version Table Option";
31218         description
31219           "Metadata Version Table Option";
31220         presence "true";
31221         uses flow-exporter-option-timeout-grouping;
31222       }
31223       container sampler-table {
31224         tailf:info "Export Sampler Option";
31225         description
31226           "Export Sampler Option";
31227         presence "true";
31228         uses flow-exporter-option-timeout-grouping;
31229       }
31230       container sub-application-table {
31231         tailf:info "Sub Application Table Option";
31232         description
31233           "Sub Application Table Option";
31234         presence "true";
31235         uses flow-exporter-option-timeout-grouping;
31236       }
31237       container vrf-table {
31238         tailf:info "VRF ID-to-name Table Option";
31239         description
31240           "VRF ID-to-name Table Option";
31241         presence "true";
31242         uses flow-exporter-option-timeout-grouping;
31243       }
31244     }
31245     container output-features {
31246       presence "true";
31247     }
31248     container source {
31249       tailf:info "Originating interface";
31250       description
31251         "Originating interface";
31252       uses interface-grouping;
31253     }
31254     container template {
31255       tailf:info "Flow Exporter template configuration";
31256       description
31257         "Flow Exporter template configuration";
31258       container data {
31259         tailf:info "Flow Exporter data configuration";
31260         description
31261           "Flow Exporter data configuration";
31262         leaf timeout {
31263           tailf:info "Resend data based on a timeout";
31264           description
31265             "Resend data based on a timeout";
31266           tailf:cli-full-command;
31267           type uint32 {
31268             tailf:info "<1-86400>;;Value given in seconds";
31269             range "1..86400";
31270           }
31271         }
31272       }
31273     }
31274     container transport {
31275       tailf:info "Transport protocol";
31276       description
31277         "Transport protocol";
31278       leaf udp {
31279         tailf:info "UDP transport protocol";
31280         description
31281           "UDP transport protocol";
31282         tailf:cli-full-command;
31283         type uint16 {
31284           tailf:info " <1-65535>;;Port value";
31285         }
31286       }
31287     }
31288     leaf ttl {
31289       tailf:info "Optional TTL or hop limit";
31290       description
31291         "Optional TTL or hop limit";
31292       tailf:cli-full-command;
31293       type uint8 {
31294         tailf:info "<1-255>;;TTL value";
31295       }
31296     }
31297   }
31298
31299   grouping flow-default-exporter-grouping {
31300     leaf description {
31301       tailf:info "Provide a description for this Flow Exporter";
31302       description
31303         "Provide a description for this Flow Exporter";
31304       tailf:cli-full-command;
31305       type empty;
31306     }
31307     leaf dscp {
31308       tailf:info "Optional DSCP";
31309       description
31310         "Optional DSCP";
31311       tailf:cli-full-command;
31312       type empty;
31313     }
31314     leaf export-protocol {
31315       tailf:info "Export protocol version";
31316       description
31317         "Export protocol version";
31318       tailf:cli-full-command;
31319       type empty;
31320     }
31321     container option {
31322       tailf:info "Select an option for exporting";
31323       description
31324         "Select an option for exporting";
31325       container application-attributes {
31326         tailf:info "Application Attributes Table Option";
31327         description
31328           "Application Attributes Table Option";
31329         presence "true";
31330       }
31331       container c3pl-class-table {
31332         tailf:info "C3PL class cce-id table";
31333         description
31334           "C3PL class cce-id table";
31335         presence "true";
31336       }
31337       container c3pl-policy-table {
31338         tailf:info "C3PL policy cce-id table";
31339         description
31340           "C3PL policy cce-id table";
31341         presence "true";
31342       }
31343       container exporter-stats {
31344         tailf:info "Exporter Statistics Option";
31345         description
31346           "Exporter Statistics Option";
31347         presence "true";
31348       }
31349       container interface-table {
31350         tailf:info "Interface SNMP-index-to-name Table Option";
31351         description
31352           "Interface SNMP-index-to-name Table Option";
31353         presence "true";
31354       }
31355       container metadata-version-table {
31356         tailf:info "Metadata Version Table Option";
31357         description
31358           "Metadata Version Table Option";
31359         presence "true";
31360       }
31361       container sampler-table {
31362         tailf:info "Export Sampler Option";
31363         description
31364           "Export Sampler Option";
31365         presence "true";
31366       }
31367       container sub-application-table {
31368         tailf:info "Sub Application Table Option";
31369         description
31370           "Sub Application Table Option";
31371         presence "true";
31372       }
31373       container vrf-table {
31374         tailf:info "VRF ID-to-name Table Option";
31375         description
31376           "VRF ID-to-name Table Option";
31377         presence "true";
31378       }
31379     }
31380     container template {
31381       tailf:info "Flow Exporter template configuration";
31382       description
31383         "Flow Exporter template configuration";
31384       container data {
31385         tailf:info "Flow Exporter data configuration";
31386         description
31387           "Flow Exporter data configuration";
31388         leaf timeout {
31389           tailf:info "Resend data based on a timeout";
31390           description
31391             "Resend data based on a timeout";
31392           tailf:cli-full-command;
31393           type empty;
31394         }
31395       }
31396     }
31397     leaf transport {
31398       tailf:info "Transport protocol";
31399       description
31400         "Transport protocol";
31401       tailf:cli-full-command;
31402       type empty;
31403     }
31404     leaf ttl {
31405       tailf:info "Optional TTL or hop limit";
31406       description
31407         "Optional TTL or hop limit";
31408       tailf:cli-full-command;
31409       type empty;
31410     }
31411   }
31412
31413   grouping pm-context-traffic-monitor-app-traffic-stats-grouping {
31414     leaf cache-size {
31415       tailf:info "Maximum flow entries in the Flow Cache";
31416       description
31417         "Maximum flow entries in the Flow Cache";
31418       type uint32 {
31419         tailf:info "<64-2000000>  Maximum number of entries";
31420         range "64..2000000";
31421       }
31422     }
31423     leaf class-replace {
31424       tailf:info "Replace traffic classification";
31425       description
31426         "Replace traffic classification";
31427       type string {
31428         tailf:info "WORD;;User defined class name";
31429       }
31430     }
31431     leaf interval-timeout {
31432       tailf:info "The exporting interval timeout";
31433       description
31434         "The exporting interval timeout";
31435       type uint32 {
31436         tailf:info "<1-604800>;;Export interval timeout";
31437         range "1..604800";
31438       }
31439     }
31440   }
31441
31442   grouping pm-context-traffic-monitor-ip-grouping {
31443     leaf ipv4 {
31444       tailf:info "Activate monitor for ipv4 traffic";
31445       description
31446         "Activate monitor for ipv4 traffic";
31447       type empty;
31448     }
31449     leaf ipv6 {
31450       tailf:info "Activate monitor for ipv6 traffic";
31451       description
31452         "Activate monitor for ipv6 traffic";
31453       type empty;
31454     }
31455   }
31456
31457   grouping performance-monitor-context-grouping {
31458     container exporter {
31459       tailf:info "Create exporter";
31460       description
31461         "Create exporter";
31462       tailf:cli-sequence-commands {
31463         tailf:cli-reset-all-siblings;
31464       }
31465       tailf:cli-compact-syntax;
31466       leaf destination {
31467         tailf:info "Export destination configuration";
31468         description
31469           "Export destination configuration";
31470         type inet:ip-address {
31471           tailf:info "Hostname or A.B.C.D;;Destination IPv4 address or hostnameHostname or X:X:X:X::X;;Destination IPv6 address or hostname";
31472         }
31473       }
31474       leaf source {
31475         tailf:info "Originating interface";
31476         description
31477           "Originating interface";
31478         type string;
31479       }
31480       leaf port {
31481         tailf:info "port";
31482         description
31483           "port";
31484         tailf:cli-break-sequence-commands;
31485         type uint16 {
31486           tailf:info "<1-65535>;;Optional port value";
31487         }
31488       }
31489       leaf transport {
31490         tailf:info "transport";
31491         description
31492           "transport";
31493         type enumeration {
31494           enum "udp" {
31495             tailf:info "UDP transport protocol";
31496           }
31497         }
31498       }
31499       leaf vrf {
31500         tailf:info "vrf";
31501         description
31502           "vrf";
31503         type string {
31504           tailf:info "WORD;;VRF label";
31505         }
31506       }
31507     }
31508     container traffic-monitor {
31509       tailf:info "Select traffic monitor";
31510       description
31511         "Select traffic monitor";
31512       container all {
31513         tailf:info "All traffic monitors in this profile";
31514         description
31515           "All traffic monitors in this profile";
31516         when "../../profile = 'application-experience' and ../../profile = 'application-performance'";
31517         presence "true";
31518         leaf ipv4 {
31519           tailf:info "Activate monitor for ipv4 traffic";
31520           description
31521             "Activate monitor for ipv4 traffic";
31522           tailf:cli-full-command;
31523           type empty;
31524         }
31525         leaf ipv6 {
31526           tailf:info "Activate monitor for ipv6 traffic";
31527           description
31528             "Activate monitor for ipv6 traffic";
31529           tailf:cli-full-command;
31530           type empty;
31531         }
31532       }
31533       container application-response-time {
31534         tailf:info "Application response time (ART) metrics and counters for TCP traffic";
31535         description
31536           "Application response time (ART) metrics and counters for TCP traffic";
31537         when "../../profile = 'application-experience' and ../../profile = 'application-performance'";
31538         presence "true";
31539         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31540         leaf cache-type {
31541           tailf:info "The type of the Flow Cache";
31542           description
31543             "The type of the Flow Cache";
31544           type enumeration {
31545             enum "normal" {
31546               tailf:info "Normal flow removal from the Flow Cache";
31547             }
31548             enum "synchronized" {
31549               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31550             }
31551           }
31552         }
31553         leaf class-and {
31554           tailf:info "Narrow down default traffic classification";
31555           description
31556             "Narrow down default traffic classification";
31557           type string {
31558             tailf:info "WORD;;User defined class name";
31559           }
31560         }
31561         uses pm-context-traffic-monitor-ip-grouping;
31562       }
31563       container application-traffic-stats {
31564         tailf:info "Application level counters for dns and dht protocol";
31565         description
31566           "Application level counters for dns and dht protocol";
31567         when "../../profile = 'application-experience'";
31568         presence "true";
31569         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31570       }
31571       container conversation-traffic-stats {
31572         tailf:info "Conversation level counters for IP traffic";
31573         description
31574           "Conversation level counters for IP traffic";
31575         when "../../profile = 'application-experience'";
31576         presence "true";
31577         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31578         leaf cache-type {
31579           tailf:info "The type of the Flow Cache";
31580           description
31581             "The type of the Flow Cache";
31582           type enumeration {
31583             enum "normal" {
31584               tailf:info "Normal flow removal from the Flow Cache";
31585             }
31586             enum "synchronized" {
31587               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31588             }
31589           }
31590         }
31591         uses pm-context-traffic-monitor-ip-grouping;
31592       }
31593       container media {
31594         tailf:info "Media metrics and counters for rtp and telepresence-media traffic";
31595         description
31596           "Media metrics and counters for rtp and telepresence-media traffic";
31597         when "../../profile = 'application-experience' and ../../profile = 'application-performance'";
31598         presence "true";
31599         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31600         leaf class-and {
31601           tailf:info "Narrow down default traffic classification";
31602           description
31603             "Narrow down default traffic classification";
31604           type string {
31605             tailf:info "WORD;;User defined class name";
31606           }
31607         }
31608         leaf egress {
31609           tailf:info "Activate monitor on egress direction";
31610           description
31611             "Activate monitor on egress direction";
31612           type empty;
31613         }
31614         leaf ingress {
31615           tailf:info "Activate monitor on ingress direction";
31616           description
31617             "Activate monitor on ingress direction";
31618           type empty;
31619         }
31620         uses pm-context-traffic-monitor-ip-grouping;
31621       }
31622       container url {
31623         tailf:info "URL information, application response time (ART) metrics and counters";
31624         description
31625           "URL information, application response time (ART) metrics and counters";
31626         when "../../profile = 'application-experience' and ../../profile = 'application-performance'";
31627         presence "true";
31628         leaf cache-size {
31629           tailf:info "Maximum flow entries in the Flow Cache";
31630           description
31631             "Maximum flow entries in the Flow Cache";
31632           type uint32 {
31633             tailf:info "<64-2000000>  Maximum number of entries";
31634             range "64..2000000";
31635           }
31636         }
31637         leaf class-and {
31638           tailf:info "Narrow down default traffic classification";
31639           description
31640             "Narrow down default traffic classification";
31641           type string {
31642             tailf:info "WORD;;User defined class name";
31643           }
31644         }
31645         leaf class-replace {
31646           tailf:info "Replace traffic classification";
31647           description
31648             "Replace traffic classification";
31649           type string {
31650             tailf:info "WORD;;User defined class name";
31651           }
31652         }
31653         uses pm-context-traffic-monitor-ip-grouping;
31654         leaf sampling-rate {
31655           tailf:info "Sampling rate of flow sampler";
31656           description
31657             "Sampling rate of flow sampler";
31658           type uint32 {
31659             tailf:info "<1-32768>;;Sampler rate";
31660             range "1..32768";
31661           }
31662         }
31663       }
31664       container application-client-server-stats {
31665         tailf:info "Per interface, client, server and application statistics";
31666         description
31667           "Per interface, client, server and application statistics";
31668         presence "true";
31669         when "../../profile = 'application-performance' and ../../profile = 'application-statistics'";
31670         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31671         leaf cache-type {
31672           tailf:info "The type of the Flow Cache";
31673           description
31674             "The type of the Flow Cache";
31675           type enumeration {
31676             enum "normal" {
31677               tailf:info "Normal flow removal from the Flow Cache";
31678             }
31679             enum "synchronized" {
31680               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31681             }
31682           }
31683         }
31684         uses pm-context-traffic-monitor-ip-grouping;
31685       }
31686       container application-stats {
31687         tailf:info "Per application and interface statistics";
31688         description
31689           "Per application and interface statistics";
31690         presence "true";
31691         when "../../profile = 'application-performance' and ../../profile = 'application-statistics'";
31692         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31693       }
31694     }
31695   }
31696
31697   grouping performance-monitor-context-default-grouping {
31698     container exporter {
31699       tailf:info "Create exporter";
31700       description
31701         "Create exporter";
31702       tailf:cli-sequence-commands {
31703         tailf:cli-reset-all-siblings;
31704       }
31705       tailf:cli-compact-syntax;
31706       leaf destination {
31707         tailf:info "Export destination configuration";
31708         description
31709           "Export destination configuration";
31710         type inet:ip-address {
31711           tailf:info "Hostname or A.B.C.D;;Destination IPv4 address or hostnameHostname or X:X:X:X::X;;Destination IPv6 address or hostname";
31712         }
31713       }
31714       leaf source {
31715         tailf:info "Originating interface";
31716         description
31717           "Originating interface";
31718         type string;
31719       }
31720       leaf port {
31721         tailf:info "port";
31722         description
31723           "port";
31724         tailf:cli-break-sequence-commands;
31725         type uint16 {
31726           tailf:info "<1-65535>;;Optional port value";
31727         }
31728       }
31729       leaf transport {
31730         tailf:info "transport";
31731         description
31732           "transport";
31733         type enumeration {
31734           enum "udp" {
31735             tailf:info "UDP transport protocol";
31736           }
31737         }
31738       }
31739       leaf vrf {
31740         tailf:info "vrf";
31741         description
31742           "vrf";
31743         type string {
31744           tailf:info "WORD;;VRF label";
31745         }
31746       }
31747     }
31748     container traffic-monitor {
31749       tailf:info "Select traffic monitor";
31750       description
31751         "Select traffic monitor";
31752       container all {
31753         tailf:info "All traffic monitors in this profile";
31754         description
31755           "All traffic monitors in this profile";
31756         when "../../../profile = 'application-experience' and ../../../profile = 'application-performance'";
31757         presence "true";
31758         leaf ipv4 {
31759           tailf:info "Activate monitor for ipv4 traffic";
31760           description
31761             "Activate monitor for ipv4 traffic";
31762           tailf:cli-full-command;
31763           type empty;
31764         }
31765         leaf ipv6 {
31766           tailf:info "Activate monitor for ipv6 traffic";
31767           description
31768             "Activate monitor for ipv6 traffic";
31769           tailf:cli-full-command;
31770           type empty;
31771         }
31772       }
31773       container application-response-time {
31774         tailf:info "Application response time (ART) metrics and counters for TCP traffic";
31775         description
31776           "Application response time (ART) metrics and counters for TCP traffic";
31777         when "../../../profile = 'application-experience' and ../../../profile = 'application-performance'";
31778         presence "true";
31779         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31780         leaf cache-type {
31781           tailf:info "The type of the Flow Cache";
31782           description
31783             "The type of the Flow Cache";
31784           type enumeration {
31785             enum "normal" {
31786               tailf:info "Normal flow removal from the Flow Cache";
31787             }
31788             enum "synchronized" {
31789               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31790             }
31791           }
31792         }
31793         leaf class-and {
31794           tailf:info "Narrow down default traffic classification";
31795           description
31796             "Narrow down default traffic classification";
31797           type string {
31798             tailf:info "WORD;;User defined class name";
31799           }
31800         }
31801         uses pm-context-traffic-monitor-ip-grouping;
31802       }
31803       container application-traffic-stats {
31804         tailf:info "Application level counters for dns and dht protocol";
31805         description
31806           "Application level counters for dns and dht protocol";
31807         when "../../../profile = 'application-experience'";
31808         presence "true";
31809         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31810       }
31811       container conversation-traffic-stats {
31812         tailf:info "Conversation level counters for IP traffic";
31813         description
31814           "Conversation level counters for IP traffic";
31815         when "../../../profile = 'application-experience'";
31816         presence "true";
31817         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31818         leaf cache-type {
31819           tailf:info "The type of the Flow Cache";
31820           description
31821             "The type of the Flow Cache";
31822           type enumeration {
31823             enum "normal" {
31824               tailf:info "Normal flow removal from the Flow Cache";
31825             }
31826             enum "synchronized" {
31827               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31828             }
31829           }
31830         }
31831         uses pm-context-traffic-monitor-ip-grouping;
31832       }
31833       container media {
31834         tailf:info "Media metrics and counters for rtp and telepresence-media traffic";
31835         description
31836           "Media metrics and counters for rtp and telepresence-media traffic";
31837         when "../../../profile = 'application-experience' and ../../../profile = 'application-performance'";
31838         presence "true";
31839         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31840         leaf class-and {
31841           tailf:info "Narrow down default traffic classification";
31842           description
31843             "Narrow down default traffic classification";
31844           type string {
31845             tailf:info "WORD;;User defined class name";
31846           }
31847         }
31848         leaf egress {
31849           tailf:info "Activate monitor on egress direction";
31850           description
31851             "Activate monitor on egress direction";
31852           type empty;
31853         }
31854         leaf ingress {
31855           tailf:info "Activate monitor on ingress direction";
31856           description
31857             "Activate monitor on ingress direction";
31858           type empty;
31859         }
31860         uses pm-context-traffic-monitor-ip-grouping;
31861       }
31862       container url {
31863         tailf:info "URL information, application response time (ART) metrics and counters";
31864         description
31865           "URL information, application response time (ART) metrics and counters";
31866         when "../../../profile = 'application-experience' and ../../../profile = 'application-performance'";
31867         presence "true";
31868         leaf cache-size {
31869           tailf:info "Maximum flow entries in the Flow Cache";
31870           description
31871             "Maximum flow entries in the Flow Cache";
31872           type uint32 {
31873             tailf:info "<64-2000000>  Maximum number of entries";
31874             range "64..2000000";
31875           }
31876         }
31877         leaf class-and {
31878           tailf:info "Narrow down default traffic classification";
31879           description
31880             "Narrow down default traffic classification";
31881           type string {
31882             tailf:info "WORD;;User defined class name";
31883           }
31884         }
31885         leaf class-replace {
31886           tailf:info "Replace traffic classification";
31887           description
31888             "Replace traffic classification";
31889           type string {
31890             tailf:info "WORD;;User defined class name";
31891           }
31892         }
31893         uses pm-context-traffic-monitor-ip-grouping;
31894         leaf sampling-rate {
31895           tailf:info "Sampling rate of flow sampler";
31896           description
31897             "Sampling rate of flow sampler";
31898           type uint32 {
31899             tailf:info "<1-32768>;;Sampler rate";
31900             range "1..32768";
31901           }
31902         }
31903       }
31904       container application-client-server-stats {
31905         tailf:info "Per interface, client, server and application statistics";
31906         description
31907           "Per interface, client, server and application statistics";
31908         presence "true";
31909         when "../../../profile = 'application-performance' and ../../../profile = 'application-statistics'";
31910         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31911         leaf cache-type {
31912           tailf:info "The type of the Flow Cache";
31913           description
31914             "The type of the Flow Cache";
31915           type enumeration {
31916             enum "normal" {
31917               tailf:info "Normal flow removal from the Flow Cache";
31918             }
31919             enum "synchronized" {
31920               tailf:info "The periodic and synchronized removal of all flows from the Flow Cache";
31921             }
31922           }
31923         }
31924         uses pm-context-traffic-monitor-ip-grouping;
31925       }
31926       container application-stats {
31927         tailf:info "Per application and interface statistics";
31928         description
31929           "Per application and interface statistics";
31930         presence "true";
31931         when "../../../profile = 'application-performance' and ../../../profile = 'application-statistics'";
31932         uses pm-context-traffic-monitor-app-traffic-stats-grouping;
31933       }
31934     }
31935   }
31936
31937   grouping ip-nbar-attribute-custom-grouping {
31938     list custom {
31939       tailf:info "custom group value to be created for attribute";
31940       description
31941         "custom group value to be created for attribute";
31942       tailf:cli-suppress-mode;
31943       key "name";
31944       leaf name {
31945         type string {
31946           tailf:info "WORD;;Custom group value";
31947         }
31948       }
31949       leaf help {
31950         tailf:cli-drop-node-name;
31951         type string {
31952           tailf:info "WORD;;Help string";
31953         }
31954       }
31955     }
31956   }
31957
31958   grouping crypto-map-common-grouping {
31959     leaf description {
31960       tailf:info "Description of the crypto map statement policy";
31961       description
31962         "Description of the crypto map statement policy";
31963       tailf:cli-multi-value;
31964       type string {
31965         tailf:info "LINE;;A Short description";
31966       }
31967     }
31968     container dialer {
31969       tailf:info "Dialer related commands";
31970       description
31971         "Dialer related commands";
31972       leaf pre-classify {
31973         tailf:info "Enable dialer list classification before initiating IKE";
31974         description
31975           "Enable dialer list classification before initiating IKE";
31976         type empty;
31977       }
31978     }
31979     container match {
31980       tailf:info "Match values";
31981       description
31982         "Match values";
31983       leaf address {
31984         tailf:info "Match address of packets to encrypt";
31985         description
31986           "Match address of packets to encrypt";
31987         type ext-acl-type;
31988       }
31989     }
31990     container qos {
31991       tailf:info "Quality of Service related commands";
31992       description
31993         "Quality of Service related commands";
31994       leaf pre-classify {
31995         tailf:info "Enable QOS classification before packets are tunnel encapsulated";
31996         description
31997           "Enable QOS classification before packets are tunnel encapsulated";
31998         type empty;
31999       }
32000     }
32001     container reverse-route {
32002       tailf:info "Reverse Route Injection.";
32003       description
32004         "Reverse Route Injection.";
32005       presence "true";
32006       choice remote-peer-static {
32007         case remote-peer-case {
32008           container remote-peer-conatiner {
32009             tailf:cli-drop-node-name;
32010             tailf:cli-sequence-commands;
32011             tailf:cli-compact-syntax;
32012             leaf remote-peer {
32013               tailf:info "Create route in route table for remote tunnel endpoint";
32014               description
32015                 "Create route in route table for remote tunnel endpoint";
32016               type inet:ip-address {
32017                 tailf:info "A.B.C.D;;IPv4 address overrides remote tunnel endpointX:X:X:X::X;;IPv6 address overrides remote tunnel endpoint";
32018               }
32019             }
32020             leaf gateway {
32021               tailf:info "Force encrypted traffic via this preferred gateway";
32022               description
32023                 "Force encrypted traffic via this preferred gateway";
32024               tailf:cli-break-sequence-commands;
32025               type empty;
32026             }
32027             leaf static {
32028               tailf:info "Create routes based on static ACLs permanently";
32029               description
32030                 "Create routes based on static ACLs permanently";
32031               type empty;
32032             }
32033           }
32034         }
32035         case static-case {
32036           leaf static {
32037             tailf:info "Create routes based on static ACLs permanently";
32038             description
32039               "Create routes based on static ACLs permanently";
32040             type empty;
32041           }
32042         }
32043       }
32044     }
32045   }
32046
32047   grouping crypto-map-common-set-security-association-grouping {
32048     leaf dfbit {
32049       tailf:info "Handling of encapsulated DF bit.";
32050       description
32051         "Handling of encapsulated DF bit.";
32052       type enumeration {
32053         enum "clear" {
32054           tailf:info "Clear DF bit for encapsulated packets.";
32055         }
32056         enum "copy" {
32057           tailf:info "Copy DF bit from inner for encapsulated packets.";
32058         }
32059         enum "set" {
32060           tailf:info "Set DF bit for encapsulated packets.";
32061         }
32062       }
32063     }
32064     container dummy {
32065       tailf:info "Enable transmitting dummy packets";
32066       description
32067         "Enable transmitting dummy packets";
32068       leaf pps {
32069         tailf:info "Simulated traffic rate (in pps)";
32070         description
32071           "Simulated traffic rate (in pps)";
32072         type uint8 {
32073           tailf:info "<0-25>;;Rate of simulated traffic (in PPS)";
32074           range "0..25";
32075         }
32076       }
32077       leaf seconds {
32078         tailf:info "Simulated traffic rate (in seconds)";
32079         description
32080           "Simulated traffic rate (in seconds)";
32081         type uint16 {
32082           tailf:info "<1-3600>;;Rate of simulated traffic (seconds between packets)";
32083           range "1..3600";
32084         }
32085       }
32086     }
32087     leaf ecn {
32088       tailf:info "Handling of ECN bit";
32089       description
32090         "Handling of ECN bit";
32091       type enumeration {
32092         enum "discard" {
32093           tailf:info "Discard the Explicit Congestion Notification bits on decryption";
32094         }
32095         enum "propagate" {
32096           tailf:info "Propagate the Explicit Congestion Notification bits on decryption (RFC4301)";
32097         }
32098       }
32099     }
32100     container idle-time-container {
32101       tailf:cli-drop-node-name;
32102       tailf:cli-sequence-commands;
32103       tailf:cli-compact-syntax;
32104       leaf idle-time {
32105         tailf:info "Automatically delete IPSec SAs after a given idle period.";
32106         description
32107           "Automatically delete IPSec SAs after a given idle period.";
32108         type uint32 {
32109           tailf:info "<60-86400>;;Idle time at which IPSec SAs are deleted";
32110           range "60..86400";
32111         }
32112       }
32113       leaf default {
32114         tailf:info "All SAs idle-out reset to default peer";
32115         description
32116           "All SAs idle-out reset to default peer";
32117         tailf:cli-optional-in-sequence;
32118         type empty;
32119       }
32120     }
32121     container lifetime {
32122       tailf:info "security association lifetime";
32123       description
32124         "security association lifetime";
32125       leaf days {
32126         tailf:info "Time-based key duration in days";
32127         description
32128           "Time-based key duration in days";
32129         type uint8 {
32130           tailf:info "<1-30>;;Security association duration in days";
32131           range "1..30";
32132         }
32133       }
32134       leaf kilobytes {
32135         tailf:info "Volume-based key duration";
32136         description
32137           "Volume-based key duration";
32138         type union {
32139           type uint64 {
32140             tailf:info "<2560-4294967295>;;Security association duration in kilobytes encrypted";
32141             range "2560..4294967295";
32142           }
32143           type enumeration {
32144             enum "disable" {
32145               tailf:info "Disable Volume-based Rekey";
32146             }
32147           }
32148         }
32149       }
32150       leaf seconds {
32151         tailf:info "Time-based key duration in seconds";
32152         description
32153           "Time-based key duration in seconds";
32154         type uint64 {
32155           tailf:info "<120-2592000>;;Security association duration in seconds";
32156           range "120..2592000";
32157         }
32158       }
32159     }
32160     container replay {
32161       tailf:info "Set replay checking.";
32162       description
32163         "Set replay checking.";
32164       leaf disable {
32165         tailf:info "Disable replay checking";
32166         description
32167           "Disable replay checking";
32168         type empty;
32169       }
32170       leaf window-size {
32171         tailf:info "Set replay window size.";
32172         description
32173           "Set replay window size.";
32174         type enumeration {
32175           enum "1024" {
32176             tailf:info "Window size of 1024";
32177           }
32178           enum "128" {
32179             tailf:info "Window size of 128";
32180           }
32181           enum "256" {
32182             tailf:info "Window size of 256";
32183           }
32184           enum "512" {
32185             tailf:info "Window size of 512";
32186           }
32187           enum "64" {
32188             tailf:info "Window size of 64 (default)";
32189           }
32190         }
32191       }
32192     }
32193   }
32194
32195   grouping crypto-map-common-set-grouping {
32196     leaf group {
32197       tailf:info "Set the san group parameters";
32198       description
32199         "Set the san group parameters";
32200       type string {
32201         tailf:info "WORD;;Set GDOI san group name";
32202       }
32203     }
32204     leaf identity {
32205       tailf:info "Identity restriction";
32206       description
32207         "Identity restriction";
32208       type string {
32209         tailf:info "WORD;;Identity name";
32210       }
32211     }
32212     leaf ikev2-profile {
32213       tailf:info "Specify ikev2 Profile";
32214       description
32215         "Specify ikev2 Profile";
32216       type string {
32217         tailf:info "WORD;;Name the ikev2 profile";
32218       }
32219     }
32220     leaf isakmp-profile {
32221       tailf:info "Specify isakmp Profile";
32222       description
32223         "Specify isakmp Profile";
32224       type string {
32225         tailf:info "WORD;;Name the isakmp profile";
32226       }
32227     }
32228     container peer {
32229       tailf:info "Allowed Encryption/Decryption peer.";
32230       description
32231         "Allowed Encryption/Decryption peer.";
32232       tailf:cli-sequence-commands;
32233       tailf:cli-compact-syntax;
32234       leaf address {
32235         tailf:cli-drop-node-name;
32236         type union {
32237           type inet:ipv4-address {
32238             tailf:info "A.B.C.D;;IP address of peer";
32239           }
32240           type string {
32241             tailf:info "WORD;;Host name of the peer";
32242           }
32243           type inet:ipv6-address {
32244             tailf:info "X:X:X:X::X;;IPv6 address of peer";
32245           }
32246         }
32247       }
32248       leaf default {
32249         tailf:info "Reset to default peer in list in the event of a failure";
32250         description
32251           "Reset to default peer in list in the event of a failure";
32252         tailf:cli-break-sequence-commands;
32253         type empty;
32254       }
32255       leaf dynamic {
32256         tailf:info "Resolve the peer address at the time of negotiation";
32257         description
32258           "Resolve the peer address at the time of negotiation";
32259         type empty;
32260       }
32261     }
32262     container pfs {
32263       tailf:info "Specify pfs settings";
32264       description
32265         "Specify pfs settings";
32266       presence "true";
32267       leaf group {
32268         tailf:cli-drop-node-name;
32269         type enumeration {
32270           enum "group1" {
32271             tailf:info "D-H Group1 (768-bit modp)";
32272           }
32273           enum "group14" {
32274             tailf:info "D-H Group14 (2048-bit modp)";
32275           }
32276           enum "group15" {
32277             tailf:info "D-H Group15 (3072-bit modp)";
32278           }
32279           enum "group16" {
32280             tailf:info "D-H Group16 (4096-bit modp)";
32281           }
32282           enum "group19" {
32283             tailf:info "D-H Group19 (256-bit ecp)";
32284           }
32285           enum "group2" {
32286             tailf:info "D-H Group2 (1024-bit modp)";
32287           }
32288           enum "group20" {
32289             tailf:info "D-H Group20 (384-bit ecp)";
32290           }
32291           enum "group21" {
32292             tailf:info "D-H Group21 (521-bit ecp)";
32293           }
32294           enum "group24" {
32295             tailf:info "D-H Group24 (2048-bit modp, 256 bit subgroup)";
32296           }
32297           enum "group5" {
32298             tailf:info "D-H Group5 (1536-bit modp)";
32299           }
32300         }
32301       }
32302     }
32303     container reverse-route {
32304       tailf:info "Reverse Route Injection";
32305       description
32306         "Reverse Route Injection";
32307       leaf distance {
32308         tailf:info "Distance metric for this static route";
32309         description
32310           "Distance metric for this static route";
32311         type uint8 {
32312           tailf:info "<1-255>;;Routing distance";
32313         }
32314       }
32315       leaf tag {
32316         tailf:info "Create route and tag it";
32317         description
32318           "Create route and tag it";
32319         type uint64 {
32320           tailf:info "<1-4294967295>;;Routing Tag ID";
32321           range "1..4294967295";
32322         }
32323       }
32324     }
32325     leaf-list transform-set {
32326       tailf:info "Specify list of transform sets in priority order";
32327       description
32328         "Specify list of transform sets in priority order";
32329       type string {
32330         tailf:info "WORD;;Proposal tag";
32331       }
32332     }
32333   }
32334
32335   grouping crypto-dynamic-map-grouping {
32336     uses crypto-map-common-grouping;
32337     container set {
32338       tailf:info "Set values for encryption/decryption";
32339       description
32340         "Set values for encryption/decryption";
32341       uses crypto-map-common-set-grouping;
32342       container ip-in {
32343         tailf:cli-drop-node-name;
32344         container ip {
32345           tailf:info "Interface Internet Protocol config commands";
32346           description
32347             "Interface Internet Protocol config commands";
32348           tailf:cli-sequence-commands;
32349           tailf:cli-compact-syntax;
32350           leaf access-group {
32351             tailf:info "Specify access control for packets";
32352             description
32353               "Specify access control for packets";
32354             type exp-acl-type;
32355           }
32356           leaf in {
32357             tailf:info "inbound packets";
32358             description
32359               "inbound packets";
32360             type empty;
32361           }
32362         }
32363       }
32364       container ip-out {
32365         tailf:cli-drop-node-name;
32366         container ip {
32367           tailf:info "Interface Internet Protocol config commands";
32368           description
32369             "Interface Internet Protocol config commands";
32370           tailf:cli-sequence-commands;
32371           tailf:cli-compact-syntax;
32372           leaf access-group {
32373             tailf:info "Specify access control for packets";
32374             description
32375               "Specify access control for packets";
32376             type exp-acl-type;
32377           }
32378           leaf out {
32379             tailf:info "outbound packets";
32380             description
32381               "outbound packets";
32382             type empty;
32383           }
32384         }
32385       }
32386       container nat {
32387         tailf:info "Set NAT translation";
32388         description
32389           "Set NAT translation";
32390         leaf demux {
32391           tailf:info "Set NAT demultiplexing";
32392           description
32393             "Set NAT demultiplexing";
32394           type empty;
32395         }
32396       }
32397       container peer-container {
32398         tailf:cli-drop-node-name;
32399         tailf:cli-sequence-commands;
32400         tailf:cli-compact-syntax;
32401         leaf peer {
32402           tailf:info "Allowed Encryption/Decryption peer.";
32403           description
32404             "Allowed Encryption/Decryption peer.";
32405           type host-v4v6-type;
32406         }
32407         leaf default {
32408           tailf:info "Reset to default peer in list in the event of a failure";
32409           description
32410             "Reset to default peer in list in the event of a failure";
32411           tailf:cli-optional-in-sequence;
32412           type empty;
32413         }
32414       }
32415       container security-association {
32416         tailf:info "Security association parameters";
32417         description
32418           "Security association parameters";
32419         uses crypto-map-common-set-security-association-grouping;
32420       }
32421     }
32422   }
32423
32424   grouping crypto-dynamic-map-default-grouping {
32425     leaf description {
32426       tailf:info "Description of the crypto map statement policy";
32427       description
32428         "Description of the crypto map statement policy";
32429       type empty;
32430     }
32431     container dialer {
32432       tailf:info "Dialer related commands";
32433       description
32434         "Dialer related commands";
32435       leaf pre-classify {
32436         tailf:info "Enable dialer list classification before initiating IKE";
32437         description
32438           "Enable dialer list classification before initiating IKE";
32439         type empty;
32440       }
32441     }
32442     container match {
32443       tailf:info "Match values";
32444       description
32445         "Match values";
32446       leaf address {
32447         tailf:info "Match address of packets to encrypt";
32448         description
32449           "Match address of packets to encrypt";
32450         type empty;
32451       }
32452     }
32453     container qos {
32454       tailf:info "Quality of Service related commands";
32455       description
32456         "Quality of Service related commands";
32457       leaf pre-classify {
32458         tailf:info "Enable QOS classification before packets are tunnel encapsulated";
32459         description
32460           "Enable QOS classification before packets are tunnel encapsulated";
32461         type empty;
32462       }
32463     }
32464     container reverse-route {
32465       tailf:info "Reverse Route Injection.";
32466       description
32467         "Reverse Route Injection.";
32468       presence "true";
32469     }
32470     container set {
32471       tailf:info "Set values for encryption/decryption";
32472       description
32473         "Set values for encryption/decryption";
32474       leaf group {
32475         tailf:info "Set the san group parameters";
32476         description
32477           "Set the san group parameters";
32478         type empty;
32479       }
32480       leaf identity {
32481         tailf:info "Identity restriction";
32482         description
32483           "Identity restriction";
32484         type empty;
32485       }
32486       leaf ikev2-profile {
32487         tailf:info "Specify ikev2 Profile";
32488         description
32489           "Specify ikev2 Profile";
32490         type string {
32491           tailf:info "WORD;;Name the ikev2 profile";
32492         }
32493       }
32494       container ip {
32495         tailf:info "Interface Internet Protocol config commands";
32496         description
32497           "Interface Internet Protocol config commands";
32498         tailf:cli-sequence-commands;
32499         tailf:cli-compact-syntax;
32500         leaf access-group {
32501           tailf:info "Specify access control for packets";
32502           description
32503             "Specify access control for packets";
32504           type exp-acl-type;
32505         }
32506         leaf direction {
32507           tailf:cli-drop-node-name;
32508           type enumeration {
32509             enum "in" {
32510               tailf:info "inbound packets";
32511             }
32512             enum "out" {
32513               tailf:info "outbound packets";
32514             }
32515           }
32516         }
32517       }
32518       leaf isakmp-profile {
32519         tailf:info "Specify isakmp Profile";
32520         description
32521           "Specify isakmp Profile";
32522         type string {
32523           tailf:info "WORD;;Name the isakmp profile";
32524         }
32525       }
32526       container nat {
32527         tailf:info "Set NAT translation";
32528         description
32529           "Set NAT translation";
32530         leaf demux {
32531           tailf:info "Set NAT demultiplexing";
32532           description
32533             "Set NAT demultiplexing";
32534           type empty;
32535         }
32536       }
32537       container peer-container {
32538         tailf:cli-drop-node-name;
32539         tailf:cli-sequence-commands;
32540         tailf:cli-compact-syntax;
32541         leaf peer {
32542           tailf:info "Allowed Encryption/Decryption peer.";
32543           description
32544             "Allowed Encryption/Decryption peer.";
32545           type host-v4v6-type;
32546         }
32547         leaf default {
32548           tailf:info "Reset to default peer in list in the event of a failure";
32549           description
32550             "Reset to default peer in list in the event of a failure";
32551           tailf:cli-optional-in-sequence;
32552           type empty;
32553         }
32554       }
32555       container pfs {
32556         tailf:info "Specify pfs settings";
32557         description
32558           "Specify pfs settings";
32559         presence "true";
32560       }
32561       container reverse-route {
32562         tailf:info "Reverse Route Injection";
32563         description
32564           "Reverse Route Injection";
32565         presence "true";
32566       }
32567       container security-association {
32568         tailf:info "Security association parameters";
32569         description
32570           "Security association parameters";
32571         leaf dfbit {
32572           tailf:info "Handling of encapsulated DF bit.";
32573           description
32574             "Handling of encapsulated DF bit.";
32575           type empty;
32576         }
32577         container dummy {
32578           tailf:info "Enable transmitting dummy packets";
32579           description
32580             "Enable transmitting dummy packets";
32581           presence "true";
32582         }
32583         leaf ecn {
32584           tailf:info "Handling of ECN bit";
32585           description
32586             "Handling of ECN bit";
32587           type empty;
32588         }
32589         container idle-time-container {
32590           tailf:cli-drop-node-name;
32591           tailf:cli-sequence-commands;
32592           tailf:cli-compact-syntax;
32593           leaf idle-time {
32594             tailf:info "Automatically delete IPSec SAs after a given idle period.";
32595             description
32596               "Automatically delete IPSec SAs after a given idle period.";
32597             type empty;
32598           }
32599           leaf default {
32600             tailf:info "All SAs idle-out reset to default peer";
32601             description
32602               "All SAs idle-out reset to default peer";
32603             tailf:cli-optional-in-sequence;
32604             type empty;
32605           }
32606         }
32607         container lifetime {
32608           tailf:info "security association lifetime";
32609           description
32610             "security association lifetime";
32611           leaf days {
32612             tailf:info "Time-based key duration in days";
32613             description
32614               "Time-based key duration in days";
32615             type empty;
32616           }
32617           leaf kilobytes {
32618             tailf:info "Volume-based key duration";
32619             description
32620               "Volume-based key duration";
32621             type empty;
32622           }
32623           leaf seconds {
32624             tailf:info "Time-based key duration in seconds";
32625             description
32626               "Time-based key duration in seconds";
32627             type empty;
32628           }
32629         }
32630         container replay {
32631           tailf:info "Set replay checking.";
32632           description
32633             "Set replay checking.";
32634           leaf disable {
32635             tailf:info "Disable replay checking";
32636             description
32637               "Disable replay checking";
32638             type empty;
32639           }
32640           leaf window-size {
32641             tailf:info "Set replay window size.";
32642             description
32643               "Set replay window size.";
32644             type empty;
32645           }
32646         }
32647       }
32648       leaf transform-set {
32649         tailf:info "Specify list of transform sets in priority order";
32650         description
32651           "Specify list of transform sets in priority order";
32652         type empty;
32653       }
32654     }
32655   }
32656
32657   grouping crypto-gkm-local-server-id-grouping {
32658     container range {
32659       tailf:info "Assign range of Key Server Sender IDs (unique in entire group)";
32660       description
32661         "Assign range of Key Server Sender IDs (unique in entire group)";
32662       tailf:cli-sequence-commands;
32663       tailf:cli-compact-syntax;
32664       leaf lowest {
32665         tailf:cli-drop-node-name;
32666         type uint8 {
32667           tailf:info "<0-1>;;Lowest Key Server Sender ID in range (unique in entire group)";
32668           range "0..1";
32669         }
32670       }
32671       leaf hyphen {
32672         tailf:alt-name "-";
32673         type empty;
32674       }
32675       leaf highest {
32676         tailf:cli-drop-node-name;
32677         type uint8 {
32678           tailf:info "<0-1>;;Highest Key Server Sender ID in range (unique in entire group)";
32679           range "0..1";
32680         }
32681       }
32682     }
32683     leaf value {
32684       tailf:info "Assign Key Server Sender ID (unique in entire group)";
32685       description
32686         "Assign Key Server Sender ID (unique in entire group)";
32687       type uint8 {
32688         tailf:info "<0-1>;;Single Key Server Sender ID (unique in entire group)";
32689         range "0..1";
32690       }
32691     }
32692   }
32693
32694   grouping crypto-gdoi-coop-ks-config-grouping {
32695     container local {
32696       tailf:info "Local key server configurations";
32697       description
32698         "Local key server configurations";
32699       presence "true";
32700       leaf priority {
32701         tailf:info "Set local server priority";
32702         description
32703           "Set local server priority";
32704         type uint8 {
32705           tailf:info "<1-255>;;Local server priority";
32706         }
32707       }
32708     }
32709     container peer {
32710       tailf:info "Peer server configurations";
32711       description
32712         "Peer server configurations";
32713       container address {
32714         tailf:info "Peer server address";
32715         description
32716           "Peer server address";
32717         leaf ipv4 {
32718           tailf:info "Set peer server ipv4 address";
32719           description
32720             "Set peer server ipv4 address";
32721           type inet:ipv4-address {
32722             tailf:info "A.B.C.D;;Peer server ipv4 address";
32723           }
32724         }
32725       }
32726     }
32727     container protocol {
32728       tailf:info "Specify various protocol operational values";
32729       description
32730         "Specify various protocol operational values";
32731       presence "true";
32732       leaf pdu {
32733         tailf:info "Maximum size of COOP messages";
32734         description
32735           "Maximum size of COOP messages";
32736         type uint32 {
32737           tailf:info "<1-65000>;;Maximum number of bytes";
32738           range "1..65000";
32739         }
32740       }
32741       leaf version {
32742         tailf:info "Set COOP ANN version";
32743         description
32744           "Set COOP ANN version";
32745         type enumeration {
32746           enum "base" {
32747             tailf:info "Base version COOP protocol (4000 GM scale)";
32748           }
32749           enum "optimize" {
32750             tailf:info "Optimized version COOP protocol (8000 GM scale)";
32751           }
32752         }
32753       }
32754     }
32755   }
32756
32757   grouping crypto-gkm-sa-ipsec-grouping {
32758     container match {
32759       tailf:info "Match characteristics of packets to encrypt";
32760       description
32761         "Match characteristics of packets to encrypt";
32762       container address {
32763         tailf:info "Match addresses of packets to encrypt";
32764         description
32765           "Match addresses of packets to encrypt";
32766         leaf ipv4 {
32767           tailf:info "Match ipv4 packets";
32768           description
32769             "Match ipv4 packets";
32770           type ext-acl-type;
32771         }
32772         leaf ipv6 {
32773           tailf:info "Match ipv6 packets";
32774           description
32775             "Match ipv6 packets";
32776           type string {
32777             tailf:info "WORD;;Access-list name";
32778           }
32779         }
32780       }
32781     }
32782     leaf profile {
32783       tailf:info "Configure an ipsec profile for the SA";
32784       description
32785         "Configure an ipsec profile for the SA";
32786       type string {
32787         tailf:info "WORD;;Profile name";
32788       }
32789     }
32790     container replay {
32791       tailf:info "Set replay method";
32792       description
32793         "Set replay method";
32794       container counter {
32795         tailf:info "Enable anti-replay check for single source traffic by using sequence number";
32796         description
32797           "Enable anti-replay check for single source traffic by using sequence number";
32798         presence "true";
32799         leaf window-size {
32800           tailf:info "Set replay window size.";
32801           description
32802             "Set replay window size.";
32803           type enumeration {
32804             enum "1024" {
32805               tailf:info "Window size of 1024";
32806             }
32807             enum "128" {
32808               tailf:info "Window size of 128";
32809             }
32810             enum "256" {
32811               tailf:info "Window size of 256";
32812             }
32813             enum "512" {
32814               tailf:info "Window size of 512";
32815             }
32816             enum "64" {
32817               tailf:info "Window size of 64 (default)";
32818             }
32819           }
32820         }
32821       }
32822       container time {
32823         tailf:info "Enable anti-replay check for any traffic by using time";
32824         description
32825           "Enable anti-replay check for any traffic by using time";
32826         presence "true";
32827         leaf window-size {
32828           tailf:info "Time based replay window size";
32829           description
32830             "Time based replay window size";
32831           type uint8 {
32832             tailf:info "<1-100>;;Window-size seconds";
32833             range "1..100";
32834           }
32835         }
32836       }
32837     }
32838     container tag {
32839       tailf:info "Set inline tagging method";
32840       description
32841         "Set inline tagging method";
32842       container cts {
32843         tailf:info "Cisco Trust Security";
32844         description
32845           "Cisco Trust Security";
32846         leaf sgt {
32847           tailf:info "Security Group Tag";
32848           description
32849             "Security Group Tag";
32850           type empty;
32851         }
32852       }
32853     }
32854   }
32855
32856   grouping crypto-gkm-sa-ipsec-default-grouping {
32857     container match {
32858       tailf:info "Match characteristics of packets to encrypt";
32859       description
32860         "Match characteristics of packets to encrypt";
32861       container address {
32862         tailf:info "Match addresses of packets to encrypt";
32863         description
32864           "Match addresses of packets to encrypt";
32865         presence "true";
32866       }
32867     }
32868     leaf profile {
32869       tailf:info "Configure an ipsec profile for the SA";
32870       description
32871         "Configure an ipsec profile for the SA";
32872       type empty;
32873     }
32874     container replay {
32875       tailf:info "Set replay method";
32876       description
32877         "Set replay method";
32878       presence "true";
32879     }
32880     container tag {
32881       tailf:info "Set inline tagging method";
32882       description
32883         "Set inline tagging method";
32884       presence "true";
32885     }
32886   }
32887
32888   grouping crypto-gkm-local-server-grouping {
32889     container address {
32890       tailf:info "Configure server source address";
32891       description
32892         "Configure server source address";
32893       leaf ipv4 {
32894         tailf:info "Set ipv4 address of local server";
32895         description
32896           "Set ipv4 address of local server";
32897         type inet:ipv4-address {
32898           tailf:info "A.B.C.D;;IPv4 local address";
32899         }
32900       }
32901     }
32902     container authorization {
32903       tailf:info "Configure authorization for the group";
32904       description
32905         "Configure authorization for the group";
32906       container address {
32907         tailf:info "Set authorization by address";
32908         description
32909           "Set authorization by address";
32910         leaf ipv4 {
32911           tailf:info "Set authorization by address";
32912           description
32913             "Set authorization by address";
32914           type union {
32915             type uint16 {
32916               tailf:info "<1-99>;;Standard IP access-list number";
32917               range "1..99";
32918             }
32919             type string {
32920               tailf:info "WORD;;Access-list name";
32921             }
32922           }
32923         }
32924       }
32925       leaf identity {
32926         tailf:info "Set authorization by identity";
32927         description
32928           "Set authorization by identity";
32929         type string {
32930           tailf:info "WORD;;Identity tag";
32931         }
32932       }
32933     }
32934     leaf gdoi {
32935       tailf:info "Enable GDOI (ISAKMP) Protocol for Registration & Rekey";
32936       description
32937         "Enable GDOI (ISAKMP) Protocol for Registration & Rekey";
32938       tailf:cli-full-command;
32939       type empty;
32940     }
32941     leaf gikev2 {
32942       tailf:info "Enable G-IKEv2 (IKEv2) Protocol for Registration & Rekey";
32943       description
32944         "Enable G-IKEv2 (IKEv2) Protocol for Registration & Rekey";
32945       tailf:cli-full-command;
32946       type string {
32947         tailf:info "WORD;;IKEv2 Profile Name";
32948       }
32949     }
32950     container group {
32951       tailf:info "Configure parameters for the group (e.g. Suite-B)";
32952       description
32953         "Configure parameters for the group (e.g. Suite-B)";
32954       container size {
32955         tailf:info "Set Group Size for Suite-B counter transforms (SID length)";
32956         description
32957           "Set Group Size for Suite-B counter transforms (SID length)";
32958         leaf large {
32959           tailf:info "32-bit Sender ID (FIPS 140-2 Operating Mode)";
32960           description
32961             "32-bit Sender ID (FIPS 140-2 Operating Mode)";
32962           tailf:cli-full-command;
32963           type empty;
32964         }
32965         leaf medium {
32966           tailf:info "24-bit Sender ID (Default)";
32967           description
32968             "24-bit Sender ID (Default)";
32969           tailf:cli-full-command;
32970           type empty;
32971         }
32972         leaf small {
32973           tailf:info "Interoperable with GDOI / G-IKEv2 Standard";
32974           description
32975             "Interoperable with GDOI / G-IKEv2 Standard";
32976           tailf:cli-full-command;
32977           type enumeration {
32978             enum "12" {
32979               tailf:info "12-bit Sender ID";
32980             }
32981             enum "16" {
32982               tailf:info "16-bit Sender ID";
32983             }
32984             enum "8" {
32985               tailf:info "8-bit Sender ID";
32986             }
32987           }
32988         }
32989       }
32990     }
32991     container identifier {
32992       tailf:info "Enter Suite-B KSSID (Key Server Sender ID) config mode";
32993       description
32994         "Enter Suite-B KSSID (Key Server Sender ID) config mode";
32995       tailf:cli-add-mode;
32996       tailf:cli-mode-name "gkm-local-server-id";
32997       container default {
32998         tailf:info "Set a command to its defaults";
32999         description
33000           "Set a command to its defaults";
33001         uses crypto-gkm-local-server-id-grouping;
33002       }
33003       uses crypto-gkm-local-server-id-grouping;
33004     }
33005     container redundancy {
33006       tailf:info "Enter cooperative key server configuration mode";
33007       description
33008         "Enter cooperative key server configuration mode";
33009       tailf:cli-add-mode;
33010       tailf:cli-mode-name "gdoi-coop-ks-config";
33011       container default {
33012         tailf:info "Set a command to its defaults";
33013         description
33014           "Set a command to its defaults";
33015         uses crypto-gdoi-coop-ks-config-grouping;
33016       }
33017       uses crypto-gdoi-coop-ks-config-grouping;
33018     }
33019     container registration {
33020       tailf:info "Configure registration for the group";
33021       description
33022         "Configure registration for the group";
33023       leaf interface {
33024         tailf:info "Identify an interface on which to respond to GKM registrations";
33025         description
33026           "Identify an interface on which to respond to GKM registrations";
33027         type string;
33028       }
33029       container periodic {
33030         tailf:info "Define periodic registrations for the group";
33031         description
33032           "Define periodic registrations for the group";
33033         container crl {
33034           tailf:info "On every new CRL";
33035           description
33036             "On every new CRL";
33037           leaf trustpoint {
33038             tailf:info "For a PKI trustpoint";
33039             description
33040               "For a PKI trustpoint";
33041             type string {
33042               tailf:info "WORD;;trustpoint name";
33043             }
33044           }
33045         }
33046       }
33047     }
33048     container rekey {
33049       tailf:info "Configure rekey policy for the group";
33050       description
33051         "Configure rekey policy for the group";
33052       leaf acknowledgement {
33053         tailf:info "Request group members to acknowledge rekeys";
33054         description
33055           "Request group members to acknowledge rekeys";
33056         type enumeration {
33057           enum "any" {
33058             tailf:info "Request based on GKM version & accept any supported Rekey ACK";
33059           }
33060           enum "cisco" {
33061             tailf:info "Only accept Cisco Rekey ACK (encrypted)";
33062           }
33063           enum "interoperable" {
33064             tailf:info "Request & only accept Interoperable Rekey ACK (unencrypted)";
33065           }
33066         }
33067       }
33068       container address {
33069         tailf:info "Define the rekey packet format";
33070         description
33071           "Define the rekey packet format";
33072         leaf ipv4 {
33073           tailf:info "Match ipv4 packets";
33074           description
33075             "Match ipv4 packets";
33076           type ext-acl-type;
33077         }
33078       }
33079       container algorithm {
33080         tailf:info "Set the rekey encryption algorithm";
33081         description
33082           "Set the rekey encryption algorithm";
33083         leaf a3des-cbc {
33084           tailf:info "Triple DES in CBC mode";
33085           description
33086             "Triple DES in CBC mode";
33087           tailf:alt-name "3des-cbc";
33088           tailf:cli-full-command;
33089           type empty;
33090         }
33091         leaf aes-128 {
33092           tailf:info "128 bit AES";
33093           description
33094             "128 bit AES";
33095           tailf:alt-name "aes 128";
33096           tailf:cli-full-command;
33097           type empty;
33098         }
33099         leaf aes-192 {
33100           tailf:info "192 bit AES";
33101           description
33102             "192 bit AES";
33103           tailf:alt-name "aes 192";
33104           tailf:cli-full-command;
33105           type empty;
33106         }
33107         leaf aes-256 {
33108           tailf:info "256 bit AES";
33109           description
33110             "256 bit AES";
33111           tailf:alt-name "aes 256";
33112           tailf:cli-full-command;
33113           type empty;
33114         }
33115         leaf des-cbc {
33116           tailf:info "DES in CBC mode";
33117           description
33118             "DES in CBC mode";
33119           tailf:cli-full-command;
33120           type empty;
33121         }
33122       }
33123       container authentication {
33124         tailf:info "Identify the rekey authentication keypair";
33125         description
33126           "Identify the rekey authentication keypair";
33127         container mypubkey {
33128           tailf:info "Identify a keypair associated with this device";
33129           description
33130             "Identify a keypair associated with this device";
33131           leaf rsa {
33132             tailf:info "Identify an RSA keypair";
33133             description
33134               "Identify an RSA keypair";
33135             type string {
33136               tailf:info "WORD;;Key name";
33137             }
33138           }
33139         }
33140       }
33141       container lifetime {
33142         tailf:info "Define the rekey lifetime";
33143         description
33144           "Define the rekey lifetime";
33145         leaf days {
33146           tailf:info "Time-based key duration in days";
33147           description
33148             "Time-based key duration in days";
33149           type uint8 {
33150             tailf:info "<1-30>;;Lifetime in days";
33151             range "1..30";
33152           }
33153         }
33154         leaf seconds {
33155           tailf:info "Time-based key duration in seconds";
33156           description
33157             "Time-based key duration in seconds";
33158           type uint64 {
33159             tailf:info "<300-2592000>;;Lifetime in seconds";
33160             range "300..2592000";
33161           }
33162         }
33163       }
33164       container retransmit {
33165         tailf:info "Define the rekey retransmission parameters";
33166         description
33167           "Define the rekey retransmission parameters";
33168         tailf:cli-sequence-commands;
33169         tailf:cli-compact-syntax;
33170         leaf seconds {
33171           tailf:cli-drop-node-name;
33172           type uint8 {
33173             tailf:info "<10-60>;;Retransmit after this many seconds";
33174             range "10..60";
33175           }
33176         }
33177         choice number-periodic {
33178           case number-case {
33179             leaf number {
33180               tailf:info "Retransmit this many times";
33181               description
33182                 "Retransmit this many times";
33183               tailf:cli-full-command;
33184               type uint8 {
33185                 tailf:info "<1-10>;;Number of retransmissions";
33186               }
33187             }
33188           }
33189           case periodic-case {
33190             leaf periodic {
33191               tailf:info "Periodically send retransmit rekeys";
33192               description
33193                 "Periodically send retransmit rekeys";
33194               tailf:cli-full-command;
33195               type empty;
33196             }
33197           }
33198         }
33199       }
33200       container sig-hash {
33201         tailf:info "Set rekey signature-hash parameters";
33202         description
33203           "Set rekey signature-hash parameters";
33204         leaf algorithm {
33205           tailf:info "Set the rekey signature-hash algorithm";
33206           description
33207             "Set the rekey signature-hash algorithm";
33208           type enumeration {
33209             enum "sha" {
33210               tailf:info "Secure Hash Standard 1 (96 bit)";
33211             }
33212             enum "sha256" {
33213               tailf:info "Secure Hash Standard 2 (256 bit)";
33214             }
33215             enum "sha384" {
33216               tailf:info "Secure Hash Standard 2 (384 bit)";
33217             }
33218             enum "sha512" {
33219               tailf:info "Secure Hash Standard 2 (512 bit)";
33220             }
33221           }
33222         }
33223       }
33224       container transport {
33225         tailf:info "Specify the rekey distribution method";
33226         description
33227           "Specify the rekey distribution method";
33228         leaf unicast {
33229           tailf:info "specify unicast rekey distribution";
33230           description
33231             "specify unicast rekey distribution";
33232           tailf:cli-full-command;
33233           type empty;
33234         }
33235       }
33236     }
33237     container sa {
33238       tailf:info "Configure a security association";
33239       description
33240         "Configure a security association";
33241       container d3p {
33242         tailf:info "Enable IP delivery delay detection protocol for all SAs within the group";
33243         description
33244           "Enable IP delivery delay detection protocol for all SAs within the group";
33245         container window {
33246           tailf:info "IP-D3P window size";
33247           description
33248             "IP-D3P window size";
33249           leaf msec {
33250             tailf:info "IP-D3P window size in milliseconds";
33251             description
33252               "IP-D3P window size in milliseconds";
33253             tailf:cli-full-command;
33254             type uint32 {
33255               tailf:info "<1000-100000>;;IP-D3P window size in nilliseconds";
33256               range "1000..100000";
33257             }
33258           }
33259           leaf sec {
33260             tailf:info "IP-D3P window size in seconds";
33261             description
33262               "IP-D3P window size in seconds";
33263             tailf:cli-full-command;
33264             type uint8 {
33265               tailf:info "<1-100>;;IP-D3P window size in seconds";
33266             }
33267           }
33268         }
33269       }
33270       list ipsec {
33271         tailf:info "Configure an IPsec SA";
33272         description
33273           "Configure an IPsec SA";
33274         tailf:cli-mode-name "gkm-sa-ipsec";
33275         key "sequence";
33276         leaf sequence {
33277           type uint16 {
33278             tailf:info "<1-65535>;;Sequence to insert into SA list";
33279           }
33280         }
33281         container default {
33282           tailf:info "Set a command to its defaults";
33283           description
33284             "Set a command to its defaults";
33285           uses crypto-gkm-sa-ipsec-default-grouping;
33286         }
33287         uses crypto-gkm-sa-ipsec-grouping;
33288       }
33289       container pair-wise-keying {
33290         tailf:info "Enable KGS pair-wise-keying";
33291         description
33292           "Enable KGS pair-wise-keying";
33293         leaf safety-limit {
33294           tailf:info "KGS safety limit";
33295           description
33296             "KGS safety limit";
33297           type uint8 {
33298             tailf:info "<10-300>;;KGS safety limit value";
33299           }
33300         }
33301       }
33302       leaf receive-only {
33303         tailf:info "Configure SA to work only in inbound direction";
33304         description
33305           "Configure SA to work only in inbound direction";
33306         tailf:cli-full-command;
33307         type empty;
33308       }
33309     }
33310   }
33311
33312   grouping crypto-gkm-local-server-default-grouping {
33313     container address {
33314       tailf:info "Configure server source address";
33315       description
33316         "Configure server source address";
33317       presence "true";
33318     }
33319     container authorization {
33320       tailf:info "Configure authorization for the group";
33321       description
33322         "Configure authorization for the group";
33323       container address {
33324         tailf:info "Set authorization by address";
33325         description
33326           "Set authorization by address";
33327         leaf ipv4 {
33328           tailf:info "Set authorization by address";
33329           description
33330             "Set authorization by address";
33331           type empty;
33332         }
33333       }
33334       leaf identity {
33335         tailf:info "Set authorization by identity";
33336         description
33337           "Set authorization by identity";
33338         type empty;
33339       }
33340     }
33341     leaf gdoi {
33342       tailf:info "Enable GDOI (ISAKMP) Protocol for Registration & Rekey";
33343       description
33344         "Enable GDOI (ISAKMP) Protocol for Registration & Rekey";
33345       tailf:cli-full-command;
33346       type empty;
33347     }
33348     leaf gikev2 {
33349       tailf:info "Enable G-IKEv2 (IKEv2) Protocol for Registration & Rekey";
33350       description
33351         "Enable G-IKEv2 (IKEv2) Protocol for Registration & Rekey";
33352       tailf:cli-full-command;
33353       type empty;
33354     }
33355     container group {
33356       tailf:info "Configure parameters for the group (e.g. Suite-B)";
33357       description
33358         "Configure parameters for the group (e.g. Suite-B)";
33359       container size {
33360         tailf:info "Set Group Size for Suite-B counter transforms (SID length)";
33361         description
33362           "Set Group Size for Suite-B counter transforms (SID length)";
33363         presence "true";
33364       }
33365     }
33366     container identifier {
33367       tailf:info "Enter Suite-B KSSID (Key Server Sender ID) config mode";
33368       description
33369         "Enter Suite-B KSSID (Key Server Sender ID) config mode";
33370       presence "true";
33371     }
33372     container redundancy {
33373       tailf:info "Enter cooperative key server configuration mode";
33374       description
33375         "Enter cooperative key server configuration mode";
33376       presence "true";
33377     }
33378     container registration {
33379       tailf:info "Configure registration for the group";
33380       description
33381         "Configure registration for the group";
33382       leaf interface {
33383         tailf:info "Identify an interface on which to respond to GKM registrations";
33384         description
33385           "Identify an interface on which to respond to GKM registrations";
33386         type string;
33387       }
33388       container periodic {
33389         tailf:info "Define periodic registrations for the group";
33390         description
33391           "Define periodic registrations for the group";
33392         container crl {
33393           tailf:info "On every new CRL";
33394           description
33395             "On every new CRL";
33396           leaf trustpoint {
33397             tailf:info "For a PKI trustpoint";
33398             description
33399               "For a PKI trustpoint";
33400             type empty;
33401           }
33402         }
33403       }
33404     }
33405     container rekey {
33406       tailf:info "Configure rekey policy for the group";
33407       description
33408         "Configure rekey policy for the group";
33409       leaf acknowledgement {
33410         tailf:info "Request group members to acknowledge rekeys";
33411         description
33412           "Request group members to acknowledge rekeys";
33413         type empty;
33414       }
33415       container address {
33416         tailf:info "Define the rekey packet format";
33417         description
33418           "Define the rekey packet format";
33419         presence "true";
33420       }
33421       container algorithm {
33422         tailf:info "Set the rekey encryption algorithm";
33423         description
33424           "Set the rekey encryption algorithm";
33425         presence "true";
33426       }
33427       container authentication {
33428         tailf:info "Identify the rekey authentication keypair";
33429         description
33430           "Identify the rekey authentication keypair";
33431         presence "true";
33432       }
33433       container lifetime {
33434         tailf:info "Define the rekey lifetime";
33435         description
33436           "Define the rekey lifetime";
33437         leaf days {
33438           tailf:info "Time-based key duration in days";
33439           description
33440             "Time-based key duration in days";
33441           type empty;
33442         }
33443         leaf seconds {
33444           tailf:info "Time-based key duration in seconds";
33445           description
33446             "Time-based key duration in seconds";
33447           type empty;
33448         }
33449       }
33450       container retransmit {
33451         tailf:info "Define the rekey retransmission parameters";
33452         description
33453           "Define the rekey retransmission parameters";
33454         presence "true";
33455       }
33456       container sig-hash {
33457         tailf:info "Set rekey signature-hash parameters";
33458         description
33459           "Set rekey signature-hash parameters";
33460         leaf algorithm {
33461           tailf:info "Set the rekey signature-hash algorithm";
33462           description
33463             "Set the rekey signature-hash algorithm";
33464           type empty;
33465         }
33466       }
33467       container transport {
33468         tailf:info "Specify the rekey distribution method";
33469         description
33470           "Specify the rekey distribution method";
33471         leaf unicast {
33472           tailf:info "specify unicast rekey distribution";
33473           description
33474             "specify unicast rekey distribution";
33475           tailf:cli-full-command;
33476           type empty;
33477         }
33478       }
33479     }
33480     container sa {
33481       tailf:info "Configure a security association";
33482       description
33483         "Configure a security association";
33484       container d3p {
33485         tailf:info "Enable IP delivery delay detection protocol for all SAs within the group";
33486         description
33487           "Enable IP delivery delay detection protocol for all SAs within the group";
33488         presence "true";
33489       }
33490       list ipsec {
33491         tailf:info "Configure an IPsec SA";
33492         description
33493           "Configure an IPsec SA";
33494         tailf:cli-mode-name "gkm-sa-ipsec";
33495         key "sequence";
33496         leaf sequence {
33497           type uint16 {
33498             tailf:info "<1-65535>;;Sequence to insert into SA list";
33499           }
33500         }
33501       }
33502       container pair-wise-keying {
33503         tailf:info "Enable KGS pair-wise-keying";
33504         description
33505           "Enable KGS pair-wise-keying";
33506         presence "true";
33507       }
33508       leaf receive-only {
33509         tailf:info "Configure SA to work only in inbound direction";
33510         description
33511           "Configure SA to work only in inbound direction";
33512         tailf:cli-full-command;
33513         type empty;
33514       }
33515     }
33516   }
33517
33518   grouping crypto-gdio-grouping {
33519     container client {
33520       tailf:info "Set the group client parameters";
33521       description
33522         "Set the group client parameters";
33523       leaf bypass-policy {
33524         tailf:info "Allow group-key management traffic sent to this GM only";
33525         description
33526           "Allow group-key management traffic sent to this GM only";
33527         tailf:cli-full-command;
33528         type empty;
33529       }
33530       container protocol {
33531         tailf:info "Group Member Registration & Rekey Protocol";
33532         description
33533           "Group Member Registration & Rekey Protocol";
33534         leaf gdoi {
33535           tailf:info "Use GDOI (ISAKMP) Protocol for Registration & Rekey";
33536           description
33537             "Use GDOI (ISAKMP) Protocol for Registration & Rekey";
33538           tailf:cli-full-command;
33539           type empty;
33540         }
33541         leaf gikev2 {
33542           tailf:info "Use G-IKEv2 Protocol for Registration & Rekey";
33543           description
33544             "Use G-IKEv2 Protocol for Registration & Rekey";
33545           tailf:cli-full-command;
33546           type string {
33547             tailf:info "WORD;;IKEv2 Profile Name for G-IKEv2 Registration";
33548           }
33549         }
33550       }
33551       container recovery-check {
33552         tailf:info "Specify GM recovery check parameters";
33553         description
33554           "Specify GM recovery check parameters";
33555         leaf interval {
33556           tailf:info "Waiting period(sec) between consecutive recovery registrations";
33557           description
33558             "Waiting period(sec) between consecutive recovery registrations";
33559           type uint16 {
33560             tailf:info "<100-1000>;;Waiting period seconds";
33561             range "100..1000";
33562           }
33563         }
33564       }
33565       container registration {
33566         tailf:info "Set the group client management/register interface";
33567         description
33568           "Set the group client management/register interface";
33569         leaf interface {
33570           tailf:info "Set the group client management/register interface";
33571           description
33572             "Set the group client management/register interface";
33573           type string;
33574         }
33575       }
33576       container rekey {
33577         tailf:info "Set the group client acceptable rekey ciphers and hashs";
33578         description
33579           "Set the group client acceptable rekey ciphers and hashs";
33580         container encryption {
33581           tailf:info "Set the group client acceptable rekey ciphers";
33582           description
33583             "Set the group client acceptable rekey ciphers";
33584           leaf rekey_3des-cbc {
33585             tailf:alt-name "3des-cbc";
33586             tailf:info "Triple DES in CBC mode";
33587             type empty;
33588           }
33589           leaf aes-128 {
33590             tailf:alt-name "aes 128";
33591             tailf:info "128 bit AES";
33592             description
33593               "128 bit AES";
33594             type empty;
33595           }
33596           leaf aes-192 {
33597             tailf:alt-name "aes 192";
33598             tailf:info "192 bit AES";
33599             description
33600               "192 bit AES";
33601             type empty;
33602           }
33603           leaf aes-256 {
33604             tailf:alt-name "aes 256";
33605             tailf:info "256 bit AES";
33606             description
33607               "256 bit AES";
33608             type empty;
33609           }
33610           leaf des-cbc {
33611             tailf:info "DES in CBC mode";
33612             description
33613               "DES in CBC mode";
33614             type empty;
33615           }
33616         }
33617         container hash {
33618           tailf:info "Set the group client acceptable rekey hash";
33619           description
33620             "Set the group client acceptable rekey hash";
33621           leaf sha {
33622             tailf:info "Secure Hash Standard";
33623             description
33624               "Secure Hash Standard";
33625             type empty;
33626           }
33627           leaf sha256 {
33628             tailf:info "Secure Hash Standard 2 (256 bit)";
33629             description
33630               "Secure Hash Standard 2 (256 bit)";
33631             type empty;
33632           }
33633           leaf sha384 {
33634             tailf:info "Secure Hash Standard 2 (384 bit)";
33635             description
33636               "Secure Hash Standard 2 (384 bit)";
33637             type empty;
33638           }
33639           leaf sha512 {
33640             tailf:info "Secure Hash Standard 2 (512 bit)";
33641             description
33642               "Secure Hash Standard 2 (512 bit)";
33643             type empty;
33644           }
33645         }
33646       }
33647       container status {
33648         tailf:info "group-member status";
33649         description
33650           "group-member status";
33651         container active-sa {
33652           tailf:info "TEK SA with positive remaining lifetime";
33653           description
33654             "TEK SA with positive remaining lifetime";
33655           leaf track {
33656             tailf:info "enable stub tracking object";
33657             description
33658               "enable stub tracking object";
33659             type uint16 {
33660               tailf:info "<1-1000>;;Tracking object number";
33661               range "1..1000";
33662             }
33663           }
33664         }
33665       }
33666       leaf-list transform-sets {
33667         tailf:info "Specify list of group client acceptable transform sets";
33668         description
33669           "Specify list of group client acceptable transform sets";
33670         type string {
33671           tailf:info "WORD;;Proposal tag";
33672         }
33673       }
33674       leaf transport-encrypt-key {
33675         tailf:info "Enforce group or pair-wise keying";
33676         description
33677           "Enforce group or pair-wise keying";
33678         type enumeration {
33679           enum "group-key" {
33680             tailf:info "Use only Group Key for Traffic Encryption";
33681           }
33682           enum "pair-wise-key" {
33683             tailf:info "Use only Pair-Wise Keys for Traffic Encryption";
33684           }
33685         }
33686       }
33687     }
33688     container identity {
33689       tailf:info "Set the identity of the group";
33690       description
33691         "Set the identity of the group";
33692       container address {
33693         tailf:info "Set the identity of the group as an address";
33694         description
33695           "Set the identity of the group as an address";
33696         leaf ipv4 {
33697           tailf:info "Set the identity of the group as an IPv4 address";
33698           description
33699             "Set the identity of the group as an IPv4 address";
33700           type inet:ipv4-address {
33701             tailf:info "A.B.C.D;;Group IPv4 address";
33702           }
33703         }
33704       }
33705       leaf number {
33706         tailf:info "Set the identity of the group as a number";
33707         description
33708           "Set the identity of the group as a number";
33709         type uint64 {
33710           tailf:info "<0-4294967295>;;Set the group number";
33711         }
33712       }
33713     }
33714     leaf passive {
33715       tailf:info "Set the group in passive mode";
33716       description
33717         "Set the group in passive mode";
33718       tailf:cli-full-command;
33719       type empty;
33720     }
33721     container server {
33722       tailf:info "Set the group server for of the group";
33723       description
33724         "Set the group server for of the group";
33725       container address {
33726         tailf:info "Identify the group server by address";
33727         description
33728           "Identify the group server by address";
33729         leaf ipv4 {
33730           tailf:info "Set the IPv4 address of the group server";
33731           description
33732             "Set the IPv4 address of the group server";
33733           type inet:ipv4-address {
33734             tailf:info "A.B.C.D;;Group server IPv4 address";
33735           }
33736         }
33737       }
33738       container hostname {
33739         tailf:info "Identify the group server by hostname";
33740         description
33741           "Identify the group server by hostname";
33742         leaf ipv4 {
33743           tailf:info "Set the IPv4 hostname of the group server";
33744           description
33745             "Set the IPv4 hostname of the group server";
33746           type string {
33747             tailf:info "WORD;;Hostname";
33748           }
33749         }
33750       }
33751       container local {
33752         tailf:info "Configure GKM group server defined locally";
33753         description
33754           "Configure GKM group server defined locally";
33755         tailf:cli-add-mode;
33756         tailf:cli-mode-name "gkm-local-server";
33757         uses crypto-gkm-local-server-grouping;
33758         container default {
33759           tailf:info "Set a command to its defaults";
33760           description
33761             "Set a command to its defaults";
33762           uses crypto-gkm-local-server-default-grouping;
33763         }
33764       }
33765     }
33766   }
33767
33768   grouping crypto-gdio-default-grouping {
33769     container client {
33770       tailf:info "Set the group client parameters";
33771       description
33772         "Set the group client parameters";
33773       leaf bypass-policy {
33774         tailf:info "Allow group-key management traffic sent to this GM only";
33775         description
33776           "Allow group-key management traffic sent to this GM only";
33777         tailf:cli-full-command;
33778         type empty;
33779       }
33780       container protocol {
33781         tailf:info "Group Member Registration & Rekey Protocol";
33782         description
33783           "Group Member Registration & Rekey Protocol";
33784         presence "true";
33785       }
33786       container recovery-check {
33787         tailf:info "Specify GM recovery check parameters";
33788         description
33789           "Specify GM recovery check parameters";
33790         presence "true";
33791       }
33792       container registration {
33793         tailf:info "Set the group client management/register interface";
33794         description
33795           "Set the group client management/register interface";
33796         leaf interface {
33797           tailf:info "Set the group client management/register interface";
33798           description
33799             "Set the group client management/register interface";
33800           type empty;
33801         }
33802       }
33803       container rekey {
33804         tailf:info "Set the group client acceptable rekey ciphers and hashs";
33805         description
33806           "Set the group client acceptable rekey ciphers and hashs";
33807         container encryption {
33808           tailf:info "Set the group client acceptable rekey ciphers";
33809           description
33810             "Set the group client acceptable rekey ciphers";
33811           presence "true";
33812         }
33813         container hash {
33814           tailf:info "Set the group client acceptable rekey hash";
33815           description
33816             "Set the group client acceptable rekey hash";
33817           presence "true";
33818         }
33819       }
33820       container status {
33821         tailf:info "group-member status";
33822         description
33823           "group-member status";
33824         container active-sa {
33825           tailf:info "TEK SA with positive remaining lifetime";
33826           description
33827             "TEK SA with positive remaining lifetime";
33828           presence "true";
33829         }
33830       }
33831       leaf transform-sets {
33832         tailf:info "Specify list of group client acceptable transform sets";
33833         description
33834           "Specify list of group client acceptable transform sets";
33835         type empty;
33836       }
33837       leaf transport-encrypt-key {
33838         tailf:info "Enforce group or pair-wise keying";
33839         description
33840           "Enforce group or pair-wise keying";
33841         type enumeration {
33842           enum "group-key" {
33843             tailf:info "Use only Group Key for Traffic Encryption";
33844           }
33845           enum "pair-wise-key" {
33846             tailf:info "Use only Pair-Wise Keys for Traffic Encryption";
33847           }
33848         }
33849       }
33850     }
33851     container identity {
33852       tailf:info "Set the identity of the group";
33853       description
33854         "Set the identity of the group";
33855       presence "true";
33856     }
33857     leaf passive {
33858       tailf:info "Set the group in passive mode";
33859       description
33860         "Set the group in passive mode";
33861       tailf:cli-full-command;
33862       type empty;
33863     }
33864     container server {
33865       tailf:info "Set the group server for of the group";
33866       description
33867         "Set the group server for of the group";
33868       container address {
33869         tailf:info "Identify the group server by address";
33870         description
33871           "Identify the group server by address";
33872         leaf ipv4 {
33873           tailf:info "Set the IPv4 address of the group server";
33874           description
33875             "Set the IPv4 address of the group server";
33876           type inet:ipv4-address {
33877             tailf:info "A.B.C.D;;Group server IPv4 address";
33878           }
33879         }
33880       }
33881       container hostname {
33882         tailf:info "Identify the group server by hostname";
33883         description
33884           "Identify the group server by hostname";
33885         leaf ipv4 {
33886           tailf:info "Set the IPv4 hostname of the group server";
33887           description
33888             "Set the IPv4 hostname of the group server";
33889           type string {
33890             tailf:info "WORD;;Hostname";
33891           }
33892         }
33893       }
33894       leaf local {
33895         tailf:info "Configure GKM group server defined locally";
33896         description
33897           "Configure GKM group server defined locally";
33898         type empty;
33899       }
33900     }
33901   }
33902
33903   grouping crypto-identity-grouping {
33904     leaf description {
33905       tailf:info "Description of the crypto identity";
33906       description
33907         "Description of the crypto identity";
33908       tailf:cli-multi-value;
33909       type string {
33910         tailf:info "LINE;;A Short description";
33911       }
33912     }
33913     leaf dn {
33914       tailf:info "Distinguished name identifier";
33915       description
33916         "Distinguished name identifier";
33917       tailf:cli-multi-value;
33918       type string {
33919         tailf:info "LINE;;Distinguished name qualifier";
33920       }
33921     }
33922     leaf fqdn {
33923       tailf:info "Fully qualified distinguished name identifier";
33924       description
33925         "Fully qualified distinguished name identifier";
33926       tailf:cli-multi-value;
33927       type string {
33928         tailf:info "LINE;Fully qualified distinguished name";
33929       }
33930     }
33931   }
33932
33933   grouping crypto-identity-default-grouping {
33934     leaf description {
33935       tailf:info "Description of the crypto identity";
33936       description
33937         "Description of the crypto identity";
33938       type empty;
33939     }
33940     leaf dn {
33941       tailf:info "Distinguished name identifier";
33942       description
33943         "Distinguished name identifier";
33944       tailf:cli-multi-value;
33945       type string {
33946         tailf:info "LINE;;Distinguished name qualifier";
33947       }
33948     }
33949     leaf fqdn {
33950       tailf:info "Fully qualified distinguished name identifier";
33951       description
33952         "Fully qualified distinguished name identifier";
33953       tailf:cli-multi-value;
33954       type string {
33955         tailf:info "LINE;Fully qualified distinguished name";
33956       }
33957     }
33958   }
33959
33960   grouping crypto-ikev2-keyring-peer-grouping {
33961     container address {
33962       tailf:info "Specify IPv4/IPv6 address of peer";
33963       description
33964         "Specify IPv4/IPv6 address of peer";
33965       choice ipv4-ipv6 {
33966         case ipv4-case {
33967           container ipv4 {
33968             tailf:cli-drop-node-name;
33969             tailf:cli-sequence-commands;
33970             tailf:cli-compact-syntax;
33971             leaf ipv4-address {
33972               tailf:cli-drop-node-name;
33973               type inet:ipv4-address {
33974                 tailf:info "A.B.C.D;;IPv4 Address";
33975               }
33976             }
33977             leaf ipv4-mask {
33978               tailf:cli-drop-node-name;
33979               tailf:cli-optional-in-sequence;
33980               type inet:ipv4-address {
33981                 tailf:info "A.B.C.D;;specify mask";
33982               }
33983             }
33984           }
33985         }
33986         case ipv6-case {
33987           leaf ipv6-prefix {
33988             tailf:cli-drop-node-name;
33989             type inet:ipv6-prefix {
33990               tailf:info "X:X:X:X::X/<0-128>;;IPv6 address/prefix";
33991             }
33992           }
33993         }
33994       }
33995     }
33996     leaf description {
33997       tailf:info "Specify a description of this peer";
33998       description
33999         "Specify a description of this peer";
34000       tailf:cli-multi-value;
34001       type string {
34002         tailf:info "LINE;;description of the peer";
34003       }
34004     }
34005     leaf hostname {
34006       tailf:info "Hostname of peer";
34007       description
34008         "Hostname of peer";
34009       type string {
34010         tailf:info "WORD;;Name";
34011       }
34012     }
34013     container identity {
34014       tailf:info "Specify IKE identity to use";
34015       description
34016         "Specify IKE identity to use";
34017       leaf address {
34018         tailf:info "IP address";
34019         description
34020           "IP address";
34021         type union {
34022           type inet:ipv4-address {
34023             tailf:info "A.B.C.D;;IPv4 Address";
34024           }
34025           type inet:ipv6-address {
34026             tailf:info "X:X:X:X::X;;IPv6 address";
34027           }
34028         }
34029       }
34030       container email {
34031         tailf:info "Use email address";
34032         description
34033           "Use email address";
34034         leaf name {
34035           tailf:cli-drop-node-name;
34036           tailf:cli-full-command;
34037           type string {
34038             tailf:info "WORD;;Specify the name string";
34039           }
34040         }
34041         leaf domain {
34042           tailf:info "email Domain Name";
34043           description
34044             "email Domain Name";
34045           tailf:cli-full-command;
34046           type string {
34047             tailf:info "WORD;;Specify the name string";
34048           }
34049         }
34050       }
34051       container fqdn {
34052         tailf:info "Use FQDN";
34053         description
34054           "Use FQDN";
34055         leaf name {
34056           tailf:cli-drop-node-name;
34057           tailf:cli-full-command;
34058           type string {
34059             tailf:info "WORD;;Specify the name string";
34060           }
34061         }
34062         leaf domain {
34063           tailf:info "email Domain Name";
34064           description
34065             "email Domain Name";
34066           tailf:cli-full-command;
34067           type string {
34068             tailf:info "WORD;;Specify the name string";
34069           }
34070         }
34071       }
34072       leaf key-id {
34073         tailf:info "proprietary types of identification (ID KEY ID)";
34074         description
34075           "proprietary types of identification (ID KEY ID)";
34076         type string {
34077           tailf:info "WORD;;ID_KEY_ID <string>";
34078         }
34079       }
34080     }
34081     container pre-shared-key {
34082       tailf:info "specify the pre-shared key";
34083       description
34084         "specify the pre-shared key";
34085       tailf:cli-compact-syntax;
34086       leaf local {
34087         tailf:info "specify signing key";
34088         description
34089           "specify signing key";
34090         type empty;
34091       }
34092       leaf remote {
34093         tailf:info "specify verifying key";
34094         description
34095           "specify verifying key";
34096         type empty;
34097       }
34098       choice encryption-hex {
34099         case encryption-case {
34100           leaf encryption {
34101             tailf:cli-drop-node-name;
34102             tailf:cli-incomplete-command;
34103             type enumeration {
34104               enum "0" {
34105                 tailf:info "Specifies an UNENCRYPTED password will follow";
34106               }
34107               enum "6" {
34108                 tailf:info "Specifies an ENCRYPTED password will follow";
34109               }
34110             }
34111           }
34112           leaf key {
34113             tailf:cli-drop-node-name;
34114             tailf:cli-multi-value;
34115             type string {
34116               tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
34117             }
34118           }
34119         }
34120         case hex-case {
34121           leaf hex {
34122             tailf:info "Key entered in hex string";
34123             description
34124               "Key entered in hex string";
34125             tailf:cli-multi-value;
34126             type string {
34127               tailf:info "Hex-string;;pre-shared key in hex";
34128             }
34129           }
34130         }
34131       }
34132     }
34133   }
34134
34135   grouping crypto-ikev2-profile-aaa-authorization-grouping {
34136     list list {
34137       tailf:info "AAA method list";
34138       description
34139         "AAA method list";
34140       tailf:cli-suppress-mode;
34141       key "name";
34142       leaf name {
34143         type string {
34144           tailf:info "WORD;;AAA list name";
34145         }
34146       }
34147       leaf username {
34148         tailf:cli-drop-node-name;
34149         tailf:cli-hide-in-submode;
34150         type string {
34151           tailf:info "WORD;;AAA username";
34152         }
34153       }
34154       leaf local {
34155         tailf:info "Local AAA Authorization";
34156         description
34157           "Local AAA Authorization";
34158         tailf:cli-hide-in-submode;
34159         when "../username";
34160         type empty;
34161       }
34162       leaf name-mangler {
34163         tailf:info "Specify the name-mangler to derive AAA username";
34164         description
34165           "Specify the name-mangler to derive AAA username";
34166         tailf:cli-hide-in-submode;
34167         type string {
34168           tailf:info "WORD;;mangler name";
34169         }
34170       }
34171       container password {
34172         tailf:info "Specify the AAA password";
34173         description
34174           "Specify the AAA password";
34175         tailf:cli-hide-in-submode;
34176         tailf:cli-sequence-commands;
34177         tailf:cli-compact-syntax;
34178         leaf encryption {
34179           tailf:cli-drop-node-name;
34180           tailf:cli-incomplete-command;
34181           tailf:cli-optional-in-sequence;
34182           type enumeration {
34183             enum "0" {
34184               tailf:info "Specifies an UNENCRYPTED password will follow";
34185             }
34186             enum "6" {
34187               tailf:info "Specifies an ENCRYPTED password will follow";
34188             }
34189           }
34190         }
34191         leaf key {
34192           tailf:cli-drop-node-name;
34193           tailf:cli-multi-value;
34194           type string {
34195             tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
34196           }
34197         }
34198       }
34199     }
34200   }
34201
34202   grouping crypto-ikev2-profile-authentication-grouping {
34203     leaf username {
34204       tailf:info "EAP username";
34205       description
34206         "EAP username";
34207       tailf:cli-break-sequence-commands;
34208       tailf:cli-incomplete-command;
34209       type string {
34210         tailf:info "WORD;;Enter the username for EAP";
34211       }
34212     }
34213     container password {
34214       tailf:info "EAP password";
34215       description
34216         "EAP password";
34217       tailf:cli-flatten-container;
34218       tailf:cli-sequence-commands;
34219       tailf:cli-compact-syntax;
34220       leaf encryption {
34221         tailf:cli-drop-node-name;
34222         tailf:cli-incomplete-command;
34223         tailf:cli-optional-in-sequence;
34224         type enumeration {
34225           enum "0" {
34226             tailf:info "Specifies an UNENCRYPTED password will follow";
34227           }
34228           enum "6" {
34229             tailf:info "Specifies an ENCRYPTED password will follow";
34230           }
34231         }
34232       }
34233       leaf key {
34234         tailf:cli-drop-node-name;
34235         tailf:cli-multi-value;
34236         type string {
34237           tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
34238         }
34239       }
34240     }
34241   }
34242
34243   grouping crypto-ikev2-profile-authentication-key-grouping {
34244     container key {
34245       tailf:info "specify key";
34246       description
34247         "specify key";
34248       tailf:cli-sequence-commands;
34249       tailf:cli-compact-syntax;
34250       leaf encryption {
34251         tailf:cli-drop-node-name;
34252         tailf:cli-incomplete-command;
34253         tailf:cli-optional-in-sequence;
34254         type enumeration {
34255           enum "0" {
34256             tailf:info "Specifies an UNENCRYPTED password will follow";
34257           }
34258           enum "6" {
34259             tailf:info "Specifies an ENCRYPTED password will follow";
34260           }
34261         }
34262       }
34263       leaf key {
34264         tailf:cli-drop-node-name;
34265         tailf:cli-multi-value;
34266         type string {
34267           tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
34268         }
34269       }
34270     }
34271   }
34272
34273   grouping crypto-ikev2-profile-grouping {
34274     container aaa {
34275       tailf:info "Specify AAA related configs";
34276       description
34277         "Specify AAA related configs";
34278       container accounting {
34279         tailf:info "AAA accounting";
34280         description
34281           "AAA accounting";
34282         leaf anyconnect-eap {
34283           tailf:info "AAA list to use when IKEv2 remote auth method is AnyConnect EAP";
34284           description
34285             "AAA list to use when IKEv2 remote auth method is AnyConnect EAP";
34286           tailf:cli-full-command;
34287           type string {
34288             tailf:info "WORD;;AAA list name";
34289           }
34290         }
34291         leaf cert {
34292           tailf:info "AAA list to use when IKEv2 remote auth method is certificate based";
34293           description
34294             "AAA list to use when IKEv2 remote auth method is certificate based";
34295           tailf:cli-full-command;
34296           type string {
34297             tailf:info "WORD;;AAA list name";
34298           }
34299         }
34300         leaf eap {
34301           tailf:info "AAA list to use when IKEv2 remote auth method is EAP";
34302           description
34303             "AAA list to use when IKEv2 remote auth method is EAP";
34304           tailf:cli-full-command;
34305           type string {
34306             tailf:info "WORD;;AAA list name";
34307           }
34308         }
34309         leaf psk {
34310           tailf:info "AAA list to use when IKEv2 remote auth method is PSK";
34311           description
34312             "AAA list to use when IKEv2 remote auth method is PSK";
34313           tailf:cli-full-command;
34314           type string {
34315             tailf:info "WORD;;AAA list name";
34316           }
34317         }
34318       }
34319       container authentication {
34320         tailf:info "AAA authentication";
34321         description
34322           "AAA authentication";
34323         leaf anyconnect-eap {
34324           tailf:info "AAA AnyConnect EAP authentication";
34325           description
34326             "AAA AnyConnect EAP authentication";
34327           tailf:cli-full-command;
34328           type string {
34329             tailf:info "WORD;;AAA list name";
34330           }
34331         }
34332         leaf eap {
34333           tailf:info "AAA EAP authentication";
34334           description
34335             "AAA EAP authentication";
34336           tailf:cli-full-command;
34337           type string {
34338             tailf:info "WORD;;AAA list name";
34339           }
34340         }
34341       }
34342       container authorization {
34343         tailf:info "AAA authorization";
34344         description
34345           "AAA authorization";
34346         container group {
34347           tailf:info "AAA group authorization";
34348           description
34349             "AAA group authorization";
34350           container anyconnect-eap {
34351             tailf:info "AAA list to use when IKEv2 remote auth method is anyconnect eap based";
34352             description
34353               "AAA list to use when IKEv2 remote auth method is anyconnect eap based";
34354             uses crypto-ikev2-profile-aaa-authorization-grouping;
34355           }
34356           container cert {
34357             tailf:info "AAA list to use when IKEv2 remote auth method is certificate based";
34358             description
34359               "AAA list to use when IKEv2 remote auth method is certificate based";
34360             uses crypto-ikev2-profile-aaa-authorization-grouping;
34361           }
34362           container eap {
34363             tailf:info "AAA list to use when IKEv2 remote auth method is EAP";
34364             description
34365               "AAA list to use when IKEv2 remote auth method is EAP";
34366             uses crypto-ikev2-profile-aaa-authorization-grouping;
34367           }
34368           container psk {
34369             tailf:info "AAA list to use when IKEv2 remote auth method is PSK";
34370             description
34371               "AAA list to use when IKEv2 remote auth method is PSK";
34372             uses crypto-ikev2-profile-aaa-authorization-grouping;
34373           }
34374           leaf override {
34375             tailf:info "Override user authorization with group authorization.By default, group authorization isoverridden with user authorization";
34376             description
34377               "Override user authorization with group authorization.By default, group authorization isoverridden with user authorization";
34378             tailf:cli-incomplete-command;
34379             type empty;
34380           }
34381         }
34382         container user {
34383           tailf:info "AAA user authorization";
34384           description
34385             "AAA user authorization";
34386           container anyconnect-eap {
34387             tailf:info "AAA list to use when IKEv2 remote auth method is anyconnect eap based";
34388             description
34389               "AAA list to use when IKEv2 remote auth method is anyconnect eap based";
34390             leaf cached {
34391               tailf:info "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34392               description
34393                 "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34394               tailf:cli-full-command;
34395               type empty;
34396             }
34397             uses crypto-ikev2-profile-aaa-authorization-grouping;
34398           }
34399           container cert {
34400             tailf:info "AAA list to use when IKEv2 remote auth method is certificate based";
34401             description
34402               "AAA list to use when IKEv2 remote auth method is certificate based";
34403             uses crypto-ikev2-profile-aaa-authorization-grouping;
34404           }
34405           container eap {
34406             tailf:info "AAA list to use when IKEv2 remote auth method is EAP";
34407             description
34408               "AAA list to use when IKEv2 remote auth method is EAP";
34409             leaf cached {
34410               tailf:info "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34411               description
34412                 "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34413               tailf:cli-full-command;
34414               type empty;
34415             }
34416             uses crypto-ikev2-profile-aaa-authorization-grouping;
34417           }
34418           container psk {
34419             tailf:info "AAA list to use when IKEv2 remote auth method is PSK";
34420             description
34421               "AAA list to use when IKEv2 remote auth method is PSK";
34422             leaf cached {
34423               tailf:info "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34424               description
34425                 "Use cached attributes from EAP authentication or AAA pre-shared key fetch";
34426               tailf:cli-full-command;
34427               type empty;
34428             }
34429             uses crypto-ikev2-profile-aaa-authorization-grouping;
34430           }
34431         }
34432       }
34433     }
34434     container authentication {
34435       tailf:info "Set authentication method";
34436       description
34437         "Set authentication method";
34438       container local {
34439         tailf:info "Set local authentication method";
34440         description
34441           "Set local authentication method";
34442         container eap {
34443           tailf:info "Extended Authentication Protocol";
34444           description
34445             "Extended Authentication Protocol";
34446           presence "true";
34447           container gtc {
34448             tailf:info "eap method gtc credentials";
34449             description
34450               "eap method gtc credentials";
34451             tailf:cli-sequence-commands;
34452             tailf:cli-compact-syntax;
34453             uses crypto-ikev2-profile-authentication-grouping;
34454           }
34455           container md5 {
34456             tailf:info "eap method md5 credentials";
34457             description
34458               "eap method md5 credentials";
34459             tailf:cli-sequence-commands;
34460             tailf:cli-compact-syntax;
34461             uses crypto-ikev2-profile-authentication-grouping;
34462           }
34463           container mschapv2 {
34464             tailf:info "eap method mschapv2 credentials";
34465             description
34466               "eap method mschapv2 credentials";
34467             tailf:cli-sequence-commands;
34468             tailf:cli-compact-syntax;
34469             uses crypto-ikev2-profile-authentication-grouping;
34470           }
34471         }
34472         leaf ecdsa-sig {
34473           tailf:info "ECDSA Signature";
34474           description
34475             "ECDSA Signature";
34476           tailf:cli-full-command;
34477           type empty;
34478         }
34479         container pre-share {
34480           tailf:info "Pre-Shared Key";
34481           description
34482             "Pre-Shared Key";
34483           presence "true";
34484           tailf:cli-sequence-commands;
34485           tailf:cli-compact-syntax;
34486           uses crypto-ikev2-profile-authentication-key-grouping;
34487         }
34488         leaf rsa-sig {
34489           tailf:info "Rivest-Shamir-Adleman Signature";
34490           description
34491             "Rivest-Shamir-Adleman Signature";
34492           tailf:cli-full-command;
34493           type empty;
34494         }
34495       }
34496       container remote {
34497         tailf:info "Set remote authentication method";
34498         description
34499           "Set remote authentication method";
34500         container anyconnect-eap {
34501           tailf:info "AnyConnect EAP";
34502           description
34503             "AnyConnect EAP";
34504           container aggregate {
34505             tailf:info "use aggregate auth for anyconnect eap";
34506             description
34507               "use aggregate auth for anyconnect eap";
34508             presence "true";
34509             leaf cert-request {
34510               tailf:info "use double authentication during anyconnect eap";
34511               description
34512                 "use double authentication during anyconnect eap";
34513               tailf:cli-full-command;
34514               type empty;
34515             }
34516           }
34517         }
34518         container eap {
34519           tailf:info "Extended Authentication Protocol";
34520           description
34521             "Extended Authentication Protocol";
34522           presence "true";
34523           leaf query-identity {
34524             tailf:info "query EAP identity from peer";
34525             description
34526               "query EAP identity from peer";
34527             tailf:cli-full-command;
34528             type empty;
34529           }
34530           leaf timeout {
34531             tailf:info "timeout";
34532             description
34533               "timeout";
34534             tailf:cli-full-command;
34535             type uint8 {
34536               tailf:info "<45-180>;;EAP authentication timeout in seconds";
34537               range "45..180";
34538             }
34539           }
34540         }
34541         leaf ecdsa-sig {
34542           tailf:info "ECDSA Signature";
34543           description
34544             "ECDSA Signature";
34545           tailf:cli-full-command;
34546           type empty;
34547         }
34548         container pre-share {
34549           tailf:info "Pre-Shared Key";
34550           description
34551             "Pre-Shared Key";
34552           presence "true";
34553           uses crypto-ikev2-profile-authentication-key-grouping;
34554         }
34555         leaf rsa-sig {
34556           tailf:info "Rivest-Shamir-Adleman Signature";
34557           description
34558             "Rivest-Shamir-Adleman Signature";
34559           tailf:cli-full-command;
34560           type empty;
34561         }
34562       }
34563     }
34564     container config-exchange {
34565       tailf:info "config-exchange options";
34566       description
34567         "config-exchange options";
34568       leaf request {
34569         tailf:info "enable config-exchange request";
34570         description
34571           "enable config-exchange request";
34572         tailf:cli-full-command;
34573         type empty;
34574       }
34575       leaf set {
34576         tailf:info "config-exchange set options";
34577         description
34578           "config-exchange set options";
34579         tailf:cli-full-command;
34580         type enumeration {
34581           enum "accept" {
34582             tailf:info "accept config-exchange set";
34583           }
34584           enum "send" {
34585             tailf:info "enable sending of config-exchange set";
34586           }
34587         }
34588       }
34589     }
34590     leaf description {
34591       tailf:info "Specify a description of this profile";
34592       description
34593         "Specify a description of this profile";
34594       tailf:cli-multi-value;
34595       type string {
34596         tailf:info "LINE;;a 1 line description of the profile";
34597       }
34598     }
34599     container dpd {
34600       tailf:info "Enable IKE liveness check for peers";
34601       description
34602         "Enable IKE liveness check for peers";
34603       tailf:cli-sequence-commands;
34604       tailf:cli-compact-syntax;
34605       leaf interval {
34606         tailf:cli-drop-node-name;
34607         type uint16 {
34608           tailf:info "<10-3600>;;DPD R-U-THERE interval";
34609           range "10..3600";
34610         }
34611       }
34612       leaf retry {
34613         tailf:cli-drop-node-name;
34614         type uint8 {
34615           tailf:info "<2-60>;;DPD Retry Interval";
34616           range "2..60";
34617         }
34618       }
34619       leaf query {
34620         tailf:cli-drop-node-name;
34621         type enumeration {
34622           enum "on-demand" {
34623             tailf:info "Send DPD queries only as needed";
34624           }
34625           enum "periodic" {
34626             tailf:info "Send DPD queries at regular intervals";
34627           }
34628         }
34629       }
34630     }
34631     container identity {
34632       tailf:info "Specify IKE identity to use";
34633       description
34634         "Specify IKE identity to use";
34635       leaf address {
34636         tailf:info "address";
34637         description
34638           "address";
34639         tailf:cli-full-command;
34640         type inet:ip-address {
34641           tailf:info "A.B.C.D;;IPv4 addressX:X:X:X::X;;IPv6 address";
34642         }
34643       }
34644       leaf dn {
34645         tailf:info "Distinguished Name";
34646         description
34647           "Distinguished Name";
34648         tailf:cli-full-command;
34649         type empty;
34650       }
34651       leaf email {
34652         tailf:info "Fully qualified email string";
34653         description
34654           "Fully qualified email string";
34655         tailf:cli-full-command;
34656         type string {
34657           tailf:info "WORD;;email <user@domain>";
34658         }
34659       }
34660       leaf fqdn {
34661         tailf:info "Fully qualified domain name string";
34662         description
34663           "Fully qualified domain name string";
34664         tailf:cli-full-command;
34665         type string {
34666           tailf:info "WORD;;FQDN <host.domain>";
34667         }
34668       }
34669       leaf key-id {
34670         tailf:info "key-id opaque string - proprietary types of identification";
34671         description
34672           "key-id opaque string - proprietary types of identification";
34673         tailf:cli-full-command;
34674         type string {
34675           tailf:info "WORD;;key-id string";
34676         }
34677       }
34678     }
34679     container initial-contact {
34680       tailf:info "initial-contact processing options";
34681       description
34682         "initial-contact processing options";
34683       leaf force {
34684         tailf:info "Enforces initial-contact based clean-up";
34685         description
34686           "Enforces initial-contact based clean-up";
34687         tailf:cli-full-command;
34688         type empty;
34689       }
34690     }
34691     leaf ivrf {
34692       tailf:info "I-VRF of the profile";
34693       description
34694         "I-VRF of the profile";
34695       type string {
34696         tailf:info "WORD;;VRF Name";
34697       }
34698     }
34699     container keyring {
34700       tailf:info "Specify keyring to use";
34701       description
34702         "Specify keyring to use";
34703       list aaa {
34704         tailf:info "AAA based keyring";
34705         description
34706           "AAA based keyring";
34707         tailf:cli-suppress-mode;
34708         key "name";
34709         leaf name {
34710           type string {
34711             tailf:info "WORD;;AAA list name";
34712           }
34713         }
34714         leaf name-mangler {
34715           tailf:info "Specify the name-mangler to derive username";
34716           description
34717             "Specify the name-mangler to derive username";
34718           tailf:cli-hide-in-submode;
34719           type string {
34720             tailf:info "WORD;;mangler name";
34721           }
34722         }
34723         container password {
34724           tailf:info "Specify the AAA password";
34725           description
34726             "Specify the AAA password";
34727           tailf:cli-hide-in-submode;
34728           tailf:cli-sequence-commands;
34729           tailf:cli-compact-syntax;
34730           leaf encryption {
34731             tailf:cli-drop-node-name;
34732             tailf:cli-incomplete-command;
34733             tailf:cli-optional-in-sequence;
34734             type enumeration {
34735               enum "0" {
34736                 tailf:info "Specifies an UNENCRYPTED password will follow";
34737               }
34738               enum "6" {
34739                 tailf:info "Specifies an ENCRYPTED password will follow";
34740               }
34741             }
34742           }
34743           leaf key {
34744             tailf:cli-drop-node-name;
34745             tailf:cli-multi-value;
34746             type string {
34747               tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
34748             }
34749           }
34750         }
34751       }
34752       leaf local {
34753         tailf:info "Local keyring";
34754         description
34755           "Local keyring";
34756         type string {
34757           tailf:info "WORD;;Keyring name";
34758         }
34759       }
34760     }
34761     container lifetime {
34762       tailf:info "Set lifetime for ISAKMP security association";
34763       description
34764         "Set lifetime for ISAKMP security association";
34765       leaf seconds {
34766         tailf:cli-drop-node-name;
34767         tailf:cli-full-command;
34768         type uint32 {
34769           tailf:info "<120-86400>;;lifetime in seconds";
34770           range "120..86400";
34771         }
34772       }
34773       leaf certificate {
34774         tailf:info "Enable certificate based lifetime";
34775         description
34776           "Enable certificate based lifetime";
34777         tailf:cli-full-command;
34778         type empty;
34779       }
34780     }
34781     container match {
34782       tailf:info "Match values of peer";
34783       description
34784         "Match values of peer";
34785       container address {
34786         tailf:info "IP address";
34787         description
34788           "IP address";
34789         container local {
34790           tailf:info "Local address";
34791           description
34792             "Local address";
34793           leaf ip {
34794             tailf:cli-drop-node-name;
34795             tailf:cli-full-command;
34796             type inet:ip-address {
34797               tailf:info "A.B.C.D;;Specify an IPv4 addressX:X:X:X::X;;Specify an IPv6 address";
34798             }
34799           }
34800           leaf interface {
34801             tailf:info "Specify an interface";
34802             description
34803               "Specify an interface";
34804             tailf:cli-full-command;
34805             type string;
34806           }
34807         }
34808       }
34809       leaf certificate {
34810         tailf:info "Peer certificate attributes";
34811         description
34812           "Peer certificate attributes";
34813         type string {
34814           tailf:info "WORD;;Specify the certificate map";
34815         }
34816       }
34817       container fvrf {
34818         tailf:info "fvrf of the profile";
34819         description
34820           "fvrf of the profile";
34821         leaf name {
34822           tailf:cli-drop-node-name;
34823           tailf:cli-full-command;
34824           type string {
34825             tailf:info "WORD;;fvrf name (default:global)";
34826           }
34827         }
34828         leaf any {
34829           tailf:info "Any fvrf";
34830           description
34831             "Any fvrf";
34832           tailf:cli-full-command;
34833           type empty;
34834         }
34835       }
34836       container identity {
34837         tailf:info "IKE identity";
34838         description
34839           "IKE identity";
34840         container remote {
34841           tailf:info "Remote identity";
34842           description
34843             "Remote identity";
34844           container address {
34845             tailf:info "IP address(es)";
34846             description
34847               "IP address(es)";
34848             choice ipv4-ipv6 {
34849               case ipv4-case {
34850                 container ipv4 {
34851                   tailf:cli-drop-node-name;
34852                   tailf:cli-sequence-commands;
34853                   tailf:cli-compact-syntax;
34854                   leaf ipv4-address {
34855                     tailf:cli-drop-node-name;
34856                     type inet:ipv4-address {
34857                       tailf:info "A.B.C.D;;IPv4 Address prefix";
34858                     }
34859                   }
34860                   leaf ipv4-mask {
34861                     tailf:cli-drop-node-name;
34862                     tailf:cli-optional-in-sequence;
34863                     type inet:ipv4-address {
34864                       tailf:info "A.B.C.D;;specify mask";
34865                     }
34866                   }
34867                 }
34868               }
34869               case ipv6-case {
34870                 leaf ipv6-prefix {
34871                   tailf:cli-drop-node-name;
34872                   type inet:ipv6-prefix {
34873                     tailf:info "X:X:X:X::X/<0-128>;;IPv6 address/prefix-length";
34874                   }
34875                 }
34876               }
34877             }
34878           }
34879           leaf any {
34880             tailf:info "match any peer identity";
34881             description
34882               "match any peer identity";
34883             tailf:cli-full-command;
34884             type empty;
34885           }
34886           container email {
34887             tailf:info "Fully qualified email string [Max. 255 char(s)]";
34888             description
34889               "Fully qualified email string [Max. 255 char(s)]";
34890             leaf name {
34891               tailf:cli-drop-node-name;
34892               tailf:cli-full-command;
34893               type string {
34894                 tailf:info "WORD;;Specify the name string";
34895               }
34896             }
34897             leaf domain {
34898               tailf:info "match domain instead of exact";
34899               description
34900                 "match domain instead of exact";
34901               tailf:cli-full-command;
34902               type string {
34903                 tailf:info "WORD;;Specify the name string";
34904               }
34905             }
34906           }
34907           container fqdn {
34908             tailf:info "Fully qualified domain name string [Max. 255 char(s)]";
34909             description
34910               "Fully qualified domain name string [Max. 255 char(s)]";
34911             leaf name {
34912               tailf:cli-drop-node-name;
34913               tailf:cli-full-command;
34914               type string {
34915                 tailf:info "WORD;;Specify the name string";
34916               }
34917             }
34918             leaf domain {
34919               tailf:info "match domain instead of exact";
34920               description
34921                 "match domain instead of exact";
34922               tailf:cli-full-command;
34923               type string {
34924                 tailf:info "WORD;;Specify the name string";
34925               }
34926             }
34927           }
34928           leaf key-id {
34929             tailf:info "key-id opaque string";
34930             description
34931               "key-id opaque string";
34932             type string {
34933               tailf:info "WORD;;Specify the key-id string";
34934             }
34935           }
34936         }
34937       }
34938     }
34939     container nat {
34940       tailf:info "NAT-transparency";
34941       description
34942         "NAT-transparency";
34943       leaf keepalive {
34944         tailf:info "NAT keepalive interval";
34945         description
34946           "NAT keepalive interval";
34947         type uint16 {
34948           tailf:info "<5-3600>;;NAT keepalive interval in seconds";
34949           range "5..3600";
34950         }
34951       }
34952     }
34953     container pki {
34954       tailf:info "Specify certificate authorities to trust";
34955       description
34956         "Specify certificate authorities to trust";
34957       tailf:cli-sequence-commands;
34958       tailf:cli-compact-syntax;
34959       leaf trustpoint {
34960         tailf:info "Cert authority trustpoint for RSA sig";
34961         description
34962           "Cert authority trustpoint for RSA sig";
34963         type string {
34964           tailf:info "WORD;;Specify the trustpoint label to use";
34965         }
34966       }
34967       leaf use {
34968         tailf:cli-drop-node-name;
34969         tailf:cli-optional-in-sequence;
34970         type enumeration {
34971           enum "sign" {
34972             tailf:info "Set trustpoint for sign";
34973           }
34974           enum "verify" {
34975             tailf:info "Set trustpoint for verify";
34976           }
34977         }
34978       }
34979     }
34980     container reconnect {
34981       tailf:info "Enable profile for auto re-connect";
34982       description
34983         "Enable profile for auto re-connect";
34984       presence "true";
34985       leaf timeout {
34986         tailf:info "timeout value for session in reconnect state";
34987         description
34988           "timeout value for session in reconnect state";
34989         type uint32 {
34990           tailf:info "<600-86400>;;reconnect timeout interval in seconds";
34991           range "600..86400";
34992         }
34993       }
34994     }
34995     container redirect {
34996       tailf:info "IKEv2 Redirect Mechanism for load-balancing";
34997       description
34998         "IKEv2 Redirect Mechanism for load-balancing";
34999       container gateway {
35000         tailf:info "Enables Redirect Mechanism on Gateway";
35001         description
35002           "Enables Redirect Mechanism on Gateway";
35003         leaf auth {
35004           tailf:info "Redirect at SA authentication";
35005           description
35006             "Redirect at SA authentication";
35007           type empty;
35008         }
35009       }
35010     }
35011     leaf shutdown {
35012       tailf:info "shutdown the IKEv2 profile";
35013       description
35014         "shutdown the IKEv2 profile";
35015       tailf:cli-full-command;
35016       type empty;
35017     }
35018     container virtual-template {
35019       tailf:info "Specify the virtual-template for dynamic interface creation.";
35020       description
35021         "Specify the virtual-template for dynamic interface creation.";
35022       tailf:cli-sequence-commands;
35023       tailf:cli-compact-syntax;
35024       leaf number {
35025         tailf:cli-drop-node-name;
35026         type uint16 {
35027           tailf:info "<1-4095>;;Virtual-template number";
35028           range "1..4095";
35029         }
35030       }
35031       leaf mode {
35032         tailf:info "Enabling Tunnel Auto Mode";
35033         description
35034           "Enabling Tunnel Auto Mode";
35035         tailf:cli-optional-in-sequence;
35036         type enumeration {
35037           enum "auto" {
35038             tailf:info "Auto - Enable Auto feature on the ike profile";
35039           }
35040         }
35041       }
35042     }
35043   }
35044
35045   grouping crypto-ikev2-grouping {
35046     container authorization {
35047       tailf:info "IKEv2 authorization";
35048       description
35049         "IKEv2 authorization";
35050       leaf policy {
35051         tailf:info "IKEv2 authorization policy";
35052         description
35053           "IKEv2 authorization policy";
35054         type string {
35055           tailf:info "WORD;;Name of the policy";
35056         }
35057       }
35058     }
35059     leaf certificate-cache {
35060       tailf:info "Cache for storing certs fetched from HTTP URLs";
35061       description
35062         "Cache for storing certs fetched from HTTP URLs";
35063       type uint16 {
35064         tailf:info "<1-2000>;;Maximum number of certificates stored in certificate cache";
35065       }
35066     }
35067     container client {
35068       tailf:info "IKEv2 client configuration";
35069       description
35070         "IKEv2 client configuration";
35071       leaf flexvpn {
35072         tailf:info "Configure an IKEv2 FlexVPN client";
35073         description
35074           "Configure an IKEv2 FlexVPN client";
35075         type string {
35076           tailf:info "WORD;;IKEv2 FlexVPN name";
35077         }
35078       }
35079     }
35080     leaf cluster {
35081       tailf:info "Cluster load-balancer settings";
35082       description
35083         "Cluster load-balancer settings";
35084       type empty;
35085     }
35086     leaf cookie-challenge {
35087       tailf:info "Set Cookie-challenge watermark";
35088       description
35089         "Set Cookie-challenge watermark";
35090       type uint16 {
35091         tailf:info "<0-1000>;;Maximum number of in-negotiation SAs that enable Cookie-challenge";
35092       }
35093     }
35094     container cts {
35095       tailf:info "Cisco Trust Security";
35096       description
35097         "Cisco Trust Security";
35098       leaf sgt {
35099         tailf:info "Security Group Tag";
35100         description
35101           "Security Group Tag";
35102         type empty;
35103       }
35104     }
35105     container diagnose {
35106       tailf:info "IKEV2 diagnose";
35107       description
35108         "IKEV2 diagnose";
35109       leaf error {
35110         tailf:info "Start IKEv2 error trace debug";
35111         description
35112           "Start IKEv2 error trace debug";
35113         type uint16 {
35114           tailf:info "<1-1000>;;Maximum number of exit path entry";
35115           range "1..1000";
35116         }
35117       }
35118     }
35119     leaf disconnect-revoked-peers {
35120       tailf:info "Disconnect Crypto Session with Cert Revoked Peer";
35121       description
35122         "Disconnect Crypto Session with Cert Revoked Peer";
35123       type empty;
35124     }
35125     container dpd-container {
35126       tailf:cli-drop-node-name;
35127       tailf:cli-sequence-commands;
35128       tailf:cli-compact-syntax;
35129       leaf dpd {
35130         tailf:info "Enable IKE liveness check for peers";
35131         description
35132           "Enable IKE liveness check for peers";
35133         type uint16 {
35134           tailf:info "<10-3600>;;DPD R-U-THERE interval";
35135           range "10..3600";
35136         }
35137       }
35138       leaf retry-interval {
35139         tailf:cli-drop-node-name;
35140         type uint8 {
35141           tailf:info "<2-60>;;DPD Retry Interval";
35142           range "2..60";
35143         }
35144       }
35145       leaf dpd-query {
35146         tailf:cli-drop-node-name;
35147         type enumeration {
35148           enum "on-demand" {
35149             tailf:info "Send DPD queries only as needed";
35150           }
35151           enum "periodic" {
35152             tailf:info "Send DPD queries at regular intervals";
35153           }
35154         }
35155       }
35156     }
35157     container fragmentation {
35158       tailf:info "Enable fragmentation of ikev2 packets";
35159       description
35160         "Enable fragmentation of ikev2 packets";
35161       presence "true";
35162       leaf mtu {
35163         tailf:info "MTU size for fragmentation";
35164         description
35165           "MTU size for fragmentation";
35166         type uint16 {
35167           tailf:info "<68-1500>;;ikev2 MTU including IP and UDP header size";
35168           range "68..1500";
35169         }
35170       }
35171     }
35172     container http-url {
35173       tailf:info "Enable http URL lookup";
35174       description
35175         "Enable http URL lookup";
35176       leaf cert {
35177         tailf:info "Enable certificate lookup based on HTTP-based URL";
35178         description
35179           "Enable certificate lookup based on HTTP-based URL";
35180         type empty;
35181       }
35182     }
35183     list keyring {
35184       tailf:info "Define IKEv2 Keyring";
35185       description
35186         "Define IKEv2 Keyring";
35187       tailf:cli-mode-name "config-ikev2-keyring";
35188       key "name";
35189       leaf name {
35190         type string {
35191           tailf:info "WORD;;Name of IKEv2 Keyring";
35192         }
35193       }
35194       list peer {
35195         tailf:info "Configure a Peer and associated keys";
35196         description
35197           "Configure a Peer and associated keys";
35198         tailf:cli-mode-name "config-ikev2-keyring-peer";
35199         key "name";
35200         leaf name {
35201           type string {
35202             tailf:info "WORD;;Name of the peer block";
35203           }
35204         }
35205         uses crypto-ikev2-keyring-peer-grouping;
35206       }
35207     }
35208     container limit {
35209       tailf:info "Limit the number of maximum and negotiating sa";
35210       description
35211         "Limit the number of maximum and negotiating sa";
35212       container max-neg-sa {
35213         tailf:cli-drop-node-name;
35214         tailf:cli-sequence-commands;
35215         tailf:cli-compact-syntax;
35216         leaf max-in-negotation-sa {
35217           tailf:info "Limit the maximum number of negotiating SA";
35218           description
35219             "Limit the maximum number of negotiating SA";
35220           type uint32 {
35221             tailf:info "<1-9999>;;Set the limit";
35222             range "1..9999";
35223           }
35224         }
35225         leaf direction {
35226           tailf:cli-drop-node-name;
35227           tailf:cli-optional-in-sequence;
35228           type enumeration {
35229             enum "incoming" {
35230               tailf:info "Limit the maximum number of incoming negotiating SA";
35231             }
35232             enum "outgoing" {
35233               tailf:info "Limit the maximum number of outgoing negotiating SA";
35234             }
35235           }
35236         }
35237       }
35238       leaf max-sa {
35239         tailf:info "Limit the maximum number of SA allowed";
35240         description
35241           "Limit the maximum number of SA allowed";
35242         type uint32 {
35243           tailf:info "<1-9999>;;Set the limit";
35244           range "1..9999";
35245         }
35246       }
35247     }
35248     leaf name-mangler {
35249       tailf:info "Name mangler";
35250       description
35251         "Name mangler";
35252       type string {
35253         tailf:info "WORD;;Name of the mangler";
35254       }
35255     }
35256     container nat {
35257       tailf:info "NAT-transparency";
35258       description
35259         "NAT-transparency";
35260       leaf keepalive {
35261         tailf:info "Set NAT keepalive interval";
35262         description
35263           "Set NAT keepalive interval";
35264         type uint16 {
35265           tailf:info "<5-3600>;;Number of seconds between NAT keepalive";
35266           range "5..3600";
35267         }
35268       }
35269     }
35270     list policy {
35271       tailf:info "Define IKEV2 policies";
35272       description
35273         "Define IKEV2 policies";
35274       tailf:cli-mode-name "config-ikev2-policy";
35275       key "name";
35276       leaf name {
35277         type string {
35278           tailf:info "WORD;;Name of IKEv2 policy";
35279         }
35280       }
35281       container match {
35282         tailf:info "Match values of local fields";
35283         description
35284           "Match values of local fields";
35285         container address {
35286           tailf:info "Specify the address to match";
35287           description
35288             "Specify the address to match";
35289           leaf local {
35290             tailf:info "Local address";
35291             description
35292               "Local address";
35293             type inet:ip-address {
35294               tailf:info "A.B.C.D;;IPv4 addressX:X:X:X::X;;IPv6 address";
35295             }
35296           }
35297         }
35298         container fvrf {
35299           tailf:info "Specify fvrf";
35300           description
35301             "Specify fvrf";
35302           leaf name {
35303             tailf:cli-drop-node-name;
35304             tailf:cli-full-command;
35305             type string {
35306               tailf:info "WORD;;fvrf name (default:global)";
35307             }
35308           }
35309           leaf any {
35310             tailf:info "Any fvrf";
35311             description
35312               "Any fvrf";
35313             tailf:cli-full-command;
35314             type empty;
35315           }
35316         }
35317       }
35318       leaf proposal {
35319         tailf:info "Specify Proposal";
35320         description
35321           "Specify Proposal";
35322         type string {
35323           tailf:info "WORD;;Specify the name of proposal to be attached";
35324         }
35325       }
35326     }
35327     list profile {
35328       tailf:info "Define IKEV2 profiles";
35329       description
35330         "Define IKEV2 profiles";
35331       tailf:cli-mode-name "config-ikev2-profile";
35332       key "name";
35333       leaf name {
35334         type string {
35335           tailf:info "WORD;;Name of IKEv2 profile";
35336         }
35337       }
35338       uses crypto-ikev2-profile-grouping;
35339     }
35340     list proposal {
35341       tailf:info "Define IKEV2 proposals";
35342       description
35343         "Define IKEV2 proposals";
35344       tailf:cli-mode-name "config-ikev2-proposal";
35345       key "name";
35346       leaf name {
35347         type string {
35348           tailf:info "WORD;;Name of IKEv2 proposal";
35349         }
35350       }
35351       container encryption {
35352         tailf:info "Set encryption algorithm(s) for proposal";
35353         description
35354           "Set encryption algorithm(s) for proposal";
35355         tailf:cli-compact-syntax;
35356         leaf en-3des {
35357           tailf:alt-name "3des";
35358           tailf:info "3DES";
35359           description
35360             "3DES";
35361           type empty;
35362         }
35363         leaf aes-cbc-128 {
35364           tailf:info "AES-CBC-128";
35365           description
35366             "AES-CBC-128";
35367           type empty;
35368         }
35369         leaf aes-cbc-192 {
35370           tailf:info "AES-CBC-192";
35371           description
35372             "AES-CBC-192";
35373           type empty;
35374         }
35375         leaf aes-cbc-256 {
35376           tailf:info "AES-CBC-256";
35377           description
35378             "AES-CBC-256";
35379           type empty;
35380         }
35381         leaf aes-gcm-128 {
35382           tailf:info "Combined-mode,128 bit key,16 byte ICV(Authentication Tag)";
35383           description
35384             "Combined-mode,128 bit key,16 byte ICV(Authentication Tag)";
35385           type empty;
35386         }
35387         leaf aes-gcm-256 {
35388           tailf:info "Combined-mode,256 bit key,16 byte ICV(Authentication Tag)";
35389           description
35390             "Combined-mode,256 bit key,16 byte ICV(Authentication Tag)";
35391           type empty;
35392         }
35393         leaf des {
35394           tailf:info "DES";
35395           description
35396             "DES";
35397           type empty;
35398         }
35399       }
35400       container group {
35401         tailf:info "Set the Diffie-Hellman group(s)";
35402         description
35403           "Set the Diffie-Hellman group(s)";
35404         tailf:cli-compact-syntax;
35405         leaf one {
35406           tailf:alt-name "1";
35407           tailf:info "DH 768 MODP";
35408           description
35409             "DH 768 MODP";
35410           type empty;
35411         }
35412         leaf fourteen {
35413           tailf:alt-name "14";
35414           tailf:info "DH 2048 MODP";
35415           description
35416             "DH 2048 MODP";
35417           type empty;
35418         }
35419         leaf fifteen {
35420           tailf:alt-name "15";
35421           tailf:info "DH 3072 MODP";
35422           description
35423             "DH 3072 MODP";
35424           type empty;
35425         }
35426         leaf sixteen {
35427           tailf:alt-name "16";
35428           tailf:info "DH 4096 MODP";
35429           description
35430             "DH 4096 MODP";
35431           type empty;
35432         }
35433         leaf nineteen {
35434           tailf:alt-name "19";
35435           tailf:info "DH 256 ECP";
35436           description
35437             "DH 256 ECP";
35438           type empty;
35439         }
35440         leaf two {
35441           tailf:alt-name "2";
35442           tailf:info "DH 1024 MODP";
35443           description
35444             "DH 1024 MODP";
35445           type empty;
35446         }
35447         leaf twenty {
35448           tailf:alt-name "20";
35449           tailf:info "DH 384 ECP";
35450           description
35451             "DH 384 ECP";
35452           type empty;
35453         }
35454         leaf twenty-one {
35455           tailf:alt-name "21";
35456           tailf:info "DH 521 ECP";
35457           description
35458             "DH 521 ECP";
35459           type empty;
35460         }
35461         leaf twenty-four {
35462           tailf:alt-name "24";
35463           tailf:info "DH 2048 (256 subgroup) MODP";
35464           description
35465             "DH 2048 (256 subgroup) MODP";
35466           type empty;
35467         }
35468         leaf five {
35469           tailf:alt-name "5";
35470           tailf:info "DH 1536 MODP";
35471           description
35472             "DH 1536 MODP";
35473           type empty;
35474         }
35475       }
35476       container integrity {
35477         tailf:info "Set integrity hash algorithm(s) for proposal";
35478         description
35479           "Set integrity hash algorithm(s) for proposal";
35480         tailf:cli-compact-syntax;
35481         leaf md5 {
35482           tailf:info "Message Digest 5";
35483           description
35484             "Message Digest 5";
35485           type empty;
35486         }
35487         leaf sha1 {
35488           tailf:info "Secure Hash Standard";
35489           description
35490             "Secure Hash Standard";
35491           type empty;
35492         }
35493         leaf sha256 {
35494           tailf:info "Secure Hash Standard 2 (256 bit)";
35495           description
35496             "Secure Hash Standard 2 (256 bit)";
35497           type empty;
35498         }
35499         leaf sha384 {
35500           tailf:info "Secure Hash Standard 2 (384 bit)";
35501           description
35502             "Secure Hash Standard 2 (384 bit)";
35503           type empty;
35504         }
35505         leaf sha512 {
35506           tailf:info "Secure Hash Standard 2 (512 bit)";
35507           description
35508             "Secure Hash Standard 2 (512 bit)";
35509           type empty;
35510         }
35511       }
35512       container prf {
35513         tailf:info "Set prf algorithm(s) for proposal";
35514         description
35515           "Set prf algorithm(s) for proposal";
35516         tailf:cli-compact-syntax;
35517         leaf md5 {
35518           tailf:info "Message Digest 5";
35519           description
35520             "Message Digest 5";
35521           type empty;
35522         }
35523         leaf sha1 {
35524           tailf:info "Secure Hash Standard";
35525           description
35526             "Secure Hash Standard";
35527           type empty;
35528         }
35529         leaf sha256 {
35530           tailf:info "Secure Hash Standard 2 (256 bit)";
35531           description
35532             "Secure Hash Standard 2 (256 bit)";
35533           type empty;
35534         }
35535         leaf sha384 {
35536           tailf:info "Secure Hash Standard 2 (384 bit)";
35537           description
35538             "Secure Hash Standard 2 (384 bit)";
35539           type empty;
35540         }
35541         leaf sha512 {
35542           tailf:info "Secure Hash Standard 2 (512 bit)";
35543           description
35544             "Secure Hash Standard 2 (512 bit)";
35545           type empty;
35546         }
35547       }
35548     }
35549     container reconnect {
35550       tailf:info "Cluster Reconnect";
35551       description
35552         "Cluster Reconnect";
35553       tailf:cli-sequence-commands;
35554       tailf:cli-compact-syntax;
35555       leaf key {
35556         tailf:info "Cluster Reconnect key";
35557         description
35558           "Cluster Reconnect key";
35559         type uint8 {
35560           tailf:info "<1-2>;;Key index";
35561           range "1..2";
35562         }
35563       }
35564       choice value-active {
35565         case value-case {
35566           leaf value {
35567             tailf:cli-drop-node-name;
35568             type string {
35569               tailf:info "WORD;;key value [Max 128 Chars]";
35570               length "1..128";
35571             }
35572           }
35573         }
35574         case active-case {
35575           leaf active {
35576             tailf:info "Current active cluster reconnect key";
35577             description
35578               "Current active cluster reconnect key";
35579             type string {
35580               tailf:info "WORD;;key value [Max 128 Chars]";
35581               length "1..128";
35582             }
35583           }
35584         }
35585       }
35586     }
35587     container redirect {
35588       tailf:info "IKEv2 Redirect Mechanism for load-balancing";
35589       description
35590         "IKEv2 Redirect Mechanism for load-balancing";
35591       container client {
35592         tailf:info "Enables Redirect Mechanism on Client";
35593         description
35594           "Enables Redirect Mechanism on Client";
35595         presence "true";
35596         leaf max-redirects {
35597           tailf:info "Redirect loop detection";
35598           description
35599             "Redirect loop detection";
35600           type uint8 {
35601             tailf:info "<1-255>;;Max no. of Redirects per session, Default value is 5";
35602           }
35603         }
35604       }
35605       leaf gateway {
35606         tailf:info "Enables Redirect Mechanism on Gateway";
35607         description
35608           "Enables Redirect Mechanism on Gateway";
35609         type enumeration {
35610           enum "auth" {
35611             tailf:info "Redirect at SA authentication";
35612           }
35613           enum "init" {
35614             tailf:info "Redirect at SA initiation";
35615           }
35616         }
35617       }
35618     }
35619     leaf window {
35620       tailf:info "IKEV2 window size";
35621       description
35622         "IKEV2 window size";
35623       type uint8 {
35624         tailf:info "<1-200>;;Maximum number of overlapping requests with a peer";
35625       }
35626     }
35627   }
35628
35629   grouping crypto-ipsec-profile-grouping {
35630     leaf description {
35631       tailf:info "Description of the crypto map statement policy";
35632       description
35633         "Description of the crypto map statement policy";
35634       tailf:cli-multi-value;
35635       type string {
35636         tailf:info "LINE;;A Short description";
35637       }
35638     }
35639     container dialer {
35640       tailf:info "Dialer related commands";
35641       description
35642         "Dialer related commands";
35643       leaf pre-classify {
35644         tailf:info "Enable dialer list classification before initiating IKE";
35645         description
35646           "Enable dialer list classification before initiating IKE";
35647         type empty;
35648       }
35649     }
35650     container redundancy {
35651       tailf:info "Configure HA for this ipsec profile";
35652       description
35653         "Configure HA for this ipsec profile";
35654       tailf:cli-sequence-commands;
35655       tailf:cli-compact-syntax;
35656       leaf name {
35657         tailf:cli-drop-node-name;
35658         type string {
35659           tailf:info "WORD;;Redundancy group name";
35660         }
35661       }
35662       leaf stateful {
35663         tailf:info "enable stateful failover";
35664         description
35665           "enable stateful failover";
35666         type empty;
35667       }
35668     }
35669     leaf responder-only {
35670       tailf:info "Do not initiate SAs from this device";
35671       description
35672         "Do not initiate SAs from this device";
35673       type empty;
35674     }
35675     container set {
35676       tailf:info "Set values for encryption/decryption";
35677       description
35678         "Set values for encryption/decryption";
35679       uses crypto-map-common-set-grouping;
35680       leaf mixed-mode {
35681         tailf:info "Turn on IPSec mixed-mode";
35682         description
35683           "Turn on IPSec mixed-mode";
35684         type empty;
35685       }
35686       container security-association {
35687         tailf:info "Security association parameters";
35688         description
35689           "Security association parameters";
35690         uses crypto-map-common-set-security-association-grouping;
35691         leaf level {
35692           tailf:info "specify a security association granularity level for identities";
35693           description
35694             "specify a security association granularity level for identities";
35695           type enumeration {
35696             enum "per-host" {
35697               tailf:info "granularity to host level";
35698             }
35699           }
35700         }
35701       }
35702       container security-policy {
35703         tailf:info "Maximum number of Security Policy entries that can be negotiated with the peer";
35704         description
35705           "Maximum number of Security Policy entries that can be negotiated with the peer";
35706         leaf limit {
35707           tailf:info "limit  0 - 50000";
35708           description
35709             "limit  0 - 50000";
35710           type uint32 {
35711             tailf:info "0 - 50000";
35712             range "0..50000";
35713           }
35714         }
35715       }
35716     }
35717   }
35718
35719   grouping crypto-ipsec-profile-default-grouping {
35720     leaf description {
35721       tailf:info "Description of the crypto map statement policy";
35722       description
35723         "Description of the crypto map statement policy";
35724       type empty;
35725     }
35726     container dialer {
35727       tailf:info "Dialer related commands";
35728       description
35729         "Dialer related commands";
35730       leaf pre-classify {
35731         tailf:info "Enable dialer list classification before initiating IKE";
35732         description
35733           "Enable dialer list classification before initiating IKE";
35734         type empty;
35735       }
35736     }
35737     leaf redundancy {
35738       tailf:info "Configure HA for this ipsec profile";
35739       description
35740         "Configure HA for this ipsec profile";
35741       type empty;
35742     }
35743     leaf responder-only {
35744       tailf:info "Do not initiate SAs from this device";
35745       description
35746         "Do not initiate SAs from this device";
35747       type empty;
35748     }
35749     container set {
35750       tailf:info "Set values for encryption/decryption";
35751       description
35752         "Set values for encryption/decryption";
35753       leaf group {
35754         tailf:info "Set the san group parameters";
35755         description
35756           "Set the san group parameters";
35757         type empty;
35758       }
35759       leaf identity {
35760         tailf:info "Identity restriction";
35761         description
35762           "Identity restriction";
35763         type empty;
35764       }
35765       leaf ikev2-profile {
35766         tailf:info "Specify ikev2 Profile";
35767         description
35768           "Specify ikev2 Profile";
35769         type string {
35770           tailf:info "WORD;;Name the ikev2 profile";
35771         }
35772       }
35773       leaf isakmp-profile {
35774         tailf:info "Specify isakmp Profile";
35775         description
35776           "Specify isakmp Profile";
35777         type empty;
35778       }
35779       leaf mixed-mode {
35780         tailf:info "Turn on IPSec mixed-mode";
35781         description
35782           "Turn on IPSec mixed-mode";
35783         type empty;
35784       }
35785       container pfs {
35786         tailf:info "Specify pfs settings";
35787         description
35788           "Specify pfs settings";
35789         presence "true";
35790       }
35791       container reverse-route {
35792         tailf:info "Reverse Route Injection";
35793         description
35794           "Reverse Route Injection";
35795         presence "true";
35796       }
35797       container security-association {
35798         tailf:info "Security association parameters";
35799         description
35800           "Security association parameters";
35801         leaf dfbit {
35802           tailf:info "Handling of encapsulated DF bit.";
35803           description
35804             "Handling of encapsulated DF bit.";
35805           type empty;
35806         }
35807         container dummy {
35808           tailf:info "Enable transmitting dummy packets";
35809           description
35810             "Enable transmitting dummy packets";
35811           presence "true";
35812         }
35813         leaf ecn {
35814           tailf:info "Handling of ECN bit";
35815           description
35816             "Handling of ECN bit";
35817           type empty;
35818         }
35819         container idle-time-container {
35820           tailf:cli-drop-node-name;
35821           tailf:cli-sequence-commands;
35822           tailf:cli-compact-syntax;
35823           leaf idle-time {
35824             tailf:info "Automatically delete IPSec SAs after a given idle period.";
35825             description
35826               "Automatically delete IPSec SAs after a given idle period.";
35827             type empty;
35828           }
35829           leaf default {
35830             tailf:info "All SAs idle-out reset to default peer";
35831             description
35832               "All SAs idle-out reset to default peer";
35833             tailf:cli-optional-in-sequence;
35834             type empty;
35835           }
35836         }
35837         leaf level {
35838           tailf:info "specify a security association granularity level for identities";
35839           description
35840             "specify a security association granularity level for identities";
35841           type enumeration {
35842             enum "per-host" {
35843               tailf:info "granularity to host level";
35844             }
35845           }
35846         }
35847         container lifetime {
35848           tailf:info "security association lifetime";
35849           description
35850             "security association lifetime";
35851           leaf days {
35852             tailf:info "Time-based key duration in days";
35853             description
35854               "Time-based key duration in days";
35855             type empty;
35856           }
35857           leaf kilobytes {
35858             tailf:info "Volume-based key duration";
35859             description
35860               "Volume-based key duration";
35861             type empty;
35862           }
35863           leaf seconds {
35864             tailf:info "Time-based key duration in seconds";
35865             description
35866               "Time-based key duration in seconds";
35867             type empty;
35868           }
35869         }
35870         container replay {
35871           tailf:info "Set replay checking.";
35872           description
35873             "Set replay checking.";
35874           leaf disable {
35875             tailf:info "Disable replay checking";
35876             description
35877               "Disable replay checking";
35878             type empty;
35879           }
35880           leaf window-size {
35881             tailf:info "Set replay window size.";
35882             description
35883               "Set replay window size.";
35884             type empty;
35885           }
35886         }
35887       }
35888       container security-policy {
35889         tailf:info "Maximum number of Security Policy entries that can be negotiated with the peer";
35890         description
35891           "Maximum number of Security Policy entries that can be negotiated with the peer";
35892         leaf limit {
35893           tailf:info "limit  0 - 50000";
35894           description
35895             "limit  0 - 50000";
35896           type uint32 {
35897             tailf:info "0 - 50000";
35898             range "0..50000";
35899           }
35900         }
35901       }
35902       leaf transform-set {
35903         tailf:info "Specify list of transform sets in priority order";
35904         description
35905           "Specify list of transform sets in priority order";
35906         type empty;
35907       }
35908     }
35909   }
35910
35911   grouping crypto-ipsec-grouping {
35912     leaf df-bit {
35913       tailf:info "Handling of encapsulated DF bit.";
35914       description
35915         "Handling of encapsulated DF bit.";
35916       type enumeration {
35917         enum "clear" {
35918           tailf:info "Clear DF bit for encapsulated packets.";
35919         }
35920         enum "copy" {
35921           tailf:info "Copy DF bit from inner for encapsulated packets.";
35922         }
35923         enum "set" {
35924           tailf:info "Set DF bit for encapsulated packets.";
35925         }
35926       }
35927     }
35928     leaf fragmentation {
35929       tailf:info "Handling of fragmentation of near-MTU sized packets";
35930       description
35931         "Handling of fragmentation of near-MTU sized packets";
35932       type enumeration {
35933         enum "after-encryption" {
35934           tailf:info "Perform fragmentation of large packets after IPSec encapsulation.";
35935         }
35936         enum "before-encryption" {
35937           tailf:info "Perform fragmentation of large packets before IPSec encapsulation.";
35938         }
35939       }
35940     }
35941     leaf ipv4-deny {
35942       tailf:info "Configure global ipv4 deny policy.";
35943       description
35944         "Configure global ipv4 deny policy.";
35945       type enumeration {
35946         enum "clear" {
35947           tailf:info "Pass packet in clear when deny acl is matched";
35948         }
35949         enum "drop" {
35950           tailf:info "Drop packet when deny acl is matched";
35951         }
35952         enum "jump" {
35953           tailf:info "Jump to next crypto map chain when deny acl is matched";
35954         }
35955       }
35956     }
35957     leaf nat-transparency {
35958       tailf:info "IPsec NAT transparency model";
35959       description
35960         "IPsec NAT transparency model";
35961       type enumeration {
35962         enum "spi-matching" {
35963           tailf:info "Match inbound SPI to outbound SPI for IPsec aware NAT";
35964         }
35965         enum "udp-encapsulation" {
35966           tailf:info "UDP encapsulation of IPsec protocols";
35967         }
35968       }
35969     }
35970     container optional {
35971       tailf:info "Enable optional encryption for IPSec";
35972       description
35973         "Enable optional encryption for IPSec";
35974       presence "true";
35975       leaf retry {
35976         tailf:info "Configure length of IPSec retry interval";
35977         description
35978           "Configure length of IPSec retry interval";
35979         type uint32 {
35980           tailf:info "<60-86400>;;Number of seconds between IPSec retries";
35981           range "60..86400";
35982         }
35983       }
35984     }
35985     list profile {
35986       tailf:info "Configure an ipsec policy profile";
35987       description
35988         "Configure an ipsec policy profile";
35989       tailf:cli-mode-name "ipsec-profile";
35990       key "name";
35991       leaf name {
35992         type string {
35993           tailf:info "WORD;;Profile name";
35994         }
35995       }
35996       container default {
35997         tailf:info "Set a command to its defaults";
35998         description
35999           "Set a command to its defaults";
36000         uses crypto-ipsec-profile-default-grouping;
36001       }
36002       uses crypto-ipsec-profile-grouping;
36003     }
36004     container security-association {
36005       tailf:info "Security association parameters";
36006       description
36007         "Security association parameters";
36008       container dummy {
36009         tailf:info "Enable transmitting dummy packets";
36010         description
36011           "Enable transmitting dummy packets";
36012         leaf pps {
36013           tailf:info "Simulated traffic rate (in pps)";
36014           description
36015             "Simulated traffic rate (in pps)";
36016           type uint8 {
36017             tailf:info "<0-25>;;Rate of simulated traffic (in PPS)";
36018             range "0..25";
36019           }
36020         }
36021         leaf seconds {
36022           tailf:info "Simulated traffic rate (in seconds)";
36023           description
36024             "Simulated traffic rate (in seconds)";
36025           type uint16 {
36026             tailf:info "<1-3600>;;Rate of simulated traffic (seconds between packets)";
36027             range "1..3600";
36028           }
36029         }
36030       }
36031       leaf ecn {
36032         tailf:info "Handling of ECN bit";
36033         description
36034           "Handling of ECN bit";
36035         type enumeration {
36036           enum "discard" {
36037             tailf:info "Discard the Explicit Congestion Notification bits on decryption";
36038           }
36039           enum "propagate" {
36040             tailf:info "Propagate the Explicit Congestion Notification bits on decryption (RFC4301)";
36041           }
36042         }
36043       }
36044       leaf idle-time {
36045         tailf:info "Automatically delete IPSec SAs after a given idle period.";
36046         description
36047           "Automatically delete IPSec SAs after a given idle period.";
36048         type uint32 {
36049           tailf:info "<60-86400>;;Idle time at which IPSec SAs are deleted";
36050           range "60..86400";
36051         }
36052       }
36053       container lifetime {
36054         tailf:info "security association lifetime";
36055         description
36056           "security association lifetime";
36057         leaf days {
36058           tailf:info "Time-based key duration in days";
36059           description
36060             "Time-based key duration in days";
36061           type uint8 {
36062             tailf:info "<1-30>;;Security association duration in days";
36063             range "1..30";
36064           }
36065         }
36066         leaf kilobytes {
36067           tailf:info "Volume-based key duration";
36068           description
36069             "Volume-based key duration";
36070           type union {
36071             type uint64 {
36072               tailf:info "<2560-4294967295>;;Security association duration in kilobytes encrypted";
36073               range "2560..4294967295";
36074             }
36075             type enumeration {
36076               enum "disable" {
36077                 tailf:info "Disable Volume-based Rekey";
36078               }
36079             }
36080           }
36081         }
36082         leaf seconds {
36083           tailf:info "Time-based key duration in seconds";
36084           description
36085             "Time-based key duration in seconds";
36086           type uint64 {
36087             tailf:info "<120-2592000>;;Security association duration in seconds";
36088             range "120..2592000";
36089           }
36090         }
36091       }
36092       container replay {
36093         tailf:info "Set replay checking.";
36094         description
36095           "Set replay checking.";
36096         leaf disable {
36097           tailf:info "Disable replay checking";
36098           description
36099             "Disable replay checking";
36100           type empty;
36101         }
36102         leaf window-size {
36103           tailf:info "Set replay window size.";
36104           description
36105             "Set replay window size.";
36106           type enumeration {
36107             enum "1024" {
36108               tailf:info "Window size of 1024";
36109             }
36110             enum "128" {
36111               tailf:info "Window size of 128";
36112             }
36113             enum "256" {
36114               tailf:info "Window size of 256";
36115             }
36116             enum "512" {
36117               tailf:info "Window size of 512";
36118             }
36119             enum "64" {
36120               tailf:info "Window size of 64 (default)";
36121             }
36122           }
36123         }
36124       }
36125     }
36126     list transform-set {
36127       tailf:info "Define transform and settings";
36128       description
36129         "Define transform and settings";
36130       tailf:cli-mode-name "cfg-crypto-trans";
36131       key "tag";
36132       leaf tag {
36133         type string {
36134           tailf:info "WORD;;Transform set tag";
36135         }
36136       }
36137       leaf ah-hmac {
36138         tailf:cli-drop-node-name;
36139         tailf:cli-hide-in-submode;
36140         type enumeration {
36141           enum "ah-md5-hmac" {
36142             tailf:info "AH-HMAC-MD5 transform";
36143           }
36144           enum "ah-sha-hmac" {
36145             tailf:info "AH-HMAC-SHA transform";
36146           }
36147           enum "ah-sha256-hmac" {
36148             tailf:info "AH-HMAC-SHA256 transform";
36149           }
36150           enum "ah-sha384-hmac" {
36151             tailf:info "AH-HMAC-SHA384 transform";
36152           }
36153           enum "ah-sha512-hmac" {
36154             tailf:info "AH-HMAC-SHA512 transform";
36155           }
36156         }
36157       }
36158       leaf comp-lzs {
36159         tailf:info "IP Compression using the LZS compression algorithm";
36160         description
36161           "IP Compression using the LZS compression algorithm";
36162         tailf:cli-hide-in-submode;
36163         type empty;
36164       }
36165       leaf esp {
36166         tailf:cli-drop-node-name;
36167         tailf:cli-hide-in-submode;
36168         type enumeration {
36169           enum "esp-3des" {
36170             tailf:info "ESP transform using 3DES(EDE) cipher (168 bits)";
36171           }
36172           enum "esp-aes" {
36173             tailf:info "ESP transform using AES cipher";
36174           }
36175           enum "esp-des" {
36176             tailf:info "ESP transform using DES cipher (56 bits)";
36177           }
36178           enum "esp-gcm" {
36179             tailf:info "ESP transform using GCM cipher";
36180           }
36181           enum "esp-gmac" {
36182             tailf:info "ESP transform using GMAC cipher";
36183           }
36184           enum "esp-null" {
36185             tailf:info "ESP transform w/o cipher";
36186           }
36187           enum "esp-seal" {
36188             tailf:info "ESP transform using SEAL cipher (160 bits)";
36189           }
36190         }
36191       }
36192       leaf key-bit {
36193         tailf:cli-drop-node-name;
36194         tailf:cli-hide-in-submode;
36195         when "../esp = 'esp-aes'";
36196         type enumeration {
36197           enum "128" {
36198             tailf:info "128 bit keys";
36199           }
36200           enum "192" {
36201             tailf:info "192 bit keys";
36202           }
36203           enum "256" {
36204             tailf:info "256 bit keys";
36205           }
36206         }
36207       }
36208       leaf esp-hmac {
36209         tailf:cli-drop-node-name;
36210         tailf:cli-hide-in-submode;
36211         type enumeration {
36212           enum "esp-md5-hmac" {
36213             tailf:info "ESP transform using HMAC-MD5 auth";
36214           }
36215           enum "esp-sha-hmac" {
36216             tailf:info "ESP transform using HMAC-SHA auth";
36217           }
36218           enum "esp-sha256-hmac" {
36219             tailf:info "ESP transform using HMAC-SHA256 auth";
36220           }
36221           enum "esp-sha384-hmac" {
36222             tailf:info "ESP transform using HMAC-SHA384 auth";
36223           }
36224           enum "esp-sha512-hmac" {
36225             tailf:info "ESP transform using HMAC-SHA512 auth";
36226           }
36227         }
36228       }
36229       container default {
36230         tailf:info "Set a command to its defaults";
36231         description
36232           "Set a command to its defaults";
36233         leaf mode {
36234           tailf:info "encapsulation mode (transport/tunnel)";
36235           description
36236             "encapsulation mode (transport/tunnel)";
36237           type empty;
36238         }
36239       }
36240       container mode {
36241         tailf:info "encapsulation mode (transport/tunnel)";
36242         description
36243           "encapsulation mode (transport/tunnel)";
36244         container transport {
36245           tailf:info "transport (payload encapsulation) mode";
36246           description
36247             "transport (payload encapsulation) mode";
36248           presence "true";
36249           leaf require {
36250             tailf:info "Accept only the configured encapsulation mode.";
36251             description
36252               "Accept only the configured encapsulation mode.";
36253             type empty;
36254           }
36255         }
36256         leaf tunnel {
36257           tailf:info "tunnel (datagram encapsulation) mode";
36258           description
36259             "tunnel (datagram encapsulation) mode";
36260           type empty;
36261         }
36262       }
36263     }
36264   }
36265
36266   grouping crypto-isakmp-policy-grouping {
36267     leaf authentication {
36268       tailf:info "Set authentication method for protection suite";
36269       description
36270         "Set authentication method for protection suite";
36271       type enumeration {
36272         enum "pre-share" {
36273           tailf:info "Pre-Shared Key";
36274         }
36275         enum "rsa-encr" {
36276           tailf:info "Rivest-Shamir-Adleman Encryption";
36277         }
36278         enum "rsa-sig" {
36279           tailf:info "Rivest-Shamir-Adleman Signature";
36280         }
36281       }
36282     }
36283     container encryption {
36284       tailf:info "Set encryption algorithm for protection suite";
36285       description
36286         "Set encryption algorithm for protection suite";
36287       leaf a3des {
36288         tailf:alt-name "3des";
36289         tailf:info "Three key triple DES";
36290         type empty;
36291       }
36292       container aes {
36293         tailf:info "AES - Advanced Encryption Standard.";
36294         description
36295           "AES - Advanced Encryption Standard.";
36296         presence "true";
36297         leaf key {
36298           tailf:cli-drop-node-name;
36299           type enumeration {
36300             enum "128" {
36301               tailf:info "128 bit keys.";
36302             }
36303             enum "192" {
36304               tailf:info "192 bit keys.";
36305             }
36306             enum "256" {
36307               tailf:info "256 bit keys.";
36308             }
36309           }
36310         }
36311       }
36312       leaf des {
36313         tailf:info "DES - Data Encryption Standard (56 bit keys).";
36314         description
36315           "DES - Data Encryption Standard (56 bit keys).";
36316         type empty;
36317       }
36318     }
36319     leaf group {
36320       tailf:info "Set the Diffie-Hellman group";
36321       description
36322         "Set the Diffie-Hellman group";
36323       type enumeration {
36324         enum "1" {
36325           tailf:info "Diffie-Hellman group 1 (768 bit)";
36326         }
36327         enum "14" {
36328           tailf:info "Diffie-Hellman group 14 (2048 bit)";
36329         }
36330         enum "15" {
36331           tailf:info "Diffie-Hellman group 15 (3072 bit)";
36332         }
36333         enum "16" {
36334           tailf:info "Diffie-Hellman group 16 (4096 bit)";
36335         }
36336         enum "19" {
36337           tailf:info "Diffie-Hellman group 19 (256 bit ecp)";
36338         }
36339         enum "2" {
36340           tailf:info "Diffie-Hellman group 2 (1024 bit)";
36341         }
36342         enum "20" {
36343           tailf:info "Diffie-Hellman group 20 (384 bit ecp)";
36344         }
36345         enum "21" {
36346           tailf:info "Diffie-Hellman group 21 (521 bit ecp)";
36347         }
36348         enum "24" {
36349           tailf:info "Diffie-Hellman group 24 (2048 bit, 256 bit subgroup)";
36350         }
36351         enum "5" {
36352           tailf:info "Diffie-Hellman group 5 (1536 bit)";
36353         }
36354       }
36355     }
36356     leaf hash {
36357       tailf:info "Set hash algorithm for protection suite";
36358       description
36359         "Set hash algorithm for protection suite";
36360       type enumeration {
36361         enum "md5" {
36362           tailf:info "Message Digest 5";
36363         }
36364         enum "sha" {
36365           tailf:info "Secure Hash Standard";
36366         }
36367         enum "sha256" {
36368           tailf:info "Secure Hash Standard 2 (256 bit)";
36369         }
36370         enum "sha384" {
36371           tailf:info "Secure Hash Standard 2 (384 bit)";
36372         }
36373         enum "sha512" {
36374           tailf:info "Secure Hash Standard 2 (512 bit)";
36375         }
36376       }
36377     }
36378   }
36379
36380   grouping crypto-isakmp-profile-grouping {
36381     leaf accounting {
36382       tailf:info "Enable AAA Accounting for IPSec Sessions";
36383       description
36384         "Enable AAA Accounting for IPSec Sessions";
36385       type string {
36386         tailf:info "WORD;;Name of accounting list.";
36387       }
36388     }
36389     container ca {
36390       tailf:info "Specify certificate authorities to trust";
36391       description
36392         "Specify certificate authorities to trust";
36393       leaf trust-point {
36394         tailf:info "Cert authority trustpoint for RSA sig";
36395         description
36396           "Cert authority trustpoint for RSA sig";
36397         type string {
36398           tailf:info "WORD;;Specify the trust-point label to use";
36399         }
36400       }
36401     }
36402     container client {
36403       tailf:info "Specify client configuration settings";
36404       description
36405         "Specify client configuration settings";
36406       container authentication {
36407         tailf:info "Use Extended Authentication";
36408         description
36409           "Use Extended Authentication";
36410         leaf list {
36411           tailf:info "AAA authentication list to use";
36412           description
36413             "AAA authentication list to use";
36414           type string {
36415             tailf:info "WORD;;Named authentication list.";
36416           }
36417         }
36418       }
36419       container configuration {
36420         tailf:info "Specify client configuration settings";
36421         description
36422           "Specify client configuration settings";
36423         leaf address {
36424           tailf:info "Specify client network address configuration";
36425           description
36426             "Specify client network address configuration";
36427           type enumeration {
36428             enum "initiate" {
36429               tailf:info "Push the network address to the client";
36430             }
36431             enum "respond" {
36432               tailf:info "Respond to network address requests from the client";
36433             }
36434           }
36435         }
36436         leaf group {
36437           tailf:info "Specify group profile attributes for client";
36438           description
36439             "Specify group profile attributes for client";
36440           type string {
36441             tailf:info "WORD;;group name";
36442           }
36443         }
36444       }
36445       container pki {
36446         tailf:info "Use username in the crypto certificate for authorization";
36447         description
36448           "Use username in the crypto certificate for authorization";
36449         container authorization {
36450           tailf:info "User authorization parameters";
36451           description
36452             "User authorization parameters";
36453           leaf list {
36454             tailf:info "AAA user authorization list";
36455             description
36456               "AAA user authorization list";
36457             type string {
36458               tailf:info "WORD;;Named user authorization list";
36459             }
36460           }
36461         }
36462       }
36463     }
36464     leaf description {
36465       tailf:info "Specify a description of this profile";
36466       description
36467         "Specify a description of this profile";
36468       tailf:cli-multi-value;
36469       type string {
36470         tailf:info "LINE;;a 1 line description of the profile";
36471       }
36472     }
36473     container initiate {
36474       tailf:info "Initiator property";
36475       description
36476         "Initiator property";
36477       container mode {
36478         tailf:info "Phase 1 negotiation mode to use";
36479         description
36480           "Phase 1 negotiation mode to use";
36481         presence "true";
36482         leaf aggressive {
36483           tailf:info "Start agressive mode negotiation";
36484           description
36485             "Start agressive mode negotiation";
36486           type empty;
36487         }
36488       }
36489     }
36490     container isakmp {
36491       tailf:info "ISAKMP Authorization command";
36492       description
36493         "ISAKMP Authorization command";
36494       container authorization {
36495         tailf:info "Authorization parameters.";
36496         description
36497           "Authorization parameters.";
36498         leaf list {
36499           tailf:info "AAA authorization list to use";
36500           description
36501             "AAA authorization list to use";
36502           type string {
36503             tailf:info "WORD;;Named authorization list.";
36504           }
36505         }
36506       }
36507     }
36508     container keepalive {
36509       tailf:info "Set a keepalive interval for use with IOS peers";
36510       description
36511         "Set a keepalive interval for use with IOS peers";
36512       tailf:cli-sequence-commands;
36513       tailf:cli-compact-syntax;
36514       leaf number {
36515         tailf:cli-drop-node-name;
36516         type uint16 {
36517           tailf:info "<10-3600>;;Number of seconds between keep alives";
36518           range "10..3600";
36519         }
36520       }
36521       leaf retry {
36522         tailf:info "Retry interval if keepalive fails";
36523         description
36524           "Retry interval if keepalive fails";
36525         type uint8 {
36526           tailf:info "<2-60>;;Number of seconds between retries if keepalive fails";
36527           range "2..60";
36528         }
36529       }
36530     }
36531     leaf keyring {
36532       tailf:info "Specify keyring to use";
36533       description
36534         "Specify keyring to use";
36535       type union {
36536         type string {
36537           tailf:info "WORD;;Name of the keyring to use";
36538         }
36539         type enumeration {
36540           enum "default" {
36541             tailf:info "Use global keyring";
36542           }
36543         }
36544       }
36545     }
36546     leaf local-address {
36547       tailf:info "Interface to use for local address for this isakmp profile";
36548       description
36549         "Interface to use for local address for this isakmp profile";
36550       type string;
36551     }
36552     container match {
36553       tailf:info "Match values of peer";
36554       description
36555         "Match values of peer";
36556       leaf certificate {
36557         tailf:info "Peer certificate attributes";
36558         description
36559           "Peer certificate attributes";
36560         type string {
36561           tailf:info "WORD;;Specify the certificate map";
36562         }
36563       }
36564       container identity {
36565         tailf:info "Peer identity";
36566         description
36567           "Peer identity";
36568         container ipv4-address {
36569           tailf:cli-drop-node-name;
36570           tailf:cli-sequence-commands;
36571           tailf:cli-compact-syntax;
36572           leaf address {
36573             tailf:info "IP Address(es)";
36574             description
36575               "IP Address(es)";
36576             type inet:ipv4-address {
36577               tailf:info "A.B.C.D;;IP address prefix";
36578             }
36579           }
36580           leaf mask {
36581             tailf:cli-drop-node-name;
36582             tailf:cli-break-sequence-commands;
36583             type inet:ipv4-address {
36584               tailf:info "A.B.C.D;;specify mask";
36585             }
36586           }
36587           leaf vrf {
36588             tailf:cli-drop-node-name;
36589             type string {
36590               tailf:info "WORD;;Specify the F VRF (default global)";
36591             }
36592           }
36593         }
36594         container address {
36595           tailf:info "IP Address(es)";
36596           description
36597             "IP Address(es)";
36598           tailf:cli-sequence-commands;
36599           tailf:cli-compact-syntax;
36600           leaf ipv6 {
36601             tailf:info "IPv6 Address(es)";
36602             description
36603               "IPv6 Address(es)";
36604             type inet:ipv6-prefix {
36605               tailf:info "X:X:X:X::X/<0-128>;;IPv6 address prefix";
36606             }
36607           }
36608           leaf vrf {
36609             tailf:cli-drop-node-name;
36610             tailf:cli-optional-in-sequence;
36611             type string {
36612               tailf:info "WORD;;Specify the F VRF (default global)";
36613             }
36614           }
36615         }
36616         leaf group {
36617           tailf:info "Group name";
36618           description
36619             "Group name";
36620           type string {
36621             tailf:info "WORD;;Specify the group name";
36622           }
36623         }
36624         container host {
36625           tailf:info "match a hostname/domain";
36626           description
36627             "match a hostname/domain";
36628           container domain-name {
36629             tailf:cli-drop-node-name;
36630             tailf:cli-sequence-commands;
36631             tailf:cli-compact-syntax;
36632             leaf name {
36633               tailf:cli-drop-node-name;
36634               type string {
36635                 tailf:info "WORD;;Specify the domain name";
36636               }
36637             }
36638             leaf vrf {
36639               tailf:cli-drop-node-name;
36640               tailf:cli-optional-in-sequence;
36641               type string {
36642                 tailf:info "WORD;;Specify the F VRF (default global)";
36643               }
36644             }
36645           }
36646           container domain-match {
36647             tailf:cli-drop-node-name;
36648             tailf:cli-sequence-commands;
36649             tailf:cli-compact-syntax;
36650             leaf domain {
36651               tailf:info "match domain instead of exact";
36652               description
36653                 "match domain instead of exact";
36654               type string {
36655                 tailf:info "WORD;;Specify the domain name";
36656               }
36657             }
36658             leaf vrf {
36659               tailf:cli-drop-node-name;
36660               tailf:cli-optional-in-sequence;
36661               type string {
36662                 tailf:info "WORD;;Specify the F VRF (default global)";
36663               }
36664             }
36665           }
36666         }
36667         container user-fqdn {
36668           tailf:info "match a hostname/domain";
36669           description
36670             "match a hostname/domain";
36671           container domain-name {
36672             tailf:cli-drop-node-name;
36673             tailf:cli-sequence-commands;
36674             tailf:cli-compact-syntax;
36675             leaf name {
36676               tailf:cli-drop-node-name;
36677               type string {
36678                 tailf:info "WORD;;Specify the domain name";
36679               }
36680             }
36681             leaf vrf {
36682               tailf:cli-drop-node-name;
36683               tailf:cli-optional-in-sequence;
36684               type string {
36685                 tailf:info "WORD;;Specify the F VRF (default global)";
36686               }
36687             }
36688           }
36689           container domain-match {
36690             tailf:cli-drop-node-name;
36691             tailf:cli-sequence-commands;
36692             tailf:cli-compact-syntax;
36693             leaf domain {
36694               tailf:info "match domain instead of exact";
36695               description
36696                 "match domain instead of exact";
36697               type string {
36698                 tailf:info "WORD;;Specify the domain name";
36699               }
36700             }
36701             leaf vrf {
36702               tailf:cli-drop-node-name;
36703               tailf:cli-optional-in-sequence;
36704               type string {
36705                 tailf:info "WORD;;Specify the F VRF (default global)";
36706               }
36707             }
36708           }
36709         }
36710       }
36711     }
36712     leaf qos-group {
36713       tailf:info "Apply a Qos policy class map for this profile";
36714       description
36715         "Apply a Qos policy class map for this profile";
36716       type uint16 {
36717         tailf:info "<1-1023>;;Qos Group value";
36718         range "1..1023";
36719       }
36720     }
36721     container self-identity {
36722       tailf:info "Specify Identity to use";
36723       description
36724         "Specify Identity to use";
36725       container address {
36726         tailf:info "Use IPv4 address";
36727         description
36728           "Use IPv4 address";
36729         presence "true";
36730         leaf ipv6 {
36731           tailf:info "Use IPv6 address";
36732           description
36733             "Use IPv6 address";
36734           type empty;
36735         }
36736       }
36737       container fqdn {
36738         tailf:info "Use FQDN";
36739         description
36740           "Use FQDN";
36741         presence "true";
36742         leaf id {
36743           tailf:cli-drop-node-name;
36744           type string {
36745             tailf:info "WORD;;FQDN ID";
36746           }
36747         }
36748       }
36749       leaf user-fqdn {
36750         tailf:info "Use user FQDN";
36751         description
36752           "Use user FQDN";
36753         type string {
36754           tailf:info "WORD;;User FQDN <user@full.domain.name>";
36755         }
36756       }
36757     }
36758     leaf virtual-template {
36759       tailf:info "Specify the virtual-template for dynamic interface creation.";
36760       description
36761         "Specify the virtual-template for dynamic interface creation.";
36762       type uint16 {
36763         tailf:info "<1-4095>;;Virtual-template Number to clone";
36764         range "1..4095";
36765       }
36766     }
36767     leaf vrf {
36768       tailf:info "Specify the VRF it is related to";
36769       description
36770         "Specify the VRF it is related to";
36771       type string {
36772         tailf:info "WORD;;VRF Name";
36773       }
36774     }
36775   }
36776
36777   grouping crypto-isakmp-profile-default-grouping {
36778     leaf accounting {
36779       tailf:info "Enable AAA Accounting for IPSec Sessions";
36780       description
36781         "Enable AAA Accounting for IPSec Sessions";
36782       type empty;
36783     }
36784     container ca {
36785       tailf:info "Specify certificate authorities to trust";
36786       description
36787         "Specify certificate authorities to trust";
36788       leaf trust-point {
36789         tailf:info "Cert authority trustpoint for RSA sig";
36790         description
36791           "Cert authority trustpoint for RSA sig";
36792         type string {
36793           tailf:info "WORD;;Specify the trust-point label to use";
36794         }
36795       }
36796     }
36797     container client {
36798       tailf:info "Specify client configuration settings";
36799       description
36800         "Specify client configuration settings";
36801       container authentication {
36802         tailf:info "Use Extended Authentication";
36803         description
36804           "Use Extended Authentication";
36805         leaf list {
36806           tailf:info "AAA authentication list to use";
36807           description
36808             "AAA authentication list to use";
36809           type empty;
36810         }
36811       }
36812       container configuration {
36813         tailf:info "Specify client configuration settings";
36814         description
36815           "Specify client configuration settings";
36816         leaf address {
36817           tailf:info "Specify client network address configuration";
36818           description
36819             "Specify client network address configuration";
36820           type enumeration {
36821             enum "initiate" {
36822               tailf:info "Push the network address to the client";
36823             }
36824             enum "respond" {
36825               tailf:info "Respond to network address requests from the client";
36826             }
36827           }
36828         }
36829         leaf group {
36830           tailf:info "Specify group profile attributes for client";
36831           description
36832             "Specify group profile attributes for client";
36833           type string {
36834             tailf:info "WORD;;group name";
36835           }
36836         }
36837       }
36838       container pki {
36839         tailf:info "Use username in the crypto certificate for authorization";
36840         description
36841           "Use username in the crypto certificate for authorization";
36842         container authorization {
36843           tailf:info "User authorization parameters";
36844           description
36845             "User authorization parameters";
36846           presence "true";
36847         }
36848       }
36849     }
36850     leaf description {
36851       tailf:info "Specify a description of this profile";
36852       description
36853         "Specify a description of this profile";
36854       tailf:cli-multi-value;
36855       type string {
36856         tailf:info "LINE;;a 1 line description of the profile";
36857       }
36858     }
36859     container initiate {
36860       tailf:info "Initiator property";
36861       description
36862         "Initiator property";
36863       container mode {
36864         tailf:info "Phase 1 negotiation mode to use";
36865         description
36866           "Phase 1 negotiation mode to use";
36867         presence "true";
36868       }
36869     }
36870     container isakmp {
36871       tailf:info "ISAKMP Authorization command";
36872       description
36873         "ISAKMP Authorization command";
36874       container authorization {
36875         tailf:info "Authorization parameters.";
36876         description
36877           "Authorization parameters.";
36878         leaf list {
36879           tailf:info "AAA authorization list to use";
36880           description
36881             "AAA authorization list to use";
36882           type empty;
36883         }
36884       }
36885     }
36886     container keepalive {
36887       tailf:info "Set a keepalive interval for use with IOS peers";
36888       description
36889         "Set a keepalive interval for use with IOS peers";
36890       presence "true";
36891     }
36892     leaf keyring {
36893       tailf:info "Specify keyring to use";
36894       description
36895         "Specify keyring to use";
36896       type union {
36897         type string {
36898           tailf:info "WORD;;Name of the keyring to use";
36899         }
36900         type enumeration {
36901           enum "default" {
36902             tailf:info "Use global keyring";
36903           }
36904         }
36905       }
36906     }
36907     leaf local-address {
36908       tailf:info "Interface to use for local address for this isakmp profile";
36909       description
36910         "Interface to use for local address for this isakmp profile";
36911       type empty;
36912     }
36913     container match {
36914       tailf:info "Match values of peer";
36915       description
36916         "Match values of peer";
36917       leaf certificate {
36918         tailf:info "Peer certificate attributes";
36919         description
36920           "Peer certificate attributes";
36921         type string {
36922           tailf:info "WORD;;Specify the certificate map";
36923         }
36924       }
36925       container identity {
36926         tailf:info "Peer identity";
36927         description
36928           "Peer identity";
36929         container ipv4-address {
36930           tailf:cli-drop-node-name;
36931           tailf:cli-sequence-commands;
36932           tailf:cli-compact-syntax;
36933           leaf address {
36934             tailf:info "IP Address(es)";
36935             description
36936               "IP Address(es)";
36937             type inet:ipv4-address {
36938               tailf:info "A.B.C.D;;IP address prefix";
36939             }
36940           }
36941           leaf mask {
36942             tailf:cli-drop-node-name;
36943             tailf:cli-break-sequence-commands;
36944             type inet:ipv4-address {
36945               tailf:info "A.B.C.D;;specify mask";
36946             }
36947           }
36948           leaf vrf {
36949             tailf:cli-drop-node-name;
36950             type string {
36951               tailf:info "WORD;;Specify the F VRF (default global)";
36952             }
36953           }
36954         }
36955         container address {
36956           tailf:info "IP Address(es)";
36957           description
36958             "IP Address(es)";
36959           tailf:cli-sequence-commands;
36960           tailf:cli-compact-syntax;
36961           leaf ipv6 {
36962             tailf:info "IPv6 Address(es)";
36963             description
36964               "IPv6 Address(es)";
36965             type inet:ipv6-prefix {
36966               tailf:info "X:X:X:X::X/<0-128>;;IPv6 address prefix";
36967             }
36968           }
36969           leaf vrf {
36970             tailf:cli-drop-node-name;
36971             tailf:cli-optional-in-sequence;
36972             type string {
36973               tailf:info "WORD;;Specify the F VRF (default global)";
36974             }
36975           }
36976         }
36977         leaf group {
36978           tailf:info "Group name";
36979           description
36980             "Group name";
36981           type string {
36982             tailf:info "WORD;;Specify the group name";
36983           }
36984         }
36985         container host {
36986           tailf:info "match a hostname/domain";
36987           description
36988             "match a hostname/domain";
36989           container domain-name {
36990             tailf:cli-drop-node-name;
36991             tailf:cli-sequence-commands;
36992             tailf:cli-compact-syntax;
36993             leaf name {
36994               tailf:cli-drop-node-name;
36995               type string {
36996                 tailf:info "WORD;;Specify the domain name";
36997               }
36998             }
36999             leaf vrf {
37000               tailf:cli-drop-node-name;
37001               tailf:cli-optional-in-sequence;
37002               type string {
37003                 tailf:info "WORD;;Specify the F VRF (default global)";
37004               }
37005             }
37006           }
37007           container domain-match {
37008             tailf:cli-drop-node-name;
37009             tailf:cli-sequence-commands;
37010             tailf:cli-compact-syntax;
37011             leaf domain {
37012               tailf:info "match domain instead of exact";
37013               description
37014                 "match domain instead of exact";
37015               type string {
37016                 tailf:info "WORD;;Specify the domain name";
37017               }
37018             }
37019             leaf vrf {
37020               tailf:cli-drop-node-name;
37021               tailf:cli-optional-in-sequence;
37022               type string {
37023                 tailf:info "WORD;;Specify the F VRF (default global)";
37024               }
37025             }
37026           }
37027         }
37028         container user-fqdn {
37029           tailf:info "match a hostname/domain";
37030           description
37031             "match a hostname/domain";
37032           container domain-name {
37033             tailf:cli-drop-node-name;
37034             tailf:cli-sequence-commands;
37035             tailf:cli-compact-syntax;
37036             leaf name {
37037               tailf:cli-drop-node-name;
37038               type string {
37039                 tailf:info "WORD;;Specify the domain name";
37040               }
37041             }
37042             leaf vrf {
37043               tailf:cli-drop-node-name;
37044               tailf:cli-optional-in-sequence;
37045               type string {
37046                 tailf:info "WORD;;Specify the F VRF (default global)";
37047               }
37048             }
37049           }
37050           container domain-match {
37051             tailf:cli-drop-node-name;
37052             tailf:cli-sequence-commands;
37053             tailf:cli-compact-syntax;
37054             leaf domain {
37055               tailf:info "match domain instead of exact";
37056               description
37057                 "match domain instead of exact";
37058               type string {
37059                 tailf:info "WORD;;Specify the domain name";
37060               }
37061             }
37062             leaf vrf {
37063               tailf:cli-drop-node-name;
37064               tailf:cli-optional-in-sequence;
37065               type string {
37066                 tailf:info "WORD;;Specify the F VRF (default global)";
37067               }
37068             }
37069           }
37070         }
37071       }
37072     }
37073     leaf qos-group {
37074       tailf:info "Apply a Qos policy class map for this profile";
37075       description
37076         "Apply a Qos policy class map for this profile";
37077       type empty;
37078     }
37079     container self-identity {
37080       tailf:info "Specify Identity to use";
37081       description
37082         "Specify Identity to use";
37083       presence "true";
37084     }
37085     leaf virtual-template {
37086       tailf:info "Specify the virtual-template for dynamic interface creation.";
37087       description
37088         "Specify the virtual-template for dynamic interface creation.";
37089       type empty;
37090     }
37091     leaf vrf {
37092       tailf:info "Specify the VRF it is related to";
37093       description
37094         "Specify the VRF it is related to";
37095       type empty;
37096     }
37097   }
37098
37099   grouping crypto-isakmp-client-configuration-group-grouping {
37100     leaf access-restrict {
37101       tailf:info "Restrict clients in this group to an interface";
37102       description
37103         "Restrict clients in this group to an interface";
37104       type string;
37105     }
37106     leaf acl {
37107       tailf:info "Specify split tunneling inclusion access-list number";
37108       description
37109         "Specify split tunneling inclusion access-list number";
37110       type union {
37111         type uint16 {
37112           tailf:info "<100-199>;;access-list number for split-tunneling";
37113           range "100..199";
37114         }
37115         type string {
37116           tailf:info "WORD;;Access-list name";
37117           pattern "[a-zA-Z].*";
37118         }
37119       }
37120     }
37121     container auto-update {
37122       tailf:info "Configure auto-upgrade";
37123       description
37124         "Configure auto-upgrade";
37125       tailf:cli-sequence-commands;
37126       tailf:cli-compact-syntax;
37127       leaf client {
37128         tailf:info "Configure client";
37129         description
37130           "Configure client";
37131         type string {
37132           tailf:info "WORD;;Client name";
37133         }
37134       }
37135       leaf url {
37136         tailf:info "Configure URL to download from";
37137         description
37138           "Configure URL to download from";
37139         type string {
37140           tailf:info "WORD;;protocol://username:password@a.b.c.d/dir";
37141         }
37142       }
37143       leaf rev {
37144         tailf:info "Use comma delimited list of revision strings only";
37145         description
37146           "Use comma delimited list of revision strings only";
37147         type string {
37148           tailf:info "WORD;;revision";
37149         }
37150       }
37151     }
37152     leaf backup-gateway {
37153       tailf:info "Specify backup gateway";
37154       description
37155         "Specify backup gateway";
37156       type string {
37157         tailf:info "WORD;;Backup Server IP address or hostname";
37158       }
37159     }
37160     leaf banner {
37161       tailf:info "Specify mode config banner";
37162       description
37163         "Specify mode config banner";
37164       tailf:cli-multi-value;
37165       type string {
37166         tailf:info "LINE;;c banner-text c, where 'c' is a delimiting character";
37167       }
37168     }
37169     leaf browser-proxy {
37170       tailf:info "Configure browser-proxy";
37171       description
37172         "Configure browser-proxy";
37173       type string {
37174         tailf:info "WORD;;Browser proxy map name";
37175       }
37176     }
37177     container configuration {
37178       tailf:info "Push configuration to the client";
37179       description
37180         "Push configuration to the client";
37181       leaf url {
37182         tailf:info "URL for the client to fetch configuration";
37183         description
37184           "URL for the client to fetch configuration";
37185         type enumeration {
37186           enum "bootflash:" {
37187             tailf:info "URL the client will use to fetch configuration";
37188           }
37189           enum "cns:" {
37190             tailf:info "URL the client will use to fetch configuration";
37191           }
37192           enum "flash:" {
37193             tailf:info "URL the client will use to fetch configuration";
37194           }
37195           enum "ftp:" {
37196             tailf:info "URL the client will use to fetch configuration";
37197           }
37198           enum "http:" {
37199             tailf:info "URL the client will use to fetch configuration";
37200           }
37201           enum "https:" {
37202             tailf:info "URL the client will use to fetch configuration";
37203           }
37204           enum "null:" {
37205             tailf:info "URL the client will use to fetch configuration";
37206           }
37207           enum "nvram:" {
37208             tailf:info "URL the client will use to fetch configuration";
37209           }
37210           enum "pram:" {
37211             tailf:info "URL the client will use to fetch configuration";
37212           }
37213           enum "rcp:" {
37214             tailf:info "URL the client will use to fetch configuration";
37215           }
37216           enum "scp:" {
37217             tailf:info "URL the client will use to fetch configuration";
37218           }
37219           enum "system:" {
37220             tailf:info "URL the client will use to fetch configuration";
37221           }
37222           enum "tar:" {
37223             tailf:info "URL the client will use to fetch configuration";
37224           }
37225           enum "tftp:" {
37226             tailf:info "URL the client will use to fetch configuration";
37227           }
37228           enum "tmpsys:" {
37229             tailf:info "URL the client will use to fetch configuration";
37230           }
37231         }
37232       }
37233       leaf version {
37234         tailf:info "version of the configuration available at the URL";
37235         description
37236           "version of the configuration available at the URL";
37237         type uint32 {
37238           tailf:info "<1-32767>;;The version number";
37239           range "1..32767";
37240         }
37241       }
37242     }
37243     container crypto {
37244       tailf:info "Client group crypto aaa attribute list";
37245       description
37246         "Client group crypto aaa attribute list";
37247       container aaa {
37248         tailf:info "AAA directive";
37249         description
37250           "AAA directive";
37251         container attribute {
37252           tailf:info "AAA attribute directive";
37253           description
37254             "AAA attribute directive";
37255           leaf list {
37256             tailf:info "AAA attribute list";
37257             description
37258               "AAA attribute list";
37259             type string {
37260               tailf:info "WORD;;AAA attribute list name";
37261             }
37262           }
37263         }
37264       }
37265     }
37266     container dhcp {
37267       tailf:info "Configure DHCP parameters";
37268       description
37269         "Configure DHCP parameters";
37270       leaf giaddr {
37271         tailf:info "Specify giaddr for dhcp scope";
37272         description
37273           "Specify giaddr for dhcp scope";
37274         type inet:ipv4-address {
37275           tailf:info "A.B.C.D;;giaddr to select address range";
37276         }
37277       }
37278       leaf server {
37279         tailf:info "Specify dhcp server";
37280         description
37281           "Specify dhcp server";
37282         type union {
37283           type inet:ipv4-address {
37284             tailf:info "A.B.C.D;;DHCP server IP address";
37285           }
37286           type string {
37287             tailf:info "WORD;;DHCP Server hostname";
37288           }
37289         }
37290       }
37291       leaf timeout {
37292         tailf:info "Configure DHCP response timeout in seconds";
37293         description
37294           "Configure DHCP response timeout in seconds";
37295         type uint8 {
37296           tailf:info "<4-30>;;response time seconds";
37297           range "4..30";
37298         }
37299       }
37300     }
37301     container dns {
37302       tailf:info "Specify DNS Addresses";
37303       description
37304         "Specify DNS Addresses";
37305       tailf:cli-sequence-commands;
37306       tailf:cli-compact-syntax;
37307       leaf primary {
37308         tailf:cli-drop-node-name;
37309         type inet:ipv4-address {
37310           tailf:info "A.B.C.D;;Primary DNS IP address";
37311         }
37312       }
37313       leaf secondary {
37314         tailf:cli-drop-node-name;
37315         type inet:ipv4-address {
37316           tailf:info "A.B.C.D;;Secondary DNS IP address";
37317         }
37318       }
37319     }
37320     leaf domain {
37321       tailf:info "Set default domain name to send to client";
37322       description
37323         "Set default domain name to send to client";
37324       type string {
37325         tailf:info "WORD;;default domain name";
37326       }
37327     }
37328     container firewall {
37329       tailf:info "Enforce group firewall feature";
37330       description
37331         "Enforce group firewall feature";
37332       leaf are-u-there {
37333         tailf:info "firewall attribute, are-u-there";
37334         description
37335           "firewall attribute, are-u-there";
37336         type empty;
37337       }
37338       leaf policy {
37339         tailf:info "Specify firewall policy";
37340         description
37341           "Specify firewall policy";
37342         type string {
37343           tailf:info "WORD;;policy name";
37344         }
37345       }
37346     }
37347     leaf group-lock {
37348       tailf:info "Enforce group lock feature";
37349       description
37350         "Enforce group lock feature";
37351       type empty;
37352     }
37353     leaf include-local-lan {
37354       tailf:info "Enable Local LAN Access with no split tunnel";
37355       description
37356         "Enable Local LAN Access with no split tunnel";
37357       type empty;
37358     }
37359     container key {
37360       tailf:info "pre-shared key/IKE password";
37361       description
37362         "pre-shared key/IKE password";
37363       tailf:cli-sequence-commands;
37364       tailf:cli-compact-syntax;
37365       leaf encryption {
37366         tailf:cli-drop-node-name;
37367         tailf:cli-incomplete-command;
37368         tailf:cli-optional-in-sequence;
37369         type enumeration {
37370           enum "0" {
37371             tailf:info "Specifies an UNENCRYPTED password will follow";
37372           }
37373           enum "6" {
37374             tailf:info "Specifies an ENCRYPTED password will follow";
37375           }
37376         }
37377       }
37378       leaf key {
37379         tailf:cli-drop-node-name;
37380         tailf:cli-multi-value;
37381         type string {
37382           tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
37383         }
37384       }
37385     }
37386     leaf max-logins {
37387       tailf:info "Set maximum simultaneous logins for users in this group";
37388       description
37389         "Set maximum simultaneous logins for users in this group";
37390       type uint8 {
37391         tailf:info "<1-10>;;Max logins for users for this group";
37392         range "1..10";
37393       }
37394     }
37395     leaf max-users {
37396       tailf:info "Set maximum number of users for this group";
37397       description
37398         "Set maximum number of users for this group";
37399       type uint32 {
37400         tailf:info "<1-5000>;;Max connected users for this group";
37401         range "1..5000";
37402       }
37403     }
37404     leaf netmask {
37405       tailf:info "netmask used by the client for local connectivity";
37406       description
37407         "netmask used by the client for local connectivity";
37408       type inet:ipv4-address {
37409         tailf:info "A.B.C.D;;Subnet Mask to be issued for client use";
37410       }
37411     }
37412     leaf pfs {
37413       tailf:info "The client should propose PFS";
37414       description
37415         "The client should propose PFS";
37416       type empty;
37417     }
37418     leaf pool {
37419       tailf:info "Set name of address pool";
37420       description
37421         "Set name of address pool";
37422       type string {
37423         tailf:info "WORD;;address pool name";
37424       }
37425     }
37426     leaf save-password {
37427       tailf:info "Allows remote client to save XAUTH password";
37428       description
37429         "Allows remote client to save XAUTH password";
37430       type empty;
37431     }
37432     leaf smartcard-removal-disconnect {
37433       tailf:info "Enables smartcard-removal-disconnect";
37434       description
37435         "Enables smartcard-removal-disconnect";
37436       type empty;
37437     }
37438     leaf split-dns {
37439       tailf:info "DNS name to append for resolution";
37440       description
37441         "DNS name to append for resolution";
37442       type string {
37443         tailf:info "WORD;;DNS extension";
37444       }
37445     }
37446     container wins {
37447       tailf:info "Specify WINS Addresses";
37448       description
37449         "Specify WINS Addresses";
37450       tailf:cli-sequence-commands;
37451       tailf:cli-compact-syntax;
37452       leaf primary {
37453         tailf:cli-drop-node-name;
37454         type inet:ipv4-address {
37455           tailf:info "A.B.C.D;;Primary WINS IP address";
37456         }
37457       }
37458       leaf secondary {
37459         tailf:cli-drop-node-name;
37460         type inet:ipv4-address {
37461           tailf:info "A.B.C.D;;Secondary WINS IP address";
37462         }
37463       }
37464     }
37465   }
37466
37467   grouping crypto-isakmp-peer-grouping {
37468     leaf description {
37469       tailf:info "IKE peer specific description";
37470       description
37471         "IKE peer specific description";
37472       tailf:cli-multi-value;
37473       type string {
37474         tailf:info "LINE;;Up to 80 characters describing this peer";
37475         length "1..80";
37476       }
37477     }
37478     container set {
37479       tailf:info "set peer policy attributes";
37480       description
37481         "set peer policy attributes";
37482       container aggressive-mode {
37483         tailf:info "aggressive mode attributes";
37484         description
37485           "aggressive mode attributes";
37486         container client-endpoint {
37487           tailf:info "specify a tunnel-client-endpoint attribute";
37488           description
37489             "specify a tunnel-client-endpoint attribute";
37490           leaf fqdn {
37491             tailf:info "Use the fqdn as tunnel-client-endpoint";
37492             description
37493               "Use the fqdn as tunnel-client-endpoint";
37494             tailf:cli-full-command;
37495             type string {
37496               tailf:info "WORD;;fqdn";
37497             }
37498           }
37499           leaf ipv4-address {
37500             tailf:info "Use the IP address as tunnel-client-endpoint";
37501             description
37502               "Use the IP address as tunnel-client-endpoint";
37503             tailf:cli-full-command;
37504             type inet:ipv4-address {
37505               tailf:info "A.B.C.D;;IPv4 address";
37506             }
37507           }
37508           leaf ipv6-address {
37509             tailf:info "Use the IPv6 address as tunnel-client-endpoint";
37510             description
37511               "Use the IPv6 address as tunnel-client-endpoint";
37512             tailf:cli-full-command;
37513             type inet:ipv6-address {
37514               tailf:info "X:X:X:X::X;;IPv6 address";
37515             }
37516           }
37517           leaf user-fqdn {
37518             tailf:info "Use the user-fqdn as tunnel-client-endpoint";
37519             description
37520               "Use the user-fqdn as tunnel-client-endpoint";
37521             tailf:cli-full-command;
37522             type string {
37523               tailf:info "WORD;;user-fqdn";
37524             }
37525           }
37526         }
37527         container password {
37528           tailf:info "specify a tunnel-password attribute";
37529           description
37530             "specify a tunnel-password attribute";
37531           tailf:cli-sequence-commands;
37532           tailf:cli-compact-syntax;
37533           leaf encryption {
37534             tailf:cli-drop-node-name;
37535             tailf:cli-incomplete-command;
37536             tailf:cli-optional-in-sequence;
37537             type enumeration {
37538               enum "0" {
37539                 tailf:info "Specifies an UNENCRYPTED password will follow";
37540               }
37541               enum "6" {
37542                 tailf:info "Specifies an ENCRYPTED password will follow";
37543               }
37544             }
37545           }
37546           leaf key {
37547             tailf:cli-drop-node-name;
37548             tailf:cli-multi-value;
37549             type string {
37550               tailf:info "LINE;;The UNENCRYPTED (cleartext) user password";
37551             }
37552           }
37553         }
37554       }
37555     }
37556   }
37557
37558   grouping crypto-isakmp-grouping {
37559     leaf aggressive-mode {
37560       tailf:info "Disable ISAKMP aggressive mode";
37561       description
37562         "Disable ISAKMP aggressive mode";
37563       type enumeration {
37564         enum "disable" {
37565           tailf:info "Disable ISAKMP aggressive mode";
37566         }
37567       }
37568     }
37569     container client {
37570       tailf:info "Set client configuration policy";
37571       description
37572         "Set client configuration policy";
37573       container configuration {
37574         tailf:info "Set client configuration policy";
37575         description
37576           "Set client configuration policy";
37577         container address-pool {
37578           tailf:info "Set network address for client";
37579           description
37580             "Set network address for client";
37581           leaf local {
37582             tailf:info "Set a local address pool for clients";
37583             description
37584               "Set a local address pool for clients";
37585             type string {
37586               tailf:info "WORD;;Name of address pool";
37587             }
37588           }
37589         }
37590         leaf browser-proxy {
37591           tailf:info "Set browser proxy attributes for client";
37592           description
37593             "Set browser proxy attributes for client";
37594           type string {
37595             tailf:info "WORD;;browser-proxy name";
37596           }
37597         }
37598         list group {
37599           tailf:info "Set group profile attributes for client";
37600           description
37601             "Set group profile attributes for client";
37602           tailf:cli-mode-name "config-isakmp-group";
37603           key "name";
37604           leaf name {
37605             type string {
37606               tailf:info "WORD;;group name";
37607             }
37608           }
37609           uses crypto-isakmp-client-configuration-group-grouping;
37610         }
37611       }
37612       list firewall {
37613         tailf:info "Define client firewall";
37614         description
37615           "Define client firewall";
37616         tailf:cli-mode-name "config-ikmp-client-fw";
37617         key "policy-name";
37618         leaf policy-name {
37619           type string {
37620             tailf:info "WORD;;policy name";
37621           }
37622         }
37623         leaf optional {
37624           tailf:info "firewall policy is optional";
37625           description
37626             "firewall policy is optional";
37627           tailf:cli-hide-in-submode;
37628           type enumeration {
37629             enum "cisco-integrated-client-firewall" {
37630               tailf:info "Cisco Integrated Client";
37631             }
37632             enum "cisco-security-agent" {
37633               tailf:info "Cisco Security Agent";
37634             }
37635             enum "zonelabs-zonealarm" {
37636               tailf:info "Zonelabs Zonealarm Firewall";
37637             }
37638             enum "zonelabs-zonealarmpro" {
37639               tailf:info "Zonelabs Zonealarmpro Firewall";
37640             }
37641           }
37642         }
37643         leaf required {
37644           tailf:info "firewall policy is mandatory";
37645           description
37646             "firewall policy is mandatory";
37647           tailf:cli-hide-in-submode;
37648           type enumeration {
37649             enum "cisco-integrated-client-firewall" {
37650               tailf:info "Cisco Integrated Client";
37651             }
37652             enum "cisco-security-agent" {
37653               tailf:info "Cisco Security Agent";
37654             }
37655             enum "zonelabs-zonealarm" {
37656               tailf:info "Zonelabs Zonealarm Firewall";
37657             }
37658             enum "zonelabs-zonealarmpro" {
37659               tailf:info "Zonelabs Zonealarmpro Firewall";
37660             }
37661           }
37662         }
37663         container policy {
37664           tailf:info "Define Cisco firewall Policy";
37665           description
37666             "Define Cisco firewall Policy";
37667           container central-policy-push {
37668             tailf:info "Define Cisco Protection Policy";
37669             description
37670               "Define Cisco Protection Policy";
37671             when "../../optional = 'cisco-integrated-client-firewall' or ../../required = 'cisco-integrated-client-firewall' or ../../optional = 'zonelabs-zonealarm' or ../../required = 'zonelabs-zonealarm' or ../../optional = 'zonelabs-zonealarmpro' or ../../required = 'zonelabs-zonealarmpro'";
37672             container access-list {
37673               tailf:info "Specify access list";
37674               description
37675                 "Specify access list";
37676               tailf:cli-sequence-commands;
37677               tailf:cli-compact-syntax;
37678               leaf direction {
37679                 tailf:cli-drop-node-name;
37680                 type enumeration {
37681                   enum "in" {
37682                     tailf:info "Specify inbound access list";
37683                   }
37684                   enum "out" {
37685                     tailf:info "Specify outbound access list";
37686                   }
37687                 }
37688               }
37689               leaf acl {
37690                 tailf:cli-drop-node-name;
37691                 type union {
37692                   type uint16 {
37693                     tailf:info "<100-199>;;access-list number for client-fw policy";
37694                     range "100..199";
37695                   }
37696                   type string {
37697                     tailf:info "WORD;;Access-list name";
37698                     pattern "[a-zA-Z].*";
37699                   }
37700                 }
37701               }
37702             }
37703           }
37704           leaf check-presence {
37705             tailf:info "Define firewall are-you-there policy";
37706             description
37707               "Define firewall are-you-there policy";
37708             when "../../optional = 'cisco-security-agent' or ../../required = 'cisco-security-agent' or ../../optional = 'zonelabs-zonealarm' or ../../required = 'zonelabs-zonealarm' or ../../optional = 'zonelabs-zonealarmpro' or ../../required = 'zonelabs-zonealarmpro'";
37709             type empty;
37710           }
37711         }
37712       }
37713     }
37714     container default {
37715       tailf:info "ISAKMP default policy";
37716       description
37717         "ISAKMP default policy";
37718       leaf policy {
37719         tailf:info "Enable default policies for ISAKMP protection suite";
37720         description
37721           "Enable default policies for ISAKMP protection suite";
37722         type empty;
37723       }
37724     }
37725     leaf disconnect-revoked-peers {
37726       tailf:info "Disconnect Crypto Session with Revoked Peer";
37727       description
37728         "Disconnect Crypto Session with Revoked Peer";
37729       type empty;
37730     }
37731     leaf enable {
37732       tailf:info "Enable ISAKMP";
37733       description
37734         "Enable ISAKMP";
37735       type empty;
37736     }
37737     leaf fragmentation {
37738       tailf:info "IKE Fragmentation enabled if required";
37739       description
37740         "IKE Fragmentation enabled if required";
37741       type empty;
37742     }
37743     leaf identity {
37744       tailf:info "Set the identity which ISAKMP will use";
37745       description
37746         "Set the identity which ISAKMP will use";
37747       type enumeration {
37748         enum "address" {
37749           tailf:info "Use the IP address of the interface for the identity";
37750         }
37751         enum "dn" {
37752           tailf:info "Use the distinguished name of the router cert for the identity";
37753         }
37754         enum "hostname" {
37755           tailf:info "Use the hostname of the router for the identity";
37756         }
37757       }
37758     }
37759     leaf invalid-spi-recovery {
37760       tailf:info "Initiate IKE and send Invalid SPI Notify";
37761       description
37762         "Initiate IKE and send Invalid SPI Notify";
37763       type empty;
37764     }
37765     container keepalive {
37766       tailf:info "Set a keepalive interval for use with IOS peers";
37767       description
37768         "Set a keepalive interval for use with IOS peers";
37769       tailf:cli-sequence-commands;
37770       tailf:cli-compact-syntax;
37771       leaf number {
37772         tailf:cli-drop-node-name;
37773         type uint16 {
37774           tailf:info "<10-3600>;;Number of seconds between keep alives";
37775           range "10..3600";
37776         }
37777       }
37778       leaf retry-number {
37779         tailf:cli-drop-node-name;
37780         tailf:cli-break-sequence-commands;
37781         type uint8 {
37782           tailf:info "<2-60>;;Number of seconds between retries if keepalive fails";
37783           range "2..60";
37784         }
37785       }
37786       leaf send {
37787         tailf:cli-drop-node-name;
37788         type enumeration {
37789           enum "on-demand" {
37790             tailf:info "When using Dead Peer Detection (DPD), send DPD messages only as needed";
37791           }
37792           enum "periodic" {
37793             tailf:info "When using Dead Peer Detection (DPD), send periodic DPD messages";
37794           }
37795         }
37796       }
37797     }
37798     container key {
37799       tailf:info "Set pre-shared key for remote peer";
37800       description
37801         "Set pre-shared key for remote peer";
37802       container key-address {
37803         tailf:cli-drop-node-name;
37804         tailf:cli-sequence-commands;
37805         tailf:cli-compact-syntax;
37806         leaf encryption {
37807           tailf:cli-drop-node-name;
37808           tailf:cli-incomplete-command;
37809           tailf:cli-optional-in-sequence;
37810           type enumeration {
37811             enum "0" {
37812               tailf:info "Specifies an UNENCRYPTED key will follow";
37813             }
37814             enum "6" {
37815               tailf:info "Specifies HIDDEN key will follow";
37816             }
37817           }
37818         }
37819         leaf key {
37820           tailf:cli-drop-node-name;
37821           type string {
37822             tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
37823           }
37824         }
37825         choice ipv4-ipv6 {
37826           case ipv4 {
37827             container addr4-container {
37828               tailf:cli-drop-node-name;
37829               tailf:cli-flatten-container;
37830               tailf:cli-sequence-commands;
37831               tailf:cli-compact-syntax;
37832               leaf address {
37833                 tailf:info "define shared key with IP address";
37834                 description
37835                   "define shared key with IP address";
37836                 type inet:ipv4-address {
37837                   tailf:info "A.B.C.D;;Peer IP address";
37838                 }
37839               }
37840               leaf mask {
37841                 tailf:cli-drop-node-name;
37842                 tailf:cli-break-sequence-commands;
37843                 type inet:ipv4-address {
37844                   tailf:info "A.B.C.D;;Peer IP subnet mask";
37845                 }
37846               }
37847               leaf no-xauth {
37848                 tailf:info "Bypasses XAuth for this peer";
37849                 description
37850                   "Bypasses XAuth for this peer";
37851                 type empty;
37852               }
37853             }
37854           }
37855           case ipv6 {
37856             container addr6-container {
37857               tailf:cli-drop-node-name;
37858               tailf:cli-flatten-container;
37859               container address {
37860                 tailf:info "define shared key with IP address";
37861                 description
37862                   "define shared key with IP address";
37863                 tailf:cli-sequence-commands;
37864                 tailf:cli-compact-syntax;
37865                 leaf ipv6 {
37866                   tailf:info "define shared key with IPv6 address";
37867                   description
37868                     "define shared key with IPv6 address";
37869                   type inet:ipv6-prefix {
37870                     tailf:info "X:X:X:X::X/<0-128>;;Peer IPv6 prefix";
37871                   }
37872                 }
37873                 leaf no-xauth {
37874                   tailf:info "Bypasses XAuth for this peer";
37875                   description
37876                     "Bypasses XAuth for this peer";
37877                   tailf:cli-break-sequence-commands;
37878                   type empty;
37879                 }
37880               }
37881             }
37882           }
37883         }
37884       }
37885       container key-host {
37886         tailf:cli-drop-node-name;
37887         tailf:cli-sequence-commands;
37888         tailf:cli-compact-syntax;
37889         leaf encryption {
37890           tailf:cli-drop-node-name;
37891           tailf:cli-incomplete-command;
37892           tailf:cli-optional-in-sequence;
37893           type enumeration {
37894             enum "0" {
37895               tailf:info "Specifies an UNENCRYPTED key will follow";
37896             }
37897             enum "6" {
37898               tailf:info "Specifies HIDDEN key will follow";
37899             }
37900           }
37901         }
37902         leaf key {
37903           tailf:cli-drop-node-name;
37904           type string {
37905             tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
37906           }
37907         }
37908         container host-container {
37909           tailf:cli-drop-node-name;
37910           tailf:cli-flatten-container;
37911           tailf:cli-sequence-commands;
37912           tailf:cli-compact-syntax;
37913           leaf hostname {
37914             tailf:info "define shared key with hostname";
37915             description
37916               "define shared key with hostname";
37917             type string {
37918               tailf:info "WORD;;hostname of peer with whom the key is shared";
37919             }
37920           }
37921           leaf no-xauth {
37922             tailf:info "Bypasses XAuth for this peer";
37923             description
37924               "Bypasses XAuth for this peer";
37925             tailf:cli-break-sequence-commands;
37926             type empty;
37927           }
37928         }
37929       }
37930     }
37931     container nat {
37932       tailf:info "Set a nat  keepalive interval for use with IOS peers";
37933       description
37934         "Set a nat  keepalive interval for use with IOS peers";
37935       leaf keepalive {
37936         tailf:info "Set a nat keepalive interval for use with IOS peers";
37937         description
37938           "Set a nat keepalive interval for use with IOS peers";
37939         type uint16 {
37940           tailf:info "<5-3600>;;Number of seconds between keep alives";
37941           range "5..3600";
37942         }
37943       }
37944     }
37945     container peer {
37946       tailf:info "Set Peer Policy";
37947       description
37948         "Set Peer Policy";
37949       container ipv4-addr {
37950         tailf:cli-drop-node-name;
37951         list address {
37952           tailf:info "define peer policy for IP address";
37953           description
37954             "define peer policy for IP address";
37955           tailf:cli-mode-name "config-isakmp-peer";
37956           key "ipv4";
37957           leaf ipv4 {
37958             type inet:ipv4-address {
37959               tailf:info "A.B.C.D;;Peer IP address";
37960             }
37961           }
37962           leaf vrf {
37963             tailf:info "specify front door vrf of the peer";
37964             description
37965               "specify front door vrf of the peer";
37966             tailf:cli-hide-in-submode;
37967             type string {
37968               tailf:info "WORD;;VRF tag";
37969             }
37970           }
37971           uses crypto-isakmp-peer-grouping;
37972         }
37973       }
37974       container ipv6-addr {
37975         tailf:cli-drop-node-name;
37976         list address {
37977           tailf:info "define peer policy for IP address";
37978           description
37979             "define peer policy for IP address";
37980           tailf:cli-mode-name "config-isakmp-peer";
37981           key "ipv6";
37982           leaf ipv6 {
37983             tailf:info "define peer policy for IPv6 address";
37984             description
37985               "define peer policy for IPv6 address";
37986             tailf:cli-expose-key-name;
37987             type inet:ipv6-address {
37988               tailf:info "X:X:X:X::X  Peer IPv6 address";
37989             }
37990           }
37991           leaf vrf {
37992             tailf:info "specify front door vrf of the peer";
37993             description
37994               "specify front door vrf of the peer";
37995             tailf:cli-hide-in-submode;
37996             type string {
37997               tailf:info "WORD;;VRF tag";
37998             }
37999           }
38000           uses crypto-isakmp-peer-grouping;
38001         }
38002       }
38003       list hostname {
38004         tailf:info "hostname  define peer policy for hostname";
38005         description
38006           "hostname  define peer policy for hostname";
38007         tailf:cli-mode-name "config-isakmp-peer";
38008         key "name";
38009         leaf name {
38010           type string {
38011             tailf:info "WORD;;hostname of peer";
38012           }
38013         }
38014         leaf vrf {
38015           tailf:info "specify front door vrf of the peer";
38016           description
38017             "specify front door vrf of the peer";
38018           tailf:cli-hide-in-submode;
38019           type string {
38020             tailf:info "WORD;;VRF tag";
38021           }
38022         }
38023         uses crypto-isakmp-peer-grouping;
38024       }
38025     }
38026     list policy {
38027       tailf:info "Set policy for an ISAKMP protection suite";
38028       description
38029         "Set policy for an ISAKMP protection suite";
38030       tailf:cli-mode-name "config-isakmp";
38031       key "number";
38032       leaf number {
38033         type uint32 {
38034           tailf:info "<1-10000>;;Priority of protection suite";
38035           range "1..10000";
38036         }
38037       }
38038       container default {
38039         tailf:info "Set a command to its defaults";
38040         description
38041           "Set a command to its defaults";
38042         uses crypto-isakmp-policy-grouping;
38043         leaf lifetime {
38044           tailf:info "Set lifetime for ISAKMP security association";
38045           description
38046             "Set lifetime for ISAKMP security association";
38047           type empty;
38048         }
38049       }
38050       uses crypto-isakmp-policy-grouping;
38051       leaf lifetime {
38052         tailf:info "Set lifetime for ISAKMP security association";
38053         description
38054           "Set lifetime for ISAKMP security association";
38055         type uint32 {
38056           tailf:info "<60-86400>;;lifetime in seconds";
38057           range "60..86400";
38058         }
38059       }
38060     }
38061     list profile {
38062       tailf:info "Define ISAKMP Profiles";
38063       description
38064         "Define ISAKMP Profiles";
38065       tailf:cli-mode-name "conf-isa-prof";
38066       key "name";
38067       leaf name {
38068         type string {
38069           tailf:info "WORD;;Name of ISAKMP Profile";
38070         }
38071       }
38072       container default {
38073         tailf:info "Set a command to its defaults";
38074         description
38075           "Set a command to its defaults";
38076         uses crypto-isakmp-profile-default-grouping;
38077       }
38078       uses crypto-isakmp-profile-grouping;
38079     }
38080     container xauth {
38081       tailf:info "Set Extended Authentication values";
38082       description
38083         "Set Extended Authentication values";
38084       leaf timeout {
38085         tailf:info "Set Extended Authentication timeout";
38086         description
38087           "Set Extended Authentication timeout";
38088         type uint8 {
38089           tailf:info "<5-90>;;Number of seconds before Xauth wait for Reply times out";
38090           range "5..90";
38091         }
38092       }
38093     }
38094   }
38095
38096   grouping crypto-key-decrypt-rc-rsa-np-grouping {
38097     leaf name {
38098       tailf:info "Name of keypair to decrypt.";
38099       description
38100         "Name of keypair to decrypt.";
38101       type string {
38102         tailf:info "WORD;;Name of keypair.";
38103       }
38104     }
38105     leaf passphrase {
38106       tailf:info "decryption key.";
38107       description
38108         "decryption key.";
38109       tailf:cli-multi-value;
38110       type string {
38111         tailf:info "LINE;;decryption Key.";
38112       }
38113     }
38114   }
38115
38116   grouping crypto-key-decrypt-rc-rsa-grouping {
38117     container ec {
38118       tailf:info "EC keys";
38119       description
38120         "EC keys";
38121       presence "true";
38122       uses crypto-key-decrypt-rc-rsa-np-grouping;
38123     }
38124     container rsa {
38125       tailf:info "RSA keys";
38126       description
38127         "RSA keys";
38128       presence "true";
38129       uses crypto-key-decrypt-rc-rsa-np-grouping;
38130     }
38131   }
38132
38133   grouping crypto-key-encrypt-rc-rsa-np-grouping {
38134     leaf name {
38135       tailf:info "Name of keypair to encrypt.";
38136       description
38137         "Name of keypair to encrypt.";
38138       type string {
38139         tailf:info "WORD;;Name of keypair.";
38140       }
38141     }
38142     leaf passphrase {
38143       tailf:info "encryption key.";
38144       description
38145         "encryption key.";
38146       tailf:cli-multi-value;
38147       type string {
38148         tailf:info "LINE;;encryption Key.";
38149       }
38150     }
38151   }
38152
38153   grouping crypto-key-encrypt-rc-rsa-grouping {
38154     container ec {
38155       tailf:info "EC keys";
38156       description
38157         "EC keys";
38158       presence "true";
38159       uses crypto-key-encrypt-rc-rsa-np-grouping;
38160     }
38161     container rsa {
38162       tailf:info "RSA keys";
38163       description
38164         "RSA keys";
38165       presence "true";
38166       uses crypto-key-encrypt-rc-rsa-np-grouping;
38167     }
38168   }
38169
38170   grouping crypto-key-url-file-ex-grouping {
38171     leaf file {
38172       tailf:cli-drop-node-name;
38173       type enumeration {
38174         enum "bootflash:" {
38175           tailf:info "Export to bootflash: file system";
38176         }
38177         enum "flash:" {
38178           tailf:info "Export to flash: file system";
38179         }
38180         enum "ftp:" {
38181           tailf:info "Export to ftp: file system";
38182         }
38183         enum "http:" {
38184           tailf:info "Export to http: file system";
38185         }
38186         enum "https:" {
38187           tailf:info "Export to https: file system";
38188         }
38189         enum "null:" {
38190           tailf:info "Export to null: file system";
38191         }
38192         enum "nvram:" {
38193           tailf:info "Export to nvram: file system";
38194         }
38195         enum "pram:" {
38196           tailf:info "Export to pram: file system";
38197         }
38198         enum "rcp:" {
38199           tailf:info "Export to rcp: file system";
38200         }
38201         enum "scp:" {
38202           tailf:info "Export to scp: file system";
38203         }
38204         enum "system:" {
38205           tailf:info "Export to system: file system";
38206         }
38207         enum "tftp:" {
38208           tailf:info "Export to tftp: file system";
38209         }
38210         enum "tmpsys:" {
38211           tailf:info "Export to tmpsys: file system";
38212         }
38213       }
38214     }
38215   }
38216
38217   grouping crypto-key-url-file-im-grouping {
38218     leaf file {
38219       tailf:cli-drop-node-name;
38220       type enumeration {
38221         enum "bootflash:" {
38222           tailf:info "Import from bootflash: file system";
38223         }
38224         enum "cns:" {
38225           tailf:info "Import from cns: file system";
38226         }
38227         enum "flash:" {
38228           tailf:info "Import from flash: file system";
38229         }
38230         enum "ftp:" {
38231           tailf:info "Import from ftp: file system";
38232         }
38233         enum "http:" {
38234           tailf:info "Import from http: file system";
38235         }
38236         enum "https:" {
38237           tailf:info "Import from https: file system";
38238         }
38239         enum "null:" {
38240           tailf:info "Import from null: file system";
38241         }
38242         enum "nvram:" {
38243           tailf:info "Import from nvram: file system";
38244         }
38245         enum "pram:" {
38246           tailf:info "Import from pram: file system";
38247         }
38248         enum "rcp:" {
38249           tailf:info "Import from rcp: file system";
38250         }
38251         enum "scp:" {
38252           tailf:info "Import from scp: file system";
38253         }
38254         enum "system:" {
38255           tailf:info "Import from system: file system";
38256         }
38257         enum "tar:" {
38258           tailf:info "Import from tar: file system";
38259         }
38260         enum "tftp:" {
38261           tailf:info "Import from tftp: file system";
38262         }
38263         enum "tmpsys:" {
38264           tailf:info "Import from tmpsys: file system";
38265         }
38266       }
38267     }
38268   }
38269
38270   grouping crypto-key-export-pem-grouping {
38271     container pem {
38272       tailf:info "File type to export";
38273       description
38274         "File type to export";
38275       tailf:cli-flatten-container;
38276       choice terminal-url {
38277         case terminal-case {
38278           container terminal {
38279             tailf:info "Export via the terminal (cut-and-paste)";
38280             description
38281               "Export via the terminal (cut-and-paste)";
38282             choice des-3des {
38283               case pk-3des-case {
38284                 leaf pk-3des {
38285                   tailf:alt-name "3des";
38286                   tailf:info "Encrypt the private key with 3DES";
38287                   description
38288                     "Encrypt the private key with 3DES";
38289                   tailf:cli-multi-value;
38290                   tailf:cli-optional-in-sequence;
38291                   tailf:cli-full-command;
38292                   type string {
38293                     tailf:info "LINE;;Passphrase used to protect the private key";
38294                   }
38295                 }
38296               }
38297               case des-case {
38298                 leaf des {
38299                   tailf:info "Encrypt the private key with DES";
38300                   description
38301                     "Encrypt the private key with DES";
38302                   tailf:cli-multi-value;
38303                   tailf:cli-full-command;
38304                   type string {
38305                     tailf:info "LINE;;Passphrase used to protect the private key";
38306                   }
38307                 }
38308               }
38309             }
38310           }
38311         }
38312         case url-case {
38313           container url {
38314             tailf:info "Export via the file systems";
38315             description
38316               "Export via the file systems";
38317             tailf:cli-sequence-commands;
38318             tailf:cli-compact-syntax;
38319             uses crypto-key-url-file-ex-grouping;
38320             choice des-3des {
38321               case pk-3des-case {
38322                 leaf pk-3des {
38323                   tailf:alt-name "3des";
38324                   tailf:info "Encrypt the private key with 3DES";
38325                   description
38326                     "Encrypt the private key with 3DES";
38327                   tailf:cli-multi-value;
38328                   tailf:cli-optional-in-sequence;
38329                   tailf:cli-full-command;
38330                   type string {
38331                     tailf:info "LINE;;Passphrase used to protect the private key";
38332                   }
38333                 }
38334               }
38335               case des-case {
38336                 leaf des {
38337                   tailf:info "Encrypt the private key with DES";
38338                   description
38339                     "Encrypt the private key with DES";
38340                   tailf:cli-multi-value;
38341                   tailf:cli-full-command;
38342                   type string {
38343                     tailf:info "LINE;;Passphrase used to protect the private key";
38344                   }
38345                 }
38346               }
38347             }
38348           }
38349         }
38350       }
38351     }
38352   }
38353
38354   grouping crypto-key-pubkey-key-grouping {
38355     leaf address {
38356       tailf:info "Assign an address to the key";
38357       description
38358         "Assign an address to the key";
38359       type inet:ipv4-address {
38360         tailf:info "A.B.C.D;;IP address";
38361       }
38362     }
38363     container key-string {
38364       tailf:info "Key data";
38365       description
38366         "Key data";
38367       tailf:cli-add-mode;
38368       tailf:cli-mode-name "config-pubkey";
38369       leaf hex-data {
38370         tailf:cli-drop-node-name;
38371         tailf:cli-multi-value;
38372         tailf:cli-full-command;
38373         type string {
38374           tailf:info "Hex-data;;Hex data to append to parse buffer";
38375         }
38376       }
38377       leaf quit {
38378         tailf:info "Exit data entry mode";
38379         description
38380           "Exit data entry mode";
38381         tailf:cli-full-command;
38382         type empty;
38383       }
38384     }
38385     leaf serial-number {
38386       tailf:info "Serial number of the device";
38387       description
38388         "Serial number of the device";
38389       type string {
38390         tailf:info "<0-FFFFFFFF>;;Device serial number";
38391       }
38392     }
38393   }
38394
38395   grouping crypto-key-pubkey-key-default-grouping {
38396     leaf address {
38397       tailf:info "Assign an address to the key";
38398       description
38399         "Assign an address to the key";
38400       type empty;
38401     }
38402     container key-string {
38403       tailf:info "Key data";
38404       description
38405         "Key data";
38406       presence "true";
38407     }
38408     leaf serial-number {
38409       tailf:info "Serial number of the device";
38410       description
38411         "Serial number of the device";
38412       type empty;
38413     }
38414   }
38415
38416   grouping crypto-key-pubkey-chain-grouping {
38417     list addressed-key {
38418       tailf:info "Public key associated with an address";
38419       description
38420         "Public key associated with an address";
38421       tailf:cli-mode-name "config-pubkey-key";
38422       key "ip";
38423       leaf ip {
38424         type inet:ipv4-address {
38425           tailf:info "A.B.C.D;;IP address";
38426         }
38427       }
38428       leaf use {
38429         tailf:cli-drop-node-name;
38430         tailf:cli-hide-in-submode;
38431         type enumeration {
38432           enum "encryption" {
38433             tailf:info "Key is to be used for encryption only";
38434           }
38435           enum "signature" {
38436             tailf:info "Key is to be used for verifying signatures only";
38437           }
38438         }
38439       }
38440       uses crypto-key-pubkey-key-grouping;
38441       container default {
38442         tailf:info "Set a command to its defaults";
38443         description
38444           "Set a command to its defaults";
38445         uses crypto-key-pubkey-key-default-grouping;
38446       }
38447     }
38448     list named-key {
38449       tailf:info "Public key associated with a name";
38450       description
38451         "Public key associated with a name";
38452       tailf:cli-mode-name "config-pubkey-key";
38453       key "name";
38454       leaf name {
38455         type string {
38456           tailf:info "WORD;;Name of key";
38457         }
38458       }
38459       leaf use {
38460         tailf:cli-drop-node-name;
38461         tailf:cli-hide-in-submode;
38462         type enumeration {
38463           enum "encryption" {
38464             tailf:info "Key is to be used for encryption only";
38465           }
38466           enum "signature" {
38467             tailf:info "Key is to be used for verifying signatures only";
38468           }
38469         }
38470       }
38471       uses crypto-key-pubkey-key-grouping;
38472       container default {
38473         tailf:info "Set a command to its defaults";
38474         description
38475           "Set a command to its defaults";
38476         uses crypto-key-pubkey-key-default-grouping;
38477       }
38478     }
38479   }
38480
38481   grouping crypto-key-pubkey-chain-default-grouping {
38482     list addressed-key {
38483       tailf:info "Public key associated with an address";
38484       description
38485         "Public key associated with an address";
38486       tailf:cli-suppress-mode;
38487       key "ip";
38488       leaf ip {
38489         type inet:ipv4-address {
38490           tailf:info "A.B.C.D;;IP address";
38491         }
38492       }
38493       leaf use {
38494         tailf:cli-drop-node-name;
38495         tailf:cli-hide-in-submode;
38496         type enumeration {
38497           enum "encryption" {
38498             tailf:info "Key is to be used for encryption only";
38499           }
38500           enum "signature" {
38501             tailf:info "Key is to be used for verifying signatures only";
38502           }
38503         }
38504       }
38505     }
38506     list named-key {
38507       tailf:info "Public key associated with a name";
38508       description
38509         "Public key associated with a name";
38510       tailf:cli-suppress-mode;
38511       key "name";
38512       leaf name {
38513         type string {
38514           tailf:info "WORD;;Name of key";
38515         }
38516       }
38517       leaf use {
38518         tailf:cli-drop-node-name;
38519         tailf:cli-hide-in-submode;
38520         type enumeration {
38521           enum "encryption" {
38522             tailf:info "Key is to be used for encryption only";
38523           }
38524           enum "signature" {
38525             tailf:info "Key is to be used for verifying signatures only";
38526           }
38527         }
38528       }
38529     }
38530   }
38531
38532   grouping crypto-key-grouping {
38533     container decrypt {
38534       tailf:info "Decrypt a keypair.";
38535       description
38536         "Decrypt a keypair.";
38537       uses crypto-key-decrypt-rc-rsa-grouping;
38538       container write {
38539         tailf:info "Will write the configuration to startup-config.";
38540         description
38541           "Will write the configuration to startup-config.";
38542         uses crypto-key-decrypt-rc-rsa-grouping;
38543       }
38544     }
38545     container encrypt {
38546       tailf:info "Encrypt a keypair.";
38547       description
38548         "Encrypt a keypair.";
38549       uses crypto-key-encrypt-rc-rsa-grouping;
38550       container write {
38551         tailf:info "Will write the configuration to startup-config.";
38552         description
38553           "Will write the configuration to startup-config.";
38554         uses crypto-key-encrypt-rc-rsa-grouping;
38555       }
38556     }
38557     container export {
38558       tailf:info "Export keys";
38559       description
38560         "Export keys";
38561       list ec {
38562         tailf:info "Export EC keys";
38563         description
38564           "Export EC keys";
38565         tailf:cli-suppress-mode;
38566         key "label";
38567         leaf label {
38568           type string {
38569             tailf:info "WORD;;ec key label";
38570           }
38571         }
38572         uses crypto-key-export-pem-grouping;
38573       }
38574       list rsa {
38575         tailf:info "Export RSRA keys";
38576         description
38577           "Export RSRA keys";
38578         tailf:cli-suppress-mode;
38579         key "label";
38580         leaf label {
38581           type string {
38582             tailf:info "WORD;;RSA key label";
38583           }
38584         }
38585         uses crypto-key-export-pem-grouping;
38586       }
38587     }
38588     container generate {
38589       tailf:info "Generate new keys";
38590       description
38591         "Generate new keys";
38592       container ec {
38593         tailf:info "Generate EC keys for ECDSA";
38594         description
38595           "Generate EC keys for ECDSA";
38596         tailf:cli-sequence-commands;
38597         tailf:cli-compact-syntax;
38598         leaf keysize {
38599           tailf:info "Number of bits";
38600           description
38601             "Number of bits";
38602           type enumeration {
38603             enum "256" {
38604               tailf:info "<256-256>;;256 bit keys";
38605             }
38606             enum "384" {
38607               tailf:info "<384-384>;;384 bit keys";
38608             }
38609           }
38610         }
38611         leaf exportable {
38612           tailf:info "Allow key to be exported";
38613           description
38614             "Allow key to be exported";
38615           tailf:cli-break-sequence-commands;
38616           type empty;
38617         }
38618         leaf label {
38619           tailf:info "Provide a label";
38620           description
38621             "Provide a label";
38622           tailf:cli-full-command;
38623           type string {
38624             tailf:info "WORD;;Label for the keypair";
38625           }
38626         }
38627       }
38628       container rsa {
38629         tailf:info "Generate RSA keys";
38630         description
38631           "Generate RSA keys";
38632         tailf:cli-compact-syntax;
38633         presence "true";
38634         leaf encryption {
38635           tailf:info "Generate a general purpose RSA key pair for signing and encryption";
38636           description
38637             "Generate a general purpose RSA key pair for signing and encryption";
38638           type empty;
38639         }
38640         leaf exportable {
38641           tailf:info "Allow the key to be exported";
38642           description
38643             "Allow the key to be exported";
38644           type empty;
38645         }
38646         leaf general-keys {
38647           tailf:info "Generate a general purpose RSA key pair for signing and encryption";
38648           description
38649             "Generate a general purpose RSA key pair for signing and encryption";
38650           type empty;
38651         }
38652         leaf label {
38653           tailf:info "Provide a label";
38654           description
38655             "Provide a label";
38656           type string {
38657             tailf:info "WORD;;RSA keypair label";
38658           }
38659         }
38660         leaf modulus {
38661           tailf:info "Provide number of modulus bits on the command line";
38662           description
38663             "Provide number of modulus bits on the command line";
38664           type uint16 {
38665             tailf:info "<360-4096>;;size of the key modulus [360-4096]";
38666             range "360..4096";
38667           }
38668         }
38669         leaf on {
38670           tailf:info "create key on specified device.";
38671           description
38672             "create key on specified device.";
38673           type string {
38674             tailf:info "WORD;;RSA keypair storage device";
38675           }
38676         }
38677         leaf redundancy {
38678           tailf:info "Allow the key to be synced to high-availability peer";
38679           description
38680             "Allow the key to be synced to high-availability peer";
38681           type empty;
38682         }
38683         leaf signature {
38684           tailf:info "Generate a general purpose RSA key pair for signing and encryption";
38685           description
38686             "Generate a general purpose RSA key pair for signing and encryption";
38687           type empty;
38688         }
38689         leaf storage {
38690           tailf:info "Store key on specified device";
38691           description
38692             "Store key on specified device";
38693           type string {
38694             tailf:info "WORD;;RSA keypair storage device";
38695           }
38696         }
38697         leaf usage-keys {
38698           tailf:info "Generate separate RSA key pairs for signing and encryption";
38699           description
38700             "Generate separate RSA key pairs for signing and encryption";
38701           type empty;
38702         }
38703       }
38704     }
38705     container import {
38706       tailf:info "Import keys";
38707       description
38708         "Import keys";
38709       list ec {
38710         tailf:info "Import EC keys";
38711         description
38712           "Import EC keys";
38713         tailf:cli-suppress-mode;
38714         key "name";
38715         leaf name {
38716           type string {
38717             tailf:info "WORD  EC key label";
38718           }
38719         }
38720         leaf exportable {
38721           tailf:info "Allow key to be exported";
38722           description
38723             "Allow key to be exported";
38724           tailf:cli-hide-in-submode;
38725           type empty;
38726         }
38727         choice terminal-url {
38728           case terminal-case {
38729             leaf terminal {
38730               tailf:info "Import via the terminal (cut-and-paste)";
38731               description
38732                 "Import via the terminal (cut-and-paste)";
38733               tailf:cli-multi-value;
38734               tailf:cli-full-command;
38735               type string {
38736                 tailf:info "LINE;;Passphrase used to protect the private key";
38737               }
38738             }
38739           }
38740           case url-case {
38741             container url {
38742               tailf:info "Export via the file systems";
38743               description
38744                 "Export via the file systems";
38745               tailf:cli-flatten-container;
38746               tailf:cli-sequence-commands;
38747               tailf:cli-compact-syntax;
38748               uses crypto-key-url-file-im-grouping;
38749               leaf key {
38750                 tailf:cli-drop-node-name;
38751                 tailf:cli-multi-value;
38752                 tailf:cli-optional-in-sequence;
38753                 type string {
38754                   tailf:info "LINE;;Passphrase used to protect the private key";
38755                 }
38756               }
38757             }
38758           }
38759         }
38760       }
38761       list rsa {
38762         tailf:info "Import RSA keys";
38763         description
38764           "Import RSA keys";
38765         tailf:cli-suppress-mode;
38766         tailf:cli-compact-syntax;
38767         key "label";
38768         leaf label {
38769           type string {
38770             tailf:info "WORD;;RSA key label";
38771           }
38772         }
38773         leaf encryption {
38774           tailf:info "Encryption key";
38775           description
38776             "Encryption key";
38777           type empty;
38778         }
38779         leaf exportable {
38780           tailf:info "Allow the key to be exported";
38781           description
38782             "Allow the key to be exported";
38783           type empty;
38784         }
38785         leaf general-purpose {
38786           tailf:info "General Purpose key";
38787           description
38788             "General Purpose key";
38789           type empty;
38790         }
38791         leaf on {
38792           tailf:info "Make this an on-token key";
38793           description
38794             "Make this an on-token key";
38795           type string {
38796             tailf:info "WORD;;RSA keypair storage device";
38797           }
38798         }
38799         leaf pem {
38800           tailf:info "File type to import";
38801           description
38802             "File type to import";
38803           type empty;
38804         }
38805         leaf redundancy {
38806           tailf:info "Sync this key to the standby";
38807           description
38808             "Sync this key to the standby";
38809           type empty;
38810         }
38811         leaf signature {
38812           tailf:info "Signature key";
38813           description
38814             "Signature key";
38815           type empty;
38816         }
38817         leaf storage {
38818           tailf:info "Store key on specified device";
38819           description
38820             "Store key on specified device";
38821           type string {
38822             tailf:info "WORD;;RSA keypair storage device";
38823           }
38824         }
38825         leaf usage-keys {
38826           tailf:info "Usage key pairs";
38827           description
38828             "Usage key pairs";
38829           type empty;
38830         }
38831         choice terminal-url {
38832           case terminal-case {
38833             leaf terminal {
38834               tailf:info "Import via the terminal (cut-and-paste)";
38835               description
38836                 "Import via the terminal (cut-and-paste)";
38837               tailf:cli-multi-value;
38838               tailf:cli-full-command;
38839               type string {
38840                 tailf:info "LINE;;Passphrase used to protect the private key";
38841               }
38842             }
38843           }
38844           case url-case {
38845             container url {
38846               tailf:info "Export via the file systems";
38847               description
38848                 "Export via the file systems";
38849               tailf:cli-flatten-container;
38850               tailf:cli-sequence-commands;
38851               tailf:cli-compact-syntax;
38852               uses crypto-key-url-file-im-grouping;
38853               leaf key {
38854                 tailf:cli-drop-node-name;
38855                 tailf:cli-multi-value;
38856                 tailf:cli-optional-in-sequence;
38857                 type string {
38858                   tailf:info "LINE;;Passphrase used to protect the private key";
38859                 }
38860               }
38861             }
38862           }
38863         }
38864       }
38865     }
38866     container move {
38867       tailf:info "Move keys";
38868       description
38869         "Move keys";
38870       container rsa {
38871         tailf:info "Move RSA keys";
38872         description
38873           "Move RSA keys";
38874         tailf:cli-flatten-container;
38875         tailf:cli-sequence-commands;
38876         tailf:cli-compact-syntax;
38877         leaf label {
38878           tailf:cli-drop-node-name;
38879           type string {
38880             tailf:info "WORD;;RSA key label";
38881           }
38882         }
38883         leaf non-exportable {
38884           tailf:info "Do Not allow the key to be exported";
38885           description
38886             "Do Not allow the key to be exported";
38887           tailf:cli-break-sequence-commands;
38888           type empty;
38889         }
38890         leaf on {
38891           tailf:info "Make this an on-token key";
38892           description
38893             "Make this an on-token key";
38894           type string {
38895             tailf:info "WORD;;RSA keypair storage device";
38896           }
38897         }
38898         leaf redundancy {
38899           tailf:info "Sync this key to the standby";
38900           description
38901             "Sync this key to the standby";
38902           type empty;
38903         }
38904         leaf storage {
38905           tailf:info "Store key on specified device";
38906           description
38907             "Store key on specified device";
38908           type string {
38909             tailf:info "WORD;;RSA keypair storage device";
38910           }
38911         }
38912       }
38913     }
38914     container pubkey-chain {
38915       tailf:info "Peer public key chain management";
38916       description
38917         "Peer public key chain management";
38918       container rsa {
38919         tailf:info "Peer RSA public key chain management";
38920         description
38921           "Peer RSA public key chain management";
38922         tailf:cli-add-mode;
38923         tailf:cli-mode-name "config-pubkey-chain";
38924         uses crypto-key-pubkey-chain-grouping;
38925         container default {
38926           tailf:info "Set a command to its defaults";
38927           description
38928             "Set a command to its defaults";
38929           uses crypto-key-pubkey-chain-default-grouping;
38930         }
38931       }
38932     }
38933     leaf storage {
38934       tailf:info "default storage location for keypairs";
38935       description
38936         "default storage location for keypairs";
38937       type string {
38938         tailf:info "WORD;;keypair storage location";
38939       }
38940     }
38941     container zeroize {
38942       tailf:info "Remove keys";
38943       description
38944         "Remove keys";
38945       container ec {
38946         tailf:info "Remove EC keys";
38947         description
38948           "Remove EC keys";
38949         presence "true";
38950         leaf label {
38951           tailf:cli-drop-node-name;
38952           type string {
38953             tailf:info "WORD;;keypair label";
38954           }
38955         }
38956       }
38957       container pubkey-chain {
38958         tailf:info "Remove peer's cached public key";
38959         description
38960           "Remove peer's cached public key";
38961         presence "true";
38962         leaf index {
38963           tailf:cli-drop-node-name;
38964           type uint16 {
38965             tailf:info "<1-65535>;;Public key index";
38966           }
38967         }
38968       }
38969       container rsa {
38970         tailf:info "Remove RSA keys";
38971         description
38972           "Remove RSA keys";
38973         presence "true";
38974         leaf label {
38975           tailf:cli-drop-node-name;
38976           type string {
38977             tailf:info "WORD;;keypair label";
38978           }
38979         }
38980       }
38981     }
38982   }
38983
38984   grouping crypto-keyring-key-grouping {
38985     leaf key {
38986       tailf:info "specify the key";
38987       description
38988         "specify the key";
38989       type empty;
38990     }
38991     leaf encryption {
38992       tailf:cli-drop-node-name;
38993       tailf:cli-break-sequence-commands;
38994       type enumeration {
38995         enum "0" {
38996           tailf:info "Specifies an UNENCRYPTED key will follow";
38997         }
38998         enum "6" {
38999           tailf:info "Specifies HIDDEN key will follow";
39000         }
39001       }
39002     }
39003     leaf unencryt-key {
39004       tailf:cli-drop-node-name;
39005       tailf:cli-multi-value;
39006       type string {
39007         tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
39008       }
39009     }
39010   }
39011
39012   grouping crypto-keyring-grouping {
39013     leaf description {
39014       tailf:info "Specify a description about this keyring";
39015       description
39016         "Specify a description about this keyring";
39017       tailf:cli-multi-value;
39018       type string {
39019         tailf:info "LINE;;a 1 line description of the keyring";
39020       }
39021     }
39022     leaf local-address {
39023       tailf:info "Limit the keyring usage to a local address";
39024       description
39025         "Limit the keyring usage to a local address";
39026       type string;
39027     }
39028     container pre-shared-key {
39029       tailf:info "Pre-Shared Key";
39030       description
39031         "Pre-Shared Key";
39032       container ipv4-addr {
39033         tailf:cli-drop-node-name;
39034         tailf:cli-sequence-commands;
39035         tailf:cli-compact-syntax;
39036         leaf address {
39037           tailf:info "pre shared key by address";
39038           description
39039             "pre shared key by address";
39040           type inet:ipv4-address {
39041             tailf:info "A.B.C.D;;address prefix";
39042           }
39043         }
39044         leaf mask {
39045           tailf:info "pre shared key by address";
39046           description
39047             "pre shared key by address";
39048           tailf:cli-drop-node-name;
39049           tailf:cli-optional-in-sequence;
39050           type inet:ipv4-address {
39051             tailf:info "A.B.C.D;;address prefix mask";
39052           }
39053         }
39054         uses crypto-keyring-key-grouping;
39055       }
39056       container address {
39057         tailf:info "pre shared key by address";
39058         description
39059           "pre shared key by address";
39060         tailf:cli-sequence-commands;
39061         tailf:cli-compact-syntax;
39062         leaf ipv6 {
39063           tailf:info "define shared key with IPv6 address";
39064           description
39065             "define shared key with IPv6 address";
39066           type inet:ipv6-prefix {
39067             tailf:info "X:X:X:X::X/<0-128>;;IPv6 address prefix";
39068           }
39069         }
39070         uses crypto-keyring-key-grouping;
39071       }
39072       container hostname {
39073         tailf:info "hostname  define peer policy for hostname";
39074         description
39075           "hostname  define peer policy for hostname";
39076         tailf:cli-sequence-commands;
39077         tailf:cli-compact-syntax;
39078         leaf name {
39079           tailf:cli-drop-node-name;
39080           type string {
39081             tailf:info "WORD;;hostname of peer";
39082           }
39083         }
39084         uses crypto-keyring-key-grouping;
39085       }
39086     }
39087     container rsa-pubkey {
39088       tailf:info "Peer RSA public key chain management";
39089       description
39090         "Peer RSA public key chain management";
39091       container addr {
39092         tailf:cli-drop-node-name;
39093         tailf:cli-sequence-commands;
39094         tailf:cli-compact-syntax;
39095         leaf address {
39096           tailf:info "Public key associated with an address";
39097           description
39098             "Public key associated with an address";
39099           type inet:ipv4-address {
39100             tailf:info "A.B.C.D;;ip address";
39101           }
39102         }
39103         leaf way {
39104           tailf:cli-drop-node-name;
39105           tailf:cli-optional-in-sequence;
39106           type enumeration {
39107             enum "encryption" {
39108               tailf:info "Key is to be used for encryption only";
39109             }
39110             enum "signature" {
39111               tailf:info "Key is to be used for verifying signatures only (default)";
39112             }
39113           }
39114         }
39115       }
39116       container hostname {
39117         tailf:cli-drop-node-name;
39118         tailf:cli-sequence-commands;
39119         tailf:cli-compact-syntax;
39120         leaf name {
39121           tailf:info "Public key associated with a hostname";
39122           description
39123             "Public key associated with a hostname";
39124           type string {
39125             tailf:info "WORD;;name of key";
39126           }
39127         }
39128         leaf way {
39129           tailf:cli-drop-node-name;
39130           tailf:cli-optional-in-sequence;
39131           type enumeration {
39132             enum "encryption" {
39133               tailf:info "Key is to be used for encryption only";
39134             }
39135             enum "signature" {
39136               tailf:info "Key is to be used for verifying signatures only (default)";
39137             }
39138           }
39139         }
39140       }
39141     }
39142   }
39143
39144   grouping crypto-map-grouping {
39145     uses crypto-map-common-grouping;
39146     container set {
39147       tailf:info "Set values for encryption/decryption";
39148       description
39149         "Set values for encryption/decryption";
39150       uses crypto-map-common-set-grouping;
39151       container security-association {
39152         tailf:info "Security association parameters";
39153         description
39154           "Security association parameters";
39155         uses crypto-map-common-set-security-association-grouping;
39156         leaf level {
39157           tailf:info "specify a security association granularity level for identities";
39158           description
39159             "specify a security association granularity level for identities";
39160           type enumeration {
39161             enum "per-host" {
39162               tailf:info "granularity to host level";
39163             }
39164           }
39165         }
39166       }
39167     }
39168   }
39169
39170   grouping crypto-map-default-grouping {
39171     leaf description {
39172       tailf:info "Description of the crypto map statement policy";
39173       description
39174         "Description of the crypto map statement policy";
39175       type empty;
39176     }
39177     container dialer {
39178       tailf:info "Dialer related commands";
39179       description
39180         "Dialer related commands";
39181       leaf pre-classify {
39182         tailf:info "Enable dialer list classification before initiating IKE";
39183         description
39184           "Enable dialer list classification before initiating IKE";
39185         type empty;
39186       }
39187     }
39188     container match {
39189       tailf:info "Match values";
39190       description
39191         "Match values";
39192       leaf address {
39193         tailf:info "Match address of packets to encrypt";
39194         description
39195           "Match address of packets to encrypt";
39196         type empty;
39197       }
39198     }
39199     container qos {
39200       tailf:info "Quality of Service related commands";
39201       description
39202         "Quality of Service related commands";
39203       leaf pre-classify {
39204         tailf:info "Enable QOS classification before packets are tunnel encapsulated";
39205         description
39206           "Enable QOS classification before packets are tunnel encapsulated";
39207         type empty;
39208       }
39209     }
39210     container reverse-route {
39211       tailf:info "Reverse Route Injection.";
39212       description
39213         "Reverse Route Injection.";
39214       presence "true";
39215     }
39216     container set {
39217       tailf:info "Set values for encryption/decryption";
39218       description
39219         "Set values for encryption/decryption";
39220       leaf group {
39221         tailf:info "Set the san group parameters";
39222         description
39223           "Set the san group parameters";
39224         type empty;
39225       }
39226       leaf identity {
39227         tailf:info "Identity restriction";
39228         description
39229           "Identity restriction";
39230         type empty;
39231       }
39232       leaf ikev2-profile {
39233         tailf:info "Specify ikev2 Profile";
39234         description
39235           "Specify ikev2 Profile";
39236         type string {
39237           tailf:info "WORD;;Name the ikev2 profile";
39238         }
39239       }
39240       leaf isakmp-profile {
39241         tailf:info "Specify isakmp Profile";
39242         description
39243           "Specify isakmp Profile";
39244         type empty;
39245       }
39246       container pfs {
39247         tailf:info "Specify pfs settings";
39248         description
39249           "Specify pfs settings";
39250         presence "true";
39251       }
39252       container reverse-route {
39253         tailf:info "Reverse Route Injection";
39254         description
39255           "Reverse Route Injection";
39256         presence "true";
39257       }
39258       container security-association {
39259         tailf:info "Security association parameters";
39260         description
39261           "Security association parameters";
39262         leaf dfbit {
39263           tailf:info "Handling of encapsulated DF bit.";
39264           description
39265             "Handling of encapsulated DF bit.";
39266           type empty;
39267         }
39268         container dummy {
39269           tailf:info "Enable transmitting dummy packets";
39270           description
39271             "Enable transmitting dummy packets";
39272           presence "true";
39273         }
39274         leaf ecn {
39275           tailf:info "Handling of ECN bit";
39276           description
39277             "Handling of ECN bit";
39278           type empty;
39279         }
39280         container idle-time-container {
39281           tailf:cli-drop-node-name;
39282           tailf:cli-sequence-commands;
39283           tailf:cli-compact-syntax;
39284           leaf idle-time {
39285             tailf:info "Automatically delete IPSec SAs after a given idle period.";
39286             description
39287               "Automatically delete IPSec SAs after a given idle period.";
39288             type empty;
39289           }
39290           leaf default {
39291             tailf:info "All SAs idle-out reset to default peer";
39292             description
39293               "All SAs idle-out reset to default peer";
39294             tailf:cli-optional-in-sequence;
39295             type empty;
39296           }
39297         }
39298         leaf level {
39299           tailf:info "specify a security association granularity level for identities";
39300           description
39301             "specify a security association granularity level for identities";
39302           type enumeration {
39303             enum "per-host" {
39304               tailf:info "granularity to host level";
39305             }
39306           }
39307         }
39308         container lifetime {
39309           tailf:info "security association lifetime";
39310           description
39311             "security association lifetime";
39312           leaf days {
39313             tailf:info "Time-based key duration in days";
39314             description
39315               "Time-based key duration in days";
39316             type empty;
39317           }
39318           leaf kilobytes {
39319             tailf:info "Volume-based key duration";
39320             description
39321               "Volume-based key duration";
39322             type empty;
39323           }
39324           leaf seconds {
39325             tailf:info "Time-based key duration in seconds";
39326             description
39327               "Time-based key duration in seconds";
39328             type empty;
39329           }
39330         }
39331         container replay {
39332           tailf:info "Set replay checking.";
39333           description
39334             "Set replay checking.";
39335           leaf disable {
39336             tailf:info "Disable replay checking";
39337             description
39338               "Disable replay checking";
39339             type empty;
39340           }
39341           leaf window-size {
39342             tailf:info "Set replay window size.";
39343             description
39344               "Set replay window size.";
39345             type empty;
39346           }
39347         }
39348       }
39349       leaf transform-set {
39350         tailf:info "Specify list of transform sets in priority order";
39351         description
39352           "Specify list of transform sets in priority order";
39353         type empty;
39354       }
39355     }
39356   }
39357
39358   grouping crypto-map-gdoi-mapping {
39359     leaf activate {
39360       tailf:info "Activate the crypto map to work in fail-close mode";
39361       description
39362         "Activate the crypto map to work in fail-close mode";
39363       type empty;
39364     }
39365     container match {
39366       tailf:info "Match address of packets for fail-close";
39367       description
39368         "Match address of packets for fail-close";
39369       leaf address {
39370         tailf:info "Match address of packets for fail-close.";
39371         description
39372           "Match address of packets for fail-close.";
39373         type ext-acl-type;
39374       }
39375     }
39376   }
39377
39378   grouping crypto-map-gdoi-default-mapping {
39379     leaf activate {
39380       tailf:info "Activate the crypto map to work in fail-close mode";
39381       description
39382         "Activate the crypto map to work in fail-close mode";
39383       type empty;
39384     }
39385     container match {
39386       tailf:info "Match address of packets for fail-close";
39387       description
39388         "Match address of packets for fail-close";
39389       leaf address {
39390         tailf:info "Match address of packets for fail-close.";
39391         description
39392           "Match address of packets for fail-close.";
39393         type empty;
39394       }
39395     }
39396   }
39397
39398   grouping time-grouping {
39399     container time {
39400       tailf:cli-sequence-commands;
39401       tailf:cli-compact-syntax;
39402       choice date-month {
39403         case date1 {
39404           leaf date1 {
39405             tailf:cli-drop-node-name;
39406             type uint8 {
39407               tailf:info "<1-31>;;Date (ddd)";
39408               range "1..31";
39409             }
39410           }
39411         }
39412         case month1 {
39413           leaf month1 {
39414             tailf:cli-drop-node-name;
39415             type string {
39416               tailf:info "MONTH;;Month (mmm)";
39417             }
39418           }
39419         }
39420       }
39421       choice month-date {
39422         case date2 {
39423           leaf date2 {
39424             tailf:cli-drop-node-name;
39425             when "../month1";
39426             type uint8 {
39427               tailf:info "<1-31>;;Date (ddd)";
39428               range "1..31";
39429             }
39430           }
39431         }
39432         case month2 {
39433           leaf month2 {
39434             tailf:cli-drop-node-name;
39435             when "../date1";
39436             type string {
39437               tailf:info "MONTH;;Month (mmm)";
39438             }
39439           }
39440         }
39441       }
39442       leaf year {
39443         tailf:cli-drop-node-name;
39444         type uint16 {
39445           tailf:info "<1993-2035>;;Year (yyyy)";
39446           range "1993..2035";
39447         }
39448       }
39449       leaf clock {
39450         tailf:cli-drop-node-name;
39451         tailf:cli-break-sequence-commands;
39452         type string {
39453           tailf:info "hh:mm:ss;;Time (hh:mm:ss)";
39454         }
39455       }
39456       leaf utc {
39457         tailf:info "Time is in UTC (not local Time Zone)";
39458         description
39459           "Time is in UTC (not local Time Zone)";
39460         tailf:cli-full-command;
39461         type empty;
39462       }
39463     }
39464   }
39465
39466   grouping compare-time-grouping {
39467     container eq {
39468       tailf:info "Equal";
39469       description
39470         "Equal";
39471       uses time-grouping;
39472     }
39473     container ge {
39474       tailf:info "Greater than or equal";
39475       description
39476         "Greater than or equal";
39477       uses time-grouping;
39478     }
39479     container lt {
39480       tailf:info "Less Than";
39481       description
39482         "Less Than";
39483       uses time-grouping;
39484     }
39485     container ne {
39486       tailf:info "Not Equal";
39487       description
39488         "Not Equal";
39489       uses time-grouping;
39490     }
39491   }
39492
39493   grouping compare-string-grouping {
39494     leaf co {
39495       tailf:info "Contains";
39496       description
39497         "Contains";
39498       tailf:cli-multi-value;
39499       type string {
39500         tailf:info "LINE;;Compare string";
39501       }
39502     }
39503     leaf eq {
39504       tailf:info "Equal";
39505       description
39506         "Equal";
39507       tailf:cli-multi-value;
39508       type string {
39509         tailf:info "LINE;;Compare string";
39510       }
39511     }
39512     leaf nc {
39513       tailf:info "Does not contain";
39514       description
39515         "Does not contain";
39516       tailf:cli-multi-value;
39517       type string {
39518         tailf:info "LINE;;Compare string";
39519       }
39520     }
39521     leaf ne {
39522       tailf:info "Not Equal";
39523       description
39524         "Not Equal";
39525       tailf:cli-multi-value;
39526       type string {
39527         tailf:info "LINE;;Compare string";
39528       }
39529     }
39530   }
39531
39532   grouping crypto-pki-certificate-map-grouping {
39533     container alt-subject-name {
39534       tailf:info "Alternate subject name";
39535       description
39536         "Alternate subject name";
39537       uses compare-string-grouping;
39538     }
39539     container expires-on {
39540       tailf:info "Expiration date/time";
39541       description
39542         "Expiration date/time";
39543       uses compare-time-grouping;
39544     }
39545     container issuer-name {
39546       tailf:info "Certificate issuer name";
39547       description
39548         "Certificate issuer name";
39549       uses compare-string-grouping;
39550     }
39551     container name {
39552       tailf:info "Any subject name field";
39553       description
39554         "Any subject name field";
39555       uses compare-string-grouping;
39556     }
39557     container serial-number {
39558       tailf:info "Certificate serial number (hexidecimal)";
39559       description
39560         "Certificate serial number (hexidecimal)";
39561       uses compare-string-grouping;
39562     }
39563     container subject-name {
39564       tailf:info "Certificate subject name";
39565       description
39566         "Certificate subject name";
39567       uses compare-string-grouping;
39568     }
39569     container unstructured-subject-name {
39570       tailf:info "Unstructured subject name";
39571       description
39572         "Unstructured subject name";
39573       uses compare-string-grouping;
39574     }
39575     container valid-start {
39576       tailf:info "Valid after date/time";
39577       description
39578         "Valid after date/time";
39579       uses compare-time-grouping;
39580     }
39581   }
39582
39583   grouping crypto-pki-profile-enrollment-auth-grouping {
39584     leaf command {
39585       tailf:info "command to authenticate or enroll";
39586       description
39587         "command to authenticate or enroll";
39588       tailf:cli-multi-value;
39589       type string {
39590         tailf:info "LINE;;Text string (proceed any ? character with ^V)";
39591       }
39592     }
39593     leaf terminal {
39594       tailf:info "authenticate or enroll using terminal";
39595       description
39596         "authenticate or enroll using terminal";
39597       type empty;
39598     }
39599     container url {
39600       tailf:info "url to authenticate/enroll";
39601       description
39602         "url to authenticate/enroll";
39603       tailf:cli-sequence-commands;
39604       tailf:cli-compact-syntax;
39605       leaf name {
39606         tailf:cli-drop-node-name;
39607         type string {
39608           tailf:info "WORD;;http or tftp url";
39609         }
39610       }
39611       leaf vrf {
39612         tailf:info "VRF to use for certificate enrollment ";
39613         description
39614           "VRF to use for certificate enrollment ";
39615         tailf:cli-optional-in-sequence;
39616         type string {
39617           tailf:info "WORD;;Name of VRF to use for enrollment";
39618         }
39619       }
39620     }
39621   }
39622
39623   grouping crypto-pki-profile-enrollment-grouping {
39624     container authentication {
39625       tailf:info "Retrieve CA certificate(s)";
39626       description
39627         "Retrieve CA certificate(s)";
39628       uses crypto-pki-profile-enrollment-auth-grouping;
39629     }
39630     container enrollment {
39631       tailf:info "Enroll router with a CA";
39632       description
39633         "Enroll router with a CA";
39634       uses crypto-pki-profile-enrollment-auth-grouping;
39635       leaf credential {
39636         tailf:info "Use existing router cert for new enrollment";
39637         description
39638           "Use existing router cert for new enrollment";
39639         type string {
39640           tailf:info "WORD;;Label of trustpoint holding existing router cert";
39641         }
39642       }
39643     }
39644     leaf method-est {
39645       tailf:info "Use EST for this profile";
39646       description
39647         "Use EST for this profile";
39648       type empty;
39649     }
39650     list parameter {
39651       tailf:info "Define a parameter value or prompt";
39652       description
39653         "Define a parameter value or prompt";
39654       tailf:cli-suppress-mode;
39655       key "number";
39656       leaf number {
39657         type uint8 {
39658           tailf:info "<1-8>;;Parameter number (1 - 8)";
39659           range "1..8";
39660         }
39661       }
39662       choice prompt-value {
39663         case prompt-case {
39664           leaf prompt {
39665             tailf:info "Define a parameter prompt";
39666             description
39667               "Define a parameter prompt";
39668             tailf:cli-hide-in-submode;
39669             tailf:cli-multi-value;
39670             type string {
39671               tailf:info "LINE;;Parameter value or prompt";
39672             }
39673           }
39674         }
39675         case value-case {
39676           leaf value {
39677             tailf:info "Define a parameter value";
39678             description
39679               "Define a parameter value";
39680             tailf:cli-hide-in-submode;
39681             tailf:cli-multi-value;
39682             type string {
39683               tailf:info "LINE;;Parameter value or prompt";
39684             }
39685           }
39686         }
39687       }
39688     }
39689     container reenrollment {
39690       tailf:info "Re-enroll router with a CA";
39691       description
39692         "Re-enroll router with a CA";
39693       uses crypto-pki-profile-enrollment-auth-grouping;
39694     }
39695     leaf source-interface {
39696       tailf:info "Interface used as source address";
39697       description
39698         "Interface used as source address";
39699       type string;
39700     }
39701   }
39702
39703   grouping hour-minute-grouping {
39704     leaf hours {
39705       tailf:cli-drop-node-name;
39706       type uint8 {
39707         tailf:info "<0-23>;;Hours of the day in 24-hr time, 0-23, examples: 13 or 7";
39708         range "0..23";
39709       }
39710     }
39711     leaf minutes {
39712       tailf:cli-drop-node-name;
39713       type uint8 {
39714         tailf:info "<0-59>;;The minutes from the top of the hour";
39715         range "0..59";
39716       }
39717     }
39718   }
39719
39720   grouping username-password-grouping {
39721     leaf username {
39722       tailf:info "Provide the username for authentication";
39723       description
39724         "Provide the username for authentication";
39725       type string {
39726         tailf:info "WORD;;Provide the username for authentication";
39727       }
39728     }
39729     leaf password {
39730       tailf:info "Provide the password for authentication";
39731       description
39732         "Provide the password for authentication";
39733       type string {
39734         tailf:info "WORD;;Provide the password for authentication";
39735       }
39736     }
39737   }
39738
39739   grouping utd-engine-standard-grouping {
39740     container logging {
39741       tailf:info "Provide config options for logging the alerts";
39742       description
39743         "Provide config options for logging the alerts";
39744       container server {
39745         tailf:info "Log the alerts to a server";
39746         description
39747           "Log the alerts to a server";
39748         tailf:cli-sequence-commands;
39749         tailf:cli-compact-syntax;
39750         leaf name {
39751           tailf:cli-drop-node-name;
39752           type string {
39753             tailf:info "WORD;;Provide the URL/IP address of the server";
39754           }
39755         }
39756         leaf level {
39757           tailf:info "Provide the log level";
39758           description
39759             "Provide the log level";
39760           tailf:cli-break-sequence-commands;
39761           tailf:cli-full-command;
39762           type syslog-level-type;
39763         }
39764         leaf syslog {
39765           tailf:info "Log the alerts to IOS syslogs";
39766           description
39767             "Log the alerts to IOS syslogs";
39768           type empty;
39769         }
39770       }
39771       container syslog {
39772         tailf:info "Log the alerts to IOS syslogs";
39773         description
39774           "Log the alerts to IOS syslogs";
39775         presence "true";
39776         leaf level {
39777           tailf:info "Provide the log level";
39778           description
39779             "Provide the log level";
39780           tailf:cli-full-command;
39781           type syslog-level-type;
39782         }
39783       }
39784     }
39785     leaf policy {
39786       tailf:info "Provide the policy option (default=balanced)";
39787       description
39788         "Provide the policy option (default=balanced)";
39789       type enumeration {
39790         enum "balanced" {
39791           tailf:info "Set the policy to balanced (this is the default option)";
39792         }
39793         enum "connectivity" {
39794           tailf:info "Set the policy to connectivity (stresses on connectivity over security)";
39795         }
39796         enum "security" {
39797           tailf:info "Set the policy to security (provide mode exhaustive coverage)";
39798         }
39799       }
39800     }
39801     container signature {
39802       tailf:info "Provide config options for the signatures";
39803       description
39804         "Provide config options for the signatures";
39805       container update {
39806         tailf:info "Provide config options for the signature updates";
39807         description
39808           "Provide config options for the signature updates";
39809         container occur-at {
39810           tailf:info "Specify update occurence by calendar time";
39811           description
39812             "Specify update occurence by calendar time";
39813           container daily {
39814             tailf:info "Option for daily update";
39815             description
39816               "Option for daily update";
39817             tailf:cli-sequence-commands;
39818             tailf:cli-compact-syntax;
39819             uses hour-minute-grouping;
39820           }
39821           container monthly {
39822             tailf:info "Option for monthly update";
39823             description
39824               "Option for monthly update";
39825             tailf:cli-sequence-commands;
39826             tailf:cli-compact-syntax;
39827             leaf days {
39828               tailf:cli-drop-node-name;
39829               type string {
39830                 tailf:info "WORD;;Days of the month from 1-31, examples: 1,10,20,30 or 1-11";
39831               }
39832             }
39833             uses hour-minute-grouping;
39834           }
39835           container weekly {
39836             tailf:info "Option for weekly update";
39837             description
39838               "Option for weekly update";
39839             leaf days {
39840               tailf:cli-drop-node-name;
39841               type string {
39842                 tailf:info "WORD;;Days of the week from 0-6, Sunday=0, examples: 0-2 or 1,3,5";
39843               }
39844             }
39845             uses hour-minute-grouping;
39846           }
39847         }
39848         container server {
39849           tailf:info "Provide config options for the signature update server";
39850           description
39851             "Provide config options for the signature update server";
39852           container cisco {
39853             tailf:info "Use Cisco site to provide updates";
39854             description
39855               "Use Cisco site to provide updates";
39856             tailf:cli-sequence-commands;
39857             tailf:cli-compact-syntax;
39858             uses username-password-grouping;
39859           }
39860           container url {
39861             tailf:info "Enter the complete URL for the path to the update server";
39862             description
39863               "Enter the complete URL for the path to the update server";
39864             choice url-uname-passwd {
39865               case all-case {
39866                 container all {
39867                   tailf:cli-drop-node-name;
39868                   tailf:cli-sequence-commands;
39869                   tailf:cli-compact-syntax;
39870                   leaf name {
39871                     tailf:cli-drop-node-name;
39872                     type string {
39873                       tailf:info "WORD;;URL for update location(http/https). Example: http://1.2.3.4/path/";
39874                     }
39875                   }
39876                   uses username-password-grouping;
39877                 }
39878               }
39879               case name-only {
39880                 leaf name {
39881                   tailf:cli-drop-node-name;
39882                   type string {
39883                     tailf:info "WORD;;URL for update location(http/https). Example: http://1.2.3.4/path/";
39884                   }
39885                 }
39886               }
39887             }
39888           }
39889         }
39890       }
39891     }
39892     leaf threat {
39893       tailf:info "Provide the threat detection/protection option (default=detection)";
39894       description
39895         "Provide the threat detection/protection option (default=detection)";
39896       tailf:cli-full-command;
39897       type enumeration {
39898         enum "detection" {
39899           tailf:info "Provide threat detection";
39900         }
39901         enum "protection" {
39902           tailf:info "Provide threat protection";
39903         }
39904       }
39905     }
39906     leaf whitelist {
39907       tailf:info "Enable whitelisting under the utd engine";
39908       description
39909         "Enable whitelisting under the utd engine";
39910       tailf:cli-full-command;
39911       type empty;
39912     }
39913   }
39914
39915   grouping pseudowire-grouping {
39916     leaf encapsulation {
39917       tailf:info "Data encapsulation method";
39918       description
39919         "Data encapsulation method";
39920       type enumeration {
39921         enum "l2tpv2" {
39922           tailf:info "Use L2TPv2 encapsulation";
39923         }
39924         enum "l2tpv3" {
39925           tailf:info "Use L2TPv3 encapsulation";
39926         }
39927         enum "mpls" {
39928           tailf:info "Use MPLS encapsulation";
39929         }
39930         enum "udp" {
39931           tailf:info "Use UDP encapsulation";
39932         }
39933       }
39934     }
39935     container ip {
39936       tailf:info "Specify IP parameters";
39937       description
39938         "Specify IP parameters";
39939       when "../encapsulation = 'l2tpv2' or ../encapsulation = 'l2tpv3'";
39940       container dfbit {
39941         tailf:info "DF bit options for tunnel";
39942         description
39943           "DF bit options for tunnel";
39944         leaf set {
39945           tailf:info "Set the DF bit in the tunnel header";
39946           description
39947             "Set the DF bit in the tunnel header";
39948           tailf:cli-full-command;
39949           type empty;
39950         }
39951       }
39952       container local {
39953         tailf:info "Specify local information";
39954         description
39955           "Specify local information";
39956         container interface {
39957           tailf:info "Source interface for pseudowire";
39958           description
39959             "Source interface for pseudowire";
39960           uses interface-grouping;
39961         }
39962       }
39963       container pmtu {
39964         tailf:info "Enable Path MTU for tunnel";
39965         description
39966           "Enable Path MTU for tunnel";
39967         presence "true";
39968         leaf max {
39969           tailf:info "Maximum Path MTU for session";
39970           description
39971             "Maximum Path MTU for session";
39972           type uint16 {
39973             tailf:info "<68-65535>;;Maximum Path MTU";
39974             range "68..65535";
39975           }
39976         }
39977       }
39978       leaf protocol {
39979         tailf:info "Specific IP protocol number to use";
39980         description
39981           "Specific IP protocol number to use";
39982         when "../../encapsulation = 'l2tpv3'";
39983         type enumeration {
39984           enum "l2tp" {
39985             tailf:info "L2TP over IP (protocol 115)";
39986           }
39987           enum "uti" {
39988             tailf:info "Legacy UTI mode (protocol 120)";
39989           }
39990         }
39991       }
39992       container tos {
39993         tailf:info "Specify ToS options for IP tunnel header";
39994         description
39995           "Specify ToS options for IP tunnel header";
39996         leaf reflect {
39997           tailf:info "Reflect IP payload ToS on tunnel";
39998           description
39999             "Reflect IP payload ToS on tunnel";
40000           tailf:cli-full-command;
40001           type empty;
40002         }
40003         leaf value {
40004           tailf:info "IP ToS value";
40005           description
40006             "IP ToS value";
40007           type uint8 {
40008             tailf:info "<0-255>;;ToS byte value";
40009           }
40010         }
40011       }
40012       leaf ttl {
40013         tailf:info "Specify TTL value for IP tunnel header";
40014         description
40015           "Specify TTL value for IP tunnel header";
40016         type uint8 {
40017           tailf:info "<1-255>;;TTL value";
40018         }
40019       }
40020     }
40021     leaf control-word {
40022       tailf:info "Include control-word in pseudowire packets";
40023       description
40024         "Include control-word in pseudowire packets";
40025       tailf:cli-show-no;
40026       when "../encapsulation = 'mpls'";
40027       tailf:cli-full-command;
40028       type empty;
40029     }
40030     leaf interworking {
40031       tailf:info "Interworking options for pseudowire";
40032       description
40033         "Interworking options for pseudowire";
40034       type enumeration {
40035         enum "ethernet" {
40036           tailf:info "Ethernet interworking";
40037         }
40038         enum "ip" {
40039           tailf:info "IP interworking";
40040         }
40041         enum "vlan" {
40042           tailf:info "VLAN interworking";
40043         }
40044       }
40045     }
40046     container load-balance {
40047       tailf:info "Loadbalancing for pseudowire";
40048       description
40049         "Loadbalancing for pseudowire";
40050       when "../encapsulation = 'mpls'";
40051       container flow {
40052         tailf:info "Enable flow based load balancing for pseudowire";
40053         description
40054           "Enable flow based load balancing for pseudowire";
40055         presence "true";
40056         leaf ethernet {
40057           tailf:info "Ethernet pseudowire flow classification";
40058           description
40059             "Ethernet pseudowire flow classification";
40060           tailf:cli-full-command;
40061           type enumeration {
40062             enum "dst-mac" {
40063               tailf:info "Destination mac address";
40064             }
40065             enum "src-dst-mac" {
40066               tailf:info "Source and destination mac address";
40067             }
40068             enum "src-mac" {
40069               tailf:info "Source mac address";
40070             }
40071           }
40072         }
40073       }
40074     }
40075     container monitor {
40076       tailf:info "Active monitoring of xconnect peer";
40077       description
40078         "Active monitoring of xconnect peer";
40079       when "../encapsulation = 'mpls'";
40080       container peer {
40081         tailf:info "Active monitoring of xconnect peer";
40082         description
40083           "Active monitoring of xconnect peer";
40084         container bfd {
40085           tailf:info "BFD active monitoring for the xconnect peer";
40086           description
40087             "BFD active monitoring for the xconnect peer";
40088           presence "true";
40089           container local {
40090             tailf:info "Specify local endpoint information to map to a BFD session";
40091             description
40092               "Specify local endpoint information to map to a BFD session";
40093             container interface {
40094               tailf:info "Source interface for pseudowire";
40095               description
40096                 "Source interface for pseudowire";
40097               uses interface-grouping;
40098             }
40099           }
40100         }
40101       }
40102     }
40103     container preferred-path {
40104       tailf:info "Preferred path";
40105       description
40106         "Preferred path";
40107       container interface {
40108         tailf:info "Output Interface";
40109         description
40110           "Output Interface";
40111         tailf:cli-sequence-commands;
40112         tailf:cli-compact-syntax;
40113         choice Tunnel-Tunnel-tp {
40114           case Tunnel-case {
40115             leaf Tunnel {
40116               tailf:info "Tunnel interface";
40117               description
40118                 "Tunnel interface";
40119               tailf:cli-allow-join-with-value {
40120                 tailf:cli-display-joined;
40121               }
40122               type uint64 {
40123                 tailf:info "<0-2147483647>;;Tunnel interface number";
40124                 range "0..2147483647";
40125               }
40126             }
40127           }
40128           case Tunnel-tp-case {
40129             leaf Tunnel-tp {
40130               tailf:info "MPLS Transport Profile interface";
40131               description
40132                 "MPLS Transport Profile interface";
40133               tailf:cli-allow-join-with-value {
40134                 tailf:cli-display-joined;
40135               }
40136               type uint16 {
40137                 tailf:info "<0-65535>;;Tunnel-tp interface number";
40138               }
40139             }
40140           }
40141         }
40142         leaf disable-fallback {
40143           tailf:info "disable fall back to alternative route";
40144           description
40145             "disable fall back to alternative route";
40146           tailf:cli-optional-in-sequence;
40147           type empty;
40148         }
40149       }
40150       container peer-container {
40151         tailf:cli-drop-node-name;
40152         tailf:cli-sequence-commands;
40153         tailf:cli-compact-syntax;
40154         leaf peer {
40155           tailf:info "Peer Address";
40156           description
40157             "Peer Address";
40158           type union {
40159             type string;
40160             type inet:ipv4-address {
40161               tailf:info "Hostname or A.B.C.D;;IP address or host name of Peer PE";
40162             }
40163           }
40164         }
40165         leaf disable-fallback {
40166           tailf:info "disable fall back to alternative route";
40167           description
40168             "disable fall back to alternative route";
40169           tailf:cli-optional-in-sequence;
40170           type empty;
40171         }
40172       }
40173     }
40174     container protocol-mpls {
40175       tailf:cli-drop-node-name;
40176       when "../encapsulation = 'mpls'";
40177       leaf protocol {
40178         tailf:info "Signaling protocol to use";
40179         description
40180           "Signaling protocol to use";
40181         type enumeration {
40182           enum "ldp" {
40183             tailf:info "Use LDP signaling";
40184           }
40185           enum "none" {
40186             tailf:info "No signaling, use manually configured sessions";
40187           }
40188         }
40189       }
40190     }
40191     container protocol-l2tpv2 {
40192       tailf:cli-drop-node-name;
40193       when "../encapsulation = 'l2tpv2'";
40194       leaf protocol {
40195         tailf:info "Signaling protocol to use";
40196         description
40197           "Signaling protocol to use";
40198         type enumeration {
40199           enum "l2tpv2" {
40200             tailf:info "Use L2TPv2 signaling";
40201           }
40202           enum "none" {
40203             tailf:info "No signaling, use manually configured sessions";
40204           }
40205         }
40206       }
40207     }
40208     container protocol-l2tpv3 {
40209       tailf:cli-drop-node-name;
40210       when "../encapsulation = 'l2tpv3'";
40211       leaf protocol {
40212         tailf:info "Signaling protocol to use";
40213         description
40214           "Signaling protocol to use";
40215         type enumeration {
40216           enum "l2tpv3" {
40217             tailf:info "Use L2TPv3 signaling";
40218           }
40219           enum "l2tpv3ietf" {
40220             tailf:info "Use L2TPv3 ietf signaling";
40221           }
40222           enum "none" {
40223             tailf:info "No signaling, use manually configured sessions";
40224           }
40225         }
40226       }
40227     }
40228     leaf sequencing {
40229       tailf:info "Sequencing options for pseudowire";
40230       description
40231         "Sequencing options for pseudowire";
40232       when "../encapsulation = 'mpls' or ../encapsulation = 'l2tpv3'";
40233       type enumeration {
40234         enum "both" {
40235           tailf:info "Transmit and receive sequence numbers";
40236         }
40237         enum "receive" {
40238           tailf:info "Receive sequence numbers";
40239         }
40240         enum "resync" {
40241           tailf:info "Enable Rx sequencing out-of-order detection/recovery";
40242         }
40243         enum "transmit" {
40244           tailf:info "Transmit sequence numbers";
40245         }
40246       }
40247     }
40248     container status {
40249       tailf:info "Pseudowire status capabilities";
40250       description
40251         "Pseudowire status capabilities";
40252       presence "true";
40253       container admin-down {
40254         tailf:info "Admin down of Attachment Circuit";
40255         description
40256           "Admin down of Attachment Circuit";
40257         when "../../encapsulation = 'l2tpv2' or ../../encapsulation = 'l2tpv3'";
40258         leaf disconnect {
40259           tailf:info "Disconnect the session";
40260           description
40261             "Disconnect the session";
40262           type empty;
40263         }
40264       }
40265       container control-plane {
40266         tailf:info "control plane status events";
40267         description
40268           "control plane status events";
40269         leaf route-watch {
40270           tailf:info "listen on the control plane to route-watch events";
40271           description
40272             "listen on the control plane to route-watch events";
40273           type empty;
40274         }
40275       }
40276       leaf decoupled {
40277         tailf:info "Reflect standby status of the attachment circuit as up on the pseudowire";
40278         description
40279           "Reflect standby status of the attachment circuit as up on the pseudowire";
40280         type empty;
40281       }
40282       container peer {
40283         tailf:info "peer status configuration";
40284         description
40285           "peer status configuration";
40286         container topology {
40287           tailf:info "change status behaviour based on peer topology";
40288           description
40289             "change status behaviour based on peer topology";
40290           leaf dual-homed {
40291             tailf:info "Our peer(s) are participating in a redundant solution with some form of redundancyprotocol running between the peer routers, Only one of the remote peers will advertise astatus of UP at a time. The other will advertise standby. Change our configuration so wecan send a status of UP on both active and redundant pseudowires";
40292             description
40293               "Our peer(s) are participating in a redundant solution with some form of redundancyprotocol running between the peer routers, Only one of the remote peers will advertise astatus of UP at a time. The other will advertise standby. Change our configuration so wecan send a status of UP on both active and redundant pseudowires";
40294             type empty;
40295           }
40296         }
40297       }
40298       container redundancy {
40299         tailf:info "Xconnect redundancy configuration";
40300         description
40301           "Xconnect redundancy configuration";
40302         leaf master {
40303           tailf:info "Put the xconnect redundancy group on this node in master mode";
40304           description
40305             "Put the xconnect redundancy group on this node in master mode";
40306           type empty;
40307         }
40308       }
40309     }
40310     container switching {
40311       tailf:info "Switching TLV on/off for pseudowire";
40312       description
40313         "Switching TLV on/off for pseudowire";
40314       when "../encapsulation = 'mpls'";
40315       leaf tlv {
40316         tailf:info "Switching TLV on/off for pseudowire";
40317         description
40318           "Switching TLV on/off for pseudowire";
40319         type empty;
40320       }
40321     }
40322   }
40323
40324   grouping track-timer-grouping {
40325     leaf seconds {
40326       tailf:cli-drop-node-name;
40327       tailf:cli-full-command;
40328       type uint32 {
40329         tailf:info "<1-3000>;;Time in seconds";
40330         range "1..3000";
40331       }
40332     }
40333     leaf ms {
40334       tailf:info "Specify polling interval in milliseconds";
40335       description
40336         "Specify polling interval in milliseconds";
40337       tailf:cli-full-command;
40338       type uint32 {
40339         tailf:info "<500-5000>;;Time in milliseconds";
40340         range "500..5000";
40341       }
40342     }
40343   }
40344
40345   grouping track-grouping {
40346     container delay {
40347       tailf:info "Tracking delay";
40348       description
40349         "Tracking delay";
40350       tailf:cli-compact-syntax;
40351       leaf down {
40352         tailf:info "Delay down change notification";
40353         description
40354           "Delay down change notification";
40355         type uint32 {
40356           tailf:info "<0-180>;;Seconds to delay";
40357           range "0..180";
40358         }
40359       }
40360       leaf up {
40361         tailf:info "Delay up change notification";
40362         description
40363           "Delay up change notification";
40364         type uint32 {
40365           tailf:info "<0-180>;;Seconds to delay";
40366           range "0..180";
40367         }
40368       }
40369     }
40370     leaf default-state {
40371       tailf:info "default object state";
40372       description
40373         "default object state";
40374       type enumeration {
40375         enum "down" {
40376           tailf:info "Track state DOWN";
40377         }
40378         enum "up" {
40379           tailf:info "Track state UP";
40380         }
40381       }
40382     }
40383     list object {
40384       tailf:info "Add a tracked object to list";
40385       description
40386         "Add a tracked object to list";
40387       tailf:cli-suppress-mode;
40388       tailf:cli-sequence-commands;
40389       tailf:cli-compact-syntax;
40390       key "number";
40391       leaf number {
40392         type uint32 {
40393           tailf:info "<1-1000>;;Tracked object number";
40394           range "1..1000";
40395         }
40396       }
40397       leaf not {
40398         tailf:info "Negate the state of object";
40399         description
40400           "Negate the state of object";
40401         tailf:cli-optional-in-sequence;
40402         type empty;
40403       }
40404     }
40405   }
40406
40407   grouping default-track-grouping {
40408     container delay {
40409       tailf:info "Tracking delay";
40410       description
40411         "Tracking delay";
40412       presence "true";
40413     }
40414     leaf default-state {
40415       tailf:info "default object state";
40416       description
40417         "default object state";
40418       type enumeration {
40419         enum "down" {
40420           tailf:info "Track state DOWN";
40421         }
40422         enum "up" {
40423           tailf:info "Track state UP";
40424         }
40425       }
40426     }
40427   }
40428
40429   grouping ip-wccp-group-address-grouping {
40430     leaf group-address {
40431       tailf:info "Set the multicast group";
40432       description
40433         "Set the multicast group";
40434       type inet:ipv4-address {
40435         tailf:info "A.B.C.D;;IPv4 group address";
40436       }
40437     }
40438     leaf group-list {
40439       tailf:info "Set the access-list used to permit group membership";
40440       description
40441         "Set the access-list used to permit group membership";
40442       type exp-acl-type;
40443     }
40444     leaf mode {
40445       tailf:info "Set the service mode";
40446       description
40447         "Set the service mode";
40448       type enumeration {
40449         enum "closed" {
40450           tailf:info "Closed service";
40451         }
40452         enum "open" {
40453           tailf:info "Open service";
40454         }
40455       }
40456     }
40457     container password {
40458       tailf:info "Set the authentication password";
40459       description
40460         "Set the authentication password";
40461       tailf:cli-flatten-container;
40462       leaf encryption {
40463         tailf:cli-drop-node-name;
40464         type enumeration {
40465           enum "0" {
40466             tailf:info "Specifies an UNENCRYPTED key will follow";
40467           }
40468           enum "7" {
40469             tailf:info "Specifies HIDDEN key will follow";
40470           }
40471         }
40472       }
40473       leaf clear-key {
40474         tailf:cli-drop-node-name;
40475         tailf:cli-full-command;
40476         type string {
40477           tailf:info "WORD;;The UNENCRYPTED (cleartext) shared key";
40478         }
40479       }
40480     }
40481     leaf redirect-list {
40482       tailf:info "Set the access-list used to permit redirection";
40483       description
40484         "Set the access-list used to permit redirection";
40485       type exp-acl-type;
40486     }
40487     leaf snmp-disabled {
40488       tailf:info "Disable SNMP for WCCP GRE Tunnel";
40489       description
40490         "Disable SNMP for WCCP GRE Tunnel";
40491       type empty;
40492     }
40493   }
40494
40495   grouping ip-wccp-grouping {
40496     list wccp-list {
40497       tailf:cli-drop-node-name;
40498       tailf:cli-suppress-mode;
40499       tailf:cli-compact-syntax;
40500       key "id";
40501       leaf id {
40502         type uint8 {
40503           tailf:info "<0-254>;;Dynamically defined service identifier number";
40504           range "0..254";
40505         }
40506       }
40507       uses ip-wccp-group-address-grouping;
40508     }
40509     leaf source-interface {
40510       tailf:info "Set source interface for Router ID";
40511       description
40512         "Set source interface for Router ID";
40513       type string;
40514     }
40515     container web-cache {
40516       tailf:info "Standard web caching service";
40517       description
40518         "Standard web caching service";
40519       uses ip-wccp-group-address-grouping;
40520     }
40521   }
40522
40523   grouping ip-msdp-grouping {
40524     leaf cache-rejected-sa {
40525       tailf:info "Store rejected SAs from all peers";
40526       description
40527         "Store rejected SAs from all peers";
40528       tailf:cli-full-command;
40529       type uint32 {
40530         tailf:info "<1-32766>;;Number of rejected SA entries to cache";
40531         range "1..32766";
40532       }
40533     }
40534     leaf cache-sa-state {
40535       tailf:info "Configure this system to cache SA state";
40536       description
40537         "Configure this system to cache SA state";
40538       tailf:cli-full-command;
40539       type empty;
40540     }
40541     container default-peer {
40542       tailf:info "Default MSDP peer to accept SA messages from";
40543       description
40544         "Default MSDP peer to accept SA messages from";
40545       tailf:cli-compact-syntax;
40546       tailf:cli-sequence-commands;
40547       leaf name-addr {
40548         tailf:cli-drop-node-name;
40549         type union {
40550           type string;
40551           type inet:ipv4-address {
40552             tailf:info "Hostname or A.B.C.D;;Default peer name or address";
40553           }
40554         }
40555       }
40556       leaf prefix-list {
40557         tailf:info "Prefix list";
40558         description
40559           "Prefix list";
40560         tailf:cli-optional-in-sequence;
40561         type string {
40562           tailf:info "WORD;;Prefix list name";
40563         }
40564       }
40565     }
40566     container description {
40567       tailf:info "Peer specific description";
40568       description
40569         "Peer specific description";
40570       tailf:cli-compact-syntax;
40571       tailf:cli-sequence-commands;
40572       leaf name-addr {
40573         tailf:cli-drop-node-name;
40574         type union {
40575           type string;
40576           type inet:ipv4-address {
40577             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40578           }
40579         }
40580       }
40581       leaf description {
40582         tailf:cli-drop-node-name;
40583         tailf:cli-multi-value;
40584         type string {
40585           tailf:info "LINE;;Up to 80 characters describing this peer";
40586         }
40587       }
40588     }
40589     container filter-sa-request {
40590       tailf:info "Filter SA-Requests from peer";
40591       description
40592         "Filter SA-Requests from peer";
40593       tailf:cli-compact-syntax;
40594       tailf:cli-sequence-commands;
40595       leaf name-addr {
40596         tailf:cli-drop-node-name;
40597         type union {
40598           type string;
40599           type inet:ipv4-address {
40600             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40601           }
40602         }
40603       }
40604       leaf list {
40605         tailf:info "Access-list";
40606         description
40607           "Access-list";
40608         tailf:cli-optional-in-sequence;
40609         type std-acl-type;
40610       }
40611     }
40612     container keepalive {
40613       tailf:info "Configure keepalive parameters for a peer";
40614       description
40615         "Configure keepalive parameters for a peer";
40616       tailf:cli-compact-syntax;
40617       tailf:cli-sequence-commands;
40618       leaf name-addr {
40619         tailf:cli-drop-node-name;
40620         type union {
40621           type string;
40622           type inet:ipv4-address {
40623             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40624           }
40625         }
40626       }
40627       leaf keepalive {
40628         tailf:cli-drop-node-name;
40629         description
40630           "Send keepalive period in seconds";
40631         type uint8 {
40632           tailf:info "<1-60>;;Send keepalive period in seconds";
40633           range "1..60";
40634         }
40635       }
40636       leaf max-wait {
40637         tailf:cli-drop-node-name;
40638         description
40639           "Maximum time in seconds to wait for a message";
40640         type uint8 {
40641           tailf:info "<1-75>;;Maximum time in seconds to wait for a message";
40642           range "1..75";
40643         }
40644       }
40645     }
40646     container mesh-group {
40647       tailf:info "Configure an MSDP mesh-group";
40648       description
40649         "Configure an MSDP mesh-group";
40650       tailf:cli-compact-syntax;
40651       tailf:cli-sequence-commands;
40652       leaf name {
40653         tailf:cli-drop-node-name;
40654         type string {
40655           tailf:info "WORD;;Name of mesh-group";
40656         }
40657       }
40658       leaf addr {
40659         tailf:cli-drop-node-name;
40660         type union {
40661           type string;
40662           type inet:ipv4-address {
40663             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40664           }
40665         }
40666       }
40667     }
40668     leaf originator-id {
40669       tailf:info "Configure MSDP Originator ID";
40670       description
40671         "Configure MSDP Originator ID";
40672       tailf:cli-full-command;
40673       type string;
40674     }
40675     container password {
40676       tailf:info "Configure an MSDP password";
40677       description
40678         "Configure an MSDP password";
40679       container peer {
40680         tailf:info "MSDP peer on which the password is to be set";
40681         description
40682           "MSDP peer on which the password is to be set";
40683         tailf:cli-compact-syntax;
40684         tailf:cli-sequence-commands;
40685         leaf addr {
40686           tailf:cli-drop-node-name;
40687           type union {
40688             type string;
40689             type inet:ipv4-address {
40690               tailf:info "Hostname or A.B.C.D;;Peer name or address";
40691             }
40692           }
40693         }
40694         leaf encryption {
40695           tailf:cli-drop-node-name;
40696           tailf:cli-break-sequence-commands;
40697           type uint8 {
40698             tailf:info "<0-7>;;Encryption type (0 to disable encryption, 7 for proprietary)";
40699           }
40700         }
40701         leaf password {
40702           tailf:cli-drop-node-name;
40703           tailf:cli-multi-value;
40704           type string {
40705             tailf:info "LINE;;The password";
40706           }
40707         }
40708       }
40709     }
40710     container peer {
40711       tailf:info "Configure an MSDP peer";
40712       description
40713         "Configure an MSDP peer";
40714       tailf:cli-compact-syntax;
40715       tailf:cli-sequence-commands;
40716       leaf addr {
40717         tailf:cli-drop-node-name;
40718         type union {
40719           type string;
40720           type inet:ipv4-address {
40721             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40722           }
40723         }
40724       }
40725       leaf connect-source {
40726         tailf:info "Configure source address used for MSDP connection";
40727         description
40728           "Configure source address used for MSDP connection";
40729         tailf:cli-break-sequence-commands;
40730         type string;
40731       }
40732       leaf remote-as {
40733         tailf:info "Configured AS number";
40734         description
40735           "Configured AS number";
40736         type uint16 {
40737           tailf:info "<1-65535>;;Autonomous System Number";
40738         }
40739       }
40740     }
40741     container redistribute {
40742       tailf:info "Inject multicast route entries into MSDP";
40743       description
40744         "Inject multicast route entries into MSDP";
40745       tailf:cli-compact-syntax;
40746       leaf asn {
40747         tailf:info "AS access-list";
40748         description
40749           "AS access-list";
40750         type uint16 {
40751           tailf:info "<0-0>;;Allow all ASes<1-500>;;AS path access list number";
40752         }
40753       }
40754       leaf list {
40755         tailf:info "Access-list";
40756         description
40757           "Access-list";
40758         type ext-acl-type;
40759       }
40760       leaf route-map {
40761         tailf:info "Route-map";
40762         description
40763           "Route-map";
40764         type string {
40765           tailf:info "WORD;;Route-map reference";
40766         }
40767       }
40768     }
40769     leaf rpf {
40770       tailf:info "MSDP rpf";
40771       description
40772         "MSDP rpf";
40773       type enumeration {
40774         enum "rfc3618" {
40775           tailf:info "Configure MSDP rfc 3618 RPF rules";
40776         }
40777       }
40778     }
40779     container sa-filter {
40780       tailf:info "Filter SA messages from peer";
40781       description
40782         "Filter SA messages from peer";
40783       container in {
40784         tailf:info "Enable incoming SA filtering";
40785         description
40786           "Enable incoming SA filtering";
40787         tailf:cli-sequence-commands;
40788         tailf:cli-compact-syntax;
40789         leaf addr {
40790           tailf:cli-drop-node-name;
40791           type union {
40792             type string;
40793             type inet:ipv4-address {
40794               tailf:info "Hostname or A.B.C.D;;Peer name or address";
40795             }
40796           }
40797         }
40798         leaf list {
40799           tailf:info "Access list";
40800           description
40801             "Access list";
40802           tailf:cli-break-sequence-commands;
40803           type ext-acl-type;
40804         }
40805         leaf route-map {
40806           tailf:info "Route map";
40807           description
40808             "Route map";
40809           type string {
40810             tailf:info "WORD;;Route-map reference";
40811           }
40812         }
40813         leaf rp-list {
40814           tailf:info "Access-list for originating RP";
40815           description
40816             "Access-list for originating RP";
40817           tailf:cli-full-command;
40818           type union {
40819             type uint16 {
40820               tailf:info "<1-99>;;Access list (standard range)";
40821               range "1..99";
40822             }
40823             type string {
40824               tailf:info "WORD;;IP Named Standard Access list";
40825             }
40826           }
40827         }
40828         leaf rp-route-map {
40829           tailf:info "Route map for originating RP";
40830           description
40831             "Route map for originating RP";
40832           tailf:cli-full-command;
40833           type string {
40834             tailf:info "WORD;;Route-map reference";
40835           }
40836         }
40837       }
40838       container out {
40839         tailf:info "Enable outgoing SA filtering";
40840         description
40841           "Enable outgoing SA filtering";
40842         tailf:cli-sequence-commands;
40843         tailf:cli-compact-syntax;
40844         leaf addr {
40845           tailf:cli-drop-node-name;
40846           type union {
40847             type string;
40848             type inet:ipv4-address {
40849               tailf:info "Hostname or A.B.C.D;;Peer name or address";
40850             }
40851           }
40852         }
40853         leaf list {
40854           tailf:info "Access list";
40855           description
40856             "Access list";
40857           tailf:cli-break-sequence-commands;
40858           type ext-acl-type;
40859         }
40860         leaf route-map {
40861           tailf:info "Route map";
40862           description
40863             "Route map";
40864           type string {
40865             tailf:info "WORD;;Route-map reference";
40866           }
40867         }
40868         leaf rp-list {
40869           tailf:info "Access-list for originating RP";
40870           description
40871             "Access-list for originating RP";
40872           tailf:cli-full-command;
40873           type union {
40874             type uint16 {
40875               tailf:info "<1-99>;;Access list (standard range)";
40876               range "1..99";
40877             }
40878             type string {
40879               tailf:info "WORD;;IP Named Standard Access list";
40880             }
40881           }
40882         }
40883         leaf rp-route-map {
40884           tailf:info "Route map for originating RP";
40885           description
40886             "Route map for originating RP";
40887           tailf:cli-full-command;
40888           type string {
40889             tailf:info "WORD;;Route-map reference";
40890           }
40891         }
40892       }
40893     }
40894     container sa-limit {
40895       tailf:info "Configure SA limit for a peer";
40896       description
40897         "Configure SA limit for a peer";
40898       tailf:cli-compact-syntax;
40899       tailf:cli-sequence-commands;
40900       leaf name-addr {
40901         tailf:cli-drop-node-name;
40902         type union {
40903           type string;
40904           type inet:ipv4-address {
40905             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40906           }
40907         }
40908       }
40909       leaf limit {
40910         tailf:cli-drop-node-name;
40911         description
40912           "Limit of SAs";
40913         type uint32 {
40914           tailf:info "<1-2147483646>;;Limit of SAs";
40915           range "1..2147483646";
40916         }
40917       }
40918     }
40919     container shutdown {
40920       tailf:info "Administratively shutdown MSDP peer";
40921       description
40922         "Administratively shutdown MSDP peer";
40923       leaf name-addr {
40924         tailf:cli-drop-node-name;
40925         type union {
40926           type string;
40927           type inet:ipv4-address {
40928             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40929           }
40930         }
40931       }
40932     }
40933     leaf timer {
40934       tailf:info "MSDP timer";
40935       description
40936         "MSDP timer";
40937       tailf:cli-full-command;
40938       type uint8 {
40939         tailf:info "<1-60>;;Connection retry period";
40940         range "1..60";
40941       }
40942     }
40943     container ttl-threshold {
40944       tailf:info "Configure TTL Threshold for MSDP Peer";
40945       description
40946         "Configure TTL Threshold for MSDP Peer";
40947       tailf:cli-compact-syntax;
40948       tailf:cli-sequence-commands;
40949       leaf name-addr {
40950         tailf:cli-drop-node-name;
40951         type union {
40952           type string;
40953           type inet:ipv4-address {
40954             tailf:info "Hostname or A.B.C.D;;Peer name or address";
40955           }
40956         }
40957       }
40958       leaf threshold {
40959         tailf:cli-drop-node-name;
40960         description
40961           "TTL Threshold Value";
40962         type uint8 {
40963           tailf:info "<0-255>;;TTL Threshold Value";
40964         }
40965       }
40966     }
40967   }
40968
40969   grouping router-lisp-ip-route-import-map-cache-grouping {
40970     leaf route-map {
40971       tailf:info "Route map for route selection filtering";
40972       description
40973         "Route map for route selection filtering";
40974       type string {
40975         tailf:info "WORD;;Route map name";
40976       }
40977     }
40978   }
40979
40980   grouping router-lisp-ip-route-import-database-grouping {
40981     leaf route-map {
40982       tailf:info "Route map for route selection filtering";
40983       description
40984         "Route map for route selection filtering";
40985       tailf:cli-incomplete-command;
40986       type string {
40987         tailf:info "WORD;;Route map name";
40988       }
40989     }
40990     leaf locator-set {
40991       tailf:info "Locator set to use with created database mapping entries";
40992       description
40993         "Locator set to use with created database mapping entries";
40994       tailf:cli-full-command;
40995       type string {
40996         tailf:info "WORD;;Existing locator set name";
40997       }
40998     }
40999   }
41000
41001   grouping router-lisp-ddt-authoritative-grouping {
41002     container delegate {
41003       tailf:info "DDT delegation to a child DDT node or map-server";
41004       description
41005         "DDT delegation to a child DDT node or map-server";
41006       tailf:cli-sequence-commands;
41007       tailf:cli-compact-syntax;
41008       choice instance-id-eid-prefix-choice {
41009         case eid-prefix-case {
41010           leaf eid-prefix {
41011             tailf:cli-drop-node-name;
41012             type union {
41013               type inet:ipv4-prefix {
41014                 tailf:info "A.B.C.D/nn;;IPv4 EID prefix";
41015               }
41016               type inet:ipv6-prefix {
41017                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 EID prefix";
41018               }
41019             }
41020           }
41021         }
41022         case instance-id-case {
41023           leaf instance-id {
41024             tailf:info "EID instance-ID";
41025             description
41026               "EID instance-ID";
41027             type string {
41028               tailf:info "*, instance-id, range;;Entire instance-ID range,id,range";
41029             }
41030           }
41031         }
41032       }
41033       leaf to {
41034         tailf:info "DDT delegation to a child DDT node or map-server";
41035         description
41036           "DDT delegation to a child DDT node or map-server";
41037         type empty;
41038       }
41039       leaf ip-address {
41040         tailf:cli-drop-node-name;
41041         description
41042           "IPv4/6 Child or map-server node locator address";
41043         type union {
41044           type inet:ipv4-address {
41045             tailf:info "A.B.C.D;;IPv4 Child or map-server node locator address";
41046           }
41047           type inet:ipv6-address {
41048             tailf:info "X:X:X:X::X;;IPv6 Child or map-server node locator address";
41049           }
41050         }
41051       }
41052       leaf map-server {
41053         tailf:info "Delegation points to a map-server";
41054         description
41055           "Delegation points to a map-server";
41056         tailf:cli-optional-in-sequence;
41057         type empty;
41058       }
41059     }
41060     leaf map-server-peer {
41061       tailf:info "Peer map-servers that are authoritative for the same EID prefixes";
41062       description
41063         "Peer map-servers that are authoritative for the same EID prefixes";
41064       type union {
41065         type inet:ipv4-address {
41066           tailf:info "A.B.C.D;;IPv4 Peer map-server locator address";
41067         }
41068         type inet:ipv6-address {
41069           tailf:info "X:X:X:X::X;;IPv6 Peer map-server locator address";
41070         }
41071       }
41072     }
41073   }
41074
41075   grouping router-lisp-ip-grouping {
41076     leaf alt-vrf {
41077       tailf:info "Activate LISP-ALT functionality in VRF";
41078       description
41079         "Activate LISP-ALT functionality in VRF";
41080       tailf:cli-full-command;
41081       type string {
41082         tailf:info "WORD;;VRF name";
41083       }
41084     }
41085     container database-mapping {
41086       tailf:info "Address family specific local EID prefixes database configuration";
41087       description
41088         "Address family specific local EID prefixes database configuration";
41089       container limit {
41090         tailf:info "Configures the maximum size of local EID prefixes database";
41091         description
41092           "Configures the maximum size of local EID prefixes database";
41093         tailf:cli-sequence-commands;
41094         tailf:cli-compact-syntax;
41095         leaf dynamic {
41096           tailf:info "Configures the maximum size of dynamic local EID prefixes database";
41097           description
41098             "Configures the maximum size of dynamic local EID prefixes database";
41099           type uint32 {
41100             tailf:info "<1-5000>;;Maximum number of dynamic local EID prefixes database entries";
41101           }
41102         }
41103         leaf warning-threshold {
41104           tailf:info "Send warning message to syslog when the database-mapping dynamic sizereaches this percentage of the limit";
41105           description
41106             "Send warning message to syslog when the database-mapping dynamic sizereaches this percentage of the limit";
41107           tailf:cli-optional-in-sequence;
41108           type uint8 {
41109             tailf:info "<0-100>;;Percentage of database-mapping-limit dynamic";
41110           }
41111         }
41112       }
41113     }
41114     container distance {
41115       tailf:info "Administrative distance for RIB route installation";
41116       description
41117         "Administrative distance for RIB route installation";
41118       leaf alt {
41119         tailf:info "LISP routes installed in the ALT table";
41120         description
41121           "LISP routes installed in the ALT table";
41122         tailf:cli-full-command;
41123         type uint8 {
41124           tailf:info "<1-255>;;Administrative distance for RIB route installation";
41125         }
41126       }
41127       leaf dyn-eid {
41128         tailf:info "LISP installed routes of type dynamic-EID";
41129         description
41130           "LISP installed routes of type dynamic-EID";
41131         tailf:cli-full-command;
41132         type uint8 {
41133           tailf:info "<1-255>;;Administrative distance for RIB route installation";
41134         }
41135       }
41136       leaf site-registrations {
41137         tailf:info "LISP installed routes of type site-registrations";
41138         description
41139           "LISP installed routes of type site-registrations";
41140         tailf:cli-full-command;
41141         type uint8 {
41142           tailf:info "<1-255>;;Administrative distance for RIB route installation";
41143         }
41144       }
41145     }
41146     container etr {
41147       tailf:info "Configures a LISP Egress Tunnel Router (ETR)";
41148       description
41149         "Configures a LISP Egress Tunnel Router (ETR)";
41150       tailf:cli-display-separated;
41151       presence "true";
41152       list map-server {
41153         tailf:info "Configures map server for ETR registration";
41154         description
41155           "Configures map server for ETR registration";
41156         tailf:cli-suppress-mode;
41157         key "ip-addr";
41158         leaf ip-addr {
41159           type union {
41160             type inet:ipv4-address {
41161               tailf:info "A.B.C.D;;IPv4 Address of map resolver";
41162             }
41163             type inet:ipv6-address {
41164               tailf:info "X:X:X:X::X;;IPv6 Address of map resolver";
41165             }
41166           }
41167         }
41168         container key {
41169           tailf:info "Authentication key used with map server";
41170           description
41171             "Authentication key used with map server";
41172           tailf:cli-compact-syntax;
41173           leaf key-0 {
41174             tailf:alt-name "0";
41175             tailf:info "Specifies an UNENCRYPTED password will follow";
41176             description
41177               "The UNENCRYPTED (cleartext) password";
41178             type string;
41179           }
41180           leaf key-6 {
41181             tailf:alt-name "6";
41182             tailf:info "Specifies an ENCRYPTED password will follow";
41183             description
41184               "The ENCRYPTED password";
41185             type string;
41186           }
41187           leaf key-7 {
41188             tailf:alt-name "7";
41189             tailf:info "Specifies a HIDDEN  password will follow";
41190             description
41191               "The HIDDEN password";
41192             type string;
41193           }
41194           leaf pwd {
41195             tailf:info "The UNENCRYPTED (cleartext) password";
41196             description
41197               "The UNENCRYPTED (cleartext) password";
41198             tailf:cli-drop-node-name;
41199             type string;
41200           }
41201         }
41202         leaf proxy-reply {
41203           tailf:info "Request Map-Server to send Map-Replies on behalf of site";
41204           description
41205             "Request Map-Server to send Map-Replies on behalf of site";
41206           tailf:cli-full-command;
41207           type empty;
41208         }
41209       }
41210     }
41211     container itr {
41212       tailf:info "Configures a LISP Ingress Tunnel Router (ITR)";
41213       description
41214         "Configures a LISP Ingress Tunnel Router (ITR)";
41215       tailf:cli-display-separated;
41216       presence "true";
41217       list map-resolver {
41218         tailf:info "Configures map-resolver address for sending Map-Requests";
41219         description
41220           "Configures map-resolver address for sending Map-Requests";
41221         tailf:cli-suppress-mode;
41222         key "ip-addr";
41223         leaf ip-addr {
41224           type union {
41225             type inet:ipv4-address {
41226               tailf:info "A.B.C.D;;IPv4 Address of map resolver";
41227             }
41228             type inet:ipv6-address {
41229               tailf:info "X:X:X:X::X;;IPv6 Address of map resolver";
41230             }
41231           }
41232         }
41233       }
41234     }
41235     container locator {
41236       tailf:info "Locator related configuration";
41237       description
41238         "Locator related configuration";
41239       tailf:display-when "../../../lisp or ../../../lisp-list";
41240       container reachability {
41241         tailf:info "Configuration realted to locator reachability";
41242         description
41243           "Configuration realted to locator reachability";
41244         leaf exclude-default {
41245           tailf:info "If a remote RLOC is reached via the default route, treat it as unreachable";
41246           description
41247             "If a remote RLOC is reached via the default route, treat it as unreachable";
41248           type empty;
41249         }
41250       }
41251     }
41252     container map-cache {
41253       tailf:info "Address family specific map cache configuration";
41254       description
41255         "Address family specific map cache configuration";
41256       leaf site-registration {
41257         tailf:info "Install map cache to map request for site registrations";
41258         description
41259           "Install map cache to map request for site registrations";
41260         type empty;
41261       }
41262     }
41263     container map-cache-limit {
41264       tailf:info "Configures maximum size of map-cache";
41265       description
41266         "Configures maximum size of map-cache";
41267       tailf:cli-sequence-commands;
41268       tailf:cli-compact-syntax;
41269       leaf max-map-cache-entries {
41270         tailf:cli-drop-node-name;
41271         type uint32 {
41272           tailf:info "<0-100000>;;Maximum number of map-cache entries";
41273           range "0..100000";
41274         }
41275       }
41276       leaf reserve-list {
41277         tailf:info "EID-prefixes guaranteed to be stored in map-cache";
41278         description
41279           "EID-prefixes guaranteed to be stored in map-cache";
41280         tailf:cli-break-sequence-commands;
41281         tailf:cli-full-command;
41282         type string {
41283           tailf:info "WORD;;Reference to prefix-list name";
41284         }
41285       }
41286       leaf warning-threshold {
41287         tailf:info "Send warning message to syslog when the map-cache size reaches this percentage of the limit";
41288         description
41289           "Send warning message to syslog when the map-cache size reaches this percentage of the limit";
41290         type uint8 {
41291           tailf:info "<0-100>;;Percentage of map-cache-limit";
41292           range "0..100";
41293         }
41294       }
41295     }
41296     container map-cache-persistent {
41297       tailf:info "Dump map-cache onto flash, making it persistent across reboots";
41298       description
41299         "Dump map-cache onto flash, making it persistent across reboots";
41300       leaf interval {
41301         tailf:info "Interval in minutes of how often the map-cache is saved";
41302         description
41303           "Interval in minutes of how often the map-cache is saved";
41304         type uint16 {
41305           tailf:info "<1-1440>;;Interval in minutes, default 0";
41306           range "1..1440";
41307         }
41308       }
41309     }
41310     leaf map-request-source {
41311       tailf:info "Configures inner header source address in Map-Request message";
41312       description
41313         "Configures inner header source address in Map-Request message";
41314       type inet:ipv4-address {
41315         tailf:info "A.B.C.D;;IPv4 Source address of inner header in Map-Request message";
41316       }
41317     }
41318     container map-resolver {
41319       tailf:info "Configures a LISP Map Resolver (MR)";
41320       description
41321         "Configures a LISP Map Resolver (MR)";
41322       tailf:display-when "../../../lisp or ../../../lisp-list";
41323       presence "true";
41324       container map-request {
41325         tailf:info "Map-Request processing options";
41326         description
41327           "Map-Request processing options";
41328         container validate {
41329           tailf:info "Validation options";
41330           description
41331             "Validation options";
41332           container source {
41333             tailf:info "Influence which source RLOCs map requests are accepted from";
41334             description
41335               "Influence which source RLOCs map requests are accepted from";
41336             tailf:cli-compact-syntax;
41337             leaf list {
41338               tailf:info "Define allowed prefixes using an ip[v6] prefix list";
41339               description
41340                 "Define allowed prefixes using an ip[v6] prefix list";
41341               type empty;
41342             }
41343             leaf registered {
41344               tailf:info "...from RLOCs that register EID-prefixes in the same IID on a co-located MapServer";
41345               description
41346                 "...from RLOCs that register EID-prefixes in the same IID on a co-located MapServer";
41347               type empty;
41348             }
41349             leaf ipv4 {
41350               tailf:info "IPv4 prefixes";
41351               description
41352                 "IPv4 prefixes";
41353               tailf:display-when "../list";
41354               type string {
41355                 tailf:info "WORD;;IPv4 prefix-list name";
41356               }
41357             }
41358             leaf ipv6 {
41359               tailf:info "IPv6 prefixes";
41360               description
41361                 "IPv6 prefixes";
41362               tailf:display-when "../list";
41363               type string {
41364                 tailf:info "WORD;;IPv6 prefix-list name";
41365               }
41366             }
41367           }
41368         }
41369       }
41370     }
41371     container map-server {
41372       tailf:info "Configures a LISP Map Server (MS)";
41373       description
41374         "Configures a LISP Map Server (MS)";
41375       tailf:display-when "../../../lisp or ../../../lisp-list";
41376       presence "true";
41377       container map-register {
41378         tailf:info "Map-Register processing options";
41379         description
41380           "Map-Register processing options";
41381         container validate {
41382           tailf:info "Validation options";
41383           description
41384             "Validation options";
41385           container source {
41386             tailf:info "RLOC Source IP address";
41387             description
41388               "RLOC Source IP address";
41389             leaf allowed-locator {
41390               tailf:info "Against sites' allowed-locators policy";
41391               description
41392                 "Against sites' allowed-locators policy";
41393               type empty;
41394             }
41395           }
41396         }
41397       }
41398     }
41399     container path-mtu-discovery {
41400       tailf:info "Path MTU discovery";
41401       description
41402         "Path MTU discovery";
41403       tailf:cli-compact-syntax;
41404       presence "true";
41405       leaf max {
41406         tailf:info "Upper bound on the path MTU accepted";
41407         description
41408           "Upper bound on the path MTU accepted";
41409         tailf:cli-full-command;
41410         type uint16 {
41411           tailf:info "<68-65535>;;Upper bound on the path MTU accepted";
41412           range "68..65535";
41413         }
41414       }
41415       leaf min {
41416         tailf:info "Lower bound on the path MTU accepted";
41417         description
41418           "Lower bound on the path MTU accepted";
41419         type uint16 {
41420           tailf:info "<68-65535>;;Lower bound on the path MTU accepted";
41421           range "68..65535";
41422         }
41423       }
41424     }
41425     leaf proxy-etr {
41426       tailf:info "Configures a LISP Proxy Engress Tunnel Router (PETR)";
41427       description
41428         "Configures a LISP Proxy Engress Tunnel Router (PETR)";
41429       tailf:cli-full-command;
41430       type empty;
41431     }
41432     leaf-list proxy-itr {
41433       tailf:info "Configures a LISP Proxy Ingress Tunnel Router (PITR)";
41434       description
41435         "Configures a LISP Proxy Ingress Tunnel Router (PITR)";
41436       tailf:cli-list-syntax;
41437       type union {
41438         type inet:ipv4-address {
41439           tailf:info "A.B.C.D;;IPv4 address in ITR-RLOC field of map-request";
41440         }
41441         type inet:ipv6-address {
41442           tailf:info "X:X:X:X::X;;IPv6 address in ITR-RLOC field of map-request";
41443         }
41444       }
41445     }
41446     container route-export {
41447       tailf:info "Export routes into RIB from LISP";
41448       description
41449         "Export routes into RIB from LISP";
41450       leaf site-registration {
41451         tailf:info "Export LISP site registrations to RIB";
41452         description
41453           "Export LISP site registrations to RIB";
41454         type empty;
41455       }
41456     }
41457     container route-import {
41458       tailf:info "Import RIB routes by a routing protocol into LISP";
41459       description
41460         "Import RIB routes by a routing protocol into LISP";
41461       tailf:display-when "../../../../eid-table";
41462       container database {
41463         tailf:info "Use RIB routes to define local EID database entries";
41464         description
41465           "Use RIB routes to define local EID database entries";
41466         list bgp {
41467           tailf:info "Border Gateway Protocol (BGP)";
41468           description
41469             "Border Gateway Protocol (BGP)";
41470           tailf:cli-suppress-mode;
41471           tailf:cli-compact-syntax;
41472           key "id";
41473           leaf id {
41474             type bgp-as-number-type;
41475           }
41476           uses router-lisp-ip-route-import-database-grouping;
41477         }
41478         container connected {
41479           tailf:info "Connected";
41480           description
41481             "Connected";
41482           tailf:cli-compact-syntax;
41483           uses router-lisp-ip-route-import-database-grouping;
41484         }
41485         list eigrp {
41486           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
41487           description
41488             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
41489           tailf:cli-suppress-mode;
41490           tailf:cli-compact-syntax;
41491           key "id";
41492           leaf id {
41493             type uint16 {
41494               tailf:info "<1-65535>;;Autonomous system number";
41495             }
41496           }
41497           uses router-lisp-ip-route-import-database-grouping;
41498         }
41499         list isis {
41500           tailf:info "ISO IS-IS";
41501           description
41502             "ISO IS-IS";
41503           tailf:cli-suppress-mode;
41504           tailf:cli-compact-syntax;
41505           key "id";
41506           leaf id {
41507             type string {
41508               tailf:info "WORD;;Process name";
41509             }
41510           }
41511           uses router-lisp-ip-route-import-database-grouping;
41512         }
41513         container maximum-prefix {
41514           tailf:info "Maximum number of prefixes to pick up from the RIB";
41515           description
41516             "Maximum number of prefixes to pick up from the RIB";
41517           tailf:cli-compact-syntax;
41518           tailf:cli-sequence-commands;
41519           leaf number {
41520             tailf:cli-drop-node-name;
41521             type int32 {
41522               tailf:info "<1-4294967295>;;Maximum number of prefixes";
41523             }
41524           }
41525           choice threshold-warning {
41526             case warning-only-case {
41527               leaf warning-only {
41528                 tailf:info "Only give a warning message and do not limit entries";
41529                 description
41530                   "Only give a warning message and do not limit entries";
41531                 tailf:cli-optional-in-sequence;
41532                 type empty;
41533               }
41534             }
41535             case threshold-case {
41536               leaf threshold {
41537                 tailf:cli-drop-node-name;
41538                 tailf:cli-optional-in-sequence;
41539                 type uint8 {
41540                   tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
41541                   range "1..100";
41542                 }
41543               }
41544             }
41545             case threshold-warning-case {
41546               leaf threshold1 {
41547                 tailf:cli-drop-node-name;
41548                 tailf:cli-optional-in-sequence;
41549                 type uint8 {
41550                   tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
41551                   range "1..100";
41552                 }
41553               }
41554               leaf warning-only1 {
41555                 tailf:alt-name "warning-only";
41556                 tailf:info "Only give a warning message and do not limit entries";
41557                 description
41558                   "Only give a warning message and do not limit entries";
41559                 tailf:cli-optional-in-sequence;
41560                 type empty;
41561               }
41562             }
41563           }
41564         }
41565         list ospf {
41566           tailf:info "Open Shortest Path First (OSPF)";
41567           description
41568             "Open Shortest Path First (OSPF)";
41569           tailf:cli-suppress-mode;
41570           tailf:cli-compact-syntax;
41571           key "id";
41572           leaf id {
41573             type uint16 {
41574               tailf:info "<1-65535>;;Process ID";
41575             }
41576           }
41577           uses router-lisp-ip-route-import-database-grouping;
41578         }
41579         list ospfv3 {
41580           tailf:info "OSPFv3";
41581           description
41582             "OSPFv3";
41583           tailf:cli-suppress-mode;
41584           tailf:cli-compact-syntax;
41585           key "id";
41586           leaf id {
41587             type uint16 {
41588               tailf:info "<1-65535>;;Process ID";
41589             }
41590           }
41591           uses router-lisp-ip-route-import-database-grouping;
41592         }
41593         container rip {
41594           tailf:info "Routing Information Protocol (RIP)";
41595           description
41596             "Routing Information Protocol (RIP)";
41597           tailf:cli-compact-syntax;
41598           uses router-lisp-ip-route-import-database-grouping;
41599         }
41600         container static {
41601           tailf:info "Static routes";
41602           description
41603             "Static routes";
41604           tailf:cli-compact-syntax;
41605           uses router-lisp-ip-route-import-database-grouping;
41606         }
41607       }
41608       container map-cache {
41609         tailf:info "Use RIB routes to define EID address space in map-cache";
41610         description
41611           "Use RIB routes to define EID address space in map-cache";
41612         list bgp {
41613           tailf:info "Border Gateway Protocol (BGP)";
41614           description
41615             "Border Gateway Protocol (BGP)";
41616           tailf:cli-suppress-mode;
41617           key "id";
41618           leaf id {
41619             type bgp-as-number-type;
41620           }
41621           uses router-lisp-ip-route-import-map-cache-grouping;
41622         }
41623         container connected {
41624           tailf:info "Connected";
41625           description
41626             "Connected";
41627           tailf:cli-compact-syntax;
41628           uses router-lisp-ip-route-import-map-cache-grouping;
41629         }
41630         list eigrp {
41631           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
41632           description
41633             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
41634           tailf:cli-suppress-mode;
41635           key "id";
41636           leaf id {
41637             type uint16 {
41638               tailf:info "<1-65535>;;Autonomous system number";
41639             }
41640           }
41641           uses router-lisp-ip-route-import-map-cache-grouping;
41642         }
41643         list isis {
41644           tailf:info "ISO IS-IS";
41645           description
41646             "ISO IS-IS";
41647           tailf:cli-suppress-mode;
41648           key "id";
41649           leaf id {
41650             type string {
41651               tailf:info "WORD;;Process name";
41652             }
41653           }
41654           uses router-lisp-ip-route-import-map-cache-grouping;
41655         }
41656         container maximum-prefix {
41657           tailf:info "Maximum number of prefixes to pick up from the RIB";
41658           description
41659             "Maximum number of prefixes to pick up from the RIB";
41660           tailf:cli-compact-syntax;
41661           tailf:cli-sequence-commands;
41662           leaf number {
41663             tailf:cli-drop-node-name;
41664             type int32 {
41665               tailf:info "<1-4294967295>;;Maximum number of prefixes";
41666             }
41667           }
41668           choice threshold-warning {
41669             case warning-only-case {
41670               leaf warning-only {
41671                 tailf:info "Only give a warning message and do not limit entries";
41672                 description
41673                   "Only give a warning message and do not limit entries";
41674                 tailf:cli-optional-in-sequence;
41675                 type empty;
41676               }
41677             }
41678             case threshold-case {
41679               leaf threshold {
41680                 tailf:cli-drop-node-name;
41681                 tailf:cli-optional-in-sequence;
41682                 type uint8 {
41683                   tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
41684                   range "1..100";
41685                 }
41686               }
41687             }
41688             case threshold-warning-case {
41689               leaf threshold1 {
41690                 tailf:cli-drop-node-name;
41691                 tailf:cli-optional-in-sequence;
41692                 type uint8 {
41693                   tailf:info "<1-100>;;Threshold value (%) at which to generate a warning message";
41694                   range "1..100";
41695                 }
41696               }
41697               leaf warning-only1 {
41698                 tailf:alt-name "warning-only";
41699                 tailf:info "Only give a warning message and do not limit entries";
41700                 description
41701                   "Only give a warning message and do not limit entries";
41702                 tailf:cli-optional-in-sequence;
41703                 type empty;
41704               }
41705             }
41706           }
41707         }
41708         list ospf {
41709           tailf:info "Open Shortest Path First (OSPF)";
41710           description
41711             "Open Shortest Path First (OSPF)";
41712           tailf:cli-suppress-mode;
41713           key "id";
41714           leaf id {
41715             type uint16 {
41716               tailf:info "<1-65535>;;Process ID";
41717             }
41718           }
41719           uses router-lisp-ip-route-import-map-cache-grouping;
41720         }
41721         list ospfv3 {
41722           tailf:info "OSPFv3";
41723           description
41724             "OSPFv3";
41725           tailf:cli-suppress-mode;
41726           key "id";
41727           leaf id {
41728             type uint16 {
41729               tailf:info "<1-65535>;;Process ID";
41730             }
41731           }
41732           uses router-lisp-ip-route-import-map-cache-grouping;
41733         }
41734         container rip {
41735           tailf:info "Routing Information Protocol (RIP)";
41736           description
41737             "Routing Information Protocol (RIP)";
41738           tailf:cli-compact-syntax;
41739           uses router-lisp-ip-route-import-map-cache-grouping;
41740         }
41741         container static {
41742           tailf:info "Static routes";
41743           description
41744             "Static routes";
41745           tailf:cli-compact-syntax;
41746           uses router-lisp-ip-route-import-map-cache-grouping;
41747         }
41748       }
41749     }
41750     leaf sgt {
41751       tailf:info "Enable security group tag propagation in LISP encapsulated traffic";
41752       description
41753         "Enable security group tag propagation in LISP encapsulated traffic";
41754       tailf:cli-full-command;
41755       type empty;
41756     }
41757     container site-registration {
41758       tailf:info "Site registrations configuration for a given instance-id";
41759       description
41760         "Site registrations configuration for a given instance-id";
41761       tailf:cli-sequence-commands;
41762       tailf:cli-compact-syntax;
41763       leaf limit {
41764         tailf:info "Maximum number of site registrations for a given instance-id";
41765         description
41766           "Maximum number of site registrations for a given instance-id";
41767         type uint32 {
41768           tailf:info "<1-4294967295>;;Maximum number of site registrations for a given instance-id";
41769         }
41770       }
41771       leaf warning-threshold {
41772         tailf:info "Warning threshold to issue system logging";
41773         description
41774           "Warning threshold to issue system logging";
41775         tailf:cli-optional-in-sequence;
41776         type uint8 {
41777           tailf:info "<1-100>;;warning threshold";
41778           range "1..100";
41779         }
41780       }
41781     }
41782     container solicit-map-request {
41783       tailf:info "Configure Solicit-Map-Request handling";
41784       description
41785         "Configure Solicit-Map-Request handling";
41786       leaf ignore {
41787         tailf:info "Ignore SMR bit in incoming Map-Requests";
41788         description
41789           "Ignore SMR bit in incoming Map-Requests";
41790         tailf:cli-full-command;
41791         type empty;
41792       }
41793       leaf max-per-entry {
41794         tailf:info "Maximum number of SMRs for addresses under a map-cache entry";
41795         description
41796           "Maximum number of SMRs for addresses under a map-cache entry";
41797         tailf:cli-full-command;
41798         type uint8 {
41799           tailf:info "<1-100>;;Maximum number of SMRs for addresses under a map-cache entry";
41800           range "1..100";
41801         }
41802       }
41803       leaf suppression-time {
41804         tailf:info "How long to suppress repeated SMRs for the same address";
41805         description
41806           "How long to suppress repeated SMRs for the same address";
41807         tailf:cli-full-command;
41808         type uint16 {
41809           tailf:info "<1-600>;;Seconds to suppress repeated SMRs for the same address";
41810           range "1..600";
41811         }
41812       }
41813     }
41814     list use-petr {
41815       tailf:info "Encapsulate to Proxy ETR when matching forward-native entry";
41816       description
41817         "Encapsulate to Proxy ETR when matching forward-native entry";
41818       tailf:cli-suppress-mode;
41819       tailf:cli-sequence-commands;
41820       tailf:cli-compact-syntax;
41821       key "locator-address";
41822       leaf locator-address {
41823         type union {
41824           type inet:ipv4-address {
41825             tailf:info "A.B.C.D;;IPv4 locator address of PETR";
41826           }
41827           type inet:ipv6-address {
41828             tailf:info "X:X:X:X::X;;IPv6 locator address of PETR";
41829           }
41830         }
41831       }
41832       leaf priority {
41833         tailf:info "Configures which Locators from a set are preferred";
41834         description
41835           "Configures which Locators from a set are preferred";
41836         tailf:cli-optional-in-sequence;
41837         type uint8 {
41838           tailf:info "<0-255>;;Lower priority Locator takes preference";
41839         }
41840       }
41841       leaf weight {
41842         tailf:info "Traffic load-spreading among Locators";
41843         description
41844           "Traffic load-spreading among Locators";
41845         tailf:cli-optional-in-sequence;
41846         type uint8 {
41847           tailf:info "<0-100>;;Relative weight of locator";
41848           range "0..100";
41849         }
41850       }
41851     }
41852   }
41853
41854   grouping router-lisp-common-grouping {
41855     container alt {
41856       tailf:info "LISP Alternative Topology, LISP-ALT";
41857       description
41858         "LISP Alternative Topology, LISP-ALT";
41859       tailf:display-when "../../../eid-table";
41860       list summary-route {
41861         tailf:info "Summary route to install into the ALT table";
41862         description
41863           "Summary route to install into the ALT table";
41864         tailf:cli-suppress-mode;
41865         key "eid-prefix";
41866         leaf eid-prefix {
41867           type union {
41868             type inet:ipv4-prefix {
41869               tailf:info "A.B.C.D/nn;;IPv4 Summary EID prefix to install into the ALT table";
41870             }
41871             type inet:ipv6-prefix {
41872               tailf:info "X:X:X:X::X/<0-128>;;IPv6 Summary EID prefix to install into the ALT table";
41873             }
41874           }
41875         }
41876         leaf route-tag {
41877           tailf:info "ALT RIB route tag for EID prefix";
41878           description
41879             "ALT RIB route tag for EID prefix";
41880           type uint32 {
41881             tailf:info "<0-4294967295>;;RIB route tag";
41882           }
41883         }
41884       }
41885     }
41886     container control-packet {
41887       tailf:info "Configure control packet tx option";
41888       description
41889         "Configure control packet tx option";
41890       tailf:display-when "../../lisp or ../../lisp-list";
41891       leaf mtu {
41892         tailf:info "Configure control packet MTU";
41893         description
41894           "Configure control packet MTU";
41895         type uint32 {
41896           tailf:info "<304-10000>;;Control packet MTU, default 1460";
41897           range "304..10000";
41898         }
41899       }
41900     }
41901     container ddt {
41902       tailf:info "Delegated Database Tree (DDT) mapping system";
41903       description
41904         "Delegated Database Tree (DDT) mapping system";
41905       tailf:display-when "../../lisp or ../../lisp-list";
41906       presence "true";
41907       container authoritative {
41908         tailf:info "DDT authoritative prefix";
41909         description
41910           "DDT authoritative prefix";
41911         list instance-id-eid-prefix-list {
41912           tailf:cli-drop-node-name;
41913           tailf:cli-mode-name "config-router-lisp-ddt-auth";
41914           key "instance-id eid-prefix";
41915           leaf instance-id {
41916             tailf:info "EID instance-ID";
41917             description
41918               "EID instance-ID";
41919             tailf:cli-expose-key-name;
41920             type uint32 {
41921               tailf:info "0-16777215;;instance-ID";
41922             }
41923           }
41924           leaf eid-prefix {
41925             type union {
41926               type inet:ipv4-prefix {
41927                 tailf:info "A.B.C.D/nn;;IPv4 EID prefix";
41928               }
41929               type inet:ipv6-prefix {
41930                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 EID prefix";
41931               }
41932             }
41933           }
41934           uses router-lisp-ddt-authoritative-grouping;
41935         }
41936         list instance-id-list {
41937           tailf:cli-drop-node-name;
41938           tailf:cli-mode-name "config-router-lisp-ddt-auth";
41939           key "instance-id";
41940           leaf instance-id {
41941             type string {
41942               tailf:info "*, 0-16777215 * - *;;Entire instance-ID rangeinstance-ID or *-* range";
41943             }
41944           }
41945           uses router-lisp-ddt-authoritative-grouping;
41946         }
41947       }
41948       leaf cache-limit {
41949         tailf:info "DDT resolver cache entry limit";
41950         description
41951           "DDT resolver cache entry limit";
41952         type uint32 {
41953           tailf:info "<1-100000>;;Number of DDT prefixes to allow in cache, default 1000";
41954           range "1..100000";
41955         }
41956       }
41957       leaf root {
41958         tailf:info "DDT root node";
41959         description
41960           "DDT root node";
41961         type union {
41962           type inet:ipv4-address {
41963             tailf:info "A.B.C.D;;IPv4 DDT root node locator";
41964           }
41965           type inet:ipv6-address {
41966             tailf:info "X:X:X:X::X;;IPv6 DDT root node locator";
41967           }
41968         }
41969       }
41970     }
41971     container decapsulation {
41972       tailf:info "Decapsulation behavior (e.g. filters)";
41973       description
41974         "Decapsulation behavior (e.g. filters)";
41975       container filter {
41976         tailf:info "Filters traffic";
41977         description
41978           "Filters traffic";
41979         container rloc {
41980           tailf:info "Filter based on Routing Locator (RLOC) in packet header";
41981           description
41982             "Filter based on Routing Locator (RLOC) in packet header";
41983           container source {
41984             tailf:info "Filters traffic based on RLOC source address";
41985             description
41986               "Filters traffic based on RLOC source address";
41987             tailf:cli-compact-syntax;
41988             leaf locator-set {
41989               tailf:info "Specify (additional) members using a locator set";
41990               description
41991                 "Locator-set Name";
41992               type string;
41993             }
41994             leaf member {
41995               tailf:info "Members learned from map-server";
41996               description
41997                 "Members learned from map-server";
41998               type empty;
41999             }
42000           }
42001         }
42002       }
42003     }
42004     leaf disable-ttl-propagate {
42005       tailf:info "Disable ttl propagation";
42006       description
42007         "Disable ttl propagation";
42008       tailf:cli-full-command;
42009       type empty;
42010     }
42011     leaf dynamic-eid {
42012       tailf:info "Configure a dynamic EID";
42013       description
42014         "Configure a dynamic EID";
42015       tailf:display-when "../../../eid-table";
42016       tailf:cli-full-command;
42017       type string {
42018         tailf:info "WORD;;The name of the dynamic EID";
42019       }
42020     }
42021     container ipv4 {
42022       tailf:info "IPv4 address family";
42023       description
42024         "IPv4 address family";
42025       uses router-lisp-ip-grouping;
42026     }
42027     container ipv6 {
42028       tailf:info "IPv6 address family";
42029       description
42030         "IPv6 address family";
42031       uses router-lisp-ip-grouping;
42032     }
42033     container loc-reach-algorithm {
42034       tailf:info "Configure locator reachability algorithm";
42035       description
42036         "Configure locator reachability algorithm";
42037       container lsb-reports {
42038         tailf:info "Configure data packet LSB report handling";
42039         description
42040           "Configure data packet LSB report handling";
42041         leaf do-not-transmit {
42042           tailf:info "Force the setting of the encapsulation header L bit to zero";
42043           description
42044             "Force the setting of the encapsulation header L bit to zero";
42045           type empty;
42046         }
42047         leaf ignore {
42048           tailf:info "Ignore data packet LSB reports";
42049           description
42050             "Ignore data packet LSB reports";
42051           type empty;
42052         }
42053       }
42054       leaf rloc-probing {
42055         tailf:info "Probe high priority RLOCs with Map-Requests as last resort";
42056         description
42057           "Probe high priority RLOCs with Map-Requests as last resort";
42058         type empty;
42059       }
42060     }
42061     container locator-down {
42062       tailf:info "Manually set locator status to down";
42063       description
42064         "Manually set locator status to down";
42065       tailf:display-when "../../lisp or ../../lisp-list";
42066       leaf address {
42067         description
42068           "IPv4/6 Locator address to be set down";
42069         tailf:cli-drop-node-name;
42070         tailf:cli-full-command;
42071         type union {
42072           type inet:ipv4-address {
42073             tailf:info "A.B.C.D;;IPv4 Locator address to be set down";
42074           }
42075           type inet:ipv6-address {
42076             tailf:info "X:X:X:X::X;;IPv6 Locator address to be set down";
42077           }
42078         }
42079       }
42080       leaf IPv4-interface {
42081         tailf:info "Use IPv4 address of interface as locator";
42082         description
42083           "Use IPv4 address of interface as locator";
42084         tailf:cli-full-command;
42085         type string;
42086       }
42087       leaf IPv6-interface {
42088         tailf:info "Use IPv6 address of interface as locator";
42089         description
42090           "Use IPv6 address of interface as locator";
42091         tailf:cli-full-command;
42092         type string;
42093       }
42094     }
42095     container locator-table {
42096       tailf:info "Specify the RLOC table";
42097       description
42098         "Specify the RLOC table";
42099       tailf:display-when "../../lisp or ../../lisp-list";
42100       leaf vrf-name {
42101         tailf:cli-drop-node-name;
42102         tailf:cli-full-command;
42103         type string {
42104           tailf:info "WORD;;VRF name, default is Default VRF";
42105         }
42106       }
42107       leaf vrf {
42108         tailf:info "VRF name";
42109         description
42110           "VRF name";
42111         type string {
42112           tailf:info "WORD;;VRF name";
42113         }
42114       }
42115     }
42116     container map-request {
42117       tailf:info "Configure map-request handling";
42118       description
42119         "Configure map-request handling";
42120       tailf:display-when "../../lisp or ../../lisp-list";
42121       leaf itr-rlocs {
42122         tailf:info "Configure to use the specified RLOC set as ITR RLOC in map-request";
42123         description
42124           "Configure to use the specified RLOC set as ITR RLOC in map-request";
42125         type string {
42126           tailf:info "WORD;;Existing locator set name";
42127         }
42128       }
42129     }
42130     container map-server {
42131       tailf:info "Map-Server commands";
42132       description
42133         "Map-Server commands";
42134       container rloc {
42135         tailf:info "EID instance RLOC membership";
42136         description
42137           "EID instance RLOC membership";
42138         container members {
42139           tailf:info "EID instance RLOC membership";
42140           description
42141             "EID instance RLOC membership";
42142           leaf distribute {
42143             tailf:info "EID instance RLOC membership distribution";
42144             description
42145               "EID instance RLOC membership distribution";
42146             type empty;
42147           }
42148           container modify-discovered {
42149             tailf:info "Modify the EID instance membership that is automaticallydiscovered from ETR registrations";
42150             description
42151               "Modify the EID instance membership that is automaticallydiscovered from ETR registrations";
42152             tailf:cli-compact-syntax;
42153             tailf:cli-sequence-commands;
42154             leaf operator {
42155               tailf:cli-drop-node-name;
42156               type enumeration {
42157                 enum "add" {
42158                   tailf:info "Add RLOCs defined in locator-set to the discovered membership";
42159                 }
42160                 enum "override" {
42161                   tailf:info "Override discovered members with RLOCs defined in locator-set";
42162                 }
42163               }
42164             }
42165             leaf locator-set {
42166               tailf:info "Locator set from which to get member RLOC addresses";
42167               description
42168                 "Locator set from which to get member RLOC addresses";
42169               type string {
42170                 tailf:info "WORD;;Existing locator set name";
42171               }
42172             }
42173           }
42174         }
42175       }
42176       container site-registration {
42177         tailf:info "Map-server site registration options";
42178         description
42179           "Map-server site registration options";
42180         tailf:display-when "../../../lisp or ../../../lisp-list";
42181         tailf:cli-sequence-commands;
42182         tailf:cli-compact-syntax;
42183         leaf limit {
42184           tailf:info "Maximum number of site registrations as a result of accept-more-specifics";
42185           description
42186             "Maximum number of site registrations as a result of accept-more-specifics";
42187           type uint32 {
42188             tailf:info "<1-4294967295>;;Maximum number of site registrations";
42189           }
42190         }
42191         leaf warning-threshold {
42192           tailf:info "Warning threshold to issue system logging";
42193           description
42194             "Warning threshold to issue system logging";
42195           tailf:cli-optional-in-sequence;
42196           type uint8 {
42197             tailf:info "<1-100>;;warning threshold";
42198             range "1..100";
42199           }
42200         }
42201       }
42202     }
42203     container other-xtr-probe {
42204       tailf:info "Configure parameters for probing of other xTRs in our site";
42205       description
42206         "Configure parameters for probing of other xTRs in our site";
42207       leaf period {
42208         tailf:info "Set period between probes to other xTRs in our site";
42209         description
42210           "Period between probes in seconds";
42211         type uint16 {
42212           range "5..900";
42213         }
42214       }
42215     }
42216     container remote-rloc-probe {
42217       tailf:info "Configure parameters for probing of remote RLOCs";
42218       description
42219         "Configure parameters for probing of remote RLOCs";
42220       leaf on-membership-change {
42221         tailf:info "Trigger probing upon membership changes for remote RLOC";
42222         description
42223           "Trigger probing upon membership changes for remote RLOC";
42224         tailf:cli-full-command;
42225         type empty;
42226       }
42227       leaf on-route-change {
42228         tailf:info "Trigger probing upon routing changes for remote RLOC";
42229         description
42230           "Trigger probing upon routing changes for remote RLOC";
42231         tailf:cli-full-command;
42232         type empty;
42233       }
42234     }
42235   }
42236
42237   grouping router-lisp-grouping {
42238     list locator-set {
42239       tailf:info "Configure a named locator set";
42240       description
42241         "Configure a named locator set";
42242       tailf:cli-mode-name "config-router-lisp-locator-set";
42243       key "name";
42244       leaf name {
42245         type string {
42246           tailf:info "WORD;;The name of the locator set";
42247         }
42248       }
42249       list IPv4-interface {
42250         tailf:info "Use IPv4 address of interface as locator";
42251         description
42252           "Use IPv4 address of interface as locator";
42253         tailf:cli-suppress-mode;
42254         tailf:cli-sequence-commands;
42255         tailf:cli-compact-syntax;
42256         key "name";
42257         leaf name {
42258           type string;
42259         }
42260         leaf priority {
42261           tailf:info "Configures which Locators from a set are preferred";
42262           description
42263             "Configures which Locators from a set are preferred";
42264           tailf:cli-optional-in-sequence;
42265           type uint8 {
42266             tailf:info "<0-255>;;Lower priority Locator takes preference";
42267           }
42268         }
42269         leaf weight {
42270           tailf:info "Traffic load-spreading among Locators";
42271           description
42272             "Traffic load-spreading among Locators";
42273           tailf:cli-optional-in-sequence;
42274           type uint8 {
42275             tailf:info "<0-100>;;Relative weight of locator";
42276             range "0..100";
42277           }
42278         }
42279       }
42280     }
42281     list locator-scope {
42282       tailf:info "Configure a locator scope";
42283       description
42284         "Configure a locator scope";
42285       tailf:cli-mode-name "config-router-lisp-locator-scope";
42286       key "name";
42287       leaf name {
42288         type string {
42289           tailf:info "WORD;;The name of the locator scope";
42290         }
42291       }
42292       leaf-list rloc-prefix {
42293         tailf:info "RLOC prefix to check against ITR RLOC and ETR RLOC";
42294         description
42295           "RLOC prefix to check against ITR RLOC and ETR RLOC";
42296         tailf:cli-list-syntax;
42297         type union {
42298           type inet:ipv4-prefix {
42299             tailf:info "A.B.C.D/nn;;IPv4 RLOC prefix belonging to the scope";
42300           }
42301           type inet:ipv6-prefix {
42302             tailf:info "X:X:X:X::X/<0-128>;;IPv6 RLOC prefix belonging to the scope";
42303           }
42304         }
42305       }
42306       leaf-list rtr-locator-set {
42307         tailf:info "Locator-set of RTR to use in proxy reply for disjoint/cross AF RLOC";
42308         description
42309           "Locator-set of RTR to use in proxy reply for disjoint/cross AF RLOC";
42310         tailf:cli-list-syntax;
42311         type string;
42312       }
42313     }
42314     uses router-lisp-common-grouping;
42315     container eid-table {
42316       tailf:info "Configure an EID instance for a VRF";
42317       description
42318         "Configure an EID instance for a VRF";
42319       list instance-list {
42320         tailf:cli-drop-node-name;
42321         tailf:cli-mode-name "config-router-lisp-eid-table";
42322         key "instance-id";
42323         leaf instance-id {
42324           tailf:cli-expose-key-name;
42325           tailf:info "EID instance-ID";
42326           description
42327             "EID instance-ID";
42328           type uint32 {
42329             tailf:info "<0-16777214>;;Instance-ID";
42330             range "0..16777214";
42331           }
42332         }
42333         leaf vrf-name {
42334           tailf:cli-drop-node-name;
42335           tailf:cli-prefix-key;
42336           type string {
42337             tailf:info "WORD;;VRF name";
42338           }
42339         }
42340         leaf default {
42341           tailf:info "Default VRF";
42342           description
42343             "Default VRF";
42344           tailf:cli-prefix-key;
42345           type empty;
42346         }
42347         leaf vrf {
42348           tailf:cli-prefix-key;
42349           type string {
42350             tailf:info "WORD;;VRF name";
42351           }
42352         }
42353         list database-mapping {
42354           tailf:info "Configures Locator addresses for an ETR";
42355           description
42356             "Configures Locator addresses for an ETR";
42357           tailf:cli-suppress-mode;
42358           key "eid-prefix";
42359           leaf eid-prefix {
42360             type union {
42361               type inet:ipv4-prefix {
42362                 tailf:info "A.B.C.D/nn;;EID-prefix to advertise locators for (max 5000 static prefixes)";
42363               }
42364               type inet:ipv6-prefix {
42365                 tailf:info "X:X:X:X::X/<0-128>;;EID-prefix to advertise locators for (max 5000 static prefixes)";
42366               }
42367             }
42368           }
42369           leaf locator-set {
42370             tailf:info "Use locators defined by locator-set";
42371             description
42372               "Use locators defined by locator-set";
42373             tailf:cli-full-command;
42374             type string {
42375               tailf:info "WORD;;The name of the locator set";
42376             }
42377           }
42378         }
42379         uses router-lisp-common-grouping;
42380         list map-cache {
42381           tailf:info "Configures static EID-to-RLOC mappings for an ITR";
42382           description
42383             "Configures static EID-to-RLOC mappings for an ITR";
42384           tailf:cli-suppress-mode;
42385           key "eid-prefix";
42386           leaf eid-prefix {
42387             type union {
42388               type inet:ipv4-prefix {
42389                 tailf:info "A.B.C.D/nn;;IPv4 EID-prefix for RLOC static mapping";
42390               }
42391               type inet:ipv6-prefix {
42392                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 EID-prefix for RLOC static mapping";
42393               }
42394             }
42395           }
42396           container etr-interface-ip {
42397             tailf:cli-drop-node-name;
42398             tailf:cli-sequence-commands;
42399             tailf:cli-compact-syntax;
42400             leaf etr-interface-ip-address {
42401               tailf:cli-drop-node-name;
42402               type union {
42403                 type inet:ipv4-address {
42404                   tailf:info "A.B.C.D;;IPv4 Address of loopback or other ETR interface";
42405                 }
42406                 type inet:ipv6-address {
42407                   tailf:info "X:X:X:X::X;;IPv6 Address of loopback or other ETR interface";
42408                 }
42409               }
42410             }
42411             leaf priority {
42412               tailf:info "Configures which Locators from a set are preferred";
42413               description
42414                 "Configures which Locators from a set are preferred";
42415               type uint8 {
42416                 tailf:info "<0-255>;;Lower priority Locator takes preference";
42417               }
42418             }
42419             leaf weight {
42420               tailf:info "Traffic load-spreading among Locators";
42421               description
42422                 "Traffic load-spreading among Locators";
42423               type uint8 {
42424                 tailf:info "<0-100>;;Relative weight of locator";
42425                 range "0..100";
42426               }
42427             }
42428           }
42429           leaf drop {
42430             tailf:info "Drop packets that match this map-cache entry";
42431             description
42432               "Drop packets that match this map-cache entry";
42433             tailf:cli-full-command;
42434             type empty;
42435           }
42436           leaf map-request {
42437             tailf:info "Send Map-Request for LISP destination EID";
42438             description
42439               "Send Map-Request for LISP destination EID";
42440             tailf:cli-full-command;
42441             type empty;
42442           }
42443           leaf native-forward {
42444             tailf:info "Natively forward packets that match this map-cache entry";
42445             description
42446               "Natively forward packets that match this map-cache entry";
42447             tailf:cli-full-command;
42448             type empty;
42449           }
42450         }
42451       }
42452     }
42453     container security {
42454       tailf:info "Enable default LISP security and authentication in reply is optional";
42455       description
42456         "Enable default LISP security and authentication in reply is optional";
42457       presence "true";
42458       leaf strong {
42459         tailf:info "Enable default LISP security and authentication in reply is required";
42460         description
42461           "Enable default LISP security and authentication in reply is required";
42462         type empty;
42463       }
42464     }
42465     list site {
42466       tailf:info "Configure a LISP site on a map server (MS)";
42467       description
42468         "Configure a LISP site on a map server (MS)";
42469       tailf:cli-mode-name "config-router-lisp-site";
42470       key "sname";
42471       leaf sname {
42472         tailf:info "The site name";
42473         description
42474           "The site name";
42475         type string;
42476       }
42477       container authentication-key {
42478         tailf:info "Authentication key used by LISP site";
42479         description
42480           "Authentication key used by LISP site";
42481         leaf ak-0 {
42482           tailf:alt-name "0";
42483           tailf:info "Specifies an UNENCRYPTED password will follow";
42484           description
42485             "The UNENCRYPTED (cleartext) password";
42486           type string;
42487         }
42488         leaf ak-6 {
42489           tailf:alt-name "6";
42490           tailf:info "Specifies an ENCRYPTED password will follow";
42491           description
42492             "The ENCRYPTED password";
42493           type string;
42494         }
42495         leaf unc-pwd {
42496           tailf:info "The UNENCRYPTED (cleartext) password";
42497           description
42498             "The UNENCRYPTED (cleartext) password";
42499           tailf:cli-drop-node-name;
42500           type string;
42501         }
42502       }
42503       leaf description {
42504         tailf:info "Provide a description string for the LISP site";
42505         description
42506           "Site description";
42507         tailf:cli-multi-value;
42508         type string;
42509       }
42510       container allowed-locator {
42511         tailf:info "Locator from LISP site";
42512         description
42513           "Locator from LISP site";
42514         leaf ls-ipv4 {
42515           tailf:info "IPv4 locator allowed in registered locator-set";
42516           description
42517             "IPv4 locator allowed in registered locator-set";
42518           tailf:cli-drop-node-name;
42519           type inet:ipv4-address;
42520         }
42521         leaf ls-ipv6 {
42522           tailf:info "IPv6 locator allowed in registered locator-set";
42523           description
42524             "IPv6 locator allowed in registered locator-set";
42525           tailf:cli-drop-node-name;
42526           type inet:ipv6-address;
42527         }
42528         container list {
42529           tailf:info "Prefixes allowed in registerd locator-set";
42530           description
42531             "Prefixes allowed in registerd locator-set";
42532           leaf ipv4 {
42533             tailf:info "IPv4 prefixes allowed in registered locator-set";
42534             description
42535               "IPv4 prefix-list name";
42536             type string;
42537           }
42538           leaf ipv6 {
42539             tailf:info "IPv6 prefixes allowed in registered locator-set";
42540             description
42541               "IPv6 prefix-list name";
42542             type string;
42543           }
42544         }
42545       }
42546       list eid-prefix {
42547         tailf:info "Site EID address prefix";
42548         description
42549           "Site EID address prefix";
42550         tailf:cli-suppress-mode;
42551         tailf:cli-compact-syntax;
42552         key "prefix";
42553         leaf prefix {
42554           type union {
42555             type inet:ipv4-prefix {
42556               tailf:info "A.B.C.D/nn;;IPv4 EID prefix belonging to the SITE";
42557             }
42558             type inet:ipv6-prefix {
42559               tailf:info "X:X:X:X::X/<0-128>;;IPv6 EID prefix belonging to the SITE";
42560             }
42561           }
42562         }
42563         leaf instance-id {
42564           tailf:info "EID instance-ID";
42565           description
42566             "EID instance-ID";
42567           tailf:cli-prefix-key;
42568           type uint32 {
42569             tailf:info "<1-16777214>;;Instance-ID";
42570             range "1..16777214";
42571           }
42572         }
42573         leaf accept-more-specifics {
42574           tailf:info "Accept registrations for more specific EID prefixes";
42575           description
42576             "Accept registrations for more specific EID prefixes";
42577           tailf:cli-full-command;
42578           type empty;
42579         }
42580         leaf route-tag {
42581           tailf:info "RIB route tag for EID prefix";
42582           description
42583             "RIB route tag";
42584           type uint32 {
42585             tailf:info "<0-4294967295>;;RIB route tag";
42586             range "0..4294967295";
42587           }
42588         }
42589       }
42590     }
42591     leaf site-id {
42592       tailf:info "Configure a site-id for this site";
42593       description
42594         "Configure a site-id for this site";
42595       type uint32 {
42596         tailf:info "<1-4294967295>;;site-ID";
42597       }
42598     }
42599     container syslog {
42600       tailf:info "Configure syslog option";
42601       description
42602         "Configure syslog option";
42603       container session {
42604         tailf:info "Enable session syslog";
42605         description
42606           "Enable session syslog";
42607         leaf changes {
42608           tailf:info "Enable session change syslog";
42609           description
42610             "Enable session change syslog";
42611           type empty;
42612         }
42613       }
42614       leaf verbose {
42615         tailf:info "Enable verbose syslog";
42616         description
42617           "Enable verbose syslog";
42618         type empty;
42619       }
42620     }
42621   }
42622
42623   grouping object-group-service-grouping {
42624     leaf protocal-number {
42625       tailf:cli-drop-node-name;
42626       tailf:cli-full-command;
42627       type uint8 {
42628         tailf:info "<0-255>;;An IP protocol number";
42629       }
42630     }
42631     leaf ahp {
42632       tailf:info "Authentication Header Protocol";
42633       description
42634         "Authentication Header Protocol";
42635       tailf:cli-full-command;
42636       type empty;
42637     }
42638     leaf description {
42639       tailf:info "Service object group description";
42640       description
42641         "Service object group description";
42642       tailf:cli-multi-value;
42643       tailf:cli-full-command;
42644       type string {
42645         tailf:info "LINE;;Description of this Object group";
42646       }
42647     }
42648     leaf eigrp {
42649       tailf:info "Cisco's EIGRP routing protocol";
42650       description
42651         "Cisco's EIGRP routing protocol";
42652       tailf:cli-full-command;
42653       type empty;
42654     }
42655     leaf esp {
42656       tailf:info "Encapsulation Security Payload";
42657       description
42658         "Encapsulation Security Payload";
42659       tailf:cli-full-command;
42660       type empty;
42661     }
42662     leaf gre {
42663       tailf:info "Cisco's GRE tunneling";
42664       description
42665         "Cisco's GRE tunneling";
42666       tailf:cli-full-command;
42667       type empty;
42668     }
42669     leaf group-object {
42670       tailf:info "Nested object group";
42671       description
42672         "Nested object group";
42673       type string {
42674         tailf:info "WORD;;Nested object group name";
42675       }
42676     }
42677     container icmp {
42678       tailf:info "Internet Control Message Protocol";
42679       description
42680         "Internet Control Message Protocol";
42681       presence "true";
42682       leaf port-number {
42683         tailf:cli-drop-node-name;
42684         type uint8 {
42685           tailf:info "<0-255>;;Port number";
42686         }
42687       }
42688       leaf alternate-address {
42689         tailf:info "Alternate address";
42690         description
42691           "Alternate address";
42692         tailf:cli-full-command;
42693         type empty;
42694       }
42695       leaf conversion-error {
42696         tailf:info "Datagram conversion";
42697         description
42698           "Datagram conversion";
42699         tailf:cli-full-command;
42700         type empty;
42701       }
42702       leaf echo {
42703         tailf:info "Echo (ping)";
42704         description
42705           "Echo (ping)";
42706         tailf:cli-full-command;
42707         type empty;
42708       }
42709       leaf echo-reply {
42710         tailf:info "Echo reply";
42711         description
42712           "Echo reply";
42713         tailf:cli-full-command;
42714         type empty;
42715       }
42716       leaf information-reply {
42717         tailf:info "Information replies";
42718         description
42719           "Information replies";
42720         tailf:cli-full-command;
42721         type empty;
42722       }
42723       leaf information-request {
42724         tailf:info "Information requests";
42725         description
42726           "Information requests";
42727         tailf:cli-full-command;
42728         type empty;
42729       }
42730       leaf mask-reply {
42731         tailf:info "Mask replies";
42732         description
42733           "Mask replies";
42734         tailf:cli-full-command;
42735         type empty;
42736       }
42737       leaf mask-request {
42738         tailf:info "Mask requests";
42739         description
42740           "Mask requests";
42741         tailf:cli-full-command;
42742         type empty;
42743       }
42744       leaf mobile-redirect {
42745         tailf:info "Mobile host redirect";
42746         description
42747           "Mobile host redirect";
42748         tailf:cli-full-command;
42749         type empty;
42750       }
42751       leaf parameter-problem {
42752         tailf:info "All parameter problems";
42753         description
42754           "All parameter problems";
42755         tailf:cli-full-command;
42756         type empty;
42757       }
42758       leaf redirect {
42759         tailf:info "All redirects";
42760         description
42761           "All redirects";
42762         tailf:cli-full-command;
42763         type empty;
42764       }
42765       leaf router-advertisement {
42766         tailf:info "Router discovery advertisements";
42767         description
42768           "Router discovery advertisements";
42769         tailf:cli-full-command;
42770         type empty;
42771       }
42772       leaf router-solicitation {
42773         tailf:info "Router discovery solicitations";
42774         description
42775           "Router discovery solicitations";
42776         tailf:cli-full-command;
42777         type empty;
42778       }
42779       leaf source-quench {
42780         tailf:info "Source quenches";
42781         description
42782           "Source quenches";
42783         tailf:cli-full-command;
42784         type empty;
42785       }
42786       leaf time-exceeded {
42787         tailf:info "All time exceededs";
42788         description
42789           "All time exceededs";
42790         tailf:cli-full-command;
42791         type empty;
42792       }
42793       leaf timestamp-reply {
42794         tailf:info "Timestamp replies";
42795         description
42796           "Timestamp replies";
42797         tailf:cli-full-command;
42798         type empty;
42799       }
42800       leaf timestamp-request {
42801         tailf:info "Timestamp requests";
42802         description
42803           "Timestamp requests";
42804         tailf:cli-full-command;
42805         type empty;
42806       }
42807       leaf traceroute {
42808         tailf:info "Traceroute";
42809         description
42810           "Traceroute";
42811         tailf:cli-full-command;
42812         type empty;
42813       }
42814       leaf unreachable {
42815         tailf:info "All unreachables";
42816         description
42817           "All unreachables";
42818         tailf:cli-full-command;
42819         type empty;
42820       }
42821     }
42822     leaf igmp {
42823       tailf:info "Internet Gateway Message Protocol";
42824       description
42825         "Internet Gateway Message Protocol";
42826       tailf:cli-full-command;
42827       type empty;
42828     }
42829     leaf ip {
42830       tailf:info "Any Internet Protocol";
42831       description
42832         "Any Internet Protocol";
42833       tailf:cli-full-command;
42834       type empty;
42835     }
42836     leaf ipinip {
42837       tailf:info "IP in IP tunneling";
42838       description
42839         "IP in IP tunneling";
42840       tailf:cli-full-command;
42841       type empty;
42842     }
42843     leaf nos {
42844       tailf:info "KA9Q NOS compatible IP over IP tunneling";
42845       description
42846         "KA9Q NOS compatible IP over IP tunneling";
42847       tailf:cli-full-command;
42848       type empty;
42849     }
42850     leaf ospf {
42851       tailf:info "OSPF routing protocol";
42852       description
42853         "OSPF routing protocol";
42854       tailf:cli-full-command;
42855       type empty;
42856     }
42857     leaf pcp {
42858       tailf:info "Payload Compression Protocol";
42859       description
42860         "Payload Compression Protocol";
42861       tailf:cli-full-command;
42862       type empty;
42863     }
42864     leaf pim {
42865       tailf:info "Protocol Independent Multicast";
42866       description
42867         "Protocol Independent Multicast";
42868       tailf:cli-full-command;
42869       type empty;
42870     }
42871     container tcp {
42872       tailf:info "Transmission Control Protocol";
42873       description
42874         "Transmission Control Protocol";
42875       presence "true";
42876       list tcp-port-list {
42877         tailf:cli-drop-node-name;
42878         tailf:cli-suppress-mode;
42879         tailf:cli-compact-syntax;
42880         key "tcp-port";
42881         leaf operator {
42882           tailf:cli-drop-node-name;
42883           tailf:cli-prefix-key;
42884           type enumeration {
42885             enum "eq" {
42886               tailf:info "Match only packets on a given port number";
42887             }
42888             enum "gt" {
42889               tailf:info "Match only packets with a greater port number";
42890             }
42891             enum "lt" {
42892               tailf:info "Match only packets with a lower port number";
42893             }
42894             enum "range" {
42895               tailf:info "Match only packets in the range of port numbers";
42896             }
42897           }
42898         }
42899         leaf tcp-port {
42900           type acl-tcp-port-type;
42901         }
42902         leaf max-tcp-port {
42903           tailf:cli-drop-node-name;
42904           type acl-tcp-port-type;
42905         }
42906       }
42907     }
42908     container tcp-udp {
42909       tailf:info "TCP or UDP protocol";
42910       description
42911         "TCP or UDP protocol";
42912       presence "true";
42913       list udp-port-list {
42914         tailf:cli-drop-node-name;
42915         tailf:cli-suppress-mode;
42916         tailf:cli-compact-syntax;
42917         key "udp-port";
42918         leaf operator {
42919           tailf:cli-prefix-key;
42920           tailf:cli-drop-node-name;
42921           type enumeration {
42922             enum "eq" {
42923               tailf:info "Match only packets on a given port number";
42924             }
42925             enum "gt" {
42926               tailf:info "Match only packets with a greater port number";
42927             }
42928             enum "lt" {
42929               tailf:info "Match only packets with a lower port number";
42930             }
42931             enum "range" {
42932               tailf:info "Match only packets in the range of port numbers";
42933             }
42934           }
42935         }
42936         leaf udp-port {
42937           type acl-udp-port-type;
42938         }
42939         leaf max-udp-port {
42940           tailf:cli-drop-node-name;
42941           type acl-udp-port-type;
42942         }
42943       }
42944     }
42945     container udp {
42946       tailf:info "User Datagram Protocol";
42947       description
42948         "User Datagram Protocol";
42949       presence "true";
42950       list udp-port-list {
42951         tailf:cli-drop-node-name;
42952         tailf:cli-suppress-mode;
42953         tailf:cli-compact-syntax;
42954         key "udp-port";
42955         leaf operator {
42956           tailf:cli-prefix-key;
42957           tailf:cli-drop-node-name;
42958           type enumeration {
42959             enum "eq" {
42960               tailf:info "Match only packets on a given port number";
42961             }
42962             enum "gt" {
42963               tailf:info "Match only packets with a greater port number";
42964             }
42965             enum "lt" {
42966               tailf:info "Match only packets with a lower port number";
42967             }
42968             enum "range" {
42969               tailf:info "Match only packets in the range of port numbers";
42970             }
42971           }
42972         }
42973         leaf udp-port {
42974           type acl-udp-port-type;
42975         }
42976         leaf max-udp-port {
42977           tailf:cli-drop-node-name;
42978           type acl-udp-port-type;
42979         }
42980       }
42981     }
42982   }
42983
42984   container native {
42985     tailf:cli-drop-node-name;
42986     leaf version {
42987       tailf:info "Version";
42988       description
42989         "Version";
42990       type string {
42991         tailf:info "WORD;;Version number";
42992       }
42993     }
42994     leaf boot-start-marker {
42995       type empty;
42996     }
42997     container boot {
42998       tailf:info "Modify system boot parameters";
42999       description
43000         "Modify system boot parameters";
43001       container system {
43002         tailf:info "System image file";
43003         description
43004           "System image file";
43005         tailf:cli-compact-syntax;
43006         leaf way {
43007           description
43008             "How to get the system image";
43009           tailf:cli-drop-node-name;
43010           type enumeration {
43011             enum "flash" {
43012               tailf:info "Boot from flash memory";
43013             }
43014             enum "tftp" {
43015               tailf:info "Boot from a tftp server";
43016             }
43017             enum "ftp" {
43018               tailf:info "Boot from a server via ftp";
43019             }
43020             enum "mop" {
43021               tailf:info "Boot from a Decnet MOP server";
43022             }
43023             enum "rcp" {
43024               tailf:info "Boot from a server via rcp";
43025             }
43026             enum "rom" {
43027               tailf:info "Boot from rom";
43028             }
43029           }
43030         }
43031         leaf file {
43032           tailf:cli-drop-node-name;
43033           type string {
43034             tailf:info "WORD;;filename or URL";
43035           }
43036         }
43037         leaf hostname {
43038           tailf:cli-drop-node-name;
43039           description
43040             "Hostname or A.B.C.D  Address from which to download the file";
43041           when "../way = 'tftp' or ../way = 'ftp' or ../way = 'rcp'";
43042           type union {
43043             type string;
43044             type inet:ipv4-address {
43045               tailf:info "Hostname or A.B.C.D;;Address from which to download the file";
43046             }
43047           }
43048         }
43049         leaf interface {
43050           tailf:cli-drop-node-name;
43051           description
43052             "Interface name";
43053           when "../way = 'mop'";
43054           type string;
43055         }
43056       }
43057     }
43058     leaf boot-end-marker {
43059       type empty;
43060     }
43061     container hw-module {
43062       tailf:info "Control of individual components in the system";
43063       description
43064         "Control of individual components in the system";
43065       container uplink {
43066         tailf:info "Uplink control";
43067         description
43068           "Uplink control";
43069         leaf select {
43070           tailf:info "Select uplink interface";
43071           description
43072             "Select uplink interface";
43073           type string;
43074         }
43075         leaf mode {
43076           tailf:info "Uplink mode";
43077           description
43078             "Uplink mode";
43079           type enumeration {
43080             enum "shared-backplane" {
43081               tailf:info "shared-backplane";
43082             }
43083           }
43084         }
43085       }
43086       leaf sm {
43087         type uint8;
43088       }
43089       leaf pvdm {
43090         type string;
43091       }
43092     }
43093     container module {
43094       tailf:info "Module";
43095       description
43096         "Module";
43097       container provision {
43098         tailf:info "Configure module provision status";
43099         description
43100           "Configure module provision status";
43101         list switch {
43102           key "number";
43103           leaf number {
43104             type uint8;
43105           }
43106           container chassis {
43107             tailf:cli-drop-node-name;
43108             tailf:cli-sequence-commands;
43109             tailf:cli-compact-syntax;
43110             leaf chassis-type {
43111               type uint32;
43112             }
43113             leaf base-mac {
43114               type string;
43115             }
43116           }
43117           list slot {
43118             tailf:cli-suppress-mode;
43119             key "number";
43120             leaf number {
43121               type uint8;
43122             }
43123             leaf slot-type {
43124               type uint32;
43125             }
43126             leaf base-mac {
43127               type string;
43128             }
43129           }
43130         }
43131       }
43132     }
43133     list domain {
43134       tailf:info "Domain Configuration Commands";
43135       description
43136         "Domain Configuration Commands";
43137       tailf:cli-mode-name "config-domain";
43138       key "name";
43139       leaf name {
43140         type string {
43141           tailf:info "WORD;;Domain Name";
43142         }
43143       }
43144       list vrf {
43145         tailf:info "Specify vrf for domain";
43146         description
43147           "Specify vrf for domain";
43148         tailf:cli-mode-name "config-domain-vrf";
43149         key "name";
43150         leaf name {
43151           type string {
43152             tailf:info "WORD;;VRF Name";
43153           }
43154         }
43155         container border {
43156           tailf:info "Enter border router configuration submode";
43157           description
43158             "Enter border router configuration submode";
43159           tailf:cli-add-mode;
43160           tailf:cli-mode-name "config-domain-vrf-br";
43161           container source-interface {
43162             tailf:info "Source Interface for border";
43163             description
43164               "Source Interface for border";
43165             leaf Loopback {
43166               tailf:info "Loopback interface";
43167               description
43168                 "Loopback interface";
43169               tailf:cli-allow-join-with-value {
43170                 tailf:cli-display-joined;
43171               }
43172               type uint32 {
43173                 tailf:info "<0-2147483647>;;Loopback interface number";
43174               }
43175             }
43176           }
43177           leaf master {
43178             tailf:info "Specify IP address of Domain master controller";
43179             description
43180               "Specify IP address of Domain master controller";
43181             type union {
43182               type inet:ipv4-address {
43183                 tailf:info "A.B.C.D;;IP address of Domain master controller";
43184               }
43185               type enumeration {
43186                 enum "local" {
43187                   tailf:info "Local Domain master controller";
43188                 }
43189               }
43190             }
43191           }
43192           container password {
43193             tailf:info "MD5 password to be used with MC";
43194             description
43195               "MD5 password to be used with MC";
43196             tailf:cli-compact-syntax;
43197             leaf encryption {
43198               tailf:cli-drop-node-name;
43199               type enumeration {
43200                 enum "0" {
43201                   tailf:info "Specifies an UNENCRYPTED password will follow";
43202                 }
43203                 enum "7" {
43204                   tailf:info "Specifies HIDDEN password will follow";
43205                 }
43206               }
43207             }
43208             leaf clear-key {
43209               tailf:cli-drop-node-name;
43210               tailf:cli-full-command;
43211               type string {
43212                 tailf:info "WORD;;The UNENCRYPTED (cleartext) line password";
43213               }
43214             }
43215           }
43216         }
43217         container master {
43218           tailf:info "Enter master controller configuration submode";
43219           description
43220             "Enter master controller configuration submode";
43221           tailf:cli-add-mode;
43222           tailf:cli-mode-name "config-domain-vrf-mc";
43223           choice master-type {
43224             case branch {
43225               leaf branch {
43226                 tailf:info "Set master type as branch hub";
43227                 description
43228                   "Set master type as branch hub";
43229                 tailf:cli-hide-in-submode;
43230                 type empty;
43231               }
43232             }
43233             case hub {
43234               leaf hub {
43235                 tailf:info "Set master type as hub";
43236                 description
43237                   "Set master type as hub";
43238                 tailf:cli-hide-in-submode;
43239                 type empty;
43240               }
43241             }
43242             case transit {
43243               leaf transit {
43244                 tailf:info "Set master type as transit";
43245                 description
43246                   "Set master type as transit";
43247                 tailf:cli-hide-in-submode;
43248                 type empty;
43249               }
43250             }
43251           }
43252           container advanced {
43253             tailf:info "Advanced configuration submode";
43254             description
43255               "Advanced configuration submode";
43256             tailf:cli-add-mode;
43257             tailf:cli-mode-name "config-domain-vrf-mc-advanced";
43258             leaf byte-loss-threshold {
43259               tailf:info "Specify minimum byte loss calculation threshold";
43260               description
43261                 "Specify minimum byte loss calculation threshold";
43262               tailf:cli-full-command;
43263               type uint16 {
43264                 tailf:info "<0-5600>;;Specify minimum byte loss calculation threshold";
43265                 range "0..5600";
43266               }
43267             }
43268             leaf channel-unreachable-timer {
43269               tailf:info "Unreach interval detection";
43270               description
43271                 "Unreach interval detection";
43272               tailf:cli-full-command;
43273               type uint16 {
43274                 tailf:info "<1-65535>;;Specify new timer interval value in seconds";
43275                 range "1..65535";
43276               }
43277             }
43278             leaf load-sharing {
43279               tailf:info "Enable load-sharing";
43280               description
43281                 "Enable load-sharing";
43282               tailf:cli-full-command;
43283               type empty;
43284             }
43285             leaf minimum-mask-length {
43286               tailf:info "Specify minimum mask length";
43287               description
43288                 "Specify minimum mask length";
43289               tailf:cli-full-command;
43290               type uint8 {
43291                 tailf:info "<1-32>;;Specify minimum mask length";
43292                 range "1..32";
43293               }
43294             }
43295             leaf mitigation-mode {
43296               tailf:info "Enable brownout detection in domain";
43297               description
43298                 "Enable brownout detection in domain";
43299               tailf:cli-full-command;
43300               type enumeration {
43301                 enum "aggressive" {
43302                   tailf:info "Aggressive brownout mode";
43303                 }
43304               }
43305             }
43306             leaf packet-loss-threshold {
43307               tailf:info "Specify minimum packet loss calculation threshold";
43308               description
43309                 "Specify minimum packet loss calculation threshold";
43310               tailf:cli-full-command;
43311               type uint8 {
43312                 tailf:info "<0-100>;;Specify minimum packet loss calculation threshold";
43313                 range "1..100";
43314               }
43315             }
43316             container smart-probes {
43317               tailf:info "Smart probes configuration";
43318               description
43319                 "Smart probes configuration";
43320               leaf destination-port {
43321                 tailf:info "Specify smart probes destination port number";
43322                 description
43323                   "Specify smart probes destination port number";
43324                 tailf:cli-full-command;
43325                 type uint16 {
43326                   tailf:info "<1-65535>;;Specify smart probe port number";
43327                   range "1..65535";
43328                 }
43329               }
43330               leaf source-port {
43331                 tailf:info "Specify smart probes source port number";
43332                 description
43333                   "Specify smart probes source port number";
43334                 tailf:cli-full-command;
43335                 type uint16 {
43336                   tailf:info "<1-65535>;;Specify smart probe port number";
43337                   range "1..65535";
43338                 }
43339               }
43340             }
43341             container syslog {
43342               tailf:info "Specify syslog minimim time between tca";
43343               description
43344                 "Specify syslog minimim time between tca";
43345               leaf tca-time-min {
43346                 tailf:info "Specify time between syslog tcas in seconds";
43347                 description
43348                   "Specify time between syslog tcas in seconds";
43349                 type uint32 {
43350                   tailf:info "<30-36000>;;Specify minimum wait between tca syslogs in seconds";
43351                   range "30..36000";
43352                 }
43353               }
43354             }
43355             container tcp {
43356               tailf:info "Specify tcp port numbers for mc-br communication";
43357               description
43358                 "Specify tcp port numbers for mc-br communication";
43359               leaf mc-port {
43360                 tailf:info "Specify tcp MC self port for mc-br communication";
43361                 description
43362                   "Specify tcp MC self port for mc-br communication";
43363                 type uint16 {
43364                   tailf:info "<1-65535>;;Specify tcp port number";
43365                   range "1..65535";
43366                 }
43367               }
43368             }
43369             leaf threshold-variance {
43370               tailf:info "Policy decision Threshold variance";
43371               description
43372                 "Policy decision Threshold variance";
43373               tailf:cli-full-command;
43374               type uint8 {
43375                 tailf:info "<0-100>;;Specify percentage of tolerance";
43376                 range "0..100";
43377               }
43378             }
43379             container traffic-class-ageout-timer {
43380               tailf:info "Traffic-class DB age timer";
43381               description
43382                 "Traffic-class DB age timer";
43383               tailf:cli-sequence-commands;
43384               tailf:cli-compact-syntax;
43385               leaf interval {
43386                 tailf:cli-drop-node-name;
43387                 description
43388                   "Specify new timer interval value mins/hours";
43389                 type uint16 {
43390                   tailf:info "<5-65535>;;Specify new timer interval value mins/hours";
43391                   range "5..65535";
43392                 }
43393               }
43394               leaf interval-unit {
43395                 tailf:cli-drop-node-name;
43396                 type enumeration {
43397                   enum "hours" {
43398                     tailf:info "Specified new timer interval in hours";
43399                   }
43400                   enum "minutes" {
43401                     tailf:info "Specified new timer interval in minutes";
43402                   }
43403                 }
43404               }
43405             }
43406             leaf transit-site-affinity {
43407               tailf:info "Enable Transit Site Affinity";
43408               description
43409                 "Enable Transit Site Affinity";
43410               tailf:cli-full-command;
43411               type empty;
43412             }
43413           }
43414           container collector {
43415             tailf:info "NMS/v9 collector configuration";
43416             description
43417               "NMS/v9 collector configuration";
43418             tailf:cli-sequence-commands;
43419             tailf:cli-compact-syntax;
43420             leaf ip {
43421               tailf:cli-drop-node-name;
43422               type inet:ipv4-address {
43423                 tailf:info "A.B.C.D;;IP address of NMS/v9 collector";
43424               }
43425             }
43426             leaf port {
43427               tailf:info "Specify collector port number";
43428               description
43429                 "Specify collector port number";
43430               tailf:cli-optional-in-sequence;
43431               type uint16 {
43432                 tailf:info "<1-65535>;;Specify collector port number";
43433               }
43434             }
43435           }
43436           container enterprise-prefix {
43437             tailf:info "Enterprise prefix configuration";
43438             description
43439               "Enterprise prefix configuration";
43440             leaf prefix-list {
43441               tailf:info "Specify prefix-list with static site targets";
43442               description
43443                 "Specify prefix-list with static site targets";
43444               type string {
43445                 tailf:info "WORD;;prefix-list containing list of site targets";
43446               }
43447             }
43448           }
43449           container load-balance {
43450             tailf:info "load balance non-policy traffic";
43451             description
43452               "load balance non-policy traffic";
43453             presence "true";
43454             leaf advanced {
43455               tailf:info "Load balancing configuration mode";
43456               description
43457                 "Load balancing configuration mode";
43458               type empty;
43459             }
43460           }
43461           container password {
43462             tailf:info "MD5 password to be used with BRs";
43463             description
43464               "MD5 password to be used with BRs";
43465             tailf:cli-compact-syntax;
43466             leaf encryption {
43467               tailf:cli-drop-node-name;
43468               type enumeration {
43469                 enum "0" {
43470                   tailf:info "Specifies an UNENCRYPTED password will follow";
43471                 }
43472                 enum "7" {
43473                   tailf:info "Specifies HIDDEN password will follow";
43474                 }
43475               }
43476             }
43477             leaf clear-key {
43478               tailf:cli-drop-node-name;
43479               tailf:cli-full-command;
43480               type string {
43481                 tailf:info "WORD;;The UNENCRYPTED (cleartext) line password";
43482               }
43483             }
43484           }
43485           container site-prefixes {
43486             tailf:info "site-prefixes configuration";
43487             description
43488               "site-prefixes configuration";
43489             leaf prefix-list {
43490               tailf:info "Specify prefix-list with static site targets";
43491               description
43492                 "Specify prefix-list with static site targets";
43493               type string {
43494                 tailf:info "WORD;;prefix-list containing list of site targets";
43495               }
43496             }
43497           }
43498           container source-interface {
43499             tailf:info "Source Interface for master controller";
43500             description
43501               "Source Interface for master controller";
43502             leaf Loopback {
43503               tailf:info "Loopback interface";
43504               description
43505                 "Loopback interface";
43506               tailf:cli-allow-join-with-value {
43507                 tailf:cli-display-joined;
43508               }
43509               type uint32 {
43510                 tailf:info "<0-2147483647>;;Loopback interface number";
43511               }
43512             }
43513           }
43514           list class {
43515             tailf:info "Create domain class and enter domain class command mode";
43516             description
43517               "Create domain class and enter domain class command mode";
43518             tailf:cli-mode-name "config-domain-vrf-mc-class";
43519             key "name sequence";
43520             leaf name {
43521               type string {
43522                 tailf:info "WORD;;domain class name";
43523               }
43524             }
43525             leaf sequence {
43526               tailf:info "Set the Sequence for the class";
43527               description
43528                 "Set the Sequence for the class";
43529               tailf:cli-expose-key-name;
43530               type uint16 {
43531                 tailf:info "<1-65535>;;Sequence number for the class";
43532               }
43533             }
43534             container match {
43535               tailf:info "Specify the applications the policy applies to";
43536               description
43537                 "Specify the applications the policy applies to";
43538               list dscp {
43539                 tailf:info "specify DSCP";
43540                 description
43541                   "specify DSCP";
43542                 tailf:cli-suppress-mode;
43543                 key "value";
43544                 leaf value {
43545                   type dscp-type;
43546                 }
43547                 leaf policy {
43548                   tailf:info "Specify the policy (user defined/predefined)";
43549                   description
43550                     "Specify the policy (user defined/predefined)";
43551                   type enumeration {
43552                     enum "best-effort" {
43553                       tailf:info "domain policy type best effort";
43554                     }
43555                     enum "bulk-data" {
43556                       tailf:info "domain policy type bulk data";
43557                     }
43558                     enum "custom" {
43559                       tailf:info "custom user-defined policy";
43560                     }
43561                     enum "low-latency-data" {
43562                       tailf:info "domain policy type low latency data";
43563                     }
43564                     enum "real-time-video" {
43565                       tailf:info "domain policy type real-time-video";
43566                     }
43567                     enum "scavenger" {
43568                       tailf:info "domain policy type scavenger";
43569                     }
43570                     enum "voice" {
43571                       tailf:info "domain policy type voice";
43572                     }
43573                   }
43574                 }
43575               }
43576             }
43577             container path-preference {
43578               tailf:info "Specify the preferred provider";
43579               description
43580                 "Specify the preferred provider";
43581               tailf:cli-sequence-commands;
43582               tailf:cli-compact-syntax;
43583               leaf-list primary {
43584                 description
43585                   "Primary service provider";
43586                 tailf:cli-drop-node-name;
43587                 tailf:cli-flat-list-syntax;
43588                 type string {
43589                   tailf:info "WORD;;Primary service provider";
43590                 }
43591               }
43592               leaf-list fallback {
43593                 tailf:info "Specify the fallback provider";
43594                 description
43595                   "Specify the fallback provider";
43596                 tailf:cli-flat-list-syntax;
43597                 type string {
43598                   tailf:info "WORD;;Fallback service provider";
43599                 }
43600               }
43601             }
43602           }
43603           leaf hub-ip {
43604             tailf:alt-name "hub";
43605             type inet:ipv4-address;
43606           }
43607         }
43608       }
43609     }
43610     container parser {
43611       tailf:info "Configure parser";
43612       description
43613         "Configure parser";
43614       container config {
43615         tailf:info "Configure config generation";
43616         description
43617           "Configure config generation";
43618         leaf cache {
43619           tailf:info "Cache the configuration";
43620           description
43621             "Cache the configuration";
43622           type enumeration {
43623             enum "interface" {
43624               tailf:info "Enable caching interface configs";
43625             }
43626           }
43627         }
43628         leaf partition {
43629           tailf:info "Enable configuration Partitioning";
43630           description
43631             "Enable configuration Partitioning";
43632           tailf:cli-full-command;
43633           type empty;
43634         }
43635       }
43636     }
43637     container service {
43638       tailf:info "Modify use of network based services";
43639       description
43640         "Modify use of network based services";
43641       leaf internal {
43642         type empty;
43643       }
43644       container pad {
43645         tailf:info "Enable PAD commands";
43646         description
43647           "Enable PAD commands";
43648         tailf:cli-show-no;
43649         presence "true";
43650         leaf cmns {
43651           tailf:info "Enable PAD over CMNS connections";
43652           description
43653             "Enable PAD over CMNS connections";
43654           type empty;
43655         }
43656         leaf from-xot {
43657           tailf:info "Accept XOT to PAD connections";
43658           description
43659             "Accept XOT to PAD connections";
43660           type empty;
43661         }
43662         leaf to-xot {
43663           tailf:info "Allow outgoing PAD over XOT connections";
43664           description
43665             "Allow outgoing PAD over XOT connections";
43666           type empty;
43667         }
43668       }
43669       leaf password-encryption {
43670         tailf:info "Encrypt system passwords";
43671         description
43672           "Encrypt system passwords";
43673         tailf:cli-full-command;
43674         type empty;
43675       }
43676       container timestamps {
43677         tailf:info "Timestamp debug/log messages";
43678         description
43679           "Timestamp debug/log messages";
43680         tailf:cli-compact-syntax;
43681         tailf:cli-delete-when-empty;
43682         presence "true";
43683         container debug {
43684           tailf:info "Timestamp debug messages";
43685           description
43686             "Timestamp debug messages";
43687           container datetime {
43688             tailf:info "Timestamp with date and time";
43689             description
43690               "Timestamp with date and time";
43691             tailf:cli-compact-syntax;
43692             tailf:cli-delete-when-empty;
43693             presence "true";
43694             leaf msec {
43695               tailf:info "Include milliseconds in timestamp";
43696               description
43697                 "Include milliseconds in timestamp";
43698               type empty;
43699             }
43700             leaf localtime {
43701               tailf:info "Use local time zone for timestamps";
43702               description
43703                 "Use local time zone for timestamps";
43704               type empty;
43705             }
43706             leaf show-timezone {
43707               tailf:info "Add time zone information to timestamp";
43708               description
43709                 "Add time zone information to timestamp";
43710               type empty;
43711             }
43712             leaf year {
43713               tailf:info "Include year in timestamp";
43714               description
43715                 "Include year in timestamp";
43716               type empty;
43717             }
43718           }
43719           leaf uptime {
43720             tailf:info "Timestamp with system uptime";
43721             description
43722               "Timestamp with system uptime";
43723             type empty;
43724           }
43725         }
43726         container log {
43727           tailf:info "Timestamp log messages";
43728           description
43729             "Timestamp log messages";
43730           container datetime {
43731             tailf:info "Timestamp with date and time";
43732             description
43733               "Timestamp with date and time";
43734             tailf:cli-compact-syntax;
43735             tailf:cli-delete-when-empty;
43736             presence "true";
43737             leaf msec {
43738               tailf:info "Include milliseconds in timestamp";
43739               description
43740                 "Include milliseconds in timestamp";
43741               type empty;
43742             }
43743             leaf localtime {
43744               tailf:info "Use local time zone for timestamps";
43745               description
43746                 "Use local time zone for timestamps";
43747               type empty;
43748             }
43749             leaf show-timezone {
43750               tailf:info "Add time zone information to timestamp";
43751               description
43752                 "Add time zone information to timestamp";
43753               type empty;
43754             }
43755             leaf year {
43756               tailf:info "Include year in timestamp";
43757               description
43758                 "Include year in timestamp";
43759               type empty;
43760             }
43761           }
43762           leaf uptime {
43763             tailf:info "Timestamp with system uptime";
43764             description
43765               "Timestamp with system uptime";
43766             type empty;
43767           }
43768         }
43769       }
43770       container alignment {
43771         tailf:info "Control alignment correction and logging";
43772         description
43773           "Control alignment correction and logging";
43774         leaf detection {
43775           tailf:info "Enable detection of alignment issues";
43776           description
43777             "Enable detection of alignment issues";
43778           type empty;
43779         }
43780         leaf logging {
43781           tailf:info "Enable logging of alignment issues";
43782           description
43783             "Enable logging of alignment issues";
43784           type empty;
43785         }
43786       }
43787       leaf call-home {
43788         tailf:info "Enable call-home service";
43789         description
43790           "Enable call-home service";
43791         tailf:cli-full-command;
43792         type empty;
43793       }
43794       leaf compress-config {
43795         tailf:info "Compress the configuration file";
43796         description
43797           "Compress the configuration file";
43798         tailf:cli-full-command;
43799         type empty;
43800       }
43801       leaf config {
43802         tailf:info "TFTP load config files";
43803         description
43804           "TFTP load config files";
43805         tailf:cli-full-command;
43806         type empty;
43807       }
43808       container counters {
43809         tailf:info "Control aging of interface counters";
43810         description
43811           "Control aging of interface counters";
43812         container max {
43813           tailf:info "Maximum counter aging threshold";
43814           description
43815             "Maximum counter aging threshold";
43816           leaf age {
43817             tailf:info "Aging threshold";
43818             description
43819               "Aging threshold";
43820             type uint8 {
43821               tailf:info "<0-60>;;Aging threshold value in seconds";
43822               range "0..60";
43823             }
43824           }
43825         }
43826       }
43827       leaf dhcp {
43828         tailf:info "Enable DHCP server and relay agent";
43829         description
43830           "Enable DHCP server and relay agent";
43831         tailf:cli-full-command;
43832         type empty;
43833       }
43834       leaf disable-ip-fast-frag {
43835         tailf:info "Disable IP particle-based fast fragmentation";
43836         description
43837           "Disable IP particle-based fast fragmentation";
43838         tailf:cli-full-command;
43839         type empty;
43840       }
43841       leaf exec-callback {
43842         tailf:info "Enable exec callback";
43843         description
43844           "Enable exec callback";
43845         tailf:cli-full-command;
43846         type empty;
43847       }
43848       leaf exec-wait {
43849         tailf:info "Delay EXEC startup on noisy lines";
43850         description
43851           "Delay EXEC startup on noisy lines";
43852         tailf:cli-full-command;
43853         type empty;
43854       }
43855       leaf finger {
43856         tailf:info "Allow responses to finger requests";
43857         description
43858           "Allow responses to finger requests";
43859         tailf:cli-full-command;
43860         type empty;
43861       }
43862       container heartbeat {
43863         tailf:info "Enable heartbeat processing";
43864         description
43865           "Enable heartbeat processing";
43866         leaf fatal-count {
43867           tailf:info "Set heartbeat fatal count";
43868           description
43869             "Set heartbeat fatal count";
43870           type uint8 {
43871             tailf:info "<1-60>;;Number of timeouts until fatal error occurs";
43872             range "1..60";
43873           }
43874         }
43875         leaf interrupt-interval {
43876           tailf:info "Set heartbeat interrupt test interval";
43877           description
43878             "Set heartbeat interrupt test interval";
43879           type uint8 {
43880             tailf:info "<0-60>;;Interval between interrupt level tests";
43881             range "0..60";
43882           }
43883         }
43884         leaf interrupt-max {
43885           tailf:info "Set maximum message count from interrupt test";
43886           description
43887             "Set maximum message count from interrupt test";
43888           type uint8 {
43889             tailf:info "<0-60>;;Maximum number of messages from interrupt test";
43890             range "0..60";
43891           }
43892         }
43893         leaf transmit-interval {
43894           tailf:info "Set heartbeat transmit interval";
43895           description
43896             "Set heartbeat transmit interval";
43897           type uint8 {
43898             tailf:info "<1-30>;;Interval between heartbeat transmissions";
43899             range "1..30";
43900           }
43901         }
43902         leaf warning-timeout {
43903           tailf:info "Set heartbeat warning timeout interval";
43904           description
43905             "Set heartbeat warning timeout interval";
43906           type uint8 {
43907             tailf:info "<5-60>;;Interval between heartbeat timeout warnings";
43908             range "5..60";
43909           }
43910         }
43911       }
43912       leaf hide-telnet-addresses {
43913         tailf:info "Hide destination addresses in telnet command";
43914         description
43915           "Hide destination addresses in telnet command";
43916         tailf:cli-full-command;
43917         type empty;
43918       }
43919       leaf linenumber {
43920         tailf:info "enable line number banner for each exec";
43921         description
43922           "enable line number banner for each exec";
43923         tailf:cli-full-command;
43924         type empty;
43925       }
43926       leaf nagle {
43927         tailf:info "Enable Nagle's congestion control algorithm";
43928         description
43929           "Enable Nagle's congestion control algorithm";
43930         tailf:cli-full-command;
43931         type empty;
43932       }
43933       leaf old-slip-prompts {
43934         tailf:info "Allow old scripts to operate with slip/ppp";
43935         description
43936           "Allow old scripts to operate with slip/ppp";
43937         tailf:cli-full-command;
43938         type empty;
43939       }
43940       leaf pt-vty-logging {
43941         tailf:info "Log significant VTY-Async events";
43942         description
43943           "Log significant VTY-Async events";
43944         tailf:cli-full-command;
43945         type empty;
43946       }
43947       leaf sequence-numbers {
43948         tailf:info "Stamp logger messages with a sequence number";
43949         description
43950           "Stamp logger messages with a sequence number";
43951         tailf:cli-full-command;
43952         type empty;
43953       }
43954       leaf slave-log {
43955         tailf:info "Enable log capability of slave IPs";
43956         description
43957           "Enable log capability of slave IPs";
43958         tailf:cli-full-command;
43959         type empty;
43960       }
43961       leaf tcp-keepalives-in {
43962         tailf:info "Generate keepalives on idle incoming network connections";
43963         description
43964           "Generate keepalives on idle incoming network connections";
43965         tailf:cli-full-command;
43966         type empty;
43967       }
43968       leaf tcp-keepalives-out {
43969         tailf:info "Generate keepalives on idle outgoing network connections";
43970         description
43971           "Generate keepalives on idle outgoing network connections";
43972         tailf:cli-full-command;
43973         type empty;
43974       }
43975       leaf tcp-small-servers {
43976         tailf:info "Enable small TCP servers (e.g., ECHO)";
43977         description
43978           "Enable small TCP servers (e.g., ECHO)";
43979         tailf:cli-show-no;
43980         type empty;
43981       }
43982       leaf udp-small-servers {
43983         tailf:info "Enable small UDP servers (e.g., ECHO)";
43984         description
43985           "Enable small UDP servers (e.g., ECHO)";
43986         tailf:cli-show-no;
43987         type empty;
43988       }
43989       leaf unsupported-transceiver {
43990         tailf:info "";
43991         description
43992           "";
43993         tailf:cli-full-command;
43994         type empty;
43995       }
43996     }
43997     container platform {
43998       tailf:info "platform specific configuration";
43999       description
44000         "platform specific configuration";
44001       leaf atm-cdvt {
44002         tailf:info "Configure platform atm cdvt";
44003         description
44004           "Configure platform atm cdvt";
44005         tailf:cli-boolean-no;
44006         type boolean;
44007       }
44008       container bfd {
44009         tailf:info "Platform specific BFD commands";
44010         description
44011           "Platform specific BFD commands";
44012         leaf disable-offload {
44013           tailf:info "Disable bfd hw offload";
44014           description
44015             "Disable bfd hw offload";
44016           type empty;
44017         }
44018         leaf allow-svi {
44019           tailf:cli-full-command;
44020           type empty;
44021         }
44022         leaf enable-offload {
44023           tailf:cli-full-command;
44024           type empty;
44025         }
44026       }
44027       leaf bfd-debug-trace {
44028         type uint8;
44029       }
44030       container console {
44031         tailf:info "Direct IOS output to console";
44032         description
44033           "Direct IOS output to console";
44034         presence "true";
44035         leaf output {
44036           tailf:cli-drop-node-name;
44037           type enumeration {
44038             enum "auto" {
44039               tailf:info "Autodetect console (Serial,VGA) for IOS output";
44040             }
44041             enum "serial" {
44042               tailf:info "Direct IOS output to serial port";
44043             }
44044             enum "virtual" {
44045               tailf:info "Direct IOS output to virtual console";
44046             }
44047           }
44048         }
44049       }
44050       container enable {
44051         list controller {
44052           tailf:cli-suppress-mode;
44053           key "SONET";
44054           leaf SONET {
44055             tailf:info "SONET";
44056             description
44057               "SONET";
44058             tailf:cli-expose-key-name;
44059             type string;
44060             tailf:non-strict-leafref {
44061               path "/ios:native/controller/SONET/name";
44062             }
44063           }
44064         }
44065       }
44066       container external-alarm {
44067         tailf:cli-sequence-commands;
44068         tailf:cli-compact-syntax;
44069         leaf line {
44070           type uint32;
44071         }
44072         leaf alarm {
44073           type logging-level-type;
44074         }
44075       }
44076       container hardware {
44077         tailf:info "Configure platform hardware";
44078         description
44079           "Configure platform hardware";
44080         container lite {
44081           leaf license {
44082             type enumeration {
44083               enum "enable";
44084             }
44085           }
44086         }
44087         container throughput {
44088           tailf:info "Configure throughput";
44089           description
44090             "Configure throughput";
44091           choice throughput-choice {
44092             leaf disable {
44093               tailf:info "Disable throughput upgrade licenses";
44094               description
44095                 "Disable throughput upgrade licenses";
44096               type enumeration {
44097                 enum "internal-license" {
44098                   tailf:info "Disable throughput internal license";
44099                 }
44100               }
44101             }
44102             container level {
44103               tailf:info "Configure the current traffic throughput level";
44104               description
44105                 "Configure the current traffic throughput level";
44106               tailf:cli-compact-syntax;
44107               tailf:cli-sequence-commands;
44108               leaf kbps {
44109                 tailf:cli-drop-node-name;
44110                 type enumeration {
44111                   enum "10000" {
44112                     tailf:info "throughput in kbps";
44113                   }
44114                   enum "25000" {
44115                     tailf:info "throughput in kbps";
44116                   }
44117                   enum "50000" {
44118                     tailf:info "throughput in kbps";
44119                   }
44120                 }
44121               }
44122               leaf eval-only {
44123                 tailf:info "Use only evaluation license";
44124                 description
44125                   "Use only evaluation license";
44126                 type empty;
44127               }
44128             }
44129           }
44130         }
44131       }
44132       container ipsec {
44133         tailf:info "Platform specific ipsec command";
44134         description
44135           "Platform specific ipsec command";
44136         leaf fips-mode {
44137           tailf:info "enable FIPS mode";
44138           description
44139             "enable FIPS mode";
44140           type empty;
44141         }
44142         leaf gdoi {
44143           tailf:info "gdoi";
44144           description
44145             "gdoi";
44146           type enumeration {
44147             enum "accept-both" {
44148               tailf:info "7200 like behaviour";
44149             }
44150           }
44151         }
44152         container llq {
44153           tailf:info "config LLQ";
44154           description
44155             "config LLQ";
44156           leaf qos-group {
44157             tailf:info "config LLQ QoS Group";
44158             description
44159               "config LLQ QoS Group";
44160             type uint8 {
44161               tailf:info "<1-99>;;QoS group";
44162               range "1..99";
44163             }
44164           }
44165         }
44166         container reassemble {
44167           tailf:info "reassemble packets";
44168           description
44169             "reassemble packets";
44170           leaf transit {
44171             tailf:info "transit IPSEC packets";
44172             description
44173               "transit IPSEC packets";
44174             type empty;
44175           }
44176         }
44177       }
44178       container multicast {
44179         tailf:info "Configure multicast";
44180         description
44181           "Configure multicast";
44182         container mgre {
44183           tailf:info "Multi-point GRE tunnel";
44184           description
44185             "Multi-point GRE tunnel";
44186           leaf injection {
44187             tailf:info "Enable packet injection";
44188             description
44189               "Enable packet injection";
44190             type empty;
44191           }
44192         }
44193         container oce {
44194           tailf:info "multicast oce";
44195           description
44196             "multicast oce";
44197           container flag {
44198             tailf:info "multicast oce flag";
44199             description
44200               "multicast oce flag";
44201             leaf suppress {
44202               tailf:info "Enable oce flag suppress";
44203               description
44204                 "Enable oce flag suppress";
44205               type empty;
44206             }
44207           }
44208         }
44209       }
44210       container punt-keepalive {
44211         tailf:info "punt-keepalive messages";
44212         description
44213           "punt-keepalive messages";
44214         leaf disable-kernel-core {
44215           tailf:info "Disable IOSXE kernel core generation for keepalive fault";
44216           description
44217             "Disable IOSXE kernel core generation for keepalive fault";
44218           type boolean;
44219           tailf:cli-boolean-no;
44220         }
44221         container settings {
44222           tailf:info "Set the keepalive parameters";
44223           description
44224             "Set the keepalive parameters";
44225           leaf fatal-count {
44226             tailf:info "Set punt-inject keepalive fatal count";
44227             description
44228               "Set punt-inject keepalive fatal count";
44229             type uint16 {
44230               tailf:info "<15-60>;;Number of timeouts until fatal error occurs";
44231               range "15..60";
44232             }
44233           }
44234           leaf transmit-interval {
44235             tailf:info "Set punt-inject keepalive transmit interval";
44236             description
44237               "Set punt-inject keepalive transmit interval";
44238             type uint16 {
44239               tailf:info "<2-30>;;Interval between punt/inject keepalive transmissions";
44240               range "2..30";
44241             }
44242           }
44243           leaf warning-count {
44244             tailf:info "Set punt-inject keepalive warning count";
44245             description
44246               "Set punt-inject keepalive warning count";
44247             type uint16 {
44248               tailf:info "<10-60>;;Interval between punt/inject keepalive timeout warnings";
44249               range "10..60";
44250             }
44251           }
44252         }
44253       }
44254       container punt-policer {
44255         tailf:info "Configures punt policers";
44256         description
44257           "Configures punt policers";
44258         tailf:cli-compact-syntax;
44259         tailf:cli-sequence-commands {
44260           tailf:cli-reset-siblings;
44261         }
44262         leaf cause {
44263           tailf:cli-drop-node-name;
44264           type uint8 {
44265             tailf:info "<1-89>;;Punt cause to be policed";
44266             range "1..89";
44267           }
44268         }
44269         leaf max-rate {
44270           tailf:cli-drop-node-name;
44271           type uint16 {
44272             tailf:info "<10-32000>;;max punt rate for cause MPLS ICMP Can't Frag";
44273             range "10..32000";
44274           }
44275         }
44276         leaf high {
44277           tailf:info "High priority traffic only";
44278           description
44279             "High priority traffic only";
44280           type empty;
44281         }
44282       }
44283       container qos {
44284         tailf:info "Platform specific qos configuration";
44285         description
44286           "Platform specific qos configuration";
44287         leaf marker-statistics {
44288           tailf:info "Configure marking statistics";
44289           description
44290             "Configure marking statistics";
44291           type empty;
44292         }
44293         container match-statistics {
44294           tailf:info "Configure match stats";
44295           description
44296             "Configure match stats";
44297           leaf per-filter {
44298             tailf:info "Configure per-filter match statistics";
44299             description
44300               "Configure per-filter match statistics";
44301             tailf:cli-full-command;
44302             type empty;
44303           }
44304           leaf per-ace {
44305             tailf:info "Configure per-ace match statistics (per-filter must be enabled first)";
44306             description
44307               "Configure per-ace match statistics (per-filter must be enabled first)";
44308             tailf:cli-full-command;
44309             type empty;
44310           }
44311         }
44312         leaf performance-monitor {
44313           tailf:info "Configure performance-monitor statistics";
44314           description
44315             "Configure performance-monitor statistics";
44316           type empty;
44317         }
44318       }
44319       container reload {
44320         tailf:info "Platform specific reload command";
44321         description
44322           "Platform specific reload command";
44323         leaf immediate {
44324           tailf:info "Immediately stop forwarding traffic";
44325           description
44326             "Immediately stop forwarding traffic";
44327           type empty;
44328         }
44329       }
44330       leaf shell {
44331         tailf:info "Control platform shell access command availability";
44332         description
44333           "Control platform shell access command availability";
44334         type boolean;
44335         tailf:cli-boolean-no;
44336       }
44337       leaf tcam-parity-error {
44338         type enumeration {
44339           enum "enable";
44340           enum "disable";
44341         }
44342       }
44343       container tcam-threshold {
44344         leaf alarm-frequency {
44345           type uint32;
44346         }
44347       }
44348       container trace {
44349         list runtime {
44350           tailf:cli-suppress-mode;
44351           key "slot bay";
44352           leaf slot {
44353             tailf:cli-expose-key-name;
44354             type uint8;
44355           }
44356           leaf bay {
44357             tailf:cli-expose-key-name;
44358             type uint8;
44359           }
44360           leaf process {
44361             tailf:cli-hide-in-submode;
44362             type enumeration {
44363               enum "iomd";
44364             }
44365           }
44366           leaf module {
44367             tailf:cli-hide-in-submode;
44368             type enumeration {
44369               enum "all-modules";
44370             }
44371           }
44372           leaf level {
44373             tailf:cli-hide-in-submode;
44374             type enumeration {
44375               enum "info";
44376             }
44377           }
44378         }
44379       }
44380     }
44381     leaf hostname {
44382       tailf:info "Set system's network name";
44383       description
44384         "Set system's network name";
44385       tailf:cli-no-value-on-delete;
44386       type string {
44387         tailf:info "This system's network name";
44388       }
44389     }
44390     container enable {
44391       tailf:info "Modify enable password parameters";
44392       description
44393         "Modify enable password parameters";
44394       container password {
44395         tailf:info "Assign the privileged level password (MAX of 25 characters)";
44396         description
44397           "Assign the privileged level password (MAX of 25 characters)";
44398         tailf:cli-compact-syntax;
44399         tailf:cli-sequence-commands;
44400         tailf:cli-reset-container;
44401         uses password-07-grouping;
44402       }
44403       leaf last-resort {
44404         tailf:info "Define enable action if no TACACS servers respond";
44405         description
44406           "Define enable action if no TACACS servers respond";
44407         tailf:cli-full-command;
44408         type enumeration {
44409           enum "password" {
44410             tailf:info "Enable by giving the local enable password";
44411           }
44412           enum "succeed" {
44413             tailf:info "Enable without further question";
44414           }
44415         }
44416       }
44417       container secret {
44418         tailf:info "Assign the privileged level secret";
44419         description
44420           "Assign the privileged level secret";
44421         tailf:cli-compact-syntax;
44422         tailf:cli-sequence-commands;
44423         leaf level {
44424           tailf:info "Set exec level password";
44425           description
44426             "Set exec level password";
44427           tailf:cli-optional-in-sequence;
44428           type uint8 {
44429             tailf:info "<1-15>;;Level number";
44430           }
44431         }
44432         leaf type {
44433           tailf:cli-drop-node-name;
44434           tailf:cli-optional-in-sequence;
44435           type enumeration {
44436             enum "0" {
44437               tailf:info "Specifies an UNENCRYPTED password will follow";
44438             }
44439             enum "4";
44440             enum "5" {
44441               tailf:info "Specifies an ENCRYPTED secret will follow";
44442             }
44443           }
44444         }
44445         leaf secret {
44446           tailf:cli-drop-node-name;
44447           type string {
44448             tailf:info "LINE;;The UNENCRYPTED (cleartext) 'enable' secret";
44449           }
44450         }
44451       }
44452       leaf use-tacacs {
44453         tailf:info "Use TACACS to check enable passwords";
44454         description
44455           "Use TACACS to check enable passwords";
44456         tailf:cli-full-command;
44457         type empty;
44458       }
44459     }
44460     container archive {
44461       tailf:info "Archive the configuration";
44462       description
44463         "Archive the configuration";
44464       tailf:cli-add-mode;
44465       tailf:cli-mode-name "config-archive";
44466       container log {
44467         tailf:info "Logging commands";
44468         description
44469           "Logging commands";
44470         container config {
44471           tailf:info "Logging changes to the running configuration";
44472           description
44473             "Logging changes to the running configuration";
44474           tailf:cli-add-mode;
44475           tailf:cli-mode-name "config-archive-log-cfg";
44476           leaf hidekeys {
44477             tailf:info "suppress output (e.g. passwords) when displaying logged commands";
44478             description
44479               "suppress output (e.g. passwords) when displaying logged commands";
44480             type empty;
44481           }
44482           container logging {
44483             tailf:info "Modify config logging parameters";
44484             description
44485               "Modify config logging parameters";
44486             leaf enable {
44487               tailf:info "Enable the config logger";
44488               description
44489                 "Enable the config logger";
44490               type empty;
44491             }
44492             leaf size {
44493               tailf:info "Maximum number of logged commands that will be kept by the config log";
44494               description
44495                 "Maximum number of logged commands that will be kept by the config log";
44496               type uint16 {
44497                 tailf:info "<1-1000>;;Queue length (default 100)";
44498                 range "1..1000";
44499               }
44500             }
44501             container persistent {
44502               tailf:info "Log configuration persistent";
44503               description
44504                 "Log configuration persistent";
44505               presence "true";
44506               leaf auto {
44507                 tailf:info "Log configuration commands automatically";
44508                 description
44509                   "Log configuration commands automatically";
44510                 type empty;
44511               }
44512               leaf reload {
44513                 tailf:info "Apply persisted commands on reload";
44514                 description
44515                   "Apply persisted commands on reload";
44516                 type empty;
44517               }
44518             }
44519           }
44520           container notify {
44521             tailf:info "Send logged commands to target applications";
44522             description
44523               "Send logged commands to target applications";
44524             container syslog {
44525               tailf:info "Send logged commands as syslog messages";
44526               description
44527                 "Send logged commands as syslog messages";
44528               presence "true";
44529               leaf contenttype {
44530                 tailf:info "Type of the syslog message content";
44531                 description
44532                   "Type of the syslog message content";
44533                 type enumeration {
44534                   enum "plaintext" {
44535                     tailf:info "Plain text content";
44536                   }
44537                   enum "xml" {
44538                     tailf:info "XML content";
44539                   }
44540                 }
44541               }
44542             }
44543           }
44544         }
44545       }
44546       leaf path {
44547         tailf:info "path for backups";
44548         description
44549           "path for backups";
44550         type enumeration {
44551           enum "bootflash:" {
44552             tailf:info "Write archive on bootflash: file system";
44553           }
44554           enum "flash:" {
44555             tailf:info "Write archive on flash: file system";
44556           }
44557           enum "ftp:" {
44558             tailf:info "Write archive on ftp: file system";
44559           }
44560           enum "harddisk:" {
44561             tailf:info "Write archive on harddisk: file system";
44562           }
44563           enum "http:" {
44564             tailf:info "Write archive on http: file system";
44565           }
44566           enum "https:" {
44567             tailf:info "Write archive on https: file system";
44568           }
44569           enum "pram:" {
44570             tailf:info "Write archive on pram: file system";
44571           }
44572           enum "rcp:" {
44573             tailf:info "Write archive on rcp: file system";
44574           }
44575           enum "scp:" {
44576             tailf:info "Write archive on scp: file system";
44577           }
44578           enum "tftp:" {
44579             tailf:info "Write archive on tftp: file system";
44580           }
44581         }
44582       }
44583     }
44584     list username {
44585       tailf:info "Establish User Name Authentication";
44586       description
44587         "Establish User Name Authentication";
44588       tailf:cli-suppress-mode;
44589       tailf:cli-delete-when-empty;
44590       tailf:cli-compact-syntax;
44591       key "name";
44592       leaf name {
44593         type string {
44594           tailf:info "WORD;;User name";
44595         }
44596       }
44597       leaf privilege {
44598         tailf:info "Set user privilege level";
44599         description
44600           "Set user privilege level";
44601         type uint8 {
44602           tailf:info "<0-15>;;User privilege level";
44603           range "0..15";
44604         }
44605       }
44606       container password {
44607         tailf:info "Specify the password for the user";
44608         description
44609           "Specify the password for the user";
44610         tailf:cli-compact-syntax;
44611         tailf:cli-flatten-container;
44612         tailf:cli-sequence-commands;
44613         tailf:cli-reset-container;
44614         leaf encryption {
44615           tailf:cli-drop-node-name;
44616           tailf:cli-incomplete-command;
44617           tailf:cli-optional-in-sequence;
44618           type enumeration {
44619             enum "0" {
44620               tailf:info "Specifies an UNENCRYPTED password will follow";
44621             }
44622             enum "7" {
44623               tailf:info "Specifies a HIDDEN password will follow";
44624             }
44625           }
44626         }
44627         leaf password {
44628           tailf:cli-drop-node-name;
44629           tailf:cli-trim-default;
44630           type string {
44631             tailf:info "WORD;;The HIDDEN user password string";
44632           }
44633         }
44634       }
44635       container secret {
44636         tailf:info "Specify the secret for the user";
44637         description
44638           "Specify the secret for the user";
44639         tailf:cli-compact-syntax;
44640         tailf:cli-flatten-container;
44641         tailf:cli-sequence-commands;
44642         tailf:cli-reset-container;
44643         leaf encryption {
44644           tailf:cli-drop-node-name;
44645           tailf:cli-incomplete-command;
44646           tailf:cli-optional-in-sequence;
44647           type enumeration {
44648             enum "0" {
44649               tailf:info "Specifies an UNENCRYPTED secret will follow";
44650             }
44651             enum "5" {
44652               tailf:info "Specifies a HIDDEN secret will follow";
44653             }
44654           }
44655         }
44656         leaf secret {
44657           tailf:cli-drop-node-name;
44658           tailf:cli-trim-default;
44659           type string {
44660             tailf:info "WORD;;The HIDDEN user secret string";
44661           }
44662         }
44663       }
44664     }
44665     container controller {
44666       tailf:info "Configure controller";
44667       description
44668         "Configure controller";
44669       list controller-tx-ex-list {
44670         tailf:cli-drop-node-name;
44671         tailf:cli-mode-name "config-controller";
44672         key "name number";
44673         leaf name {
44674           type enumeration {
44675             tailf:info "Controller name";
44676             enum "t1";
44677             enum "e1";
44678             enum "t3";
44679             enum "T1" {
44680               tailf:info "T1 controller";
44681             }
44682             enum "E1" {
44683               tailf:info "E1 controller";
44684             }
44685             enum "T3" {
44686               tailf:info "T3 controller";
44687             }
44688           }
44689         }
44690         leaf number {
44691           type string;
44692         }
44693         leaf atm {
44694           tailf:info "Specify atm";
44695           description
44696             "Specify atm";
44697           tailf:cli-full-command;
44698           type empty;
44699         }
44700         leaf framing {
44701           tailf:cli-full-command;
44702           type string;
44703         }
44704         container clock {
44705           container source {
44706             choice source-choice {
44707               container line {
44708                 presence "true";
44709                 leaf line-mode {
44710                   tailf:cli-drop-node-name;
44711                   tailf:cli-full-command;
44712                   type enumeration {
44713                     enum "primary";
44714                     enum "secondary";
44715                   }
44716                 }
44717               }
44718               leaf internal {
44719                 tailf:cli-full-command;
44720                 type empty;
44721               }
44722               leaf loop-timed {
44723                 tailf:cli-full-command;
44724                 type empty;
44725               }
44726             }
44727           }
44728         }
44729         leaf linecode {
44730           tailf:cli-full-command;
44731           type enumeration {
44732             enum "ami";
44733             enum "b8zs";
44734             enum "hdb3";
44735           }
44736         }
44737         container cablelength {
44738           choice cablelength-choice {
44739             leaf long {
44740               tailf:cli-full-command;
44741               type string;
44742             }
44743             leaf short {
44744               tailf:cli-full-command;
44745               type string;
44746             }
44747           }
44748         }
44749         list channel-group {
44750           tailf:cli-suppress-mode;
44751           tailf:cli-delete-when-empty;
44752           key "number";
44753           leaf number {
44754             type uint8 {
44755               range "0..30";
44756             }
44757           }
44758           leaf-list timeslots {
44759             tailf:cli-replace-all;
44760             tailf:cli-range-list-syntax;
44761             type union {
44762               type uint16;
44763               type string;
44764             }
44765           }
44766         }
44767       }
44768       list Cellular {
44769         key "id";
44770         leaf id {
44771           type string;
44772         }
44773         container lte {
44774           container modem {
44775             container link-recovery {
44776               container rssi {
44777                 leaf onset-threshold {
44778                   type int32;
44779                 }
44780               }
44781               leaf monitor-timer {
44782                 tailf:cli-full-command;
44783                 type uint32;
44784               }
44785               leaf wait-timer {
44786                 tailf:cli-full-command;
44787                 type uint32;
44788               }
44789               leaf debounce-count {
44790                 tailf:cli-full-command;
44791                 type uint32;
44792               }
44793             }
44794           }
44795         }
44796       }
44797       list SONET {
44798         tailf:info "SONET";
44799         description
44800           "SONET";
44801         tailf:cli-allow-join-with-key {
44802           tailf:cli-display-joined;
44803         }
44804         tailf:cli-mode-name "config-sonet";
44805         tailf:cli-suppress-key-abbreviation;
44806         tailf:cli-full-command;
44807         key "name";
44808         leaf name {
44809           type string {
44810             tailf:info "<0-255>/<0-255>/<0-255>;;SONET controller number";
44811           }
44812         }
44813         uses sonet-grouping;
44814       }
44815       list SONET-ACR {
44816         tailf:info "SONET-ACR";
44817         description
44818           "SONET-ACR";
44819         tailf:cli-allow-join-with-key {
44820           tailf:cli-display-joined;
44821         }
44822         tailf:cli-mode-name "config-sonet";
44823         tailf:cli-suppress-key-abbreviation;
44824         tailf:cli-full-command;
44825         key "name";
44826         leaf name {
44827           type string {
44828             tailf:info "<0-255>;;SONET-ACR controller number";
44829             pattern "([0-9\\.])+";
44830           }
44831         }
44832         uses sonet-grouping;
44833       }
44834       list wanphy {
44835         tailf:info "wanphy";
44836         description
44837           "wanphy";
44838         tailf:cli-allow-join-with-key {
44839           tailf:cli-display-joined;
44840         }
44841         tailf:cli-mode-name "config-sonet";
44842         tailf:cli-suppress-key-abbreviation;
44843         tailf:cli-full-command;
44844         key "name";
44845         leaf name {
44846           type string {
44847             tailf:info "<0-255>/<0-255>/<0-255>;;SONET controller number";
44848           }
44849         }
44850       }
44851     }
44852     container vrf {
44853       tailf:info "VRF commands";
44854       description
44855         "VRF commands";
44856       list definition {
44857         tailf:info "VRF definition mode";
44858         description
44859           "VRF definition mode";
44860         tailf:cli-full-command;
44861         tailf:cli-mode-name "config-vrf";
44862         key "name";
44863         leaf name {
44864           tailf:info "WORD;;VRF name";
44865           description
44866             "WORD;;VRF name";
44867           type string;
44868         }
44869         leaf description {
44870           tailf:info "VRF specific description";
44871           description
44872             "VRF specific description";
44873           tailf:cli-multi-value;
44874           type string {
44875             tailf:info "LINE;;Up to 244 characters describing this VRF";
44876             length "1..244";
44877           }
44878         }
44879         leaf rd {
44880           tailf:info "Specify Route Distinguisher";
44881           description
44882             "Specify Route Distinguisher";
44883           tailf:cli-full-command;
44884           type union {
44885             type string {
44886               tailf:info "ASN:nn or IP-address:nn;;VPN Route Distinguisher";
44887               pattern "[0-9]+:[0-9]+";
44888             }
44889             type inet:ipv4-address;
44890           }
44891         }
44892         container address-family {
44893           tailf:info "Enter Address Family command mode";
44894           description
44895             "Enter Address Family command mode";
44896           container ipv4 {
44897             tailf:info "Address family";
44898             description
44899               "Address family";
44900             tailf:cli-exit-command "exit-address-family";
44901             tailf:cli-add-mode;
44902             presence "true";
44903             container export {
44904               tailf:info "VRF export";
44905               description
44906                 "VRF export";
44907               tailf:cli-incomplete-command;
44908               leaf map {
44909                 tailf:info "WORD;;Route-map reference";
44910                 description
44911                   "WORD;;Route-map reference";
44912                 type string;
44913               }
44914             }
44915             container mdt {
44916               tailf:info "Backbone Multicast Distribution Tree";
44917               description
44918                 "Backbone Multicast Distribution Tree";
44919               container default {
44920                 tailf:info "The default group";
44921                 description
44922                   "The default group";
44923                 leaf address {
44924                   tailf:cli-drop-node-name;
44925                   tailf:cli-full-command;
44926                   tailf:cli-remove-before-change;
44927                   type inet:ipv4-address {
44928                     tailf:info "A.B.C.D;;IP multicast group address";
44929                   }
44930                 }
44931                 container mpls {
44932                   tailf:info "MPLS tunnel options";
44933                   description
44934                     "MPLS tunnel options";
44935                   leaf mldp {
44936                     tailf:info "Use a MLDP LSP to create the default MDT";
44937                     description
44938                       "Use a MLDP LSP to create the default MDT";
44939                     type inet:ipv4-address {
44940                       tailf:info "A.B.C.D;;MP2MP LSP root address";
44941                     }
44942                   }
44943                 }
44944               }
44945               container data {
44946                 tailf:info "MDT data trees";
44947                 description
44948                   "MDT data trees";
44949                 list multicast {
44950                   tailf:cli-drop-node-name;
44951                   tailf:cli-suppress-mode;
44952                   tailf:cli-delete-when-empty;
44953                   key "address wildcard";
44954                   leaf address {
44955                     type inet:ipv4-address {
44956                       tailf:info "A.B.C.D;;  IP multicast group address";
44957                     }
44958                   }
44959                   leaf wildcard {
44960                     type inet:ipv4-address {
44961                       tailf:info "A.B.C.D;;Wildcard bits";
44962                     }
44963                   }
44964                 }
44965                 leaf list {
44966                   tailf:info "Access-list";
44967                   description
44968                     "Access-list";
44969                   type ext-acl-type;
44970                 }
44971                 leaf threshold {
44972                   tailf:info "MDT switching threshold";
44973                   description
44974                     "MDT switching threshold";
44975                   type uint32 {
44976                     tailf:info "<1-4294967>;;Traffic rate in kilobits per second";
44977                   }
44978                 }
44979               }
44980               leaf log-reuse {
44981                 tailf:info "Event logging for data MDT reuse";
44982                 description
44983                   "Event logging for data MDT reuse";
44984                 type empty;
44985               }
44986               leaf-list preference {
44987                 tailf:info "MDT preference (default pim mldp)";
44988                 description
44989                   "MDT preference (default pim mldp)";
44990                 tailf:cli-flat-list-syntax {
44991                   tailf:cli-replace-all;
44992                 }
44993                 type enumeration {
44994                   enum "mldp" {
44995                     tailf:info "MDT preference mLDP";
44996                   }
44997                   enum "pim" {
44998                     tailf:info "MDT preference PIM";
44999                   }
45000                 }
45001               }
45002             }
45003             container route-target {
45004               tailf:info "Specify Target VPN Extended Communities";
45005               description
45006                 "Specify Target VPN Extended Communities";
45007               uses vrf-route-target-grouping;
45008             }
45009           }
45010           container ipv6 {
45011             tailf:info "Address family";
45012             description
45013               "Address family";
45014             tailf:cli-exit-command "exit-address-family";
45015             tailf:cli-add-mode;
45016             presence "true";
45017             container route-target {
45018               tailf:info "Specify Target VPN Extended Communities";
45019               description
45020                 "Specify Target VPN Extended Communities";
45021               uses vrf-route-target-grouping;
45022             }
45023           }
45024         }
45025         container route-target {
45026           tailf:info "Specify Target VPN Extended Communities";
45027           description
45028             "Specify Target VPN Extended Communities";
45029           uses vrf-route-target-grouping;
45030         }
45031       }
45032     }
45033     container rmon {
45034       tailf:info "Remote Monitoring";
45035       description
45036         "Remote Monitoring";
45037       list alarm {
45038         tailf:info "Configure an RMON alarm";
45039         description
45040           "Configure an RMON alarm";
45041         tailf:cli-suppress-mode;
45042         tailf:cli-sequence-commands;
45043         tailf:cli-compact-syntax;
45044         key "number";
45045         leaf number {
45046           type uint16 {
45047             tailf:info "<1-65535>;;alarm number";
45048           }
45049         }
45050         leaf mib-object {
45051           tailf:cli-drop-node-name;
45052           type string {
45053             tailf:info "WORD;;MIB object to monitor";
45054           }
45055         }
45056         leaf sample-interval {
45057           tailf:cli-drop-node-name;
45058           type uint32 {
45059             tailf:info "<1-2147483647>;;Sample interval";
45060           }
45061         }
45062         leaf test-mode {
45063           tailf:cli-drop-node-name;
45064           type enumeration {
45065             enum "absolute" {
45066               tailf:info "Test each sample directly";
45067             }
45068             enum "delta" {
45069               tailf:info "Test delta between samples";
45070             }
45071           }
45072         }
45073         leaf rising-threshold {
45074           tailf:info "Configure the rising threshold";
45075           description
45076             "Configure the rising threshold";
45077           type int32 {
45078             tailf:info "<-2147483648 - 2147483647>;;rising threshold value";
45079           }
45080         }
45081         leaf rising-event {
45082           tailf:cli-drop-node-name;
45083           tailf:cli-optional-in-sequence;
45084           type uint16 {
45085             tailf:info "<1-65535>;;Event to fire on rising threshold crossing";
45086           }
45087         }
45088         leaf falling-threshold {
45089           tailf:info "Configure the falling threshold";
45090           description
45091             "Configure the falling threshold";
45092           type int32 {
45093             tailf:info "<-2147483648 - 2147483647>;;falling threshold value";
45094           }
45095         }
45096         leaf falling-event {
45097           tailf:cli-drop-node-name;
45098           tailf:cli-optional-in-sequence;
45099           type uint16 {
45100             tailf:info "<1-65535>;;Event to fire on falling threshold crossing";
45101           }
45102         }
45103         leaf owner {
45104           tailf:info "Specify an owner for the alarm";
45105           description
45106             "Specify an owner for the alarm";
45107           type string {
45108             tailf:info "WORD;;Alarm owner";
45109           }
45110         }
45111       }
45112       list event {
45113         tailf:info "Configure an RMON event";
45114         description
45115           "Configure an RMON event";
45116         tailf:cli-suppress-mode;
45117         key "number";
45118         leaf number {
45119           type uint16 {
45120             tailf:info "<1-65535>;;event number";
45121           }
45122         }
45123         container log {
45124           tailf:info "Generate RMON log when the event fires";
45125           description
45126             "Generate RMON log when the event fires";
45127           tailf:cli-compact-syntax;
45128           presence "true";
45129           leaf trap {
45130             tailf:info "Generate SNMP trap when the event fires";
45131             description
45132               "Generate SNMP trap when the event fires";
45133             type string {
45134               tailf:info "WORD;;SNMP community string";
45135             }
45136           }
45137           leaf description {
45138             tailf:info "Specify a description of the event";
45139             description
45140               "Specify a description of the event";
45141             type string {
45142               tailf:info "WORD;;Event description";
45143             }
45144           }
45145           leaf owner {
45146             tailf:info "Specify an owner for the event";
45147             description
45148               "Specify an owner for the event";
45149             type string {
45150               tailf:info "WORD;;Event owner";
45151             }
45152           }
45153         }
45154       }
45155     }
45156     container flow {
45157       tailf:info "Global Flow configuration subcommands";
45158       description
45159         "Global Flow configuration subcommands";
45160       list record {
45161         tailf:info "Define a Flow Record";
45162         description
45163           "Define a Flow Record";
45164         tailf:cli-mode-name "config-flow-record";
45165         key "name";
45166         leaf name {
45167           type string {
45168             tailf:info "WORD;;Flow Record name";
45169           }
45170           tailf:cli-disallow-value "type";
45171         }
45172         leaf type {
45173           tailf:info "Type of the Flow Record";
45174           description
45175             "Type of the Flow Record";
45176           tailf:cli-prefix-key;
45177           type enumeration {
45178             enum "performance-monitor" {
45179               tailf:info "Config media monitor flow record type";
45180             }
45181           }
45182         }
45183         uses flow-record-collect-grouping;
45184         container default {
45185           tailf:info "Set a command to its defaults";
45186           description
45187             "Set a command to its defaults";
45188           uses flow-record-collect-grouping;
45189           leaf description {
45190             tailf:info "Provide a description for this Flow Record";
45191             description
45192               "Provide a description for this Flow Record";
45193             tailf:cli-multi-value;
45194             tailf:cli-full-command;
45195             type string {
45196               tailf:info "LINE;;Flow Record description";
45197             }
45198           }
45199           uses flow-record-match-grouping;
45200         }
45201         leaf description {
45202           tailf:info "Provide a description for this Flow Record";
45203           description
45204             "Provide a description for this Flow Record";
45205           tailf:cli-multi-value;
45206           tailf:cli-full-command;
45207           type string {
45208             tailf:info "LINE;;Flow Record description";
45209           }
45210         }
45211         uses flow-record-match-grouping;
45212       }
45213       list exporter {
45214         tailf:info "Define a Flow Exporter";
45215         description
45216           "Define a Flow Exporter";
45217         tailf:cli-mode-name "config-flow-exporter";
45218         key "name";
45219         leaf name {
45220           type string {
45221             tailf:info "WORD;;Flow Exporter name";
45222           }
45223         }
45224         uses flow-exporter-grouping;
45225         container default {
45226           tailf:info "Set a command to its defaults";
45227           description
45228             "Set a command to its defaults";
45229           uses flow-default-exporter-grouping;
45230         }
45231       }
45232       list monitor {
45233         tailf:info "Define a Flow Monitor";
45234         description
45235           "Define a Flow Monitor";
45236         tailf:cli-mode-name "config-flow-monitor";
45237         key "name";
45238         leaf name {
45239           type string {
45240             tailf:info "WORD;;Flow Monitor name";
45241           }
45242           tailf:cli-disallow-value "type";
45243         }
45244         leaf type {
45245           tailf:info "Type of the Flow Record";
45246           description
45247             "Type of the Flow Record";
45248           tailf:cli-prefix-key;
45249           type enumeration {
45250             enum "performance-monitor" {
45251               tailf:info "Config media monitor flow monitor type";
45252             }
45253           }
45254         }
45255         uses flow-monitor-grouping;
45256         container default {
45257           tailf:info "Set a command to its defaults";
45258           description
45259             "Set a command to its defaults";
45260           uses flow-default-monitor-grouping;
45261         }
45262       }
45263     }
45264     container ip {
45265       tailf:info "Global IP configuration subcommands";
45266       description
45267         "Global IP configuration subcommands";
45268       container arp {
45269         tailf:info "IP ARP global configuration";
45270         description
45271           "IP ARP global configuration";
45272         container inspection {
45273           tailf:info "Arp Inspection configuration";
45274           description
45275             "Arp Inspection configuration";
45276           leaf vlan {
45277             tailf:info "Enable/Disable ARP Inspection on vlans";
45278             description
45279               "Enable/Disable ARP Inspection on vlans";
45280             type string {
45281               tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
45282             }
45283           }
45284         }
45285       }
45286       container finger {
45287         tailf:info "finger server";
45288         description
45289           "finger server";
45290         tailf:cli-show-no;
45291         presence "true";
45292       }
45293       container icmp {
45294         tailf:info "ICMP options";
45295         description
45296           "ICMP options";
45297         container rate-limit {
45298           tailf:info "rate limit ICMP messages generated";
45299           description
45300             "rate limit ICMP messages generated";
45301           container unreachable {
45302             tailf:info "ICMP type 3, Destination Unreachable";
45303             description
45304               "ICMP type 3, Destination Unreachable";
45305             tailf:cli-compact-syntax;
45306             leaf time {
45307               description
45308                 "Once per milliseconds";
45309               tailf:cli-drop-node-name;
45310               type uint32 {
45311                 tailf:info "<1-4294967295>;;Once per milliseconds";
45312               }
45313             }
45314             leaf DF {
45315               tailf:info "code 4, fragmentation needed and DF set";
45316               description
45317                 "code 4, fragmentation needed and DF set";
45318               tailf:cli-incomplete-command;
45319               type empty;
45320             }
45321             container log {
45322               tailf:display-when "../time";
45323               description
45324                 "log message if rate limiting is excessive";
45325               tailf:info "log message if rate limiting is excessive";
45326               tailf:cli-compact-syntax;
45327               tailf:cli-sequence-commands;
45328               presence "true";
45329               leaf number-unreachables {
45330                 tailf:cli-drop-node-name;
45331                 description
45332                   "number of unreachables within interval to trigger a message";
45333                 type uint32 {
45334                   tailf:info "<1-4294967295>;;number of unreachables within interval to trigger a message";
45335                 }
45336               }
45337               leaf log-message {
45338                 tailf:cli-drop-node-name;
45339                 tailf:cli-optional-in-sequence;
45340                 description
45341                   "log message once per milliseconds";
45342                 type uint32 {
45343                   tailf:info "<10000-4294967295>;;log message once per milliseconds";
45344                   range "10000..4294967295";
45345                 }
45346               }
45347             }
45348           }
45349           leaf redirect {
45350             tailf:info "Redirect type";
45351             description
45352               "description";
45353             type enumeration {
45354               enum "host" {
45355                 tailf:info "Send ICMP host redirects; same as 'no ip icmp redirect subnet'";
45356               }
45357               enum "subnet" {
45358                 tailf:info "Send ICMP subnet redirects; same as 'no ip icmp redirect host'";
45359               }
45360             }
45361           }
45362         }
45363       }
45364       container rcmd {
45365         tailf:info "Rcmd commands";
45366         description
45367           "Rcmd commands";
45368         leaf rcp-enable {
45369           tailf:info "Enable server side of RCP";
45370           description
45371             "Enable server side of RCP";
45372           tailf:cli-show-no;
45373           tailf:cli-full-command;
45374           type empty;
45375         }
45376         leaf rsh-enable {
45377           tailf:info "Enable server side of RSH";
45378           description
45379             "Enable server side of RSh";
45380           tailf:cli-show-no;
45381           tailf:cli-full-command;
45382           type empty;
45383         }
45384       }
45385       leaf subnet-zero {
45386         tailf:info "Allow 'subnet zero' subnets";
45387         description
45388           "Allow 'subnet zero' subnets";
45389         type empty;
45390       }
45391       container bgp-community {
45392         tailf:info "format for BGP community";
45393         description
45394           "format for BGP community";
45395         leaf new-format {
45396           tailf:info "select aa:nn format for BGP community";
45397           description
45398             "select aa:nn format for BGP community";
45399           type empty;
45400         }
45401       }
45402       leaf host-routing {
45403         tailf:info "Enable host-based routing (proxy ARP and redirect)";
45404         description
45405           "Enable host-based routing (proxy ARP and redirect)";
45406         tailf:cli-full-command;
45407         type empty;
45408       }
45409       container msdp {
45410         tailf:info "MSDP global commands";
45411         description
45412           "MSDP global commands";
45413         uses ip-msdp-grouping;
45414         list vrf {
45415           tailf:info "Select VPN Routing/Forwarding instance";
45416           description
45417             "Select VPN Routing/Forwarding instance";
45418           tailf:cli-suppress-mode;
45419           key "name";
45420           leaf name {
45421             type string {
45422               tailf:info "WORD;;VPN Routing/Forwarding instance name";
45423             }
45424           }
45425           uses ip-msdp-grouping;
45426         }
45427       }
45428       list vrf {
45429         tailf:info "Configure an IP VPN Routing/Forwarding instance";
45430         description
45431           "Configure an IP VPN Routing/Forwarding instance";
45432         tailf:cli-mode-name "config-vrf";
45433         key "name";
45434         leaf name {
45435           tailf:info "WORD;;VPN Routing/Forwarding instance name";
45436           description
45437             "WORD;;VPN Routing/Forwarding instance name";
45438           type string;
45439         }
45440         container bgp {
45441           tailf:info "Commands pertaining to BGP";
45442           description
45443             "Commands pertaining to BGP";
45444           container next-hop {
45445             tailf:info "Next-hop for the routes of a VRF in the backbone";
45446             description
45447               "Next-hop for the routes of a VRF in the backbone";
45448             leaf Loopback {
45449               tailf:info "Loopback interface number";
45450               description
45451                 "Loopback interface number";
45452               type uint32 {
45453                 tailf:info "<0-2147483647>;;Loopback interface number";
45454                 range "0..2147483647";
45455               }
45456             }
45457           }
45458         }
45459         leaf context {
45460           tailf:info "Associate SNMP context with this vrf";
45461           description
45462             "Associate SNMP context with this vrf";
45463           type string {
45464             tailf:info "WORD;;SNMP Context Name";
45465           }
45466         }
45467         leaf description {
45468           tailf:info "VRF specific description";
45469           description
45470             "VRF specific description";
45471           tailf:cli-multi-value;
45472           type string {
45473             length "1..244";
45474             tailf:info "LINE;;Up to 244 characters describing this VRF";
45475           }
45476         }
45477         container export {
45478           tailf:info "VRF export";
45479           description
45480             "VRF export";
45481           leaf map {
45482             tailf:info "Route-map based VRF export";
45483             description
45484               "Route-map based VRF export";
45485             type string {
45486               tailf:info "WORD;;VRF export route-map name";
45487             }
45488           }
45489         }
45490         container import {
45491           tailf:info "VRF import";
45492           description
45493             "VRF import";
45494           choice import-choice {
45495             leaf map {
45496               tailf:info "Route-map based VRF import";
45497               description
45498                 "Route-map based VRF import";
45499               type string {
45500                 tailf:info "WORD;;VRF import route-map name";
45501               }
45502             }
45503             container ipv4 {
45504               tailf:cli-compact-syntax;
45505               tailf:cli-sequence-commands;
45506               tailf:info "Address family based VRF import";
45507               description
45508                 "Address family based VRF import";
45509               leaf ipv4-type {
45510                 tailf:cli-drop-node-name;
45511                 type enumeration {
45512                   enum "unicast" {
45513                     tailf:code-name "ipv41_unicast";
45514                     tailf:info "Import prefixes from IPv4 Unicast table";
45515                   }
45516                   enum "multicast" {
45517                     tailf:code-name "ipv41_multicast";
45518                     tailf:info "Import prefixes from IPv4 Multicast tabl";
45519                   }
45520                 }
45521               }
45522               leaf upper-limit {
45523                 tailf:cli-break-sequence-commands;
45524                 tailf:cli-drop-node-name;
45525                 type uint32 {
45526                   range "1..2147483647";
45527                   tailf:info "<1-2147483647>;;Upper limit on import prefixes without hogging memory";
45528                 }
45529               }
45530               leaf map {
45531                 tailf:info "Route-map based VRF import";
45532                 description
45533                   "Route-map based VRF import";
45534                 type string {
45535                   tailf:info "WORD;;VRF import route-map name";
45536                 }
45537               }
45538             }
45539           }
45540         }
45541         container maximum {
45542           tailf:info "Maximum number of routes allowed in this routing table";
45543           description
45544             "Maximum number of routes allowed in this routing table";
45545           tailf:cli-incomplete-command;
45546           tailf:cli-compact-syntax;
45547           tailf:cli-sequence-commands;
45548           presence "Maximum number of routes allowed in this routing table";
45549           leaf routes {
45550             tailf:info "Maximum number of routes allowed in this routing table";
45551             description
45552               "Maximum number of routes allowed in this routing table";
45553             tailf:cli-incomplete-command;
45554             type uint32 {
45555               range "1..4294967295";
45556               tailf:info "<1-4294967295>;;Maximum number of routes allowed";
45557             }
45558           }
45559           choice maximum-choice {
45560             mandatory true;
45561             case threshold-case {
45562               leaf threshold {
45563                 tailf:cli-drop-node-name;
45564                 tailf:info "";
45565                 description
45566                   "";
45567                 type uint16 {
45568                   range "1..100";
45569                   tailf:info "<1-100>;;Threshold value (%) at which to generate a warning msg";
45570                 }
45571               }
45572               leaf reinstall {
45573                 tailf:info "Reinstall previous rejected route due to over maximum route limit";
45574                 description
45575                   "Reinstall previous rejected route due to over maximum route limit";
45576                 type uint16 {
45577                   range "1..100";
45578                   tailf:info "<1-100>;;Threshold value (%) at which to reinstall routes back to VRF";
45579                 }
45580               }
45581             }
45582             case warning-case {
45583               leaf warning-only {
45584                 tailf:info "Only give a warning message if is limit exceeded";
45585                 description
45586                   "Only give a warning message if is limit exceeded";
45587                 type empty;
45588               }
45589             }
45590           }
45591         }
45592         container mdt {
45593           tailf:info "Backbone Multicast Distribution Tree";
45594           description
45595             "Backbone Multicast Distribution Tree";
45596           tailf:cli-incomplete-command;
45597           presence "Backbone Multicast Distribution Tree";
45598           leaf default {
45599             tailf:info "The default group";
45600             description
45601               "The default group";
45602             type inet:ipv4-address {
45603               tailf:info "A.B.C.D;;IP multicast group address";
45604             }
45605           }
45606           leaf log-reuse {
45607             tailf:info "Event logging for data MDT reuse";
45608             description
45609               "Event logging for data MDT reuse";
45610             type empty;
45611           }
45612           container data {
45613             tailf:info "MDT data group range";
45614             description
45615               "MDT data group range";
45616             tailf:cli-compact-syntax;
45617             leaf mulicast-address {
45618               tailf:cli-drop-node-name;
45619               tailf:cli-incomplete-command;
45620               type inet:ipv4-address {
45621                 tailf:info "A.B.C.D;;IP multicast group address";
45622               }
45623             }
45624             leaf wildcard-bits {
45625               tailf:cli-drop-node-name;
45626               type inet:ipv4-address {
45627                 tailf:info "A.B.C.D;;Wildcard bits";
45628               }
45629             }
45630             choice mdt-data-choice {
45631               case mdt-data-threshold {
45632                 leaf threshold {
45633                   tailf:info "MDT switching threshold";
45634                   description
45635                     "MDT switching threshold";
45636                   type uint32 {
45637                     tailf:info "<1-4294967>;;Traffic rate in kilobits per second";
45638                     range "1..4294967";
45639                   }
45640                 }
45641                 leaf threshold-list {
45642                   tailf:alt-name "list";
45643                   tailf:info "Access-list";
45644                   description
45645                     "Access-list";
45646                   type mdt-data-list-type;
45647                 }
45648               }
45649               case mdt-data-list {
45650                 leaf list {
45651                   tailf:info "Access-list";
45652                   description
45653                     "Access-list";
45654                   type mdt-data-list-type;
45655                 }
45656               }
45657             }
45658           }
45659         }
45660         leaf rd {
45661           tailf:info "Specify Route Distinguisher";
45662           description
45663             "Specify Route Distinguisher";
45664           type rd-type;
45665         }
45666         list route-target {
45667           tailf:info "Specify Target VPN Extended Communities";
45668           description
45669             "Specify Target VPN Extended Communities";
45670           tailf:cli-suppress-mode;
45671           tailf:cli-delete-when-empty;
45672           key "direction target";
45673           leaf direction {
45674             type enumeration {
45675               enum "both" {
45676                 tailf:info "Both import and export Target-VPN community";
45677               }
45678               enum "export" {
45679                 tailf:code-name "direction_export";
45680                 tailf:info "Export Target-VPN community";
45681               }
45682               enum "import" {
45683                 tailf:code-name "direction_import";
45684                 tailf:info "Import Target-VPN community";
45685               }
45686             }
45687           }
45688           leaf target {
45689             type rd-type {
45690               tailf:info "ASN:nn or IP-address:nn;;Target VPN Extended Community";
45691             }
45692           }
45693         }
45694         container vpn {
45695           tailf:info "Configure VPN ID as specified in rfc2685";
45696           description
45697             "Configure VPN ID as specified in rfc2685";
45698           leaf id {
45699             tailf:info "Configure VPN ID in rfc2685 format";
45700             description
45701               "Configure VPN ID in rfc2685 format";
45702             type vpn-id-type;
45703           }
45704         }
45705       }
45706       container mcr-conf {
45707         tailf:cli-no-keyword;
45708         tailf:cli-drop-node-name;
45709         leaf multicast-routing {
45710           tailf:info "Enable IP multicast forwarding";
45711           description
45712             "Enable IP multicast forwarding";
45713           type empty;
45714         }
45715       }
45716       container multicast-routing {
45717         tailf:info "Enable IP multicast forwarding";
45718         description
45719           "Enable IP multicast forwarding";
45720         tailf:cli-incomplete-no;
45721         tailf:cli-incomplete-command;
45722         tailf:cli-diff-dependency "/ios:native/ip/vrf";
45723         tailf:cli-diff-dependency "/ios:native/vrf/definition";
45724         tailf:cli-diff-dependency "../mcr-conf/multicast-routing";
45725         list vrf {
45726           tailf:info "Select VPN Routing/Forwarding instance";
45727           description
45728             "Select VPN Routing/Forwarding instance";
45729           tailf:cli-suppress-list-no;
45730           tailf:cli-suppress-mode;
45731           tailf:cli-delete-when-empty;
45732           tailf:cli-compact-syntax;
45733           tailf:cli-reset-container;
45734           tailf:cli-diff-dependency "../../mcr-conf/multicast-routing";
45735           key "name";
45736           leaf name {
45737             type string {
45738               tailf:info "WORD;;VPN Routing/Forwarding instance name";
45739             }
45740           }
45741           leaf distributed {
45742             tailf:info "Distributed multicast switching";
45743             description
45744               "Distributed multicast switching";
45745             type empty;
45746           }
45747         }
45748         leaf distributed {
45749           tailf:info "Distributed multicast switching";
45750           description
45751             "Distributed multicast switching";
45752           tailf:cli-full-command;
45753           type empty;
45754         }
45755       }
45756       container as-path {
45757         tailf:info "BGP autonomous system path filter";
45758         description
45759           "BGP autonomous system path filter";
45760         list access-list {
45761           tailf:info "Specify an access list number";
45762           description
45763             "Specify an access list number";
45764           tailf:cli-suppress-mode;
45765           tailf:cli-delete-when-empty;
45766           tailf:cli-incomplete-command;
45767           tailf:cli-compact-syntax;
45768           key "name";
45769           leaf name {
45770             tailf:cli-incomplete-command;
45771             type uint16 {
45772               range "1..500";
45773               tailf:info "<1-500>;;AS path access list number";
45774             }
45775           }
45776           list as-path-rule {
45777             tailf:cli-suppress-mode;
45778             tailf:cli-delete-when-empty;
45779             tailf:cli-drop-node-name;
45780             tailf:cli-compact-syntax;
45781             tailf:cli-show-long-obu-diffs;
45782             ordered-by user;
45783             key "operation rule";
45784             leaf operation {
45785               tailf:cli-drop-node-name;
45786               tailf:cli-incomplete-command;
45787               type enumeration {
45788                 enum "deny" {
45789                   tailf:code-name "operation_deny";
45790                   tailf:info "Specify packets to reject";
45791                 }
45792                 enum "permit" {
45793                   tailf:code-name "operation_permit";
45794                   tailf:info "Specify packets to forward";
45795                 }
45796               }
45797             }
45798             leaf rule {
45799               tailf:cli-drop-node-name;
45800               tailf:cli-multi-value;
45801               tailf:cli-full-command;
45802               type string {
45803                 tailf:info "LINE;;A regular-expression to match BGP AS paths.";
45804               }
45805             }
45806           }
45807         }
45808       }
45809       container local {
45810         tailf:info "Specify local options";
45811         description
45812           "Specify local options";
45813         list pool {
45814           tailf:info "IP Local address pool lists";
45815           description
45816             "IP Local address pool lists";
45817           tailf:cli-suppress-mode;
45818           tailf:cli-delete-when-empty;
45819           tailf:cli-compact-syntax;
45820           tailf:cli-sequence-commands {
45821             tailf:cli-reset-siblings;
45822           }
45823           key "id";
45824           leaf id {
45825             type union {
45826               type string {
45827                 tailf:info "WORD;;Create named local address pool";
45828               }
45829               type enumeration {
45830                 enum "default" {
45831                   tailf:info "Create default local address pool";
45832                 }
45833               }
45834             }
45835           }
45836           leaf start {
45837             tailf:cli-drop-node-name;
45838             type inet:ipv4-address {
45839               tailf:info "A.B.C.D;;First IP address of range";
45840             }
45841           }
45842           leaf last {
45843             tailf:cli-drop-node-name;
45844             tailf:cli-optional-in-sequence;
45845             type inet:ipv4-address {
45846               tailf:info "A.B.C.D;;Last IP address of range";
45847             }
45848           }
45849           leaf group {
45850             tailf:info "Create ip local pool group";
45851             description
45852               "Create ip local pool group";
45853             type string {
45854               tailf:info "WORD;;Group name for this named local address pool";
45855             }
45856           }
45857         }
45858       }
45859       container cef {
45860         tailf:info "Cisco Express Forwarding";
45861         description
45862           "Cisco Express Forwarding";
45863         presence "true";
45864         leaf distributed {
45865           tailf:info "Distributed Cisco Express Forwarding";
45866           description
45867             "Distributed Cisco Express Forwarding";
45868           tailf:cli-full-command;
45869           type empty;
45870         }
45871       }
45872       leaf classless {
45873         tailf:info "Follow classless routing forwarding rules";
45874         description
45875           "Follow classless routing forwarding rules";
45876         type empty;
45877       }
45878       container community-list {
45879         tailf:info "Add a community list entry";
45880         description
45881           "Add a community list entry";
45882         list number-standard {
45883           tailf:cli-drop-node-name;
45884           tailf:cli-incomplete-command;
45885           tailf:cli-suppress-mode;
45886           tailf:cli-delete-when-empty;
45887           key "no";
45888           leaf no {
45889             type uint16 {
45890               range "1..99";
45891               tailf:info "<1-99>;;Community list number (standard)";
45892             }
45893           }
45894           uses ip-community-list-standard-grouping;
45895         }
45896         list number-expanded {
45897           tailf:cli-drop-node-name;
45898           tailf:cli-incomplete-command;
45899           tailf:cli-suppress-mode;
45900           tailf:cli-delete-when-empty;
45901           key "no";
45902           leaf no {
45903             type uint16 {
45904               range "100..500";
45905               tailf:info "<100-500>;;Community list number (expanded)";
45906             }
45907           }
45908           uses ip-community-list-expanded-grouping;
45909         }
45910         list expanded {
45911           tailf:info "Add an expanded community-list entry";
45912           description
45913             "Add an expanded community-list entry";
45914           tailf:cli-incomplete-command;
45915           tailf:cli-suppress-mode;
45916           tailf:cli-delete-when-empty;
45917           key "name";
45918           leaf name {
45919             type string {
45920               tailf:info "WORD;;Community list name";
45921             }
45922           }
45923           uses ip-community-list-expanded-grouping;
45924         }
45925         list standard {
45926           tailf:info "Add a standard community-list entry";
45927           description
45928             "Add a standard community-list entry";
45929           tailf:cli-incomplete-command;
45930           tailf:cli-suppress-mode;
45931           tailf:cli-delete-when-empty;
45932           key "name";
45933           leaf name {
45934             type string {
45935               tailf:info "WORD;;Community list name";
45936             }
45937           }
45938           uses ip-community-list-standard-grouping;
45939         }
45940       }
45941       container domain {
45942         tailf:info "IP DNS Resolver";
45943         description
45944           "IP DNS Resolver";
45945         leaf list {
45946           tailf:info "Domain name to complete unqualified host names";
45947           description
45948             "Domain name to complete unqualified host names";
45949           type string {
45950             tailf:info "WORD;;A domain name";
45951           }
45952         }
45953         leaf lookup {
45954           tailf:info "Enable IP Domain Name System hostname translation";
45955           description
45956             "Enable IP Domain Name System hostname translation";
45957           tailf:cli-boolean-no;
45958           tailf:cli-trim-default;
45959           type boolean;
45960           default "true";
45961         }
45962         container lookup-settings {
45963           tailf:cli-drop-node-name;
45964           container lookup {
45965             tailf:info "Enable IP Domain Name System hostname translation";
45966             description
45967               "Enable IP Domain Name System hostname translation";
45968             leaf nsap {
45969               tailf:info "Enable IP DNS queries for CLNS NSAP addresses";
45970               description
45971                 "Enable IP DNS queries for CLNS NSAP addresses";
45972               tailf:cli-full-command;
45973               type empty;
45974             }
45975             container source-interface {
45976               tailf:info "Specify source interface for DNS resolver";
45977               description
45978                 "Specify source interface for DNS resolver";
45979               tailf:cli-diff-dependency "/ios:native/interface";
45980               uses interface-grouping;
45981             }
45982           }
45983           leaf name {
45984             tailf:info "Define the default domain name";
45985             description
45986               "Define the default domain name";
45987             type string {
45988               tailf:info "WORD;;Default domain name";
45989             }
45990           }
45991         }
45992         leaf name {
45993           tailf:info "Define the default domain name";
45994           description
45995             "Define the default domain name";
45996           type string {
45997             tailf:info "WORD;;Default domain name";
45998           }
45999         }
46000       }
46001       container domain-lookup {
46002         tailf:info "Enable IP Domain Name System hostname translation";
46003         description
46004           "Enable IP Domain Name System hostname translation";
46005         tailf:cli-show-no;
46006         presence "true";
46007         leaf nsap {
46008           tailf:info "Enable IP DNS queries for CLNS NSAP addresses";
46009           description
46010             "Enable IP DNS queries for CLNS NSAP addresses";
46011           type empty;
46012         }
46013         container source-interface {
46014           tailf:info "Specify source interface for DNS resolver";
46015           description
46016             "Specify source interface for DNS resolver";
46017           tailf:cli-diff-dependency "/ios:native/interface";
46018           uses interface-grouping;
46019         }
46020       }
46021       leaf domain-name {
46022         tailf:info "Define the default domain name";
46023         description
46024           "Define the default domain name";
46025         type string {
46026           tailf:info "WORD;;Default domain name";
46027         }
46028       }
46029       container dns {
46030         tailf:info "Configure DNS server for a zone";
46031         description
46032           "Configure DNS server for a zone";
46033         container server {
46034           tailf:info "Enable DNS server";
46035           description
46036             "Enable DNS server";
46037           presence "true";
46038         }
46039       }
46040       leaf default-gateway {
46041         tailf:info "Specify default gateway (if not routing IP)";
46042         description
46043           "Specify default gateway (if not routing IP)";
46044         type inet:ipv4-address {
46045           tailf:info "A.B.C.D;;IP address of default gateway";
46046         }
46047       }
46048       container dhcp {
46049         tailf:info "Configure DHCP server and relay parameters";
46050         description
46051           "Configure DHCP server and relay parameters";
46052         list class {
46053           tailf:info "Configure DHCP classes";
46054           description
46055             "Configure DHCP classes";
46056           key "id";
46057           leaf id {
46058             type string {
46059               tailf:info "WORD;;Class name";
46060             }
46061           }
46062           container relay {
46063             tailf:info "Enter relay agent information option configuration submode";
46064             description
46065               "Enter relay agent information option configuration submode";
46066             container agent {
46067               tailf:info "Enter relay agent information option configuration submode";
46068               description
46069                 "Enter relay agent information option configuration submode";
46070               leaf information {
46071                 tailf:info "Enter relay agent information option configuration submode";
46072                 description
46073                   "Enter relay agent information option configuration submode";
46074                 type empty;
46075               }
46076             }
46077           }
46078           leaf remark {
46079             tailf:info "Specify a remark for this class";
46080             description
46081               "Specify a remark for this class";
46082             tailf:cli-multi-value;
46083             type string {
46084               tailf:info "LINE;;Up to 240 characters describing this class";
46085               length "1..240";
46086             }
46087           }
46088         }
46089         container conflict {
46090           tailf:info "DHCP address conflict parameters";
46091           description
46092             "DHCP address conflict parameters";
46093           leaf logging {
46094             tailf:info "Record address conflicts in a log file";
46095             description
46096               "Record address conflicts in a log file";
46097             tailf:cli-boolean-no;
46098             tailf:cli-trim-default;
46099             type boolean;
46100             default "true";
46101           }
46102           container resolution {
46103             tailf:info "DHCP address conflict resolution";
46104             description
46105               "DHCP address conflict resolution";
46106             presence "true";
46107             leaf interval {
46108               tailf:info "Time in Minutes";
46109               description
46110                 "Time in Minutes";
46111               type uint32 {
46112                 tailf:info "<5-1440>;;Minutes";
46113                 range "5..1440";
46114               }
46115             }
46116           }
46117         }
46118         list excluded-address {
46119           tailf:info "Prevent DHCP from assigning certain addresses";
46120           description
46121             "Prevent DHCP from assigning certain addresses";
46122           tailf:cli-suppress-mode;
46123           tailf:cli-compact-syntax;
46124           tailf:cli-sequence-commands;
46125           key "low-address";
46126           leaf low-address {
46127             type inet:ipv4-address {
46128               tailf:info "A.B.C.D;;Low IP address";
46129             }
46130           }
46131           leaf vrf {
46132             tailf:info "VRF name for excluded address range";
46133             description
46134               "VRF name for excluded address range";
46135             tailf:cli-prefix-key;
46136             tailf:cli-optional-in-sequence;
46137             type string {
46138               tailf:info "WORD;;VPN Routing/Forwarding instance name";
46139             }
46140           }
46141           leaf high-address {
46142             tailf:cli-drop-node-name;
46143             type inet:ipv4-address {
46144               tailf:info "A.B.C.D;;High IP address";
46145             }
46146           }
46147         }
46148         list pool {
46149           tailf:info "Configure DHCP address pools";
46150           description
46151             "Configure DHCP address pools";
46152           tailf:cli-mode-name "dhcp-config";
46153           key "id";
46154           leaf id {
46155             type string {
46156               tailf:info "WORD;;Pool name";
46157             }
46158           }
46159           leaf-list default-router {
46160             tailf:info "Default routers";
46161             description
46162               "Default routers";
46163             tailf:cli-flat-list-syntax;
46164             type union {
46165               type string;
46166               type inet:ipv4-address {
46167                 tailf:info "Hostname or A.B.C.D;;Router's name or IP address";
46168               }
46169             }
46170           }
46171           leaf-list dns-server {
46172             tailf:info "DNS servers";
46173             description
46174               "DNS servers";
46175             tailf:cli-flat-list-syntax;
46176             type union {
46177               type string;
46178               type inet:ipv4-address {
46179                 tailf:info "Hostname or A.B.C.D;;Router's name or IP address";
46180               }
46181             }
46182           }
46183           leaf domain-name {
46184             tailf:info "Domain name";
46185             description
46186               "Domain name";
46187             tailf:cli-full-command;
46188             type string {
46189               tailf:info "WORD;;Domain name";
46190             }
46191           }
46192           container network {
46193             tailf:info "Network number and mask";
46194             description
46195               "Network number and mask";
46196             tailf:cli-compact-syntax;
46197             tailf:cli-sequence-commands;
46198             leaf number {
46199               tailf:cli-drop-node-name;
46200               type inet:ipv4-address {
46201                 tailf:info "A.B.C.D;;Network number in dotted-decimal notation";
46202               }
46203             }
46204             leaf mask {
46205               tailf:cli-drop-node-name;
46206               tailf:cli-optional-in-sequence;
46207               type union {
46208                 type string;
46209                 type inet:ipv4-address {
46210                   tailf:info "/nn or A.B.C.D;;Network mask or prefix length";
46211                 }
46212               }
46213             }
46214             leaf secondary {
46215               tailf:info "Configure as secondary subnet";
46216               description
46217                 "Configure as secondary subnet";
46218               type empty;
46219             }
46220           }
46221         }
46222         leaf smart-relay {
46223           tailf:info "Enable Smart Relay feature";
46224           description
46225             "Enable Smart Relay feature";
46226           type empty;
46227         }
46228         container snooping {
46229           tailf:info "DHCP Snooping";
46230           description
46231             "DHCP Snooping";
46232           presence "true";
46233           tailf:cli-display-separated;
46234           container information {
46235             tailf:info "DHCP Snooping information";
46236             description
46237               "DHCP Snooping information";
46238             container option {
46239               tailf:info "DHCP Snooping information option";
46240               description
46241                 "DHCP Snooping information option";
46242               presence "true";
46243               leaf allow-untrusted {
46244                 tailf:info "DHCP Snooping information option allow-untrusted";
46245                 description
46246                   "DHCP Snooping information option allow-untrusted";
46247                 type empty;
46248               }
46249               container format {
46250                 tailf:info "Option 82 information format";
46251                 description
46252                   "Option 82 information format";
46253                 container remote-id {
46254                   tailf:info "Remote id option 82 format";
46255                   description
46256                     "Remote id option 82 format";
46257                   choice remote-id-choice {
46258                     leaf hostname {
46259                       tailf:info "Use configured hostname for remote id";
46260                       description
46261                         "Use configured hostname for remote id";
46262                       type empty;
46263                     }
46264                     leaf string {
46265                       tailf:info "User defined string for remote id";
46266                       description
46267                         "User defined string for remote id";
46268                       type string {
46269                         tailf:info "WORD;;Use string for remote id (max length 63)";
46270                       }
46271                     }
46272                   }
46273                 }
46274               }
46275             }
46276           }
46277           container track {
46278             tailf:info "DHCP snooping track";
46279             description
46280               "DHCP snooping track";
46281             leaf host {
46282               tailf:info "DHCP snooping track host";
46283               description
46284                 "DHCP snooping track host";
46285               type empty;
46286             }
46287           }
46288           container verify {
46289             tailf:info "DHCP snooping verify";
46290             description
46291               "DHCP snooping verify";
46292             leaf mac-address {
46293               tailf:info "DHCP snooping verify mac-address";
46294               description
46295                 "DHCP snooping verify mac-address";
46296               type empty;
46297             }
46298             leaf no-relay-agent-address {
46299               tailf:info "DHCP snooping verify giaddr";
46300               description
46301                 "DHCP snooping verify giaddr";
46302               type empty;
46303             }
46304           }
46305           leaf-list vlan {
46306             tailf:info "DHCP Snooping vlan";
46307             description
46308               "DHCP Snooping vlan";
46309             type string {
46310               tailf:info "WORD;;DHCP Snooping vlan fist number or vlan range, example: 1,3-5,7,9-11";
46311             }
46312           }
46313         }
46314       }
46315       container flow-cache {
46316         tailf:info "Configure netflow cache parameters";
46317         description
46318           "Configure netflow cache parameters";
46319         container timeout {
46320           tailf:info "Specify flow cache timeout parameters";
46321           description
46322             "Specify flow cache timeout parameters";
46323           leaf active {
46324             tailf:info "Specify the active flow timeout";
46325             description
46326               "Specify the active flow timeout";
46327             type uint16 {
46328               tailf:info "<1-60>;;Timeout in minutes";
46329               range "1..60";
46330             }
46331           }
46332         }
46333       }
46334       container flow-export {
46335         tailf:info "Specify host/port to send flow statistics";
46336         description
46337           "Specify host/port to send flow statistics";
46338         container destination {
46339           tailf:info "Specify the Destination IP address";
46340           description
46341             "Specify the Destination IP address";
46342           tailf:cli-sequence-commands {
46343             tailf:cli-reset-all-siblings;
46344           }
46345           tailf:cli-compact-syntax;
46346           leaf ip {
46347             tailf:cli-drop-node-name;
46348             type host-type {
46349               tailf:info "Hostname or A.B.C.D  Destination IP address";
46350             }
46351           }
46352           leaf port {
46353             tailf:cli-drop-node-name;
46354             type uint16 {
46355               tailf:info "<1-65535>;;UDP port number";
46356               range "1..65535";
46357             }
46358           }
46359         }
46360         container source {
46361           tailf:info "Specify the interface for source address";
46362           description
46363             "Specify the interface for source address";
46364           tailf:cli-diff-dependency "/ios:native/interface";
46365           uses interface-grouping;
46366         }
46367         leaf version {
46368           tailf:info "Specify the version number";
46369           description
46370             "Specify the version number";
46371           type enumeration {
46372             enum "1";
46373             enum "5";
46374             enum "9";
46375           }
46376         }
46377       }
46378       container forward-protocol {
46379         tailf:info "Controls forwarding of physical and directed IP broadcasts";
46380         description
46381           "Controls forwarding of physical and directed IP broadcasts";
46382         choice protocol-choice {
46383           leaf protocol {
46384             tailf:cli-drop-node-name;
46385             type enumeration {
46386               enum "nd" {
46387                 tailf:info "Sun's Network Disk protocol";
46388               }
46389               enum "sdns" {
46390                 tailf:info "Network Security Protocol";
46391               }
46392               enum "turbo-flood" {
46393                 tailf:info "Fast flooding of UDP broadcasts";
46394               }
46395             }
46396           }
46397           container spanning-tree {
46398             tailf:info "Use transparent bridging to flood UDP broadcasts";
46399             description
46400               "Use transparent bridging to flood UDP broadcasts";
46401             presence "true";
46402             leaf any-local-broadcast {
46403               tailf:info "Accept any local broadcast when flooding";
46404               description
46405                 "Accept any local broadcast when flooding";
46406               type empty;
46407             }
46408           }
46409           leaf udp {
46410             tailf:info "Packets to a specific UDP port";
46411             description
46412               "Packets to a specific UDP port";
46413             type string;
46414           }
46415         }
46416       }
46417       container ftp {
46418         tailf:info "FTP configuration commands";
46419         description
46420           "FTP configuration commands";
46421         container source-interface {
46422           tailf:info "Specify interface for source address in FTP connections";
46423           description
46424             "Specify interface for source address in FTP connections";
46425           tailf:cli-diff-dependency "/ios:native/interface";
46426           uses interface-grouping;
46427         }
46428         leaf passive {
46429           tailf:info "Connect using passive mode";
46430           description
46431             "Connect using passive mode";
46432           type empty;
46433         }
46434         container password {
46435           tailf:info "Specify password for FTP connections;";
46436           description
46437             "Specify password for FTP connections;";
46438           uses password-grouping;
46439         }
46440         leaf username {
46441           tailf:info "Specify username for FTP connections";
46442           description
46443             "Specify username for FTP connections";
46444           type string;
46445         }
46446       }
46447       container telnet {
46448         tailf:info "Specify telnet options";
46449         description
46450           "Specify telnet options";
46451         leaf source-interface {
46452           tailf:info "Specify source interface";
46453           description
46454             "Specify source interface";
46455           type string;
46456         }
46457       }
46458       list host {
46459         tailf:info "Add an entry to the ip hostname table";
46460         description
46461           "Add an entry to the ip hostname table";
46462         tailf:cli-suppress-mode;
46463         key "name";
46464         leaf name {
46465           type string {
46466             tailf:info "WORD;;Name of host";
46467           }
46468         }
46469         leaf ip {
46470           tailf:cli-drop-node-name;
46471           type inet:ip-address {
46472             tailf:info "A.B.C.D;;Host IP addressX:X:X:X::X;;Host IPv6 Address";
46473           }
46474         }
46475       }
46476       container http {
46477         tailf:info "HTTP server configuration";
46478         description
46479           "HTTP server configuration";
46480         leaf access-class {
46481           tailf:info "Restrict http server access by access-class";
46482           description
46483             "Restrict http server access by access-class";
46484           tailf:cli-full-command;
46485           type uint8 {
46486             tailf:info "<1-99>;;Access list number";
46487             range "1..99";
46488           }
46489         }
46490         container authentication {
46491           tailf:info "Set http server authentication method";
46492           description
46493             "Set http server authentication method";
46494           choice authentication-choice {
46495             leaf aaa {
46496               tailf:info "Use AAA access control methods";
46497               description
46498                 "Use AAA access control methods";
46499               tailf:cli-full-command;
46500               type empty;
46501             }
46502             leaf local {
46503               tailf:info "Use local username and passwords";
46504               description
46505                 "Use local username and passwords";
46506               tailf:cli-full-command;
46507               type empty;
46508             }
46509           }
46510         }
46511         leaf server {
46512           tailf:info "Enable http server";
46513           description
46514             "Enable http server";
46515           tailf:cli-boolean-no;
46516           tailf:cli-show-with-default;
46517           tailf:cli-full-command;
46518           type boolean;
46519         }
46520         leaf secure-server {
46521           tailf:info "Enable HTTP secure server";
46522           description
46523             "Enable HTTP secure server";
46524           tailf:cli-boolean-no;
46525           tailf:cli-show-with-default;
46526           tailf:cli-full-command;
46527           type boolean;
46528           default "false";
46529         }
46530         leaf secure-trustpoint {
46531           tailf:info "Set http secure server certificate trustpoint";
46532           description
46533             "Set http secure server certificate trustpoint";
46534           type string {
46535             tailf:info "WORD;;Trustpoint name";
46536           }
46537         }
46538         container timeout-policy {
46539           tailf:info "Set http server time-out policy parameters";
46540           description
46541             "Set http server time-out policy parameters";
46542           tailf:cli-compact-syntax;
46543           tailf:cli-reset-container;
46544           tailf:cli-sequence-commands;
46545           leaf idle {
46546             tailf:info "Idle time-out of a http server connection in seconds";
46547             description
46548               "Idle time-out of a http server connection in seconds";
46549             tailf:cli-incomplete-command;
46550             type uint16 {
46551               tailf:info "<1-600>;;Connection idle time-out value in seconds";
46552               range "1..600";
46553             }
46554           }
46555           leaf life {
46556             tailf:info "Life time of a http server connection in seconds";
46557             description
46558               "Life time of a http server connection in seconds";
46559             tailf:cli-incomplete-command;
46560             type uint32 {
46561               tailf:info "<1-86400>;;Connection life time value in seconds";
46562               range "1..86400";
46563             }
46564           }
46565           leaf requests {
46566             tailf:info "Maximum number of requests allowed on a http server connection";
46567             description
46568               "Maximum number of requests allowed on a http server connection";
46569             type uint32 {
46570               tailf:info "<1-86400>;;Maximum number of requests allowed on a http server connection";
46571               range "1..86400";
46572             }
46573           }
46574         }
46575         container client {
46576           tailf:info "Set http client parameters";
46577           description
46578             "Set http client parameters";
46579           tailf:cli-incomplete-command;
46580           leaf secure-trustpoint {
46581             tailf:info "Set http client certificate secure trustpoint";
46582             description
46583               "Set http client certificate secure trustpoint";
46584             type string {
46585               tailf:info "WORD;;Trustpoint name";
46586             }
46587           }
46588           leaf source-interface {
46589             tailf:cli-full-command;
46590             tailf:cli-multi-value;
46591             tailf:info "Specify interface for source address in all HTTP(S) client connections";
46592             description
46593               "Specify interface for source address in all HTTP(S) client connections";
46594             type string {
46595               tailf:info "WORD;;Interface name";
46596             }
46597           }
46598         }
46599       }
46600       container igmp {
46601         tailf:info "IGMP global configuration";
46602         description
46603           "IGMP global configuration";
46604         container snooping {
46605           tailf:info "Global IGMP Snooping enable for Catalyst Vlans";
46606           description
46607             "Global IGMP Snooping enable for Catalyst Vlans";
46608           presence "true";
46609           leaf l2-entry-limit {
46610             tailf:info "limit on the l2 entry that can be installed by IGMP snooping";
46611             description
46612               "limit on the l2 entry that can be installed by IGMP snooping";
46613             type uint32 {
46614               tailf:info "<1-100000>;;maximum number of l2 entries";
46615               range "1..100000";
46616             }
46617           }
46618         }
46619         container ssm-map {
46620           tailf:info "SSM mapping commands";
46621           description
46622             "SSM mapping commands";
46623           leaf enable {
46624             tailf:info "Enable SSM group to source mapping";
46625             description
46626               "Enable SSM group to source mapping";
46627             tailf:cli-full-command;
46628             type empty;
46629           }
46630           container query {
46631             tailf:info "Which database should we query for the source";
46632             description
46633               "Which database should we query for the source";
46634             leaf dns {
46635               tailf:info "Use DNS for source lookup";
46636               description
46637                 "Use DNS for source lookup";
46638               tailf:cli-full-command;
46639               tailf:cli-show-no;
46640               type empty;
46641             }
46642           }
46643           container static {
46644             tailf:info "SSM static group to source mapping";
46645             description
46646               "SSM static group to source mapping";
46647             tailf:cli-sequence-commands;
46648             tailf:cli-compact-syntax;
46649             leaf acl {
46650               tailf:cli-drop-node-name;
46651               type union {
46652                 type uint16 {
46653                   tailf:info "<1-99>;;SSM group access list number";
46654                   range "1..99";
46655                 }
46656                 type string {
46657                   tailf:info "WORD;;SSM group named access list";
46658                 }
46659               }
46660             }
46661             leaf source-ip {
46662               tailf:cli-drop-node-name;
46663               type inet:ipv4-address {
46664                 tailf:info "A.B.C.D;;SSM source address";
46665               }
46666             }
46667           }
46668         }
46669       }
46670       container multicast {
46671         tailf:info "Global IP Multicast Commands";
46672         description
46673           "Global IP Multicast Commands";
46674         leaf multipath {
46675           tailf:info "RPF across equal-cost paths";
46676           description
46677             "RPF across equal-cost paths";
46678           type empty;
46679         }
46680       }
46681       container nat {
46682         tailf:info "NAT configuration commands";
46683         description
46684           "NAT configuration commands";
46685         tailf:cli-diff-dependency "/ios:native/ip/vrf";
46686         tailf:cli-diff-dependency "/ios:native/vrf/definition";
46687         tailf:cli-diff-dependency "/ios:native/vrf/definition/address-family";
46688         list pool {
46689           tailf:info "Define pool of addresses";
46690           description
46691             "Define pool of addresses";
46692           tailf:cli-suppress-mode;
46693           tailf:cli-delete-when-empty;
46694           tailf:cli-compact-syntax;
46695           tailf:cli-sequence-commands {
46696             tailf:cli-reset-siblings;
46697           }
46698           key "id";
46699           leaf id {
46700             type string {
46701               tailf:info "WORD;;Pool name";
46702             }
46703           }
46704           leaf start-address {
46705             tailf:cli-drop-node-name;
46706             tailf:cli-optional-in-sequence;
46707             type inet:ipv4-address {
46708               tailf:info "A.B.C.D;;Start IP address";
46709             }
46710           }
46711           leaf end-address {
46712             tailf:cli-drop-node-name;
46713             when "../start-address" {
46714               tailf:dependency "../start-address";
46715             }
46716             type inet:ipv4-address {
46717               tailf:info "A.B.C.D;;End IP address";
46718             }
46719           }
46720           choice prefix-choice {
46721             leaf netmask {
46722               tailf:info "Specify the network mask";
46723               description
46724                 "Specify the network mask";
46725               type inet:ipv4-address {
46726                 tailf:info "A.B.C.D;;Network mask";
46727               }
46728             }
46729             leaf prefix-length {
46730               tailf:info "Specify the prefix length";
46731               description
46732                 "Specify the prefix length";
46733               type uint8 {
46734                 tailf:info "<1-32>;;Prefix length";
46735                 range "1..32";
46736               }
46737             }
46738           }
46739           leaf accounting {
46740             tailf:cli-optional-in-sequence;
46741             tailf:info "Specify the accounting";
46742             description
46743               "Specify the accounting";
46744             type string {
46745               tailf:info "WORD;;Accounting method-list name";
46746             }
46747           }
46748           choice nat-choice {
46749             leaf arp-ping {
46750               tailf:info "WLAN ARP Ping";
46751               description
46752                 "WLAN ARP Ping";
46753               type empty;
46754             }
46755             leaf type {
46756               tailf:info "Specify the pool type";
46757               description
46758                 "Specify the pool type";
46759               type enumeration {
46760                 enum "match-host" {
46761                   tailf:info "Keep host numbers the same after translation";
46762                 }
46763                 enum "rotary" {
46764                   tailf:info "Rotary address pool";
46765                 }
46766               }
46767             }
46768             leaf add-route {
46769               tailf:info "Add special route to Virtual Interface";
46770               description
46771                 "Add special route to Virtual Interface";
46772               type empty;
46773             }
46774           }
46775         }
46776         container inside {
46777           tailf:info "Inside address translation";
46778           description
46779             "Inside address translation";
46780           container source {
46781             tailf:info "Source address translation";
46782             description
46783               "Source address translation";
46784             list list {
46785               tailf:info "Specify access list describing local addresses";
46786               description
46787                 "Specify access list describing local addresses";
46788               tailf:cli-suppress-mode;
46789               tailf:cli-delete-when-empty;
46790               tailf:cli-compact-syntax;
46791               tailf:cli-sequence-commands {
46792                 tailf:cli-reset-all-siblings;
46793               }
46794               tailf:cli-incomplete-command;
46795               key "id";
46796               leaf id {
46797                 type union {
46798                   type uint16 {
46799                     tailf:info "<1-2699>;;Access list number for global addresses";
46800                     range "1..2699";
46801                   }
46802                   type string {
46803                     tailf:info "WORD;;Access list name for global addresses";
46804                   }
46805                 }
46806               }
46807               choice pool-or-interface {
46808                 case pool-choice {
46809                   leaf pool {
46810                     tailf:info "Name pool of global addresses";
46811                     description
46812                       "Name pool of global addresses";
46813                     type string;
46814                     tailf:non-strict-leafref {
46815                       path "/ios:native/ip/nat/pool/id";
46816                     }
46817                   }
46818                   leaf redundancy {
46819                     tailf:info "NAT redundancy operation";
46820                     description
46821                       "NAT redundancy operation";
46822                     tailf:cli-optional-in-sequence;
46823                     type uint8 {
46824                       tailf:info "<1-2>;;IP redundancy ID";
46825                       range "1..2";
46826                     }
46827                   }
46828                   leaf mapping-id {
46829                     tailf:info "Associate a mapping id to this mapping";
46830                     description
46831                       "Associate a mapping id to this mapping";
46832                     tailf:cli-optional-in-sequence;
46833                     type uint32 {
46834                       tailf:info "<1-2147483647>;;Stateful NAT mapping id";
46835                       range "1..2147483647";
46836                     }
46837                   }
46838                 }
46839                 case interface-choice {
46840                   container interface {
46841                     tailf:info "Specify interface for global address";
46842                     description
46843                       "Specify interface for global address";
46844                     tailf:cli-compact-syntax;
46845                     tailf:cli-flatten-container;
46846                     uses interface-grouping;
46847                   }
46848                 }
46849               }
46850               leaf no-payload {
46851                 tailf:info "No translation of embedded address/port in the payload";
46852                 description
46853                   "No translation of embedded address/port in the payload";
46854                 tailf:cli-optional-in-sequence;
46855                 type empty;
46856               }
46857               leaf reversible {
46858                 tailf:cli-optional-in-sequence;
46859                 type empty;
46860               }
46861               leaf vrf {
46862                 tailf:info "Specify vrf";
46863                 description
46864                   "Specify vrf";
46865                 tailf:cli-optional-in-sequence;
46866                 type string {
46867                   tailf:info "WORD;;vrf name";
46868                 }
46869               }
46870               leaf match-in-vrf {
46871                 when "../vrf";
46872                 tailf:info "Match incoming vrf";
46873                 description
46874                   "Match incoming vrf";
46875                 tailf:cli-optional-in-sequence;
46876                 type empty;
46877               }
46878               leaf overload {
46879                 tailf:info "Overload an address translation";
46880                 description
46881                   "Overload an address translation";
46882                 tailf:cli-optional-in-sequence;
46883                 type empty;
46884               }
46885               leaf oer {
46886                 tailf:info "Use with vtemplate only. On new translation, if OER BR is UP, OER will select IP from outgoing Interface. All packets matching translation are forwarded over Interface for duration of translation.";
46887                 description
46888                   "Use with vtemplate only. On new translation, if OER BR is UP, OER will select IP from outgoing Interface. All packets matching translation are forwarded over Interface for duration of translation.";
46889                 type empty;
46890               }
46891             }
46892             container static {
46893               tailf:info "Specify static local->global mapping";
46894               description
46895                 "Specify static local->global mapping";
46896               list nat-static-transport-list {
46897                 tailf:cli-drop-node-name;
46898                 tailf:cli-suppress-mode;
46899                 tailf:cli-delete-when-empty;
46900                 tailf:cli-compact-syntax;
46901                 key "local-ip global-ip";
46902                 leaf proto {
46903                   tailf:cli-drop-node-name;
46904                   tailf:cli-prefix-key;
46905                   tailf:cli-optional-in-sequence;
46906                   type enumeration {
46907                     enum "tcp" {
46908                       tailf:info "Transmission Control Protocol";
46909                     }
46910                     enum "udp" {
46911                       tailf:info "User Datagram Protocol";
46912                     }
46913                   }
46914                 }
46915                 leaf network {
46916                   tailf:info "Subnet translation";
46917                   description
46918                     "Subnet translation";
46919                   tailf:cli-prefix-key;
46920                   tailf:cli-optional-in-sequence;
46921                   type empty;
46922                 }
46923                 leaf local-ip {
46924                   tailf:cli-drop-node-name;
46925                   type inet:ipv4-address {
46926                     tailf:info "A.B.C.D;;Inside local IP address";
46927                   }
46928                 }
46929                 leaf local-port {
46930                   tailf:cli-drop-node-name;
46931                   tailf:cli-optional-in-sequence;
46932                   type uint16 {
46933                     tailf:info "<1-65535>;;Local UDP/TCP port";
46934                     range "1..65535";
46935                   }
46936                 }
46937                 leaf global-ip {
46938                   tailf:cli-drop-node-name;
46939                   type inet:ipv4-address {
46940                     tailf:info "A.B.C.D;;Inside global IP address";
46941                   }
46942                 }
46943                 leaf mask {
46944                   tailf:cli-drop-node-name;
46945                   tailf:cli-optional-in-sequence;
46946                   type union {
46947                     type string;
46948                     type inet:ipv4-address {
46949                       tailf:info "/nn or A.B.C.D;;Network mask or prefix length";
46950                     }
46951                   }
46952                 }
46953                 leaf global-port {
46954                   tailf:cli-drop-node-name;
46955                   tailf:cli-optional-in-sequence;
46956                   type uint16 {
46957                     tailf:info "<1-65535>;;Global UDP/TCP port";
46958                     range "1..65535";
46959                   }
46960                 }
46961                 leaf extendable {
46962                   tailf:info "Extend this translation when used";
46963                   description
46964                     "Extend this translation when used";
46965                   tailf:cli-optional-in-sequence;
46966                   type empty;
46967                 }
46968                 leaf no-alias {
46969                   tailf:info "Do not create an alias for the global address";
46970                   description
46971                     "Do not create an alias for the global address";
46972                   tailf:cli-optional-in-sequence;
46973                   type empty;
46974                 }
46975                 leaf no-payload {
46976                   tailf:info "No translation of embedded address/port in the payload";
46977                   description
46978                     "No translation of embedded address/port in the payload";
46979                   tailf:cli-optional-in-sequence;
46980                   type empty;
46981                 }
46982                 leaf route-map {
46983                   tailf:info "Specify route-map";
46984                   description
46985                     "Specify route-map";
46986                   tailf:cli-optional-in-sequence;
46987                   type string {
46988                     tailf:info "WORD;;Route-map name";
46989                   }
46990                 }
46991                 leaf reversible {
46992                   when "../route-map";
46993                   tailf:cli-optional-in-sequence;
46994                   type empty;
46995                 }
46996                 leaf redundancy {
46997                   tailf:info "NAT redundancy operation";
46998                   description
46999                     "NAT redundancy operation";
47000                   tailf:cli-optional-in-sequence;
47001                   type union {
47002                     type uint8 {
47003                       tailf:info "<1-2>;IP redundancy ID";
47004                     }
47005                     type string {
47006                       tailf:info "WORD;;IP redundancy name";
47007                     }
47008                   }
47009                 }
47010                 leaf mapping-id {
47011                   when "../redundancy";
47012                   tailf:info "Associate a mapping id to this mapping";
47013                   description
47014                     "Associate a mapping id to this mapping";
47015                   tailf:cli-optional-in-sequence;
47016                   type uint32 {
47017                     tailf:info "<1-2147483647>;;Stateful NAT mapping id";
47018                     range "1..2147483647";
47019                   }
47020                 }
47021                 leaf vrf {
47022                   tailf:info "Specify vrf";
47023                   description
47024                     "Specify vrf";
47025                   tailf:cli-optional-in-sequence;
47026                   type string {
47027                     tailf:info "WORD;;vrf name";
47028                   }
47029                 }
47030                 leaf match-in-vrf {
47031                   when "../vrf";
47032                   tailf:info "Match incoming vrf";
47033                   description
47034                     "Match incoming vrf";
47035                   tailf:cli-optional-in-sequence;
47036                   type empty;
47037                 }
47038                 leaf forced {
47039                   tailf:info "Delete this entry and its children, even if in use";
47040                   description
47041                     "Delete this entry and its children, even if in use";
47042                   tailf:cli-optional-in-sequence;
47043                   type empty;
47044                 }
47045                 leaf overload {
47046                   tailf:info "Overload an address translation";
47047                   description
47048                     "Overload an address translation";
47049                   type empty;
47050                 }
47051               }
47052               list nat-static-transport-interface-list {
47053                 tailf:cli-drop-node-name;
47054                 tailf:cli-suppress-mode;
47055                 tailf:cli-delete-when-empty;
47056                 tailf:cli-compact-syntax;
47057                 tailf:cli-sequence-commands {
47058                   tailf:cli-reset-siblings;
47059                 }
47060                 tailf:cli-incomplete-command;
47061                 key "proto local-ip local-port";
47062                 leaf proto {
47063                   type enumeration {
47064                     enum "tcp" {
47065                       tailf:info "Transmission Control Protocol";
47066                     }
47067                     enum "udp" {
47068                       tailf:info "User Datagram Protocol";
47069                     }
47070                   }
47071                 }
47072                 leaf local-ip {
47073                   tailf:cli-drop-node-name;
47074                   type inet:ipv4-address {
47075                     tailf:info "A.B.C.D;;Inside local IP address";
47076                   }
47077                 }
47078                 leaf local-port {
47079                   tailf:cli-drop-node-name;
47080                   type uint16 {
47081                     tailf:info "<1-65535>;;Local UDP/TCP port";
47082                     range "1..65535";
47083                   }
47084                 }
47085                 container interface {
47086                   tailf:info "Specify interface for global address";
47087                   description
47088                     "Specify interface for global address";
47089                   tailf:cli-compact-syntax;
47090                   tailf:cli-flatten-container;
47091                   uses interface-grouping;
47092                 }
47093                 leaf global-port {
47094                   tailf:cli-drop-node-name;
47095                   type uint16 {
47096                     tailf:info "<1-65535>;;Global UDP/TCP port";
47097                     range "1..65535";
47098                   }
47099                 }
47100               }
47101             }
47102           }
47103           container destination {
47104             tailf:info "Destination address translation";
47105             description
47106               "Destination address translation";
47107             list list {
47108               tailf:info "Specify access list describing global addresses";
47109               description
47110                 "Specify access list describing global addresses";
47111               tailf:cli-suppress-mode;
47112               tailf:cli-delete-when-empty;
47113               tailf:cli-compact-syntax;
47114               tailf:cli-sequence-commands {
47115                 tailf:cli-reset-siblings;
47116               }
47117               tailf:cli-incomplete-command;
47118               key "id";
47119               leaf id {
47120                 type union {
47121                   type uint16 {
47122                     tailf:info "<1-2699>;;Access list number for global addresses";
47123                     range "1..2699";
47124                   }
47125                   type string {
47126                     tailf:info "WORD;;Access list name for global addresses";
47127                   }
47128                 }
47129               }
47130               leaf pool {
47131                 tailf:info "Name pool of local addresses";
47132                 description
47133                   "Name pool of local addresses";
47134                 type string;
47135                 tailf:non-strict-leafref {
47136                   path "/ios:native/ip/nat/pool/id";
47137                 }
47138               }
47139               leaf redundancy {
47140                 tailf:info "NAT redundancy operation";
47141                 description
47142                   "NAT redundancy operation";
47143                 tailf:cli-optional-in-sequence;
47144                 type uint8 {
47145                   tailf:info "<1-2>;;IP redundancy ID";
47146                   range "1..2";
47147                 }
47148               }
47149               leaf mapping-id {
47150                 tailf:info "Associate a mapping id to this mapping";
47151                 description
47152                   "Associate a mapping id to this mapping";
47153                 type uint32 {
47154                   tailf:info "<1-2147483647>;;Stateful NAT mapping id";
47155                   range "1..2147483647";
47156                 }
47157               }
47158             }
47159           }
47160         }
47161         container outside {
47162           tailf:info "Outside address translation";
47163           description
47164             "Outside address translation";
47165           list list {
47166             tailf:info "Specify access list describing global addresses";
47167             description
47168               "Specify access list describing global addresses";
47169             tailf:cli-suppress-mode;
47170             tailf:cli-delete-when-empty;
47171             tailf:cli-compact-syntax;
47172             tailf:cli-sequence-commands {
47173               tailf:cli-reset-siblings;
47174             }
47175             key "id";
47176             leaf id {
47177               type union {
47178                 type uint16 {
47179                   tailf:info "<1-2699>;;Access list number for global addresses";
47180                   range "1..2699";
47181                 }
47182                 type string {
47183                   tailf:info "WORD;;Access list name for global addresses";
47184                 }
47185               }
47186             }
47187             leaf pool {
47188               tailf:info "Name pool of local addresses";
47189               description
47190                 "Name pool of local addresses";
47191               type string;
47192               tailf:non-strict-leafref {
47193                 path "/ios:native/ip/nat/pool/id";
47194               }
47195             }
47196             leaf mapping-id {
47197               tailf:info "Associate a mapping id to this mapping";
47198               description
47199                 "Associate a mapping id to this mapping";
47200               tailf:cli-optional-in-sequence;
47201               type uint32 {
47202                 tailf:info "<1-2147483647>;;Stateful NAT mapping id";
47203                 range "1..2147483647";
47204               }
47205             }
47206             leaf vrf {
47207               tailf:info "Specify vrf";
47208               description
47209                 "Specify vrf";
47210               tailf:cli-optional-in-sequence;
47211               type string {
47212                 tailf:info "WORD;;vrf name";
47213               }
47214             }
47215             leaf add-route {
47216               tailf:info "Add a static route for outside local address";
47217               description
47218                 "Add a static route for outside local address";
47219               type empty;
47220             }
47221           }
47222           list route-map {
47223             tailf:info "Specify route-map";
47224             description
47225               "Specify route-map";
47226             tailf:cli-suppress-mode;
47227             tailf:cli-delete-when-empty;
47228             tailf:cli-compact-syntax;
47229             tailf:cli-sequence-commands {
47230               tailf:cli-reset-siblings;
47231             }
47232             key "id";
47233             leaf id {
47234               type string {
47235                 tailf:info "WORD;;Route-map name";
47236               }
47237             }
47238             leaf pool {
47239               tailf:info "Name pool of local addresses";
47240               description
47241                 "Name pool of local addresses";
47242               type string;
47243               tailf:non-strict-leafref {
47244                 path "/ios:native/ip/nat/pool/id";
47245               }
47246             }
47247             leaf mapping-id {
47248               tailf:info "Associate a mapping id to this mapping";
47249               description
47250                 "Associate a mapping id to this mapping";
47251               tailf:cli-optional-in-sequence;
47252               type uint32 {
47253                 tailf:info "<1-2147483647>;;Stateful NAT mapping id";
47254                 range "1..2147483647";
47255               }
47256             }
47257             leaf vrf {
47258               tailf:info "Specify vrf";
47259               description
47260                 "Specify vrf";
47261               tailf:cli-optional-in-sequence;
47262               type string {
47263                 tailf:info "WORD;;vrf name";
47264               }
47265             }
47266             leaf add-route {
47267               tailf:info "Add a static route for outside local address";
47268               description
47269                 "Add a static route for outside local address";
47270               type empty;
47271             }
47272           }
47273         }
47274       }
47275       leaf-list name-server {
47276         tailf:info "Specify address of name server to use";
47277         description
47278           "Specify address of name server to use";
47279         tailf:cli-flat-list-syntax;
47280         type union {
47281           type inet:ipv4-address {
47282             tailf:info "A.B.C.D;;Domain server IP address (maximum of 6)";
47283           }
47284           type inet:ipv6-address {
47285             tailf:info "X:X:X:X::X;;Domain server IPv6 address (maximum of 6)";
47286           }
47287         }
47288       }
47289       container pim {
47290         tailf:info "PIM global commands";
47291         description
47292           "PIM global commands";
47293         tailf:cli-diff-dependency "/ios:native/ip/vrf";
47294         tailf:cli-diff-dependency "/ios:native/vrf/definition";
47295         tailf:cli-diff-dependency "/ios:native/vrf/definition/address-family";
47296         uses ip-pim-grouping;
47297         list vrf {
47298           tailf:info "Select VPN Routing/Forwarding instance";
47299           description
47300             "Select VPN Routing/Forwarding instance";
47301           tailf:cli-suppress-mode;
47302           tailf:cli-delete-when-empty;
47303           key "id";
47304           leaf id {
47305             type string {
47306               tailf:info "WORD;;VPN Routing/Forwarding instance name";
47307             }
47308           }
47309           uses ip-pim-grouping;
47310         }
47311       }
47312       container prefix-list {
47313         tailf:info "Build a prefix list";
47314         description
47315           "Build a prefix list";
47316         list prefixes {
47317           tailf:cli-drop-node-name;
47318           tailf:cli-suppress-mode;
47319           tailf:cli-delete-when-empty;
47320           tailf:cli-compact-syntax;
47321           key "name";
47322           leaf name {
47323             type string {
47324               tailf:info "WORD;;Name of a prefix list";
47325               pattern "([^s].*)|(s[^e].*)|(se[^q].*)(seq[^u].*)|(sequ[^e].*)|(seque[^n].*)|(sequen[^c].*)|(sequenc[^e].*)|(sequence[^\\-].*)|(sequence\\-[^n].*)|(sequence\\-n[^u].*)|(sequence\\-nu[^m].*)|(sequence\\-num[^b].*)|(sequence\\-numb[^e].*)|(sequence\\-numbe[^r].*)|(sequence\\-number..*)";
47326             }
47327           }
47328           leaf description {
47329             tailf:info "Prefix-list specific description";
47330             description
47331               "Prefix-list specific description";
47332             tailf:cli-multi-value;
47333             tailf:cli-full-command;
47334             type string {
47335               tailf:info "LINE;;Up to 80 characters describing this prefix-list";
47336               length "1..80";
47337             }
47338           }
47339           container permit {
47340             tailf:info "Specify packets to forward";
47341             description
47342               "Specify packets to forward";
47343             tailf:cli-sequence-commands;
47344             tailf:cli-compact-syntax;
47345             leaf address {
47346               tailf:cli-drop-node-name;
47347               type ios:ipv4-prefix {
47348                 tailf:info "A.B.C.D/nn;;IP prefix <network>/<length>, e.g., 35.0.0.0/8";
47349               }
47350             }
47351             leaf ge {
47352               tailf:info "Minimum prefix length to be matched";
47353               description
47354                 "Minimum prefix length to be matched";
47355               tailf:cli-break-sequence-commands;
47356               type uint8 {
47357                 tailf:info "<1-32>;;Minimum prefix length";
47358                 range "1..32";
47359               }
47360             }
47361             leaf le {
47362               tailf:info "Maximum prefix length to be matched";
47363               description
47364                 "Maximum prefix length to be matched";
47365               tailf:cli-full-command;
47366               type uint8 {
47367                 tailf:info "<1-32>;;Maximum prefix length";
47368                 range "1..32";
47369               }
47370             }
47371           }
47372           container deny {
47373             tailf:info "Specify packets to reject";
47374             description
47375               "Specify packets to reject";
47376             tailf:cli-sequence-commands;
47377             tailf:cli-compact-syntax;
47378             leaf address {
47379               tailf:cli-drop-node-name;
47380               type ios:ipv4-prefix {
47381                 tailf:info "A.B.C.D/nn;;IP prefix <network>/<length>, e.g., 35.0.0.0/8";
47382               }
47383             }
47384             leaf ge {
47385               tailf:info "Minimum prefix length to be matched";
47386               description
47387                 "Minimum prefix length to be matched";
47388               tailf:cli-break-sequence-commands;
47389               type uint8 {
47390                 tailf:info "<1-32>;;Minimum prefix length";
47391                 range "1..32";
47392               }
47393             }
47394             leaf le {
47395               tailf:info "Maximum prefix length to be matched";
47396               description
47397                 "Maximum prefix length to be matched";
47398               tailf:cli-full-command;
47399               type uint8 {
47400                 tailf:info "<1-32>;;Maximum prefix length";
47401                 range "1..32";
47402               }
47403             }
47404           }
47405           list seq {
47406             tailf:info "sequence number of an entry";
47407             description
47408               "sequence number of an entry";
47409             tailf:cli-suppress-mode;
47410             tailf:cli-delete-when-empty;
47411             tailf:cli-compact-syntax;
47412             key "no";
47413             leaf no {
47414               type uint32 {
47415                 range "1..4294967294";
47416                 tailf:info "<1-4294967294>;;Sequence number";
47417               }
47418               tailf:key-default "10";
47419             }
47420             container deny {
47421               tailf:info "Specify packets to reject";
47422               description
47423                 "Specify packets to reject";
47424               tailf:cli-sequence-commands {
47425                 tailf:cli-reset-all-siblings;
47426               }
47427               tailf:cli-compact-syntax;
47428               leaf ip {
47429                 tailf:cli-drop-node-name;
47430                 type ios:ipv4-prefix {
47431                   tailf:info "A.B.C.D;;IP prefix <network>/<length>, e.g., 35.0.0.0/8";
47432                 }
47433               }
47434               leaf ge {
47435                 tailf:info "Minimum prefix length to be matched";
47436                 description
47437                   "Minimum prefix length to be matched";
47438                 tailf:cli-break-sequence-commands;
47439                 type uint8 {
47440                   range "1..32";
47441                   tailf:info "<1-32>;;Minimum prefix length";
47442                 }
47443               }
47444               leaf le {
47445                 tailf:info "Maximum prefix length to be matched";
47446                 description
47447                   "Maximum prefix length to be matched";
47448                 tailf:cli-full-command;
47449                 type uint8 {
47450                   range "1..32";
47451                   tailf:info "<1-32>;;Maximum prefix length";
47452                 }
47453               }
47454             }
47455             container permit {
47456               tailf:info "Specify packets to forward";
47457               description
47458                 "Specify packets to forward";
47459               tailf:cli-sequence-commands {
47460                 tailf:cli-reset-all-siblings;
47461               }
47462               tailf:cli-compact-syntax;
47463               leaf ip {
47464                 tailf:cli-drop-node-name;
47465                 type ios:ipv4-prefix {
47466                   tailf:info "A.B.C.D;;IP prefix <network>/<length>, e.g., 35.0.0.0/8";
47467                 }
47468               }
47469               leaf ge {
47470                 tailf:info "Minimum prefix length to be matched";
47471                 description
47472                   "Minimum prefix length to be matched";
47473                 tailf:cli-break-sequence-commands;
47474                 type uint8 {
47475                   range "1..32";
47476                   tailf:info "<1-32>;;Minimum prefix length";
47477                 }
47478               }
47479               leaf le {
47480                 tailf:info "Maximum prefix length to be matched";
47481                 description
47482                   "Maximum prefix length to be matched";
47483                 tailf:cli-full-command;
47484                 type uint8 {
47485                   range "1..32";
47486                   tailf:info "<1-32>;;Maximum prefix length";
47487                 }
47488               }
47489             }
47490           }
47491         }
47492         leaf sequence-number {
47493           tailf:info "Include/exclude sequence numbers in NVGEN";
47494           description
47495             "Include/exclude sequence numbers in NVGEN";
47496           tailf:cli-full-command;
47497           type empty;
47498         }
47499       }
47500       container route {
47501         tailf:info "Establish static routes";
47502         description
47503           "Establish static routes";
47504         uses ip-route-grouping;
47505         leaf profile {
47506           tailf:info "Enable IP routing table profile";
47507           description
47508             "Enable IP routing table profile";
47509           tailf:cli-full-command;
47510           type empty;
47511         }
47512         container static {
47513           tailf:info "Allow static routes";
47514           description
47515             "Allow static routes";
47516           leaf adjust-time {
47517             tailf:info "Time period for adjusting static routes";
47518             description
47519               "Time period for adjusting static routes";
47520             tailf:cli-full-command;
47521             type uint8 {
47522               tailf:info "<1-60>;;Adjustment time in seconds";
47523               range "1..60";
47524             }
47525           }
47526           container bfd {
47527             tailf:info "BFD tracked";
47528             description
47529               "BFD tracked";
47530             tailf:cli-compact-syntax;
47531             tailf:cli-sequence-commands;
47532             leaf interface {
47533               tailf:cli-drop-node-name;
47534               type string;
47535             }
47536             leaf gateway-ip {
47537               tailf:cli-drop-node-name;
47538               type inet:ipv4-address {
47539                 tailf:info "A.B.C.D;;Gateway IP address";
47540               }
47541             }
47542           }
47543           leaf inter-vrf {
47544             tailf:info "Across VRF interfaces";
47545             description
47546               "Across VRF interfaces";
47547             tailf:cli-full-command;
47548             type empty;
47549           }
47550         }
47551         list vrf {
47552           tailf:info "Configure static route for a VPN Routing/Forwarding instance";
47553           description
47554             "Configure static route for a VPN Routing/Forwarding instance";
47555           tailf:cli-suppress-mode;
47556           tailf:cli-delete-when-empty;
47557           tailf:cli-compact-syntax;
47558           tailf:cli-reset-container;
47559           tailf:cli-incomplete-command;
47560           tailf:cli-diff-dependency "/ios:native/ip/vrf";
47561           tailf:cli-diff-dependency "/ios:native/vrf/definition";
47562           tailf:cli-diff-dependency "/ios:native/vrf/definition/address-family";
47563           key "name";
47564           leaf name {
47565             type string {
47566               tailf:info "WORD;;VPN Routing/Forwarding instance name";
47567             }
47568           }
47569           uses ip-route-grouping;
47570         }
47571       }
47572       leaf routing {
47573         tailf:info "Enable IP routing";
47574         description
47575           "Enable IP routing";
47576         tailf:cli-full-command;
47577         type empty;
47578       }
47579       list explicit-path {
47580         tailf:info "Configure explicit-path";
47581         description
47582           "Configure explicit-path";
47583         tailf:cli-mode-name "cfg-ip-expl-path";
47584         key "name";
47585         leaf name {
47586           tailf:info "Specify explicit path by name";
47587           description
47588             "Specify explicit path by name";
47589           tailf:cli-expose-key-name;
47590           type string {
47591             tailf:info "WORD;;Enter name";
47592           }
47593         }
47594         leaf mode {
47595           tailf:cli-drop-node-name;
47596           tailf:cli-hide-in-submode;
47597           type enumeration {
47598             enum "enable" {
47599               tailf:info "enable the explicit path";
47600             }
47601             enum "disable" {
47602               tailf:info "disable the explicit path";
47603             }
47604           }
47605         }
47606         list next-address {
47607           tailf:info "Specify the next address in the path";
47608           description
47609             "Specify the next address in the path";
47610           tailf:cli-suppress-mode;
47611           tailf:cli-delete-when-empty;
47612           tailf:cli-compact-syntax;
47613           key "address";
47614           leaf address {
47615             type inet:ipv4-address {
47616               tailf:info "WORD;;Enter IP address (A.B.C.D)";
47617             }
47618           }
47619         }
47620         list exclude-address {
47621           tailf:info "Exclude an address from subsequent partial path segments";
47622           description
47623             "Exclude an address from subsequent partial path segments";
47624           tailf:cli-suppress-mode;
47625           tailf:cli-delete-when-empty;
47626           tailf:cli-compact-syntax;
47627           key "address";
47628           leaf address {
47629             type inet:ipv4-address {
47630               tailf:info "WORD;;Enter IP address (A.B.C.D)";
47631             }
47632           }
47633         }
47634       }
47635       container rsvp {
47636         tailf:info "IP RSVP";
47637         description
47638           "IP RSVP";
47639         leaf signalling {
47640           tailf:info "IP RSVP signalling";
47641           description
47642             "IP RSVP signalling";
47643           type string {
47644             tailf:info "IP RSVP signalling message";
47645           }
47646         }
47647       }
47648       container scp {
47649         tailf:info "Scp commands";
47650         description
47651           "Scp commands";
47652         container server {
47653           tailf:info "Configure SCP server-side functionality";
47654           description
47655             "Configure SCP server-side functionality";
47656           leaf enable {
47657             tailf:info "Enable server side of SCP";
47658             description
47659               "Enable server side of SCP";
47660             type empty;
47661           }
47662         }
47663       }
47664       container sla {
47665         tailf:info "IP Service Level Agreement";
47666         description
47667           "IP Service Level Agreement";
47668         list entry {
47669           tailf:cli-drop-node-name;
47670           tailf:cli-mode-name "config-ip-sla";
47671           key "number";
47672           leaf number {
47673             type uint32 {
47674               tailf:info "<1-2147483647>;;Entry Number";
47675             }
47676           }
47677           container icmp-echo {
47678             tailf:info "ICMP Echo Operation";
47679             description
47680               "ICMP Echo Operation";
47681             tailf:cli-add-mode;
47682             tailf:cli-mode-name "config-ip-sla-echo";
47683             leaf destination {
47684               tailf:cli-drop-node-name;
47685               tailf:cli-hide-in-submode;
47686               type union {
47687                 type string;
47688                 type inet:ipv4-address {
47689                   tailf:info "Hostname or A.B.C.D;;Destination IP address or hostname, broadcast disallowed";
47690                 }
47691               }
47692             }
47693             leaf source-interface {
47694               tailf:info "Source Interface (ingress icmp packet interface)";
47695               description
47696                 "Source Interface (ingress icmp packet interface)";
47697               tailf:cli-hide-in-submode;
47698               tailf:cli-full-command;
47699               type string {
47700                 tailf:info "WORD;;interface name";
47701               }
47702             }
47703             leaf source-ip {
47704               tailf:info "Source Address";
47705               description
47706                 "Source Address";
47707               tailf:cli-hide-in-submode;
47708               tailf:cli-full-command;
47709               type union {
47710                 type string;
47711                 type inet:ipv4-address {
47712                   tailf:info "Hostname or A.B.C.D;;IP address or hostname, broadcast disallowed";
47713                 }
47714               }
47715             }
47716             leaf data-pattern {
47717               tailf:info "Data Pattern";
47718               description
47719                 "Data Pattern";
47720               tailf:cli-full-command;
47721               type string {
47722                 tailf:info "<0-FFFFFFFF>;;Data Pattern in Hex";
47723               }
47724             }
47725             leaf frequency {
47726               tailf:info "Frequency of an operation";
47727               description
47728                 "Frequency of an operation";
47729               tailf:cli-full-command;
47730               type uint32 {
47731                 tailf:info "<1-604800>;;Frequency in seconds";
47732                 range "1..604800";
47733               }
47734             }
47735             container history {
47736               tailf:info "History and Distribution Data";
47737               description
47738                 "History and Distribution Data";
47739               leaf buckets-kept {
47740                 tailf:info "Maximum number of history buckets to collect";
47741                 description
47742                   "Maximum number of history buckets to collect";
47743                 tailf:cli-full-command;
47744                 type uint8 {
47745                   tailf:info "<1-60>;;Bucket size value (default 15)";
47746                 }
47747               }
47748               leaf distributions-of-statistics-kept {
47749                 tailf:info "Maximum number of statistics distribution buckets to capture";
47750                 description
47751                   "Maximum number of statistics distribution buckets to capture";
47752                 tailf:cli-full-command;
47753                 type uint8 {
47754                   tailf:info "<1-20>;;Distribution bucket size value (default 1)";
47755                 }
47756               }
47757               container enhanced {
47758                 tailf:info "Enable enhanced history collection";
47759                 description
47760                   "Enable enhanced history collection";
47761                 tailf:cli-compact-syntax;
47762                 tailf:cli-sequence-commands;
47763                 leaf interval {
47764                   tailf:info "Aggregation interval";
47765                   description
47766                     "Aggregation interval";
47767                   type uint32 {
47768                     tailf:info "<1-3600>;;Interval in seconds";
47769                     range "1..3600";
47770                   }
47771                 }
47772                 leaf buckets {
47773                   tailf:info "Number of buckets to collect data";
47774                   description
47775                     "Number of buckets to collect data";
47776                   type uint8 {
47777                     tailf:info "<1-100>;;Number of buckets";
47778                     range "1..100";
47779                   }
47780                 }
47781               }
47782               leaf filter {
47783                 tailf:info "Add operation to History when...";
47784                 description
47785                   "Add operation to History when...";
47786                 tailf:cli-full-command;
47787                 type enumeration {
47788                   enum "all" {
47789                     tailf:info "Collect every operation in History";
47790                   }
47791                   enum "failures" {
47792                     tailf:info "Collect operations that fail in History";
47793                   }
47794                   enum "none" {
47795                     tailf:info "Shutoff History collection";
47796                   }
47797                   enum "overThreshold" {
47798                     tailf:info "Collect operations that are over threshold in History";
47799                   }
47800                 }
47801               }
47802               leaf hours-of-statistics-kept {
47803                 tailf:info "Maximum number of statistics hour groups to capture";
47804                 description
47805                   "Maximum number of statistics hour groups to capture";
47806                 tailf:cli-full-command;
47807                 type uint8 {
47808                   tailf:info "<0-25>;;Hour groups size value (default 2)";
47809                   range "0..25";
47810                 }
47811               }
47812               leaf lives-kept {
47813                 tailf:info "Maximum number of history lives to collect";
47814                 description
47815                   "Maximum number of history lives to collect";
47816                 tailf:cli-full-command;
47817                 type uint8 {
47818                   tailf:info "<0-2>;;Life size value (default 0)";
47819                   range "0..2";
47820                 }
47821               }
47822               leaf statistics-distribution-interval {
47823                 tailf:info "Statistics distribution interval size";
47824                 description
47825                   "Statistics distribution interval size";
47826                 tailf:cli-full-command;
47827                 type uint8 {
47828                   tailf:info "<1-100>;;Distribution interval value in msec (default 20)";
47829                   range "1..100";
47830                 }
47831               }
47832             }
47833             leaf owner {
47834               tailf:info "Owner of Entry";
47835               description
47836                 "Owner of Entry";
47837               tailf:cli-multi-value;
47838               type string {
47839                 tailf:info "LINE;;Owner String";
47840               }
47841             }
47842             leaf request-data-size {
47843               tailf:info "Request data size";
47844               description
47845                 "Request data size";
47846               tailf:cli-full-command;
47847               type uint32 {
47848                 tailf:info "<0-16384>;;Number of bytes in payload";
47849                 range "0..16384";
47850               }
47851             }
47852             leaf tag {
47853               tailf:info "User defined tag";
47854               description
47855                 "User defined tag";
47856               tailf:cli-multi-value;
47857               type string {
47858                 tailf:info "LINE;;Tag string";
47859               }
47860             }
47861             leaf threshold {
47862               tailf:info "Operation threshold in milliseconds";
47863               description
47864                 "Operation threshold in milliseconds";
47865               tailf:cli-full-command;
47866               type uint32 {
47867                 tailf:info "<0-60000>;;Millisecond threshold value";
47868                 range "0..60000";
47869               }
47870             }
47871             leaf timeout {
47872               tailf:info "Timeout of an operation";
47873               description
47874                 "Timeout of an operation";
47875               tailf:cli-full-command;
47876               type uint64 {
47877                 tailf:info "<0-604800000>;;Timeout in milliseconds";
47878                 range "0..604800000";
47879               }
47880             }
47881             leaf tos {
47882               tailf:info "Type Of Service";
47883               description
47884                 "Type Of Service";
47885               tailf:cli-full-command;
47886               type uint8 {
47887                 tailf:info "<0-255>;;Type of Service Value";
47888               }
47889             }
47890             leaf verify-data {
47891               tailf:info "Verify data";
47892               description
47893                 "Verify data";
47894               tailf:cli-full-command;
47895               type empty;
47896             }
47897             leaf vrf {
47898               tailf:info "Configure IP SLAs for a VPN Routing/Forwarding instance";
47899               description
47900                 "Configure IP SLAs for a VPN Routing/Forwarding instance";
47901               tailf:cli-full-command;
47902               type string {
47903                 tailf:info "WORD;;VPN Routing/Forwarding instance name";
47904               }
47905             }
47906           }
47907           container path-jitter {
47908             tailf:info "Path Discovered ICMP Jitter Operation";
47909             description
47910               "Path Discovered ICMP Jitter Operation";
47911             tailf:cli-add-mode;
47912             tailf:cli-mode-name "config-ip-sla-path-jitter";
47913             leaf dst-ip {
47914               tailf:cli-drop-node-name;
47915               tailf:cli-hide-in-submode;
47916               type union {
47917                 type string;
47918                 type inet:ipv4-address;
47919                 type inet:ipv6-address {
47920                   tailf:info "Hostname or A.B.C.D/X:X:X:X::X;;Destination IPv6/IP address or hostname";
47921                 }
47922               }
47923             }
47924             leaf source-ip {
47925               tailf:info "Source IP Address";
47926               description
47927                 "Source IP Address";
47928               tailf:cli-hide-in-submode;
47929               type union {
47930                 type string;
47931                 type inet:ipv4-address;
47932               }
47933             }
47934             container default {
47935               tailf:info "Set a command to its defaults";
47936               description
47937                 "Set a command to its defaults";
47938               uses ip-sla-default-path-jitter-grouping;
47939             }
47940             uses ip-sla-path-jitter-grouping;
47941           }
47942         }
47943         container enable {
47944           leaf reaction-alerts {
47945             type empty;
47946           }
47947         }
47948         leaf responder {
47949           type empty;
47950         }
47951         list schedule {
47952           tailf:info "Entry Scheduling";
47953           description
47954             "Entry Scheduling";
47955           tailf:cli-suppress-mode;
47956           tailf:cli-compact-syntax;
47957           key "entry-number";
47958           leaf entry-number {
47959             type uint32 {
47960               tailf:info "<1-2147483647>;;Entry number";
47961             }
47962           }
47963           leaf ageout {
47964             tailf:info "How long to keep this Entry when inactive";
47965             description
47966               "How long to keep this Entry when inactive";
47967             tailf:cli-hide-in-submode;
47968             type uint32 {
47969               tailf:info "<0-2073600>;;Ageout Seconds";
47970               range "0..2073600";
47971             }
47972           }
47973           leaf life {
47974             tailf:info "Length of time to execute in seconds";
47975             description
47976               "Length of time to execute in seconds";
47977             tailf:cli-hide-in-submode;
47978             type union {
47979               type uint32 {
47980                 tailf:info "<0-2147483647>;;Life seconds (default 3600)";
47981               }
47982               type enumeration {
47983                 enum "forever" {
47984                   tailf:info "continue running forever";
47985                 }
47986               }
47987             }
47988           }
47989           leaf recurring {
47990             tailf:info "Probe to be scheduled automatically every day";
47991             description
47992               "Probe to be scheduled automatically every day";
47993             tailf:cli-hide-in-submode;
47994             type empty;
47995           }
47996           container start-time {
47997             tailf:info "When to start this entry";
47998             description
47999               "When to start this entry";
48000             tailf:cli-hide-in-submode;
48001             leaf after {
48002               tailf:info "Start after a certain amount of time from now";
48003               description
48004                 "Start after a certain amount of time from now";
48005               tailf:cli-full-command;
48006               type string {
48007                 tailf:info "hh:mm:ss;;Start after (hh:mm:ss) has elapsed";
48008               }
48009             }
48010             leaf hour-min {
48011               tailf:cli-drop-node-name;
48012               tailf:cli-full-command;
48013               type string {
48014                 tailf:info "hh:mm;;Start time (hh:mm)";
48015               }
48016             }
48017             leaf hour-min-sec {
48018               tailf:cli-drop-node-name;
48019               tailf:cli-full-command;
48020               type string {
48021                 tailf:info "hh:mm:ss;;Start time (hh:mm:ss)";
48022               }
48023             }
48024             leaf now {
48025               tailf:info "Start now";
48026               description
48027                 "Start now";
48028               tailf:cli-full-command;
48029               type empty;
48030             }
48031             leaf pending {
48032               tailf:info "Start pending";
48033               description
48034                 "Start pending";
48035               tailf:cli-full-command;
48036               type empty;
48037             }
48038             leaf random {
48039               tailf:info "Start after random time (range)";
48040               description
48041                 "Start after random time (range)";
48042               tailf:cli-full-command;
48043               type uint32 {
48044                 tailf:info "<500-10000>;;random milliseconds";
48045                 range "500..10000";
48046               }
48047             }
48048           }
48049         }
48050       }
48051       container spd {
48052         tailf:info "spd";
48053         description
48054           "spd";
48055         leaf mode {
48056           type enumeration {
48057             enum "aggressive";
48058           }
48059         }
48060       }
48061       container bootp {
48062         tailf:info "Config BOOTP services";
48063         description
48064           "Config BOOTP services";
48065         leaf server {
48066           tailf:info "Enable BOOTP server";
48067           description
48068             "Enable BOOTP server";
48069           tailf:cli-boolean-no;
48070           tailf:cli-trim-default;
48071           type boolean;
48072           default "true";
48073         }
48074       }
48075       leaf source-route {
48076         tailf:info "Process packets with source routing header options";
48077         description
48078           "Process packets with source routing header options";
48079         tailf:cli-boolean-no;
48080         tailf:cli-show-with-default;
48081         tailf:cli-full-command;
48082         type boolean;
48083         default "true";
48084       }
48085       container ssh {
48086         tailf:info "Configure ssh options";
48087         description
48088           "Configure ssh options";
48089         leaf authentication-retries {
48090           tailf:info "Specify number of authentication retries";
48091           description
48092             "Specify number of authentication retries";
48093           type uint8 {
48094             tailf:info "<0-5>;;Number of authentication retries";
48095             range "0..5";
48096           }
48097         }
48098         leaf dscp {
48099           tailf:info "IP DSCP value for SSH traffic";
48100           description
48101             "IP DSCP value for SSH traffic";
48102           type uint8 {
48103             tailf:info "<0-63>;;ip dscp value (default value 0 )";
48104             range "0..63";
48105           }
48106         }
48107         container logging {
48108           tailf:info "Configure logging for SSH";
48109           description
48110             "Configure logging for SSH";
48111           leaf events {
48112             tailf:info "Log SSH events";
48113             description
48114               "Log SSH events";
48115             type empty;
48116           }
48117         }
48118         container pubkey-chain {
48119           tailf:info "Configure public key-chain parameters";
48120           description
48121             "Configure public key-chain parameters";
48122           tailf:cli-add-mode;
48123           tailf:cli-mode-name "conf-ssh-pubkey";
48124           tailf:cli-full-command;
48125           list username {
48126             tailf:cli-mode-name "conf-ssh-pubkey-user";
48127             tailf:cli-full-command;
48128             tailf:cli-no-key-completion;
48129             tailf:cli-no-match-completion;
48130             max-elements "10";
48131             key "name";
48132             leaf name {
48133               type string;
48134             }
48135             list key-hash {
48136               max-elements "2";
48137               tailf:cli-full-command;
48138               key "key-type key-hash-value";
48139               leaf key-type {
48140                 tailf:cli-drop-node-name;
48141                 type enumeration {
48142                   enum "ssh-rsa" {
48143                     tailf:info "ssh-rsa based fingerprint";
48144                   }
48145                 }
48146               }
48147               leaf key-hash-value {
48148                 tailf:cli-multi-value;
48149                 type string;
48150               }
48151             }
48152           }
48153         }
48154         leaf precedence {
48155           tailf:info "IP Precedence value for SSH traffic";
48156           description
48157             "IP Precedence value for SSH traffic";
48158           type uint8 {
48159             tailf:info "<0-7>;;ip precedence value (default value 0 )";
48160             range "0..7";
48161           }
48162         }
48163         container rsa {
48164           tailf:info "Configure RSA keypair name for SSH";
48165           description
48166             "Configure RSA keypair name for SSH";
48167           leaf keypair-name {
48168             tailf:info "keypair-name";
48169             description
48170               "keypair-name";
48171             type string {
48172               tailf:info "WORD;;keypair name";
48173             }
48174           }
48175         }
48176         leaf source-interface {
48177           tailf:info "Specify interface for source address in SSH connections";
48178           description
48179             "Specify interface for source address in SSH connections";
48180           type string;
48181         }
48182         leaf time-out {
48183           tailf:info "Specify SSH time-out interval";
48184           description
48185             "Specify SSH time-out interval";
48186           type uint8 {
48187             tailf:info "<1-120>;;SSH time-out interval (secs)";
48188             range "1..120";
48189           }
48190         }
48191         leaf version {
48192           tailf:info "Specify protocol version supported";
48193           description
48194             "Specify protocol version supported";
48195           type uint8 {
48196             tailf:info "<1-2>;;Protocol version";
48197             range "1..2";
48198           }
48199         }
48200       }
48201       container tacacs {
48202         tailf:info "TACACS configuration commands";
48203         description
48204           "TACACS configuration commands";
48205         container source-interface {
48206           tailf:info "Specify interface for source address in TACACS packets";
48207           description
48208             "Specify interface for source address in TACACS packets";
48209           tailf:cli-diff-dependency "/ios:native/interface";
48210           uses interface-grouping;
48211         }
48212       }
48213       container tcp {
48214         tailf:info "Global TCP parameters";
48215         description
48216           "Global TCP parameters";
48217         container path-mtu-discovery {
48218           tailf:info "Enable path-MTU discovery on new TCP connections";
48219           description
48220             "Enable path-MTU discovery on new TCP connections";
48221           presence "true";
48222           leaf age-timer {
48223             tailf:info "Set PMTU aging timer";
48224             description
48225               "Set PMTU aging timer";
48226             type union {
48227               type enumeration {
48228                 enum "infinite" {
48229                   tailf:info "Disable pathmtu aging timer";
48230                 }
48231               }
48232               type uint8 {
48233                 tailf:info "<10-30>;;Aging time";
48234                 range "10..30";
48235               }
48236             }
48237           }
48238         }
48239       }
48240       container tftp {
48241         tailf:info "tftp configuration commands";
48242         description
48243           "tftp configuration commands";
48244         container boot-interface {
48245           tailf:info "Force interface to use for TFTP booting";
48246           description
48247             "Force interface to use for TFTP booting";
48248           tailf:cli-diff-dependency "/ios:native/interface";
48249           uses interface-grouping;
48250         }
48251         container source-interface {
48252           tailf:info "Specify interface for source address in TFTP connections";
48253           description
48254             "Specify interface for source address in TFTP connections";
48255           tailf:cli-diff-dependency "/ios:native/interface";
48256           uses interface-grouping;
48257         }
48258       }
48259       container access-list {
48260         tailf:info "Named access list";
48261         description
48262           "Named access list";
48263         tailf:cli-incomplete-command;
48264         tailf:cli-compact-syntax;
48265         list standard {
48266           tailf:info "Standard Access List";
48267           description
48268             "Standard Access List";
48269           tailf:cli-full-command;
48270           tailf:cli-no-key-completion;
48271           tailf:cli-mode-name "config-std-nacl";
48272           key "name";
48273           leaf name {
48274             type std-acl-type;
48275           }
48276           uses ipv4-std-acl-grouping;
48277           uses ipv4-std-acl-remark-grouping;
48278           container default {
48279             tailf:info "Set a command to its defaults";
48280             description
48281               "Set a command to its defaults";
48282             uses ipv4-std-acl-grouping;
48283             uses ipv4-std-acl-remark-grouping;
48284           }
48285         }
48286         list role-based {
48287           tailf:info "Role-based Access List";
48288           description
48289             "Role-based Access List";
48290           tailf:cli-no-key-completion;
48291           tailf:cli-mode-name "config-rb-acl";
48292           key "name";
48293           leaf name {
48294             type string {
48295               tailf:info "WORD;;Access-list name";
48296             }
48297           }
48298           uses ipv4-ext-acl-grouping;
48299           uses ipv4-ext-acl-remark-grouping;
48300           container default {
48301             tailf:info "Set a command to its defaults";
48302             description
48303               "Set a command to its defaults";
48304             uses ipv4-ext-acl-grouping;
48305             uses ipv4-ext-acl-remark-grouping;
48306           }
48307         }
48308         list extended {
48309           tailf:info "Extended Access List";
48310           description
48311             "Extended Access List";
48312           tailf:cli-full-command;
48313           tailf:cli-mode-name "config-ext-nacl";
48314           key "name";
48315           leaf name {
48316             type ext-acl-type;
48317           }
48318           uses ipv4-ext-acl-grouping;
48319           uses ipv4-ext-acl-remark-grouping;
48320           container default {
48321             tailf:info "Set a command to its defaults";
48322             description
48323               "Set a command to its defaults";
48324             uses ipv4-ext-acl-grouping;
48325             uses ipv4-ext-acl-remark-grouping;
48326           }
48327         }
48328         container helper {
48329           tailf:info "Access List acts on helper-address";
48330           description
48331             "Access List acts on helper-address";
48332           tailf:cli-sequence-commands;
48333           tailf:cli-compact-syntax;
48334           leaf egress {
48335             tailf:info "Outbound";
48336             description
48337               "Outbound";
48338             type empty;
48339           }
48340           leaf check {
48341             tailf:info "Enable filtering on helper-address destined";
48342             description
48343               "Enable filtering on helper-address destined";
48344             tailf:cli-full-command;
48345             type empty;
48346           }
48347         }
48348         container log-update {
48349           tailf:info "Control access list log updates";
48350           description
48351             "Control access list log updates";
48352           leaf threshold {
48353             tailf:info "Set access-list logging threshold";
48354             description
48355               "Set access-list logging threshold";
48356             type uint64 {
48357               tailf:info "<0-2147483647>;;Access list log-update threshold (number of hits)";
48358               range "0..2147483647";
48359             }
48360           }
48361         }
48362         container logging {
48363           tailf:info "Control access list logging";
48364           description
48365             "Control access list logging";
48366           leaf hash-generation {
48367             tailf:info "Enable syslog hash code generation";
48368             description
48369               "Enable syslog hash code generation";
48370             tailf:cli-full-command;
48371             type empty;
48372           }
48373           leaf interval {
48374             tailf:info "Set access list logging interval";
48375             description
48376               "Set access list logging interval";
48377             type uint64 {
48378               tailf:info "<0-2147483647>;;Access list logging interval (milliseconds)";
48379               range "0..2147483647";
48380             }
48381           }
48382         }
48383         leaf match-local-traffic {
48384           tailf:info "Enable ACL matching for locally generated traffic";
48385           description
48386             "Enable ACL matching for locally generated traffic";
48387           type empty;
48388         }
48389         leaf persistent {
48390           tailf:info "enable persistency across reload";
48391           description
48392             "enable persistency across reload";
48393           type empty;
48394         }
48395         container resequence {
48396           tailf:info "Resequence Access List";
48397           description
48398             "Resequence Access List";
48399           tailf:cli-sequence-commands;
48400           tailf:cli-compact-syntax;
48401           leaf numbers {
48402             tailf:cli-drop-node-name;
48403             type union {
48404               type std-acl-type;
48405               type ext-acl-type;
48406             }
48407           }
48408           leaf start-seq-no {
48409             tailf:cli-drop-node-name;
48410             type uint64 {
48411               tailf:info "<1-2147483647>;;Starting Sequence Number";
48412               range "1..2147483647";
48413             }
48414           }
48415           leaf step-seq-no {
48416             tailf:cli-drop-node-name;
48417             type uint64 {
48418               tailf:info "<1-2147483647>;;Sep to increment the sequence number";
48419               range "1..2147483647";
48420             }
48421           }
48422         }
48423       }
48424       container device {
48425         tailf:info "Device tracking";
48426         description
48427           "Device tracking";
48428         container tracking {
48429           tailf:info "Device tracking";
48430           description
48431             "Device tracking";
48432           presence "true";
48433           container probe {
48434             tailf:info "Probe";
48435             description
48436               "Probe";
48437             container auto-source {
48438               tailf:info "Probe source selection algorithm";
48439               description
48440                 "Probe source selection algorithm";
48441               tailf:cli-compact-syntax;
48442               presence "true";
48443               container fallback {
48444                 tailf:info "Specify IP and MASK to use as last resort";
48445                 description
48446                   "Specify IP and MASK to use as last resort";
48447                 tailf:cli-sequence-commands;
48448                 tailf:cli-compact-syntax;
48449                 tailf:cli-flatten-container;
48450                 leaf src-ip {
48451                   tailf:cli-drop-node-name;
48452                   description
48453                     "IP and MASK of fallback source";
48454                   type inet:ipv4-address {
48455                     tailf:info "A.B.C.D;;{/nn || A.B.C.D}  IP and MASK of fallback source";
48456                   }
48457                 }
48458                 leaf mask {
48459                   tailf:cli-drop-node-name;
48460                   description
48461                     "IP prefix mask";
48462                   type inet:ipv4-address {
48463                     tailf:info "A.B.C.D;;IP prefix mask";
48464                   }
48465                 }
48466               }
48467               leaf override {
48468                 tailf:info "Do not select source address from device track table";
48469                 description
48470                   "Do not select source address from device track table";
48471                 tailf:cli-full-command;
48472                 type empty;
48473               }
48474             }
48475             leaf count {
48476               tailf:info "Probe count";
48477               description
48478                 "Probe count";
48479               tailf:cli-full-command;
48480               type uint8 {
48481                 tailf:info "<1-255>;;count";
48482               }
48483             }
48484             leaf delay {
48485               tailf:info "Probe delay";
48486               description
48487                 "Probe delay";
48488               tailf:cli-full-command;
48489               type uint8 {
48490                 tailf:info "<1-120>;;delay";
48491                 range "1..120";
48492               }
48493             }
48494             leaf interval {
48495               tailf:info "Probe interval";
48496               description
48497                 "Probe interval";
48498               tailf:cli-full-command;
48499               type uint32 {
48500                 tailf:info "<30-1814400>;;interval";
48501                 range "30..1814400";
48502               }
48503             }
48504           }
48505           leaf trace-buffer {
48506             tailf:info "Enable Tracing Support";
48507             description
48508               "Enable Tracing Support";
48509             tailf:cli-full-command;
48510             type empty;
48511           }
48512         }
48513       }
48514       container nbar {
48515         tailf:info "NBAR - Network Based Application Recognition";
48516         description
48517           "NBAR - Network Based Application Recognition";
48518         container attribute {
48519           tailf:info "Attribute for which custom group value can be created";
48520           description
48521             "Attribute for which custom group value can be created";
48522           container application-group {
48523             tailf:info "Application-group attribute";
48524             description
48525               "Application-group attribute";
48526             uses ip-nbar-attribute-custom-grouping;
48527           }
48528           container category {
48529             tailf:info "Category attribute";
48530             description
48531               "Category attribute";
48532             uses ip-nbar-attribute-custom-grouping;
48533           }
48534           container sub-category {
48535             tailf:info "Sub-category attribute";
48536             description
48537               "Sub-category attribute";
48538             uses ip-nbar-attribute-custom-grouping;
48539           }
48540         }
48541         list attribute-map {
48542           tailf:info "Attribute Map";
48543           description
48544             "Attribute Map";
48545           tailf:cli-mode-name "config-attribute-map";
48546           key "name";
48547           leaf name {
48548             type string {
48549               tailf:info "WORD;;Attribute Profile Name";
48550             }
48551           }
48552           container attribute {
48553             tailf:info "Attribute Name";
48554             description
48555               "Attribute Name";
48556             leaf application-group {
48557               tailf:info "Application-group attribute";
48558               description
48559                 "Application-group attribute";
48560               tailf:cli-full-command;
48561               type union {
48562                 type string {
48563                   tailf:info "xxx;;User defined application group";
48564                 }
48565                 type enumeration {
48566                   enum "aol-group" {
48567                     tailf:info "AOL related applications";
48568                   }
48569                   enum "apple-group" {
48570                     tailf:info "Apple services";
48571                   }
48572                   enum "apple-talk-group" {
48573                     tailf:info "Apple-talk related applications";
48574                   }
48575                   enum "banyan-group" {
48576                     tailf:info "Banyan related applications";
48577                   }
48578                   enum "bittorrent-group" {
48579                     tailf:info "Bittorrent related applications";
48580                   }
48581                   enum "capwap-group" {
48582                     tailf:info "CAPWAP related applications";
48583                   }
48584                   enum "cisco-jabber-group" {
48585                     tailf:info "Cisco jabber related applications";
48586                   }
48587                   enum "cisco-phone-group" {
48588                     tailf:info "Cisco phone related applications";
48589                   }
48590                   enum "corba-group" {
48591                     tailf:info "Corba related applications";
48592                   }
48593                   enum "dameware-group" {
48594                     tailf:info "Dameware related applications";
48595                   }
48596                   enum "edonkey-emule-group" {
48597                     tailf:info "Edonkey-emule related applications";
48598                   }
48599                   enum "espn-group" {
48600                     tailf:info "ESPN related applications";
48601                   }
48602                   enum "fasttrack-group" {
48603                     tailf:info "Fasttrack related applications";
48604                   }
48605                   enum "flash-group" {
48606                     tailf:info "Flash related applications";
48607                   }
48608                   enum "fring-group" {
48609                     tailf:info "Fring related applications";
48610                   }
48611                   enum "ftp-group" {
48612                     tailf:info "FTP related applications";
48613                   }
48614                   enum "gnutella-group" {
48615                     tailf:info "Gnutella related applications";
48616                   }
48617                   enum "google-group" {
48618                     tailf:info "Google related applications";
48619                   }
48620                   enum "gtalk-group" {
48621                     tailf:info "Gtalk related applications";
48622                   }
48623                   enum "icq-group" {
48624                     tailf:info "ICQ related applications";
48625                   }
48626                   enum "imap-group" {
48627                     tailf:info "IMAP related applications";
48628                   }
48629                   enum "ipsec-group" {
48630                     tailf:info "IPsec related applications";
48631                   }
48632                   enum "irc-group" {
48633                     tailf:info "IRC related applications";
48634                   }
48635                   enum "kakao-group" {
48636                     tailf:info "Kakao services";
48637                   }
48638                   enum "kerberos-group" {
48639                     tailf:info "Kerberos related applications";
48640                   }
48641                   enum "ldap-group" {
48642                     tailf:info "LDAP related applications";
48643                   }
48644                   enum "ms-cloud-group" {
48645                     tailf:info "Microsoft cloud services";
48646                   }
48647                   enum "ms-crm-group" {
48648                     tailf:info "MS-CRM related applications";
48649                   }
48650                   enum "ms-lync-group" {
48651                     tailf:info "MS-lync related applications";
48652                   }
48653                   enum "msn-messenger-group" {
48654                     tailf:info "MSN-Messenger related applications";
48655                   }
48656                   enum "netbios-group" {
48657                     tailf:info "Netbios related applications";
48658                   }
48659                   enum "nntp-group" {
48660                     tailf:info "NNTP related applications";
48661                   }
48662                   enum "npmp-group" {
48663                     tailf:info "NPMP related applications";
48664                   }
48665                   enum "other" {
48666                     tailf:info "Other related applications";
48667                   }
48668                   enum "pop3-group" {
48669                     tailf:info "POP3 related applications";
48670                   }
48671                   enum "prm-group" {
48672                     tailf:info "PRM related applications";
48673                   }
48674                   enum "qq-group" {
48675                     tailf:info "QQ related applications";
48676                   }
48677                   enum "skype-group" {
48678                     tailf:info "Skype related applications";
48679                   }
48680                   enum "smtp-group" {
48681                     tailf:info "SMTP related applications";
48682                   }
48683                   enum "snmp-group" {
48684                     tailf:info "SNMP related applications";
48685                   }
48686                   enum "sqlsvr-group" {
48687                     tailf:info "SQLSVR related applications";
48688                   }
48689                   enum "stun-group" {
48690                     tailf:info "STUN related applications";
48691                   }
48692                   enum "telepresence-group" {
48693                     tailf:info "Telepresence related applications";
48694                   }
48695                   enum "tftp-group" {
48696                     tailf:info "TFTP related applications";
48697                   }
48698                   enum "vmware-group" {
48699                     tailf:info "Vmware related applications";
48700                   }
48701                   enum "vnc-group" {
48702                     tailf:info "VNC related applications";
48703                   }
48704                   enum "wap-group" {
48705                     tailf:info "WAP related applications";
48706                   }
48707                   enum "webex-group" {
48708                     tailf:info "Webex related applications";
48709                   }
48710                   enum "xns-xerox-group" {
48711                     tailf:info "XNS-xerox related applications";
48712                   }
48713                   enum "xunlei-group" {
48714                     tailf:info "Xunlei related applications";
48715                   }
48716                   enum "yahoo-group" {
48717                     tailf:info "Yahoo related applications";
48718                   }
48719                   enum "yahoo-messenger-group" {
48720                     tailf:info "Yahoo-messenger related applications";
48721                   }
48722                 }
48723               }
48724             }
48725             leaf business-relevance {
48726               tailf:info "Application business-relevance";
48727               description
48728                 "Application business-relevance";
48729               tailf:cli-full-command;
48730               type enumeration {
48731                 enum "business-irrelevant" {
48732                   tailf:info "Undesirable business traffic";
48733                 }
48734                 enum "business-relevant" {
48735                   tailf:info "Business critical applications";
48736                 }
48737                 enum "default" {
48738                   tailf:info "Related business applications";
48739                 }
48740               }
48741             }
48742             leaf category {
48743               tailf:info "Category attribute";
48744               description
48745                 "Category attribute";
48746               tailf:cli-full-command;
48747               type union {
48748                 type string {
48749                   tailf:info "xxx;;User defined category";
48750                 }
48751                 type enumeration {
48752                   enum "anonymizers" {
48753                     tailf:info "Anonymizers applications";
48754                   }
48755                   enum "backup-and-storage" {
48756                     tailf:info "Backup and storage related applications";
48757                   }
48758                   enum "browsing" {
48759                     tailf:info "Browsing related applications";
48760                   }
48761                   enum "business-and-productivity-tools" {
48762                     tailf:info "Business-and-productivity-tools related applications";
48763                   }
48764                   enum "consumer-file-sharing" {
48765                     tailf:info "consumer-file-sharing related applications";
48766                   }
48767                   enum "consumer-internet" {
48768                     tailf:info "consumer-internet related applications";
48769                   }
48770                   enum "consumer-messaging" {
48771                     tailf:info "consumer-messaging related applications";
48772                   }
48773                   enum "consumer-streaming" {
48774                     tailf:info "consumer-streaming related applications";
48775                   }
48776                   enum "database" {
48777                     tailf:info "Database related applications";
48778                   }
48779                   enum "email" {
48780                     tailf:info "Email related applications";
48781                   }
48782                   enum "epayement" {
48783                     tailf:info "Epayement related applications";
48784                   }
48785                   enum "file-sharing" {
48786                     tailf:info "File-sharing related applications";
48787                   }
48788                   enum "gaming" {
48789                     tailf:info "Gaming related applications";
48790                   }
48791                   enum "industrial-protocols" {
48792                     tailf:info "Industrial-protocols related applications";
48793                   }
48794                   enum "instant-messaging" {
48795                     tailf:info "Instant-messaging related applications";
48796                   }
48797                   enum "inter-process-rpc" {
48798                     tailf:info "Inter-process-rpc related applications";
48799                   }
48800                   enum "internet-security" {
48801                     tailf:info "Internet security related applications";
48802                   }
48803                   enum "layer3-over-ip" {
48804                     tailf:info "Layer3-over-IP related applications";
48805                   }
48806                   enum "location-based-services" {
48807                     tailf:info "Location-based-services related applications";
48808                   }
48809                   enum "net-admin" {
48810                     tailf:info "Net-admin related applications";
48811                   }
48812                   enum "newsgroup" {
48813                     tailf:info "Newsgroup related applications";
48814                   }
48815                   enum "other" {
48816                     tailf:info "Other related applications";
48817                   }
48818                   enum "social-networking" {
48819                     tailf:info "Social-networking related applications";
48820                   }
48821                   enum "software-updates" {
48822                     tailf:info "Software updates and downloads related applications";
48823                   }
48824                   enum "trojan" {
48825                     tailf:info "Trojan related applications";
48826                   }
48827                   enum "voice-and-video" {
48828                     tailf:info "Voice-and-video related applications";
48829                   }
48830                 }
48831               }
48832             }
48833             leaf encrypted {
48834               tailf:info "Encrypted applications";
48835               description
48836                 "Encrypted applications";
48837               tailf:cli-full-command;
48838               type enumeration {
48839                 enum "encrypted-no" {
48840                   tailf:info "Encrypted-no related applications";
48841                 }
48842                 enum "encrypted-unassigned" {
48843                   tailf:info "Encrypted-unassigned related applications";
48844                 }
48845                 enum "encrypted-yes" {
48846                   tailf:info "Encrypted-yes related applications";
48847                 }
48848               }
48849             }
48850             leaf sub-category {
48851               tailf:info "Sub-category attribute";
48852               description
48853                 "Sub-category attribute";
48854               tailf:cli-full-command;
48855               type union {
48856                 type string {
48857                   tailf:info "xxx;;User defined sub-category";
48858                 }
48859                 type enumeration {
48860                   enum "authentication-services" {
48861                     tailf:info "Authentication-services related applications";
48862                   }
48863                   enum "backup-systems" {
48864                     tailf:info "Backup-systems related applications";
48865                   }
48866                   enum "consumer-audio-streaming" {
48867                     tailf:info "Applications stream audio to consumers";
48868                   }
48869                   enum "consumer-cloud-storage" {
48870                     tailf:info "Cloud storage services targetted to personal consumers";
48871                   }
48872                   enum "consumer-multimedia-messaging" {
48873                     tailf:info "consumer-multimedia-messaging related applications";
48874                   }
48875                   enum "consumer-video-streaming" {
48876                     tailf:info "Applications stream video to consumers";
48877                   }
48878                   enum "consumer-web-browsing" {
48879                     tailf:info "Consumer websites browsing";
48880                   }
48881                   enum "control-and-signaling" {
48882                     tailf:info "Control-and-signaling related applications";
48883                   }
48884                   enum "desktop-virtualization" {
48885                     tailf:info "Desktop virtualization and remote desktop related applications";
48886                   }
48887                   enum "enterprise-cloud-data-storage" {
48888                     tailf:info "Cloud storage services targetted to enterprises";
48889                   }
48890                   enum "enterprise-cloud-services" {
48891                     tailf:info "enterprise cloud applications";
48892                   }
48893                   enum "enterprise-data-center-storage" {
48894                     tailf:info "Enterprise data center storage related applications";
48895                   }
48896                   enum "enterprise-media-conferencing" {
48897                     tailf:info "Enterprise multimedia conferencing related applications";
48898                   }
48899                   enum "enterprise-realtime-apps" {
48900                     tailf:info "Realtime interactive applications";
48901                   }
48902                   enum "enterprise-rich-media-content" {
48903                     tailf:info "enterprise-rich-media-content";
48904                   }
48905                   enum "enterprise-sw-deployment-tools" {
48906                     tailf:info "Software deployment application targeted to enteprises";
48907                   }
48908                   enum "enterprise-transactional-apps" {
48909                     tailf:info "Transactional enterprise applications";
48910                   }
48911                   enum "enterprise-video-broadcast" {
48912                     tailf:info "Video-based broadcast applications for enterprise use";
48913                   }
48914                   enum "enterprise-voice-collaboration" {
48915                     tailf:info "Voice-based collaboration applications for enterprise use";
48916                   }
48917                   enum "file-transfer" {
48918                     tailf:info "File transfer related applications";
48919                   }
48920                   enum "naming-services" {
48921                     tailf:info "Naming-services related applications";
48922                   }
48923                   enum "network-management" {
48924                     tailf:info "Network-management related applications";
48925                   }
48926                   enum "os-updates" {
48927                     tailf:info "Operating systems updates traffic";
48928                   }
48929                   enum "other" {
48930                     tailf:info "Other related applications";
48931                   }
48932                   enum "p2p-file-transfer" {
48933                     tailf:info "P2P-file-transfer related applications";
48934                   }
48935                   enum "p2p-networking" {
48936                     tailf:info "P2P-networking related applications";
48937                   }
48938                   enum "remote-access-terminal" {
48939                     tailf:info "Remote-access-terminal related applications";
48940                   }
48941                   enum "routing-protocol" {
48942                     tailf:info "Routing-protocol related applications";
48943                   }
48944                   enum "tunneling-protocols" {
48945                     tailf:info "Tunneling-protocols related applications";
48946                   }
48947                 }
48948               }
48949             }
48950             leaf traffic-class {
48951               tailf:info "SRND class";
48952               description
48953                 "SRND class";
48954               tailf:cli-full-command;
48955               type enumeration {
48956                 enum "broadcast-video" {
48957                   tailf:info "Broadcast TV, live events, video surveillance";
48958                 }
48959                 enum "bulk-data" {
48960                   tailf:info "Non-interactive data applications";
48961                 }
48962                 enum "multimedia-conferencing" {
48963                   tailf:info "Desktop software multimedia collaboration applications";
48964                 }
48965                 enum "multimedia-streaming" {
48966                   tailf:info "Video-on-Demand (VoD) streaming video";
48967                 }
48968                 enum "network-control" {
48969                   tailf:info "Network control plane traffic";
48970                 }
48971                 enum "ops-admin-mgmt" {
48972                   tailf:info "Network operations, administration, and management traffic";
48973                 }
48974                 enum "real-time-interactive" {
48975                   tailf:info "High-definition interactive video applications";
48976                 }
48977                 enum "signaling" {
48978                   tailf:info "Signaling traffic that supports IP voice and video telephony";
48979                 }
48980                 enum "transactional-data" {
48981                   tailf:info "Interactive data applications";
48982                 }
48983                 enum "voip-telephony" {
48984                   tailf:info "VoIP telephony (bearer-only) traffic";
48985                 }
48986               }
48987             }
48988             leaf tunnel {
48989               tailf:info "Tunnelled applications";
48990               description
48991                 "Tunnelled applications";
48992               tailf:cli-full-command;
48993               type enumeration {
48994                 enum "tunnel-no" {
48995                   tailf:info "Tunnel-no related applications";
48996                 }
48997                 enum "tunnel-unassigned" {
48998                   tailf:info "Tunnel-unassigned related applications";
48999                 }
49000                 enum "tunnel-yes" {
49001                   tailf:info "Tunnel-yes related applications";
49002                 }
49003               }
49004             }
49005           }
49006         }
49007         list attribute-set {
49008           tailf:info "Set attribute Map";
49009           description
49010             "Set attribute Map";
49011           tailf:cli-suppress-mode;
49012           key "protocol-name";
49013           leaf protocol-name {
49014             type string;
49015           }
49016           leaf profile-name {
49017             tailf:cli-drop-node-name;
49018             tailf:cli-hide-in-submode;
49019             type string {
49020               tailf:info "xxx;;Attribute Profile Name";
49021             }
49022           }
49023         }
49024         list custom {
49025           tailf:info "Custom PDL (protocol description language) Module";
49026           description
49027             "Custom PDL (protocol description language) Module";
49028           tailf:cli-suppress-mode;
49029           key "name";
49030           leaf name {
49031             type string {
49032               tailf:info "WORD;;Name of the User defined Protocol";
49033             }
49034           }
49035           container http {
49036             tailf:info "Custom protocols based on http parameters";
49037             description
49038               "Custom protocols based on http parameters";
49039             tailf:cli-hide-in-submode;
49040             leaf cookie {
49041               tailf:info "HTTP Cookie";
49042               description
49043                 "HTTP Cookie";
49044               type string {
49045                 tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49046               }
49047             }
49048             leaf host {
49049               tailf:info "Host name of Origin Server containing resource";
49050               description
49051                 "Host name of Origin Server containing resource";
49052               type string {
49053                 tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49054               }
49055             }
49056             leaf method {
49057               tailf:info "HTTP method";
49058               description
49059                 "HTTP method";
49060               type string {
49061                 tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49062               }
49063             }
49064             leaf referer {
49065               tailf:info "Address the resource request was obtained from";
49066               description
49067                 "Address the resource request was obtained from";
49068               type string {
49069                 tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49070               }
49071             }
49072             choice http-uv {
49073               case url-case {
49074                 leaf url {
49075                   tailf:info "Uniform Resource Locator path";
49076                   description
49077                     "Uniform Resource Locator path";
49078                   type string {
49079                     tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49080                   }
49081                 }
49082               }
49083               case user-agent-case {
49084                 leaf user-agent {
49085                   tailf:info "Software used by agent sending the request";
49086                   description
49087                     "Software used by agent sending the request";
49088                   type string {
49089                     tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49090                   }
49091                 }
49092               }
49093               case version-case {
49094                 leaf version {
49095                   tailf:info "HTTP version";
49096                   description
49097                     "HTTP version";
49098                   type string {
49099                     tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49100                   }
49101                 }
49102               }
49103               case via-case {
49104                 leaf via {
49105                   tailf:info "HTTP via field";
49106                   description
49107                     "HTTP via field";
49108                   type string {
49109                     tailf:info "WORD;;Enter String Format - cannot exceed 30 characters";
49110                   }
49111                 }
49112               }
49113             }
49114             leaf id {
49115               tailf:info "Selector ID";
49116               description
49117                 "Selector ID";
49118               tailf:cli-full-command;
49119               type uint16 {
49120                 tailf:info "<1-65535>;;Enter Selector ID";
49121               }
49122             }
49123           }
49124         }
49125       }
49126       container wccp {
49127         tailf:info "Web-Cache Coordination Protocol IPv4 Commands";
49128         description
49129           "Web-Cache Coordination Protocol IPv4 Commands";
49130         uses ip-wccp-grouping;
49131         container check {
49132           tailf:info "Enable a WCCP check";
49133           description
49134             "Enable a WCCP check";
49135           container acl {
49136             tailf:info "Enable acl check";
49137             description
49138               "Enable acl check";
49139             leaf outbound {
49140               tailf:info "Enable acl check on original outbound interface";
49141               description
49142                 "Enable acl check on original outbound interface";
49143               type empty;
49144             }
49145           }
49146           container services {
49147             tailf:info "Enable services check";
49148             description
49149               "Enable services check";
49150             leaf all {
49151               tailf:info "Enable all services check for redirection";
49152               description
49153                 "Enable all services check for redirection";
49154               type empty;
49155             }
49156           }
49157         }
49158         list vrf {
49159           tailf:info "Configure WCCP for a VRF";
49160           description
49161             "Configure WCCP for a VRF";
49162           tailf:cli-suppress-mode;
49163           tailf:cli-compact-syntax;
49164           key "name";
49165           leaf name {
49166             type string {
49167               tailf:info "WORD;; VRF name";
49168             }
49169           }
49170           uses ip-wccp-grouping;
49171         }
49172       }
49173     }
49174     container macro {
49175       tailf:info "Macro configuration";
49176       description
49177         "Macro configuration";
49178       container global {
49179         tailf:info "Enter global macro configuration";
49180         description
49181           "Enter global macro configuration";
49182         leaf description {
49183           tailf:info "Macro description of this device";
49184           description
49185             "Macro description of this device";
49186           tailf:cli-multi-value;
49187           type string {
49188             tailf:info "LINE;;Description of the macro applied on device";
49189           }
49190         }
49191       }
49192     }
49193     container vmps {
49194       tailf:info "VMPS settings";
49195       description
49196         "VMPS settings";
49197       leaf reconfirm {
49198         tailf:info "Set VMPS reconfirm interval";
49199         description
49200           "Set VMPS reconfirm interval";
49201         type uint8 {
49202           tailf:info "Number of minutes between reconfirmations";
49203           range "0..120";
49204         }
49205       }
49206       leaf retry {
49207         tailf:info "Set VMPS retry count";
49208         description
49209           "Set VMPS retry count";
49210         type uint8 {
49211           tailf:info "<1-10>;;Retry count per server";
49212           range "1..10";
49213         }
49214       }
49215       list server {
49216         tailf:info "Configure server IP address";
49217         description
49218           "Configure server IP address";
49219         tailf:cli-suppress-mode;
49220         tailf:cli-delete-when-empty;
49221         tailf:cli-compact-syntax;
49222         key "name";
49223         leaf name {
49224           type host-type {
49225             tailf:info "Hostname or A.B.C.D;;IP address";
49226           }
49227         }
49228         leaf primary {
49229           tailf:info "Specify primary server";
49230           description
49231             "Specify primary server";
49232           type empty;
49233         }
49234       }
49235     }
49236     container ipv6 {
49237       tailf:info "Global IPv6 configuration commands";
49238       description
49239         "Global IPv6 configuration commands";
49240       container access-list {
49241         tailf:info "Configure access lists";
49242         description
49243           "Configure access lists";
49244         list named-acl {
49245           tailf:cli-drop-node-name;
49246           tailf:cli-no-key-completion;
49247           tailf:cli-mode-name "config-ipv6-acl";
49248           key "name";
49249           leaf name {
49250             type string {
49251               tailf:info "WORD;;User selected string identifying this access list";
49252             }
49253           }
49254           uses ipv6-acl-grouping;
49255         }
49256         list named-rb-acl {
49257           tailf:cli-drop-node-name;
49258           tailf:cli-no-key-completion;
49259           tailf:cli-mode-name "config-ipv6rb-acl";
49260           key "name";
49261           leaf name {
49262             type string {
49263               tailf:info "WORD;;User selected string identifying this access list";
49264             }
49265           }
49266           leaf role-based {
49267             tailf:info "Role-based Access List";
49268             description
49269               "Role-based Access List";
49270             tailf:cli-hide-in-submode;
49271             tailf:cli-prefix-key;
49272             type empty;
49273           }
49274           uses ipv6-acl-grouping;
49275         }
49276         container log-update {
49277           tailf:info "Control access list log updates";
49278           description
49279             "Control access list log updates";
49280           leaf threshold {
49281             tailf:info "Set access-list logging threshold";
49282             description
49283               "Set access-list logging threshold";
49284             type uint64 {
49285               tailf:info "<0-2147483647>;;Access list log-update threshold (number of hits)";
49286               range "0..2147483647";
49287             }
49288           }
49289         }
49290         leaf match-local-traffic {
49291           tailf:info "Match locally-generated traffic";
49292           description
49293             "Match locally-generated traffic";
49294           tailf:cli-full-command;
49295           type empty;
49296         }
49297       }
49298       leaf unicast-routing {
49299         tailf:info "Enable unicast routing";
49300         description
49301           "Enable unicast routing";
49302         type empty;
49303       }
49304       container mld {
49305         tailf:info "Global mld commands";
49306         description
49307           "Global mld commands";
49308         container ssm-map {
49309           tailf:info "SSM mapping commands";
49310           description
49311             "SSM mapping commands";
49312           leaf enable {
49313             tailf:info "Enable SSM mapping";
49314             description
49315               "Enable SSM mapping";
49316             tailf:cli-full-command;
49317             type empty;
49318           }
49319           container query {
49320             tailf:info "Which database should we query for the source";
49321             description
49322               "Which database should we query for the source";
49323             leaf dns {
49324               tailf:info "Use DNS for source lookup";
49325               description
49326                 "Use DNS for source lookup";
49327               tailf:cli-full-command;
49328               tailf:cli-show-no;
49329               type empty;
49330             }
49331           }
49332           container static {
49333             tailf:info "SSM static group to source mapping";
49334             description
49335               "SSM static group to source mapping";
49336             tailf:cli-sequence-commands;
49337             tailf:cli-compact-syntax;
49338             leaf acl {
49339               tailf:cli-drop-node-name;
49340               type string {
49341                 tailf:info "WORD;;Named access list specifying SSM group range";
49342               }
49343             }
49344             leaf source-ip {
49345               tailf:cli-drop-node-name;
49346               type inet:ipv6-address {
49347                 tailf:info "X:X:X:X::X;;SSM source address";
49348               }
49349             }
49350           }
49351         }
49352       }
49353       container multicast {
49354         tailf:info "Configure multicast related commands";
49355         description
49356           "Configure multicast related commands";
49357         tailf:cli-compact-syntax;
49358         leaf vrf {
49359           tailf:info "Select VPN Routing/Forwarding instance";
49360           description
49361             "Select VPN Routing/Forwarding instance";
49362           type string {
49363             tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
49364           }
49365         }
49366         container rpf {
49367           tailf:info "Configure multicast RPF related commands";
49368           description
49369             "Configure multicast RPF related commands";
49370           tailf:cli-flatten-container;
49371           container backoff {
49372             tailf:info "Backoff delay after unicast routing change";
49373             description
49374               "Backoff delay after unicast routing change";
49375             tailf:cli-compact-syntax;
49376             tailf:cli-sequence-commands {
49377               tailf:cli-reset-siblings;
49378             }
49379             leaf initial-delay {
49380               tailf:cli-drop-node-name;
49381               type uint16 {
49382                 tailf:info "<200-65535>;;Initial RPF backoff delay in milliseconds";
49383                 range "200..65535";
49384               }
49385             }
49386             leaf max-delay {
49387               tailf:cli-drop-node-name;
49388               type uint16 {
49389                 tailf:info "<200-65535>;;Maximum RPF backoff delay in milliseconds";
49390                 range "200..65535";
49391               }
49392             }
49393           }
49394           leaf use-bgp {
49395             tailf:info "Use BGP routes for multicast RPF lookup";
49396             description
49397               "Use BGP routes for multicast RPF lookup";
49398             type empty;
49399           }
49400         }
49401       }
49402       container multicast-routing {
49403         tailf:info "Enable IPv6 multicast";
49404         description
49405           "Enable IPv6 multicast";
49406         presence "true";
49407         leaf vrf {
49408           tailf:info "Select VPN Routing/Forwarding instance";
49409           description
49410             "Select VPN Routing/Forwarding instance";
49411           type string {
49412             tailf:info "WORD;;VPN Routing/Forwarding instance name";
49413           }
49414         }
49415       }
49416       container cef {
49417         tailf:info "Cisco Express Forwarding";
49418         description
49419           "Cisco Express Forwarding";
49420         tailf:cli-delete-when-empty;
49421         presence "true";
49422         container accounting {
49423           tailf:info "Enable CEF accounting";
49424           description
49425             "Enable CEF accounting";
49426           leaf per-prefix {
49427             tailf:info "Enable per prefix accounting";
49428             description
49429               "Enable per prefix accounting";
49430             type empty;
49431           }
49432           leaf prefix-length {
49433             tailf:info "Enable prefix length accounting";
49434             description
49435               "Enable prefix length accounting";
49436             type empty;
49437           }
49438         }
49439         leaf distributed {
49440           tailf:info "Distributed Cisco Express Forwarding";
49441           description
49442             "Distributed Cisco Express Forwarding";
49443           tailf:cli-full-command;
49444           type empty;
49445         }
49446       }
49447       container nd {
49448         tailf:info "Configure IPv6 ND";
49449         description
49450           "Configure IPv6 ND";
49451         container cache {
49452           tailf:info "Cache entry";
49453           description
49454             "Cache entry";
49455           container expire {
49456             tailf:info "Expiry time for ND entries";
49457             description
49458               "Expiry time for ND entries";
49459             tailf:cli-compact-syntax;
49460             leaf time {
49461               tailf:cli-drop-node-name;
49462               type uint16 {
49463                 tailf:info "<1-65536>;;Expiry time (seconds)";
49464               }
49465             }
49466             leaf refresh {
49467               tailf:info "Automatically refresh entry";
49468               description
49469                 "Automatically refresh entry";
49470               tailf:cli-full-command;
49471               type empty;
49472             }
49473           }
49474         }
49475         container raguard {
49476           tailf:info "Configure RA guard";
49477           description
49478             "Configure RA guard";
49479           leaf policy {
49480             tailf:info "Configure a policy for feature RA guard";
49481             description
49482               "Configure a policy for feature RA guard";
49483             type string {
49484               tailf:info "WORD;;Name of the raguard policy";
49485             }
49486           }
49487           leaf attach-policy {
49488             tailf:info "Configure a policy for feature RA guard";
49489             description
49490               "Configure a policy for feature RA guard";
49491             type string {
49492               tailf:info "WORD;;Name of the raguard policy";
49493             }
49494           }
49495         }
49496       }
49497       container pim {
49498         tailf:info "Configure Protocol Independent Multicast";
49499         description
49500           "Configure Protocol Independent Multicast";
49501         uses ipv6-pim-grouping;
49502         list vrf {
49503           tailf:info "Select VPN Routing/Forwarding instance";
49504           description
49505             "Select VPN Routing/Forwarding instance";
49506           tailf:cli-suppress-mode;
49507           tailf:cli-delete-when-empty;
49508           key "id";
49509           leaf id {
49510             type string {
49511               tailf:info "WORD;;VPN Routing/Forwarding instance name";
49512             }
49513           }
49514           uses ipv6-pim-grouping;
49515         }
49516       }
49517       container rip {
49518         tailf:info "Configure ipv6 RIP settings";
49519         description
49520           "Configure ipv6 RIP settings";
49521         leaf vrf-mode {
49522           tailf:info "Enable RIPng VRF support";
49523           description
49524             "Enable RIPng VRF support";
49525           type enumeration {
49526             enum "enable" {
49527               tailf:info "Enable RIPng VRF support";
49528             }
49529           }
49530         }
49531       }
49532       container route {
49533         tailf:info "Configure static routes";
49534         description
49535           "Configure static routes";
49536         uses ipv6-route-grouping;
49537         list vrf {
49538           tailf:info "Configure static route for a VPN Routing/Forwarding instance";
49539           description
49540             "Configure static route for a VPN Routing/Forwarding instance";
49541           tailf:cli-suppress-mode;
49542           tailf:cli-delete-when-empty;
49543           tailf:cli-compact-syntax;
49544           tailf:cli-reset-container;
49545           tailf:cli-incomplete-command;
49546           tailf:cli-diff-dependency "/ios:native/vrf/definition";
49547           tailf:cli-diff-dependency "/ios:native/vrf/definition/address-family";
49548           key "name";
49549           leaf name {
49550             type string {
49551               tailf:info "WORD;VRF name";
49552             }
49553           }
49554           uses ipv6-route-grouping;
49555         }
49556       }
49557       container router {
49558         tailf:info "Enable an IPV6 routing process";
49559         description
49560           "Enable an IPV6 routing process";
49561         list eigrp {
49562           tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
49563           description
49564             "Enhanced Interior Gateway Routing Protocol (EIGRP)";
49565           tailf:cli-mode-name "config-rtr";
49566           key "id";
49567           leaf id {
49568             tailf:info "Autonomous System ID";
49569             description
49570               "Autonomous System ID";
49571             type uint16 {
49572               tailf:info "<1..65535>;;ID";
49573               range "1..65535";
49574             }
49575           }
49576           container default-metric {
49577             tailf:info "Set metric of redistributed routes";
49578             description
49579               "Set metric of redistributed routes";
49580             tailf:cli-sequence-commands;
49581             tailf:cli-compact-syntax;
49582             leaf dm-rdr {
49583               tailf:cli-drop-node-name;
49584               description
49585                 "Bandwidth in Kbits per second";
49586               type uint32 {
49587                 tailf:info "<1-4294967295>;;Bandwidth in Kbits per second";
49588                 range "1..4294967295";
49589               }
49590             }
49591             leaf dm-rdr0 {
49592               tailf:cli-drop-node-name;
49593               description
49594                 "delay metric in 10 microsecond units";
49595               type uint32 {
49596                 tailf:info "<0-4294967295>;;delay metric in 10 microsecond units";
49597                 range "0..4294967295";
49598               }
49599             }
49600             leaf dm-rdr-pct {
49601               description
49602                 "Reliability metric where 255 is 100% reliable";
49603               tailf:cli-drop-node-name;
49604               type uint8 {
49605                 tailf:info "<0-255>;;Reliability metric where 255 is 100% reliable";
49606                 range "0..255";
49607               }
49608             }
49609             leaf effective-bandwith-metric {
49610               tailf:cli-drop-node-name;
49611               description
49612                 "Effective bandwidth metric (Loading) where 255 is 100% loaded";
49613               type uint8 {
49614                 tailf:info "<1-255>;;Effective bandwidth metric (Loading) where 255 is 100% loaded";
49615               }
49616             }
49617             leaf mtu {
49618               tailf:cli-drop-node-name;
49619               description
49620                 "Maximum Transmission Unit metric of the path ";
49621               type uint16 {
49622                 tailf:info "<1-65535>;;Maximum Transmission Unit metric of the path";
49623               }
49624             }
49625           }
49626           container distance {
49627             tailf:info "Define an administrative distance";
49628             description
49629               "Define an administrative distance";
49630             container eigrp {
49631               tailf:info "EIGRP-IPV6 distance";
49632               description
49633                 "EIGRP-IPV6 distance";
49634               tailf:cli-sequence-commands;
49635               tailf:cli-compact-syntax;
49636               leaf internal-route {
49637                 tailf:cli-drop-node-name;
49638                 description
49639                   "Distance for internal routes";
49640                 type uint8 {
49641                   tailf:info "<1-255>;;Distance for internal routes";
49642                 }
49643               }
49644               leaf external-route {
49645                 tailf:cli-drop-node-name;
49646                 description
49647                   "Distance for external routes";
49648                 type uint8 {
49649                   tailf:info "<1-255>;;Distance for external routes";
49650                 }
49651               }
49652             }
49653           }
49654           uses ipv6-router-distribute-list-grouping;
49655           container eigrp {
49656             tailf:info "EIGRP specific commands";
49657             description
49658               "EIGRP specific commands";
49659             leaf router-id {
49660               tailf:info "router id for this EIGRP process";
49661               description
49662                 "router id for this EIGRP process";
49663               type inet:ipv4-address {
49664                 tailf:info "A.B.C.D;;EIGRP Router-ID in IP address format";
49665               }
49666             }
49667           }
49668           list passive-interface {
49669             tailf:info "Suppress routing updates on an interface";
49670             description
49671               "Suppress routing updates on an interface";
49672             tailf:cli-suppress-mode;
49673             key "name";
49674             leaf name {
49675               tailf:cli-show-no;
49676               type union {
49677                 type string;
49678                 type enumeration {
49679                   enum "default";
49680                 }
49681               }
49682             }
49683           }
49684         }
49685         list rip {
49686           tailf:info "IPv6 Routing Information Protocol (RIPv6)";
49687           description
49688             "IPv6 Routing Information Protocol (RIPv6)";
49689           tailf:cli-mode-name "config-rtr";
49690           key "id";
49691           leaf id {
49692             type string {
49693               tailf:info "WORD;;User selected string identifying this process";
49694             }
49695           }
49696           leaf distance {
49697             tailf:info "Administrative distance";
49698             description
49699               "Administrative distance";
49700             tailf:cli-full-command;
49701             type uint8 {
49702               range "1..254";
49703               tailf:info "1-254;;Administrative distance";
49704             }
49705           }
49706           uses ipv6-router-distribute-list-grouping;
49707           leaf maximum-paths {
49708             tailf:info "Forward packets over multiple paths";
49709             description
49710               "Forward packets over multiple paths";
49711             tailf:cli-full-command;
49712             type uint32 {
49713               range "1..32";
49714               tailf:info "<1-32>;;Number of paths";
49715             }
49716           }
49717           leaf poison-reverse {
49718             tailf:info "Poison reverse updates";
49719             description
49720               "Poison reverse updates";
49721             tailf:cli-full-command;
49722             type empty;
49723           }
49724           container redistribute {
49725             tailf:info "Redistribute IPv6 prefixes from another routing protocol";
49726             description
49727               "Redistribute IPv6 prefixes from another routing protocol";
49728             container application {
49729               tailf:info "Application Protocol";
49730               description
49731                 "Application Protocol";
49732               tailf:cli-compact-syntax;
49733               uses ipv6-router-rip-redistribute-grouping;
49734             }
49735             container lisp {
49736               tailf:info "Locator ID Separation Protocol (LISP)";
49737               description
49738                 "Locator ID Separation Protocol (LISP)";
49739               tailf:cli-compact-syntax;
49740               uses ipv6-router-rip-redistribute-grouping;
49741             }
49742             container nd {
49743               tailf:info "Neighbor Discovery";
49744               description
49745                 "Neighbor Discovery";
49746               tailf:cli-compact-syntax;
49747               uses ipv6-router-rip-redistribute-grouping;
49748             }
49749             uses default-redistribute-grouping;
49750           }
49751           leaf split-horizon {
49752             tailf:info "Split horizon updates";
49753             description
49754               "Split horizon updates";
49755             tailf:cli-full-command;
49756             type empty;
49757           }
49758           container timers {
49759             tailf:info "Adjust routing timers";
49760             description
49761               "Adjust routing timers";
49762             tailf:cli-compact-syntax;
49763             tailf:cli-sequence-commands;
49764             leaf update {
49765               description
49766                 "Update period";
49767               tailf:cli-drop-node-name;
49768               type uint16 {
49769                 tailf:info "<5-65535>;;Update period";
49770                 range "5..65535";
49771               }
49772             }
49773             leaf timeout {
49774               description
49775                 "Route timeout period";
49776               tailf:cli-drop-node-name;
49777               type uint16 {
49778                 tailf:info "<1-65535>;;Route timeout period";
49779                 range "1..65535";
49780               }
49781             }
49782             leaf holddown {
49783               description
49784                 "Route holddown period";
49785               tailf:cli-drop-node-name;
49786               type uint16 {
49787                 tailf:info "<0-65535>;;Route holddown period";
49788                 range "0..65535";
49789               }
49790             }
49791             leaf garbage-collection {
49792               description
49793                 "Route garbage collection period";
49794               tailf:cli-drop-node-name;
49795               type uint16 {
49796                 tailf:info "<1-65535>;;Route garbage collection period";
49797                 range "1..65535";
49798               }
49799             }
49800           }
49801         }
49802       }
49803       leaf source-route {
49804         tailf:info "Process packets with source routing header options";
49805         description
49806           "Process packets with source routing header options";
49807         tailf:cli-boolean-no;
49808         tailf:cli-trim-default;
49809         type boolean;
49810         default "true";
49811       }
49812       container prefix-list {
49813         tailf:info "Build a prefix list";
49814         description
49815           "Build a prefix list";
49816         list prefixes {
49817           tailf:cli-drop-node-name;
49818           tailf:cli-suppress-mode;
49819           tailf:cli-delete-when-empty;
49820           key "name";
49821           leaf name {
49822             type string {
49823               tailf:info "WORD;;Name of a prefix list";
49824               pattern "([^s].*)|(s[^e].*)|(se[^q].*)(seq[^u].*)|(sequ[^e].*)|(seque[^n].*)|(sequen[^c].*)|(sequenc[^e].*)|(sequence[^\\-].*)|(sequence\\-[^n].*)|(sequence\\-n[^u].*)|(sequence\\-nu[^m].*)|(sequence\\-num[^b].*)|(sequence\\-numb[^e].*)|(sequence\\-numbe[^r].*)|(sequence\\-number..*)";
49825             }
49826           }
49827           leaf description {
49828             tailf:info "Prefix-list specific description";
49829             description
49830               "Prefix-list specific description";
49831             tailf:cli-multi-value;
49832             tailf:cli-full-command;
49833             type string {
49834               length "1..80";
49835               tailf:info "LINE;;Up to 80 characters describing this prefix-list";
49836             }
49837           }
49838           container permit {
49839             tailf:info "Specify packets to forward";
49840             description
49841               "Specify packets to forward";
49842             tailf:cli-sequence-commands;
49843             tailf:cli-compact-syntax;
49844             leaf address {
49845               tailf:cli-drop-node-name;
49846               type ios:ipv6-prefix {
49847                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix<network>/<length>";
49848               }
49849             }
49850             leaf ge {
49851               tailf:info "Minimum prefix length to be matched";
49852               description
49853                 "Minimum prefix length to be matched";
49854               tailf:cli-break-sequence-commands;
49855               type uint8 {
49856                 tailf:info "<0-128>;;Minimum prefix length";
49857                 range "0..128";
49858               }
49859             }
49860             leaf le {
49861               tailf:info "Maximum prefix length to be matched";
49862               description
49863                 "Maximum prefix length to be matched";
49864               tailf:cli-full-command;
49865               type uint8 {
49866                 tailf:info "<0-128>;;Maximum prefix length";
49867                 range "0..128";
49868               }
49869             }
49870           }
49871           container deny {
49872             tailf:info "Specify packets to reject";
49873             description
49874               "Specify packets to reject";
49875             tailf:cli-sequence-commands;
49876             tailf:cli-compact-syntax;
49877             leaf address {
49878               tailf:cli-drop-node-name;
49879               type ios:ipv6-prefix {
49880                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix<network>/<length>";
49881               }
49882             }
49883             leaf ge {
49884               tailf:info "Minimum prefix length to be matched";
49885               description
49886                 "Minimum prefix length to be matched";
49887               tailf:cli-break-sequence-commands;
49888               type uint8 {
49889                 tailf:info "<0-128>;;Minimum prefix length";
49890                 range "0..128";
49891               }
49892             }
49893             leaf le {
49894               tailf:info "Maximum prefix length to be matched";
49895               description
49896                 "Maximum prefix length to be matched";
49897               tailf:cli-full-command;
49898               type uint8 {
49899                 tailf:info "<0-128>;;Maximum prefix length";
49900                 range "0..128";
49901               }
49902             }
49903           }
49904           list seq {
49905             tailf:info "sequence number of an entry";
49906             description
49907               "sequence number of an entry";
49908             tailf:cli-suppress-mode;
49909             tailf:cli-delete-when-empty;
49910             key "no";
49911             leaf no {
49912               type uint32 {
49913                 range "1..4294967294";
49914                 tailf:info "<1-4294967294>;;Sequence number";
49915               }
49916               tailf:key-default "10";
49917             }
49918             container deny {
49919               tailf:info "Specify packets to reject";
49920               description
49921                 "Specify packets to reject";
49922               tailf:cli-sequence-commands {
49923                 tailf:cli-reset-all-siblings;
49924               }
49925               tailf:cli-compact-syntax;
49926               leaf ip {
49927                 tailf:cli-drop-node-name;
49928                 type ios:ipv6-prefix {
49929                   tailf:info "X:X:X:X::X/<0-128>  IPv6 prefix<network>/<length>";
49930                 }
49931               }
49932               leaf ge {
49933                 tailf:info "Minimum prefix length to be matched";
49934                 description
49935                   "Minimum prefix length to be matched";
49936                 tailf:cli-break-sequence-commands;
49937                 type uint16 {
49938                   range "1..128";
49939                   tailf:info "<1-128>;;Minimum prefix length";
49940                 }
49941               }
49942               leaf le {
49943                 tailf:info "Maximum prefix length to be matched";
49944                 description
49945                   "Maximum prefix length to be matched";
49946                 tailf:cli-full-command;
49947                 type uint16 {
49948                   range "1..128";
49949                   tailf:info "<1-128>;;Maximum prefix length";
49950                 }
49951               }
49952             }
49953             container permit {
49954               tailf:info "Specify packets to forward";
49955               description
49956                 "Specify packets to forward";
49957               tailf:cli-sequence-commands {
49958                 tailf:cli-reset-all-siblings;
49959               }
49960               tailf:cli-compact-syntax;
49961               leaf ip {
49962                 tailf:cli-drop-node-name;
49963                 type ios:ipv6-prefix {
49964                   tailf:info "X:X:X:X::X/<0-128>  IPv6 prefix<network>/<length>";
49965                 }
49966               }
49967               leaf ge {
49968                 tailf:info "Minimum prefix length to be matched";
49969                 description
49970                   "Minimum prefix length to be matched";
49971                 tailf:cli-break-sequence-commands;
49972                 type uint16 {
49973                   range "1..128";
49974                   tailf:info "<1-128>;;Minimum prefix length";
49975                 }
49976               }
49977               leaf le {
49978                 tailf:info "Maximum prefix length to be matched";
49979                 description
49980                   "Maximum prefix length to be matched";
49981                 tailf:cli-full-command;
49982                 type uint16 {
49983                   range "1..128";
49984                   tailf:info "<1-128>;;Maximum prefix length";
49985                 }
49986               }
49987             }
49988           }
49989         }
49990         leaf sequence-number {
49991           tailf:info "Include/exclude sequence numbers in NVGEN";
49992           description
49993             "Include/exclude sequence numbers in NVGEN";
49994           tailf:cli-full-command;
49995           type empty;
49996         }
49997       }
49998     }
49999     container vlan {
50000       tailf:info "VLAN commands";
50001       description
50002         "VLAN commands";
50003       container accounting {
50004         tailf:info "VLAN accounting configuration";
50005       }
50006       container internal {
50007         tailf:info "internal VLAN";
50008         description
50009           "internal VLAN";
50010         container allocation {
50011           tailf:info "internal VLAN allocation";
50012           description
50013             "internal VLAN allocation";
50014           leaf policy {
50015             type enumeration {
50016               enum "ascending" {
50017                 tailf:info "Allocates internal VLANs from 1006 to 4094";
50018               }
50019               enum "descending" {
50020                 tailf:info "Allocates internal VLANs from 4094 to 1006.";
50021               }
50022             }
50023           }
50024         }
50025       }
50026       container dot1q {
50027         tailf:info "dot1q parameters";
50028         description
50029           "dot1q parameters";
50030         container tag {
50031           tailf:info "tag parameters";
50032           description
50033             "tag parameters";
50034           leaf native {
50035             tailf:info "tag native vlan";
50036             description
50037               "tag native vlan";
50038             type empty;
50039           }
50040         }
50041       }
50042       container access-log {
50043         tailf:info "Configure VACL logging";
50044         description
50045           "Configure VACL logging";
50046         leaf maxflow {
50047           tailf:info "Set vacl logging maximum flow number";
50048           description
50049             "Set vacl logging maximum flow number";
50050           type uint16 {
50051             tailf:info "<0-2048>;;Maximum flow number";
50052             range "0..2048";
50053           }
50054         }
50055         leaf ratelimit {
50056           tailf:info "Set vacl logging rate limiter";
50057           description
50058             "Set vacl logging rate limiter";
50059           type uint16 {
50060             tailf:info "<10-5000>;;Maximum number of packets logged per second";
50061             range "10..5000";
50062           }
50063         }
50064         leaf threshold {
50065           tailf:info "Set vacl log-update threshold";
50066           description
50067             "Set vacl log-update threshold";
50068           type uint32 {
50069             tailf:info "<0-2147483647>;;log-update threshold (number of hits)";
50070             range "0..2147483647";
50071           }
50072         }
50073       }
50074       list vlan-list {
50075         tailf:cli-drop-node-name;
50076         tailf:cli-mode-name "config-vlan";
50077         tailf:cli-range-list-syntax;
50078         key "id";
50079         leaf id {
50080           type union {
50081             type uint16 {
50082               range "1..4094";
50083               tailf:info "<1-3967,4048-4094>;;VLAN ID 1-4094 or range(s): 1-5, 10 or 2-5,7-19";
50084             }
50085             type string;
50086           }
50087         }
50088         leaf name {
50089           tailf:info "Ascii name of the VLAN";
50090           description
50091             "Ascii name of the VLAN";
50092           tailf:cli-full-command;
50093           tailf:cli-multi-value;
50094           type string {
50095             length "1..32";
50096             tailf:info "The ascii name for the VLAN (Max Size 32)";
50097           }
50098         }
50099         leaf uni-vlan {
50100           tailf:info "Configure a UNI VLAN";
50101           description
50102             "Configure a UNI VLAN";
50103           tailf:cli-full-command;
50104           type enumeration {
50105             enum "community" {
50106               tailf:info "UNI/ENI community VLAN";
50107             }
50108             enum "isolated" {
50109               tailf:info "UNI/ENI isolated VLAN";
50110             }
50111           }
50112         }
50113       }
50114     }
50115     container interface {
50116       tailf:info "Configure interfaces";
50117       description
50118         "Configure interfaces";
50119       tailf:cli-diff-dependency "/ios:native/vrf";
50120       tailf:cli-explicit-exit;
50121       list AppNav-Compress {
50122         tailf:info "Service-Context Virtual Interface Compress";
50123         description
50124           "Service-Context Virtual Interface Compress";
50125         tailf:cli-allow-join-with-key {
50126           tailf:cli-display-joined;
50127         }
50128         tailf:cli-mode-name "config-if";
50129         tailf:cli-suppress-key-abbreviation;
50130         key "name";
50131         leaf name {
50132           type uint16 {
50133             tailf:info "<1-1000>;;AppNav-Compress interface number";
50134             range "1..1000";
50135           }
50136         }
50137         uses interface-common-grouping;
50138       }
50139       list AppNav-UnCompress {
50140         tailf:info "Service-Context Virtual Interface UnCompress";
50141         description
50142           "Service-Context Virtual Interface UnCompress";
50143         tailf:cli-allow-join-with-key {
50144           tailf:cli-display-joined;
50145         }
50146         tailf:cli-mode-name "config-if";
50147         tailf:cli-suppress-key-abbreviation;
50148         key "name";
50149         leaf name {
50150           type uint16 {
50151             tailf:info "<1-1000>;;AppNav-UnCompress interface number";
50152             range "1..1000";
50153           }
50154         }
50155         uses interface-common-grouping;
50156       }
50157       list ATM {
50158         tailf:info "ATM interface";
50159         description
50160           "ATM interface";
50161         tailf:cli-allow-join-with-key {
50162           tailf:cli-display-joined;
50163         }
50164         tailf:cli-mode-name "config-if";
50165         tailf:cli-suppress-key-abbreviation;
50166         key "name";
50167         leaf name {
50168           type string {
50169             tailf:info "<slot>/<subslot>/<port>;;ATM interface number";
50170             pattern "([0-9]/){2}([0-9]|(ima[0-9]))(:[0-9])?";
50171           }
50172         }
50173         uses interface-atm-grouping;
50174       }
50175       container ATM-subinterface {
50176         tailf:cli-drop-node-name;
50177         list ATM {
50178           tailf:cli-allow-join-with-key {
50179             tailf:cli-display-joined;
50180           }
50181           tailf:cli-mode-name "config-subif";
50182           tailf:cli-suppress-key-abbreviation;
50183           key "name";
50184           leaf name {
50185             type string {
50186               pattern "([0-9]/){2}[0-9]\\.([0-9]/){3}[0-9]";
50187             }
50188           }
50189           uses interface-atm-grouping;
50190         }
50191       }
50192       list ATM-ACR {
50193         tailf:info "ATM-ACR interface";
50194         description
50195           "ATM-ACR interface";
50196         tailf:cli-allow-join-with-key {
50197           tailf:cli-display-joined;
50198         }
50199         tailf:cli-mode-name "config-if";
50200         tailf:cli-suppress-key-abbreviation;
50201         key "name";
50202         leaf name {
50203           type string {
50204             tailf:info "<slot>/<subslot>/<port>;;ATM-ACR interface number";
50205             pattern "[0-9]";
50206           }
50207         }
50208         uses interface-atm-grouping;
50209       }
50210       container ATM-ACRsubinterface {
50211         tailf:cli-drop-node-name;
50212         list ATM-ACR {
50213           tailf:cli-allow-join-with-key {
50214             tailf:cli-display-joined;
50215           }
50216           tailf:cli-mode-name "config-subif";
50217           tailf:cli-suppress-key-abbreviation;
50218           key "name";
50219           leaf name {
50220             type string {
50221               pattern "[0-9]\\.([0-9]/){3}[0-9]";
50222             }
50223           }
50224           uses interface-atm-grouping;
50225         }
50226       }
50227       list BDI {
50228         tailf:info "Bridge-Domain interface";
50229         description
50230           "Bridge-Domain interface";
50231         tailf:cli-allow-join-with-key {
50232           tailf:cli-display-joined;
50233         }
50234         tailf:cli-mode-name "config-if";
50235         key "name";
50236         leaf name {
50237           type string {
50238             tailf:info "<1-16000>;;BDI interface number";
50239           }
50240         }
50241         uses interface-common-grouping;
50242       }
50243       list CEM {
50244         tailf:info "Circuit Emulation interface";
50245         description
50246           "Circuit Emulation interface";
50247         tailf:cli-allow-join-with-key {
50248           tailf:cli-display-joined;
50249         }
50250         tailf:cli-mode-name "config-if";
50251         tailf:cli-suppress-key-abbreviation;
50252         key "name";
50253         leaf name {
50254           type string {
50255             tailf:info "<slot>/<port>;;CEM interface number";
50256             pattern "([0-9]/){2}[0-9]";
50257           }
50258         }
50259         uses interface-atm-grouping;
50260       }
50261       list CEM-ACR {
50262         tailf:info "Circuit Emulation interface";
50263         description
50264           "Circuit Emulation interface";
50265         tailf:cli-allow-join-with-key {
50266           tailf:cli-display-joined;
50267         }
50268         tailf:cli-mode-name "config-if";
50269         tailf:cli-suppress-key-abbreviation;
50270         key "name";
50271         leaf name {
50272           type uint8 {
50273             tailf:info "<0-255>;;CEM-ACR interface number";
50274             range "0..255";
50275           }
50276         }
50277         uses interface-atm-grouping;
50278       }
50279       list Embedded-Service-Engine {
50280         tailf:info "cisco embedded service engine module";
50281         description
50282           "cisco embedded service engine module";
50283         tailf:cli-allow-join-with-key {
50284           tailf:cli-display-joined;
50285         }
50286         tailf:cli-mode-name "config-if";
50287         key "name";
50288         leaf name {
50289           type string {
50290             tailf:info "<0-2>/<0-0>;;Embedded-Service-Engine interface number";
50291           }
50292         }
50293         uses interface-common-grouping;
50294       }
50295       list FastEthernet {
50296         tailf:info "FastEthernet IEEE 802.3";
50297         description
50298           "FastEthernet IEEE 802.3";
50299         tailf:cli-allow-join-with-key {
50300           tailf:cli-display-joined;
50301         }
50302         tailf:cli-mode-name "config-if";
50303         key "name";
50304         leaf name {
50305           type string {
50306             tailf:info "<0-66>/<0-128>;;FastEthernet interface number";
50307           }
50308         }
50309         uses interface-ethernet-grouping;
50310         uses interface-common-grouping;
50311         uses interface-zone-member-grouping;
50312         uses interface-switch-grouping;
50313       }
50314       list GigabitEthernet {
50315         tailf:info "GigabitEthernet IEEE 802.3z";
50316         description
50317           "GigabitEthernet IEEE 802.3z";
50318         tailf:cli-allow-join-with-key {
50319           tailf:cli-display-joined;
50320         }
50321         tailf:cli-mode-name "config-if";
50322         key "name";
50323         leaf name {
50324           type string {
50325             tailf:info "<0-66>/<0-128>;;GigabitEthernet interface number";
50326           }
50327         }
50328         leaf media-type {
50329           tailf:info "Media type";
50330           description
50331             "Media type";
50332           type enumeration {
50333             enum "auto-select" {
50334               tailf:info "Use whichever connector is attached";
50335             }
50336             enum "rj45" {
50337               tailf:info "Copper";
50338             }
50339             enum "sfp" {
50340               tailf:info "Fiber";
50341             }
50342           }
50343         }
50344         leaf port-type {
50345           type enumeration {
50346             enum "nni";
50347           }
50348         }
50349         uses interface-ethernet-grouping;
50350         uses interface-common-grouping;
50351         uses interface-zone-member-grouping;
50352         uses interface-switch-grouping;
50353       }
50354       list TenGigabitEthernet {
50355         tailf:info "Ten Gigabit Ethernet";
50356         description
50357           "Ten Gigabit Ethernet";
50358         tailf:cli-allow-join-with-key {
50359           tailf:cli-display-joined;
50360         }
50361         tailf:cli-mode-name "config-if";
50362         key "name";
50363         leaf name {
50364           type string {
50365             tailf:info "<0-66>/<0-128>;;TenGigabitEthernet interface number";
50366           }
50367         }
50368         leaf media-type {
50369           tailf:info "Media type";
50370           description
50371             "Media type";
50372           type enumeration {
50373             enum "auto-select" {
50374               tailf:info "Use whichever connector is attached";
50375             }
50376             enum "rj45" {
50377               tailf:info "Copper";
50378             }
50379             enum "sfp" {
50380               tailf:info "Fiber";
50381             }
50382           }
50383         }
50384         leaf port-type {
50385           type enumeration {
50386             enum "nni";
50387           }
50388         }
50389         uses interface-ethernet-grouping;
50390         uses interface-common-grouping;
50391         uses interface-zone-member-grouping;
50392         uses interface-switch-grouping;
50393       }
50394       list Loopback {
50395         tailf:info "Loopback interface";
50396         description
50397           "Loopback interface";
50398         tailf:cli-allow-join-with-key {
50399           tailf:cli-display-joined;
50400         }
50401         tailf:cli-mode-name "config-if";
50402         key "name";
50403         leaf name {
50404           type string {
50405             tailf:info "<0-2147483647>;;Loopback interface number";
50406           }
50407         }
50408         uses interface-common-grouping;
50409       }
50410       list nve {
50411         tailf:info "Network virtualization endpoint interface";
50412         description
50413           "Network virtualization endpoint interface";
50414         tailf:cli-allow-join-with-key {
50415           tailf:cli-display-joined;
50416         }
50417         tailf:cli-mode-name "config-if";
50418         key "name";
50419         leaf name {
50420           type uint16 {
50421             tailf:info "<1-4096>;;nve interface number";
50422             range "1..4096";
50423           }
50424         }
50425         container source-interface {
50426           tailf:info "Specify source interface for NVE";
50427           description
50428             "Specify source interface for NVE";
50429           uses interface-grouping;
50430         }
50431         container member {
50432           tailf:cli-incomplete-command;
50433           tailf:cli-sequence-commands;
50434           list vni {
50435             tailf:info "Configure VNI information";
50436             description
50437               "Configure VNI information";
50438             tailf:cli-sequence-commands;
50439             tailf:cli-compact-syntax;
50440             key "vni-range";
50441             leaf vni-range {
50442               type string {
50443                 tailf:info "WORD;;VNI range or instance between 4096-16777215 example: 6010-6030 or 7115";
50444               }
50445             }
50446             container mcast-group {
50447               tailf:cli-incomplete-command;
50448               tailf:cli-sequence-commands;
50449               leaf multicast-group-min {
50450                 tailf:cli-drop-node-name;
50451                 tailf:info "Starting Multicast Group IPv4 Address";
50452                 description
50453                   "Starting Multicast Group IPv4 Address";
50454                 type inet:ipv4-address {
50455                   tailf:info "A.B.C.D;;IP address";
50456                 }
50457               }
50458               leaf multicast-group-max {
50459                 tailf:cli-drop-node-name;
50460                 tailf:info "Ending Multicast Group IPv4 Address";
50461                 description
50462                   "Ending Multicast Group IPv4 Address";
50463                 type inet:ipv4-address {
50464                   tailf:info "A.B.C.D;;IP address";
50465                 }
50466               }
50467             }
50468           }
50469         }
50470       }
50471       list overlay {
50472         tailf:info "Overlay interface";
50473         description
50474           "Overlay interface";
50475         tailf:cli-allow-join-with-key {
50476           tailf:cli-display-joined;
50477         }
50478         tailf:cli-mode-name "config-if";
50479         key "name";
50480         leaf name {
50481           type uint16 {
50482             tailf:info "<0-512>;;Overlay interface number";
50483             range "0..512";
50484           }
50485         }
50486         uses interface-common-grouping;
50487         uses interface-ethernet-grouping;
50488         uses interface-overlay-grouping;
50489       }
50490       list Port-channel {
50491         tailf:info "Ethernet Channel of interfaces";
50492         description
50493           "Ethernet Channel of interfaces";
50494         tailf:cli-allow-join-with-key {
50495           tailf:cli-display-joined;
50496         }
50497         tailf:cli-mode-name "config-if";
50498         key "name";
50499         leaf name {
50500           type uint32 {
50501             tailf:info "<1-512>;;Port-channel interface number";
50502             range "1..512";
50503           }
50504         }
50505         leaf pc-speed {
50506           tailf:alt-name "speed";
50507           tailf:info "Configure speed operation.";
50508           description
50509             "Configure speed operation.";
50510           type enumeration {
50511             enum "10" {
50512               tailf:info "Force 10 Mbps operation";
50513             }
50514             enum "100" {
50515               tailf:info "Force 100 Mbps operation";
50516             }
50517             enum "1000" {
50518               tailf:info "Enable AUTO speed configuration";
50519             }
50520             enum "nonegotiate";
50521             enum "auto" {
50522               tailf:info "Enable AUTO speed configuration";
50523             }
50524           }
50525         }
50526         uses interface-common-grouping;
50527         uses interface-switch-grouping;
50528         uses interface-ethernet-grouping;
50529       }
50530       container Port-channel-subinterface {
50531         tailf:cli-drop-node-name;
50532         list Port-channel {
50533           tailf:cli-allow-join-with-key {
50534             tailf:cli-display-joined;
50535           }
50536           tailf:cli-mode-name "config-subif";
50537           tailf:cli-suppress-key-abbreviation;
50538           key "name";
50539           leaf name {
50540             type string;
50541           }
50542           uses interface-common-grouping;
50543           uses interface-switch-grouping;
50544           uses interface-ethernet-grouping;
50545         }
50546       }
50547       list pseudowire {
50548         tailf:info "Pseudowire Interface";
50549         description
50550           "Pseudowire Interface";
50551         tailf:cli-mode-name "config-if";
50552         tailf:cli-allow-join-with-key {
50553           tailf:cli-display-joined;
50554         }
50555         key "name";
50556         leaf name {
50557           type uint32 {
50558             tailf:info "<1-231072>;;pseudowire interface number";
50559             range "1..231072";
50560           }
50561         }
50562         uses pseudowire-grouping;
50563       }
50564       list SM {
50565         tailf:info "SM Interface";
50566         description
50567           "SM Interface";
50568         tailf:cli-mode-name "config-if";
50569         tailf:cli-allow-join-with-key {
50570           tailf:cli-display-joined;
50571         }
50572         key "name";
50573         leaf name {
50574           type string {
50575             pattern "([0-9])+(/([0-9])+)?";
50576           }
50577         }
50578         uses interface-common-grouping;
50579       }
50580       list Cellular {
50581         tailf:info "Cellular Interface";
50582         description
50583           "Cellular Interface";
50584         tailf:cli-mode-name "config-if";
50585         tailf:cli-allow-join-with-key {
50586           tailf:cli-display-joined;
50587         }
50588         key "name";
50589         leaf name {
50590           type string {
50591             pattern "([0-9])+(/([0-9])+)?";
50592           }
50593         }
50594         uses interface-common-grouping;
50595         uses interface-cellular-grouping;
50596       }
50597       list Vlan {
50598         tailf:info "Catalyst Vlans";
50599         description
50600           "Catalyst Vlans";
50601         tailf:cli-allow-join-with-key {
50602           tailf:cli-display-joined;
50603         }
50604         key "name";
50605         leaf name {
50606           type uint16 {
50607             tailf:info "<1-4094>;;Vlan interface number";
50608             range "1..4094";
50609           }
50610         }
50611         uses interface-common-grouping;
50612         uses interface-zone-member-grouping;
50613       }
50614       list Group-Async {
50615         tailf:info "Async Group interface";
50616         description
50617           "Async Group interface";
50618         tailf:cli-allow-join-with-key {
50619           tailf:cli-display-joined;
50620         }
50621         key "name";
50622         leaf name {
50623           type uint16 {
50624             tailf:info "<0-64>;;Group-Async interface number";
50625             range "0..64";
50626           }
50627         }
50628         leaf physical-layer {
50629           tailf:info "Configure sync or async physical layer on serial interface";
50630           description
50631             "Configure sync or async physical layer on serial interface";
50632           type enumeration {
50633             enum "async" {
50634               tailf:info "Configure asynchronous physical layer on serial interface";
50635             }
50636             enum "sync" {
50637               tailf:info "Configure synchronous physical layer on serial interface";
50638             }
50639           }
50640         }
50641         uses interface-common-grouping;
50642       }
50643       list Multilink {
50644         tailf:info "Multilink-group interface";
50645         description
50646           "Multilink-group interface";
50647         tailf:cli-allow-join-with-key {
50648           tailf:cli-display-joined;
50649         }
50650         tailf:cli-mode-name "config-if";
50651         tailf:cli-full-command;
50652         key "name";
50653         leaf name {
50654           type uint16 {
50655             tailf:info "<1-65535>;;Multilink interface number";
50656             range "1..65535";
50657           }
50658         }
50659         uses interface-common-grouping;
50660         uses interface-pointtopoint-grouping;
50661       }
50662       list Serial {
50663         tailf:info "Serial interface";
50664         description
50665           "Serial interface";
50666         tailf:cli-allow-join-with-key {
50667           tailf:cli-display-joined;
50668         }
50669         tailf:cli-mode-name "config-if";
50670         tailf:cli-full-command;
50671         key "name";
50672         leaf name {
50673           type string {
50674             pattern "([0-9])+/([0-9])+/([0-9])+\\.([0-9])+/([0-9])+/([0-9])+/([0-9])+:([0-9])";
50675           }
50676         }
50677         uses interface-common-grouping;
50678         uses interface-pointtopoint-grouping;
50679       }
50680       list Tunnel {
50681         tailf:info "Tunnel interface";
50682         description
50683           "Tunnel interface";
50684         tailf:cli-allow-join-with-key {
50685           tailf:cli-display-joined;
50686         }
50687         tailf:cli-mode-name "config-if";
50688         tailf:cli-suppress-key-abbreviation;
50689         key "name";
50690         leaf name {
50691           type uint32 {
50692             tailf:info "<0-2147483647>;;Tunnel interface number";
50693           }
50694         }
50695         uses interface-common-grouping;
50696         container qos {
50697           tailf:info "Quality of Service related commands";
50698           description
50699             "Quality of Service related commands";
50700           leaf pre-classify {
50701             tailf:info "Enable QOS classification before packets are tunnel encapsulated";
50702             description
50703               "Enable QOS classification before packets are tunnel encapsulated";
50704             type empty;
50705           }
50706         }
50707         uses interface-tunnel-grouping;
50708       }
50709       list Virtual-Template {
50710         tailf:info "Virtual Template interface";
50711         description
50712           "Virtual Template interface";
50713         tailf:cli-allow-join-with-key {
50714           tailf:cli-display-joined;
50715         }
50716         tailf:cli-mode-name "config-if";
50717         tailf:cli-full-command;
50718         tailf:cli-explicit-exit;
50719         key "name";
50720         leaf name {
50721           type uint16 {
50722             tailf:info "<1-4095>;;Virtual-Template interface number";
50723             range "1..4095";
50724           }
50725         }
50726         leaf type {
50727           tailf:info "type of the virtual-template";
50728           description
50729             "type of the virtual-template";
50730           tailf:cli-hide-in-submode;
50731           type enumeration {
50732             enum "ethernet" {
50733               tailf:info "Set VT type as ethernet";
50734             }
50735             enum "serial" {
50736               tailf:info "Set VT type as serial";
50737             }
50738             enum "tunnel" {
50739               tailf:info "Set VT type as tunnel";
50740             }
50741             enum "vpn" {
50742               tailf:info "Set VT type as vpn";
50743             }
50744           }
50745         }
50746         uses interface-ethernet-grouping;
50747         uses interface-common-grouping;
50748         uses interface-zone-member-grouping;
50749         uses interface-switch-grouping;
50750         uses interface-pointtopoint-grouping;
50751         uses interface-tunnel-grouping;
50752       }
50753       list VirtualPortGroup {
50754         tailf:info "Virtual Port Group";
50755         description
50756           "Virtual Port Group";
50757         tailf:cli-allow-join-with-key {
50758           tailf:cli-display-joined;
50759         }
50760         tailf:cli-mode-name "config-if";
50761         tailf:cli-full-command;
50762         tailf:cli-explicit-exit;
50763         key "name";
50764         leaf name {
50765           type uint16 {
50766             tailf:info " <0-31>;;VirtualPortGroup interface number";
50767             range "0..31";
50768           }
50769         }
50770         uses interface-switch-grouping;
50771         uses interface-ethernet-grouping;
50772         uses interface-common-grouping;
50773       }
50774       list vasileft {
50775         tailf:info "vasileft";
50776         description
50777           "vasileft";
50778         tailf:cli-allow-join-with-key {
50779           tailf:cli-display-joined;
50780         }
50781         tailf:cli-mode-name "config-if";
50782         tailf:cli-full-command;
50783         tailf:cli-explicit-exit;
50784         key "name";
50785         leaf name {
50786           type uint16 {
50787             tailf:info "<1-2000>;;vasileft interface number";
50788             range "1..2000";
50789           }
50790         }
50791         uses interface-switch-grouping;
50792         uses interface-ethernet-grouping;
50793         uses interface-common-grouping;
50794       }
50795       list vasiright {
50796         tailf:info "vasiright";
50797         description
50798           "vasiright";
50799         tailf:cli-allow-join-with-key {
50800           tailf:cli-display-joined;
50801         }
50802         tailf:cli-mode-name "config-if";
50803         tailf:cli-full-command;
50804         tailf:cli-explicit-exit;
50805         key "name";
50806         leaf name {
50807           type uint16 {
50808             tailf:info "<1-2000>;;vasiright interface number";
50809             range "1..2000";
50810           }
50811         }
50812         uses interface-switch-grouping;
50813         uses interface-ethernet-grouping;
50814         uses interface-common-grouping;
50815       }
50816     }
50817     list route-map {
50818       tailf:info "Route map tag";
50819       description
50820         "Route map tag";
50821       tailf:cli-mode-name "config-route-map";
50822       tailf:cli-compact-syntax;
50823       tailf:cli-full-command;
50824       key "name sequence";
50825       leaf name {
50826         tailf:info "WORD;;Route map tag";
50827         description
50828           "WORD;;Route map tag";
50829         type string;
50830       }
50831       leaf sequence {
50832         tailf:cli-drop-node-name;
50833         type uint16 {
50834           tailf:info "<0-65535>;;Sequence to insert to/delete from existing route-map entry";
50835           range "0..65535";
50836         }
50837       }
50838       leaf operation {
50839         tailf:cli-drop-node-name;
50840         tailf:cli-prefix-key {
50841           tailf:cli-before-key "2";
50842         }
50843         type enumeration {
50844           enum "deny" {
50845             tailf:code-name "op_deny";
50846             tailf:info "Route map denies set operations";
50847           }
50848           enum "permit" {
50849             tailf:code-name "op_internet";
50850             tailf:info "Route map permits set operations";
50851           }
50852         }
50853         default "permit";
50854       }
50855       leaf description {
50856         tailf:info "Route-map comment";
50857         description
50858           "Route-map comment";
50859         tailf:cli-multi-value;
50860         type string;
50861       }
50862       container set {
50863         tailf:info "Set values in destination routing protocol";
50864         description
50865           "Set values in destination routing protocol";
50866         container aigp-metric {
50867           tailf:info "accumulated metric value";
50868           description
50869             "accumulated metric value";
50870           leaf value {
50871             tailf:info "manual value";
50872             description
50873               "manual value";
50874             tailf:cli-drop-node-name;
50875             type uint32 {
50876               range "0..4294967295";
50877             }
50878           }
50879           leaf igp-metric {
50880             tailf:info "metric value from rib";
50881             description
50882               "metric value from rib";
50883             type empty;
50884           }
50885         }
50886         container as-path {
50887           tailf:info "Prepend string for a BGP AS-path attribute";
50888           description
50889             "Prepend string for a BGP AS-path attribute";
50890           container prepend {
50891             tailf:info "Prepend to the as-path";
50892             description
50893               "Prepend to the as-path";
50894             container as-container {
50895               tailf:cli-drop-node-name;
50896               leaf as-number {
50897                 tailf:info "<1-65535>;;AS number";
50898                 description
50899                   "<1-65535>;;AS number";
50900                 tailf:cli-drop-node-name;
50901                 tailf:cli-multi-value;
50902                 type string {
50903                   tailf:info "<1-65535>;;AS number";
50904                 }
50905               }
50906             }
50907             container last-as-cont {
50908               tailf:cli-drop-node-name;
50909               leaf last-as {
50910                 type uint16 {
50911                   tailf:info "<1..10>;;number of last-AS prepends";
50912                   range "1..10";
50913                 }
50914               }
50915             }
50916           }
50917           container tag {
50918             tailf:info "Set the tag as an AS-path attribute";
50919             description
50920               "Set the tag as an AS-path attribute";
50921             tailf:cli-full-command;
50922             presence "tag";
50923           }
50924         }
50925         leaf automatic-tag {
50926           tailf:info "Automatically compute TAG value";
50927           description
50928             "Automatically compute TAG value";
50929           type empty;
50930         }
50931         container clns {
50932           tailf:info "OSI summary address";
50933           description
50934             "OSI summary address";
50935           uses next-hop-address-grouping;
50936         }
50937         container community {
50938           tailf:info "BGP community attribute";
50939           description
50940             "BGP community attribute";
50941           choice community-choice {
50942             case community-numberi-case {
50943               leaf community-number {
50944                 tailf:cli-drop-node-name;
50945                 type uint32 {
50946                   tailf:info "<1-4294967295>;;community number";
50947                   range "1..4294967295";
50948                 }
50949               }
50950               leaf community-number-alt-format {
50951                 tailf:cli-drop-node-name;
50952                 type string {
50953                   tailf:info "aa:nn;;community number in aa:nn format";
50954                   pattern "(\\d+:\\d+)";
50955                 }
50956               }
50957             }
50958             case well-known-community-case {
50959               leaf well-known-communities {
50960                 tailf:cli-drop-node-name;
50961                 type enumeration {
50962                   enum "gshut" {
50963                     tailf:info "Graceful Shutdown";
50964                   }
50965                   enum "internet" {
50966                     tailf:info "Internet (well-known community)";
50967                   }
50968                   enum "local-AS" {
50969                     tailf:info "Do not send outside local AS (well-known community)";
50970                   }
50971                   enum "no-advertise" {
50972                     tailf:info "Do not advertise to any peer (well-known community)";
50973                   }
50974                   enum "no-export" {
50975                     tailf:info "Do not export to next AS (well-known community)";
50976                   }
50977                   enum "none" {
50978                     tailf:info "No community attribute";
50979                   }
50980                 }
50981               }
50982             }
50983           }
50984           leaf additive {
50985             tailf:info "Add to the existing community";
50986             description
50987               "Add to the existing community";
50988             type empty;
50989           }
50990         }
50991         container comm-list {
50992           tailf:info "set BGP community list (for deletion)";
50993           description
50994             "set BGP community list (for deletion)";
50995           tailf:cli-sequence-commands;
50996           choice comm-list-choice {
50997             leaf comm-list-standard {
50998               tailf:cli-drop-node-name;
50999               tailf:cli-incomplete-command;
51000               type uint16 {
51001                 tailf:info "<1-99>;;Community-list number (standard)";
51002                 range "1..99";
51003               }
51004             }
51005             leaf comm-list-expanded {
51006               tailf:cli-drop-node-name;
51007               tailf:cli-incomplete-command;
51008               type uint16 {
51009                 tailf:info "<100-500>;;Community-list number (expanded)";
51010                 range "100..500";
51011               }
51012             }
51013             leaf comm-list-name {
51014               tailf:cli-drop-node-name;
51015               tailf:cli-incomplete-command;
51016               type string {
51017                 tailf:info "WORD;;Community-list name";
51018               }
51019             }
51020           }
51021           leaf delete {
51022             tailf:cli-full-command;
51023             tailf:info "Delete matching communities";
51024             description
51025               "Delete matching communities";
51026             type empty;
51027           }
51028         }
51029         container dampening {
51030           tailf:info "Set BGP route flap dampening parameters";
51031           description
51032             "Set BGP route flap dampening parameters";
51033           list dampening-list {
51034             tailf:cli-drop-node-name;
51035             tailf:cli-suppress-mode;
51036             key "half-life-penalty restart-penalty suppress-penalty max-suppress-penalty";
51037             leaf half-life-penalty {
51038               tailf:info "half-life time for the penalty";
51039               description
51040                 "half-life time for the penalty";
51041               tailf:cli-drop-node-name;
51042               type uint8 {
51043                 range "1..45";
51044               }
51045             }
51046             leaf restart-penalty {
51047               tailf:info "penalty to start reusing a route";
51048               description
51049                 "penalty to start reusing a route";
51050               tailf:cli-drop-node-name;
51051               type uint16 {
51052                 range "1..20000";
51053               }
51054             }
51055             leaf suppress-penalty {
51056               tailf:info "penalty to start suppressing a route";
51057               description
51058                 "penalty to start suppressing a route";
51059               tailf:cli-drop-node-name;
51060               type uint16 {
51061                 range "1..20000";
51062               }
51063             }
51064             leaf max-suppress-penalty {
51065               tailf:info "Maximum duration to suppress a stable route";
51066               description
51067                 "Maximum duration to suppress a stable route";
51068               tailf:cli-drop-node-name;
51069               type uint8 {
51070                 range "1..255";
51071               }
51072             }
51073           }
51074         }
51075         container default {
51076           container interface {
51077             tailf:info "SPAN source interface";
51078             description
51079               "SPAN source interface";
51080             tailf:cli-diff-dependency "/ios:native/interface";
51081             uses interface-grouping;
51082           }
51083         }
51084         container extcomm-list {
51085           tailf:info "Set BGP/VPN extended community list (for deletion)";
51086           description
51087             "Set BGP/VPN extended community list (for deletion)";
51088           list ext-range {
51089             tailf:cli-drop-node-name;
51090             tailf:cli-suppress-mode;
51091             key "comm-list-num";
51092             leaf comm-list-num {
51093               tailf:info "Extended community-list number (expanded)";
51094               description
51095                 "Extended community-list number (expanded)";
51096               type uint16 {
51097                 range "1..500";
51098               }
51099             }
51100             leaf delete {
51101               tailf:info "Delete matching extended communities";
51102               description
51103                 "Delete matching extended communities";
51104               type empty;
51105             }
51106           }
51107           list excomm-list-name {
51108             tailf:cli-drop-node-name;
51109             tailf:cli-suppress-mode;
51110             key "name";
51111             leaf name {
51112               tailf:info "extcommunity-list name";
51113               description
51114                 "extcommunity-list name";
51115               type string;
51116             }
51117             leaf delete {
51118               tailf:info "Delete matching extended communities";
51119               type empty;
51120             }
51121           }
51122         }
51123         container extcommunity {
51124           tailf:info "BGP extended community attribute";
51125           description
51126             "BGP extended community attribute";
51127           container cost {
51128             tailf:info "Cost extended community";
51129             description
51130               "Cost extended community";
51131             uses route-map-community-grouping;
51132             container igp {
51133               tailf:info "Compare following IGP cost comparison";
51134               description
51135                 "Compare following IGP cost comparison";
51136               uses route-map-community-grouping;
51137             }
51138             container pre-bestpath {
51139               tailf:info "Compare before all other steps in bestpath calculation";
51140               description
51141                 "Compare before all other steps in bestpath calculation";
51142               uses route-map-community-grouping;
51143             }
51144           }
51145           container rt {
51146             tailf:info "Route Target extended community";
51147             description
51148               "Route Target extended community";
51149             leaf asn-nn {
51150               tailf:cli-drop-node-name;
51151               type asn-ip-type {
51152                 tailf:info "ASN:nn or IP-address:nn;;VPN extended community";
51153               }
51154             }
51155             container range {
51156               tailf:info "Specify a range of extended community";
51157               description
51158                 "Specify a range of extended community";
51159               tailf:cli-sequence-commands;
51160               leaf lower-limit {
51161                 tailf:info "VPN extended community lower limit";
51162                 description
51163                   "VPN extended community lower limit";
51164                 type asn-ip-type {
51165                   tailf:info "ASN:nn or IP-address:nn;;VPN extended community lower limit";
51166                 }
51167               }
51168               leaf high-limit {
51169                 tailf:info "VPN extended community high limit";
51170                 description
51171                   "VPN extended community high limit";
51172                 type asn-ip-type {
51173                   tailf:info "ASN:nn or IP-address:nn;;VPN extended community high limit";
51174                 }
51175               }
51176               leaf additive {
51177                 tailf:info "Add to the existing extcommunity";
51178                 description
51179                   "Add to the existing extcommunity";
51180                 type empty;
51181               }
51182             }
51183           }
51184           container soo {
51185             tailf:info "Site-of-Origin extended community";
51186             description
51187               "Site-of-Origin extended community";
51188             leaf asn-nn {
51189               tailf:cli-drop-node-name;
51190               type asn-ip-type {
51191                 tailf:info "ASN:nn or IP-address:nn;;VPN extended community";
51192               }
51193             }
51194           }
51195           container vpn-distinguisher {
51196             tailf:info "VPN Distinguisher";
51197             description
51198               "VPN Distinguisher";
51199             leaf asn-nn {
51200               tailf:cli-drop-node-name;
51201               type asn-ip-type {
51202                 tailf:info "ASN:nn or IP-address:nn;;VPN extended community";
51203               }
51204             }
51205             container range {
51206               tailf:info "Specify a range of extended community";
51207               description
51208                 "Specify a range of extended community";
51209               tailf:cli-sequence-commands;
51210               leaf lower-limit {
51211                 tailf:info "VPN extended community lower limit";
51212                 description
51213                   "VPN extended community lower limit";
51214                 type asn-ip-type {
51215                   tailf:info "ASN:nn or IP-address:nn;;VPN extended community lower limit";
51216                 }
51217               }
51218               leaf high-limit {
51219                 tailf:info "VPN extended community high limit";
51220                 description
51221                   "VPN extended community high limit";
51222                 type asn-ip-type {
51223                   tailf:info "ASN:nn or IP-address:nn;;VPN extended community high limit";
51224                 }
51225               }
51226               leaf additive {
51227                 tailf:info "Add to the existing extcommunity";
51228                 description
51229                   "Add to the existing extcommunity";
51230                 type empty;
51231               }
51232             }
51233           }
51234         }
51235         leaf global {
51236           tailf:info "Set to global routing table";
51237           type empty;
51238         }
51239         container interface {
51240           tailf:info "SPAN source interface";
51241           tailf:cli-diff-dependency "/ios:native/interface";
51242           uses interface-grouping;
51243         }
51244         container ip {
51245           tailf:info "IP specific information";
51246           description
51247             "IP specific information";
51248           container address {
51249             tailf:info "Specify IP address";
51250             description
51251               "Specify IP address";
51252             leaf prefix-list {
51253               tailf:info "Specify prefix-list";
51254               description
51255                 "Specify prefix-list";
51256               type string {
51257                 tailf:info "WORD;;Prefix-list name to set ip address";
51258               }
51259             }
51260           }
51261           container default {
51262             tailf:info "Set default information";
51263             description
51264               "Set default information";
51265             container global {
51266               tailf:info "global routing table";
51267               description
51268                 "global routing table";
51269               uses next-hop-address-grouping;
51270             }
51271             uses next-hop-address-grouping;
51272             container vrf {
51273               tailf:info "VRF name";
51274               description
51275                 "VRF name";
51276               list vrfs {
51277                 tailf:cli-drop-node-name;
51278                 tailf:cli-suppress-mode;
51279                 key "vrf";
51280                 leaf vrf {
51281                   tailf:info "WORD;;VRF name";
51282                   description
51283                     "WORD;;VRF name";
51284                   type string;
51285                 }
51286                 uses next-hop-address-grouping;
51287               }
51288             }
51289           }
51290           leaf df {
51291             tailf:info "Set DF bit";
51292             type uint8 {
51293               tailf:info "<0..1>;; DF bit";
51294               range "0..1";
51295             }
51296           }
51297           container global {
51298             tailf:info "global routing table";
51299             description
51300               "global routing table";
51301             uses next-hop-address-grouping;
51302           }
51303           container next-hop {
51304             tailf:info "Next hop address";
51305             description
51306               "Next hop address";
51307             choice next-hop-choice {
51308               leaf address {
51309                 tailf:cli-drop-node-name;
51310                 type inet:ipv4-address {
51311                   tailf:info "A.B.C.D;;IP address of next hop";
51312                 }
51313               }
51314               container dynamic {
51315                 tailf:info "application dynamically sets next hop";
51316                 description
51317                   "application dynamically sets next hop";
51318                 leaf dhcp {
51319                   tailf:info "DHCP learned next hop";
51320                   description
51321                     "DHCP learned next hop";
51322                   type empty;
51323                 }
51324               }
51325               container encapsulate {
51326                 tailf:info "Encapsulation profile for VPN nexthop";
51327                 description
51328                   "Encapsulation profile for VPN nexthop";
51329                 leaf l3vpn {
51330                   tailf:info "L3VPN";
51331                   description
51332                     "L3VPN";
51333                   type string {
51334                     tailf:info "WORD;;Encapsulation profile name";
51335                   }
51336                 }
51337               }
51338               leaf peer-address {
51339                 tailf:info "Use peer address (for BGP only)";
51340                 description
51341                   "Use peer address (for BGP only)";
51342                 type empty;
51343               }
51344               container recursive {
51345                 tailf:info "Recursive next-hop";
51346                 description
51347                   "Recursive next-hop";
51348                 leaf ipv4 {
51349                   tailf:info "IP address of recursive next hop";
51350                   description
51351                     "IP address of recursive next hop";
51352                   tailf:cli-drop-node-name;
51353                   type inet:ipv4-address;
51354                 }
51355                 leaf global {
51356                   tailf:info "global routing table";
51357                   description
51358                     "IP address of recursive next hop";
51359                   type inet:ipv4-address;
51360                 }
51361                 container vrf {
51362                   tailf:info "VRF name";
51363                   description
51364                     "VRF name";
51365                   list vrfs {
51366                     tailf:cli-drop-node-name;
51367                     tailf:cli-suppress-mode;
51368                     key "vrf";
51369                     leaf vrf {
51370                       tailf:info "VRF name";
51371                       description
51372                         "VRF name";
51373                       type string;
51374                     }
51375                     leaf ipv4 {
51376                       tailf:info "IP address of recursive next hop";
51377                       description
51378                         "IP address of recursive next hop";
51379                       tailf:cli-drop-node-name;
51380                       type inet:ipv4-address;
51381                     }
51382                   }
51383                 }
51384               }
51385               leaf self {
51386                 tailf:info "Use self address (for BGP only)";
51387                 description
51388                   "Use self address (for BGP only)";
51389                 type empty;
51390               }
51391               container verify-availability {
51392                 tailf:info "Verify if nexthop is reachable";
51393                 description
51394                   "Verify if nexthop is reachable";
51395                 presence "true";
51396                 list ipv4 {
51397                   tailf:cli-drop-node-name;
51398                   tailf:cli-suppress-mode;
51399                   key "ipv4";
51400                   leaf ipv4 {
51401                     tailf:info "IP address of next hop";
51402                     description
51403                       "IP address of next hop";
51404                     type inet:ipv4-address;
51405                   }
51406                   leaf range {
51407                     tailf:cli-drop-node-name;
51408                     type uint16 {
51409                       tailf:info "<1..65535>;;Sequence to insert into next-hop list";
51410                       range "1..65535";
51411                     }
51412                   }
51413                 }
51414               }
51415             }
51416           }
51417           container precedence {
51418             tailf:info "Set precedence field";
51419             description
51420               "Set precedence field";
51421             presence "true";
51422             leaf precedence-value {
51423               tailf:cli-drop-node-name;
51424               type uint8 {
51425                 tailf:info "<0..7>;;Precedence value";
51426                 range "0..7";
51427               }
51428             }
51429             leaf precedence-fields {
51430               tailf:cli-drop-node-name;
51431               type enumeration {
51432                 enum "critical" {
51433                   tailf:info "Set critical precedence (5)";
51434                 }
51435                 enum "flash" {
51436                   tailf:info "Set flash precedence (3)";
51437                 }
51438                 enum "flash-override" {
51439                   tailf:info "Set flash override precedence (4)";
51440                 }
51441                 enum "immediate" {
51442                   tailf:info "Set immediate precedence (2)";
51443                 }
51444                 enum "internet" {
51445                   tailf:info "Set internetwork control precedence (6)";
51446                 }
51447                 enum "network" {
51448                   tailf:info "Set network control precedence (7)";
51449                 }
51450                 enum "priority" {
51451                   tailf:info "Set priority precedence (1)";
51452                 }
51453                 enum "routine" {
51454                   tailf:info "Set routine precedence (0)";
51455                 }
51456               }
51457             }
51458           }
51459           container qos-group {
51460             tailf:info "Set QOS Group ID";
51461             description
51462               "Set QOS Group ID";
51463             presence "true";
51464             leaf qos-id {
51465               tailf:cli-drop-node-name;
51466               type uint8 {
51467                 tailf:info "<0..99>;;QOS Group ID";
51468                 range "0..99";
51469               }
51470             }
51471           }
51472           container tos {
51473             tailf:info "Set type of service field";
51474             description
51475               "Set type of service field";
51476             presence "true";
51477             leaf service-value {
51478               tailf:cli-drop-node-name;
51479               type uint8 {
51480                 tailf:info "<0..15>;;Type of service value";
51481                 range "0..15";
51482               }
51483             }
51484             leaf tos-fields {
51485               tailf:cli-drop-node-name;
51486               type enumeration {
51487                 enum "max-reliability" {
51488                   tailf:info "Set max reliable TOS (2)";
51489                 }
51490                 enum "max-throughput" {
51491                   tailf:info "Set max throughput TOS (4)";
51492                 }
51493                 enum "min-delay" {
51494                   tailf:info "Set min delay TOS (8)";
51495                 }
51496                 enum "min-monetary-cost" {
51497                   tailf:info "Set min monetary cost TOS (1)";
51498                 }
51499                 enum "normal" {
51500                   tailf:info "Set normal TOS (0)";
51501                 }
51502               }
51503             }
51504           }
51505           container vrf {
51506             tailf:info "VRF name";
51507             description
51508               "VRF name";
51509             list vrfs {
51510               tailf:cli-drop-node-name;
51511               tailf:cli-suppress-mode;
51512               key "vrf";
51513               leaf vrf {
51514                 tailf:info "WORD;;VRF name";
51515                 description
51516                   "WORD;;VRF name";
51517                 type string;
51518               }
51519               uses next-hop-address-grouping;
51520             }
51521           }
51522         }
51523         container ipv6 {
51524           tailf:info "IPv6 specific information";
51525           description
51526             "IPv6 specific information";
51527           container address {
51528             tailf:info "IPv6 address";
51529             description
51530               "IPv6 address";
51531             leaf-list prefix-list {
51532               tailf:info "IPv6 prefix-list";
51533               description
51534                 "IPv6 prefix-list";
51535               tailf:cli-flat-list-syntax;
51536               type string {
51537                 tailf:info "WORD;;IPv6 prefix-list name";
51538               }
51539             }
51540           }
51541           container default {
51542             tailf:info "Set default information";
51543             description
51544               "Set default information";
51545             container global {
51546               tailf:info "global routing table";
51547               description
51548                 "global routing table";
51549               leaf next-hop {
51550                 tailf:info "Next hop along path";
51551                 description
51552                   "Next hop along path";
51553                 type inet:ipv6-address {
51554                   tailf:info "X:X:X:X::X;;Default next hop IPv6 address";
51555                 }
51556               }
51557             }
51558             container next-hop {
51559               tailf:info "Next hop along path";
51560               description
51561                 "Next hop along path";
51562               list ipv6s {
51563                 tailf:cli-drop-node-name;
51564                 tailf:cli-suppress-mode;
51565                 key "ipv6";
51566                 leaf ipv6 {
51567                   tailf:info "Default next hop IPv6 address";
51568                   description
51569                     "Default next hop IPv6 address";
51570                   type inet:ipv6-address {
51571                     tailf:info "X:X:X:X::X;;Default next hop IPv6 address";
51572                   }
51573                 }
51574               }
51575               leaf next-hop-address {
51576                 tailf:cli-drop-node-name;
51577                 type inet:ipv6-address {
51578                   tailf:info "X:X:X:X::X;;Next hop IPv6 address";
51579                 }
51580               }
51581             }
51582             list dvrf {
51583               tailf:cli-drop-node-name;
51584               tailf:cli-suppress-mode;
51585               key "dvrf";
51586               leaf dvrf {
51587                 tailf:info "VRF name";
51588                 description
51589                   "VRF name";
51590                 type string;
51591               }
51592               list dvrf0 {
51593                 tailf:cli-drop-node-name;
51594                 tailf:cli-suppress-mode;
51595                 key "dvrf0";
51596                 leaf dvrf0 {
51597                   tailf:info "VRF name";
51598                   description
51599                     "VRF name";
51600                   type string;
51601                 }
51602                 leaf next-hop {
51603                   tailf:info "Next hop along path";
51604                   description
51605                     "Next hop along path";
51606                   type empty;
51607                 }
51608               }
51609             }
51610           }
51611           container global {
51612             tailf:info "global routing table";
51613             description
51614               "global routing table";
51615             container next-hop {
51616               tailf:info "IPv6 Next hop";
51617               description
51618                 "IPv6 Next hop";
51619               list nh-ipv6 {
51620                 tailf:cli-drop-node-name;
51621                 tailf:cli-suppress-mode;
51622                 key "nh-ipv6";
51623                 leaf nh-ipv6 {
51624                   tailf:info "Next hop address";
51625                   description
51626                     "Next hop address";
51627                   type inet:ipv6-address;
51628                 }
51629                 leaf nh-ipv60 {
51630                   tailf:info "Next hop address";
51631                   description
51632                     "Next hop address";
51633                   tailf:cli-drop-node-name;
51634                   type inet:ipv6-address;
51635                 }
51636               }
51637               leaf verify-availability {
51638                 tailf:info "Verify if nexthop is reachable";
51639                 description
51640                   "Next hop address";
51641                 type inet:ipv6-address;
51642               }
51643             }
51644           }
51645           container next-hop {
51646             tailf:info "IPv6 Next hop";
51647             description
51648               "IPv6 Next hop";
51649             list nha-ipv6 {
51650               tailf:cli-drop-node-name;
51651               tailf:cli-suppress-mode;
51652               key "nha-ipv6";
51653               leaf nha-ipv6 {
51654                 tailf:info "Next hop address";
51655                 description
51656                   "Next hop address";
51657                 type inet:ipv6-address;
51658               }
51659               list nha-ipv60 {
51660                 tailf:cli-drop-node-name;
51661                 tailf:cli-suppress-mode;
51662                 key "nha-ipv60";
51663                 leaf nha-ipv60 {
51664                   tailf:info "Next hop address";
51665                   description
51666                     "Next hop address";
51667                   type inet:ipv6-address;
51668                 }
51669                 leaf nh-ipv6 {
51670                   tailf:info "Next hop address";
51671                   description
51672                     "Next hop address";
51673                   tailf:cli-drop-node-name;
51674                   type inet:ipv6-address;
51675                 }
51676               }
51677             }
51678             container encapsulate {
51679               tailf:info "Encapsulation profile for VPN nexthop";
51680               description
51681                 "Encapsulation profile for VPN nexthop";
51682               leaf l3vpn {
51683                 tailf:info "L3VPN";
51684                 description
51685                   "Encapsulation profile name";
51686                 type string;
51687               }
51688             }
51689             leaf peer-address {
51690               tailf:info "Use peer address (for BGP only)";
51691               description
51692                 "Use peer address (for BGP only)";
51693               type empty;
51694             }
51695             leaf recursive {
51696               tailf:info "Recursive next-hop";
51697               description
51698                 "IPv6 address of recursive next-hop";
51699               type inet:ipv6-address;
51700             }
51701             container verify-availability {
51702               tailf:info "Verify if nexthop is reachable";
51703               description
51704                 "Verify if nexthop is reachable";
51705               list va-ipv6 {
51706                 tailf:cli-drop-node-name;
51707                 tailf:cli-suppress-mode;
51708                 key "va-ipv6";
51709                 leaf va-ipv6 {
51710                   tailf:info "Next hop address";
51711                   description
51712                     "Next hop address";
51713                   type inet:ipv6-address;
51714                 }
51715                 leaf seq-nh {
51716                   tailf:info "Sequence to insert into next-hop list";
51717                   description
51718                     "Sequence to insert into next-hop list";
51719                   tailf:cli-drop-node-name;
51720                   type uint16 {
51721                     range "1..65535";
51722                   }
51723                 }
51724               }
51725             }
51726           }
51727           leaf precedence {
51728             tailf:info "IPv6 Precedence";
51729             description
51730               "Precedence value";
51731             type uint8 {
51732               range "0..7";
51733             }
51734           }
51735           list bvrf {
51736             tailf:cli-drop-node-name;
51737             tailf:cli-suppress-mode;
51738             key "bvrf";
51739             leaf bvrf {
51740               tailf:info "VRF name";
51741               description
51742                 "VRF name";
51743               type string;
51744             }
51745             list bvrf0 {
51746               tailf:cli-drop-node-name;
51747               tailf:cli-suppress-mode;
51748               key "bvrf0";
51749               leaf bvrf0 {
51750                 tailf:info "VRF name";
51751                 description
51752                   "VRF name";
51753                 type string;
51754               }
51755               container next-hop {
51756                 tailf:info "IPv6 Next hop";
51757                 description
51758                   "IPv6 Next hop";
51759                 leaf bipv6 {
51760                   tailf:info "Next hop address";
51761                   description
51762                     "Next hop address";
51763                   tailf:cli-drop-node-name;
51764                   type inet:ipv6-address;
51765                 }
51766                 leaf verify-availability {
51767                   tailf:info "Verify if nexthop is reachable";
51768                   description
51769                     "Verify if nexthop is reachable";
51770                   type empty;
51771                 }
51772               }
51773             }
51774           }
51775         }
51776         container level {
51777           tailf:info "Where to import route";
51778           description
51779             "Where to import route";
51780           leaf level-1 {
51781             tailf:info "Import into a level-1 area";
51782             description
51783               "Import into a level-1 area";
51784             type empty;
51785           }
51786           leaf level-1-2 {
51787             tailf:info "Import into level-1 and level-2";
51788             description
51789               "Import into level-1 and level-2";
51790             type empty;
51791           }
51792           leaf level-2 {
51793             tailf:info "Import into level-2 sub-domain";
51794             description
51795               "Import into level-2 sub-domain";
51796             type empty;
51797           }
51798           leaf nssa-only {
51799             tailf:info "Import only into OSPF NSSA areas and don't propagate";
51800             description
51801               "Import only into OSPF NSSA areas and don't propagate";
51802             type empty;
51803           }
51804         }
51805         container lisp {
51806           tailf:info "Locator ID Separation Protocol specific information";
51807           description
51808             "Locator ID Separation Protocol specific information";
51809           leaf locator-set {
51810             tailf:info "Specify a locator-set to use in LISP route-import";
51811             description
51812               "The name of the locator set";
51813             type string;
51814           }
51815         }
51816         leaf local-preference {
51817           tailf:info "BGP local preference path attribute";
51818           description
51819             "Preference value";
51820           type uint32 {
51821             range "0..4294967295";
51822           }
51823         }
51824         leaf metric {
51825           tailf:info "Metric value for destination routing protocol";
51826           description
51827             "Metric value for destination routing protocol";
51828           type string {
51829             tailf:info
51830               "+/-<metric>;;Add or subtract metric
51831                <0-4294967295>;;Metric value or Bandwidth in Kbits per second";
51832           }
51833         }
51834         leaf metric-type {
51835           tailf:info "Type of metric for destination routing protocol";
51836           description
51837             "Type of metric for destination routing protocol";
51838           type enumeration {
51839             enum "external" {
51840               tailf:info "IS-IS external metric";
51841             }
51842             enum "internal" {
51843               tailf:info "IS-IS internal metric or Use IGP metric as the MED for BGP";
51844             }
51845             enum "type-1" {
51846               tailf:info "OSPF external type 1 metric";
51847             }
51848             enum "type-2" {
51849               tailf:info "OSPF external type 2 metric";
51850             }
51851           }
51852         }
51853         leaf mpls-label {
51854           tailf:info "Set MPLS label for prefix";
51855           description
51856             "Set MPLS label for prefix";
51857           type empty;
51858         }
51859         leaf weight {
51860           tailf:info "BGP weight for routing table";
51861           description
51862             "BGP weight for routing table";
51863           type uint32 {
51864             tailf:info "<0-65535>;;Weight value";
51865             range "0..65535";
51866           }
51867         }
51868         container origin {
51869           tailf:info "BGP origin code";
51870           description
51871             "BGP origin code";
51872           choice origin-choice {
51873             leaf origin-value {
51874               tailf:cli-drop-node-name;
51875               type enumeration {
51876                 enum "igp" {
51877                   tailf:info "local IGP";
51878                 }
51879                 enum "incomplete" {
51880                   tailf:info "unknown heritage";
51881                 }
51882               }
51883             }
51884             leaf egp {
51885               tailf:info "remote EGP";
51886               description
51887                 "remote EGP";
51888               type uint32 {
51889                 tailf:info "<0-65535>;;remote AS";
51890                 range "0..65535";
51891               }
51892             }
51893           }
51894         }
51895         container tag {
51896           tailf:info "Tag value for destination routing protocol";
51897           description
51898             "Tag value for destination routing protocol";
51899           leaf tag-val {
51900             tailf:info "Tag value";
51901             description
51902               "Tag value";
51903             tailf:cli-drop-node-name;
51904             type uint32 {
51905               range "0..4294967295";
51906             }
51907           }
51908           leaf tag-ipv4 {
51909             tailf:info "Tag value(dotted decimal format)";
51910             description
51911               "Tag value(dotted decimal format)";
51912             tailf:cli-drop-node-name;
51913             type inet:ipv4-address;
51914           }
51915         }
51916         leaf traffic-index {
51917           tailf:info "BGP traffic classification number for accounting";
51918           description
51919             "Bucket number";
51920           type uint8 {
51921             range "1..64";
51922           }
51923         }
51924         leaf vrf {
51925           tailf:info "Define VRF name";
51926           description
51927             "VPN Routing/Forwarding instance name";
51928           type string;
51929         }
51930       }
51931       container match {
51932         tailf:info "Match values from routing table";
51933         description
51934           "Match values from routing table";
51935         container additional-paths {
51936           tailf:info "BGP Add-Path match policies";
51937           description
51938             "BGP Add-Path match policies";
51939           container advertise-set {
51940             tailf:info "BGP Add-Path advertise-set policy";
51941             description
51942               "BGP Add-Path advertise-set policy";
51943             container all {
51944               tailf:info "BGP Add-Path advertise all paths";
51945               description
51946                 "BGP Add-Path advertise all paths";
51947               presence "true";
51948               leaf best {
51949                 tailf:info "BGP Add-Path advertise best n paths";
51950                 description
51951                   "BGP Add-Path best n paths to advertise";
51952                 type uint8 {
51953                   range "1..3";
51954                 }
51955               }
51956               leaf best-range {
51957                 tailf:info "BGP Add-Path advertise best paths (range m to n)";
51958                 description
51959                   "BGP Add-Path best paths to advertise (lower limit)";
51960                 type uint8 {
51961                   range "1..3";
51962                 }
51963               }
51964               container group-best {
51965                 tailf:info "BGP Add-Path advertise group-best path";
51966                 description
51967                   "BGP Add-Path advertise group-best path";
51968                 presence "true";
51969                 leaf best {
51970                   tailf:info "BGP Add-Path advertise best n paths";
51971                   description
51972                     "BGP Add-Path advertise best n paths";
51973                   type empty;
51974                 }
51975                 leaf best-range {
51976                   tailf:info "BGP Add-Path advertise best paths (range m to n)";
51977                   description
51978                     "BGP Add-Path advertise best paths (range m to n)";
51979                   type empty;
51980                 }
51981               }
51982             }
51983             container best {
51984               tailf:info "BGP Add-Path advertise best n paths";
51985               description
51986                 "BGP Add-Path advertise best n paths";
51987               list best-range {
51988                 tailf:cli-drop-node-name;
51989                 tailf:cli-suppress-mode;
51990                 key "best-range";
51991                 leaf best-range {
51992                   tailf:info "BGP Add-Path best n paths to advertise";
51993                   description
51994                     "BGP Add-Path best n paths to advertise";
51995                   type uint8 {
51996                     range "1..3";
51997                   }
51998                 }
51999                 leaf all {
52000                   tailf:info "BGP Add-Path advertise all paths";
52001                   description
52002                     "BGP Add-Path advertise all paths";
52003                   type empty;
52004                 }
52005                 leaf group-best {
52006                   tailf:info "BGP Add-Path advertise group-best path";
52007                   description
52008                     "BGP Add-Path advertise group-best path";
52009                   type empty;
52010                 }
52011               }
52012             }
52013             container best-range {
52014               tailf:info "BGP Add-Path advertise best paths (range m to n)";
52015               description
52016                 "BGP Add-Path advertise best paths (range m to n)";
52017               list adv-path {
52018                 tailf:cli-drop-node-name;
52019                 tailf:cli-suppress-mode;
52020                 key "adv-path";
52021                 leaf adv-path {
52022                   tailf:info "BGP Add-Path best paths to advertise (lower limit)";
52023                   description
52024                     "BGP Add-Path best paths to advertise (lower limit)";
52025                   type uint8 {
52026                     range "1..3";
52027                   }
52028                 }
52029                 leaf adv-path0 {
52030                   tailf:info "BGP Add-Path best paths to advertise (upper limit)";
52031                   description
52032                     "BGP Add-Path best paths to advertise (upper limit)";
52033                   tailf:cli-drop-node-name;
52034                   type uint8 {
52035                     range "1..3";
52036                   }
52037                 }
52038               }
52039             }
52040             container group-best {
52041               tailf:info "BGP Add-Path advertise group-best path";
52042               description
52043                 "BGP Add-Path advertise group-best path";
52044               presence "true";
52045               leaf all {
52046                 tailf:info "BGP Add-Path advertise all paths";
52047                 description
52048                   "BGP Add-Path advertise all paths";
52049                 type empty;
52050               }
52051               leaf best {
52052                 tailf:info "BGP Add-Path advertise best n paths";
52053                 description
52054                   "BGP Add-Path best n paths to advertise";
52055                 type uint8 {
52056                   range "1..3";
52057                 }
52058               }
52059               leaf best-range {
52060                 tailf:info "BGP Add-Path advertise best paths (range m to n)";
52061                 description
52062                   "BGP Add-Path best paths to advertise (lower limit)";
52063                 type uint8 {
52064                   range "1..3";
52065                 }
52066               }
52067             }
52068           }
52069         }
52070         container as-path {
52071           tailf:info "Match BGP AS path list";
52072           description
52073             "Match BGP AS path list";
52074           presence "true";
52075           list access-lists {
52076             tailf:cli-drop-node-name;
52077             tailf:cli-suppress-mode;
52078             key "access-list";
52079             leaf access-list {
52080               tailf:info "AS path access-list";
52081               description
52082                 "AS path access-list";
52083               tailf:cli-drop-node-name;
52084               type uint16 {
52085                 tailf:info "<1..500>;;AS path access-list";
52086                 range "1..500";
52087               }
52088             }
52089           }
52090         }
52091         container clns {
52092           tailf:info "CLNS information";
52093           description
52094             "CLNS information";
52095           leaf-list name {
52096             tailf:info "Named clna list";
52097             description
52098               "Named clna list";
52099             tailf:cli-drop-node-name;
52100             tailf:cli-flat-list-syntax;
52101             type string {
52102               tailf:info
52103                 "WORD;;(OSI filter set)Match advertising source address of route
52104                  WORD;;(OSI filter set)Match next-hop address of route
52105                  WORD;;(OSI filter set)Match address of route or match packet";
52106             }
52107           }
52108         }
52109         container community {
52110           tailf:info "Match BGP community list";
52111           description
52112             "Match BGP community list";
52113           leaf-list name {
52114             tailf:info "Named Access List";
52115             description
52116               "Named Access List";
52117             tailf:cli-drop-node-name;
52118             tailf:cli-flat-list-syntax;
52119             type string {
52120               tailf:info
52121                 "<1-99>;;Community-list number (standard)
52122                  <100-500>;;Community-list number (expanded)
52123                  WORD;;Community-list name";
52124             }
52125           }
52126         }
52127         container extcommunity {
52128           tailf:info "Match BGP/VPN extended community list";
52129           description
52130             "Match BGP/VPN extended community list";
52131           leaf-list name {
52132             tailf:info "Named Access List";
52133             description
52134               "Named Access List";
52135             tailf:cli-drop-node-name;
52136             tailf:cli-flat-list-syntax;
52137             type string {
52138               tailf:info
52139                 "<1-99>;;Extended Community-list number (standard)
52140                  <100-500>;;Extended Community-list number (expanded)
52141                  WORD;;Extended Community-list name";
52142             }
52143           }
52144         }
52145         container interface {
52146           tailf:info "SPAN source interface";
52147           description
52148             "SPAN source interface";
52149           tailf:cli-diff-dependency "/ios:native/interface";
52150           leaf-list interface {
52151             tailf:cli-drop-node-name;
52152             tailf:cli-flat-list-syntax;
52153             tailf:cli-full-command;
52154             type string {
52155               tailf:info "WORD;;Name of an interface";
52156             }
52157           }
52158         }
52159         container ip {
52160           tailf:info "IP specific information";
52161           description
52162             "IP specific information";
52163           container address {
52164             tailf:info "Match address of route or match packet";
52165             description
52166               "Match address of route or match packet";
52167             uses ip-access-list-grouping;
52168           }
52169           container flowspec {
52170             tailf:info "Match address of route";
52171             description
52172               "Match address of route";
52173             container dest-pfx {
52174               tailf:info "Match dest prefix component of flowspec prefix";
52175               description
52176                 "Match dest prefix component of flowspec prefix";
52177               uses ip-access-list-grouping;
52178             }
52179             container src-pfx {
52180               tailf:info "Match source prefix component of flowspec prefix";
52181               description
52182                 "Match source prefix component of flowspec prefix";
52183               uses ip-access-list-grouping;
52184             }
52185           }
52186           container next-hop {
52187             tailf:info "Match next-hop address of route";
52188             description
52189               "Match next-hop address of route";
52190             uses ip-access-list-grouping;
52191           }
52192           container redistribution-source {
52193             tailf:info "route redistribution source (EIGRP only)";
52194             description
52195               "route redistribution source (EIGRP only)";
52196             uses ip-access-list-grouping;
52197           }
52198           container route-source {
52199             tailf:info "Match advertising source address of route";
52200             description
52201               "Match advertising source address of route";
52202             uses ip-access-list-grouping;
52203           }
52204         }
52205         container ipv6 {
52206           tailf:info "IPv6 specific information";
52207           description
52208             "IPv6 specific information";
52209           container address {
52210             tailf:info "Match address of route";
52211             description
52212               "Match address of route";
52213             uses ipv6-access-list-grouping;
52214           }
52215           container flowspec {
52216             tailf:info "Match address of route";
52217             description
52218               "Match address of route";
52219             container dest-pfx {
52220               tailf:info "Match dest prefix component of flowspec prefix";
52221               description
52222                 "Match dest prefix component of flowspec prefix";
52223               uses ipv6-access-list-grouping;
52224             }
52225             container src-pfx {
52226               tailf:info "Match source prefix component of flowspec prefix";
52227               description
52228                 "Match source prefix component of flowspec prefix";
52229               uses ipv6-access-list-grouping;
52230             }
52231           }
52232           container next-hop {
52233             tailf:info "Match next-hop address of route";
52234             description
52235               "Match next-hop address of route";
52236             uses ipv6-access-list-grouping;
52237           }
52238           container route-source {
52239             tailf:info "Match advertising source address of route";
52240             description
52241               "Match advertising source address of route";
52242             uses ipv6-access-list-grouping;
52243           }
52244         }
52245         container length {
52246           tailf:info "Packet length";
52247           description
52248             "Packet length";
52249           list lengths {
52250             tailf:cli-drop-node-name;
52251             tailf:cli-suppress-mode;
52252             key "min-len max-len";
52253             leaf min-len {
52254               tailf:info "Minimum packet length";
52255               description
52256                 "Minimum packet length";
52257               tailf:cli-drop-node-name;
52258               type uint32 {
52259                 tailf:info "<0..2147483647>;;Minimum packet length";
52260                 range "0..2147483647";
52261               }
52262             }
52263             leaf max-len {
52264               tailf:info "Maximum packet length";
52265               description
52266                 "Maximum packet length";
52267               tailf:cli-drop-node-name;
52268               type uint32 {
52269                 tailf:info "<0..2147483647>;;Minimum packet length";
52270                 range "0..2147483647";
52271               }
52272             }
52273           }
52274         }
52275         container local-preference {
52276           tailf:info "Local preference for route";
52277           description
52278             "Local preference for route";
52279           leaf-list values {
52280             tailf:cli-drop-node-name;
52281             type string {
52282               tailf:info "<0..4294967295>;;Local peference values";
52283             }
52284           }
52285         }
52286         container mdt-group {
52287           tailf:info "Match routes corresponding to MDT group";
52288           description
52289             "Match routes corresponding to MDT group";
52290           leaf-list name {
52291             tailf:info "IP Access List";
52292             description
52293               "IP Access List";
52294             tailf:cli-drop-node-name;
52295             tailf:cli-flat-list-syntax;
52296             type string {
52297               tailf:info
52298                 "<1-99>;;IP access-list number
52299                  <1300-1999>;;IP access-list number (expanded range)
52300                  WORD;;IP standard access-list nam";
52301             }
52302           }
52303         }
52304         container metric {
52305           tailf:info "Match metric of route";
52306           description
52307             "Match metric of route";
52308           leaf metric-value {
52309             tailf:cli-drop-node-name;
52310             type string {
52311               tailf:info "<0-4294967295>;;Metric value ";
52312             }
52313           }
52314           leaf external {
52315             tailf:info "match route using external protocol metric";
52316             description
52317               "match route using external protocol metric";
52318             type string {
52319               tailf:info "<0-4294967295>;;Metric value ";
52320             }
52321           }
52322         }
52323         leaf mpls-label {
52324           tailf:info "Match routes which have MPLS labels";
52325           description
52326             "Match routes which have MPLS labels";
52327           type empty;
52328         }
52329         container policy-list {
52330           tailf:info "Match IP policy list";
52331           description
52332             "Match IP policy list";
52333           leaf-list policy-map-names {
52334             tailf:info "IP Policy map name";
52335             description
52336               "IP Policy map name";
52337             tailf:cli-drop-node-name;
52338             tailf:cli-flat-list-syntax;
52339             type string {
52340               tailf:info "WORD;;IP Policy map names";
52341             }
52342           }
52343         }
52344         container route-type {
52345           tailf:info "Match route-type of route";
52346           description
52347             "Match route-type of route";
52348           container external {
52349             tailf:info "external route (BGP, EIGRP and OSPF type 1/2)";
52350             description
52351               "external route (BGP, EIGRP and OSPF type 1/2)";
52352             presence "true";
52353             leaf type-1 {
52354               tailf:info "OSPF external type 1 route";
52355               description
52356                 "OSPF external type 1 route";
52357               type empty;
52358             }
52359             leaf type-2 {
52360               tailf:info "OSPF external type 2 route";
52361               description
52362                 "OSPF external type 2 route";
52363               type empty;
52364             }
52365           }
52366           leaf internal {
52367             tailf:info "internal route (including OSPF intra/inter area)";
52368             description
52369               "internal route (including OSPF intra/inter area)";
52370             type empty;
52371           }
52372           leaf level-1 {
52373             tailf:info "IS-IS level-1 route";
52374             description
52375               "IS-IS level-1 route";
52376             type empty;
52377           }
52378           leaf level-2 {
52379             tailf:info "IS-IS level-2 route";
52380             description
52381               "IS-IS level-2 route";
52382             type empty;
52383           }
52384           leaf local {
52385             tailf:info "locally generated route";
52386             description
52387               "locally generated route";
52388             type empty;
52389           }
52390           container nssa-external {
52391             tailf:info "nssa-external route (OSPF type 1/2)";
52392             description
52393               "nssa-external route (OSPF type 1/2)";
52394             presence "true";
52395             leaf type-1 {
52396               tailf:info "OSPF external type 1 route";
52397               description
52398                 "OSPF external type 1 route";
52399               type empty;
52400             }
52401             leaf type-2 {
52402               tailf:info "OSPF external type 2 route";
52403               description
52404                 "OSPF external type 2 route";
52405               type empty;
52406             }
52407           }
52408         }
52409         container rpki {
52410           tailf:info "Match RPKI state of route";
52411           description
52412             "Match RPKI state of route";
52413           leaf invalid {
52414             tailf:info "RPKI Invalid State";
52415             description
52416               "RPKI Invalid State";
52417             type empty;
52418           }
52419           leaf not-found {
52420             tailf:info "RPKI Not Found State";
52421             description
52422               "RPKI Not Found State";
52423             type empty;
52424           }
52425           leaf valid {
52426             tailf:info "RPKI Valid State";
52427             description
52428               "RPKI Valid State";
52429             type empty;
52430           }
52431         }
52432         container source-protocol {
52433           tailf:info "Match source-protocol of route";
52434           description
52435             "Match source-protocol of route";
52436           presence "true";
52437           leaf-list bgp {
52438             tailf:info "Border Gateway Protocol (BGP)";
52439             description
52440               "Border Gateway Protocol (BGP)";
52441             tailf:cli-flat-list-syntax;
52442             type bgp-as-number-type;
52443           }
52444           leaf connected {
52445             tailf:info "Connected";
52446             description
52447               "Connected";
52448             type empty;
52449           }
52450           leaf-list eigrp {
52451             tailf:info "Border Gateway Protocol (BGP)";
52452             description
52453               "Border Gateway Protocol (BGP)";
52454             tailf:cli-flat-list-syntax;
52455             type string {
52456               tailf:info "<1-65535>;;Autonomous system number";
52457             }
52458           }
52459           leaf isis {
52460             tailf:info "ISO IS-IS";
52461             description
52462               "ISO IS-IS";
52463             type empty;
52464           }
52465           leaf lisp {
52466             tailf:info "Locator ID Separation Protocol (LISP)";
52467             description
52468               "Locator ID Separation Protocol (LISP)";
52469             type empty;
52470           }
52471           leaf mobile {
52472             tailf:info "Mobile routes";
52473             description
52474               "Mobile routes";
52475             type empty;
52476           }
52477           leaf-list ospf {
52478             tailf:info "Open Shortest Path First (OSPF)";
52479             description
52480               "Open Shortest Path First (OSPF)";
52481             tailf:cli-flat-list-syntax;
52482             type string {
52483               tailf:info "<1-65535>;;Process ID";
52484             }
52485           }
52486           leaf-list ospfv3 {
52487             tailf:info "OSPFv3";
52488             description
52489               "OSPFv3";
52490             tailf:cli-flat-list-syntax;
52491             type string {
52492               tailf:info "<1-65535>;;Process ID";
52493             }
52494           }
52495           leaf rip {
52496             tailf:info "Routing Information Protocol (RIP)";
52497             description
52498               "Routing Information Protocol (RIP)";
52499             type empty;
52500           }
52501           leaf static {
52502             tailf:info "Static routes";
52503             description
52504               "Static routes";
52505             type empty;
52506           }
52507         }
52508         container tag {
52509           tailf:info "Match tag of route";
52510           description
52511             "Match tag of route";
52512           leaf-list tag_value {
52513             tailf:info "Tag value";
52514             description
52515               "Tag value";
52516             tailf:cli-flat-list-syntax;
52517             tailf:cli-drop-node-name;
52518             type uint32 {
52519               tailf:info "<0..4294967295>;;Tag value";
52520               range "0..4294967295";
52521             }
52522           }
52523           leaf-list ipv4-address {
52524             tailf:info "<A.B.C.D>;;Tag value(dotted decimal format)";
52525             description
52526               "<A.B.C.D>;;Tag value(dotted decimal format)";
52527             tailf:cli-drop-node-name;
52528             tailf:cli-flat-list-syntax;
52529             type inet:ipv4-address;
52530           }
52531           container list {
52532             tailf:info "Route Tag List";
52533             description
52534               "Route Tag List";
52535             list tag-names {
52536               tailf:cli-drop-node-name;
52537               tailf:cli-suppress-mode;
52538               key "tag-name";
52539               leaf tag-name {
52540                 tailf:cli-drop-node-name;
52541                 tailf:info "Tag list name";
52542                 description
52543                   "Tag list name";
52544                 type string {
52545                   tailf:info "WORD;;Tag list name";
52546                 }
52547               }
52548             }
52549           }
52550         }
52551         leaf track {
52552           tailf:info "tracking object";
52553           description
52554             "tracking object";
52555           type uint16 {
52556             tailf:info "<1..1000>;;tracking object";
52557             range "1..1000";
52558           }
52559         }
52560       }
52561     }
52562     container authentication {
52563       tailf:info "Auth Manager Global Configuration Commands";
52564       description
52565         "Auth Manager Global Configuration Commands";
52566       container critical {
52567         tailf:info "Set Critical Authentication parameters";
52568         description
52569           "Set Critical Authentication parameters";
52570         container recovery {
52571           tailf:info "Set Critical Authentication Recovery parameters";
52572           description
52573             "Set Critical Authentication Recovery parameters";
52574           leaf delay {
52575             tailf:info "Set Critical Authentication Recovery Delay period";
52576             description
52577               "Set Critical Authentication Recovery Delay period";
52578             type uint32 {
52579               tailf:info "<1-10000>;;Critical Authentication Recovery delay in milliseconds";
52580               range "1..10000";
52581             }
52582           }
52583         }
52584       }
52585       container mac-move {
52586         tailf:info "Set required action when a MAC move is detected";
52587         description
52588           "Set required action when a MAC move is detected";
52589         leaf permit {
52590           tailf:info "PERMIT MAC moves (clears existing session)";
52591           description
52592             "PERMIT MAC moves (clears existing session)";
52593           type empty;
52594         }
52595       }
52596     }
52597     container banner {
52598       tailf:info "Define a login banner";
52599       description
52600         "Define a login banner";
52601       container exec {
52602         tailf:info "Set EXEC process creation banner";
52603         description
52604           "Set EXEC process creation banner";
52605         tailf:cli-sequence-commands {
52606           tailf:cli-reset-siblings;
52607         }
52608         tailf:cli-compact-syntax;
52609         leaf start-marker {
52610           tailf:cli-drop-node-name;
52611           type string;
52612         }
52613         leaf message {
52614           tailf:cli-drop-node-name;
52615           type string;
52616         }
52617         leaf end-marker {
52618           tailf:cli-drop-node-name;
52619           type string;
52620           must "../end-marker = ../start-marker" {
52621             tailf:dependency "../start-marker";
52622           }
52623         }
52624       }
52625       container login {
52626         tailf:info "Set login banner";
52627         description
52628           "Set login banner";
52629         tailf:cli-sequence-commands {
52630           tailf:cli-reset-siblings;
52631         }
52632         tailf:cli-compact-syntax;
52633         leaf start-marker {
52634           tailf:cli-drop-node-name;
52635           type string;
52636         }
52637         leaf message {
52638           tailf:cli-drop-node-name;
52639           type string;
52640         }
52641         leaf end-marker {
52642           tailf:cli-drop-node-name;
52643           type string;
52644           must "../end-marker = ../start-marker" {
52645             tailf:dependency "../start-marker";
52646           }
52647         }
52648       }
52649       container prompt-timeout {
52650         tailf:info "Set Message for login authentication timeout";
52651         description
52652           "Set Message for login authentication timeout";
52653         tailf:cli-sequence-commands {
52654           tailf:cli-reset-siblings;
52655         }
52656         tailf:cli-compact-syntax;
52657         leaf start-marker {
52658           tailf:cli-drop-node-name;
52659           type string;
52660         }
52661         leaf message {
52662           tailf:cli-drop-node-name;
52663           type string;
52664         }
52665         leaf end-marker {
52666           tailf:cli-drop-node-name;
52667           type string;
52668           must "../end-marker = ../start-marker" {
52669             tailf:dependency "../start-marker";
52670           }
52671         }
52672       }
52673       container motd {
52674         tailf:info "Set Message of the Day banner";
52675         description
52676           "Set Message of the Day banner";
52677         tailf:cli-sequence-commands {
52678           tailf:cli-reset-siblings;
52679         }
52680         tailf:cli-compact-syntax;
52681         leaf start-marker {
52682           tailf:cli-drop-node-name;
52683           type string;
52684         }
52685         leaf message {
52686           tailf:cli-drop-node-name;
52687           type string;
52688         }
52689         leaf end-marker {
52690           tailf:cli-drop-node-name;
52691           type string;
52692           must "../end-marker = ../start-marker" {
52693             tailf:dependency "../start-marker";
52694           }
52695         }
52696       }
52697     }
52698     list table-map {
52699       tailf:info "Configure Table Map";
52700       description
52701         "Configure Table Map";
52702       tailf:cli-mode-name "config-tablemap";
52703       key "name";
52704       leaf name {
52705         type string {
52706           tailf:info "WORD;;table-map name";
52707         }
52708       }
52709       leaf default {
52710         tailf:info "the default behavior for setting value not found in the table map";
52711         description
52712           "the default behavior for setting value not found in the table map";
52713         type union {
52714           type uint8 {
52715             tailf:info "tablemap default value";
52716             range "0..63";
52717           }
52718           type enumeration {
52719             enum "copy" {
52720               tailf:info "set the default behavior for value not found in the table map to copy";
52721             }
52722             enum "ignore" {
52723               tailf:info "set the default behavior for value not found in the table map to ignore";
52724             }
52725           }
52726         }
52727       }
52728       list map {
52729         tailf:info "map to_value from from_value";
52730         description
52731           "map to_value from from_value";
52732         tailf:cli-compact-syntax;
52733         tailf:cli-reset-container;
52734         tailf:cli-suppress-mode;
52735         tailf:cli-delete-when-empty;
52736         key "from to";
52737         leaf from {
52738           tailf:info "map from value";
52739           description
52740             "map from value";
52741           tailf:cli-expose-key-name;
52742           type uint8 {
52743             tailf:info "<0-63>;;tablemap from value";
52744             range "0..63";
52745           }
52746         }
52747         leaf to {
52748           tailf:info "map to value";
52749           description
52750             "map to value";
52751           tailf:cli-expose-key-name;
52752           type uint8 {
52753             tailf:info "<0-63>;;tablemap to value";
52754             range "0..63";
52755           }
52756         }
52757       }
52758     }
52759     container sdm {
52760       tailf:info "Switch database management";
52761       description
52762         "Switch database management";
52763       container prefer {
52764         tailf:info "Config TCAM and ASIC RAM size. Warning: need to reset switch for configuration to take effect";
52765         description
52766           "Config TCAM and ASIC RAM size. Warning: need to reset switch for configuration to take effect";
52767         tailf:cli-delete-when-empty;
52768         presence "true";
52769         choice sdm-prefer-choice {
52770           leaf default {
52771             type empty;
52772           }
52773           leaf qos {
52774             type empty;
52775           }
52776         }
52777       }
52778     }
52779     container diagnostic {
52780       tailf:info "Configure diagnostic information";
52781       description
52782         "Configure diagnostic information";
52783       container bootup {
52784         leaf level {
52785           type enumeration {
52786             enum "minimal";
52787           }
52788         }
52789       }
52790     }
52791     list switch {
52792       tailf:info "Config commands for the switches in the stack";
52793       description
52794         "Config commands for the switches in the stack";
52795       tailf:cli-suppress-mode;
52796       key "number";
52797       leaf number {
52798         type uint8 {
52799           tailf:info "<1-9>;;Switch Number";
52800           range "1..9";
52801         }
52802       }
52803       leaf provision {
52804         tailf:info "Configure Switch provision / offline config";
52805         description
52806           "Configure Switch provision / offline config";
52807         type enumeration {
52808           enum "ws-c2960x-24pd-l" {
52809             tailf:info "provision a Catalyst 2960x switch with 24pd-l interfaces";
52810           }
52811           enum "ws-c3650-48ps" {
52812             tailf:info "provision a Catalyst 3650 switch with 48 port interfaces";
52813           }
52814           enum "ws-c3650-24ps" {
52815             tailf:info "provision a Catalyst 3650 switch with 24 port interfaces";
52816           }
52817           enum "ws-c3850-48p" {
52818             tailf:info "provision a Catalyst 3850 switch with 48 GE POE interfaces";
52819           }
52820           enum "ws-c3850-24p" {
52821             tailf:info "provision a Catalyst 3850 switch with 24 GE POE interfaces";
52822           }
52823           enum "ws-c3850-48t" {
52824             tailf:info "provision a Catalyst 3850 switch with 48 GE interfaces";
52825           }
52826           enum "ws-c3850-24t" {
52827             tailf:info "provision a Catalyst 3850 switch with 24 GE interfaces";
52828           }
52829           enum "ws-c3850-48f" {
52830             tailf:info "provision a Catalyst 3850 switch with 48 GE POE+ interfaces";
52831           }
52832           enum "ws-c3850-48u" {
52833             tailf:info "provision a Catalyst 3850 switch with 48 GE UPOE interfaces";
52834           }
52835           enum "ws-c3850-24u" {
52836             tailf:info "provision a Catalyst 3850 switch with 24 GE UPOE interfaces";
52837           }
52838           enum "ws-c3850-12x48u" {
52839             tailf:info "provision a Catalyst 3850 switch with 48 GE UPOE interfaces";
52840           }
52841           enum "ws-c3850-24xu" {
52842             tailf:info "provision a Catalyst 3850 switch with 24 GE UPOE interfaces";
52843           }
52844           enum "ws-c3850-12s" {
52845             tailf:info "provision a Catalyst 3850 switch with 12 SFP interfaces";
52846           }
52847           enum "ws-c3850-24s" {
52848             tailf:info "provision a Catalyst 3850 switch with 24 SFP interfaces";
52849           }
52850           enum "ws-c3850-12xs" {
52851             tailf:info "provision a Catalyst 3850 switch with 12 SFP* interfaces";
52852           }
52853           enum "ws-c3850-24xs" {
52854             tailf:info "provision a Catalyst 3850 switch with 24 SFP+ interfaces";
52855           }
52856           enum "ws-c3850-48xs" {
52857             tailf:info "provision a Catalyst 3850 switch with 48 SFP+ interfaces";
52858           }
52859         }
52860       }
52861     }
52862     list switch-virtual {
52863       tailf:alt-name "switch";
52864       key "domain";
52865       leaf domain {
52866         type uint32;
52867       }
52868       leaf virtual {
52869         tailf:cli-prefix-key;
52870         type empty;
52871       }
52872       container switch {
52873         leaf mode {
52874           type enumeration {
52875             enum "virtual";
52876           }
52877         }
52878       }
52879       container mac-address {
52880         leaf use-virtual {
52881           type empty;
52882         }
52883       }
52884     }
52885     container stack-mac {
52886       tailf:info "Global stack mac-address feature configurations";
52887       description
52888         "Global stack mac-address feature configurations";
52889       container persistent {
52890         tailf:info "persistent stack mac-address";
52891         description
52892           "persistent stack mac-address";
52893         leaf timer {
52894           tailf:info "use stack mac-address timer after master failure";
52895           description
52896             "use stack mac-address timer after master failure";
52897           type uint8 {
52898             tailf:info "<0-0>;;Enter 0 to continue using current stack-mac after master switchover<1-60>;;Interval in minutes before using the new master's mac-address";
52899           }
52900         }
52901       }
52902     }
52903     list acr {
52904       tailf:info "ACR";
52905       description
52906         "ACR";
52907       tailf:cli-suppress-mode;
52908       key "number";
52909       leaf number {
52910         type uint8 {
52911           tailf:info "ACR number";
52912         }
52913       }
52914       leaf type {
52915         tailf:cli-hide-in-submode;
52916         type enumeration {
52917           enum "CH-OC3";
52918         }
52919       }
52920     }
52921     container mls {
52922       tailf:info "mls global commands";
52923       description
52924         "mls global commands";
52925       tailf:cli-incomplete-no;
52926       container acl {
52927         tailf:info "MLS ACL operation";
52928         description
52929           "MLS ACL operation";
52930         container tcam {
52931           tailf:info "ACL TCAM";
52932           description
52933             "ACL TCAM";
52934           leaf default-result {
52935             tailf:info "Default result to be used during tcam programming";
52936             description
52937               "Default result to be used during tcam programming";
52938             type enumeration {
52939               enum "bridge" {
52940                 tailf:info "Bridge result";
52941               }
52942               enum "deny" {
52943                 tailf:info "Deny result";
52944               }
52945               enum "permit" {
52946                 tailf:info "Permit result";
52947               }
52948             }
52949           }
52950           container log-update {
52951             tailf:info "Log TCAM updates";
52952             description
52953               "Log TCAM updates";
52954             presence "true";
52955             leaf rate-limit-msg {
52956               tailf:info "Enable/Disable syslog ratelimiting";
52957               description
52958                 "Enable/Disable syslog ratelimiting";
52959               type enumeration {
52960                 enum "disable" {
52961                   tailf:info "Disable ratelimiting syslog";
52962                 }
52963                 enum "enable" {
52964                   tailf:info "Enable syslog ratelimiting at 1 per second";
52965                 }
52966               }
52967             }
52968           }
52969           leaf share-global {
52970             tailf:info "share global deny or permit any entries";
52971             description
52972               "share global deny or permit any entries";
52973             tailf:cli-boolean-no;
52974             tailf:cli-trim-default;
52975             type boolean;
52976             default "true";
52977           }
52978         }
52979       }
52980       container cef {
52981         tailf:info "cef keyword";
52982         description
52983           "cef keyword";
52984         container error {
52985           leaf action {
52986             type enumeration {
52987               enum "reset";
52988             }
52989           }
52990         }
52991       }
52992       container flow {
52993         tailf:info "flowmask keyword";
52994         description
52995           "flowmask keyword";
52996         leaf ip {
52997           tailf:info "flowmask ip keyword";
52998           description
52999             "flowmask ip keyword";
53000           type enumeration {
53001             enum "interface-destination" {
53002               tailf:info "interface-destination flow keyword";
53003             }
53004             enum "interface-destination-source" {
53005               tailf:info "interface-destination-source flow keyword";
53006             }
53007             enum "interface-full" {
53008               tailf:info "interface-full flow keyword";
53009             }
53010             enum "interface-source" {
53011               tailf:info "interface-source only flow keyword";
53012             }
53013           }
53014         }
53015       }
53016       container ip {
53017         tailf:info "ip keyword";
53018         description
53019           "ip keyword";
53020         container multicast {
53021           tailf:info "multicast keyword";
53022           description
53023             "multicast keyword";
53024           tailf:cli-display-separated;
53025           presence "true";
53026           container consistency-check {
53027             tailf:info "Set consistency checking characteristics";
53028             description
53029               "Set consistency checking characteristics";
53030             presence "true";
53031             leaf settle-time {
53032               tailf:info "Settle time for entry/oif for consistancy-checker";
53033               description
53034                 "Settle time for entry/oif for consistancy-checker";
53035               type uint16 {
53036                 tailf:info "<2-3600>;;Settle time for entry/oif in seconds";
53037                 range "2..3600";
53038               }
53039             }
53040           }
53041           leaf flow-stat-timer {
53042             tailf:info "timer for flow statistic used by mls-msc and mlsm";
53043             description
53044               "timer for flow statistic used by mls-msc and mlsm";
53045             type uint8 {
53046               tailf:info "<1-100>;;#seconds between one batch and another";
53047               range "1..100";
53048             }
53049           }
53050         }
53051       }
53052       container mls-qos-conf {
53053         tailf:cli-no-keyword;
53054         tailf:cli-drop-node-name;
53055         leaf qos {
53056           type empty;
53057         }
53058       }
53059       container qos {
53060         tailf:info "QoS parameters";
53061         description
53062           "QoS parameters";
53063         tailf:cli-incomplete-command;
53064         tailf:cli-incomplete-no;
53065         list aggregate-policer {
53066           tailf:info "Assign aggregate policer";
53067           description
53068             "Assign aggregate policer";
53069           tailf:cli-suppress-mode;
53070           tailf:cli-delete-when-empty;
53071           tailf:cli-compact-syntax;
53072           tailf:cli-sequence-commands {
53073             tailf:cli-reset-all-siblings;
53074           }
53075           key "name";
53076           leaf name {
53077             type string {
53078               tailf:info "WORD;;aggregate policer name";
53079             }
53080           }
53081           leaf target-bit-rate {
53082             tailf:cli-drop-node-name;
53083             type uint64 {
53084               tailf:info "<32000-60000000000>;;Target Bit Rate (bits per second) (postfix k, m, g optional; decimal point allowed)";
53085               range "32000..60000000000";
53086             }
53087           }
53088           leaf burst-normal {
53089             tailf:cli-drop-node-name;
53090             tailf:cli-optional-in-sequence;
53091             type uint32 {
53092               tailf:info "<1000-31250000>;;Normal burst bytes";
53093               range "1000..31250000";
53094             }
53095           }
53096           leaf burst-max {
53097             tailf:cli-drop-node-name;
53098             tailf:cli-optional-in-sequence;
53099             when "../burst-normal" {
53100               tailf:dependency "../burst-normal";
53101             }
53102             type uint32 {
53103               tailf:info "<1000-31250000>;;Maximum burst bytes";
53104               range "1000..31250000";
53105             }
53106           }
53107           leaf pir {
53108             tailf:info "PIR";
53109             description
53110               "PIR";
53111             tailf:cli-optional-in-sequence;
53112             type uint64 {
53113               tailf:info "<32000-60000000000>;;Target Bit Rate (bits per second) (postfix k, m, g optional; decimal point allowed)";
53114               range "32000..60000000000";
53115             }
53116           }
53117           container conform-action {
53118             tailf:info "action when rate is not exceeded";
53119             description
53120               "action when rate is not exceeded";
53121             tailf:cli-optional-in-sequence;
53122             tailf:cli-compact-syntax;
53123             tailf:cli-flatten-container;
53124             choice action-choice {
53125               leaf drop {
53126                 tailf:info "drop packet";
53127                 description
53128                   "drop packet";
53129                 type empty;
53130               }
53131               leaf set-dscp-transmit {
53132                 tailf:info "set dscp and send it";
53133                 description
53134                   "set dscp and send it";
53135                 type dscp-type;
53136               }
53137               leaf set-mpls-exp-imposition-transmit {
53138                 tailf:info "set exp at tag imposition and send it";
53139                 description
53140                   "set exp at tag imposition and send it";
53141                 type uint8 {
53142                   tailf:info "<0-7>;;new exp";
53143                   range "0..7";
53144                 }
53145               }
53146               leaf set-prec-transmit {
53147                 tailf:info "rewrite packet precedence and send it";
53148                 description
53149                   "rewrite packet precedence and send it";
53150                 type uint8 {
53151                   tailf:info "<0-7>;;new precedence";
53152                   range "0..7";
53153                 }
53154               }
53155               leaf transmit {
53156                 tailf:info "transmit packet";
53157                 description
53158                   "transmit packet";
53159                 type empty;
53160               }
53161             }
53162           }
53163           leaf exceed-action {
53164             tailf:info "action when rate is exceeded";
53165             description
53166               "action when rate is exceeded";
53167             tailf:cli-optional-in-sequence;
53168             type enumeration {
53169               enum "drop" {
53170                 tailf:info "drop packet";
53171               }
53172               enum "policed-dscp-transmit" {
53173                 tailf:info "change dscp per policed-dscp map and send it";
53174               }
53175               enum "transmit" {
53176                 tailf:info "transmit packet";
53177               }
53178             }
53179           }
53180           leaf violate-action {
53181             tailf:info "action when rate violated";
53182             description
53183               "action when rate violated";
53184             type enumeration {
53185               enum "drop" {
53186                 tailf:info "drop packet";
53187               }
53188               enum "policed-dscp-transmit" {
53189                 tailf:info "change dscp per policed-dscp map and send it";
53190               }
53191               enum "transmit" {
53192                 tailf:info "transmit packet";
53193               }
53194             }
53195           }
53196         }
53197         container map {
53198           tailf:info "qos map keyword";
53199           description
53200             "qos map keyword";
53201           leaf-list cos-dscp {
53202             tailf:info "cos-dscp map: eight dscp values for cos 0-7";
53203             description
53204               "cos-dscp map: eight dscp values for cos 0-7";
53205             tailf:cli-flat-list-syntax;
53206             type uint8 {
53207               tailf:info "<0-63>;;CoS values separated by spaces (up to 8 values total)";
53208               range "0..63";
53209             }
53210           }
53211           leaf-list policed-dscp {
53212             tailf:info "policed-dscp map keyword";
53213             description
53214               "policed-dscp map keyword";
53215             ordered-by user;
53216             tailf:cli-flat-list-syntax;
53217             type union {
53218               type uint8 {
53219                 tailf:info "<0-63>;;DSCP values separated by spaces (up to 8 values total)";
53220                 range "0..63";
53221               }
53222               type enumeration {
53223                 enum "to" {
53224                   tailf:info "to keyword";
53225                 }
53226               }
53227             }
53228           }
53229         }
53230         container rewrite {
53231           tailf:info "packet qos rewrite enable/disable";
53232           description
53233             "packet qos rewrite enable/disable";
53234           container ip {
53235             tailf:info "ip packet qos rewrite enable/disable";
53236             description
53237               "ip packet qos rewrite enable/disable";
53238             container dscp {
53239               tailf:info "packet ip dscp rewrite enable/disable";
53240               description
53241                 "packet ip dscp rewrite enable/disable";
53242               presence "true";
53243               leaf slot {
53244                 tailf:info "slot number";
53245                 description
53246                   "slot number";
53247                 type string {
53248                   tailf:info "WORD;;Slots seperated by commas. Valid slots: 1,2,3,4,5,6,7,8,9";
53249                 }
53250               }
53251             }
53252           }
53253         }
53254         container queue-set {
53255           tailf:info "Choose a queue set for this queue";
53256           description
53257             "Choose a queue set for this queue";
53258           container output {
53259             tailf:info "Direction the command applies for this command";
53260             description
53261               "Direction the command applies for this command";
53262             tailf:cli-sequence-commands;
53263             tailf:cli-compact-syntax;
53264             leaf queue-set-id {
53265               tailf:cli-drop-node-name;
53266               type uint8 {
53267                 tailf:info "<1-2>;;queue-set id";
53268                 range "1..2";
53269               }
53270             }
53271             list threshold {
53272               tailf:info "Assign threshold values to a queue";
53273               description
53274                 "Assign threshold values to a queue";
53275               tailf:cli-suppress-mode;
53276               tailf:cli-break-sequence-commands;
53277               tailf:cli-compact-syntax;
53278               tailf:cli-sequence-commands;
53279               key "queue-id";
53280               leaf queue-id {
53281                 type uint8 {
53282                   tailf:info "<1-4>;;enter queue id in this queue set";
53283                   range "1..4";
53284                 }
53285               }
53286               leaf drop1 {
53287                 tailf:cli-drop-node-name;
53288                 description
53289                   "drop threshold1 1-3200";
53290                 type uint32 {
53291                   tailf:info "<1-3200>;;enter drop threshold1 1-3200";
53292                   range "1..3200";
53293                 }
53294               }
53295               leaf drop2 {
53296                 tailf:cli-drop-node-name;
53297                 description
53298                   "drop threshold2 1-3200";
53299                 type uint32 {
53300                   tailf:info "<1-3200>;;enter drop threshold2 1-3200";
53301                   range "1..3200";
53302                 }
53303               }
53304               leaf reserved {
53305                 tailf:cli-drop-node-name;
53306                 description
53307                   "reserved threshold 1-100";
53308                 type uint32 {
53309                   tailf:info "<1-3200>;;enter drop threshold2 1-3200";
53310                   range "1..3200";
53311                 }
53312               }
53313               leaf maximum {
53314                 tailf:cli-drop-node-name;
53315                 description
53316                   "maximum threshold1 1-3200";
53317                 type uint32 {
53318                   tailf:info "<1-3200>;;enter maximum threshold1 1-3200";
53319                   range "1..3200";
53320                 }
53321               }
53322             }
53323             leaf-list buffers {
53324               tailf:info "assign buffers to each egress queue";
53325               description
53326                 "assign buffers to each egress queue";
53327               tailf:cli-flat-list-syntax;
53328               type uint16 {
53329                 tailf:info "<0-99>/<1-100>;;enter buffer percentage for queue x 0-99/2 1-100";
53330                 range "0..100";
53331               }
53332             }
53333           }
53334         }
53335         container srr-queue {
53336           tailf:info "Configure SRR receive queues";
53337           description
53338             "Configure SRR receive queues";
53339           container input {
53340             tailf:info "input keyword";
53341             description
53342               "input keyword";
53343             leaf-list bandwidth {
53344               tailf:info "Configure SRR bandwidth";
53345               description
53346                 "Configure SRR bandwidth";
53347               tailf:cli-flat-list-syntax;
53348               type uint8 {
53349                 tailf:info "<1-100>;;enter bandwidth weight for queue id x";
53350                 range "1..100";
53351               }
53352             }
53353             list threshold {
53354               tailf:info "Configure queue tail-drop thresholds";
53355               description
53356                 "Configure queue tail-drop thresholds";
53357               tailf:cli-suppress-mode;
53358               key "queue-id";
53359               leaf queue-id {
53360                 type uint8 {
53361                   tailf:info "<1-2>;;enter threshold queue id (1-2)";
53362                   range "1..2";
53363                 }
53364               }
53365               leaf-list queue-size-percent {
53366                 tailf:cli-drop-node-name;
53367                 tailf:cli-flat-list-syntax;
53368                 type uint8 {
53369                   tailf:info "<1-100>;;enter percent of queue size for threshold x";
53370                   range "1..100";
53371                 }
53372               }
53373             }
53374             list priority-queue {
53375               tailf:info "Configure priority scheduling";
53376               description
53377                 "Configure priority scheduling";
53378               tailf:cli-suppress-mode;
53379               key "queue-number";
53380               leaf queue-number {
53381                 type uint8 {
53382                   tailf:info "<1-2>;;enter priority queue number [1-2]";
53383                 }
53384               }
53385               leaf bandwidth {
53386                 tailf:info "ingress priority queue bandwidth % of stack ring";
53387                 description
53388                   "ingress priority queue bandwidth % of stack ring";
53389                 type uint8 {
53390                   tailf:info "<0-40>;;enter bandwidth number [0-40]";
53391                   range "0..40";
53392                 }
53393               }
53394             }
53395             list cos-map {
53396               tailf:info "Configure cos-map for a queue id";
53397               description
53398                 "Configure cos-map for a queue id";
53399               tailf:cli-suppress-mode;
53400               key "queue threshold";
53401               leaf queue {
53402                 tailf:info "Assign COS values to a queue";
53403                 description
53404                   "Assign COS values to a queue";
53405                 tailf:cli-expose-key-name;
53406                 type uint8 {
53407                   tailf:info "<1-4>;;enter cos-map output queue id";
53408                   range "1..4";
53409                 }
53410               }
53411               leaf threshold {
53412                 tailf:info "Assign COS values to a queue threshold";
53413                 description
53414                   "Assign COS values to a queue threshold";
53415                 tailf:cli-expose-key-name;
53416                 type uint8 {
53417                   tailf:info "<1-3>;;enter cos-map threshold id";
53418                   range "1..3";
53419                 }
53420               }
53421               leaf-list cos {
53422                 tailf:cli-drop-node-name;
53423                 tailf:cli-flat-list-syntax;
53424                 max-elements "8";
53425                 type uint8 {
53426                   tailf:info "<0-7>;;8 cos values separated by spaces";
53427                   range "0..7";
53428                 }
53429               }
53430             }
53431             list dscp-map {
53432               tailf:info "Configure dscp-map for a queue id";
53433               description
53434                 "Configure dscp-map for a queue id";
53435               tailf:cli-suppress-mode;
53436               key "queue threshold";
53437               leaf queue {
53438                 tailf:info "Assign DSCP values to a queue";
53439                 description
53440                   "Assign DSCP values to a queue";
53441                 tailf:cli-expose-key-name;
53442                 type uint8 {
53443                   tailf:info "<1-4>;;enter dscp-map output queue id";
53444                   range "1..4";
53445                 }
53446               }
53447               leaf threshold {
53448                 tailf:info "Assign DSCP values to a queue threshold";
53449                 description
53450                   "Assign DSCP values to a queue threshold";
53451                 tailf:cli-expose-key-name;
53452                 type uint8 {
53453                   tailf:info "<1-3>;;enter dscp-map threshold id";
53454                   range "1..3";
53455                 }
53456               }
53457               leaf-list dscp {
53458                 tailf:cli-drop-node-name;
53459                 tailf:cli-flat-list-syntax;
53460                 max-elements "8";
53461                 type uint8 {
53462                   tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
53463                   range "0..63";
53464                 }
53465               }
53466             }
53467           }
53468           container output {
53469             tailf:info "output keyword";
53470             description
53471               "output keyword";
53472             list cos-map {
53473               tailf:info "Configure cos-map for a queue id";
53474               description
53475                 "Configure cos-map for a queue id";
53476               tailf:cli-suppress-mode;
53477               key "queue threshold";
53478               leaf queue {
53479                 tailf:info "Assign COS values to a queue";
53480                 description
53481                   "Assign COS values to a queue";
53482                 tailf:cli-expose-key-name;
53483                 type uint8 {
53484                   tailf:info "<1-4>;;enter cos-map output queue id";
53485                   range "1..4";
53486                 }
53487               }
53488               leaf threshold {
53489                 tailf:info "Assign COS values to a queue threshold";
53490                 description
53491                   "Assign COS values to a queue threshold";
53492                 tailf:cli-expose-key-name;
53493                 type uint8 {
53494                   tailf:info "<1-3>;;enter cos-map threshold id";
53495                   range "1..3";
53496                 }
53497               }
53498               leaf-list cos {
53499                 tailf:cli-drop-node-name;
53500                 tailf:cli-flat-list-syntax;
53501                 max-elements "8";
53502                 type uint8 {
53503                   tailf:info "<0-7>;;8 cos values separated by spaces";
53504                   range "0..7";
53505                 }
53506               }
53507             }
53508             list dscp-map {
53509               tailf:info "Configure dscp-map for a queue id";
53510               description
53511                 "Configure dscp-map for a queue id";
53512               tailf:cli-suppress-mode;
53513               key "queue threshold";
53514               leaf queue {
53515                 tailf:info "Assign DSCP values to a queue";
53516                 description
53517                   "Assign DSCP values to a queue";
53518                 tailf:cli-expose-key-name;
53519                 type uint8 {
53520                   tailf:info "<1-4>;;enter dscp-map output queue id";
53521                   range "1..4";
53522                 }
53523               }
53524               leaf threshold {
53525                 tailf:info "Assign DSCP values to a queue threshold";
53526                 description
53527                   "Assign DSCP values to a queue threshold";
53528                 tailf:cli-expose-key-name;
53529                 type uint8 {
53530                   tailf:info "<1-3>;;enter dscp-map threshold id";
53531                   range "1..3";
53532                 }
53533               }
53534               leaf-list dscp {
53535                 tailf:cli-drop-node-name;
53536                 tailf:cli-flat-list-syntax;
53537                 max-elements "8";
53538                 type uint8 {
53539                   tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
53540                   range "0..63";
53541                 }
53542               }
53543             }
53544           }
53545         }
53546       }
53547       container rate-limit {
53548         tailf:info "Rate limit different behaviors";
53549         description
53550           "Rate limit different behaviors";
53551         container layer2 {
53552           tailf:info "layer2 protocol cases";
53553           description
53554             "layer2 protocol cases";
53555           container l2pt {
53556             tailf:cli-compact-syntax;
53557             tailf:cli-sequence-commands {
53558               tailf:cli-reset-siblings;
53559             }
53560             tailf:info "layer2 protocol tunnelling packets";
53561             leaf packets-per-second {
53562               description
53563                 "layer2 protocol tunnelling packets";
53564               tailf:cli-drop-node-name;
53565               type uint32 {
53566                 tailf:info "<10-1000000>;;packets per second";
53567                 range "10..1000000";
53568               }
53569             }
53570             leaf packets-in-burst {
53571               tailf:cli-drop-node-name;
53572               type uint32 {
53573                 tailf:info "<1-255>;;packets in burst";
53574                 range "1..255";
53575               }
53576             }
53577           }
53578           container pdu {
53579             tailf:info "layer2 protocol data unit packets";
53580             description
53581               "layer2 protocol data unit packets";
53582             tailf:cli-compact-syntax;
53583             tailf:cli-sequence-commands {
53584               tailf:cli-reset-siblings;
53585             }
53586             leaf packets-per-second {
53587               tailf:cli-drop-node-name;
53588               type uint32 {
53589                 tailf:info "<10-1000000>;;packets per second";
53590                 range "10..1000000";
53591               }
53592             }
53593             leaf packets-in-burst {
53594               tailf:cli-drop-node-name;
53595               type uint32 {
53596                 tailf:info "<1-255>;;packets in burst";
53597                 range "1..255";
53598               }
53599             }
53600           }
53601         }
53602       }
53603       container verify {
53604         tailf:info "enable hardware packet parsing error checks";
53605         description
53606           "enable hardware packet parsing error checks";
53607         container ip {
53608           tailf:info "check on IP packets";
53609           description
53610             "check on IP packets";
53611           leaf checksum {
53612             tailf:info "check for packet checksum errors";
53613             description
53614               "check for packet checksum errors";
53615             tailf:cli-boolean-no;
53616             tailf:cli-trim-default;
53617             type boolean;
53618             default "true";
53619           }
53620           container length {
53621             tailf:info "check for packet length errors";
53622             description
53623               "check for packet length errors";
53624             leaf consistent {
53625               tailf:info "check length in header against physical frame length";
53626               description
53627                 "check length in header against physical frame length";
53628               tailf:cli-boolean-no;
53629               tailf:cli-trim-default;
53630               type boolean;
53631               default "true";
53632             }
53633             leaf minimum {
53634               tailf:info "check for minimum packet length";
53635               description
53636                 "check for minimum packet length";
53637               tailf:cli-boolean-no;
53638               tailf:cli-trim-default;
53639               type boolean;
53640               default "true";
53641             }
53642           }
53643           leaf same-address {
53644             tailf:info "check for packet having equal source and destination IP addresses";
53645             description
53646               "check for packet having equal source and destination IP addresses";
53647             type empty;
53648           }
53649           leaf syslog {
53650             tailf:info "syslog packet parse errors";
53651             description
53652               "syslog packet parse errors";
53653             type empty;
53654           }
53655         }
53656       }
53657     }
53658     container object-group {
53659       tailf:info "Configure Object Group";
53660       description
53661         "Configure Object Group";
53662       list network {
53663         tailf:info "network group";
53664         description
53665           "network group";
53666         tailf:cli-mode-name "config-network-group";
53667         key "name";
53668         leaf name {
53669           tailf:info "WORD;;object-group name";
53670           description
53671             "WORD;;object-group name";
53672           type string;
53673         }
53674         container obj-Mode-config-network-group {
53675           tailf:cli-drop-node-name;
53676           list network_address {
53677             tailf:cli-drop-node-name;
53678             tailf:cli-suppress-mode;
53679             key "ipv4_addr ipv4_mask";
53680             leaf ipv4_addr {
53681               tailf:info "A.B.C.D;;Network address of the group members";
53682               description
53683                 "A.B.C.D;;Network address of the group members";
53684               type inet:ipv4-address;
53685             }
53686             leaf ipv4_mask {
53687               tailf:info "A.B.C.D;;Network mask";
53688               description
53689                 "A.B.C.D;;Network mask";
53690               type inet:ipv4-address;
53691             }
53692           }
53693           leaf description {
53694             tailf:info "Network object group description";
53695             description
53696               "Network object group description";
53697             tailf:cli-multi-value;
53698             type string {
53699               tailf:info "LINE;;Description of this Object group (up to 200 characters)";
53700               length "1..200";
53701             }
53702           }
53703           leaf group-object {
53704             tailf:info "Nested object group";
53705             description
53706               "Nested object group";
53707             type string {
53708               tailf:info "WORD;;Nested object group name";
53709             }
53710           }
53711           leaf host {
53712             tailf:info "Host address of the object-group member";
53713             description
53714               "Host address of the object-group member";
53715             type inet:host {
53716               tailf:info "Hostname or A.B.C.D";
53717             }
53718           }
53719           container range {
53720             tailf:cli-incomplete-command;
53721             tailf:cli-sequence-commands;
53722             leaf ip-addr-min {
53723               tailf:cli-drop-node-name;
53724               tailf:info "Starting IPv4 Address";
53725               description
53726                 "Starting IPv4 Address";
53727               type inet:ipv4-address {
53728                 tailf:info "A.B.C.D;;IP address";
53729               }
53730             }
53731             leaf ip-addr-max {
53732               tailf:cli-drop-node-name;
53733               tailf:info "Ending IPv4 Address";
53734               description
53735                 "Ending IPv4 Address";
53736               type inet:ipv4-address {
53737                 tailf:info "A.B.C.D;;IP address";
53738               }
53739             }
53740           }
53741         }
53742       }
53743       list security {
53744         tailf:info "security group";
53745         description
53746           "security group";
53747         tailf:cli-mode-name "config-security-group";
53748         key "name";
53749         leaf name {
53750           type string {
53751             tailf:info "WORD;;security object group name";
53752           }
53753         }
53754         container security-group {
53755           tailf:cli-drop-node-name;
53756           leaf description {
53757             tailf:info "Network object group description";
53758             description
53759               "Network object group description";
53760             tailf:cli-multi-value;
53761             type string {
53762               tailf:info "LINE;;Description of this Object group (up to 200 characters)";
53763               length "1..200";
53764             }
53765           }
53766           leaf group-object {
53767             tailf:info "Nested object group";
53768             description
53769               "Nested object group";
53770             type string {
53771               tailf:info "WORD;;Nested object group name";
53772             }
53773           }
53774           container security-group {
53775             tailf:info "Security Group Tag";
53776             description
53777               "Security Group Tag";
53778             leaf tag {
53779               type uint16 {
53780                 tailf:info "<1-65535>;;Security Group Tag ID";
53781                 range "1..65535";
53782               }
53783             }
53784           }
53785         }
53786       }
53787       list service {
53788         tailf:info "service group";
53789         description
53790           "service group";
53791         tailf:cli-mode-name "config-service-group";
53792         key "name";
53793         leaf name {
53794           type string {
53795             tailf:info "WORD;;service object group name";
53796           }
53797         }
53798         uses object-group-service-grouping;
53799       }
53800     }
53801     container policer {
53802       tailf:info "Switch policer";
53803       description
53804         "Switch policer";
53805       list aggregate {
53806         tailf:info "Named aggregate policer";
53807         description
53808           "Named aggregate policer";
53809         tailf:cli-suppress-mode;
53810         tailf:cli-delete-when-empty;
53811         tailf:cli-compact-syntax;
53812         tailf:cli-reset-container;
53813         tailf:cli-sequence-commands {
53814           tailf:cli-reset-siblings;
53815         }
53816         key "name";
53817         leaf name {
53818           type string {
53819             tailf:info "WORD;;aggregate policer Name";
53820           }
53821         }
53822         leaf cir {
53823           tailf:info "Committed information rate";
53824           description
53825             "Committed information rate";
53826           type uint32 {
53827             tailf:info "<8000-1000000000>;;Bits per second";
53828             range "8000..1000000000";
53829           }
53830         }
53831         leaf bc {
53832           tailf:info "Conform burst";
53833           description
53834             "Conform burst";
53835           tailf:cli-optional-in-sequence;
53836           type uint32 {
53837             tailf:info "<8000-1000000000>;;Burst bytes";
53838             range "8000..1000000000";
53839           }
53840         }
53841         leaf conform-action {
53842           tailf:info "action when rate is within conform and conform + exceed burst";
53843           description
53844             "action when rate is within conform and conform + exceed burst";
53845           tailf:cli-optional-in-sequence;
53846           type empty;
53847         }
53848         leaf set-qos-transmit {
53849           tailf:info "set qos-group and send it";
53850           description
53851             "set qos-group and send it";
53852           when "../conform-action";
53853           tailf:cli-optional-in-sequence;
53854           type uint8 {
53855             tailf:info "<0-99>;;new qos-group";
53856             range "0..99";
53857           }
53858         }
53859         leaf set-dot1ad-dei-transmit {
53860           tailf:info "set dei and send it";
53861           description
53862             "set dei and send it";
53863           when "../conform-action";
53864           tailf:cli-optional-in-sequence;
53865           type uint8 {
53866             tailf:info "<0-1>;;new dei value";
53867             range "0..1";
53868           }
53869         }
53870         leaf set-prec-transmit {
53871           tailf:info "rewrite packet precedence and send it";
53872           description
53873             "rewrite packet precedence and send it";
53874           when "../conform-action";
53875           tailf:cli-optional-in-sequence;
53876           type prec_value-type;
53877         }
53878         container set-prec-transmit-table {
53879           when "../set-prec-transmit";
53880           tailf:cli-no-keyword;
53881           tailf:cli-drop-node-name;
53882           tailf:cli-optional-in-sequence;
53883           tailf:cli-flatten-container;
53884           leaf table {
53885             tailf:info "Set packet cos from cos based on table map";
53886             description
53887               "Set packet cos from cos based on table map";
53888             tailf:cli-optional-in-sequence;
53889             type string;
53890             tailf:non-strict-leafref {
53891               path "/ios:native/table-map/name";
53892             }
53893           }
53894         }
53895         leaf set-dscp-transmit {
53896           tailf:info "set dscp and send it";
53897           description
53898             "set dscp and send it";
53899           when "../conform-action";
53900           tailf:cli-optional-in-sequence;
53901           type dscp-type;
53902         }
53903         container set-dscp-transmit-table {
53904           when "../set-dscp-transmit";
53905           tailf:cli-no-keyword;
53906           tailf:cli-drop-node-name;
53907           tailf:cli-optional-in-sequence;
53908           tailf:cli-flatten-container;
53909           leaf table {
53910             tailf:info "Set packet cos from cos based on table map";
53911             description
53912               "Set packet cos from cos based on table map";
53913             tailf:cli-optional-in-sequence;
53914             type string;
53915             tailf:non-strict-leafref {
53916               path "/ios:native/table-map/name";
53917             }
53918           }
53919         }
53920         leaf set-cos-transmit {
53921           tailf:info "set cos and send it";
53922           description
53923             "set cos and send it";
53924           when "../conform-action";
53925           tailf:cli-optional-in-sequence;
53926           type cos_value-type;
53927         }
53928         container set-cos-transmit-table {
53929           when "../set-cos-transmit";
53930           tailf:cli-no-keyword;
53931           tailf:cli-drop-node-name;
53932           tailf:cli-optional-in-sequence;
53933           tailf:cli-flatten-container;
53934           leaf table {
53935             tailf:info "Set packet cos from cos based on table map";
53936             description
53937               "Set packet cos from cos based on table map";
53938             tailf:cli-optional-in-sequence;
53939             type string;
53940             tailf:non-strict-leafref {
53941               path "/ios:native/table-map/name";
53942             }
53943           }
53944         }
53945         leaf transmit {
53946           tailf:info "transmit packet";
53947           description
53948             "transmit packet";
53949           when "../conform-action";
53950           tailf:cli-optional-in-sequence;
53951           type empty;
53952         }
53953         leaf exceed-action {
53954           tailf:info "action when rate is within conform and conform + exceed burst";
53955           description
53956             "action when rate is within conform and conform + exceed burst";
53957           type empty;
53958         }
53959         leaf drop {
53960           tailf:info "drop packet";
53961           description
53962             "drop packet";
53963           when "../exceed-action";
53964           tailf:cli-optional-in-sequence;
53965           tailf:cli-full-command;
53966           type empty;
53967         }
53968         container exceed-transmit {
53969           tailf:cli-no-keyword;
53970           tailf:cli-drop-node-name;
53971           tailf:cli-optional-in-sequence;
53972           tailf:cli-flatten-container;
53973           leaf transmit {
53974             tailf:info "transmit packet";
53975             description
53976               "transmit packet";
53977             when "../../exceed-action";
53978             tailf:cli-optional-in-sequence;
53979             type empty;
53980           }
53981         }
53982       }
53983     }
53984     list class-map {
53985       tailf:info "Configure QoS Class Map";
53986       description
53987         "Configure QoS Class Map";
53988       tailf:cli-mode-name "config-cmap";
53989       tailf:cli-suppress-list-no;
53990       tailf:cli-delete-when-empty;
53991       tailf:cli-no-key-completion;
53992       key "name";
53993       leaf name {
53994         type string {
53995           tailf:info "WORD;;class-map name";
53996         }
53997         tailf:cli-disallow-value "type";
53998       }
53999       leaf type {
54000         tailf:info "type of the class-map";
54001         description
54002           "type of the class-map";
54003         tailf:cli-prefix-key;
54004         type enumeration {
54005           enum "access-control" {
54006             tailf:info "access-control specific class-map";
54007           }
54008           enum "appnav" {
54009             tailf:info "Configure a APPNAV Class Map";
54010           }
54011           enum "control" {
54012             tailf:info "Configure a control policy class-map";
54013           }
54014           enum "inspect" {
54015             tailf:info "Configure Firewall Class Map";
54016           }
54017           enum "multicast-flows" {
54018             tailf:info "multicast class-maps";
54019           }
54020           enum "stack" {
54021             tailf:info "class-map for protocol header stack specification";
54022           }
54023           enum "traffic" {
54024             tailf:info "Configure a subscriber policy traffic classmap";
54025           }
54026         }
54027       }
54028       leaf protocol {
54029         when "../type = 'inspect'";
54030         tailf:cli-drop-node-name;
54031         tailf:cli-prefix-key;
54032         type enumeration {
54033           enum "aol" {
54034             tailf:info "Configure CBAC class-map for IM-AOL protocol";
54035           }
54036           enum "edonkey" {
54037             tailf:info "eDonkey";
54038           }
54039           enum "fasttrack" {
54040             tailf:info "FastTrack Traffic - KaZaA, Morpheus, Grokster...";
54041           }
54042           enum "gnutella" {
54043             tailf:info "Gnutella Version2 Traffic - BearShare, Shareeza, Morpheus ...";
54044           }
54045           enum "http" {
54046             tailf:info "Configure CBAC class-map for HTTP protocol";
54047           }
54048           enum "imap" {
54049             tailf:info "Configure CBAC class-map for IMAP protocol";
54050           }
54051           enum "kazaa2" {
54052             tailf:info "Kazaa Version 2";
54053           }
54054           enum "msnmsgr" {
54055             tailf:info "Configure CBAC class-map for IM-MSN protocol";
54056           }
54057           enum "pop3" {
54058             tailf:info "Configure CBAC class-map for POP3 protocol";
54059           }
54060           enum "smtp" {
54061             tailf:info "Configure CBAC class-map for SMTP protocol";
54062           }
54063           enum "sunrpc" {
54064             tailf:info "Configure CBAC class-map for RPC protocol";
54065           }
54066           enum "ymsgr" {
54067             tailf:info "Configure CBAC class-map for IM-YAHOO protocol";
54068           }
54069         }
54070       }
54071       leaf prematch {
54072         tailf:cli-no-keyword;
54073         tailf:cli-prefix-key;
54074         tailf:cli-drop-node-name;
54075         type enumeration {
54076           enum "match-all" {
54077             tailf:info "Logical-AND all matching statements under this classmap";
54078           }
54079           enum "match-any" {
54080             tailf:info "Logical-OR all matching statements under this classmap";
54081           }
54082         }
54083         mandatory true;
54084       }
54085       leaf description {
54086         tailf:info "Class-Map description";
54087         description
54088           "Class-Map description";
54089         tailf:cli-multi-value;
54090         type string {
54091           tailf:info "LINE;;Description of this class-map (up to 200 characters)";
54092         }
54093       }
54094       container match {
54095         tailf:info "classification criteria";
54096         description
54097           "classification criteria";
54098         uses class-map-match-grouping;
54099         uses class-map-appnav-match-grouping;
54100         container not {
54101           tailf:info "Negate this match result";
54102           description
54103             "Negate this match result";
54104           uses class-map-match-grouping;
54105           uses class-map-appnav-not-match-grouping;
54106         }
54107       }
54108     }
54109     list policy-map {
54110       tailf:info "Configure QoS Policy Map";
54111       description
54112         "Configure QoS Policy Map";
54113       tailf:cli-mode-name "config-pmap";
54114       tailf:cli-diff-dependency "/ios:native/class-map";
54115       tailf:cli-diff-dependency "/ios:native/table-map";
54116       tailf:cli-diff-dependency "/ios:native/mls/qos/aggregate-policer";
54117       tailf:cli-diff-dependency "/ios:native/policer/aggregate";
54118       key "name";
54119       leaf name {
54120         type string {
54121           tailf:info "WORD;;policy-map name";
54122         }
54123         tailf:cli-disallow-value "(type)|(http)|(im)|(imap)|(p2p)|(pop3)|(smtp)|(sunrpc)";
54124       }
54125       leaf type {
54126         tailf:info "type of the policy-map";
54127         description
54128           "type of the policy-map";
54129         tailf:cli-prefix-key;
54130         type enumeration {
54131           enum "access-control" {
54132             tailf:info "access-control specific policy-map";
54133           }
54134           enum "appnav" {
54135             tailf:info "Configure a APPNAV Policy Map";
54136           }
54137           enum "inspect" {
54138             tailf:info "Configure Firewall Policy Map";
54139           }
54140           enum "packet-service" {
54141             tailf:info "Configure Packet Service Policy Map";
54142           }
54143           enum "performance-monitor" {
54144             tailf:info "Performance monitoring policy-map type";
54145           }
54146           enum "service" {
54147             tailf:info "policymap service configuration";
54148           }
54149           enum "service-chain" {
54150             tailf:info "Configure Service Chain Policy Map";
54151           }
54152         }
54153       }
54154       leaf protocol {
54155         when "../type = 'inspect'";
54156         tailf:cli-drop-node-name;
54157         tailf:cli-prefix-key;
54158         type enumeration {
54159           enum "http" {
54160             tailf:info "Configure CBAC policy-map for HTTP protocol";
54161           }
54162           enum "im" {
54163             tailf:info "Configure CBAC policy-map for IM protocol";
54164           }
54165           enum "imap" {
54166             tailf:info "Configure CBAC policy-map for IMAP protocol";
54167           }
54168           enum "p2p" {
54169             tailf:info "Configure CBAC policy-map for P2P protocols";
54170           }
54171           enum "pop3" {
54172             tailf:info "Configure CBAC policy-map for POP3 protocol";
54173           }
54174           enum "smtp" {
54175             tailf:info "Configure CBAC policy-map for SMTP protocol";
54176           }
54177           enum "sunrpc" {
54178             tailf:info "Configure CBAC policy-map for RPC protocol";
54179           }
54180         }
54181       }
54182       list class {
54183         tailf:info "policy criteria";
54184         description
54185           "policy criteria";
54186         tailf:cli-mode-name "config-pmap-c";
54187         key "name";
54188         leaf name {
54189           tailf:cli-disallow-value "type";
54190           type class-name-type;
54191         }
54192         leaf type {
54193           tailf:info "type of the class-map";
54194           description
54195             "type of the class-map";
54196           tailf:cli-prefix-key;
54197           type enumeration {
54198             enum "inspect" {
54199               tailf:info "Configure CBAC Class Map";
54200             }
54201           }
54202         }
54203         leaf insert-before {
54204           tailf:info "Insert the class before a specified class";
54205           description
54206             "Insert the class before a specified class";
54207           tailf:cli-hide-in-submode;
54208           when "../../type = 'appnav'";
54209           type string {
54210             tailf:info "WORD;;Insert the class before a specified class";
54211           }
54212         }
54213         container appnav-policy {
54214           when "../../type = 'appnav'";
54215           tailf:cli-drop-node-name;
54216           list distribute {
54217             tailf:info "Distribute action";
54218             description
54219               "Distribute action";
54220             tailf:cli-suppress-mode;
54221             key "service-node-group";
54222             leaf service-node-group {
54223               tailf:info "Distribute to service-node-group";
54224               description
54225                 "Distribute to service-node-group";
54226               tailf:cli-expose-key-name;
54227               type string {
54228                 tailf:info "WORD;;service-node-group name";
54229               }
54230             }
54231             leaf insert-before {
54232               tailf:info "Insert before specific node";
54233               description
54234                 "Insert before specific node";
54235               tailf:cli-optional-in-sequence;
54236               type string {
54237                 tailf:info "WORD;;service-node-group name";
54238               }
54239             }
54240           }
54241           leaf monitor-load {
54242             tailf:info "Monitor AO";
54243             description
54244               "Monitor AO";
54245             when "../distribute";
54246             type enumeration {
54247               enum "MS-port-mapper" {
54248                 tailf:info "Monitor Microsoft Endpoint Port Mapper load";
54249               }
54250               enum "cifs" {
54251                 tailf:info "Monitor CIFS Accelerator load";
54252               }
54253               enum "http" {
54254                 tailf:info "Monitor HTTP Accelerator load";
54255               }
54256               enum "ica" {
54257                 tailf:info "Monitor ICA Accelerator load";
54258               }
54259               enum "mapi" {
54260                 tailf:info "Monitor MAPI Accelerator load";
54261               }
54262               enum "nfs" {
54263                 tailf:info "Monitor NFS Accelerator load";
54264               }
54265               enum "ssl" {
54266                 tailf:info "Monitor SSL accelerator load";
54267               }
54268               enum "video" {
54269                 tailf:info "Monitor Video Accelerator load";
54270               }
54271             }
54272           }
54273           leaf pass-through {
54274             tailf:info "pass-through action";
54275             description
54276               "pass-through action";
54277             type empty;
54278           }
54279         }
54280         container policy {
54281           when "../../type = 'inspect'";
54282           tailf:cli-drop-node-name;
54283           tailf:cli-sequence-commands {
54284             tailf:cli-reset-siblings;
54285           }
54286           leaf action {
54287             tailf:cli-drop-node-name;
54288             tailf:cli-remove-before-change;
54289             type enumeration {
54290               enum "cxsc" {
54291                 tailf:info "CXSC Inspection";
54292               }
54293               enum "drop" {
54294                 tailf:info "Drop the packet";
54295               }
54296               enum "inspect" {
54297                 tailf:info "Context-based Access Control Engine";
54298               }
54299               enum "pass" {
54300                 tailf:info "Pass the packet";
54301               }
54302               enum "service-policy" {
54303                 tailf:info "Deep Packet Inspection Engine";
54304               }
54305             }
54306           }
54307           leaf log {
54308             tailf:info "Send logging message for drop or pass";
54309             description
54310               "Send logging message for drop or pass";
54311             when "../action = 'drop'or ../action = 'pass'";
54312             type empty;
54313           }
54314           leaf parameter-map {
54315             tailf:cli-drop-node-name;
54316             when "../action = 'inspect' or ../action = 'cxsc'";
54317             type string;
54318             tailf:non-strict-leafref {
54319               path "/ios:native/parameter-map/name";
54320             }
54321           }
54322           container dpi {
54323             tailf:cli-drop-node-name;
54324             when "../action = 'service-policy'";
54325             tailf:cli-sequence-commands;
54326             tailf:cli-compact-syntax;
54327             leaf type {
54328               tailf:cli-drop-node-name;
54329               type enumeration {
54330                 enum "gtpv0" {
54331                   tailf:info "GTPv0 DPI";
54332                 }
54333                 enum "gtpv1" {
54334                   tailf:info "GTPv1 DPI";
54335                 }
54336                 enum "imap" {
54337                   tailf:info "IMAP DPI";
54338                 }
54339                 enum "pop3" {
54340                   tailf:info "POP3 DPI";
54341                 }
54342                 enum "smtp" {
54343                   tailf:info "SMTP DPI";
54344                 }
54345                 enum "sunrpc" {
54346                   tailf:info "RPC DPI";
54347                 }
54348               }
54349             }
54350             leaf policy-map {
54351               tailf:cli-drop-node-name;
54352               type string {
54353                 tailf:info "WORD;;DPI policy-map name";
54354               }
54355             }
54356           }
54357         }
54358         container pm-policy {
54359           when "../../type = 'performance-monitor'";
54360           tailf:cli-drop-node-name;
54361           container flow {
54362             tailf:info "Flow subcommands";
54363             description
54364               "Flow subcommands";
54365             leaf monitor {
54366               tailf:info "Apply a Flow Monitor";
54367               description
54368                 "Apply a Flow Monitor";
54369               type string {
54370                 tailf:info "WORD;;Flow monitor name";
54371               }
54372             }
54373           }
54374           container monitor {
54375             tailf:info "Monitor related parameters";
54376             description
54377               "Monitor related parameters";
54378             container metric {
54379               tailf:info "Monitor metric";
54380               description
54381                 "Monitor metric";
54382               container rtp {
54383                 tailf:info "RTP metrics parameters";
54384                 description
54385                   "RTP metrics parameters";
54386                 tailf:cli-add-mode;
54387                 tailf:cli-mode-name "config-pmap-c-mrtp";
54388                 list clock-rate {
54389                   tailf:info "RTP timestamp field's sampling frequency";
54390                   description
54391                     "RTP timestamp field's sampling frequency";
54392                   tailf:cli-suppress-mode;
54393                   tailf:cli-sequence-commands;
54394                   tailf:cli-compact-syntax;
54395                   key "number";
54396                   leaf number {
54397                     type union {
54398                       type uint8 {
54399                         tailf:info "<0-127>;;payload type number";
54400                         range "0..127";
54401                       }
54402                       type enumeration {
54403                         enum "celb" {
54404                           tailf:info "CELB(25)";
54405                         }
54406                         enum "cn" {
54407                           tailf:info "CN(13)";
54408                         }
54409                         enum "default" {
54410                           tailf:info "Change the default clock rate for all the dynamic payload type";
54411                         }
54412                         enum "dvi4" {
54413                           tailf:info "DVI4 RFC-3551 8000Hz(5)";
54414                         }
54415                         enum "dvi4-2" {
54416                           tailf:info "DVI4 RFC-3551 16000Hz(6)";
54417                         }
54418                         enum "dvi4-3" {
54419                           tailf:info "DVI4 Dipol 11025Hz(16)";
54420                         }
54421                         enum "dvi4-4" {
54422                           tailf:info "DVI4 Dipol 22050Hz(17)";
54423                         }
54424                         enum "g722" {
54425                           tailf:info "G722(9)";
54426                         }
54427                         enum "g723" {
54428                           tailf:info "G723(4)";
54429                         }
54430                         enum "g728" {
54431                           tailf:info "G728(15)";
54432                         }
54433                         enum "g729" {
54434                           tailf:info "G729(18)";
54435                         }
54436                         enum "gsm" {
54437                           tailf:info "GSM(3)";
54438                         }
54439                         enum "h261" {
54440                           tailf:info "H261(31)";
54441                         }
54442                         enum "h263" {
54443                           tailf:info "H263(34)";
54444                         }
54445                         enum "jpeg" {
54446                           tailf:info "JPEG(26)";
54447                         }
54448                         enum "l16" {
54449                           tailf:info "L16 channel 1(11)";
54450                         }
54451                         enum "l16-2" {
54452                           tailf:info "L16 channel 2(10)";
54453                         }
54454                         enum "lpc" {
54455                           tailf:info "LPC(7)";
54456                         }
54457                         enum "mp2t" {
54458                           tailf:info "MP2T(33)";
54459                         }
54460                         enum "mpa" {
54461                           tailf:info "MPA(14)";
54462                         }
54463                         enum "mpv" {
54464                           tailf:info "MPV(32)";
54465                         }
54466                         enum "nv" {
54467                           tailf:info "NV(28)";
54468                         }
54469                         enum "pcma" {
54470                           tailf:info "PCMA(8)";
54471                         }
54472                         enum "pcmu" {
54473                           tailf:info "PCMU(0)";
54474                         }
54475                         enum "qcelp" {
54476                           tailf:info "QCELP(12)";
54477                         }
54478                       }
54479                     }
54480                   }
54481                   leaf frequency {
54482                     tailf:cli-drop-node-name;
54483                     type uint32 {
54484                       tailf:info "<1000-192000>;;frequency in Hz";
54485                       range "1000..192000";
54486                     }
54487                   }
54488                 }
54489               }
54490             }
54491           }
54492           list react {
54493             tailf:info "Configure threshold crossing actions";
54494             description
54495               "Configure threshold crossing actions";
54496             tailf:cli-mode-name "config-pmap-c-react";
54497             key "id";
54498             leaf id {
54499               type uint16 {
54500                 tailf:info "<1-65535>  React instance id";
54501               }
54502             }
54503             leaf mode {
54504               tailf:cli-drop-node-name;
54505               tailf:cli-hide-in-submode;
54506               type enumeration {
54507                 enum "media-stop" {
54508                   tailf:info "Media stream stopped";
54509                 }
54510                 enum "mrv" {
54511                   tailf:info "Variation in packet rate from configured expected rate";
54512                 }
54513                 enum "rtp-jitter-average" {
54514                   tailf:info "Mean jitter for the RTP stream";
54515                 }
54516                 enum "transport-packets-lost-rate" {
54517                   tailf:info "Ratio of lost packets to total reaceived packets";
54518                 }
54519               }
54520             }
54521             leaf description {
54522               tailf:info "Description for threshold crossing action instance";
54523               description
54524                 "Description for the instance";
54525               tailf:cli-multi-value;
54526               type string;
54527             }
54528             container action {
54529               tailf:info "Config react action";
54530               description
54531                 "Config react action";
54532               leaf snmp {
54533                 tailf:info "SNMP is notified of the event";
54534                 description
54535                   "SNMP is notified of the event";
54536                 tailf:cli-full-command;
54537                 type empty;
54538               }
54539               leaf syslog {
54540                 tailf:info "The threshold-crossing event is logged to syslog";
54541                 description
54542                   "The threshold-crossing event is logged to syslog";
54543                 tailf:cli-full-command;
54544                 type empty;
54545               }
54546             }
54547             container alarm {
54548               tailf:info "Config react alarm";
54549               description
54550                 "Config react alarm";
54551               leaf severity {
54552                 tailf:info "Alarm severity - default level none";
54553                 description
54554                   "Alarm severity - default level none";
54555                 type enumeration {
54556                   enum "alert" {
54557                     tailf:info "TCA severity level critical (severity = 2)";
54558                   }
54559                   enum "critical" {
54560                     tailf:info "TCA severity level major (severity = 3)";
54561                   }
54562                   enum "emergency" {
54563                     tailf:info "TCA severity level critical (severity = 1)";
54564                   }
54565                   enum "error" {
54566                     tailf:info "TCA severity level minor (severity = 4)";
54567                   }
54568                   enum "info" {
54569                     tailf:info "TCA severity level default (severity = 5)";
54570                   }
54571                 }
54572               }
54573               container type {
54574                 tailf:info "Alarm raised type - for each flow or a group";
54575                 description
54576                   "Alarm raised type - for each flow or a group";
54577                 leaf discrete {
54578                   tailf:info "Alert for each flow within the class";
54579                   description
54580                     "Alert for each flow within the class";
54581                   tailf:cli-full-command;
54582                   type empty;
54583                 }
54584                 container grouped {
54585                   tailf:info "Alert if more than one flow cross the threshold";
54586                   description
54587                     "Alert if more than one flow cross the threshold";
54588                   leaf count {
54589                     tailf:info "Number of flows in the group cross the threshold";
54590                     description
54591                       "Number of flows in the group cross the threshold";
54592                     tailf:cli-full-command;
54593                     type uint16 {
54594                       tailf:info "<1-65535>;;Number of flows";
54595                     }
54596                   }
54597                   leaf percent {
54598                     tailf:info "Percent of flows in the group cross the threshold";
54599                     description
54600                       "Percent of flows in the group cross the threshold";
54601                     tailf:cli-full-command;
54602                     type uint8 {
54603                       tailf:info "<1-100>;;Percent of flows";
54604                       range "1..100";
54605                     }
54606                   }
54607                 }
54608               }
54609             }
54610             container threshold {
54611               tailf:info "Config react threshold";
54612               description
54613                 "Config react threshold";
54614               container value {
54615                 tailf:info "Range of percentage loss that would trigger the alarm";
54616                 description
54617                   "Range of percentage loss that would trigger the alarm";
54618                 leaf ge {
54619                   tailf:info "greater and equal to";
54620                   description
54621                     "greater and equal to";
54622                   tailf:cli-full-command;
54623                   type string {
54624                     tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54625                   }
54626                 }
54627                 leaf gt {
54628                   tailf:info "greater than";
54629                   description
54630                     "greater than";
54631                   tailf:cli-full-command;
54632                   type string {
54633                     tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54634                   }
54635                 }
54636                 leaf le {
54637                   tailf:info "less and equal to";
54638                   description
54639                     "less and equal to";
54640                   tailf:cli-full-command;
54641                   type string {
54642                     tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54643                   }
54644                 }
54645                 leaf lt {
54646                   tailf:info "less than";
54647                   description
54648                     "less than";
54649                   tailf:cli-full-command;
54650                   type string {
54651                     tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54652                   }
54653                 }
54654                 container range {
54655                   tailf:info "threshold within the range of";
54656                   description
54657                     "threshold within the range of";
54658                   tailf:cli-sequence-commands;
54659                   tailf:cli-compact-syntax;
54660                   leaf low {
54661                     tailf:cli-drop-node-name;
54662                     type string {
54663                       tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54664                     }
54665                   }
54666                   leaf high {
54667                     tailf:cli-drop-node-name;
54668                     type string {
54669                       tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
54670                     }
54671                   }
54672                 }
54673               }
54674             }
54675           }
54676         }
54677         container inspect-police {
54678           when "../policy/action = 'inspect'";
54679           tailf:cli-drop-node-name;
54680           container police {
54681             tailf:info "Police";
54682             description
54683               "Police";
54684             tailf:cli-sequence-commands {
54685               tailf:cli-reset-siblings;
54686             }
54687             tailf:cli-compact-syntax;
54688             leaf rate {
54689               tailf:info "Specify police rate";
54690               description
54691                 "Specify police rate";
54692               type uint32 {
54693                 tailf:info "<8000-2000000000>;;Rate value in bps";
54694                 range "8000..2000000000";
54695               }
54696             }
54697             leaf burst {
54698               tailf:info "Specify 'burst' parameter";
54699               description
54700                 "Specify 'burst' parameter";
54701               type uint32 {
54702                 tailf:info "<1000-512000000>;;Burst value in bytes";
54703                 range "1000..512000000";
54704               }
54705             }
54706           }
54707         }
54708         list action-list {
54709           tailf:cli-drop-node-name;
54710           tailf:cli-suppress-mode;
54711           key "action-type";
54712           ordered-by user;
54713           leaf action-type {
54714             type policy-action-type;
54715           }
54716           choice action-param {
54717             case bandwidth-case {
54718               container bandwidth {
54719                 tailf:cli-drop-node-name;
54720                 when "../action-type = 'bandwidth'";
54721                 leaf bits {
54722                   tailf:cli-drop-node-name;
54723                   type uint32 {
54724                     range "8..2000000";
54725                     tailf:info "<8-2000000>;;Kilo Bits per second";
54726                   }
54727                 }
54728                 leaf percent {
54729                   tailf:info "% of total Bandwidth";
54730                   description
54731                     "% of total Bandwidth";
54732                   type percentage-type;
54733                 }
54734                 container remaining {
54735                   tailf:info "% of the remaining bandwidth";
54736                   description
54737                     "% of the remaining bandwidth";
54738                   leaf percent {
54739                     tailf:info "% of the remaining bandwidth";
54740                     description
54741                       "% of the remaining bandwidth";
54742                     type percentage-type;
54743                   }
54744                   leaf ratio {
54745                     tailf:info "ratio for sharing excess bandwidth";
54746                     description
54747                       "ratio for sharing excess bandwidth";
54748                     type uint16 {
54749                       tailf:info "<1-65536>;;Ratio";
54750                     }
54751                   }
54752                 }
54753               }
54754             }
54755             case compression-case {
54756               container compression {
54757                 tailf:cli-drop-node-name;
54758                 when "../action-type = 'compression'";
54759                 container header {
54760                   tailf:info "configure header compression";
54761                   description
54762                     "configure header compression";
54763                   presence "configure header compression";
54764                   leaf ip {
54765                     tailf:info "configure ip header compression";
54766                     description
54767                       "configure ip header compression";
54768                     type enumeration {
54769                       enum "rtp" {
54770                         tailf:code-name "header_rtp";
54771                         tailf:info "configure rtp header compression";
54772                       }
54773                       enum "tcp" {
54774                         tailf:info "configure tcp header compression";
54775                       }
54776                     }
54777                   }
54778                 }
54779               }
54780             }
54781             case estimate-case {
54782               container estimate {
54783                 tailf:cli-drop-node-name;
54784                 when "../action-type = 'estimate'";
54785                 container bandwidth {
54786                   presence "bandwidth required to service this class";
54787                   tailf:info "bandwidth required to service this class";
54788                   description
54789                     "bandwidth required to service this class";
54790                   tailf:cli-sequence-commands;
54791                   tailf:cli-compact-syntax;
54792                   container delay-one-in {
54793                     tailf:info "specify QoS target delay";
54794                     description
54795                       "specify QoS target delay";
54796                     tailf:cli-compact-syntax;
54797                     tailf:cli-sequence-commands;
54798                     leaf doi {
54799                       tailf:cli-drop-node-name;
54800                       tailf:cli-incomplete-command;
54801                       type uint32 {
54802                         range "50..1000000";
54803                         tailf:info "<50-1000000>;;delay one packet of N";
54804                       }
54805                     }
54806                     leaf milliseconds {
54807                       type uint32 {
54808                         range "8..1000" {
54809                           tailf:info "<8-1000>;;worst-case milliseconds of delay";
54810                         }
54811                       }
54812                     }
54813                   }
54814                   leaf drop-one-in {
54815                     tailf:info "specify QoS target loss rate";
54816                     description
54817                       "specify QoS target loss rate";
54818                     type uint32 {
54819                       tailf:info "<50-1000000>;;drop one packet of N";
54820                     }
54821                   }
54822                 }
54823               }
54824             }
54825             case forward-case {
54826               container forward {
54827                 tailf:cli-reset-container;
54828                 tailf:cli-drop-node-name;
54829                 when "../action-type = 'forward'";
54830                 list service-path {
54831                   tailf:info "Service Path Entries";
54832                   description
54833                     "Service Path Entries";
54834                   tailf:cli-suppress-mode;
54835                   key "service-path-id";
54836                   leaf service-path-id {
54837                     type uint32 {
54838                       range "0..16777215";
54839                       tailf:info "<0-16777215>;;Service Path ID";
54840                     }
54841                   }
54842                   leaf service-index {
54843                     tailf:info "Service Index";
54844                     description
54845                       "Service Index";
54846                     type uint8 {
54847                       range "2..255";
54848                       tailf:info "<2-255>;;Service Index ID";
54849                     }
54850                   }
54851                 }
54852               }
54853             }
54854             case fair-queue-case {
54855               container fair-queue {
54856                 tailf:cli-reset-container;
54857                 tailf:cli-drop-node-name;
54858                 when "../action-type = 'fair-queue'";
54859                 leaf dynamic-queues {
54860                   tailf:cli-drop-node-name;
54861                   tailf:cli-full-command;
54862                   type uint32 {
54863                     range "16|32|64|128|256|512|1024|2048|4096" {
54864                       tailf:info "<16-4096>;;Number Dynamic Conversation Queues";
54865                     }
54866                   }
54867                 }
54868                 leaf queue-limit {
54869                   tailf:info "per flow queue limit";
54870                   description
54871                     "per flow queue limit";
54872                   tailf:cli-full-command;
54873                   type uint16 {
54874                     tailf:info "<1-32768>;;packets";
54875                     range "1..32768";
54876                   }
54877                 }
54878               }
54879             }
54880             case netflow-sampler-case {
54881               leaf netflow-sampler {
54882                 tailf:cli-drop-node-name;
54883                 tailf:cli-full-command;
54884                 when "../action-type = 'netflow-sampler'";
54885                 type string {
54886                   tailf:info "WORD;;Name of the flow sampler";
54887                 }
54888               }
54889             }
54890             case police-case {
54891               choice police-choice {
54892                 case police-aggregate-case {
54893                   container police-aggregate {
54894                     tailf:cli-no-keyword;
54895                     tailf:cli-drop-node-name;
54896                     container police {
54897                       tailf:cli-drop-node-name;
54898                       when "../../action-type = 'police'" {
54899                         tailf:dependency "../../action-type";
54900                       }
54901                       leaf aggregate {
54902                         tailf:info "Choose aggregate policer for current class";
54903                         description
54904                           "Choose aggregate policer for current class";
54905                         type string {
54906                           tailf:info "WORD;;enter aggregate-policer name";
54907                         }
54908                       }
54909                     }
54910                   }
54911                 }
54912                 case police-policy-map-case {
54913                   container police-policy-map {
54914                     tailf:cli-no-keyword;
54915                     tailf:cli-drop-node-name;
54916                     container police {
54917                       tailf:cli-add-mode;
54918                       tailf:cli-mode-name "config-pmap-c-police";
54919                       tailf:cli-flatten-container;
54920                       tailf:cli-sequence-commands {
54921                         tailf:cli-reset-siblings;
54922                       }
54923                       tailf:cli-drop-node-name;
54924                       when "../../action-type = 'police'" {
54925                         tailf:dependency "../../action-type";
54926                       }
54927                       leaf cir {
54928                         tailf:info "Committed information rate";
54929                         description
54930                           "Committed information rate";
54931                         tailf:cli-hide-in-submode;
54932                         type police-bps-type;
54933                       }
54934                       leaf bc {
54935                         tailf:info "Conform burst";
54936                         description
54937                           "Conform burst";
54938                         tailf:cli-optional-in-sequence;
54939                         tailf:cli-hide-in-submode;
54940                         type police-burst-type;
54941                       }
54942                       leaf be {
54943                         when "../bc";
54944                         tailf:info "Excess burst";
54945                         description
54946                           "Excess burst";
54947                         tailf:cli-optional-in-sequence;
54948                         tailf:cli-hide-in-submode;
54949                         type police-burst-type;
54950                       }
54951                       leaf pir {
54952                         tailf:info "Peak Information Rate";
54953                         description
54954                           "Peak Information Rate";
54955                         tailf:cli-optional-in-sequence;
54956                         tailf:cli-hide-in-submode;
54957                         type police-bps-type;
54958                       }
54959                       container pir-be {
54960                         when "../pir";
54961                         tailf:cli-no-keyword;
54962                         tailf:cli-drop-node-name;
54963                         tailf:cli-optional-in-sequence;
54964                         tailf:cli-flatten-container;
54965                         tailf:cli-hide-in-submode;
54966                         leaf be {
54967                           tailf:info "Excess burst";
54968                           description
54969                             "Excess burst";
54970                           type police-burst-type;
54971                         }
54972                       }
54973                       uses police-action-grouping;
54974                     }
54975                   }
54976                 }
54977                 case police-cir-percent-case {
54978                   container police-cir-percent {
54979                     tailf:cli-no-keyword;
54980                     tailf:cli-drop-node-name;
54981                     container police {
54982                       tailf:cli-drop-node-name;
54983                       when "../../action-type = 'police'" {
54984                         tailf:dependency "../../action-type";
54985                       }
54986                       container cir {
54987                         tailf:info "Committed information rate";
54988                         description
54989                           "Committed information rate";
54990                         container percent {
54991                           tailf:info "% of interface bandwidth for Committed information rate";
54992                           description
54993                             "% of interface bandwidth for Committed information rate";
54994                           tailf:cli-add-mode;
54995                           tailf:cli-mode-name "config-pmap-c-police";
54996                           tailf:cli-incomplete-command;
54997                           tailf:cli-flatten-container;
54998                           tailf:cli-sequence-commands {
54999                             tailf:cli-reset-siblings;
55000                           }
55001                           leaf percentage {
55002                             tailf:cli-drop-node-name;
55003                             tailf:cli-hide-in-submode;
55004                             type percentage-type;
55005                           }
55006                           leaf bc {
55007                             tailf:info "Conform burst";
55008                             description
55009                               "Conform burst";
55010                             tailf:cli-optional-in-sequence;
55011                             tailf:cli-hide-in-submode;
55012                             type uint16 {
55013                               tailf:info "<1-2000>;;Burst ms";
55014                             }
55015                           }
55016                           container bc-ms {
55017                             when "../bc";
55018                             tailf:cli-no-keyword;
55019                             tailf:cli-drop-node-name;
55020                             tailf:cli-optional-in-sequence;
55021                             tailf:cli-hide-in-submode;
55022                             tailf:cli-compact-syntax;
55023                             tailf:cli-flatten-container;
55024                             leaf ms {
55025                               tailf:info "Milli seconds";
55026                               description
55027                                 "Milli seconds";
55028                               tailf:cli-no-keyword;
55029                               type empty;
55030                             }
55031                           }
55032                           leaf be {
55033                             when "../bc-ms/ms" {
55034                               tailf:dependency "../bc-ms/ms";
55035                             }
55036                             tailf:info "Excess burst";
55037                             tailf:cli-optional-in-sequence;
55038                             tailf:cli-hide-in-submode;
55039                             type uint16 {
55040                               tailf:info "<1-2000>;;Burst ms";
55041                             }
55042                           }
55043                           container be-ms {
55044                             when "../be";
55045                             tailf:cli-no-keyword;
55046                             tailf:cli-drop-node-name;
55047                             tailf:cli-hide-in-submode;
55048                             tailf:cli-compact-syntax;
55049                             tailf:cli-flatten-container;
55050                             leaf ms {
55051                               tailf:info "Milli seconds";
55052                               description
55053                                 "Milli seconds";
55054                               tailf:cli-no-keyword;
55055                               type empty;
55056                             }
55057                           }
55058                           container pir {
55059                             tailf:info "Peak Information Rate";
55060                             description
55061                               "Peak Information Rate";
55062                             tailf:cli-compact-syntax;
55063                             tailf:cli-flatten-container;
55064                             tailf:cli-hide-in-submode;
55065                             tailf:cli-optional-in-sequence;
55066                             leaf percent {
55067                               tailf:info "% of interface bandwidth for Peak Information Rate";
55068                               description
55069                                 "% of interface bandwidth for Peak Information Rate";
55070                               type percentage-type;
55071                             }
55072                           }
55073                           container pir-be {
55074                             when "../pir";
55075                             tailf:cli-no-keyword;
55076                             tailf:cli-drop-node-name;
55077                             tailf:cli-optional-in-sequence;
55078                             tailf:cli-flatten-container;
55079                             tailf:cli-hide-in-submode;
55080                             leaf be {
55081                               tailf:info "Excess burst";
55082                               description
55083                                 "Excess burst";
55084                               type uint16 {
55085                                 tailf:info "<1-2000>;;Burst ms";
55086                               }
55087                             }
55088                           }
55089                           container pir-be-ms {
55090                             when "../pir-be/be" {
55091                               tailf:dependency "../pir-be/be";
55092                             }
55093                             tailf:cli-no-keyword;
55094                             tailf:cli-drop-node-name;
55095                             tailf:cli-optional-in-sequence;
55096                             tailf:cli-hide-in-submode;
55097                             tailf:cli-flatten-container;
55098                             leaf ms {
55099                               tailf:info "Milli seconds";
55100                               description
55101                                 "Milli seconds";
55102                               tailf:cli-no-keyword;
55103                               type empty;
55104                             }
55105                           }
55106                           uses police-action-grouping;
55107                         }
55108                       }
55109                     }
55110                   }
55111                 }
55112                 case police-rate-unit-case {
55113                   container police-rate-unit {
55114                     tailf:cli-no-keyword;
55115                     tailf:cli-drop-node-name;
55116                     container police {
55117                       tailf:cli-drop-node-name;
55118                       when "../../action-type = 'police'" {
55119                         tailf:dependency "../../action-type";
55120                       }
55121                       container rate {
55122                         tailf:info "Specify police rate";
55123                         description
55124                           "Specify police rate";
55125                         tailf:cli-add-mode;
55126                         tailf:cli-mode-name "config-pmap-c-police";
55127                         tailf:cli-flatten-container;
55128                         tailf:cli-sequence-commands {
55129                           tailf:cli-reset-siblings;
55130                         }
55131                         leaf units {
55132                           tailf:cli-drop-node-name;
55133                           tailf:cli-hide-in-submode;
55134                           type uint64 {
55135                             tailf:info "<1-2000000000>;;Rate value in the range 8000-2,000,000,000 bps or 1-2,000,000 pps";
55136                           }
55137                         }
55138                         leaf xps {
55139                           tailf:cli-no-keyword;
55140                           tailf:cli-drop-node-name;
55141                           tailf:cli-hide-in-submode;
55142                           type police-pps-bps-type;
55143                         }
55144                         container burst {
55145                           tailf:info "Specify 'burst' parameter";
55146                           description
55147                             "Specify 'burst' parameter";
55148                           tailf:cli-optional-in-sequence;
55149                           tailf:cli-compact-syntax;
55150                           tailf:cli-hide-in-submode;
55151                           tailf:cli-flatten-container;
55152                           tailf:cli-sequence-commands;
55153                           leaf burst-value {
55154                             tailf:cli-no-keyword;
55155                             tailf:cli-drop-node-name;
55156                             tailf:cli-incomplete-command;
55157                             type uint32 {
55158                               tailf:info "<1-512000000>;;Burst value in packets/bytes";
55159                             }
55160                           }
55161                           leaf burst-type {
55162                             tailf:cli-no-keyword;
55163                             tailf:cli-drop-node-name;
55164                             tailf:cli-hide-in-submode;
55165                             type police-packets-bytes-type;
55166                           }
55167                         }
55168                         container peak-rate {
55169                           tailf:info "Specify peak rate";
55170                           description
55171                             "Specify peak rate";
55172                           tailf:cli-optional-in-sequence;
55173                           tailf:cli-compact-syntax;
55174                           tailf:cli-flatten-container;
55175                           tailf:cli-hide-in-submode;
55176                           tailf:cli-sequence-commands;
55177                           leaf peak-rate-value {
55178                             tailf:cli-no-keyword;
55179                             tailf:cli-drop-node-name;
55180                             tailf:cli-incomplete-command;
55181                             type uint32 {
55182                               tailf:info "<1-512000000>;;Peak-rate value in packets or bytes per second";
55183                               range "1..512000000";
55184                             }
55185                           }
55186                           leaf xps {
55187                             tailf:cli-no-keyword;
55188                             tailf:cli-drop-node-name;
55189                             type police-pps-bps-type;
55190                           }
55191                         }
55192                         container peak-burst {
55193                           tailf:info "Specify 'peak-burst' parameter for peak-rate";
55194                           description
55195                             "Specify 'peak-burst' parameter for peak-rate";
55196                           tailf:cli-optional-in-sequence;
55197                           tailf:cli-compact-syntax;
55198                           tailf:cli-flatten-container;
55199                           tailf:cli-hide-in-submode;
55200                           tailf:cli-sequence-commands;
55201                           leaf burst-value {
55202                             tailf:cli-no-keyword;
55203                             tailf:cli-drop-node-name;
55204                             tailf:cli-incomplete-command;
55205                             type uint32 {
55206                               tailf:info "<1-512000000>;;Burst value in packets/bytes";
55207                             }
55208                           }
55209                           leaf burst-type {
55210                             tailf:cli-no-keyword;
55211                             tailf:cli-drop-node-name;
55212                             type police-packets-bytes-type;
55213                           }
55214                         }
55215                         uses police-action-grouping;
55216                       }
55217                     }
55218                   }
55219                 }
55220                 case police-rate-percent-case {
55221                   container police-rate-percent {
55222                     tailf:cli-no-keyword;
55223                     tailf:cli-drop-node-name;
55224                     container police {
55225                       tailf:cli-drop-node-name;
55226                       when "../../action-type = 'police'" {
55227                         tailf:dependency "../../action-type";
55228                       }
55229                       container rate {
55230                         tailf:info "Specify police rate";
55231                         description
55232                           "Specify police rate";
55233                         container percent {
55234                           tailf:info "% of interface bandwidth for rate";
55235                           description
55236                             "% of interface bandwidth for rate";
55237                           tailf:cli-add-mode;
55238                           tailf:cli-mode-name "config-pmap-c-police";
55239                           tailf:cli-flatten-container;
55240                           tailf:cli-sequence-commands {
55241                             tailf:cli-reset-siblings;
55242                           }
55243                           leaf percentage {
55244                             tailf:cli-drop-node-name;
55245                             tailf:cli-hide-in-submode;
55246                             type percentage-type;
55247                           }
55248                           leaf burst {
55249                             tailf:info "Specify 'burst' parameter";
55250                             description
55251                               "Specify 'burst' parameter";
55252                             tailf:cli-optional-in-sequence;
55253                             tailf:cli-hide-in-submode;
55254                             type uint16 {
55255                               tailf:info "<1-2000>;;Burst value in milliseconds";
55256                             }
55257                           }
55258                           leaf ms {
55259                             when "../burst";
55260                             tailf:info "Treat 'burst' value in milliseconds";
55261                             description
55262                               "Treat 'burst' value in milliseconds";
55263                             tailf:cli-hide-in-submode;
55264                             type empty;
55265                           }
55266                           container peak-rate {
55267                             tailf:info "Specify peak rate";
55268                             description
55269                               "Specify peak rate";
55270                             tailf:cli-hide-in-submode;
55271                             tailf:cli-optional-in-sequence;
55272                             tailf:cli-flatten-container;
55273                             leaf percent {
55274                               tailf:info "% of interface bandwidth for peak-rate";
55275                               description
55276                                 "% of interface bandwidth for peak-rate";
55277                               type percentage-type;
55278                             }
55279                           }
55280                           leaf peak-burst {
55281                             tailf:info "Specify 'peak-burst' parameter for 'peak-rate'";
55282                             description
55283                               "Specify 'peak-burst' parameter for 'peak-rate'";
55284                             tailf:cli-hide-in-submode;
55285                             tailf:cli-optional-in-sequence;
55286                             type uint16 {
55287                               tailf:info "<1-2000>;;Peak burst value in milliseconds";
55288                             }
55289                           }
55290                           container peak-burst-ms {
55291                             when "../peak-burst";
55292                             tailf:cli-no-keyword;
55293                             tailf:cli-drop-node-name;
55294                             tailf:cli-optional-in-sequence;
55295                             tailf:cli-hide-in-submode;
55296                             tailf:cli-flatten-container;
55297                             leaf ms {
55298                               tailf:info "Milli seconds";
55299                               description
55300                                 "Milli seconds";
55301                               tailf:cli-no-keyword;
55302                               type empty;
55303                             }
55304                           }
55305                           uses police-action-grouping;
55306                         }
55307                       }
55308                     }
55309                   }
55310                 }
55311                 case police-rate-pdp-case {
55312                   container police-rate-pdp {
55313                     tailf:cli-no-keyword;
55314                     tailf:cli-drop-node-name;
55315                     container police {
55316                       tailf:cli-drop-node-name;
55317                       when "../../action-type = 'police'" {
55318                         tailf:dependency "../../action-type";
55319                       }
55320                       container rate {
55321                         tailf:info "Specify police rate";
55322                         description
55323                           "Specify police rate";
55324                         container pdp {
55325                           tailf:info "% of interface bandwidth for rate";
55326                           description
55327                             "% of interface bandwidth for rate";
55328                           tailf:cli-add-mode;
55329                           tailf:cli-mode-name "config-pmap-c-police";
55330                           tailf:cli-flatten-container;
55331                           tailf:cli-sequence-commands {
55332                             tailf:cli-reset-siblings;
55333                           }
55334                           leaf burst {
55335                             tailf:info "Conform burst";
55336                             description
55337                               "Conform burst";
55338                             tailf:cli-hide-in-submode;
55339                             tailf:cli-optional-in-sequence;
55340                             type police-burst-type;
55341                           }
55342                           leaf peak-rate {
55343                             tailf:info "Specify peak rate";
55344                             description
55345                               "Specify peak rate";
55346                             tailf:cli-hide-in-submode;
55347                             tailf:cli-optional-in-sequence;
55348                             type enumeration {
55349                               enum "pdp";
55350                             }
55351                           }
55352                           leaf peak-burst {
55353                             when "../peak-rate";
55354                             tailf:info "Specify 'peak-burst' parameter for 'peak-rate'";
55355                             description
55356                               "Specify 'peak-burst' parameter for 'peak-rate'";
55357                             tailf:cli-hide-in-submode;
55358                             tailf:cli-optional-in-sequence;
55359                             type police-burst-type;
55360                           }
55361                           uses police-action-grouping;
55362                         }
55363                       }
55364                     }
55365                   }
55366                 }
55367                 case police-target-bitrate-case {
55368                   container police-target-bitrate {
55369                     tailf:cli-no-keyword;
55370                     tailf:cli-drop-node-name;
55371                     container police {
55372                       tailf:cli-drop-node-name;
55373                       when "../../action-type = 'police'" {
55374                         tailf:dependency "../../action-type";
55375                       }
55376                       tailf:cli-add-mode;
55377                       tailf:cli-mode-name "config-pmap-c-police";
55378                       leaf bit-rate {
55379                         tailf:info
55380                           "Target bit rate (bits per second) (postfix k, m, g optional),
55381                            decimal point allowed";
55382                         description
55383                           "Target bit rate (bits per second) (postfix k, m, g optional),
55384                            decimal point allowed";
55385                         tailf:cli-no-keyword;
55386                         tailf:cli-drop-node-name;
55387                         tailf:cli-hide-in-submode;
55388                         type uint64 {
55389                           tailf:info "<8000-10000000000>;;Target bit rate (bits per second)";
55390                           range "8000..10000000000";
55391                         }
55392                       }
55393                       uses police-action-grouping;
55394                     }
55395                   }
55396                 }
55397                 case police-flow-case {
55398                   container police-flow {
55399                     tailf:cli-no-keyword;
55400                     tailf:cli-drop-node-name;
55401                     container police {
55402                       tailf:cli-drop-node-name;
55403                       when "../../action-type = 'police'" {
55404                         tailf:dependency "../../action-type";
55405                       }
55406                       container flow {
55407                         tailf:info "police each flow";
55408                         description
55409                           "police each flow";
55410                         tailf:cli-add-mode;
55411                         tailf:cli-mode-name "config-pmap-c-police";
55412                         tailf:cli-flatten-container;
55413                         tailf:cli-sequence-commands {
55414                           tailf:cli-reset-siblings;
55415                         }
55416                         leaf mask {
55417                           tailf:info "flow mask to be used for policing";
55418                           description
55419                             "flow mask to be used for policing";
55420                           tailf:cli-hide-in-submode;
55421                           tailf:cli-optional-in-sequence;
55422                           type enumeration {
55423                             enum "dest-only" {
55424                               tailf:info "destination-address only flow mask";
55425                             }
55426                             enum "full-flow" {
55427                               tailf:info "full flow mask";
55428                             }
55429                             enum "src-only" {
55430                               tailf:info "source-address only flow mask";
55431                             }
55432                           }
55433                         }
55434                         leaf bps {
55435                           tailf:cli-drop-node-name;
55436                           tailf:cli-hide-in-submode;
55437                           type police-bps-type;
55438                         }
55439                         leaf burst-normal {
55440                           when "../bps";
55441                           tailf:cli-drop-node-name;
55442                           tailf:cli-hide-in-submode;
55443                           tailf:cli-optional-in-sequence;
55444                           type police-burst-type;
55445                         }
55446                         uses police-action-grouping;
55447                       }
55448                     }
55449                   }
55450                 }
55451                 case police-catalyst-case {
55452                   container police-catalyst {
55453                     tailf:cli-no-keyword;
55454                     tailf:cli-drop-node-name;
55455                     container police {
55456                       tailf:cli-add-mode;
55457                       tailf:cli-mode-name "config-pmap-c-police";
55458                       tailf:cli-flatten-container;
55459                       tailf:cli-drop-node-name;
55460                       when "../../action-type = 'police'" {
55461                         tailf:dependency "../../action-type";
55462                       }
55463                       tailf:cli-sequence-commands {
55464                         tailf:cli-reset-siblings;
55465                       }
55466                       leaf bps-value {
55467                         tailf:cli-no-keyword;
55468                         tailf:cli-drop-node-name;
55469                         tailf:cli-hide-in-submode;
55470                         tailf:cli-incomplete-command;
55471                         type string {
55472                           tailf:info "<32000-32000000000>;;Rate in bits per second (postfix k, m, g optional; decimal point allowed)";
55473                         }
55474                       }
55475                       leaf bps {
55476                         tailf:cli-hide-in-submode;
55477                         tailf:cli-incomplete-command;
55478                         type empty;
55479                       }
55480                       leaf byte-value {
55481                         tailf:cli-no-keyword;
55482                         tailf:cli-drop-node-name;
55483                         tailf:cli-hide-in-submode;
55484                         tailf:cli-incomplete-command;
55485                         type string {
55486                           tailf:info "<32000-32000000000>;;(postfix k, m, g optional; decimal point allowed)";
55487                         }
55488                       }
55489                       leaf byte {
55490                         tailf:cli-hide-in-submode;
55491                         type empty;
55492                       }
55493                       container actions {
55494                         tailf:cli-no-keyword;
55495                         tailf:cli-break-sequence-commands;
55496                         tailf:cli-drop-node-name;
55497                         tailf:cli-flatten-container;
55498                         tailf:cli-hide-in-submode;
55499                         uses police-conform-action-grouping;
55500                         uses police-exceed-action-grouping;
55501                         uses police-violate-action-grouping;
55502                       }
55503                     }
55504                   }
55505                 }
55506                 case police-switch-case {
55507                   container police-switch {
55508                     tailf:cli-no-keyword;
55509                     tailf:cli-drop-node-name;
55510                     container police {
55511                       tailf:cli-compact-syntax;
55512                       tailf:cli-drop-node-name;
55513                       when "../../action-type = 'police'" {
55514                         tailf:dependency "../../action-type";
55515                       }
55516                       tailf:cli-sequence-commands {
55517                         tailf:cli-reset-siblings;
55518                       }
55519                       leaf cir {
55520                         tailf:cli-incomplete-command;
55521                         tailf:cli-drop-node-name;
55522                         type uint32 {
55523                           tailf:info "<8000-1000000000>;;Bits per second";
55524                           range "8000..1000000000";
55525                         }
55526                       }
55527                       leaf bc {
55528                         tailf:cli-drop-node-name;
55529                         type uint32 {
55530                           tailf:info "<8000-2000000>;;Normal burst bytes";
55531                           range "8000..2000000";
55532                         }
55533                       }
55534                       leaf exceed-action {
55535                         tailf:info "action when rate is exceeded";
55536                         description
55537                           "action when rate is exceeded";
55538                         type enumeration {
55539                           enum "drop" {
55540                             tailf:info "drop packet";
55541                           }
55542                           enum "policed-dscp-transmit" {
55543                             tailf:info "change dscp per policed-dscp map and send it";
55544                           }
55545                         }
55546                       }
55547                     }
55548                   }
55549                 }
55550               }
55551             }
55552             case priority-case {
55553               container priority {
55554                 tailf:cli-compact-syntax;
55555                 tailf:cli-sequence-commands;
55556                 tailf:cli-drop-node-name;
55557                 when "../action-type = 'priority'";
55558                 leaf level {
55559                   tailf:info "Multi-Level Priority Queue";
55560                   description
55561                     "Multi-Level Priority Queue";
55562                   tailf:cli-optional-in-sequence;
55563                   type uint8 {
55564                     tailf:info "<1-2>;;Multi-Level Priority Queue";
55565                     range "1..2";
55566                   }
55567                 }
55568                 choice priority-type {
55569                   leaf kilo-bits {
55570                     tailf:cli-drop-node-name;
55571                     type uint32 {
55572                       range "8..2000000";
55573                       tailf:info "<8-2000000>;;Kilo Bits per second";
55574                     }
55575                   }
55576                   leaf percent {
55577                     tailf:info "% of total bandwidth";
55578                     description
55579                       "% of total bandwidth";
55580                     type uint16 {
55581                       range "1..100";
55582                       tailf:info "<1-100>;;percentage";
55583                     }
55584                   }
55585                 }
55586                 leaf burst {
55587                   tailf:cli-drop-node-name;
55588                   type uint32 {
55589                     tailf:info "<32-64000000>;;Burst in bytes";
55590                     range "32..64000000";
55591                   }
55592                 }
55593               }
55594             }
55595             case queue-buffers-case {
55596               container queue-buffers {
55597                 tailf:cli-drop-node-name;
55598                 when "../action-type = 'queue-buffers'";
55599                 leaf ratio {
55600                   tailf:info "Relative buffer size for queue";
55601                   description
55602                     "Relative buffer size for queue";
55603                   type uint8 {
55604                     tailf:info "<0-100>;;Queue-buffers ratio limit";
55605                     range "0..100";
55606                   }
55607                 }
55608               }
55609             }
55610             case queue-limit-case {
55611               container queue-limit {
55612                 tailf:cli-compact-syntax;
55613                 tailf:cli-sequence-commands {
55614                   tailf:cli-reset-siblings;
55615                 }
55616                 tailf:cli-drop-node-name;
55617                 when "../action-type = 'queue-limit'";
55618                 leaf queue-limit-value {
55619                   tailf:cli-drop-node-name;
55620                   type uint32 {
55621                     tailf:info "<1-8192000>  in bytes, <1-3400> in ms, <1-32768> in packets by default";
55622                     range "1..8192000";
55623                   }
55624                 }
55625                 leaf queue-limit-type {
55626                   tailf:cli-drop-node-name;
55627                   type enumeration {
55628                     enum "bytes" {
55629                       tailf:info "in bytes";
55630                     }
55631                     enum "ms" {
55632                       tailf:info "in milliseconds";
55633                     }
55634                     enum "packets" {
55635                       tailf:info "in packets";
55636                     }
55637                     enum "us" {
55638                       tailf:info "in microseconds";
55639                     }
55640                   }
55641                 }
55642               }
55643               container queue-limit-dscp {
55644                 tailf:cli-compact-syntax;
55645                 tailf:cli-drop-node-name;
55646                 when "../action-type = 'queue-limit'";
55647                 leaf dscp {
55648                   tailf:info "parameters for each dscp value";
55649                   description
55650                     "parameters for each dscp value";
55651                   type empty;
55652                 }
55653                 leaf values {
55654                   tailf:info "dscp values";
55655                   description
55656                     "dscp values";
55657                   type empty;
55658                 }
55659                 leaf-list sdcp-val {
55660                   tailf:cli-drop-node-name;
55661                   type dscp-type;
55662                 }
55663                 leaf percent {
55664                   tailf:info "% of threshold";
55665                   description
55666                     "% of threshold";
55667                   type uint8 {
55668                     tailf:info "<0-100>;;% of threshold";
55669                     range "0..100";
55670                   }
55671                 }
55672               }
55673             }
55674             case random-detect {
55675               container random-detect {
55676                 tailf:cli-drop-node-name;
55677                 when "../action-type = 'random-detect'";
55678                 container aggregate {
55679                   tailf:info "aggregate subclasses";
55680                   description
55681                     "aggregate subclasses";
55682                   tailf:cli-compact-syntax;
55683                   tailf:cli-sequence-commands {
55684                     tailf:cli-reset-siblings;
55685                   }
55686                   presence "true";
55687                   leaf minimum-thresh {
55688                     tailf:info "minimum threshold for red aggregate";
55689                     description
55690                       "minimum threshold for red aggregate";
55691                     type uint32 {
55692                       tailf:info "<0-1000000>;;minimum threshold (number of packets)";
55693                       range "0..1000000";
55694                     }
55695                   }
55696                   leaf maximum-thresh {
55697                     tailf:info "maximum threshold for red aggregate";
55698                     description
55699                       "maximum threshold for red aggregate";
55700                     type uint32 {
55701                       tailf:info "<0-1000000>;;maximum threshold (number of packets)";
55702                       range "0..1000000";
55703                     }
55704                   }
55705                   leaf mark-probability {
55706                     tailf:info "mark-probability for red aggregate";
55707                     description
55708                       "mark-probability for red aggregate";
55709                     type empty;
55710                   }
55711                   leaf denominator {
55712                     tailf:cli-drop-node-name;
55713                     type uint32 {
55714                       tailf:info "<0-65535>;;mark probability denominator";
55715                       range "0..65535";
55716                     }
55717                   }
55718                 }
55719                 container discard-class {
55720                   tailf:info "parameters for each discard-class value";
55721                   description
55722                     "parameters for each discard-class value";
55723                   tailf:cli-compact-syntax;
55724                   tailf:cli-sequence-commands;
55725                   leaf dclass {
55726                     tailf:cli-drop-node-name;
55727                     tailf:cli-incomplete-command;
55728                     type uint16 {
55729                       range "0..7";
55730                       tailf:info "<0-7>;;discard-class value";
55731                     }
55732                   }
55733                   uses random-detect-grouping;
55734                 }
55735                 leaf discard-class-based {
55736                   tailf:info "Enable discard-class-based WRED as drop policy";
55737                   description
55738                     "Enable discard-class-based WRED as drop policy";
55739                   tailf:cli-full-command;
55740                   type empty;
55741                 }
55742                 leaf dscp-based {
55743                   tailf:info "Enable dscp-based WRED as drop policy";
55744                   description
55745                     "Enable dscp-based WRED as drop policy";
55746                   tailf:cli-full-command;
55747                   type empty;
55748                 }
55749                 list dscp {
55750                   tailf:info "parameters for each dscp value";
55751                   description
55752                     "parameters for each dscp value";
55753                   tailf:cli-suppress-mode;
55754                   tailf:cli-compact-syntax;
55755                   tailf:cli-sequence-commands;
55756                   key "dscp-val";
55757                   leaf dscp-val {
55758                     type dscp-type;
55759                   }
55760                   uses random-detect-grouping;
55761                 }
55762                 leaf ecn {
55763                   tailf:info "explicit congestion notification";
55764                   description
55765                     "explicit congestion notification";
55766                   tailf:cli-full-command;
55767                   type empty;
55768                 }
55769                 leaf exponential-weighting-constant {
55770                   tailf:info "weight for mean queue depth calculation";
55771                   description
55772                     "weight for mean queue depth calculation";
55773                   tailf:cli-full-command;
55774                   type uint16 {
55775                     range "1..16";
55776                     tailf:info "<1-16>;;integer in 1..16 used in weighted average to mean 2^number";
55777                   }
55778                 }
55779                 leaf prec-based {
55780                   tailf:info "Enable precedence-based WRED as drop policy";
55781                   description
55782                     "Enable precedence-based WRED as drop policy";
55783                   tailf:cli-full-command;
55784                   type empty;
55785                 }
55786                 container precedence {
55787                   tailf:info "parameters for each precedence value";
55788                   description
55789                     "parameters for each precedence value";
55790                   tailf:cli-sequence-commands;
55791                   tailf:cli-compact-syntax;
55792                   leaf prec {
55793                     tailf:cli-drop-node-name;
55794                     tailf:cli-incomplete-command;
55795                     type precedence-type2;
55796                   }
55797                   uses random-detect-grouping;
55798                 }
55799               }
55800             }
55801             case service-policy-case {
55802               leaf service-policy {
55803                 tailf:cli-full-command;
55804                 tailf:cli-drop-node-name;
55805                 when "../action-type = 'service-policy'";
55806                 type string;
55807                 tailf:non-strict-leafref {
55808                   path "/ios:native/policy-map/name";
55809                 }
55810               }
55811             }
55812             case set-case {
55813               container set {
55814                 tailf:cli-drop-node-name;
55815                 when "../action-type = 'set'";
55816                 leaf atm-clp {
55817                   tailf:info "Set ATM CLP bit to 1";
55818                   description
55819                     "Set ATM CLP bit to 1";
55820                   tailf:cli-full-command;
55821                   type empty;
55822                 }
55823                 container cos {
55824                   tailf:info "Set IEEE 802.1Q/ISL class of service/user priority";
55825                   description
55826                     "Set IEEE 802.1Q/ISL class of service/user priority";
55827                   tailf:cli-compact-syntax;
55828                   tailf:cli-sequence-commands;
55829                   choice cos-type {
55830                     case a {
55831                       leaf val {
55832                         tailf:cli-drop-node-name;
55833                         type uint16 {
55834                           range "0..7";
55835                           tailf:info "<0-7>;;cos value";
55836                         }
55837                       }
55838                     }
55839                     case b {
55840                       leaf pack {
55841                         tailf:cli-drop-node-name;
55842                         type enumeration {
55843                           enum "dscp" {
55844                             tailf:code-name "pack_dscp";
55845                             tailf:info "Set value from packet dscp";
55846                           }
55847                           enum "precedence" {
55848                             tailf:code-name "pack_precedence";
55849                             tailf:info "Set value from packet precedence.";
55850                           }
55851                         }
55852                       }
55853                       leaf table {
55854                         tailf:info "Set codepoint value based on tablemap.";
55855                         description
55856                           "Set codepoint value based on tablemap.";
55857                         type string {
55858                           tailf:info "WORD;;table-map name";
55859                         }
55860                         tailf:non-strict-leafref {
55861                           path "/ios:native/table-map/name";
55862                         }
55863                       }
55864                     }
55865                   }
55866                 }
55867                 leaf discard-class {
55868                   tailf:info "Discard behavior identifier";
55869                   description
55870                     "Discard behavior identifier";
55871                   tailf:cli-full-command;
55872                   type uint16 {
55873                     range "0..7";
55874                     tailf:info "<0-7>;;Discard Class value";
55875                   }
55876                 }
55877                 container dscp {
55878                   tailf:info "Set DSCP in IP(v4) and IPv6 packets";
55879                   description
55880                     "Set DSCP in IP(v4) and IPv6 packets";
55881                   tailf:cli-compact-syntax;
55882                   leaf tunnel {
55883                     tailf:info "set tunnel packet dscp";
55884                     description
55885                       "set tunnel packet dscp";
55886                     type empty;
55887                   }
55888                   leaf dscp-val {
55889                     tailf:cli-drop-node-name;
55890                     type dscp-type;
55891                   }
55892                 }
55893                 leaf fr-de {
55894                   tailf:info "Set FR DE bit to 1";
55895                   description
55896                     "Set FR DE bit to 1";
55897                   tailf:cli-full-command;
55898                   type empty;
55899                 }
55900                 container ip {
55901                   tailf:info "Set IP specific values";
55902                   description
55903                     "Set IP specific values";
55904                   choice ip-choice {
55905                     container dscp {
55906                       tailf:info "Set IP DSCP (DiffServ CodePointint)";
55907                       description
55908                         "Set IP DSCP (DiffServ CodePointint)";
55909                       tailf:cli-compact-syntax;
55910                       leaf tunnel {
55911                         tailf:info "set tunnel packet dscp";
55912                         description
55913                           "set tunnel packet dscp";
55914                         type empty;
55915                       }
55916                       leaf dscp-val {
55917                         tailf:cli-drop-node-name;
55918                         type dscp-type;
55919                       }
55920                     }
55921                     container precedence {
55922                       tailf:info "Set IP precedence";
55923                       description
55924                         "Set IP precedence";
55925                       presence "Set IP precedence";
55926                       leaf precedence-val {
55927                         tailf:cli-drop-node-name;
55928                         type precedence-type;
55929                       }
55930                     }
55931                   }
55932                 }
55933                 container mpls {
55934                   tailf:info "Set MPLS specific values";
55935                   description
55936                     "Set MPLS specific values";
55937                   container experimental {
55938                     tailf:info "Set Experimental value";
55939                     description
55940                       "Set Experimental value";
55941                     container imposition {
55942                       tailf:info "Set Experimental value at tag imposition";
55943                       description
55944                         "Set Experimental value at tag imposition";
55945                       leaf exp-value {
55946                         tailf:cli-drop-node-name;
55947                         tailf:cli-full-command;
55948                         type uint8 {
55949                           tailf:info "<0-7>;;Experimental value";
55950                           range "0..7";
55951                         }
55952                       }
55953                     }
55954                     container topmost {
55955                       tailf:info "Set Experimental value  on topmost label";
55956                       description
55957                         "Set Experimental value  on topmost label";
55958                       leaf exp-value {
55959                         tailf:cli-drop-node-name;
55960                         tailf:cli-full-command;
55961                         type uint8 {
55962                           tailf:info "<0-7>;;Experimental value";
55963                           range "0..7";
55964                         }
55965                       }
55966                     }
55967                   }
55968                 }
55969                 container qos-group {
55970                   tailf:info "Set QoS Group";
55971                   description
55972                     "Set QoS Group";
55973                   leaf qos-group-value {
55974                     tailf:cli-drop-node-name;
55975                     tailf:cli-full-command;
55976                     type uint8 {
55977                       range "0..99";
55978                     }
55979                   }
55980                 }
55981               }
55982             }
55983             case shape-case {
55984               container shape {
55985                 tailf:cli-drop-node-name;
55986                 when "../action-type = 'shape'";
55987                 leaf adaptive {
55988                   tailf:info "Enable Traffic Shaping adaptation to BECN";
55989                   description
55990                     "Enable Traffic Shaping adaptation to BECN";
55991                   tailf:cli-full-command;
55992                   type uint32 {
55993                     range "8000..154400000";
55994                     tailf:info "<8000-154400000>;;Lower Bound Target Bit Rate (bits per second)";
55995                   }
55996                 }
55997                 container average {
55998                   tailf:info "configure token bucket: CIR (bps) [Bc (bits) [Be (bits)]], send out Bc only per interval";
55999                   description
56000                     "configure token bucket: CIR (bps) [Bc (bits) [Be (bits)]], send out Bc only per interval";
56001                   tailf:cli-sequence-commands;
56002                   tailf:cli-compact-syntax;
56003                   choice average-choice {
56004                     case a {
56005                       leaf bit-rate {
56006                         tailf:cli-drop-node-name;
56007                         type uint64 {
56008                           tailf:info "<8000-max>;;Target Bit Rate (bits per second), the value needs to be a multiple of 8000";
56009                         }
56010                       }
56011                       leaf bits-per-interval-sustained {
56012                         tailf:cli-drop-node-name;
56013                         type uint32 {
56014                           range "256..154400000";
56015                           tailf:info "<256-154400000>;;bits per interval, sustained. Needs to be multiple of 128. Recommend not to configure it, the algorithm will find out the best value";
56016                         }
56017                       }
56018                       leaf bits-per-interval-excess {
56019                         tailf:cli-drop-node-name;
56020                         type uint32 {
56021                           range "0..154400000";
56022                           tailf:info "<0-154400000>;;bits per interval, excess. Needs to be multiple of 128. Bc will be used if you don't configure it.";
56023                         }
56024                       }
56025                     }
56026                     case b {
56027                       leaf percent {
56028                         tailf:info "% of interface bandwidth for Committed information rate";
56029                         description
56030                           "% of interface bandwidth for Committed information rate";
56031                         type percentage-type;
56032                       }
56033                       leaf burst-size-sustained {
56034                         tailf:cli-incomplete-command;
56035                         tailf:cli-drop-node-name;
56036                         type uint16 {
56037                           range "10..2000";
56038                           tailf:info "<10-2000>;;Sustained burst size in msec";
56039                         }
56040                       }
56041                       leaf ms {
56042                         tailf:info "milliseconds";
56043                         description
56044                           "milliseconds";
56045                         type empty;
56046                       }
56047                       container bse {
56048                         tailf:cli-drop-node-name;
56049                         tailf:cli-flatten-container;
56050                         tailf:cli-sequence-commands;
56051                         tailf:cli-compact-syntax;
56052                         leaf burst-size-excess {
56053                           tailf:cli-incomplete-command;
56054                           type uint16 {
56055                             range "10..2000";
56056                             tailf:info "<10-2000>;;Excess burst size in msec";
56057                           }
56058                         }
56059                         leaf ms {
56060                           tailf:info "milliseconds";
56061                           description
56062                             "milliseconds";
56063                           type empty;
56064                         }
56065                       }
56066                     }
56067                   }
56068                 }
56069                 leaf fecn-adapt {
56070                   tailf:info "Enable Traffic Shaping reflection of FECN as BECN";
56071                   description
56072                     "Enable Traffic Shaping reflection of FECN as BECN";
56073                   tailf:cli-full-command;
56074                   type empty;
56075                 }
56076                 container fr-voice-adapt {
56077                   tailf:info "Enable rate adjustment depending on voice presence";
56078                   description
56079                     "Enable rate adjustment depending on voice presence";
56080                   presence "Enable rate adjustment depending on voice presence";
56081                   leaf deactivation {
56082                     type uint16 {
56083                       range "1..10000";
56084                       tailf:info "<1-10000>;;de-activation delay in seconds";
56085                     }
56086                   }
56087                 }
56088                 leaf max-buffers {
56089                   tailf:cli-full-command;
56090                   tailf:info "Set Maximum Buffer Limit";
56091                   description
56092                     "Set Maximum Buffer Limit";
56093                   type uint16 {
56094                     range "1..4096";
56095                     tailf:info "<1-4096>;;Maximum Buffer Limit";
56096                   }
56097                 }
56098               }
56099             }
56100             case trust-case {
56101               leaf trust {
56102                 tailf:cli-drop-node-name;
56103                 when "../action-type = 'trust'";
56104                 type enumeration {
56105                   enum "cos" {
56106                     tailf:info "trust value for the class";
56107                   }
56108                   enum "dscp" {
56109                     tailf:info "trust value for the class";
56110                   }
56111                   enum "ip-precedence" {
56112                     tailf:info "trust value for the class";
56113                   }
56114                 }
56115               }
56116             }
56117           }
56118         }
56119       }
56120       leaf description {
56121         tailf:info "Policy-Map description";
56122         description
56123           "Policy-Map description";
56124         tailf:cli-multi-value;
56125         type string {
56126           length "1..200";
56127           tailf:info "LINE;;Description of this policy-map (up to 200 characters)";
56128         }
56129       }
56130       leaf sequence-interval {
56131         tailf:info "Enable sequence number capability";
56132         description
56133           "Enable sequence number capability";
56134         when "../type = 'appnav'";
56135         type uint16 {
56136           tailf:info "<0-65535>;;Sequence Number Interval";
56137         }
56138       }
56139     }
56140     list pseudowire-class {
56141       tailf:info "Pseudowire-class configuration";
56142       description
56143         "Pseudowire-class configuration";
56144       tailf:cli-mode-name "config-pw-class";
56145       tailf:cli-full-command;
56146       key "name";
56147       leaf name {
56148         type string {
56149           tailf:info "WORD;;Pseudowire-class name";
56150         }
56151       }
56152       uses pseudowire-grouping;
56153     }
56154     container control-plane {
56155       tailf:info "Configure control plane services";
56156       description
56157         "Configure control plane services";
56158       tailf:cli-add-mode;
56159       tailf:cli-mode-name "config-cp";
56160       presence "true";
56161       container service-policy {
56162         leaf input {
56163           tailf:info "Assign policy-map to the input of an interface";
56164           description
56165             "Assign policy-map to the input of an interface";
56166           type string {
56167             tailf:info "WORD;;Policy map name";
56168           }
56169           tailf:non-strict-leafref {
56170             path "/ios:native/policy-map/name";
56171           }
56172         }
56173         leaf output {
56174           tailf:info "Assign policy-map to the output of an interface";
56175           description
56176             "Assign policy-map to the output of an interface";
56177           type string {
56178             tailf:info "WORD;;Policy map name";
56179           }
56180           tailf:non-strict-leafref {
56181             path "/ios:native/policy-map/name";
56182           }
56183         }
56184       }
56185     }
56186     leaf config-register {
56187       tailf:info "Define the configuration register";
56188       description
56189         "Define the configuration register";
56190       type string {
56191         tailf:info "<0x0-0xFFFF>  Config register number";
56192         pattern "[0-9xXa-fA-F].*";
56193       }
56194     }
56195     container clock {
56196       tailf:info "Configure time-of-day clock";
56197       description
56198         "Configure time-of-day clock";
56199       container calendar-valid {
56200         tailf:info "Calendar time is authoritative";
56201         description
56202           "Calendar time is authoritative";
56203         presence "true";
56204       }
56205       container summer-time {
56206         tailf:info "Configure summer (daylight savings) time";
56207         description
56208           "Configure summer (daylight savings) time";
56209         tailf:cli-compact-syntax;
56210         tailf:cli-sequence-commands {
56211           tailf:cli-reset-siblings;
56212         }
56213         leaf zone {
56214           tailf:cli-drop-node-name;
56215           tailf:cli-incomplete-command;
56216           tailf:cli-disallow-value "date|recurring";
56217           type string {
56218             tailf:info "WORD;;name of time zone in summer";
56219           }
56220         }
56221         choice summer-choice {
56222           case date-case {
56223             leaf date {
56224               tailf:info "Configure absolute summer time";
56225               description
56226                 "Configure absolute summer time";
56227               type empty;
56228             }
56229             leaf start-day {
56230               tailf:cli-drop-node-name;
56231               tailf:cli-incomplete-command;
56232               tailf:cli-break-sequence-commands;
56233               type uint8 {
56234                 tailf:info "<1-31>;;Date to start";
56235                 range "1..31";
56236               }
56237             }
56238             leaf start-month {
56239               tailf:cli-drop-node-name;
56240               tailf:cli-incomplete-command;
56241               tailf:cli-break-sequence-commands;
56242               type month-type {
56243                 tailf:info "MONTH;;Month to start";
56244               }
56245             }
56246             leaf start-year {
56247               tailf:cli-drop-node-name;
56248               tailf:cli-incomplete-command;
56249               type uint32 {
56250                 tailf:info "<1993-2035>;;Year to start";
56251                 range "1993..2035";
56252               }
56253             }
56254             leaf start-time {
56255               tailf:cli-drop-node-name;
56256               tailf:cli-incomplete-command;
56257               type hhmm-type {
56258                 tailf:info "hh:mm;;Time to start (hh:mm)";
56259               }
56260             }
56261             leaf date-end-day {
56262               tailf:cli-drop-node-name;
56263               tailf:cli-incomplete-command;
56264               type uint8 {
56265                 tailf:info "<1-31>;;Date to start";
56266                 range "1..31";
56267               }
56268             }
56269             leaf date-end-month {
56270               tailf:cli-drop-node-name;
56271               tailf:cli-incomplete-command;
56272               type month-type {
56273                 tailf:info "MONTH;;Month to end";
56274               }
56275             }
56276             leaf date-end-year {
56277               tailf:cli-drop-node-name;
56278               tailf:cli-incomplete-command;
56279               type uint32 {
56280                 tailf:info "<1993-2035>;;Year to start";
56281                 range "1993..2035";
56282               }
56283             }
56284             leaf date-end-time {
56285               tailf:cli-drop-node-name;
56286               type hhmm-type {
56287                 tailf:info "hh:mm;;Time to end (hh:mm)";
56288               }
56289             }
56290             leaf offset {
56291               tailf:cli-drop-node-name;
56292               tailf:cli-optional-in-sequence;
56293               type uint16 {
56294                 tailf:info "<1-1440>;;Offset to add in minutes";
56295                 range "1..1440";
56296               }
56297             }
56298           }
56299           case recurring-case {
56300             leaf recurring {
56301               tailf:info "Configure recurring summer time";
56302               description
56303                 "Configure recurring summer time";
56304               type empty;
56305             }
56306             leaf recurring-start {
56307               tailf:cli-drop-node-name;
56308               tailf:cli-incomplete-command;
56309               type union {
56310                 type uint8 {
56311                   tailf:info "<1-4>;;Week number to start";
56312                   range "1..4";
56313                 }
56314                 type enumeration {
56315                   enum "first" {
56316                     tailf:info "First week of the month";
56317                   }
56318                   enum "last" {
56319                     tailf:info "Last week of the month";
56320                   }
56321                 }
56322               }
56323             }
56324             leaf recurring-start-day {
56325               tailf:cli-drop-node-name;
56326               tailf:cli-incomplete-command;
56327               type weekday-type {
56328                 tailf:info "DAY;;Weekday to start";
56329               }
56330             }
56331             leaf recurring-start-month {
56332               tailf:cli-drop-node-name;
56333               tailf:cli-incomplete-command;
56334               type month-type {
56335                 tailf:info "MONTH;;Month to start";
56336               }
56337             }
56338             leaf recurring-start-time {
56339               tailf:cli-drop-node-name;
56340               tailf:cli-incomplete-command;
56341               type hhmm-type {
56342                 tailf:info "hh:mm;;Time to start (hh:mm)";
56343               }
56344             }
56345             leaf recurring-end {
56346               tailf:cli-drop-node-name;
56347               tailf:cli-incomplete-command;
56348               type union {
56349                 type uint8 {
56350                   tailf:info "<1-4>;;Week number to end";
56351                   range "1..4";
56352                 }
56353                 type enumeration {
56354                   enum "first" {
56355                     tailf:info "First week of the month";
56356                   }
56357                   enum "last" {
56358                     tailf:info "Last week of the month";
56359                   }
56360                 }
56361               }
56362             }
56363             leaf recurring-end-day {
56364               tailf:cli-drop-node-name;
56365               tailf:cli-incomplete-command;
56366               type weekday-type {
56367                 tailf:info "DAY;;Weekday to end";
56368               }
56369             }
56370             leaf recurring-end-month {
56371               tailf:cli-drop-node-name;
56372               tailf:cli-incomplete-command;
56373               type month-type {
56374                 tailf:info "MONTH;;Month to end";
56375               }
56376             }
56377             leaf recurring-end-time {
56378               tailf:cli-drop-node-name;
56379               type hhmm-type {
56380                 tailf:info "hh:mm;;Time to end (hh:mm)";
56381               }
56382             }
56383             leaf recurring-offset {
56384               tailf:cli-drop-node-name;
56385               tailf:cli-optional-in-sequence;
56386               type uint16 {
56387                 tailf:info "<1-1440>;;Offset to add in minutes";
56388                 range "1..1440";
56389               }
56390             }
56391           }
56392         }
56393       }
56394       container timezone {
56395         tailf:info "Configure time zone";
56396         description
56397           "Configure time zone";
56398         tailf:cli-compact-syntax;
56399         tailf:cli-sequence-commands {
56400           tailf:cli-reset-siblings;
56401         }
56402         leaf zone {
56403           tailf:cli-drop-node-name;
56404           tailf:cli-incomplete-command;
56405           type string {
56406             tailf:info "WORD;;name of time zone";
56407           }
56408         }
56409         leaf offset {
56410           tailf:cli-drop-node-name;
56411           tailf:cli-optional-in-sequence;
56412           tailf:cli-incomplete-command;
56413           type enumeration {
56414             enum "plus";
56415             enum "minus";
56416           }
56417         }
56418         leaf hours {
56419           tailf:cli-drop-node-name;
56420           type int8 {
56421             tailf:info "<-23 - 23>;;Hours offset from UTC";
56422             range "-23..23";
56423           }
56424         }
56425         leaf minutes {
56426           tailf:cli-drop-node-name;
56427           type int8 {
56428             tailf:info "<0-59>;;Minutes ofset from UTC";
56429             range "0..59";
56430           }
56431         }
56432       }
56433     }
56434     container gatekeeper {
56435       tailf:info "Enter gatekeeper configuration mode";
56436       description
56437         "Enter gatekeeper configuration mode";
56438       tailf:cli-add-mode;
56439       tailf:cli-mode-name "config-gk";
56440       leaf shutdown {
56441         tailf:info "Shutdown Gatekeeper";
56442         description
56443           "Shutdown Gatekeeper";
56444         type empty;
56445       }
56446     }
56447     container line {
56448       tailf:info "Configure a terminal line";
56449       description
56450         "Configure a terminal line";
56451       list aux {
56452         tailf:info "Auxiliary line";
56453         description
56454           "Auxiliary line";
56455         tailf:cli-full-command;
56456         tailf:cli-mode-name "config-line";
56457         key "first";
56458         max-elements "1";
56459         leaf first {
56460           type enumeration {
56461             enum "0" {
56462               tailf:info "<0-0>;;First Line number";
56463             }
56464           }
56465         }
56466         uses line-grouping;
56467       }
56468       list console {
56469         tailf:info "Primary terminal line";
56470         description
56471           "Primary terminal line";
56472         tailf:cli-full-command;
56473         tailf:cli-mode-name "config-line";
56474         tailf:cli-allow-key-abbreviation;
56475         key "first";
56476         max-elements "1";
56477         leaf first {
56478           type enumeration {
56479             enum "0" {
56480               tailf:info "<0-0>;;First Line number";
56481             }
56482           }
56483         }
56484         uses line-grouping;
56485       }
56486       container vty-single {
56487         tailf:cli-no-keyword;
56488         tailf:cli-drop-node-name;
56489         list vty {
56490           tailf:info "Virtual terminal";
56491           description
56492             "Virtual terminal";
56493           tailf:cli-full-command;
56494           tailf:cli-mode-name "config-line";
56495           key "first";
56496           leaf first {
56497             type uint16 {
56498               tailf:info "<0-1869>;;First Line number";
56499               range "0..1869";
56500             }
56501           }
56502           uses line-grouping;
56503         }
56504       }
56505       list vty {
56506         tailf:info "Virtual terminal";
56507         description
56508           "Virtual terminal";
56509         tailf:cli-full-command;
56510         tailf:cli-mode-name "config-line";
56511         key "first last";
56512         leaf first {
56513           type uint16 {
56514             tailf:info "<0-1869>;;First Line number";
56515             range "0..1869";
56516           }
56517         }
56518         leaf last {
56519           type uint16 {
56520             tailf:info "<1-1869>;;Last Line number";
56521             range "1..1869";
56522           }
56523         }
56524         uses line-grouping;
56525       }
56526     }
56527     container logging {
56528       tailf:info "Modify message logging facilities";
56529       description
56530         "Modify message logging facilities";
56531       list discriminator {
56532         tailf:info "Create or modify a message discriminator";
56533         description
56534           "Create or modify a message discriminator";
56535         tailf:cli-suppress-mode;
56536         key "name";
56537         leaf name {
56538           type string {
56539             tailf:info "WORD;;discriminator name; string; max. 8 characters";
56540           }
56541         }
56542         container msg-body {
56543           tailf:info "Msg-body pattern for messsage filtering";
56544           description
56545             "Msg-body pattern for messsage filtering";
56546           leaf includes {
56547             tailf:info "To deliver messages including the specified regular expression string";
56548             description
56549               "To deliver messages including the specified regular expression string";
56550             type string {
56551               tailf:info "LINE;;Specify a regular expression string for message filtering";
56552             }
56553           }
56554         }
56555       }
56556       container persistent {
56557         tailf:info "Set persistent logging parameters";
56558         description
56559           "Set persistent logging parameters";
56560         presence "true";
56561         container file {
56562           tailf:cli-reset-container;
56563           tailf:cli-compact-syntax;
56564           tailf:cli-drop-node-name;
56565           leaf url {
56566             tailf:info "URL to store logging messages";
56567             description
56568               "URL to store logging messages";
56569             type string;
56570           }
56571           leaf size {
56572             tailf:info "Set disk space for writing log messages";
56573             description
56574               "Set disk space for writing log messages";
56575             type string;
56576           }
56577           leaf threshold {
56578             tailf:info "Set threshold for logging persistent";
56579             description
56580               "Set threshold for logging persistent";
56581             type string;
56582           }
56583           leaf protected {
56584             tailf:info "Eliminates manipulation on logging-persistent files";
56585             description
56586               "Eliminates manipulation on logging-persistent files";
56587             type empty;
56588           }
56589         }
56590       }
56591       container monitor {
56592         tailf:info "Set terminal line (monitor) logging parameters";
56593         description
56594           "Set terminal line (monitor) logging parameters";
56595         tailf:cli-reset-container;
56596         tailf:cli-compact-syntax;
56597         presence "true";
56598         leaf severity {
56599           tailf:cli-drop-node-name;
56600           tailf:cli-disallow-value "discriminator";
56601           tailf:cli-full-command;
56602           type logging-level-type;
56603         }
56604         list discriminator {
56605           tailf:info "Establish MD-Console association";
56606           description
56607             "Establish MD-Console association";
56608           tailf:cli-suppress-mode;
56609           key "name";
56610           leaf name {
56611             type string {
56612               tailf:info "WORD;;discriminator name; string; max. 8 characters";
56613             }
56614           }
56615           leaf severity {
56616             tailf:cli-drop-node-name;
56617             tailf:cli-full-command;
56618             type logging-level-type;
56619           }
56620         }
56621       }
56622       leaf alarm {
56623         tailf:info "Configure syslog for alarms";
56624         description
56625           "Configure syslog for alarms";
56626         tailf:cli-full-command;
56627         tailf:cli-no-value-on-delete;
56628         type union {
56629           type uint8 {
56630             tailf:info "<1-4>;;Alarm Logging severity level";
56631             range "1..4";
56632           }
56633           type enumeration {
56634             enum "critical" {
56635               tailf:info "Service affecting Condition       (severity=1)";
56636             }
56637             enum "informational" {
56638               tailf:info "Informational messages            (severity=4)";
56639             }
56640             enum "major" {
56641               tailf:info "Immediate action needed           (severity=2)";
56642             }
56643             enum "minor" {
56644               tailf:info "Minor warning conditions          (severity=3)";
56645             }
56646           }
56647         }
56648       }
56649       container buffered {
56650         tailf:info "Set buffered logging parameters";
56651         description
56652           "Set buffered logging parameters";
56653         presence "true";
56654         list discriminator {
56655           tailf:cli-suppress-mode;
56656           key "name";
56657           leaf name {
56658             type string;
56659           }
56660           leaf severity {
56661             tailf:cli-drop-node-name;
56662             tailf:cli-full-command;
56663             type logging-level-type;
56664           }
56665         }
56666         leaf size {
56667           tailf:cli-drop-node-name;
56668           type uint32 {
56669             tailf:info "<4096-2147483647>;;Logging buffer size";
56670             range "4096..2147483647";
56671           }
56672         }
56673         leaf severity {
56674           tailf:cli-drop-node-name;
56675           tailf:cli-full-command;
56676           type logging-level-type;
56677         }
56678         leaf xxml {
56679           tailf:alt-name "xml";
56680           tailf:info "Enable logging in XML to XML logging buffer";
56681           description
56682             "Enable logging in XML to XML logging buffer";
56683           tailf:cli-full-command;
56684           type uint32 {
56685             tailf:info "<4096-2147483647>;;XML logging buffer size";
56686             range "4096..2147483647";
56687           }
56688         }
56689       }
56690       container console {
56691         tailf:info "Set console logging parameters";
56692         description
56693           "Set console logging parameters";
56694         tailf:cli-reset-container;
56695         tailf:cli-compact-syntax;
56696         presence "true";
56697         leaf severity {
56698           tailf:cli-drop-node-name;
56699           tailf:cli-full-command;
56700           type logging-level-type;
56701         }
56702         list discriminator {
56703           tailf:info "Establish MD-Console association";
56704           description
56705             "Establish MD-Console association";
56706           tailf:cli-suppress-mode;
56707           key "name";
56708           leaf name {
56709             type string;
56710           }
56711           leaf severity {
56712             tailf:cli-drop-node-name;
56713             tailf:cli-full-command;
56714             type logging-level-type;
56715           }
56716         }
56717         leaf filtered {
56718           tailf:info "Enable filtered logging";
56719           description
56720             "Enable filtered logging";
56721           type empty;
56722         }
56723         leaf guaranteed {
56724           tailf:info "Guarantee console messages";
56725           description
56726             "Guarantee console messages";
56727           tailf:cli-full-command;
56728           type empty;
56729         }
56730         leaf xxml {
56731           tailf:info "Enable logging in XML";
56732           description
56733             "Enable logging in XML";
56734           tailf:cli-full-command;
56735           type logging-level-type;
56736         }
56737       }
56738       container event {
56739         tailf:info "Global interface events";
56740         description
56741           "Global interface events";
56742         container link-status {
56743           tailf:info "Globally enable/disable link UPDOWN message";
56744           description
56745             "Globally enable/disable link UPDOWN message";
56746           leaf boot {
56747             tailf:info "Supress/Allow link UPDOWN messages during boot";
56748             description
56749               "Supress/Allow link UPDOWN messages during boot";
56750             type empty;
56751           }
56752           leaf global {
56753             type empty;
56754           }
56755           leaf default {
56756             tailf:info "Link UPDOWN messages for all interfaces";
56757             description
56758               "Link UPDOWN messages for all interfaces";
56759             type empty;
56760           }
56761         }
56762       }
56763       container esm {
56764         tailf:info "Set ESM filter restrictions";
56765         description
56766           "Set ESM filter restrictions";
56767         leaf config {
56768           tailf:info "Permit/Deny configuration changes from ESM filters";
56769           description
56770             "Permit/Deny configuration changes from ESM filters";
56771           tailf:cli-full-command;
56772           type empty;
56773         }
56774       }
56775       leaf facility {
56776         tailf:info "Facility parameter for syslog messages";
56777         description
56778           "Facility parameter for syslog messages";
56779         type enumeration {
56780           enum "auth" {
56781             tailf:info "Authorization system";
56782           }
56783           enum "cron" {
56784             tailf:info "Cron/at facility";
56785           }
56786           enum "daemon" {
56787             tailf:info "System daemons";
56788           }
56789           enum "kern" {
56790             tailf:info "Kernel";
56791           }
56792           enum "local0" {
56793             tailf:info "Local use";
56794           }
56795           enum "local1" {
56796             tailf:info "Local use";
56797           }
56798           enum "local2" {
56799             tailf:info "Local use";
56800           }
56801           enum "local3" {
56802             tailf:info "Local use";
56803           }
56804           enum "local4" {
56805             tailf:info "Local use";
56806           }
56807           enum "local5" {
56808             tailf:info "Local use";
56809           }
56810           enum "local6" {
56811             tailf:info "Local use";
56812           }
56813           enum "local7" {
56814             tailf:info "Local use";
56815           }
56816           enum "lpr" {
56817             tailf:info "Line printer system";
56818           }
56819           enum "mail" {
56820             tailf:info "Mail system";
56821           }
56822           enum "news" {
56823             tailf:info "USENET news";
56824           }
56825           enum "sys10" {
56826             tailf:info "System use";
56827           }
56828           enum "sys11" {
56829             tailf:info "System use";
56830           }
56831           enum "sys12" {
56832             tailf:info "System use";
56833           }
56834           enum "sys13" {
56835             tailf:info "System use";
56836           }
56837           enum "sys14" {
56838             tailf:info "System use";
56839           }
56840           enum "sys9" {
56841             tailf:info "System use";
56842           }
56843           enum "syslog" {
56844             tailf:info "Syslog itself";
56845           }
56846           enum "user" {
56847             tailf:info "User process";
56848           }
56849           enum "uucp" {
56850             tailf:info "Unix-to-Unix copy system";
56851           }
56852         }
56853       }
56854       container history {
56855         tailf:info "Configure syslog history table";
56856         description
56857           "Configure syslog history table";
56858         leaf size {
56859           tailf:info "Set history table size";
56860           description
56861             "Set history table size";
56862           type uint16 {
56863             tailf:info "<0-500>;History size";
56864           }
56865         }
56866         leaf severity-level {
56867           tailf:cli-drop-node-name;
56868           type union {
56869             type uint8 {
56870               tailf:info "<0-7>;;Logging severity level";
56871               range "0..7";
56872             }
56873             type enumeration {
56874               enum "alerts" {
56875                 tailf:info "Immediate action needed           (severity=1)";
56876               }
56877               enum "critical" {
56878                 tailf:info "Critical conditions               (severity=2)";
56879               }
56880               enum "debugging" {
56881                 tailf:info "Debugging messages                (severity=7)";
56882               }
56883               enum "emergencies" {
56884                 tailf:info "System is unusable                (severity=0)";
56885               }
56886               enum "errors" {
56887                 tailf:info "Error conditions                  (severity=3)";
56888               }
56889               enum "informational" {
56890                 tailf:info "Informational messages            (severity=6)";
56891               }
56892               enum "notifications" {
56893                 tailf:info "Normal but significant conditions (severity=5)";
56894               }
56895               enum "warnings" {
56896                 tailf:info "Warning conditions                (severity=4)";
56897               }
56898             }
56899           }
56900         }
56901       }
56902       list hostname {
56903         tailf:info "Hostname or A.B.C.D;;IP address of the logging host";
56904         description
56905           "Hostname or A.B.C.D;;IP address of the logging host";
56906         tailf:cli-drop-node-name;
56907         tailf:cli-suppress-mode;
56908         tailf:cli-delete-when-empty;
56909         key "host";
56910         leaf host {
56911           tailf:cli-disallow-value "esm|alarm|buffered|facility|history|rate-limit|source-interface|host|console|discriminator|monitor";
56912           tailf:cli-full-command;
56913           type inet:host {
56914             tailf:info "Hostname or A.B.C.D";
56915           }
56916         }
56917       }
56918       list host {
56919         tailf:info "Set syslog server IP address and parameters";
56920         description
56921           "Set syslog server IP address and parameters";
56922         tailf:cli-suppress-mode;
56923         tailf:cli-delete-when-empty;
56924         tailf:cli-compact-syntax;
56925         key "host";
56926         leaf host {
56927           tailf:cli-disallow-value "esm|alarm|buffered|facility|history|rate-limit|source-interface|host";
56928           tailf:cli-full-command;
56929           type inet:host {
56930             tailf:info "Hostname or A.B.C.D";
56931           }
56932         }
56933         leaf vrf {
56934           tailf:info "Set VRF option";
56935           description
56936             "Set VRF option";
56937           type string {
56938             tailf:info "WORD;;VPN Routing/Forwarding instance name";
56939           }
56940         }
56941         leaf discriminator {
56942           tailf:info "Specify a message discriminator identifier for this logging session";
56943           description
56944             "Specify a message discriminator identifier for this logging session";
56945           type string {
56946             tailf:info "WORD;;Message discriminator identifier for this logging session (8 chars. max)";
56947           }
56948         }
56949       }
56950       container rate-limit {
56951         tailf:info "Set messages per second limit";
56952         description
56953           "Set messages per second limit";
56954         tailf:cli-sequence-commands;
56955         tailf:cli-compact-syntax;
56956         tailf:cli-reset-container;
56957         leaf console {
56958           tailf:info "Rate limit only console messages";
56959           description
56960             "Rate limit only console messages";
56961           tailf:cli-optional-in-sequence;
56962           tailf:cli-incomplete-command;
56963           type empty;
56964         }
56965         leaf all {
56966           tailf:info "Rate limit all messages, including debug messages";
56967           description
56968             "Rate limit all messages, including debug messages";
56969           tailf:cli-optional-in-sequence;
56970           tailf:cli-incomplete-command;
56971           type empty;
56972         }
56973         leaf rate {
56974           tailf:cli-drop-node-name;
56975           type uint16 {
56976             tailf:info "<1-10000>;;Messages per second";
56977           }
56978         }
56979       }
56980       container source-interface {
56981         tailf:info "Specify interface for source address in logging transactions";
56982         description
56983           "Specify interface for source address in logging transactions";
56984         tailf:cli-diff-dependency "/ios:native/interface";
56985         uses interface-grouping;
56986         leaf vrf {
56987           tailf:info "Specify the vrf of source interface for logging transactions";
56988           description
56989             "Specify the vrf of source interface for logging transactions";
56990           type string {
56991             tailf:info "WORD;;VPN Routing/Forwarding instance name";
56992           }
56993         }
56994       }
56995       container snmp-trap {
56996         tailf:info "Set SNMP trap logging level";
56997         description
56998           "Set SNMP trap logging level";
56999         leaf alerts {
57000           tailf:info "Immediate action needed           (severity=1)";
57001           description
57002             "Immediate action needed           (severity=1)";
57003           tailf:cli-full-command;
57004           type empty;
57005         }
57006         leaf critical {
57007           tailf:info "Critical conditions               (severity=2)";
57008           description
57009             "Critical conditions               (severity=2)";
57010           tailf:cli-full-command;
57011           type empty;
57012         }
57013         leaf debugging {
57014           tailf:info "Debugging messages                (severity=7)";
57015           description
57016             "Debugging messages                (severity=7)";
57017           tailf:cli-full-command;
57018           type empty;
57019         }
57020         leaf emergencies {
57021           tailf:info "System is unusable                (severity=0)";
57022           description
57023             "System is unusable                (severity=0)";
57024           tailf:cli-full-command;
57025           type empty;
57026         }
57027         leaf errors {
57028           tailf:info "Error conditions                  (severity=3)";
57029           description
57030             "Error conditions                  (severity=3)";
57031           tailf:cli-full-command;
57032           type empty;
57033         }
57034         leaf informational {
57035           tailf:info "Informational messages            (severity=6)";
57036           description
57037             "Informational messages            (severity=6)";
57038           tailf:cli-full-command;
57039           type empty;
57040         }
57041         leaf notifications {
57042           tailf:info "Normal but significant conditions (severity=5)";
57043           description
57044             "Normal but significant conditions (severity=5)";
57045           tailf:cli-full-command;
57046           type empty;
57047         }
57048         leaf warnings {
57049           tailf:info "Warning conditions                (severity=4)";
57050           description
57051             "Warning conditions                (severity=4)";
57052           tailf:cli-full-command;
57053           type empty;
57054         }
57055       }
57056       leaf trap {
57057         tailf:info "Set trap logging level";
57058         description
57059           "Set trap logging level";
57060         tailf:cli-full-command;
57061         type union {
57062           type uint8 {
57063             tailf:info "<0-7>;;Logging severity level";
57064             range "0..7";
57065           }
57066           type enumeration {
57067             enum "alerts" {
57068               tailf:info "Immediate action needed           (severity=1)";
57069             }
57070             enum "critical" {
57071               tailf:info "Critical conditions               (severity=2)";
57072             }
57073             enum "debugging" {
57074               tailf:info "Debugging messages                (severity=7)";
57075             }
57076             enum "emergencies" {
57077               tailf:info "System is unusable                (severity=0)";
57078             }
57079             enum "errors" {
57080               tailf:info "Error conditions                  (severity=3)";
57081             }
57082             enum "informational" {
57083               tailf:info "Informational messages            (severity=6)";
57084             }
57085             enum "notifications" {
57086               tailf:info "Normal but significant conditions (severity=5)";
57087             }
57088             enum "warnings" {
57089               tailf:info "Warning conditions                (severity=4)";
57090             }
57091           }
57092         }
57093       }
57094       container file {
57095         tailf:info "Set logging file parameters";
57096         description
57097           "Set logging file parameters";
57098         tailf:cli-sequence-commands {
57099           tailf:cli-reset-all-siblings;
57100         }
57101         tailf:cli-compact-syntax;
57102         tailf:cli-incomplete-command;
57103         leaf name {
57104           tailf:cli-drop-node-name;
57105           type string {
57106             tailf:info "Logging file name";
57107           }
57108         }
57109         leaf max-size {
57110           tailf:cli-drop-node-name;
57111           tailf:cli-optional-in-sequence;
57112           type uint32 {
57113             tailf:info "Logging file maximum size";
57114           }
57115         }
57116         leaf min-size {
57117           tailf:cli-drop-node-name;
57118           tailf:cli-optional-in-sequence;
57119           type uint32 {
57120             tailf:info "Logging file minimum size";
57121           }
57122         }
57123         leaf severity {
57124           tailf:cli-drop-node-name;
57125           tailf:cli-full-command;
57126           type logging-level-type;
57127         }
57128       }
57129     }
57130     container mgcp {
57131       tailf:info "Enable Media Gateway Control Protocol";
57132       description
57133         "Enable Media Gateway Control Protocol";
57134       container behavior {
57135         leaf rsip-range {
57136           type enumeration {
57137             enum "tgcp-only";
57138           }
57139         }
57140         leaf comedia-role {
57141           type enumeration {
57142             enum "none";
57143           }
57144         }
57145         leaf comedia-check-media-src {
57146           type enumeration {
57147             enum "disable";
57148           }
57149         }
57150         leaf comedia-sdp-force {
57151           type enumeration {
57152             enum "disable";
57153           }
57154         }
57155       }
57156       container fax {
57157         tailf:info "Configure MGCP Fax Parameters";
57158         description
57159           "Configure MGCP Fax Parameters";
57160         container t38 {
57161           tailf:info "Configure MGCP Fax T.38 Parameters";
57162           description
57163             "Configure MGCP Fax T.38 Parameters";
57164           leaf ecm {
57165             tailf:info "Enable Error Correction Mode (ECM)";
57166             description
57167               "Enable Error Correction Mode (ECM)";
57168             tailf:cli-full-command;
57169             type empty;
57170           }
57171         }
57172       }
57173       container profile {
57174         tailf:info "MGCP profile configuration mode";
57175         description
57176           "MGCP profile configuration mode";
57177         leaf default {
57178           tailf:info "Configure MGCP default profile";
57179           description
57180             "Configure MGCP default profile";
57181           type empty;
57182         }
57183       }
57184     }
57185     container multilink {
57186       tailf:info "PPP multilink global configuration";
57187       description
57188         "PPP multilink global configuration";
57189       leaf bundle-name {
57190         tailf:info "Select method for naming multilink bundles";
57191         description
57192           "Select method for naming multilink bundles";
57193         tailf:cli-full-command;
57194         type enumeration {
57195           enum "authenticated" {
57196             tailf:info "Use peer's authenticated name";
57197           }
57198           enum "both" {
57199             tailf:info "Use peer's authenticated name and endpoint discriminator";
57200           }
57201           enum "endpoint" {
57202             tailf:info "Use peer's endpoint discriminator";
57203           }
57204           enum "rfc" {
57205             tailf:info "Use peer and local authenticated name and endpoint discriminator";
57206           }
57207         }
57208       }
57209       leaf virtual-template {
57210         tailf:info "virtual-template interface";
57211         description
57212           "virtual-template interface";
57213         tailf:cli-full-command;
57214         type uint16 {
57215           tailf:info "<1-4095>;;virtual template number";
57216           range "1..4095";
57217         }
57218       }
57219     }
57220     container ntp {
57221       tailf:info "Configure NTP";
57222       description
57223         "Configure NTP";
57224       tailf:cli-diff-dependency "/ios:native/interface";
57225       container access-group {
57226         tailf:info "Control NTP access";
57227         description
57228           "Control NTP access";
57229         leaf peer {
57230           tailf:info "Provide full access";
57231           description
57232             "Provide full access";
57233           type union {
57234             type uint16 {
57235               tailf:info "<1-99>;;Standard IP access list";
57236               range "1..99";
57237             }
57238             type uint16 {
57239               tailf:info "<1300-1999>;;Standard IP access list (expanded range)";
57240               range "1300..1999";
57241             }
57242           }
57243         }
57244         leaf serve {
57245           tailf:info "Provide server and query access";
57246           description
57247             "Provide server and query access";
57248           type union {
57249             type uint16 {
57250               tailf:info "<1-99>;;Standard IP access list";
57251               range "1..99";
57252             }
57253             type uint16 {
57254               tailf:info "<1300-1999>;;Standard IP access list (expanded range)";
57255               range "1300..1999";
57256             }
57257           }
57258         }
57259       }
57260       leaf authenticate {
57261         tailf:info "Authenticate time sources";
57262         description
57263           "Authenticate time sources";
57264         type empty;
57265       }
57266       list authentication-key {
57267         tailf:info "Authentication key for trusted time sources";
57268         description
57269           "Authentication key for trusted time sources";
57270         tailf:cli-suppress-mode;
57271         tailf:cli-compact-syntax;
57272         tailf:cli-sequence-commands;
57273         key "number";
57274         leaf number {
57275           type uint32 {
57276             tailf:info "<1-4294967295>;;Key number";
57277           }
57278         }
57279         leaf md5 {
57280           tailf:info "MD5 authentication";
57281           description
57282             "MD5 authentication";
57283           type string {
57284             tailf:info "WORD;;Authentication key";
57285           }
57286         }
57287         leaf encryption-type {
57288           tailf:cli-drop-node-name;
57289           tailf:cli-optional-in-sequence;
57290           type uint32 {
57291             tailf:info "<0-4294967295>;;Authentication key encryption type";
57292           }
57293         }
57294       }
57295       leaf clock-period {
57296         tailf:info "Length of hardware clock tick";
57297         description
57298           "Length of hardware clock tick";
57299         type uint32;
57300       }
57301       container server {
57302         tailf:info "Configure NTP server";
57303         description
57304           "Configure NTP server";
57305         uses ntp-server-grouping;
57306         list vrf {
57307           tailf:info "VPN Routing/Forwarding Information";
57308           description
57309             "VPN Routing/Forwarding Information";
57310           tailf:cli-suppress-mode;
57311           tailf:cli-delete-when-empty;
57312           tailf:cli-compact-syntax;
57313           tailf:cli-reset-container;
57314           tailf:cli-incomplete-command;
57315           tailf:cli-diff-dependency "/ios:native/vrf/definition";
57316           tailf:cli-diff-dependency "/ios:native/ip/vrf";
57317           key "name";
57318           leaf name {
57319             type string {
57320               tailf:info "WORD;;VPN Routing/Forwarding instance name";
57321             }
57322           }
57323           uses ntp-server-grouping;
57324         }
57325       }
57326       container source {
57327         tailf:info "Configure interface for source address";
57328         description
57329           "Configure interface for source address";
57330         uses interface-grouping;
57331       }
57332       list trusted-key {
57333         tailf:info "Key numbers for trusted time sources";
57334         description
57335           "Key numbers for trusted time sources";
57336         key "number";
57337         leaf number {
57338           type uint16 {
57339             tailf:info "<1-65535>;;Key number";
57340           }
57341         }
57342       }
57343       leaf update-calendar {
57344         tailf:info "Periodically update calendar with NTP time";
57345         description
57346           "Periodically update calendar with NTP time";
57347         type empty;
57348       }
57349     }
57350     container mac-address-table {
57351       tailf:info "Configure the MAC address table";
57352       description
57353         "Configure the MAC address table";
57354       container evc-xconnect {
57355         tailf:info "All ethernet virtual connections xconnect";
57356         description
57357           "All ethernet virtual connections xconnect";
57358         leaf l2pt-forward-all {
57359           tailf:info "Layer 2 Protocol Forward All";
57360           description
57361             "Layer 2 Protocol Forward All";
57362           type empty;
57363         }
57364       }
57365       container limit {
57366         tailf:info "Enter parameters for mac limit feature";
57367         description
57368           "Enter parameters for mac limit feature";
57369         list bdomain {
57370           tailf:info "bdomain number for  mac limit feature";
57371           description
57372             "bdomain number for  mac limit feature";
57373           tailf:cli-suppress-mode;
57374           tailf:cli-delete-when-empty;
57375           key "number";
57376           leaf number {
57377             type uint16 {
57378               tailf:info "<1-4095>;;Enter bdomain number";
57379               range "1..4095";
57380             }
57381           }
57382           leaf action {
57383             tailf:info "Enter action";
57384             description
57385               "Enter action";
57386             tailf:cli-full-command;
57387             type enumeration {
57388               enum "warning";
57389               enum "limit";
57390               enum "shutdown";
57391             }
57392           }
57393           leaf maximum {
57394             tailf:info "Enter max allowed entries";
57395             description
57396               "Enter max allowed entries";
57397             type uint32 {
57398               tailf:info "<0-16000>  Max allowed entries";
57399               range "0..16000";
57400             }
57401           }
57402         }
57403       }
57404       container learning {
57405         tailf:info "Enable a MAC table learning feature";
57406         description
57407           "Enable a MAC table learning feature";
57408         list vlan {
57409           tailf:info "Layer 2 table learning per VLAN";
57410           description
57411             "Layer 2 table learning per VLAN";
57412           tailf:cli-suppress-mode;
57413           tailf:cli-delete-when-empty;
57414           key "id";
57415           leaf id {
57416             type uint16 {
57417               tailf:info "<1-4094>;;VLAN ID";
57418               range "1..4094";
57419             }
57420           }
57421           leaf module {
57422             tailf:info "Layer 2 table learning per VLAN per module";
57423             description
57424               "Layer 2 table learning per VLAN per module";
57425             type uint8 {
57426               tailf:info "<1-9>;;Module";
57427               range "1..9";
57428             }
57429           }
57430         }
57431       }
57432     }
57433     container privilege {
57434       tailf:info "Command privilege parameters";
57435       description
57436         "Command privilege parameters";
57437       container exec {
57438         tailf:info "Exec mode";
57439         description
57440           "Exec mode";
57441         list level {
57442           tailf:info "Set privilege level of command";
57443           description
57444             "Set privilege level of command";
57445           tailf:cli-suppress-mode;
57446           tailf:cli-delete-when-empty;
57447           tailf:cli-compact-syntax;
57448           tailf:cli-incomplete-command;
57449           tailf:cli-no-key-completion;
57450           key "privilege";
57451           leaf privilege {
57452             tailf:cli-incomplete-command;
57453             tailf:cli-incomplete-no;
57454             tailf:cli-suppress-range;
57455             type uint8 {
57456               tailf:info "<0-15>;;Privilege level";
57457             }
57458           }
57459           list command-list {
57460             tailf:cli-suppress-mode;
57461             tailf:cli-delete-when-empty;
57462             tailf:cli-drop-node-name;
57463             tailf:cli-compact-syntax;
57464             tailf:cli-show-long-obu-diffs;
57465             tailf:cli-no-key-completion;
57466             tailf:cli-suppress-key-abbreviation;
57467             tailf:cli-no-match-completion;
57468             ordered-by user;
57469             key "command";
57470             leaf command {
57471               tailf:cli-drop-node-name;
57472               tailf:cli-multi-word-key;
57473               type string {
57474                 tailf:info "LINE;;Initial keywords of the command to modify";
57475                 pattern "(show.*)|(write.*)";
57476               }
57477             }
57478           }
57479         }
57480       }
57481     }
57482     container redundancy {
57483       tailf:info "Enter redundancy mode";
57484       description
57485         "Enter redundancy mode";
57486       tailf:cli-add-mode;
57487       tailf:cli-mode-name "config-red";
57488       leaf maintenance-mode {
57489         tailf:info "Enable/Disable maintenance mode ";
57490         description
57491           "Enable/Disable maintenance mode ";
57492         type empty;
57493       }
57494       container main-cpu {
57495         tailf:info "Enter main-cpu mode";
57496         description
57497           "Enter main-cpu mode";
57498         tailf:cli-add-mode;
57499         container auto-sync {
57500           leaf running-config {
57501             type empty;
57502           }
57503           leaf config-register {
57504             type empty;
57505           }
57506           leaf bootvar {
57507             type empty;
57508           }
57509           leaf standard {
57510             type empty;
57511           }
57512         }
57513       }
57514       leaf mode {
57515         tailf:info "redundancy mode for this chassis";
57516         description
57517           "redundancy mode for this chassis";
57518         type enumeration {
57519           enum "rpr" {
57520             tailf:info "Route Processor Redundancy";
57521           }
57522           enum "rpr-plus" {
57523             tailf:info "Route Processor Redundancy Plus";
57524           }
57525           enum "sso" {
57526             tailf:info "Stateful Switchover";
57527           }
57528           enum "none" {
57529             tailf:info "None";
57530           }
57531         }
57532       }
57533       container interchassis {
57534         tailf:info "Enter interchassis mode";
57535         description
57536           "Enter interchassis mode";
57537         list group {
57538           tailf:info "Enter the redundancy group number";
57539           description
57540             "Enter the redundancy group number";
57541           tailf:cli-mode-name "config-r-ic";
57542           key "group-number";
57543           leaf group-number {
57544             type uint64 {
57545               tailf:info "<1-4294967295>  The redundancy group number";
57546               range "1..4294967295";
57547             }
57548           }
57549           container monitor {
57550             tailf:info "define the peer monitoring method";
57551             description
57552               "define the peer monitoring method";
57553             tailf:cli-compact-syntax;
57554             tailf:cli-sequence-commands {
57555               tailf:cli-reset-siblings;
57556             }
57557             leaf peer {
57558               tailf:info "the peer method";
57559               description
57560                 "the peer method";
57561               type empty;
57562             }
57563             leaf bfd {
57564               tailf:info "set peer monitoring method to bfd";
57565               description
57566                 "set peer monitoring method to bfd";
57567               type empty;
57568             }
57569           }
57570           container member {
57571             tailf:info "specify a redundancy group member";
57572             description
57573               "specify a redundancy group member";
57574             leaf ip {
57575               tailf:info "specify the redundancy group member using an ip address";
57576               description
57577                 "specify the redundancy group member using an ip address";
57578               type inet:ipv4-address {
57579                 tailf:info "A.B.C.D;;IP address";
57580               }
57581             }
57582           }
57583           container backbone {
57584             tailf:info "specify a redundancy group member";
57585             description
57586               "specify a redundancy group member";
57587             container interface {
57588               uses interface-grouping;
57589             }
57590           }
57591         }
57592       }
57593     }
57594     container scheduler {
57595       tailf:info "Scheduler parameters";
57596       description
57597         "Scheduler parameters";
57598       container allocate {
57599         tailf:cli-sequence-commands;
57600         tailf:cli-compact-syntax;
57601         tailf:info "Guarantee CPU time for processes";
57602         description
57603           "Guarantee CPU time for processes";
57604         leaf interrupt-time {
57605           tailf:cli-drop-node-name;
57606           tailf:cli-incomplete-command;
57607           type uint16 {
57608             tailf:info "<400-60000>;;Microseconds handling network interrupts";
57609             range "400..60000";
57610           }
57611         }
57612         leaf process-time {
57613           tailf:cli-drop-node-name;
57614           type uint16 {
57615             tailf:info "<100-4000>;;Microseconds running processes";
57616             range "100..4000";
57617           }
57618         }
57619       }
57620     }
57621     container spanning-tree {
57622       tailf:info "Spanning Tree Subsystem";
57623       description
57624         "Spanning Tree Subsystem";
57625       container bridge {
57626         leaf priority {
57627           type uint8;
57628         }
57629         leaf ID {
57630           type string;
57631         }
57632       }
57633       container etherchannel {
57634         tailf:info "Spanning tree etherchannel specific configuration";
57635         description
57636           "Spanning tree etherchannel specific configuration";
57637         container guard {
57638           tailf:info "Configure guard features for etherchannel";
57639           description
57640             "Configure guard features for etherchannel";
57641           leaf misconfig {
57642             tailf:info "Enable guard to protect against etherchannel misconfiguration";
57643             description
57644               "Enable guard to protect against etherchannel misconfiguration";
57645             type empty;
57646           }
57647         }
57648       }
57649       container extend {
57650         tailf:info "Spanning Tree 802.1t extensions";
57651         description
57652           "Spanning Tree 802.1t extensions";
57653         leaf system-id {
57654           tailf:info "Extend system-id into priority portion of the bridge id (PVST & Rapid PVST only)";
57655           description
57656             "Extend system-id into priority portion of the bridge id (PVST & Rapid PVST only)";
57657           type empty;
57658         }
57659       }
57660       container loopguard {
57661         tailf:info "Spanning tree loopguard options";
57662         description
57663           "Spanning tree loopguard options";
57664         leaf default {
57665           tailf:info "Enable loopguard by default on all ports";
57666           description
57667             "Enable loopguard by default on all ports";
57668           type empty;
57669         }
57670       }
57671       container mst {
57672         tailf:info "Multiple spanning tree configuration";
57673         description
57674           "Multiple spanning tree configuration";
57675         list instance-range {
57676           tailf:cli-suppress-mode;
57677           tailf:cli-delete-when-empty;
57678           tailf:cli-drop-node-name;
57679           tailf:cli-compact-syntax;
57680           tailf:cli-range-list-syntax;
57681           key "id";
57682           leaf id {
57683             type union {
57684               type uint16;
57685               type string;
57686             }
57687           }
57688           leaf priority {
57689             tailf:info "Set the bridge priority for the spanning tree";
57690             description
57691               "Set the bridge priority for the spanning tree";
57692             type uint16 {
57693               tailf:info "<0-61440>;;bridge priority in increments of 4096";
57694               range "0..61440";
57695             }
57696           }
57697         }
57698         container configuration {
57699           tailf:info "Enter MST configuration submode";
57700           description
57701             "Enter MST configuration submode";
57702           tailf:cli-add-mode;
57703           tailf:cli-mode-name "config-mst";
57704           leaf name {
57705             tailf:info "Set configuration name";
57706             description
57707               "Set configuration name";
57708             type string {
57709               tailf:info "WORD;;Configuration name";
57710             }
57711           }
57712           list instance {
57713             tailf:info "Map vlans to an MST instance";
57714             description
57715               "Map vlans to an MST instance";
57716             tailf:cli-suppress-mode;
57717             tailf:cli-delete-when-empty;
57718             key "id";
57719             leaf id {
57720               type uint16 {
57721                 tailf:info "<0-4094>;;MST instance id";
57722                 range "0..4094";
57723               }
57724             }
57725             leaf-list vlan {
57726               tailf:info "Range of vlans to add to the instance mapping";
57727               description
57728                 "Range of vlans to add to the instance mapping";
57729               tailf:cli-range-list-syntax;
57730               type union {
57731                 type uint16 {
57732                   tailf:info "LINE;;vlan range ex: 1-65, 72, 300 -200";
57733                 }
57734                 type string;
57735               }
57736             }
57737           }
57738           leaf revision {
57739             tailf:info "Set configuration revision number";
57740             description
57741               "Set configuration revision number";
57742             type uint16 {
57743               tailf:info "<0-65535>;;Configuration revision number";
57744             }
57745           }
57746         }
57747       }
57748       container optimize {
57749         container bpdu {
57750           leaf transmission {
57751             tailf:cli-boolean-no;
57752             tailf:cli-show-no;
57753             type boolean;
57754           }
57755         }
57756       }
57757       container portfast {
57758         tailf:info "Spanning tree portfast options";
57759         description
57760           "Spanning tree portfast options";
57761         tailf:cli-compact-syntax;
57762         tailf:cli-sequence-commands {
57763           tailf:cli-reset-siblings;
57764         }
57765         leaf bdpu {
57766           tailf:cli-drop-node-name;
57767           tailf:cli-optional-in-sequence;
57768           type enumeration {
57769             enum "bpdufilter" {
57770               tailf:info "Enable portfast bdpu filter on this switch";
57771             }
57772             enum "bpduguard" {
57773               tailf:info "Enable portfast bpdu guard on this switch";
57774             }
57775           }
57776         }
57777         leaf default {
57778           tailf:info "Enable portfast by default on all access ports";
57779           description
57780             "Enable portfast by default on all access ports";
57781           type empty;
57782         }
57783       }
57784       container uplinkfast {
57785         tailf:info "Enable UplinkFast Feature";
57786         description
57787           "Enable UplinkFast Feature";
57788         presence "true";
57789         leaf max-update-rate {
57790           tailf:info "Rate at which station address updates are sent";
57791           description
57792             "Rate at which station address updates are sent";
57793           type uint32 {
57794             tailf:info "<0-32000>;;Maximum number of update packets per second";
57795             range "0..32000";
57796           }
57797         }
57798       }
57799       leaf mode {
57800         tailf:info "Spanning tree operating mode";
57801         description
57802           "Spanning tree operating mode";
57803         tailf:cli-show-with-default;
57804         tailf:cli-full-command;
57805         type enumeration {
57806           enum "mst" {
57807             tailf:info "Multiple spanning tree mode";
57808           }
57809           enum "pvst" {
57810             tailf:info "Per-Vlan spanning tree mode";
57811           }
57812           enum "rapid-pvst" {
57813             tailf:info "Per-Vlan rapid spanning tree mode";
57814           }
57815         }
57816       }
57817       container vlans-max-age {
57818         tailf:cli-drop-node-name;
57819         list vlan {
57820           tailf:info "VLAN Switch Spanning Tree";
57821           description
57822             "VLAN Switch Spanning Tree";
57823           tailf:cli-range-list-syntax;
57824           tailf:cli-suppress-mode;
57825           tailf:cli-delete-when-empty;
57826           key "id";
57827           leaf id {
57828             type union {
57829               type uint16 {
57830                 tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
57831                 range "1..4096";
57832               }
57833               type string;
57834             }
57835           }
57836           leaf max-age {
57837             tailf:info "Set the max age interval for the spanning tree";
57838             description
57839               "Set the max age interval for the spanning tree";
57840             type uint8 {
57841               tailf:info "<6-40>;;maximum number of seconds the information in a BPDU is valid";
57842               range "6..40";
57843             }
57844           }
57845         }
57846       }
57847       container vlans-forward-time {
57848         tailf:cli-drop-node-name;
57849         list vlan {
57850           tailf:info "VLAN Switch Spanning Tree";
57851           description
57852             "VLAN Switch Spanning Tree";
57853           tailf:cli-range-list-syntax;
57854           tailf:cli-suppress-mode;
57855           tailf:cli-delete-when-empty;
57856           key "id";
57857           leaf id {
57858             type union {
57859               type uint16 {
57860                 tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
57861                 range "1..4096";
57862               }
57863               type string;
57864             }
57865           }
57866           leaf forward-time {
57867             tailf:info "Set the forward delay for the spanning tree";
57868             description
57869               "Set the forward delay for the spanning tree";
57870             type uint8 {
57871               tailf:info "<4-30>;;number of seconds for the forward delay timer";
57872               range "4..30";
57873             }
57874           }
57875         }
57876       }
57877       container vlans-hello-time {
57878         tailf:cli-drop-node-name;
57879         list vlan {
57880           tailf:info "VLAN Switch Spanning Tree";
57881           description
57882             "VLAN Switch Spanning Tree";
57883           tailf:cli-range-list-syntax;
57884           tailf:cli-suppress-mode;
57885           tailf:cli-delete-when-empty;
57886           key "id";
57887           leaf id {
57888             type union {
57889               type uint16 {
57890                 tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
57891                 range "1..4096";
57892               }
57893               type string;
57894             }
57895           }
57896           leaf hello-time {
57897             tailf:info "Set the hello interval for the spanning tree";
57898             description
57899               "Set the hello interval for the spanning tree";
57900             type uint8 {
57901               tailf:info "<1-10>;;number of seconds between generation of config BPDUs";
57902               range "1..10";
57903             }
57904           }
57905         }
57906       }
57907       container vlans-priority {
57908         tailf:cli-drop-node-name;
57909         list vlan {
57910           tailf:info "VLAN Switch Spanning Tree";
57911           description
57912             "VLAN Switch Spanning Tree";
57913           tailf:cli-range-list-syntax;
57914           tailf:cli-suppress-mode;
57915           tailf:cli-delete-when-empty;
57916           key "id";
57917           leaf id {
57918             type union {
57919               type uint16 {
57920                 tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
57921                 range "1..4096";
57922               }
57923               type string;
57924             }
57925           }
57926           leaf priority {
57927             tailf:info "Set the bridge priority for the spanning tree";
57928             description
57929               "Set the bridge priority for the spanning tree";
57930             type uint16 {
57931               tailf:info "<0-61440>;;bridge priority in increments of 4096";
57932               range "0..61440";
57933             }
57934           }
57935         }
57936       }
57937       container vlans-root {
57938         tailf:cli-drop-node-name;
57939         list vlan {
57940           tailf:info "VLAN Switch Spanning Tree";
57941           description
57942             "VLAN Switch Spanning Tree";
57943           tailf:cli-range-list-syntax;
57944           tailf:cli-suppress-mode;
57945           tailf:cli-delete-when-empty;
57946           key "id";
57947           leaf id {
57948             type union {
57949               type uint16 {
57950                 tailf:info "WORD;;vlan range, example: 1,3-5,7,9-11";
57951                 range "1..4096";
57952               }
57953               type string;
57954             }
57955           }
57956           container root {
57957             tailf:info "Configure switch as root";
57958             description
57959               "Configure switch as root";
57960             container primary {
57961               tailf:info "Configure this switch as primary root for this spanning tree";
57962               description
57963                 "Configure this switch as primary root for this spanning tree";
57964               tailf:cli-compact-syntax;
57965               tailf:cli-sequence-commands {
57966                 tailf:cli-reset-siblings;
57967               }
57968               leaf diameter {
57969                 tailf:info "Network diameter of this spanning tree";
57970                 description
57971                   "Network diameter of this spanning tree";
57972                 type uint8 {
57973                   tailf:info "<2-7>;;Maximum number of bridges between any two end nodes";
57974                   range "2..7";
57975                 }
57976               }
57977               leaf hello-time {
57978                 tailf:info "Hello interval for this spanning tree";
57979                 description
57980                   "Hello interval for this spanning tree";
57981                 type uint8 {
57982                   tailf:info "<1-10>;;Hello interval in seconds";
57983                   range "1..10";
57984                 }
57985               }
57986             }
57987             container secondary {
57988               tailf:info "Configure switch as secondary root";
57989               description
57990                 "Configure switch as secondary root";
57991               tailf:cli-compact-syntax;
57992               tailf:cli-sequence-commands {
57993                 tailf:cli-reset-siblings;
57994               }
57995               leaf diameter {
57996                 tailf:info "Network diameter of this spanning tree";
57997                 description
57998                   "Network diameter of this spanning tree";
57999                 type uint8 {
58000                   tailf:info "<2-7>;;Maximum number of bridges between any two end nodes";
58001                   range "2..7";
58002                 }
58003               }
58004               leaf hello-time {
58005                 tailf:info "Hello interval for this spanning tree";
58006                 description
58007                   "Hello interval for this spanning tree";
58008                 type uint8 {
58009                   tailf:info "<1-10>;;Hello interval in seconds";
58010                   range "1..10";
58011                 }
58012               }
58013             }
58014           }
58015         }
58016       }
58017     }
58018     container subscriber {
58019       tailf:info "Subscriber configuration";
58020       description
58021         "Subscriber configuration";
58022       leaf templating {
58023         tailf:info "Configure subscriber templating";
58024         description
58025           "Configure subscriber templating";
58026         type empty;
58027       }
58028     }
58029     container track {
58030       tailf:info "Object tracking configuration commands";
58031       description
58032         "Object tracking configuration commands";
58033       list tracked-object {
58034         tailf:cli-drop-node-name;
58035         tailf:cli-mode-name "config-track";
58036         key "object-number";
58037         leaf object-number {
58038           type uint32 {
58039             tailf:info "<1-1000>;;Tracked object";
58040             range "1..1000";
58041           }
58042         }
58043         container interface {
58044           tailf:info "Select an interface to track";
58045           description
58046             "Select an interface to track";
58047           tailf:cli-hide-in-submode;
58048           tailf:cli-compact-syntax;
58049           tailf:cli-sequence-commands;
58050           leaf name {
58051             tailf:cli-drop-node-name;
58052             type string {
58053               tailf:info "WORD;;interface name";
58054             }
58055           }
58056           leaf protocol {
58057             tailf:cli-drop-node-name;
58058             type enumeration {
58059               enum "ip" {
58060                 tailf:info "IP parameters";
58061               }
58062               enum "ipv6" {
58063                 tailf:info "IPv6 parameters";
58064               }
58065               enum "line-protocol" {
58066                 tailf:info "Track interface line-protocol";
58067               }
58068             }
58069           }
58070           leaf routing {
58071             tailf:info "Track interface IPv6 routing capability";
58072             description
58073               "Track interface IPv6 routing capability";
58074             when "../protocol = 'ip' or ../protocol = 'ipv6'";
58075             tailf:cli-optional-in-sequence;
58076             type empty;
58077           }
58078         }
58079         container ip {
58080           tailf:info "IP protocol";
58081           description
58082             "IP protocol";
58083           tailf:cli-hide-in-submode;
58084           container route {
58085             tailf:info "IP route";
58086             tailf:cli-compact-syntax;
58087             tailf:cli-sequence-commands;
58088             leaf address {
58089               type inet:ipv4-address {
58090                 tailf:info "A.B.C.D;;{/nn || A.B.C.D}  Prefix and mask";
58091               }
58092             }
58093             leaf mask {
58094               tailf:cli-drop-node-name;
58095               type inet:ipv4-address {
58096                 tailf:info "A.B.C.D;;IP prefix mask";
58097               }
58098             }
58099             leaf reachability {
58100               tailf:info "Route reachability state";
58101               description
58102                 "Route reachability state";
58103               tailf:cli-optional-in-sequence;
58104               tailf:cli-full-command;
58105               type empty;
58106             }
58107             leaf metric {
58108               tailf:info "Route metric";
58109               description
58110                 "Route metric";
58111               tailf:cli-optional-in-sequence;
58112               tailf:cli-full-command;
58113               type enumeration {
58114                 enum "threshold" {
58115                   tailf:info "Route metric threshold";
58116                 }
58117               }
58118             }
58119           }
58120           container sla {
58121             tailf:info "IP Service Level Agreement";
58122             description
58123               "IP Service Level Agreement";
58124             tailf:cli-compact-syntax;
58125             tailf:cli-sequence-commands;
58126             leaf number {
58127               description
58128                 "Entry number";
58129               tailf:cli-drop-node-name;
58130               type uint32 {
58131                 tailf:info "<1-2147483647>;;Entry number";
58132               }
58133             }
58134             leaf reachability {
58135               tailf:info "Reachability";
58136               description
58137                 "Reachability";
58138               tailf:cli-optional-in-sequence;
58139               tailf:cli-full-command;
58140               type empty;
58141             }
58142             leaf state {
58143               tailf:info "Return code state";
58144               description
58145                 "Return code state";
58146               tailf:cli-optional-in-sequence;
58147               tailf:cli-full-command;
58148               type empty;
58149             }
58150           }
58151         }
58152         container ipv6 {
58153           tailf:info "IPv6 protocol";
58154           description
58155             "IPv6 protocol";
58156           tailf:cli-hide-in-submode;
58157           container route {
58158             tailf:info "IPv6 route";
58159             description
58160               "IPv6 route";
58161             tailf:cli-compact-syntax;
58162             tailf:cli-sequence-commands;
58163             leaf address {
58164               tailf:cli-drop-node-name;
58165               type inet:ipv6-prefix {
58166                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 address and prefix";
58167               }
58168             }
58169             leaf reachability {
58170               tailf:info "Route reachability state";
58171               description
58172                 "Route reachability state";
58173               tailf:cli-optional-in-sequence;
58174               tailf:cli-full-command;
58175               type empty;
58176             }
58177             leaf metric {
58178               tailf:info "Route metric";
58179               description
58180                 "Route metric";
58181               tailf:cli-full-command;
58182               type enumeration {
58183                 enum "threshold" {
58184                   tailf:info "Route metric threshold";
58185                 }
58186               }
58187             }
58188           }
58189         }
58190         container list {
58191           tailf:info "Group objects in a list";
58192           description
58193             "Group objects in a list";
58194           tailf:cli-hide-in-submode;
58195           leaf boolean {
58196             tailf:info "List state based on a boolean calculation on objects";
58197             description
58198               "List state based on a boolean calculation on objects";
58199             tailf:cli-full-command;
58200             type enumeration {
58201               enum "and" {
58202                 tailf:info "Boolean AND operation on list";
58203               }
58204               enum "or" {
58205                 tailf:info "Boolean OR operation on list";
58206               }
58207             }
58208           }
58209           leaf threshold {
58210             tailf:info "List state based on a threshold of UP and DOWN objects";
58211             description
58212               "List state based on a threshold of UP and DOWN objects";
58213             tailf:cli-full-command;
58214             type enumeration {
58215               enum "percentage" {
58216                 tailf:info "Thresholds described as a percentage of total";
58217               }
58218               enum "weight" {
58219                 tailf:info "Thresholds described by weight values";
58220               }
58221             }
58222           }
58223         }
58224         leaf stub-object {
58225           tailf:info "Stub tracking object";
58226           description
58227             "Stub tracking object";
58228           tailf:cli-hide-in-submode;
58229           tailf:cli-full-command;
58230           type empty;
58231         }
58232         container default {
58233           tailf:info "Set a command to its defaults";
58234           description
58235             "Set a command to its defaults";
58236           uses default-track-grouping;
58237         }
58238         uses track-grouping;
58239       }
58240       container resolution {
58241         tailf:info "Tracking resolution parameters";
58242         description
58243           "Tracking resolution parameters";
58244         container ip {
58245           tailf:info "IP protocol";
58246           description
58247             "IP protocol";
58248           container route {
58249             tailf:info "Route metric resolution";
58250             description
58251               "Route metric resolution";
58252             leaf bgp {
58253               tailf:info "BGP route metric resolution";
58254               description
58255                 "BGP route metric resolution";
58256               tailf:cli-full-command;
58257               type uint32 {
58258                 tailf:info "<256-40000000>;;Resolution value";
58259                 range "256..40000000";
58260               }
58261             }
58262             leaf eigrp {
58263               tailf:info "EIGRP route metric resolution";
58264               description
58265                 "EIGRP route metric resolution";
58266               tailf:cli-full-command;
58267               type uint32 {
58268                 tailf:info "<256-40000000>;;Resolution value";
58269                 range "256..40000000";
58270               }
58271             }
58272             leaf isis {
58273               tailf:info "ISIS route metric resolution";
58274               description
58275                 "ISIS route metric resolution";
58276               tailf:cli-full-command;
58277               type uint32 {
58278                 tailf:info "<1-1000>;;Resolution value";
58279                 range "1..1000";
58280               }
58281             }
58282             leaf ospf {
58283               tailf:info "OSPF route metric resolution";
58284               description
58285                 "OSPF route metric resolution";
58286               tailf:cli-full-command;
58287               type uint32 {
58288                 tailf:info "<1-1562>;;Resolution value";
58289                 range "1..1562";
58290               }
58291             }
58292             leaf static {
58293               tailf:info "Static route metric resolution";
58294               description
58295                 "Static route metric resolution";
58296               tailf:cli-full-command;
58297               type uint32 {
58298                 tailf:info "<1-100000>;;Resolution value";
58299                 range "1..100000";
58300               }
58301             }
58302           }
58303         }
58304       }
58305       container timer {
58306         tailf:info "Polling interval timers";
58307         description
58308           "Polling interval timers";
58309         container interface {
58310           tailf:info "Interface polling timer";
58311           description
58312             "Interface polling timer";
58313           uses track-timer-grouping;
58314         }
58315         container ip {
58316           tailf:info "IP protocol";
58317           description
58318             "IP protocol";
58319           container route {
58320             tailf:info "IP route polling timer";
58321             description
58322               "IP route polling timer";
58323             uses track-timer-grouping;
58324           }
58325           container sla {
58326             tailf:info "IP SLA polling timer";
58327             description
58328               "IP SLA polling timer";
58329             uses track-timer-grouping;
58330           }
58331         }
58332         container ipv6 {
58333           tailf:info "IPv6 protocol";
58334           description
58335             "IPv6 protocol";
58336           container route {
58337             tailf:info "IPv6 route polling timer";
58338             description
58339               "IPv6 route polling timer";
58340             uses track-timer-grouping;
58341           }
58342         }
58343         container list {
58344           tailf:info "Boolean list polling timer";
58345           description
58346             "Boolean list polling timer";
58347           uses track-timer-grouping;
58348         }
58349         container stub-object {
58350           tailf:info "EEM stub polling timer";
58351           description
58352             "EEM stub polling timer";
58353           uses track-timer-grouping;
58354         }
58355       }
58356     }
58357     container dot1x {
58358       tailf:info "IEEE 802.1X Global Configuration Commands";
58359       description
58360         "IEEE 802.1X Global Configuration Commands";
58361       container critical {
58362         tailf:info "Set 802.1x Critical Authentication parameters";
58363         description
58364           "Set 802.1x Critical Authentication parameters";
58365         leaf eapol {
58366           tailf:info "Send EAPOL-Success on successful Critical Authentication";
58367           description
58368             "Send EAPOL-Success on successful Critical Authentication";
58369           type empty;
58370         }
58371         container recovery {
58372           tailf:info "Set 802.1x Critical Authentication Recovery parameters";
58373           description
58374             "Set 802.1x Critical Authentication Recovery parameters";
58375           leaf delay {
58376             tailf:info "Set 802.1x Critical Authentication Recovery Delay period";
58377             description
58378               "Set 802.1x Critical Authentication Recovery Delay period";
58379             type uint16 {
58380               tailf:info "<1-10000>;;802.1x Critical Authentication Recovery delay in milliseconds";
58381               range "1..10000";
58382             }
58383           }
58384         }
58385       }
58386       leaf system-auth-control {
58387         tailf:info "Enable or Disable SysAuthControl";
58388         description
58389           "Enable or Disable SysAuthControl";
58390         type empty;
58391       }
58392     }
58393     container power {
58394       tailf:info "Power configure";
58395       description
58396         "Power configure";
58397       tailf:cli-compact-syntax;
58398       tailf:cli-sequence-commands;
58399       leaf redundancy-mode {
58400         tailf:info "set power supply redundancy mode";
58401         description
58402           "set power supply redundancy mode";
58403         type enumeration {
58404           enum "combined" {
58405             tailf:info "combine power supply outputs (no redundancy)";
58406           }
58407           enum "redundant" {
58408             tailf:info "either power supply can operate system (redundancy)";
58409           }
58410         }
58411       }
58412       leaf max-min {
58413         tailf:cli-drop-node-name;
58414         type enumeration {
58415           enum "max";
58416         }
58417       }
58418       leaf inputs {
58419         type uint8;
58420       }
58421     }
58422     list parameter-map {
58423       tailf:info "parameter map";
58424       description
58425         "parameter map";
58426       tailf:cli-mode-name "config-profile";
58427       key "name";
58428       leaf name {
58429         type string {
58430           tailf:info "WORD;;parameter-map name";
58431         }
58432       }
58433       leaf type {
58434         tailf:info "parameter map type";
58435         description
58436           "parameter map type";
58437         tailf:cli-prefix-key;
58438         type enumeration {
58439           enum "cws-tunnel" {
58440             tailf:info "Cloud Web Security tunnel mode";
58441           }
58442           enum "inspect" {
58443             tailf:info "inspect parameter-map";
58444           }
58445           enum "inspect-global" {
58446             tailf:info "inspect global parameter-map";
58447           }
58448           enum "inspect-vrf" {
58449             tailf:info "inspect vrf parameter-map";
58450           }
58451           enum "inspect-zone" {
58452             tailf:info "inspect zone parameter-map";
58453           }
58454           enum "regex" {
58455             tailf:info "egex parameter-map";
58456           }
58457         }
58458       }
58459       container aggressive-aging {
58460         tailf:info "Aggressive Aging parameters";
58461         description
58462           "Aggressive Aging parameters";
58463         when "../type = 'inspect-global'";
58464         container high {
58465           tailf:info "Specify the high watermark for aggressive-aging";
58466           description
58467             "Specify the high watermark for aggressive-aging";
58468           choice absolute-percent {
58469             case absolute-case {
58470               container absolute {
58471                 tailf:cli-drop-node-name;
58472                 tailf:cli-sequence-commands;
58473                 tailf:cli-compact-syntax;
58474                 leaf value {
58475                   tailf:cli-drop-node-name;
58476                   type uint64 {
58477                     tailf:info "<1-4294967295>  High watermark in absolute values";
58478                     range "1..4294967295";
58479                   }
58480                 }
58481                 leaf low {
58482                   tailf:info "Specify the low watermark for aggressive-aging";
58483                   description
58484                     "Specify the low watermark for aggressive-aging";
58485                   type uint64 {
58486                     tailf:info "<1-4294967295>  Low watermark in absolute values";
58487                     range "1..4294967295";
58488                   }
58489                 }
58490               }
58491             }
58492             case percent-case {
58493               container percent {
58494                 tailf:info "high watermark in percentage of max-incomplete value";
58495                 description
58496                   "high watermark in percentage of max-incomplete value";
58497                 tailf:cli-sequence-commands;
58498                 tailf:cli-compact-syntax;
58499                 leaf value {
58500                   tailf:cli-drop-node-name;
58501                   type uint8 {
58502                     tailf:info "<1-100>;;High watermark in percentage";
58503                     range "1..100";
58504                   }
58505                 }
58506                 leaf low_percent {
58507                   tailf:alt-name "low percent";
58508                   tailf:info "Specify the low watermark for aggressive-aging in percents";
58509                   description
58510                     "Specify the low watermark for aggressive-aging in percents";
58511                   type uint8 {
58512                     tailf:info "<1-100>;;Low watermark in percentage";
58513                     range "1..100";
58514                   }
58515                 }
58516               }
58517             }
58518           }
58519         }
58520       }
58521       leaf alert {
58522         tailf:info "Turn on/off alert";
58523         description
58524           "Turn on/off alert";
58525         type enumeration {
58526           enum "off" {
58527             tailf:info "Turn off alert";
58528           }
58529           enum "on" {
58530             tailf:info "Turn on alert";
58531           }
58532         }
58533       }
58534       leaf application-inspect {
58535         tailf:info "Turn on application inspection";
58536         description
58537           "Turn on application inspection";
58538         type enumeration {
58539           enum "all" {
58540             tailf:info "all supported L7 protocols";
58541           }
58542           enum "dns" {
58543             tailf:info "Domain Name Server";
58544           }
58545           enum "exec" {
58546             tailf:info "Remote Process Execution";
58547           }
58548           enum "ftp" {
58549             tailf:info "File Transfer Protocol";
58550           }
58551           enum "gtp" {
58552             tailf:info "GPRS Tunneling Protocol";
58553           }
58554           enum "h323" {
58555             tailf:info "H.323 Protocol (e.g, MS NetMeeting)";
58556           }
58557           enum "http" {
58558             tailf:info "Hypertext Transfer Protocol";
58559           }
58560           enum "imap" {
58561             tailf:info "Internet Message Access Protocol";
58562           }
58563           enum "login" {
58564             tailf:info "Remote login";
58565           }
58566           enum "msrpc" {
58567             tailf:info "Microsoft Remote Procedure Call";
58568           }
58569           enum "netbios" {
58570             tailf:info "NETBIOS";
58571           }
58572           enum "pop3" {
58573             tailf:info "Post Office Protocol - Version 3";
58574           }
58575           enum "rtsp" {
58576             tailf:info "Real Time Streaming Protocol";
58577           }
58578           enum "shell" {
58579             tailf:info "shell";
58580           }
58581           enum "sip" {
58582             tailf:info "Session Initiation Protocol";
58583           }
58584           enum "skinny" {
58585             tailf:info "Skinny Client Control Protocol";
58586           }
58587           enum "smtp" {
58588             tailf:info "Simple Mail Transfer Protocol";
58589           }
58590           enum "sunrpc" {
58591             tailf:info "SUN Remote Procedure Call";
58592           }
58593           enum "tftp" {
58594             tailf:info "Trivial File Transfer Protocol";
58595           }
58596         }
58597       }
58598       leaf audit-trail {
58599         tailf:info "Turn on/off audit trail";
58600         description
58601           "Turn on/off audit trail";
58602         when "../type = 'inspect'";
58603         type enumeration {
58604           enum "off" {
58605             tailf:info "Turn off audit trail";
58606           }
58607           enum "on" {
58608             tailf:info "Turn on audit trail";
58609           }
58610         }
58611       }
58612       leaf dns-timeout {
58613         tailf:info "Specify timeout for DNS";
58614         description
58615           "Specify timeout for DNS";
58616         when "../type = 'inspect'";
58617         type uint32 {
58618           tailf:info "<1-2147483>;;Timeout in seconds";
58619           range "1..2147483";
58620         }
58621       }
58622       container icmp {
58623         tailf:info "Config timeout values for icmp";
58624         description
58625           "Config timeout values for icmp";
58626         when "../type = 'inspect'";
58627         leaf idle-time {
58628           tailf:info "Specify timeout for icmp";
58629           description
58630             "Specify timeout for icmp";
58631           type uint32 {
58632             tailf:info "<1-2147483>;;Timeout in seconds";
58633             range "1..2147483";
58634           }
58635         }
58636       }
58637       container lisp {
58638         tailf:info "Turn on LISP options";
58639         description
58640           "Turn on LISP options";
58641         leaf inner-packet-inspection {
58642           tailf:info "inner-packet-inspection";
58643           description
58644             "inner-packet-inspection";
58645           type empty;
58646         }
58647       }
58648       container log {
58649         tailf:info "Configure inspect logging parameters";
58650         description
58651           "Configure inspect logging parameters";
58652         leaf dropped-packets {
58653           tailf:info "Log dropped packets";
58654           description
58655             "Log dropped packets";
58656           type empty;
58657         }
58658         container flow-export {
58659           tailf:info "Configure inspect external logging parameters";
58660           description
58661             "Configure inspect external logging parameters";
58662           container template {
58663             tailf:info "Configure record template parameters";
58664             description
58665               "Configure record template parameters";
58666             leaf timeout-rate {
58667               tailf:info "Rate to resend the template in seconds";
58668               description
58669                 "Rate to resend the template in seconds";
58670               type uint32 {
58671                 tailf:info "<0-65535>;;Rate to resend in seconds";
58672                 range "0..65535";
58673               }
58674             }
58675           }
58676           container v9 {
58677             tailf:info "Netflow version 9";
58678             description
58679               "Netflow version 9";
58680             container udp {
58681               tailf:info "Use UDP to export records";
58682               description
58683                 "Use UDP to export records";
58684               container destination {
58685                 tailf:info "Specify the flow-export destination";
58686                 description
58687                   "Specify the flow-export destination";
58688                 tailf:cli-sequence-commands;
58689                 tailf:cli-compact-syntax;
58690                 leaf dst-ip {
58691                   tailf:cli-drop-node-name;
58692                   type inet:ipv4-address {
58693                     tailf:info "A.B.C.D;;Destination IP address";
58694                   }
58695                 }
58696                 leaf dst-port {
58697                   tailf:cli-drop-node-name;
58698                   type uint16 {
58699                     tailf:info "<1-65535>;;Destination port number";
58700                   }
58701                 }
58702               }
58703             }
58704           }
58705         }
58706       }
58707       leaf max-destination {
58708         tailf:info "config maximum destination";
58709         description
58710           "config maximum destination";
58711         when "../type = 'inspect-zone'";
58712         type uint64 {
58713           tailf:info "<1-4294967295>;;maximum destination value";
58714           range "1..4294967295";
58715         }
58716       }
58717       container max-incomplete {
58718         tailf:info "Specify maximum number of incomplete connections before clamping";
58719         description
58720           "Specify maximum number of incomplete connections before clamping";
58721         leaf high {
58722           tailf:info "Specify high-watermark for clamping";
58723           description
58724             "Specify high-watermark for clamping";
58725           type uint32 {
58726             tailf:info "<1-2147483647>;;Number of connections";
58727             range "1..2147483647";
58728           }
58729         }
58730         leaf low {
58731           tailf:info "Specify low-watermark for clamping";
58732           description
58733             "Specify low-watermark for clamping";
58734           type uint32 {
58735             tailf:info "<1-2147483647>;;Number of connections";
58736             range "1..2147483647";
58737           }
58738         }
58739       }
58740       container one-minute {
58741         tailf:info "Specify one-minute-sample watermarks for clamping";
58742         description
58743           "Specify one-minute-sample watermarks for clamping";
58744         when "../type = 'inspect'";
58745         leaf high {
58746           tailf:info "Specify high-watermark for clamping";
58747           description
58748             "Specify high-watermark for clamping";
58749           type uint32 {
58750             tailf:info "<1-2147483647>;;Number of connections";
58751             range "1..2147483647";
58752           }
58753         }
58754         leaf low {
58755           tailf:info "Specify low-watermark for clamping";
58756           description
58757             "Specify low-watermark for clamping";
58758           type uint32 {
58759             tailf:info "<1-2147483647>;;Number of connections";
58760             range "1..2147483647";
58761           }
58762         }
58763       }
58764       container sessions {
58765         tailf:info "Maximum number of inspect sessions";
58766         description
58767           "Maximum number of inspect sessions";
58768         when "../type = 'inspect'";
58769         leaf maximum {
58770           tailf:info "Maximum sessions";
58771           description
58772             "Maximum sessions";
58773           type uint32 {
58774             tailf:info "<1-2147483647>;;Number of sessions";
58775             range "1..2147483647";
58776           }
58777         }
58778       }
58779       container tcp {
58780         tailf:info "Config timeout values for tcp connections";
58781         description
58782           "Config timeout values for tcp connections";
58783         leaf finwait-time {
58784           tailf:info "Specify timeout for TCP connections after a FIN";
58785           description
58786             "Specify timeout for TCP connections after a FIN";
58787           type uint32 {
58788             tailf:info "<1-2147483>;;Timeout in seconds";
58789             range "1..2147483";
58790           }
58791         }
58792         leaf idle-time {
58793           tailf:info "Specify idle timeout for tcp connections";
58794           description
58795             "Specify idle timeout for tcp connections";
58796           type uint32 {
58797             tailf:info "<1-2147483>;;Timeout in seconds";
58798             range "1..2147483";
58799           }
58800         }
58801         container max-incomplete {
58802           tailf:info "Specify max half-open connection per host";
58803           description
58804             "Specify max half-open connection per host";
58805           leaf host {
58806             tailf:info "Specify max half-open connection per host";
58807             description
58808               "Specify max half-open connection per host";
58809             type uint32 {
58810               tailf:info "<1-4294967295>;;half-open sessions";
58811               range "1..4294967295";
58812             }
58813           }
58814         }
58815         leaf synwait-time {
58816           tailf:info "Specify timeout for TCP connections after a SYN and no";
58817           description
58818             "Specify timeout for TCP connections after a SYN and no";
58819           type uint32 {
58820             tailf:info "<1-2147483>;;Timeout in seconds";
58821             range "1..2147483";
58822           }
58823         }
58824       }
58825       container threat-detection {
58826         tailf:info "Configure Threat Detection";
58827         description
58828           "Configure Threat Detection";
58829         when "../type = 'inspect-zone'";
58830         leaf basic-threat {
58831           tailf:info "Enable Threat Detection";
58832           description
58833             "Enable Threat Detection";
58834           type empty;
58835         }
58836         container rate {
58837           tailf:info "Configure Threat Detection rate";
58838           description
58839             "Configure Threat Detection rate";
58840           container fw-drop {
58841             tailf:info "Configure Threat Detection rate for firewall drop events";
58842             description
58843               "Configure Threat Detection rate for firewall drop events";
58844             tailf:cli-sequence-commands;
58845             tailf:cli-compact-syntax;
58846             leaf average-time-frame {
58847               tailf:info "Configure Threat Detection average time frame";
58848               description
58849                 "Configure Threat Detection average time frame";
58850               type uint32 {
58851                 tailf:info "<600-3600>;;average time frame in seconds";
58852                 range "600..3600";
58853               }
58854             }
58855             leaf average-threshold {
58856               tailf:info "Configure Threat Detection average threshold";
58857               description
58858                 "Configure Threat Detection average threshold";
58859               type uint64 {
58860                 tailf:info "<1-4294967295>;;average threshold in pkts/sec";
58861                 range "1..4294967295";
58862               }
58863             }
58864             leaf burst-threshold {
58865               tailf:info " Configure Threat Detection burst threshold";
58866               description
58867                 " Configure Threat Detection burst threshold";
58868               type uint64 {
58869                 tailf:info "<1-1000000000>  burst threshold in pkts/sec";
58870                 range "1..1000000000";
58871               }
58872             }
58873           }
58874           container inspect-drop {
58875             tailf:info "Configure Threat Detection rate for firewall inspection based drop events";
58876             description
58877               "Configure Threat Detection rate for firewall inspection based drop events";
58878             tailf:cli-sequence-commands;
58879             tailf:cli-compact-syntax;
58880             leaf average-time-frame {
58881               tailf:info "Configure Threat Detection average time frame";
58882               description
58883                 "Configure Threat Detection average time frame";
58884               type uint32 {
58885                 tailf:info "<600-3600>;;average time frame in seconds";
58886                 range "600..3600";
58887               }
58888             }
58889             leaf average-threshold {
58890               tailf:info "Configure Threat Detection average threshold";
58891               description
58892                 "Configure Threat Detection average threshold";
58893               type uint64 {
58894                 tailf:info "<1-4294967295>;;average threshold in pkts/sec";
58895                 range "1..4294967295";
58896               }
58897             }
58898             leaf burst-threshold {
58899               tailf:info " Configure Threat Detection burst threshold";
58900               description
58901                 " Configure Threat Detection burst threshold";
58902               type uint64 {
58903                 tailf:info "<1-1000000000>  burst threshold in pkts/sec";
58904                 range "1..1000000000";
58905               }
58906             }
58907           }
58908           container syn-attack {
58909             tailf:info "Configure Threat Detection rate for syn attack events";
58910             description
58911               "Configure Threat Detection rate for syn attack events";
58912             tailf:cli-sequence-commands;
58913             tailf:cli-compact-syntax;
58914             leaf average-time-frame {
58915               tailf:info "Configure Threat Detection average time frame";
58916               description
58917                 "Configure Threat Detection average time frame";
58918               type uint32 {
58919                 tailf:info "<600-3600>;;average time frame in seconds";
58920                 range "600..3600";
58921               }
58922             }
58923             leaf average-threshold {
58924               tailf:info "Configure Threat Detection average threshold";
58925               description
58926                 "Configure Threat Detection average threshold";
58927               type uint64 {
58928                 tailf:info "<1-4294967295>;;average threshold in pkts/sec";
58929                 range "1..4294967295";
58930               }
58931             }
58932             leaf burst-threshold {
58933               tailf:info " Configure Threat Detection burst threshold";
58934               description
58935                 " Configure Threat Detection burst threshold";
58936               type uint64 {
58937                 tailf:info "<1-1000000000>  burst threshold in pkts/sec";
58938                 range "1..1000000000";
58939               }
58940             }
58941           }
58942         }
58943       }
58944       container udp {
58945         tailf:info "Config timeout values for udp flows";
58946         description
58947           "Config timeout values for udp flows";
58948         when "../type = 'inspect'";
58949         leaf idle-time {
58950           tailf:info "Specify idle timeout for udp";
58951           description
58952             "Specify idle timeout for udp";
58953           type uint32 {
58954             tailf:info "<1-2147483>;;Timeout in seconds";
58955             range "1..2147483";
58956           }
58957         }
58958       }
58959       container vrf {
58960         tailf:info "vrf binding with parameter map";
58961         description
58962           "vrf binding with parameter map";
58963         tailf:cli-sequence-commands;
58964         tailf:cli-compact-syntax;
58965         leaf name {
58966           tailf:cli-drop-node-name;
58967           type string {
58968             tailf:info "WORD;;vrf name";
58969           }
58970         }
58971         leaf inspect {
58972           tailf:info "vrf binding with parameter map";
58973           description
58974             "vrf binding with parameter map";
58975           type string {
58976             tailf:info "WORD;;parameter-map name";
58977           }
58978         }
58979       }
58980       leaf zone-mismatch {
58981         tailf:info "Config zone-mismatch option";
58982         description
58983           "Config zone-mismatch option";
58984         type enumeration {
58985           enum "drop" {
58986             tailf:info "Drop packets mode";
58987           }
58988         }
58989       }
58990     }
58991     container vpdn {
58992       tailf:info "Virtual Private Dialup Network";
58993       description
58994         "Virtual Private Dialup Network";
58995       leaf authen-before-forward {
58996         tailf:info "Authenticate a user locally before tunnelling";
58997         description
58998           "Authenticate a user locally before tunnelling";
58999         type empty;
59000       }
59001       leaf enable {
59002         tailf:info "Enable VPDN";
59003         description
59004           "Enable VPDN";
59005         type empty;
59006       }
59007       leaf-list search-order {
59008         ordered-by user;
59009         tailf:info "Configure the order to search different VPDN tunnel types";
59010         description
59011           "Configure the order to search different VPDN tunnel types";
59012         tailf:cli-flat-list-syntax;
59013         type enumeration {
59014           enum "dnis" {
59015             tailf:info "Tunnel based on DNIS";
59016           }
59017           enum "domain" {
59018             tailf:info "Tunnel based on domain";
59019           }
59020           enum "multihop-hostname" {
59021             tailf:info "Tunnel based on peer hostname from ingress tunnel";
59022           }
59023         }
59024       }
59025     }
59026     container ppp {
59027       tailf:info "PPP global configuration";
59028       description
59029         "PPP global configuration";
59030       container packet {
59031         tailf:info "Configure control packet rate throttling";
59032         description
59033           "Configure control packet rate throttling";
59034         tailf:cli-compact-syntax;
59035         tailf:cli-sequence-commands;
59036         leaf throttle {
59037           tailf:info "Configure control packet rate throttling";
59038           description
59039             "Configure control packet rate throttling";
59040           type uint32 {
59041             tailf:info "<1-100000>;;Number of control packets allowed per session per specific time";
59042             range "1..100000";
59043           }
59044         }
59045         leaf allow_time {
59046           tailf:cli-drop-node-name;
59047           type uint32 {
59048             tailf:info "<1-3600>;;Time in seconds for allowing N packets per session";
59049             range "1..3600";
59050           }
59051         }
59052         leaf block_time {
59053           tailf:cli-drop-node-name;
59054           type uint32 {
59055             tailf:info "<2-3600>;;Time in seconds for blocking packets per session";
59056             range "2..3600";
59057           }
59058         }
59059       }
59060     }
59061     container bba-group {
59062       tailf:info "Configure BBA Group";
59063       description
59064         "Configure BBA Group";
59065       list pppoe {
59066         tailf:info "PPPoE type";
59067         description
59068           "PPPoE type";
59069         key "id";
59070         leaf id {
59071           type union {
59072             type string {
59073               tailf:info "WORD;;BBA Group name";
59074             }
59075             type enumeration {
59076               enum "global" {
59077                 tailf:info "PPPoE global group";
59078               }
59079             }
59080           }
59081         }
59082         container vendor-tag {
59083           tailf:info "PPPoE Vendor Specific Tag";
59084           description
59085             "PPPoE Vendor Specific Tag";
59086           container circuit-id {
59087             tailf:info "Circuit-Id";
59088             description
59089               "Circuit-Id";
59090             leaf service {
59091               tailf:info "Enable processing";
59092               description
59093                 "Enable processing";
59094               type empty;
59095             }
59096           }
59097           container dsl-sync-rate {
59098             tailf:info "DSL-Sync-Rate";
59099             description
59100               "DSL-Sync-Rate";
59101             leaf service {
59102               tailf:info "Enable processing";
59103               description
59104                 "Enable processing";
59105               type empty;
59106             }
59107           }
59108           container remote-id {
59109             tailf:info "Remote-Id";
59110             description
59111               "Remote-Id";
59112             leaf service {
59113               tailf:info "Enable processing";
59114               description
59115                 "Enable processing";
59116               type empty;
59117             }
59118           }
59119           leaf strip {
59120             tailf:info "Strip all vendor tags";
59121             description
59122               "Strip all vendor tags";
59123             type empty;
59124           }
59125         }
59126         leaf virtual-template {
59127           tailf:info "BBA virtual template command";
59128           description
59129             "BBA virtual template command";
59130           type uint16 {
59131             tailf:info "<1-4095>;;Virtual Template interface number";
59132             range "1..4095";
59133           }
59134         }
59135       }
59136     }
59137     container mac {
59138       tailf:info "Global MAC configuration subcommands";
59139       description
59140         "Global MAC configuration subcommands";
59141       container access-list {
59142         tailf:info "Named access-list";
59143         description
59144           "Named access-list";
59145         list extended {
59146           tailf:info "Extended Access List";
59147           description
59148             "Extended Access List";
59149           key "id";
59150           leaf id {
59151             type string {
59152               tailf:info "WORD;;access-list name";
59153             }
59154           }
59155           container deny {
59156             tailf:info "Specify packets to reject";
59157             description
59158               "Specify packets to reject";
59159             tailf:cli-compact-syntax;
59160             tailf:cli-sequence-commands;
59161             container source {
59162               tailf:cli-compact-syntax;
59163               tailf:cli-flatten-container;
59164               tailf:cli-drop-node-name;
59165               choice target-choice {
59166                 leaf any {
59167                   tailf:info "any source MAC address";
59168                   description
59169                     "any source MAC address";
59170                   type empty;
59171                 }
59172                 leaf host {
59173                   tailf:info "A single source host";
59174                   description
59175                     "A single source host";
59176                   type string {
59177                     tailf:info "H.H.H;;48-bit source MAC address";
59178                   }
59179                 }
59180               }
59181             }
59182             container dest {
59183               tailf:cli-compact-syntax;
59184               tailf:cli-flatten-container;
59185               tailf:cli-drop-node-name;
59186               choice target-choice {
59187                 leaf any {
59188                   tailf:info "any destination MAC address";
59189                   description
59190                     "any destination MAC address";
59191                   type empty;
59192                 }
59193                 leaf host {
59194                   tailf:info "A single destination host";
59195                   description
59196                     "A single destination host";
59197                   type string {
59198                     tailf:info "H.H.H;;48-bit destination MAC address";
59199                   }
59200                 }
59201               }
59202             }
59203           }
59204           container permit {
59205             tailf:info "Specify packets to forward";
59206             description
59207               "Specify packets to forward";
59208             tailf:cli-compact-syntax;
59209             tailf:cli-sequence-commands;
59210             container source {
59211               tailf:cli-compact-syntax;
59212               tailf:cli-flatten-container;
59213               tailf:cli-drop-node-name;
59214               choice target-choice {
59215                 leaf any {
59216                   tailf:info "any source MAC address";
59217                   description
59218                     "any source MAC address";
59219                   type empty;
59220                 }
59221                 leaf host {
59222                   tailf:info "A single source host";
59223                   description
59224                     "A single source host";
59225                   type string {
59226                     tailf:info "H.H.H;;48-bit source MAC address";
59227                   }
59228                 }
59229               }
59230             }
59231             container dest {
59232               tailf:cli-compact-syntax;
59233               tailf:cli-flatten-container;
59234               tailf:cli-drop-node-name;
59235               choice target-choice {
59236                 leaf any {
59237                   tailf:info "any destination MAC address";
59238                   description
59239                     "any destination MAC address";
59240                   type empty;
59241                 }
59242                 leaf host {
59243                   tailf:info "A single destination host";
59244                   description
59245                     "A single destination host";
59246                   type string {
59247                     tailf:info "H.H.H;;48-bit destination MAC address";
59248                   }
59249                 }
59250               }
59251             }
59252           }
59253         }
59254       }
59255       container address-table {
59256         tailf:info "Configure the MAC address table";
59257         description
59258           "Configure the MAC address table";
59259         tailf:cli-sequence-commands;
59260         tailf:cli-compact-syntax;
59261         leaf aging-time {
59262           tailf:info "Set MAC address table entry maximum age";
59263           description
59264             "Set MAC address table entry maximum age";
59265           type uint32 {
59266             tailf:info "<0-0>;;Enter 0 to disable aging<10-1000000>;;Aging time in seconds";
59267           }
59268         }
59269         leaf routed-mac {
59270           tailf:info "Set RM Aging interval";
59271           description
59272             "Set RM Aging interval";
59273           tailf:cli-optional-in-sequence;
59274           tailf:cli-full-command;
59275           type empty;
59276         }
59277         leaf vlan {
59278           tailf:info "VLAN Keyword";
59279           description
59280             "VLAN Keyword";
59281           type uint16 {
59282             tailf:info "<1-4094>;;VLAN id";
59283             range "1..4094";
59284           }
59285         }
59286       }
59287     }
59288     container tacacs {
59289       tailf:info "TACACS server configuration command";
59290       description
59291         "TACACS server configuration command";
59292       list server {
59293         tailf:info "Server configuration";
59294         description
59295           "Server configuration";
59296         tailf:cli-mode-name "config-server-tacacs";
59297         key "name";
59298         leaf name {
59299           type string {
59300             tailf:info "WORD;;Name for the tacacs server configuration";
59301           }
59302         }
59303         container address {
59304           tailf:info "Specify ip address for tacacs server";
59305           description
59306             "Specify ip address for tacacs server";
59307           leaf ipv4 {
59308             tailf:info "Configure ipv4 address for tacacs server";
59309             description
59310               "Configure ipv4 address for tacacs server";
59311             type union {
59312               type string;
59313               type inet:ipv4-address {
59314                 tailf:info "Hostname or A.B.C.D;;IP address of tacacs server";
59315               }
59316             }
59317           }
59318         }
59319         container key {
59320           tailf:info "per-server encryption key (overrides default)";
59321           description
59322             "per-server encryption key (overrides default)";
59323           tailf:cli-compact-syntax;
59324           tailf:cli-sequence-commands;
59325           leaf encryption {
59326             tailf:cli-drop-node-name;
59327             tailf:cli-incomplete-command;
59328             tailf:cli-optional-in-sequence;
59329             type enumeration {
59330               enum "0" {
59331                 tailf:info "Specifies an UNENCRYPTED key will follow";
59332               }
59333               enum "7" {
59334                 tailf:info "Specifies HIDDEN key will follow";
59335               }
59336             }
59337           }
59338           leaf key {
59339             tailf:cli-drop-node-name;
59340             tailf:cli-full-command;
59341             tailf:cli-multi-value;
59342             type string {
59343               tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
59344             }
59345           }
59346         }
59347       }
59348     }
59349     container tacacs-server {
59350       tailf:info "Modify TACACS query parameters";
59351       description
59352         "Modify TACACS query parameters";
59353       list host {
59354         tailf:info "Specify a TACACS server";
59355         description
59356           "Specify a TACACS server";
59357         tailf:cli-suppress-mode;
59358         tailf:cli-delete-when-empty;
59359         tailf:cli-compact-syntax;
59360         tailf:cli-reset-container;
59361         key "name";
59362         leaf name {
59363           type host-type {
59364             tailf:info "Hostname or A.B.C.D;;IP address of TACACS server";
59365           }
59366         }
59367         leaf port {
59368           tailf:info "TCP port for TACACS+ server (default is 49)";
59369           description
59370             "TCP port for TACACS+ server (default is 49)";
59371           type uint16 {
59372             tailf:info "<1-65535>;;Port number";
59373             range "1..65535";
59374           }
59375         }
59376         leaf timeout {
59377           tailf:info "Time to wait for this TACACS server to reply (overrides default)";
59378           description
59379             "Time to wait for this TACACS server to reply (overrides default)";
59380           type uint16 {
59381             tailf:info "<1-1000>;;Timeout value in seconds to wait for server to reply";
59382             range "1..1000";
59383           }
59384         }
59385       }
59386       leaf timeout {
59387         tailf:info "Time to wait for a TACACS server to reply";
59388         description
59389           "Time to wait for a TACACS server to reply";
59390         type uint16 {
59391           tailf:info "<1-1000>;;Wait time (default 5 seconds)";
59392           range "1..1000";
59393         }
59394         default "5";
59395       }
59396       container directed-request {
59397         tailf:info "Allow user to specify tacacs server to use with `@server'";
59398         description
59399           "Allow user to specify tacacs server to use with `@server'";
59400         tailf:cli-compact-syntax;
59401         tailf:cli-sequence-commands;
59402         presence "true";
59403         leaf restricted {
59404           tailf:info "restrict queries to directed request servers only";
59405           description
59406             "restrict queries to directed request servers only";
59407           tailf:cli-optional-in-sequence;
59408           type empty;
59409         }
59410         leaf no-truncate {
59411           tailf:info "Do not truncate the @hostname from username.";
59412           description
59413             "Do not truncate the @hostname from username.";
59414           type empty;
59415         }
59416       }
59417       container key {
59418         tailf:info "Set TACACS+ encryption key.";
59419         description
59420           "Set TACACS+ encryption key.";
59421         tailf:cli-compact-syntax;
59422         tailf:cli-sequence-commands;
59423         leaf encryption {
59424           tailf:cli-drop-node-name;
59425           tailf:cli-incomplete-command;
59426           tailf:cli-optional-in-sequence;
59427           type enumeration {
59428             enum "0" {
59429               tailf:info "Specifies an UNENCRYPTED key will follow";
59430             }
59431             enum "7" {
59432               tailf:info "Specifies HIDDEN key will follow";
59433             }
59434           }
59435         }
59436         leaf key {
59437           tailf:cli-drop-node-name;
59438           tailf:cli-full-command;
59439           tailf:cli-multi-value;
59440           type string {
59441             tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
59442           }
59443         }
59444       }
59445     }
59446     container upgrade {
59447       tailf:info "Global upgrade configuration subcommands";
59448       description
59449         "Global upgrade configuration subcommands";
59450       container fpd {
59451         tailf:info "Configure field programmable devices upgrade options";
59452         description
59453           "Configure field programmable devices upgrade options";
59454         leaf auto {
59455           tailf:info "Auto upgrade all FPD images";
59456           description
59457             "Auto upgrade all FPD images";
59458           type empty;
59459         }
59460         leaf path {
59461           tailf:info "Set path to locate the FPD image package file for auto upgrade";
59462           description
59463             "Set path to locate the FPD image package file for auto upgrade";
59464           type string;
59465         }
59466       }
59467     }
59468     container vtp {
59469       tailf:info "Configure global VTP state";
59470       description
59471         "Configure global VTP state";
59472       leaf file {
59473         tailf:info "Configure IFS filesystem file where VTP configuration is stored.";
59474         description
59475           "Configure IFS filesystem file where VTP configuration is stored.";
59476         type string {
59477           tailf:info "WORD;;The ascii name of the IFS filesystem file where VTP configuration is stored.";
59478         }
59479       }
59480       leaf interface {
59481         tailf:info "Configure interface as the preferred source for the VTP IP updater address.";
59482         description
59483           "Configure interface as the preferred source for the VTP IP updater address.";
59484         type string {
59485           tailf:info "WORD;;The name of the interface providing the VTP updater ID for this device.";
59486         }
59487       }
59488       leaf password {
59489         tailf:info "Set the password for the VTP administrative domain";
59490         description
59491           "Set the password for the VTP administrative domain";
59492         type string {
59493           tailf:info "WORD;;The ascii password for the VTP administrative domain.";
59494         }
59495       }
59496       leaf pruning {
59497         tailf:info "Set the adminstrative domain to permit pruning";
59498         description
59499           "Set the adminstrative domain to permit pruning";
59500         type empty;
59501       }
59502       leaf version {
59503         tailf:info "Set the adminstrative domain to VTP version";
59504         description
59505           "Set the adminstrative domain to VTP version";
59506         type uint8 {
59507           tailf:info "<1-3>;;Set the adminstrative domain VTP version number";
59508           range "1..3";
59509         }
59510       }
59511       leaf domain {
59512         tailf:info "Set the name of the VTP administrative domain.";
59513         description
59514           "Set the name of the VTP administrative domain.";
59515         type string;
59516       }
59517       leaf mode {
59518         tailf:info "Configure VTP device mode";
59519         description
59520           "Configure VTP device mode";
59521         type enumeration {
59522           enum "client" {
59523             tailf:info "Set the device to client mode.";
59524           }
59525           enum "off" {
59526             tailf:info "Set the device to off mode.";
59527           }
59528           enum "server" {
59529             tailf:info "Set the device to server mode.";
59530           }
59531           enum "transparent" {
59532             tailf:info "Set the device to transparent mode.";
59533           }
59534         }
59535       }
59536     }
59537     container ap {
59538       tailf:info "Configures Cisco APs";
59539       description
59540         "Configures Cisco APs";
59541       list group {
59542         tailf:info "Manage AP Groups VLAN feature";
59543         description
59544           "Manage AP Groups VLAN feature";
59545         tailf:cli-mode-name "config-apgroup";
59546         key "name";
59547         leaf name {
59548           type string {
59549             tailf:info "WORD;;Specify the name of the apgroup to configure";
59550           }
59551         }
59552       }
59553     }
59554     container wsma {
59555       tailf:info "Configure Web Services Management Agents";
59556       description
59557         "Configure Web Services Management Agents";
59558       container agent {
59559         tailf:info "Configure WSMA agents";
59560         description
59561           "Configure WSMA agents";
59562         container exec {
59563           tailf:info "Start WSMA exec agent";
59564           description
59565             "Start WSMA exec agent";
59566           tailf:cli-add-mode;
59567           tailf:cli-mode-name "wsma-exec-agent";
59568           leaf profile {
59569             tailf:info "Profile to use for wsma exec agent";
59570             type string {
59571               tailf:info "WORD;;Profile name";
59572             }
59573           }
59574         }
59575         container config {
59576           tailf:info "Start WSMA config agent";
59577           description
59578             "Start WSMA config agent";
59579           tailf:cli-add-mode;
59580           tailf:cli-mode-name "wsma-config-agent";
59581           leaf profile {
59582             tailf:info "Profile to use for wsma config agent";
59583             type string {
59584               tailf:info "WORD;;Profile name";
59585             }
59586           }
59587         }
59588         container filesys {
59589           tailf:info "Start WSMA file system agent";
59590           description
59591             "Start WSMA file system agent";
59592           tailf:cli-add-mode;
59593           tailf:cli-mode-name "wsma-filesys-agent";
59594           leaf profile {
59595             tailf:info "Profile to use for wsma file system agent";
59596             type string {
59597               tailf:info "WORD;;Profile name";
59598             }
59599           }
59600         }
59601         container notify {
59602           tailf:info "Start WSMA notify agent";
59603           description
59604             "Start WSMA notify agent";
59605           tailf:cli-add-mode;
59606           tailf:cli-mode-name "wsma-notify-agent";
59607           leaf profile {
59608             tailf:info "Profile to use for wsma notify agent";
59609             type string {
59610               tailf:info "WORD;;Profile name";
59611             }
59612           }
59613         }
59614       }
59615       container profile {
59616         tailf:info "Configure WSMA profile";
59617         description
59618           "Configure WSMA profile";
59619         list listener {
59620           tailf:info "Configure a listener profile";
59621           description
59622             "Configure a listener profile";
59623           tailf:cli-mode-name "config-wsma-listen";
59624           key "name";
59625           leaf name {
59626             type string {
59627               tailf:info "WORD;;Listener profile name";
59628             }
59629           }
59630           leaf transport {
59631             tailf:info "The transport to use";
59632             description
59633               "The transport to use";
59634             type enumeration {
59635               enum "http" {
59636                 tailf:info "Use http (plaintext) transport";
59637               }
59638               enum "https" {
59639                 tailf:info "Use https (encrypted) transport";
59640               }
59641               enum "ssh" {
59642                 tailf:info "Use SSH V2";
59643               }
59644               enum "tls" {
59645                 tailf:info "Use TLS transport";
59646               }
59647             }
59648           }
59649         }
59650       }
59651     }
59652     container rep {
59653       tailf:info "Resilient Ethernet Protocol characteristics";
59654       description
59655         "Resilient Ethernet Protocol characteristics";
59656       container admin {
59657         tailf:info "administrative configuration";
59658         description
59659           "administrative configuration";
59660         list vlan {
59661           tailf:info "VLAN";
59662           description
59663             "VLAN";
59664           key "name";
59665           leaf name {
59666             type uint16 {
59667               tailf:info "<2-4094>;;between 2 and 4094";
59668               range "2..4094";
59669             }
59670           }
59671         }
59672       }
59673     }
59674     container xconnect {
59675       container logging {
59676         container pseudowire {
59677           leaf status {
59678             tailf:cli-full-command;
59679             type empty;
59680           }
59681         }
59682         leaf redundancy {
59683           tailf:cli-full-command;
59684           type empty;
59685         }
59686       }
59687     }
59688     container fabric {
59689       tailf:info "Catalyst 6000 crossbar fabric configuration commands";
59690       description
59691         "Catalyst 6000 crossbar fabric configuration commands";
59692       container switching-mode {
59693         tailf:info "Switching mode settings";
59694         description
59695           "Switching mode settings";
59696         container allow {
59697           tailf:info "Allow settings";
59698           description
59699             "Allow settings";
59700           choice allow-choice {
59701             leaf bus-mode {
59702               tailf:info "Allow switching in bus mode for modules";
59703               description
59704                 "Allow switching in bus mode for modules";
59705               type empty;
59706             }
59707             container truncated {
59708               tailf:info "Truncated switching mode";
59709               description
59710                 "Truncated switching mode";
59711               presence "true";
59712               leaf threshold {
59713                 tailf:info "Number of SFM-capable modules for truncated switching mode. Switch applies the threshold only when the mode is disallowed. Switch ignores the threshold when the truncated mode is allowed";
59714                 description
59715                   "Number of SFM-capable modules for truncated switching mode. Switch applies the threshold only when the mode is disallowed. Switch ignores the threshold when the truncated mode is allowed";
59716                 type uint8 {
59717                   tailf:info "<1-9>;;Threshold for truncated switching mode.";
59718                   range "1..9";
59719                 }
59720               }
59721             }
59722           }
59723         }
59724         container force {
59725           tailf:info "Force modules to different switching modes";
59726           description
59727             "Force modules to different switching modes";
59728           leaf bus-mode {
59729             tailf:info "Switching mode of service modules will be forced to bus-mode by powercycling it.";
59730             description
59731               "Switching mode of service modules will be forced to bus-mode by powercycling it.";
59732             type empty;
59733           }
59734         }
59735       }
59736     }
59737     container port-channel {
59738       tailf:info "EtherChannel configuration";
59739       description
59740         "EtherChannel configuration";
59741       leaf load-balance {
59742         tailf:info "Load Balancing method";
59743         description
59744           "Load Balancing method";
59745         type enumeration {
59746           enum "dst-ip" {
59747             tailf:info "Dst IP Addr";
59748           }
59749           enum "dst-mac" {
59750             tailf:info "Dst Mac Addr";
59751           }
59752           enum "dst-mixed-ip-port" {
59753             tailf:info "Dst IP Addr and TCP/UDP Port";
59754           }
59755           enum "dst-port" {
59756             tailf:info "Dst TCP/UDP Port";
59757           }
59758           enum "mpls" {
59759             tailf:info "Load Balancing for MPLS packets";
59760           }
59761           enum "src-dst-ip" {
59762             tailf:info "Src XOR Dst IP Addr";
59763           }
59764           enum "src-dst-mac" {
59765             tailf:info "Src XOR Dst Mac Addr";
59766           }
59767           enum "src-dst-mixed-ip-port" {
59768             tailf:info "Src XOR Dst IP Addr and TCP/UDP Port";
59769           }
59770           enum "src-dst-port" {
59771             tailf:info "Src XOR Dst TCP/UDP Port";
59772           }
59773           enum "src-ip" {
59774             tailf:info "Src IP Addr";
59775           }
59776           enum "src-mac" {
59777             tailf:info "Src Mac Addr";
59778           }
59779           enum "src-mixed-ip-port" {
59780             tailf:info "Src IP Addr and TCP/UDP Port";
59781           }
59782           enum "src-port" {
59783             tailf:info "Src TCP/UDP Port";
59784           }
59785         }
59786       }
59787     }
59788     container key {
59789       tailf:info "Key management";
59790       description
59791         "Key management";
59792       list chain {
59793         tailf:info "Key-chain management";
59794         description
59795           "Key-chain management";
59796         tailf:cli-mode-name "config-keychain";
59797         key "name";
59798         leaf name {
59799           type string {
59800             tailf:info "WORD;;Key-chain name";
59801           }
59802         }
59803         list key {
59804           tailf:info "Configure a key";
59805           description
59806             "Configure a key";
59807           tailf:cli-mode-name "config-keychain-key";
59808           key "id";
59809           leaf id {
59810             type uint32 {
59811               tailf:info "<0-2147483647>;;Key identifier";
59812               range "1..2147483647";
59813             }
59814           }
59815           container key-string {
59816             tailf:info "Set key string";
59817             description
59818               "Set key string";
59819             leaf encryption {
59820               tailf:cli-drop-node-name;
59821               tailf:cli-incomplete-command;
59822               type enumeration {
59823                 enum "0" {
59824                   tailf:info "Specifies an UNENCRYPTED password will follow";
59825                 }
59826                 enum "6" {
59827                   tailf:info "Specifies an ENCRYPTED password will follow";
59828                 }
59829                 enum "7" {
59830                   tailf:info "Specifies a HIDDEN password will follow";
59831                 }
59832               }
59833             }
59834             leaf key {
59835               tailf:cli-drop-node-name;
59836               tailf:cli-multi-value;
59837               type string {
59838                 tailf:info "LINE;;The UNENCRYPTED (cleartext) user password (Maximum 80 characters)";
59839                 length "0..80";
59840               }
59841             }
59842           }
59843         }
59844       }
59845     }
59846     container l2 {
59847       tailf:info "Layer 2 configuration";
59848       description
59849         "Layer 2 configuration";
59850       leaf router-id {
59851         tailf:info "Configure a layer 2 identifier";
59852         description
59853           "Configure a layer 2 identifier";
59854         type inet:ipv4-address {
59855           tailf:info "A.B.C.D;;Layer 2 router-id value";
59856         }
59857       }
59858       list vfi {
59859         tailf:info "Configure a virtual forwarding instance";
59860         description
59861           "Configure a virtual forwarding instance";
59862         tailf:cli-mode-name "config-vfi";
59863         tailf:cli-compact-syntax;
59864         key "name";
59865         leaf name {
59866           type string {
59867             tailf:info "WORD;;VFI name";
59868           }
59869         }
59870         leaf mode {
59871           tailf:cli-drop-node-name;
59872           tailf:cli-hide-in-submode;
59873           type enumeration {
59874             enum "autodiscovery" {
59875               tailf:info "Multipoint autodiscovery configuration mode";
59876             }
59877             enum "manual" {
59878               tailf:info "Multipoint manual configuration mode";
59879             }
59880             enum "point-to-point" {
59881               tailf:info "Point-to-point configuration mode";
59882             }
59883           }
59884         }
59885         leaf evc {
59886           tailf:cli-drop-node-name;
59887           tailf:cli-hide-in-submode;
59888           when "../mode = 'autodiscovery' or ../mode = 'manual'";
59889           type string {
59890             tailf:info "WORD;;EVC name";
59891           }
59892         }
59893         container vpn {
59894           tailf:info "VPN configuration";
59895           description
59896             "VPN configuration";
59897           when "../mode = 'autodiscovery' or ../mode = 'manual'";
59898           leaf id {
59899             tailf:info "VPN id";
59900             description
59901               "VPN id";
59902             type uint64 {
59903               tailf:info "<1-4294967295>;;VPN id value";
59904               range "1..4294967295";
59905             }
59906           }
59907         }
59908         leaf bridge-domain {
59909           tailf:info "bridge-domain";
59910           description
59911             "bridge-domain";
59912           type uint16 {
59913             tailf:info "<1-16384>;;Bridge-domain number";
59914             range "1..16384";
59915           }
59916         }
59917         list neighbor {
59918           tailf:info "VFI neighbor configuration";
59919           description
59920             "VFI neighbor configuration";
59921           tailf:cli-suppress-mode;
59922           tailf:cli-sequence-commands;
59923           tailf:cli-compact-syntax;
59924           key "router-id";
59925           leaf router-id {
59926             type inet:ipv4-address {
59927               tailf:info "A.B.C.D;;VFI neighbor's router id";
59928             }
59929           }
59930           leaf vc-id {
59931             tailf:cli-drop-node-name;
59932             tailf:cli-optional-in-sequence;
59933             type uint64 {
59934               tailf:info "<1-4294967295>;;Enter VC ID value";
59935               range "1..4294967295";
59936             }
59937           }
59938           leaf encapsulation {
59939             tailf:info "Connection encapsulation type";
59940             description
59941               "Connection encapsulation type";
59942             tailf:cli-break-sequence-commands;
59943             tailf:cli-full-command;
59944             type enumeration {
59945               enum "l2tpv3" {
59946                 tailf:info "Encapsulation L2TPv3";
59947               }
59948               enum "mpls" {
59949                 tailf:info "Encapsulation MPLS";
59950               }
59951             }
59952           }
59953           leaf pw-class {
59954             tailf:info "Pseudowire-class configuration";
59955             description
59956               "Pseudowire-class configuration";
59957             type string {
59958               tailf:info "WORD;;Pseudowire-class name";
59959             }
59960           }
59961         }
59962       }
59963     }
59964     container l2protocol-tunnel {
59965       tailf:info "Tunnel Layer2 protocols";
59966       description
59967         "Tunnel Layer2 protocols";
59968       leaf cos {
59969         tailf:info "Class of Service";
59970         description
59971           "Class of Service";
59972         type uint8 {
59973           tailf:info "<0-7>;;priority value";
59974           range "0..7";
59975         }
59976       }
59977       container global {
59978         tailf:info "Global settings";
59979         description
59980           "Global settings";
59981         leaf drop-threshold {
59982           tailf:info "L2PT packets drop threshold";
59983           description
59984             "L2PT packets drop threshold";
59985           type uint16 {
59986             tailf:info "<100-20000>;;Packets per second";
59987             range "100..20000";
59988           }
59989         }
59990       }
59991     }
59992     container system {
59993       tailf:info "Set the system configuration";
59994       description
59995         "Set the system configuration";
59996       container env {
59997         tailf:info "Set the system environment settings";
59998         description
59999           "Set the system environment settings";
60000         container temperature {
60001           tailf:info "Set the system temperature settings";
60002           description
60003             "Set the system temperature settings";
60004           container threshold {
60005             tailf:info "Set the system temperature thresholds";
60006             description
60007               "Set the system temperature thresholds";
60008             leaf yellow {
60009               tailf:info "Set the yellow threshold";
60010               description
60011                 "Set the yellow threshold";
60012               type uint8 {
60013                 tailf:info "<0-25>;;Delta value from Red threshold in Degree Celsius";
60014                 range "0..25";
60015               }
60016             }
60017           }
60018         }
60019       }
60020       container mtu {
60021         tailf:info "Set the system Maximum Transmission Unit (MTU)";
60022         description
60023           "Set the system Maximum Transmission Unit (MTU)";
60024         leaf size {
60025           tailf:cli-drop-node-name;
60026           type uint16 {
60027             tailf:info "<1500-1998>;;MTU size in bytes";
60028             range "1500..1998";
60029           }
60030         }
60031         leaf jumbo {
60032           tailf:info "Set Jumbo MTU value for GigabitEthernet or TenGigabitEthernet interfaces";
60033           description
60034             "Set Jumbo MTU value for GigabitEthernet or TenGigabitEthernet interfaces";
60035           type uint16 {
60036             tailf:info "<1500-9000>;;Jumbo MTU size in bytes";
60037             range "1500..9000";
60038           }
60039         }
60040         leaf routing {
60041           tailf:info "Set the Routing MTU for the system";
60042           description
60043             "Set the Routing MTU for the system";
60044           type uint16 {
60045             tailf:info "<1500-1500>;;MTU size in bytes";
60046             range "1500";
60047           }
60048         }
60049       }
60050     }
60051     container errdisable {
60052       tailf:info "Error disable";
60053       description
60054         "Error disable";
60055       container detect {
60056         tailf:info "Error disable detection";
60057         description
60058           "Error disable detection";
60059         container cause {
60060           tailf:info "Enable error disable detection for application";
60061           description
60062             "Enable error disable detection for application";
60063           leaf all {
60064             tailf:info "Enable error detection on all cases";
60065             description
60066               "Enable error detection on all cases";
60067             tailf:cli-full-command;
60068             type empty;
60069           }
60070           leaf arp-inspection {
60071             tailf:info "Enable error detection for arp inspection";
60072             description
60073               "Enable error detection for arp inspection";
60074             tailf:cli-full-command;
60075             type empty;
60076           }
60077           leaf bpduguard {
60078             tailf:info "Enable error detection on bpdu-guard";
60079             description
60080               "Enable error detection on bpdu-guard";
60081             tailf:cli-full-command;
60082             type empty;
60083           }
60084           leaf dhcp-rate-limit {
60085             tailf:info "Enable error detection on dhcp-rate-limit";
60086             description
60087               "Enable error detection on dhcp-rate-limit";
60088             tailf:cli-full-command;
60089             type empty;
60090           }
60091           leaf dtp-flap {
60092             tailf:info "Enable error detection on dtp-flapping";
60093             description
60094               "Enable error detection on dtp-flapping";
60095             tailf:cli-full-command;
60096             type empty;
60097           }
60098           leaf gbic-invalid {
60099             tailf:info "Enable error detection on gbic-invalid";
60100             description
60101               "Enable error detection on gbic-invalid";
60102             tailf:cli-full-command;
60103             type empty;
60104           }
60105           leaf inline-power {
60106             tailf:info "Enable error detection for inline-power";
60107             description
60108               "Enable error detection for inline-power";
60109             tailf:cli-full-command;
60110             type empty;
60111           }
60112           leaf l2ptguard {
60113             tailf:info "Enable timer to recover from l2protocol-tunnel error disable state";
60114             description
60115               "Enable timer to recover from l2protocol-tunnel error disable state";
60116             tailf:cli-full-command;
60117             type empty;
60118           }
60119           leaf link-flap {
60120             tailf:info "Enable error detection on linkstate-flapping";
60121             description
60122               "Enable error detection on linkstate-flapping";
60123             tailf:cli-full-command;
60124             type empty;
60125           }
60126           leaf loopback {
60127             tailf:info "Enable error detection on loopback";
60128             description
60129               "Enable error detection on loopback";
60130             tailf:cli-full-command;
60131             type empty;
60132           }
60133           leaf mlacp-minlink {
60134             tailf:cli-full-command;
60135             type empty;
60136           }
60137           leaf pagp-flap {
60138             tailf:info "Enable error detection on pagp-flapping";
60139             description
60140               "Enable error detection on pagp-flapping";
60141             tailf:cli-full-command;
60142             type empty;
60143           }
60144           leaf pppoe-ia-rate-limit {
60145             tailf:info "Enable error detection on PPPoE IA rate-limit";
60146             description
60147               "Enable error detection on PPPoE IA rate-limit";
60148             tailf:cli-full-command;
60149             type empty;
60150           }
60151           leaf security-violation {
60152             tailf:info "Enable error detection on 802.1x-guard";
60153             description
60154               "Enable error detection on 802.1x-guard";
60155             tailf:cli-full-command;
60156             type empty;
60157           }
60158           leaf sfp-config-mismatch {
60159             tailf:info "Enable error detection on SFP config mismatch";
60160             description
60161               "Enable error detection on SFP config mismatch";
60162             tailf:cli-full-command;
60163             type empty;
60164           }
60165           leaf small-frame {
60166             tailf:info "Enable error detection on small_frame";
60167             description
60168               "Enable error detection on small_frame";
60169             tailf:cli-full-command;
60170             type empty;
60171           }
60172         }
60173       }
60174       container flap-setting {
60175         tailf:info "Error disable flap detection setting";
60176         description
60177           "Error disable flap detection setting";
60178         container cause {
60179           tailf:info "Set error disable flap parameters for application";
60180           description
60181             "Set error disable flap parameters for application";
60182           container dtp-flap {
60183             tailf:info "Set the variables related to detection of dtp flaps";
60184             description
60185               "Set the variables related to detection of dtp flaps";
60186             tailf:cli-compact-syntax;
60187             tailf:cli-sequence-commands;
60188             leaf max-flaps {
60189               tailf:info "maximum flaps allowed before setting to errdisable";
60190               description
60191                 "maximum flaps allowed before setting to errdisable";
60192               type uint8 {
60193                 tailf:info "<1-100>;;flap count";
60194                 range "1..100";
60195               }
60196             }
60197             leaf time {
60198               tailf:info "time period the flaps are counted";
60199               description
60200                 "time period the flaps are counted";
60201               type uint8 {
60202                 tailf:info "<1-120>;;flap count time";
60203                 range "1..120";
60204               }
60205             }
60206           }
60207           container link-flap {
60208             tailf:info "Set the variables related to detection of link flaps";
60209             description
60210               "Set the variables related to detection of link flaps";
60211             tailf:cli-compact-syntax;
60212             tailf:cli-sequence-commands;
60213             leaf max-flaps {
60214               tailf:info "maximum flaps allowed before setting to errdisable";
60215               description
60216                 "maximum flaps allowed before setting to errdisable";
60217               type uint8 {
60218                 tailf:info "<1-100>;;flap count";
60219                 range "1..100";
60220               }
60221             }
60222             leaf time {
60223               tailf:info "time period the flaps are counted";
60224               description
60225                 "time period the flaps are counted";
60226               type uint8 {
60227                 tailf:info "<1-120>;;flap count time";
60228                 range "1..120";
60229               }
60230             }
60231           }
60232           container pagp-flap {
60233             tailf:info "Set the variables related to detection of pagp flaps";
60234             description
60235               "Set the variables related to detection of pagp flaps";
60236             tailf:cli-compact-syntax;
60237             tailf:cli-sequence-commands;
60238             leaf max-flaps {
60239               tailf:info "maximum flaps allowed before setting to errdisable";
60240               description
60241                 "maximum flaps allowed before setting to errdisable";
60242               type uint8 {
60243                 tailf:info "<1-100>;;flap count";
60244                 range "1..100";
60245               }
60246             }
60247             leaf time {
60248               tailf:info "time period the flaps are counted";
60249               description
60250                 "time period the flaps are counted";
60251               type uint8 {
60252                 tailf:info "<1-120>;;flap count time";
60253                 range "1..120";
60254               }
60255             }
60256           }
60257         }
60258       }
60259       container recovery {
60260         tailf:info "Error disable recovery";
60261         description
60262           "Error disable recovery";
60263         container cause {
60264           tailf:info "Enable error disable recovery for application";
60265           description
60266             "Enable error disable recovery for application";
60267           leaf all {
60268             tailf:info "Enable timer to recover from all error causes";
60269             description
60270               "Enable timer to recover from all error causes";
60271             type empty;
60272           }
60273           leaf arp-inspection {
60274             tailf:info "Enable timer to recover from arp inspection error disable state";
60275             description
60276               "Enable timer to recover from arp inspection error disable state";
60277             type empty;
60278           }
60279           leaf bpduguard {
60280             tailf:info "Enable timer to recover from BPDU Guard error";
60281             description
60282               "Enable timer to recover from BPDU Guard error";
60283             type empty;
60284           }
60285           leaf channel-misconfig {
60286             tailf:info "(STP)  Enable timer to recover from channel misconfig error";
60287             description
60288               "(STP)  Enable timer to recover from channel misconfig error";
60289             type empty;
60290           }
60291           leaf dhcp-rate-limit {
60292             tailf:info "Enable timer to recover from dhcp-rate-limit error";
60293             description
60294               "Enable timer to recover from dhcp-rate-limit error";
60295             type empty;
60296           }
60297           leaf dtp-flap {
60298             tailf:info "Enable timer to recover from dtp-flap error";
60299             description
60300               "Enable timer to recover from dtp-flap error";
60301             type empty;
60302           }
60303           leaf gbic-invalid {
60304             tailf:info "Enable timer to recover from invalid GBIC error";
60305             description
60306               "Enable timer to recover from invalid GBIC error";
60307             type empty;
60308           }
60309           leaf inline-power {
60310             tailf:info "Enable timer to recover from inline-power error";
60311             description
60312               "Enable timer to recover from inline-power error";
60313             type empty;
60314           }
60315           leaf l2ptguard {
60316             tailf:info "Enable timer to recover from l2protocol-tunnel error disable state";
60317             description
60318               "Enable timer to recover from l2protocol-tunnel error disable state";
60319             type empty;
60320           }
60321           leaf link-flap {
60322             tailf:info "Enable timer to recover from link-flap error";
60323             description
60324               "Enable timer to recover from link-flap error";
60325             type empty;
60326           }
60327           leaf link-monitor-failure {
60328             type empty;
60329           }
60330           leaf loopback {
60331             tailf:info "Enable timer to recover from loopback error";
60332             description
60333               "Enable timer to recover from loopback error";
60334             type empty;
60335           }
60336           leaf mac-limit {
60337             tailf:info "Enable timer to recover from mac limit disable state";
60338             description
60339               "Enable timer to recover from mac limit disable state";
60340             type empty;
60341           }
60342           leaf mlacp-minlink {
60343             tailf:cli-full-command;
60344             type empty;
60345           }
60346           container oam-remote-failure {
60347             tailf:cli-display-separated;
60348             presence "true";
60349             leaf critical-event {
60350               tailf:cli-full-command;
60351               type empty;
60352             }
60353             leaf dying-gasp {
60354               tailf:cli-full-command;
60355               type empty;
60356             }
60357             leaf link-fault {
60358               tailf:cli-full-command;
60359               type empty;
60360             }
60361           }
60362           leaf pagp-flap {
60363             tailf:info "Enable timer to recover from pagp-flap error";
60364             description
60365               "Enable timer to recover from pagp-flap error";
60366             type empty;
60367           }
60368           leaf port-mode-failure {
60369             tailf:info "Enable timer to recover from port mode change failure";
60370             description
60371               "Enable timer to recover from port mode change failure";
60372             type empty;
60373           }
60374           leaf pppoe-ia-rate-limit {
60375             tailf:info "Enable timer to recover from PPPoE IA rate-limit error";
60376             description
60377               "Enable timer to recover from PPPoE IA rate-limit error";
60378             type empty;
60379           }
60380           leaf psp {
60381             type empty;
60382           }
60383           leaf psecure-violation {
60384             tailf:info "Enable timer to recover from psecure violation error";
60385             description
60386               "Enable timer to recover from psecure violation error";
60387             type empty;
60388           }
60389           leaf security-violation {
60390             tailf:info "Enable timer to recover from 802.1x violation error";
60391             description
60392               "Enable timer to recover from 802.1x violation error";
60393             type empty;
60394           }
60395           leaf sfp-config-mismatch {
60396             tailf:info "Enable timer to recover from SFP config mismatch error";
60397             description
60398               "Enable timer to recover from SFP config mismatch error";
60399             type empty;
60400           }
60401           leaf small-frame {
60402             tailf:info "Enable timer to recover from small frame error";
60403             description
60404               "Enable timer to recover from small frame error";
60405             type empty;
60406           }
60407           leaf storm-control {
60408             tailf:info "Enable timer to recover from storm-control error";
60409             description
60410               "Enable timer to recover from storm-control error";
60411             type empty;
60412           }
60413           leaf udld {
60414             tailf:info "Enable timer to recover from udld error";
60415             description
60416               "Enable timer to recover from udld error";
60417             type empty;
60418           }
60419           leaf unicast-flood {
60420             type empty;
60421           }
60422           leaf vmps {
60423             tailf:info "Enable timer to recover from vmps shutdown error";
60424             description
60425               "Enable timer to recover from vmps shutdown error";
60426             type empty;
60427           }
60428         }
60429         leaf interval {
60430           tailf:info "Error disable recovery timer value";
60431           description
60432             "Error disable recovery timer value";
60433           type uint32 {
60434             tailf:info "<30-86400>;;timer-interval(sec)";
60435             range "30..86400";
60436           }
60437         }
60438       }
60439     }
60440     container monitor {
60441       tailf:info "Monitoring different system events";
60442       description
60443         "Monitoring different system events";
60444       container event-trace {
60445         tailf:info "Tracing of system events";
60446         description
60447           "Tracing of system events";
60448       }
60449       list session {
60450         tailf:info "Configure a SPAN session";
60451         description
60452           "Configure a SPAN session";
60453         tailf:cli-suppress-mode;
60454         tailf:cli-delete-when-empty;
60455         tailf:cli-compact-syntax;
60456         tailf:cli-incomplete-command;
60457         key "id";
60458         leaf id {
60459           type uint8 {
60460             tailf:info "<1-66>;;SPAN session number";
60461             range "1..66";
60462           }
60463         }
60464         container destination {
60465           tailf:info "SPAN destination interface or VLAN";
60466           description
60467             "SPAN destination interface or VLAN";
60468           leaf interface {
60469             tailf:info "SPAN destination interface";
60470             description
60471               "SPAN destination interface";
60472             type string;
60473           }
60474           leaf encapsulation {
60475             tailf:cli-hide-in-submode;
60476             tailf:info "Set encapsulation for destination interface";
60477             description
60478               "Set encapsulation for destination interface";
60479             type enumeration {
60480               enum "dot1q" {
60481                 tailf:info "interface uses only dot1q encapsulation";
60482               }
60483               enum "isl" {
60484                 tailf:info "interface uses only isl encapsulation";
60485               }
60486               enum "replicate" {
60487                 tailf:info "interface replicates source encapsulation";
60488               }
60489             }
60490           }
60491           leaf ingress {
60492             tailf:info "Enable ingress traffic forwarding";
60493             description
60494               "Enable ingress traffic forwarding";
60495             tailf:cli-hide-in-submode;
60496             type empty;
60497           }
60498           leaf ingress-encap {
60499             tailf:cli-drop-node-name;
60500             tailf:cli-hide-in-submode;
60501             when "../ingress" {
60502               tailf:dependency "../ingress";
60503             }
60504             type enumeration {
60505               enum "dot1q" {
60506                 tailf:info "ingress forwarding using dot1q encapsulation";
60507               }
60508               enum "isl" {
60509                 tailf:info "ingress forwarding using isl encapsulation";
60510               }
60511               enum "untagged" {
60512                 tailf:info "ingress forwarding using untagged encapsulation";
60513               }
60514             }
60515           }
60516           leaf vlan {
60517             tailf:info "Set default VLAN for untagged ingress traffic";
60518             description
60519               "Set default VLAN for untagged ingress traffic";
60520             tailf:cli-hide-in-submode;
60521             when "../ingress" {
60522               tailf:dependency "../ingress";
60523             }
60524             type uint16 {
60525               tailf:info "<1-4094>;;Default VLAN for untagged ingress traffic";
60526               range "1..4094";
60527             }
60528           }
60529         }
60530         container filter {
60531           tailf:info "SPAN filter VLAN";
60532           description
60533             "SPAN filter VLAN";
60534           container packet-type {
60535             tailf:cli-sequence-commands;
60536             tailf:cli-compact-syntax;
60537             leaf status {
60538               tailf:cli-drop-node-name;
60539               type enumeration {
60540                 enum "good";
60541                 enum "bad";
60542               }
60543             }
60544             leaf direction {
60545               tailf:cli-drop-node-name;
60546               type enumeration {
60547                 enum "rx";
60548                 enum "tx";
60549               }
60550             }
60551           }
60552         }
60553         container source {
60554           tailf:info "SPAN source interface, VLAN ";
60555           description
60556             "SPAN source interface, VLAN ";
60557           container interface {
60558             tailf:info "SPAN source interface";
60559             description
60560               "SPAN source interface";
60561             tailf:cli-diff-dependency "/ios:native/interface";
60562             uses interface-grouping;
60563           }
60564           container vlan {
60565             tailf:info "SPAN source VLAN";
60566             description
60567               "SPAN source VLAN";
60568             tailf:cli-compact-syntax;
60569             tailf:cli-flatten-container;
60570             tailf:cli-sequence-commands;
60571             leaf vlan {
60572               tailf:cli-drop-node-name;
60573               type uint16 {
60574                 tailf:info "<1-4094>;;SPAN source VLAN";
60575                 range "1..4094";
60576               }
60577             }
60578             leaf direction {
60579               tailf:cli-drop-node-name;
60580               type enumeration {
60581                 enum "both" {
60582                   tailf:info "Monitor received and transmitted traffic";
60583                 }
60584                 enum "rx" {
60585                   tailf:info "Monitor received traffic only";
60586                 }
60587                 enum "tx" {
60588                   tailf:info "Monitor transmitted traffic only";
60589                 }
60590               }
60591             }
60592           }
60593         }
60594       }
60595     }
60596     list tftp-server {
60597       tailf:info "Provide TFTP service for netload requests";
60598       description
60599         "Provide TFTP service for netload requests";
60600       tailf:cli-suppress-mode;
60601       tailf:cli-delete-when-empty;
60602       tailf:cli-compact-syntax;
60603       key "name";
60604       leaf name {
60605         type string;
60606       }
60607     }
60608     container radius-server {
60609       tailf:info "Modify RADIUS query parameters";
60610       description
60611         "Modify RADIUS query parameters";
60612       list attribute {
60613         tailf:info "Customize selected radius attributes";
60614         description
60615           "Customize selected radius attributes";
60616         tailf:cli-suppress-mode;
60617         key "number";
60618         leaf number {
60619           type uint32 {
60620             tailf:info "Framed IP address attribute number";
60621           }
60622         }
60623         leaf send-attribute {
60624           tailf:cli-drop-node-name;
60625           type enumeration {
60626             enum "on-for-login-auth" {
60627               tailf:info "Send attribute number in login-auth packet";
60628             }
60629             enum "include-in-access-req" {
60630               tailf:info "Send attribute number in access-req packet";
60631             }
60632           }
60633         }
60634       }
60635       container dead-criteria {
60636         tailf:info "Set the criteria used to decide when a radius server ismarked dead";
60637         description
60638           "Set the criteria used to decide when a radius server ismarked dead";
60639         tailf:cli-compact-syntax;
60640         leaf time {
60641           tailf:info "The time during which no properly formed response must be recievedfrom the RADIUS server";
60642           description
60643             "The time during which no properly formed response must be recievedfrom the RADIUS server";
60644           type uint8 {
60645             tailf:info "<1-120>;;Time in seconds during which no response must be recieved from theRADIUS server in order to consider it dead";
60646             range "1..120";
60647           }
60648         }
60649         leaf tries {
60650           tailf:info "The number of times the router must fail to recieve a response fromthe radius server to mark it as dead";
60651           description
60652             "The number of times the router must fail to recieve a response fromthe radius server to mark it as dead";
60653           tailf:cli-full-command;
60654           type uint8 {
60655             tailf:info "<1-100>;;Number of transmits to radius server without responses beforemarking server as dead";
60656             range "1..100";
60657           }
60658         }
60659       }
60660       leaf deadtime {
60661         tailf:info "Time to stop using a server that doesn't respond";
60662         description
60663           "Time to stop using a server that doesn't respond";
60664         tailf:cli-full-command;
60665         type uint32 {
60666           tailf:info "<1-1440>;;time in minutes";
60667           range "1..1440";
60668         }
60669       }
60670       list host {
60671         tailf:info "Specify a RADIUS server";
60672         description
60673           "Specify a RADIUS server";
60674         tailf:cli-suppress-mode;
60675         tailf:cli-delete-when-empty;
60676         tailf:cli-compact-syntax;
60677         key "id";
60678         leaf id {
60679           type union {
60680             type string;
60681             type inet:ipv4-address {
60682               tailf:info "Hostname or A.B.C.D;;IP address of RADIUS server";
60683             }
60684           }
60685         }
60686         leaf acct-port {
60687           tailf:info "UDP port for RADIUS accounting server (default is 1646)";
60688           description
60689             "UDP port for RADIUS accounting server (default is 1646)";
60690           type uint16 {
60691             tailf:info "<0-65535>;;Port number";
60692             range "0..65535";
60693           }
60694         }
60695         leaf auth-port {
60696           tailf:info "UDP port for RADIUS authentication server (default is 1645)";
60697           description
60698             "UDP port for RADIUS authentication server (default is 1645)";
60699           type uint16 {
60700             tailf:info "<0-65535>;;Port number";
60701             range "0..65535";
60702           }
60703         }
60704         leaf key {
60705           tailf:info "per-server encryption key (overrides default)";
60706           description
60707             "per-server encryption key (overrides default)";
60708           type string {
60709             tailf:info "LINE;;The UNENCRYPTED (cleartext) server key";
60710           }
60711         }
60712         container test {
60713           tailf:info "Configure server automated testing";
60714           description
60715             "Configure server automated testing";
60716           list username {
60717             tailf:info "A name (from local database) that should be used to send requests.";
60718             description
60719               "A name (from local database) that should be used to send requests.";
60720             tailf:cli-suppress-mode;
60721             key "name";
60722             leaf name {
60723               type string {
60724                 tailf:info "WORD;;User Name";
60725               }
60726             }
60727             container key {
60728               tailf:info "per-server encryption key (overrides default)";
60729               description
60730                 "per-server encryption key (overrides default)";
60731               tailf:cli-compact-syntax;
60732               leaf encryption {
60733                 tailf:cli-drop-node-name;
60734                 type enumeration {
60735                   enum "0" {
60736                     tailf:info "Specifies an UNENCRYPTED key will follow";
60737                   }
60738                   enum "7" {
60739                     tailf:info "Specifies HIDDEN key will follow";
60740                   }
60741                 }
60742               }
60743               leaf clear-key {
60744                 tailf:cli-drop-node-name;
60745                 tailf:cli-full-command;
60746                 type string {
60747                   tailf:info "WORD;;The UNENCRYPTED (cleartext) shared key";
60748                 }
60749               }
60750             }
60751           }
60752         }
60753       }
60754       container vsa {
60755         tailf:info "Vendor specific attribute configuration";
60756         description
60757           "Vendor specific attribute configuration";
60758         container disallow {
60759           tailf:info "Forbid certain VSA behaviour";
60760           description
60761             "Forbid certain VSA behaviour";
60762           leaf unknown {
60763             tailf:info "Forbid unknown VSAs";
60764             description
60765               "Forbid unknown VSAs";
60766             type empty;
60767           }
60768         }
60769         container send {
60770           tailf:info "Send vendor-specific attributes in requests";
60771           description
60772             "Send vendor-specific attributes in requests";
60773           presence "true";
60774           container accounting {
60775             tailf:info "Send in accounting requests";
60776             description
60777               "Send in accounting requests";
60778             presence "true";
60779             leaf threegpp2 {
60780               tailf:alt-name "3gpp2";
60781               tailf:info "Send 3GPP2 VSAs in accounting requests";
60782               description
60783                 "Send 3GPP2 VSAs in accounting requests";
60784               type empty;
60785             }
60786           }
60787           container authentication {
60788             tailf:info "Send in access requests";
60789             description
60790               "Send in access requests";
60791             presence "true";
60792             leaf threegpp2 {
60793               tailf:alt-name "3gpp2";
60794               tailf:info "Send 3GPP2 VSAs in accounting requests";
60795               description
60796                 "Send 3GPP2 VSAs in accounting requests";
60797               type empty;
60798             }
60799           }
60800           container cisco-nas-port {
60801             tailf:info "Send cisco-nas-port VSA(2)";
60802             description
60803               "Send cisco-nas-port VSA(2)";
60804             presence "true";
60805             leaf threegpp2 {
60806               tailf:alt-name "3gpp2";
60807               tailf:info "Send 3GPP2 VSAs in accounting requests";
60808               description
60809                 "Send 3GPP2 VSAs in accounting requests";
60810               type empty;
60811             }
60812           }
60813         }
60814       }
60815     }
60816     container radius {
60817       tailf:info "RADIUS server configuration command";
60818       description
60819         "RADIUS server configuration command";
60820       list filter {
60821         tailf:info "Packet filter configuration";
60822         description
60823           "Packet filter configuration";
60824         key "id";
60825         leaf id {
60826           type string {
60827             tailf:info "WORD;;Name of the filter (max 31 characters, longer will be rejected";
60828           }
60829         }
60830         leaf match {
60831           tailf:cli-drop-node-name;
60832           tailf:cli-prefix-key;
60833           type enumeration {
60834             enum "match-all" {
60835               tailf:info "Filter if all of the attributes matches";
60836             }
60837             enum "match-any" {
60838               tailf:info "Filter if any of the attributes matches";
60839             }
60840           }
60841         }
60842       }
60843       list server {
60844         tailf:info "Server configuration";
60845         description
60846           "Server configuration";
60847         key "id";
60848         leaf id {
60849           type string {
60850             tailf:info "WORD;;Name for the radius server configuration";
60851           }
60852         }
60853         container address {
60854           tailf:info "Specify the radius server address";
60855           description
60856             "Specify the radius server address";
60857           container ipv4 {
60858             tailf:info "IPv4 Address";
60859             description
60860               "IPv4 Address";
60861             tailf:cli-compact-syntax;
60862             tailf:cli-sequence-commands {
60863               tailf:cli-reset-siblings;
60864             }
60865             leaf host {
60866               tailf:cli-drop-node-name;
60867               type string {
60868                 tailf:info "Hostname or A.B.C.D;;IPv4 Address of radius server";
60869               }
60870             }
60871             leaf auth-port {
60872               tailf:info "UDP port for RADIUS authentication server (default is 1645)";
60873               description
60874                 "UDP port for RADIUS authentication server (default is 1645)";
60875               tailf:cli-optional-in-sequence;
60876               type uint16 {
60877                 tailf:info "<0-65535>;;Port number";
60878                 range "0..65535";
60879               }
60880             }
60881             leaf acct-port {
60882               tailf:info "UDP port for RADIUS accounting server (default is 1646)";
60883               description
60884                 "UDP port for RADIUS accounting server (default is 1646)";
60885               type uint16 {
60886                 tailf:info "<0-65535>;;Port number";
60887                 range "0..65535";
60888               }
60889             }
60890           }
60891         }
60892         container backoff {
60893           tailf:info "Retry backoff pattern(Default is retransmits with constant delay)";
60894           description
60895             "Retry backoff pattern(Default is retransmits with constant delay)";
60896           container exponential {
60897             tailf:info "Exponential retransmit backoff";
60898             description
60899               "Exponential retransmit backoff";
60900             tailf:cli-compact-syntax;
60901             tailf:cli-sequence-commands {
60902               tailf:cli-reset-siblings;
60903             }
60904             presence "true";
60905             leaf max-delay {
60906               tailf:cli-optional-in-sequence;
60907               tailf:info "Max delay between retransmits(default is 3 min)";
60908               description
60909                 "Max delay between retransmits(default is 3 min)";
60910               type uint8 {
60911                 tailf:info "<1-120>;;Max time (in minutes) to delay between retransmits";
60912                 range "1..120";
60913               }
60914             }
60915             leaf backoff-retry {
60916               tailf:info "Exponential backoff retry number(default is 8)";
60917               description
60918                 "Exponential backoff retry number(default is 8)";
60919               type uint8 {
60920                 tailf:info "<1-50>;;Number of retransmits in the exponential backoff mode";
60921                 range "1..50";
60922               }
60923             }
60924           }
60925         }
60926         container key {
60927           tailf:info "Per-server encryption key";
60928           description
60929             "Per-server encryption key";
60930           tailf:cli-compact-syntax;
60931           tailf:cli-sequence-commands {
60932             tailf:cli-reset-siblings;
60933           }
60934           leaf encryption {
60935             tailf:cli-drop-node-name;
60936             tailf:cli-incomplete-command;
60937             tailf:cli-optional-in-sequence;
60938             type enumeration {
60939               enum "0" {
60940                 tailf:info "Specifies an UNENCRYPTED key will follow";
60941               }
60942               enum "5" {
60943                 tailf:info "Specifies a HIDDEN key will follow";
60944               }
60945             }
60946           }
60947           leaf key {
60948             tailf:cli-drop-node-name;
60949             tailf:cli-multi-value;
60950             type string {
60951               tailf:info "LINE;;The UNCRYPTED (cleartext) shared key";
60952             }
60953           }
60954         }
60955       }
60956     }
60957     container zone {
60958       tailf:info "FW with zoning";
60959       description
60960         "FW with zoning";
60961       list security {
60962         tailf:info "Security zone";
60963         description
60964           "Security zone";
60965         tailf:cli-mode-name "config-sec-zone";
60966         tailf:cli-full-command;
60967         key "id";
60968         leaf id {
60969           type string {
60970             tailf:info "WORD;;Name of security zone";
60971           }
60972         }
60973         leaf description {
60974           tailf:info "Zone description";
60975           description
60976             "Zone description";
60977           tailf:cli-multi-value;
60978           type string {
60979             tailf:info "LINE;;Description of zone (up to 200 characters)";
60980           }
60981         }
60982         leaf protection {
60983           tailf:info "config sync cookie protection against sync flood";
60984           description
60985             "config sync cookie protection against sync flood";
60986           type string {
60987             tailf:info "WORD;;parameter map name";
60988           }
60989         }
60990       }
60991     }
60992     container zone-pair {
60993       tailf:info "Zone pair command";
60994       description
60995         "Zone pair command";
60996       list security {
60997         tailf:info "Zone-pair name";
60998         description
60999           "Zone-pair name";
61000         tailf:cli-sequence-commands {
61001           tailf:cli-reset-siblings;
61002         }
61003         tailf:cli-mode-name "config-sec-zone-pair";
61004         key "id";
61005         leaf id {
61006           type string {
61007             tailf:info "WORD;;Name of zone-pair";
61008           }
61009         }
61010         leaf source {
61011           tailf:info "Source zone";
61012           description
61013             "Source zone";
61014           tailf:cli-hide-in-submode;
61015           tailf:non-strict-leafref {
61016             path "/ios:native/zone/security/id";
61017           }
61018           type string {
61019             tailf:info "WORD;;Name of source zone";
61020           }
61021         }
61022         leaf destination {
61023           tailf:info "Destination zone";
61024           description
61025             "Destination zone";
61026           tailf:cli-hide-in-submode;
61027           tailf:non-strict-leafref {
61028             path "/ios:native/zone/security/id";
61029           }
61030           type string {
61031             tailf:info "WORD;;Name of destination zone";
61032           }
61033         }
61034         leaf description {
61035           tailf:info "Zone description";
61036           description
61037             "Zone description";
61038           tailf:cli-break-sequence-commands;
61039           tailf:cli-multi-value;
61040           type string {
61041             tailf:info "LINE;;Description of zone (up to 200 characters)";
61042             length "1..200";
61043           }
61044         }
61045         container service-policy {
61046           tailf:info "Configure CBAC Service Policy";
61047           description
61048             "Configure CBAC Service Policy";
61049           container type {
61050             tailf:info "Service Policy type";
61051             description
61052               "Service Policy type";
61053             leaf inspect {
61054               tailf:info "Configure CBAC Service Policy type inspect";
61055               description
61056                 "Configure CBAC Service Policy type inspect";
61057               type string;
61058               tailf:non-strict-leafref {
61059                 path "/ios:native/policy-map/name";
61060               }
61061             }
61062           }
61063         }
61064       }
61065     }
61066     container aaa {
61067       tailf:info "Authentication, Authorization and Accounting.";
61068       description
61069         "Authentication, Authorization and Accounting.";
61070       tailf:cli-incomplete-command;
61071       leaf new-model {
61072         tailf:info "Enable NEW access control commands and functions.(Disables OLD commands.)";
61073         description
61074           "Enable NEW access control commands and functions.(Disables OLD commands.)";
61075         type empty;
61076       }
61077       container group {
61078         tailf:info "AAA group definitions";
61079         description
61080           "AAA group definitions";
61081         tailf:cli-diff-dependency "/ios:native/aaa/new-model";
61082         container server {
61083           tailf:info "AAA Server group definitions";
61084           description
61085             "AAA Server group definitions";
61086           list tacacsplus {
61087             tailf:alt-name "tacacs+";
61088             tailf:info "Tacacs+ server-group definition";
61089             description
61090               "Tacacs+ server-group definition";
61091             tailf:cli-mode-name "config-sg-tacacs+";
61092             tailf:cli-full-command;
61093             key "name";
61094             leaf name {
61095               type string {
61096                 tailf:info "WORD;;Server-group name";
61097               }
61098             }
61099             container server {
61100               tailf:info "Specify a TACACS server";
61101               description
61102                 "Specify a TACACS server";
61103               leaf name {
61104                 tailf:info "Name of tacacs server";
61105                 description
61106                   "Name of tacacs server";
61107                 type string {
61108                   tailf:info "WORD;;Tacacs server name";
61109                 }
61110               }
61111             }
61112             list server-private {
61113               tailf:info "Define a private TACACS server (per group)";
61114               description
61115                 "Define a private TACACS server (per group)";
61116               tailf:cli-suppress-mode;
61117               tailf:cli-delete-when-empty;
61118               tailf:cli-compact-syntax;
61119               tailf:cli-sequence-commands;
61120               tailf:cli-reset-container;
61121               key "name";
61122               leaf name {
61123                 type host-type {
61124                   tailf:info "Hostname or A.B.C.D;;IP address of TACACS server";
61125                 }
61126               }
61127               leaf timeout {
61128                 tailf:info "Time to wait for this TACACS server to reply (overrides default)";
61129                 description
61130                   "Time to wait for this TACACS server to reply (overrides default)";
61131                 tailf:cli-optional-in-sequence;
61132                 type uint16 {
61133                   tailf:info "<1-1000>;;Timeout value in seconds to wait for server to reply";
61134                   range "1..1000";
61135                 }
61136               }
61137               container key {
61138                 tailf:info "per-server encryption key (overrides default)";
61139                 description
61140                   "per-server encryption key (overrides default)";
61141                 tailf:cli-compact-syntax;
61142                 tailf:cli-flatten-container;
61143                 tailf:cli-sequence-commands;
61144                 leaf encryption {
61145                   tailf:cli-drop-node-name;
61146                   tailf:cli-incomplete-command;
61147                   tailf:cli-optional-in-sequence;
61148                   type enumeration {
61149                     enum "0" {
61150                       tailf:info "Specifies an UNENCRYPTED key will follow";
61151                     }
61152                     enum "7" {
61153                       tailf:info "Specifies HIDDEN key will follow";
61154                     }
61155                   }
61156                 }
61157                 leaf key {
61158                   tailf:cli-drop-node-name;
61159                   tailf:cli-full-command;
61160                   tailf:cli-multi-value;
61161                   type string {
61162                     tailf:info "LINE;;The UNENCRYPTED (cleartext) shared key";
61163                   }
61164                 }
61165               }
61166             }
61167             container ip {
61168               tailf:info "Internet Protocol config commands";
61169               description
61170                 "Internet Protocol config commands";
61171               container tacacs {
61172                 tailf:info "TACACS configuration commands";
61173                 description
61174                   "TACACS configuration commands";
61175                 container source-interface {
61176                   tailf:info "Specify interface for source address in TACACS packets";
61177                   description
61178                     "Specify interface for source address in TACACS packets";
61179                   tailf:cli-diff-dependency "/ios:native/interface";
61180                   uses interface-grouping;
61181                 }
61182               }
61183               container vrf {
61184                 tailf:info "Set VPN Routing Forwarding to use with the servers";
61185                 description
61186                   "Set VPN Routing Forwarding to use with the servers";
61187                 leaf forwarding {
61188                   tailf:info "Configure forwarding table";
61189                   description
61190                     "Configure forwarding table";
61191                   type string {
61192                     tailf:info "WORD;;Table name";
61193                   }
61194                 }
61195               }
61196             }
61197           }
61198           list radius {
61199             tailf:info "Radius server-group definition";
61200             description
61201               "Radius server-group definition";
61202             tailf:cli-mode-name "config-sg-radius";
61203             key "name";
61204             leaf name {
61205               type string {
61206                 tailf:info "WORD;;Server-group name";
61207               }
61208             }
61209             container server {
61210               tailf:info "Specify a RADIUS server";
61211               description
61212                 "Specify a RADIUS server";
61213               list name {
61214                 tailf:info "Name of radius server";
61215                 description
61216                   "Name of radius server";
61217                 tailf:cli-suppress-mode;
61218                 key "name";
61219                 leaf name {
61220                   type string;
61221                   tailf:non-strict-leafref {
61222                     path "/ios:native/aaa/group/server/radius/name";
61223                   }
61224                 }
61225               }
61226               list direct {
61227                 tailf:cli-drop-node-name;
61228                 tailf:cli-compact-syntax;
61229                 tailf:cli-suppress-mode;
61230                 key "name";
61231                 leaf name {
61232                   type inet:host {
61233                     tailf:info "Hostname or A.B.C.D;;IP address of RADIUS server";
61234                   }
61235                   tailf:cli-disallow-value "name";
61236                 }
61237                 leaf auth-port {
61238                   tailf:info "UDP port for RADIUS authentication server (default is 1645)";
61239                   description
61240                     "UDP port for RADIUS authentication server (default is 1645)";
61241                   type uint16 {
61242                     tailf:info "<0-65535>;;Port number";
61243                     range "0..65535";
61244                   }
61245                 }
61246                 leaf acct-port {
61247                   tailf:info "UDP port for RADIUS accounting server (default is 1646)";
61248                   description
61249                     "UDP port for RADIUS accounting server (default is 1646)";
61250                   type uint16 {
61251                     tailf:info "<0-65535>;;Port number";
61252                     range "0..65535";
61253                   }
61254                 }
61255               }
61256             }
61257             container ip {
61258               tailf:info "Internet Protocol config commands";
61259               description
61260                 "Internet Protocol config commands";
61261               container radius {
61262                 tailf:info "RADIUS configuration commands";
61263                 description
61264                   "RADIUS configuration commands";
61265                 leaf source-interface {
61266                   tailf:info "Specify interface for source address in RADIUS packets";
61267                   type string;
61268                 }
61269               }
61270               container vrf {
61271                 tailf:info "Set VPN Routing Forwarding to use with the servers";
61272                 description
61273                   "Set VPN Routing Forwarding to use with the servers";
61274                 leaf forwarding {
61275                   tailf:info "Configure forwarding table";
61276                   description
61277                     "Configure forwarding table";
61278                   tailf:cli-diff-dependency "/ios:native/ip/vrf";
61279                   tailf:cli-diff-dependency "/ios:native/vrf/definition";
61280                   type string {
61281                     tailf:info "WORD;;Table name";
61282                   }
61283                 }
61284               }
61285             }
61286             container load-balance {
61287               tailf:info "Server group load-balancing options.";
61288               description
61289                 "Server group load-balancing options.";
61290               container method {
61291                 tailf:info "Method by which the next host will be picked.";
61292                 description
61293                   "Method by which the next host will be picked.";
61294                 container least-outstanding {
61295                   tailf:info "Pick the server with the least transactions outstanding.";
61296                   description
61297                     "Pick the server with the least transactions outstanding.";
61298                   leaf batch-size {
61299                     tailf:info "Size of the transaction batch that should be load-balanced.";
61300                     description
61301                       "Size of the transaction batch that should be load-balanced.";
61302                     type uint32 {
61303                       tailf:info "<1-2147483647>;;Number of transactions after which load-balancing should be performed (Default 25)";
61304                       range "1..2147483647";
61305                     }
61306                   }
61307                   leaf ignore-preferred-server {
61308                     tailf:info "Should the preferred-server be ignored.";
61309                     description
61310                       "Should the preferred-server be ignored.";
61311                     tailf:cli-full-command;
61312                     type empty;
61313                   }
61314                 }
61315               }
61316             }
61317           }
61318         }
61319       }
61320       container authentication {
61321         tailf:info "Authentication configurations parameters.";
61322         description
61323           "Authentication configurations parameters.";
61324         tailf:cli-diff-dependency "/ios:native/aaa/new-model";
61325         container attempts {
61326           tailf:info "Set the maximum number of authentication attempts";
61327           description
61328             "Set the maximum number of authentication attempts";
61329           leaf login {
61330             tailf:info "Set the max. number of attempts for login service";
61331             description
61332               "Set the max. number of attempts for login service";
61333             type uint8 {
61334               tailf:info "<1-25>;;Specify value for the number of attempts";
61335               range "1..25";
61336             }
61337           }
61338         }
61339         container dot1x {
61340           tailf:info "Set authentication lists for IEEE 802.1x.";
61341           description
61342             "Set authentication lists for IEEE 802.1x.";
61343           list dot1x-list {
61344             tailf:cli-suppress-mode;
61345             tailf:cli-delete-when-empty;
61346             tailf:cli-compact-syntax;
61347             key "name";
61348             leaf name {
61349               type string {
61350                 tailf:info "WORD;;Named authentication list";
61351               }
61352             }
61353             uses aaa-authentication-dot1x-grouping;
61354           }
61355           container default {
61356             tailf:info "The default authentication list.";
61357             description
61358               "The default authentication list.";
61359             uses aaa-authentication-dot1x-grouping;
61360           }
61361         }
61362         container enable {
61363           tailf:info "Set authentication list for enable.";
61364           description
61365             "Set authentication list for enable.";
61366           container default {
61367             tailf:info "The default authentication list.";
61368             description
61369               "The default authentication list.";
61370             tailf:cli-compact-syntax;
61371             leaf enable {
61372               tailf:info "Use enable password for authentication.";
61373               description
61374                 "Use enable password for authentication.";
61375               type empty;
61376             }
61377             leaf group {
61378               tailf:info "Use Server-group";
61379               description
61380                 "Use Server-group";
61381               type union {
61382                 type string {
61383                   tailf:info "WORD;;Server-group name";
61384                 }
61385                 type enumeration {
61386                   enum "radius" {
61387                     tailf:info "Use list of all Radius hosts.";
61388                   }
61389                   enum "tacacs+" {
61390                     tailf:info "+  Use list of all Tacacs+ hosts.";
61391                   }
61392                 }
61393               }
61394             }
61395             leaf line {
61396               tailf:info "Use line password for authentication.";
61397               description
61398                 "Use line password for authentication.";
61399               type empty;
61400             }
61401             leaf none {
61402               tailf:info "No authentication.";
61403               description
61404                 "No authentication.";
61405               tailf:cli-full-command;
61406               type empty;
61407             }
61408           }
61409         }
61410         list login {
61411           tailf:info "Set authentication lists for logins.";
61412           description
61413             "Set authentication lists for logins.";
61414           tailf:cli-suppress-mode;
61415           tailf:cli-delete-when-empty;
61416           tailf:cli-compact-syntax;
61417           key "name";
61418           leaf name {
61419             type string {
61420               tailf:info "WORD;;Named authentication list (max 31 characters,longer will be rejected).";
61421               length "1..31";
61422             }
61423           }
61424           leaf group {
61425             tailf:info "Use Server-group";
61426             description
61427               "Use Server-group";
61428             type union {
61429               type string {
61430                 tailf:info "WORD;;Server-group name";
61431               }
61432               type enumeration {
61433                 enum "ldap" {
61434                   tailf:info "Use list of all LDAP hosts.";
61435                 }
61436                 enum "radius" {
61437                   tailf:info "Use list of all Radius hosts.";
61438                 }
61439                 enum "tacacs+" {
61440                   tailf:info "+  Use list of all Tacacs+ hosts.";
61441                 }
61442               }
61443             }
61444           }
61445           leaf local {
61446             tailf:info "Use local username authentication.";
61447             description
61448               "Use local username authentication.";
61449             type empty;
61450           }
61451           leaf none {
61452             tailf:info "NO authentication.";
61453             description
61454               "NO authentication.";
61455             tailf:cli-full-command;
61456             type empty;
61457           }
61458           leaf enable {
61459             tailf:info "Use enable password for authentication.";
61460             description
61461               "Use enable password for authentication.";
61462             type empty;
61463           }
61464           leaf line {
61465             tailf:info "Use line password for authentication.";
61466             description
61467               "Use line password for authentication.";
61468             type empty;
61469           }
61470         }
61471         list ppp {
61472           tailf:info "Set authentication lists for ppp.";
61473           description
61474             "Set authentication lists for ppp.";
61475           tailf:cli-suppress-mode;
61476           tailf:cli-delete-when-empty;
61477           tailf:cli-compact-syntax;
61478           tailf:cli-sequence-commands {
61479             tailf:cli-reset-all-siblings;
61480           }
61481           key "id";
61482           leaf id {
61483             type string {
61484               tailf:info "WORD;;Named authentication list (max 31 characters, longer will be rejected).";
61485               length "1..31";
61486             }
61487           }
61488           container a1 {
61489             tailf:cli-drop-node-name;
61490             tailf:cli-flatten-container;
61491             tailf:cli-compact-syntax;
61492             choice auth-choice {
61493               leaf if-needed {
61494                 tailf:info "Only authenticate if needed.";
61495                 description
61496                   "Only authenticate if needed.";
61497                 tailf:cli-optional-in-sequence;
61498                 type empty;
61499               }
61500               leaf none {
61501                 tailf:info "NO authentication.";
61502                 description
61503                   "NO authentication.";
61504                 type empty;
61505               }
61506               leaf krb5 {
61507                 tailf:info "Use Kerberos 5 authentication.";
61508                 description
61509                   "Use Kerberos 5 authentication.";
61510                 type empty;
61511               }
61512               leaf local {
61513                 tailf:info "Use local username authentication.";
61514                 description
61515                   "Use local username authentication.";
61516                 type empty;
61517               }
61518               leaf local-case {
61519                 tailf:info "Use case-sensitive local username authentication.";
61520                 description
61521                   "Use case-sensitive local username authentication.";
61522                 type empty;
61523               }
61524               leaf group {
61525                 tailf:info "Use Server-group";
61526                 description
61527                   "Use Server-group";
61528                 type union {
61529                   type string {
61530                     tailf:info "WORD;;Server-group name";
61531                   }
61532                   type enumeration {
61533                     enum "radius" {
61534                       tailf:info "Use list of all Radius hosts.";
61535                     }
61536                     enum "tacacs+" {
61537                       tailf:info "Use list of all Tacacs+ hosts.";
61538                     }
61539                   }
61540                 }
61541               }
61542               leaf cache {
61543                 tailf:info "Use Cached-group";
61544                 description
61545                   "Use Cached-group";
61546                 type union {
61547                   type string {
61548                     tailf:info "WORD;;Server-group name";
61549                   }
61550                   type enumeration {
61551                     enum "radius" {
61552                       tailf:info "Use list of all Radius hosts.";
61553                     }
61554                     enum "tacacs+" {
61555                       tailf:info "Use list of all Tacacs+ hosts.";
61556                     }
61557                   }
61558                 }
61559               }
61560             }
61561           }
61562           container a2 {
61563             when "not(../a1/none)" {
61564               tailf:dependency "../a1/none";
61565             }
61566             tailf:cli-drop-node-name;
61567             tailf:cli-flatten-container;
61568             tailf:cli-compact-syntax;
61569             choice auth-choice {
61570               leaf group {
61571                 tailf:info "Use Server-group";
61572                 description
61573                   "Use Server-group";
61574                 type union {
61575                   type string {
61576                     tailf:info "WORD;;Server-group name";
61577                   }
61578                   type enumeration {
61579                     enum "radius" {
61580                       tailf:info "Use list of all Radius hosts.";
61581                     }
61582                     enum "tacacs+" {
61583                       tailf:info "Use list of all Tacacs+ hosts.";
61584                     }
61585                   }
61586                 }
61587               }
61588               leaf cache {
61589                 tailf:info "Use Cached-group";
61590                 description
61591                   "Use Cached-group";
61592                 type union {
61593                   type string {
61594                     tailf:info "WORD;;Server-group name";
61595                   }
61596                   type enumeration {
61597                     enum "radius" {
61598                       tailf:info "Use list of all Radius hosts.";
61599                     }
61600                     enum "tacacs+" {
61601                       tailf:info "Use list of all Tacacs+ hosts.";
61602                     }
61603                   }
61604                 }
61605               }
61606               leaf none {
61607                 tailf:info "NO authentication.";
61608                 description
61609                   "NO authentication.";
61610                 type empty;
61611               }
61612               leaf krb5 {
61613                 when "not(../../a1/krb5)" {
61614                   tailf:dependency "../../a1/krb5";
61615                 }
61616                 tailf:info "Use Kerberos 5 authentication.";
61617                 type empty;
61618               }
61619               leaf local {
61620                 when "not(../../a1/local) and not(../../a1/local-case)" {
61621                   tailf:dependency "../../a1/local";
61622                   tailf:dependency "../../a1/local-case";
61623                 }
61624                 tailf:info "Use local username authentication.";
61625                 type empty;
61626               }
61627               leaf local-case {
61628                 when "not(../../a1/local) and not(../../a1/local-case)" {
61629                   tailf:dependency "../../a1/local";
61630                   tailf:dependency "../../a1/local-case";
61631                 }
61632                 tailf:info "Use case-sensitive local username authentication.";
61633                 type empty;
61634               }
61635             }
61636           }
61637           container a3 {
61638             when "not(../a2/none) and not (../a1/none)" {
61639               tailf:dependency "../a1/none";
61640               tailf:dependency "../a2/none";
61641             }
61642             tailf:cli-drop-node-name;
61643             tailf:cli-flatten-container;
61644             tailf:cli-compact-syntax;
61645             choice auth-choice {
61646               leaf group {
61647                 tailf:info "Use Server-group";
61648                 description
61649                   "Use Server-group";
61650                 type union {
61651                   type string {
61652                     tailf:info "WORD;;Server-group name";
61653                   }
61654                   type enumeration {
61655                     enum "radius" {
61656                       tailf:info "Use list of all Radius hosts.";
61657                     }
61658                     enum "tacacs+" {
61659                       tailf:info "Use list of all Tacacs+ hosts.";
61660                     }
61661                   }
61662                 }
61663               }
61664               leaf cache {
61665                 tailf:info "Use Cached-group";
61666                 description
61667                   "Use Cached-group";
61668                 type union {
61669                   type string {
61670                     tailf:info "WORD;;Server-group name";
61671                   }
61672                   type enumeration {
61673                     enum "radius" {
61674                       tailf:info "Use list of all Radius hosts.";
61675                     }
61676                     enum "tacacs+" {
61677                       tailf:info "Use list of all Tacacs+ hosts.";
61678                     }
61679                   }
61680                 }
61681               }
61682               leaf none {
61683                 tailf:info "NO authentication.";
61684                 description
61685                   "NO authentication.";
61686                 type empty;
61687               }
61688               leaf krb5 {
61689                 when "not(../../a1/krb5) and not(../../a2/krb5)" {
61690                   tailf:dependency "../../a1/krb5";
61691                   tailf:dependency "../../a2/krb5";
61692                 }
61693                 tailf:info "Use Kerberos 5 authentication.";
61694                 type empty;
61695               }
61696               leaf local {
61697                 when "not(../../a1/local) and not(../../a1/local-case) and not(../../a2/local) and not(../../a2/local-case)" {
61698                   tailf:dependency "../../a1/local";
61699                   tailf:dependency "../../a1/local-case";
61700                   tailf:dependency "../../a2/local";
61701                   tailf:dependency "../../a2/local-case";
61702                 }
61703                 tailf:info "Use local username authentication.";
61704                 type empty;
61705               }
61706               leaf local-case {
61707                 when "not(../../a1/local) and not(../../a1/local-case) and not(../../a2/local) and not(../../a2/local-case)" {
61708                   tailf:dependency "../../a1/local";
61709                   tailf:dependency "../../a1/local-case";
61710                   tailf:dependency "../../a2/local";
61711                   tailf:dependency "../../a2/local-case";
61712                 }
61713                 tailf:info "Use case-sensitive local username authentication.";
61714                 type empty;
61715               }
61716             }
61717           }
61718           container a4 {
61719             when "not(../a2/none) and not(../a1/none) and not(../a3/none)" {
61720               tailf:dependency "../a1/none";
61721               tailf:dependency "../a2/none";
61722               tailf:dependency "../a3/none";
61723             }
61724             tailf:cli-drop-node-name;
61725             tailf:cli-flatten-container;
61726             tailf:cli-compact-syntax;
61727             choice auth-choice {
61728               leaf group {
61729                 tailf:info "Use Server-group";
61730                 description
61731                   "Use Server-group";
61732                 type union {
61733                   type string {
61734                     tailf:info "WORD;;Server-group name";
61735                   }
61736                   type enumeration {
61737                     enum "radius" {
61738                       tailf:info "Use list of all Radius hosts.";
61739                     }
61740                     enum "tacacs+" {
61741                       tailf:info "Use list of all Tacacs+ hosts.";
61742                     }
61743                   }
61744                 }
61745               }
61746               leaf cache {
61747                 tailf:info "Use Cached-group";
61748                 description
61749                   "Use Cached-group";
61750                 type union {
61751                   type string {
61752                     tailf:info "WORD;;Server-group name";
61753                   }
61754                   type enumeration {
61755                     enum "radius" {
61756                       tailf:info "Use list of all Radius hosts.";
61757                     }
61758                     enum "tacacs+" {
61759                       tailf:info "Use list of all Tacacs+ hosts.";
61760                     }
61761                   }
61762                 }
61763               }
61764               leaf none {
61765                 tailf:info "NO authentication.";
61766                 description
61767                   "NO authentication.";
61768                 type empty;
61769               }
61770               leaf krb5 {
61771                 when "not(../../a1/krb5) and not(../../a2/krb5) and not(../../a3/krb5)" {
61772                   tailf:dependency "../../a1/krb5";
61773                   tailf:dependency "../../a2/krb5";
61774                   tailf:dependency "../../a3/krb5";
61775                 }
61776                 tailf:info "Use Kerberos 5 authentication.";
61777                 type empty;
61778               }
61779               leaf local {
61780                 when "not(../../a1/local) and not(../../a1/local-case) and not(../../a2/local) and not(../../a2/local-case) and not(../../a3/local) and not(../../a3/local-case)" {
61781                   tailf:dependency "../../a1/local";
61782                   tailf:dependency "../../a1/local-case";
61783                   tailf:dependency "../../a2/local";
61784                   tailf:dependency "../../a2/local-case";
61785                   tailf:dependency "../../a3/local";
61786                   tailf:dependency "../../a3/local-case";
61787                 }
61788                 tailf:info "Use local username authentication.";
61789                 type empty;
61790               }
61791               leaf local-case {
61792                 when "not(../../a1/local) and not(../../a1/local-case) and not(../../a2/local) and not(../../a2/local-case) and not(../../a3/local) and not(../../a3/local-case)" {
61793                   tailf:dependency "../../a1/local";
61794                   tailf:dependency "../../a1/local-case";
61795                   tailf:dependency "../../a2/local";
61796                   tailf:dependency "../../a2/local-case";
61797                   tailf:dependency "../../a3/local";
61798                   tailf:dependency "../../a3/local-case";
61799                 }
61800                 tailf:info "Use case-sensitive local username authentication.";
61801                 type empty;
61802               }
61803             }
61804           }
61805         }
61806       }
61807       container authorization {
61808         tailf:info "Authorization configurations parameters.";
61809         description
61810           "Authorization configurations parameters.";
61811         tailf:cli-incomplete-command;
61812         tailf:cli-diff-dependency "/ios:native/aaa/new-model";
61813         list commands {
61814           tailf:info "For exec (shell) commands.";
61815           description
61816             "For exec (shell) commands.";
61817           tailf:cli-suppress-mode;
61818           tailf:cli-delete-when-empty;
61819           tailf:cli-compact-syntax;
61820           tailf:cli-incomplete-command;
61821           key "level list-name";
61822           leaf level {
61823             tailf:info "Enable level";
61824             description
61825               "Enable level";
61826             type uint8 {
61827               range "0..15";
61828             }
61829           }
61830           leaf list-name {
61831             tailf:cli-incomplete-command;
61832             tailf:cli-disallow-value "group";
61833             type union {
61834               type enumeration {
61835                 enum "default" {
61836                   tailf:info "The default authorization list.";
61837                 }
61838               }
61839               type string {
61840                 tailf:info "WORD;;Named authorization list.";
61841               }
61842             }
61843           }
61844           leaf group {
61845             tailf:info "Use server-group.";
61846             description
61847               "Use server-group.";
61848             tailf:cli-disallow-value "if-authenticated|local|none";
61849             type union {
61850               type enumeration {
61851                 enum "tacacs+" {
61852                   tailf:info "Use list of all Tacacs+ hosts.";
61853                 }
61854               }
61855               type string {
61856                 tailf:info "WORD;;Server-group name";
61857               }
61858             }
61859           }
61860           leaf if-authenticated {
61861             tailf:info "Succeed if user has authenticated.";
61862             description
61863               "Succeed if user has authenticated.";
61864             type empty;
61865           }
61866           leaf local {
61867             tailf:info "Use local database.";
61868             description
61869               "Use local database.";
61870             type empty;
61871           }
61872           leaf none {
61873             tailf:info "No authorization (always succeeds).";
61874             description
61875               "No authorization (always succeeds).";
61876             type empty;
61877           }
61878         }
61879         leaf console {
61880           type empty;
61881         }
61882         leaf config-commands {
61883           tailf:info "For configuration mode commands.";
61884           description
61885             "For configuration mode commands.";
61886           type empty;
61887         }
61888         list exec {
61889           tailf:info "For starting an exec (shell).";
61890           description
61891             "For starting an exec (shell).";
61892           tailf:cli-suppress-mode;
61893           tailf:cli-delete-when-empty;
61894           tailf:cli-compact-syntax;
61895           key "name";
61896           leaf name {
61897             type string {
61898               tailf:info "WORD;;Named authorization list (max 31 characters, longer will be rejected).";
61899             }
61900           }
61901           leaf cache {
61902             tailf:info "Use Cached-group.";
61903             description
61904               "Use Cached-group.";
61905             type union {
61906               type string {
61907                 tailf:info "WORD;;Server-group name";
61908               }
61909               type enumeration {
61910                 enum "ldap" {
61911                   tailf:info "Use list of all LDAP hosts.";
61912                 }
61913                 enum "radius" {
61914                   tailf:info "Use list of all Radius hosts.";
61915                 }
61916                 enum "tacacs" {
61917                   tailf:info "+  Use list of all Tacacs+ hosts.";
61918                 }
61919               }
61920             }
61921           }
61922           leaf group {
61923             tailf:info "Use server-group.";
61924             description
61925               "Use server-group.";
61926             type union {
61927               type string {
61928                 tailf:info "WORD;;Server-group name";
61929               }
61930               type enumeration {
61931                 enum "ldap" {
61932                   tailf:info "Use list of all LDAP hosts.";
61933                 }
61934                 enum "radius" {
61935                   tailf:info "Use list of all Radius hosts.";
61936                 }
61937                 enum "tacacs" {
61938                   tailf:info "+  Use list of all Tacacs+ hosts.";
61939                 }
61940               }
61941             }
61942           }
61943           leaf if-authenticated {
61944             tailf:info "Succeed if user has authenticated.";
61945             description
61946               "Succeed if user has authenticated.";
61947             type empty;
61948           }
61949           leaf krb5-instance {
61950             tailf:info "Use Kerberos instance privilege maps";
61951             description
61952               "Use Kerberos instance privilege maps";
61953             type empty;
61954           }
61955           leaf local {
61956             tailf:info "Use local database.";
61957             description
61958               "Use local database.";
61959             type empty;
61960           }
61961           leaf none {
61962             tailf:info "No authorization (always succeeds).";
61963             description
61964               "No authorization (always succeeds).";
61965             type empty;
61966           }
61967         }
61968         list eventmanager {
61969           tailf:info "For starting an exec (shell).";
61970           description
61971             "For starting an exec (shell).";
61972           tailf:cli-suppress-mode;
61973           tailf:cli-delete-when-empty;
61974           tailf:cli-compact-syntax;
61975           key "name";
61976           leaf name {
61977             type string {
61978               tailf:info "WORD;;Named authorization list (max 31 characters, longer will be rejected).";
61979             }
61980           }
61981           leaf group {
61982             tailf:info "Use server-group.";
61983             description
61984               "Use server-group.";
61985             type union {
61986               type string {
61987                 tailf:info "WORD;;Server-group name";
61988               }
61989               type enumeration {
61990                 enum "ldap" {
61991                   tailf:info "Use list of all LDAP hosts.";
61992                 }
61993                 enum "radius" {
61994                   tailf:info "Use list of all Radius hosts.";
61995                 }
61996                 enum "tacacs" {
61997                   tailf:info "+  Use list of all Tacacs+ hosts.";
61998                 }
61999               }
62000             }
62001           }
62002           leaf local {
62003             tailf:info "Use local database.";
62004             description
62005               "Use local database.";
62006             type empty;
62007           }
62008           leaf none {
62009             tailf:info "No authorization (always succeeds).";
62010             description
62011               "No authorization (always succeeds).";
62012             type empty;
62013           }
62014         }
62015         list network {
62016           tailf:info "For network services. (PPP, SLIP, ARAP)";
62017           description
62018             "For network services. (PPP, SLIP, ARAP)";
62019           tailf:cli-suppress-mode;
62020           key "id";
62021           leaf id {
62022             type union {
62023               type enumeration {
62024                 enum "default" {
62025                   tailf:info "The default authorization list.";
62026                 }
62027               }
62028               type string {
62029                 tailf:info "WORD;;Named authorization list.";
62030                 length "1..31";
62031               }
62032             }
62033           }
62034           container a1 {
62035             tailf:cli-drop-node-name;
62036             tailf:cli-flatten-container;
62037             tailf:cli-compact-syntax;
62038             choice auth-choice {
62039               leaf if-authenticated {
62040                 tailf:info "Succeed if user has authenticated.";
62041                 description
62042                   "Succeed if user has authenticated.";
62043                 type empty;
62044               }
62045               leaf none {
62046                 tailf:info "NO authentication.";
62047                 description
62048                   "NO authentication.";
62049                 type empty;
62050               }
62051               leaf local {
62052                 tailf:info "Use local username authentication.";
62053                 description
62054                   "Use local username authentication.";
62055                 type empty;
62056               }
62057               leaf group {
62058                 tailf:info "Use Server-group";
62059                 description
62060                   "Use Server-group";
62061                 type union {
62062                   type string {
62063                     tailf:info "WORD;;Server-group name";
62064                   }
62065                   type enumeration {
62066                     enum "radius" {
62067                       tailf:info "Use list of all Radius hosts.";
62068                     }
62069                     enum "tacacs+" {
62070                       tailf:info "Use list of all Tacacs+ hosts.";
62071                     }
62072                   }
62073                 }
62074               }
62075               leaf cache {
62076                 tailf:info "Use Cached-group";
62077                 description
62078                   "Use Cached-group";
62079                 type union {
62080                   type string {
62081                     tailf:info "WORD;;Server-group name";
62082                   }
62083                   type enumeration {
62084                     enum "radius" {
62085                       tailf:info "Use list of all Radius hosts.";
62086                     }
62087                     enum "tacacs+" {
62088                       tailf:info "Use list of all Tacacs+ hosts.";
62089                     }
62090                   }
62091                 }
62092               }
62093             }
62094           }
62095           container a2 {
62096             when "not(../a1/none) and not(../a1/if-authenticated)" {
62097               tailf:dependency "../a1/none";
62098               tailf:dependency "../a1/if-authenticated";
62099             }
62100             tailf:cli-drop-node-name;
62101             tailf:cli-flatten-container;
62102             tailf:cli-compact-syntax;
62103             choice auth-choice {
62104               leaf group {
62105                 tailf:info "Use Server-group";
62106                 description
62107                   "Use Server-group";
62108                 type union {
62109                   type string {
62110                     tailf:info "WORD;;Server-group name";
62111                   }
62112                   type enumeration {
62113                     enum "radius" {
62114                       tailf:info "Use list of all Radius hosts.";
62115                     }
62116                     enum "tacacs+" {
62117                       tailf:info "Use list of all Tacacs+ hosts.";
62118                     }
62119                   }
62120                 }
62121               }
62122               leaf cache {
62123                 tailf:info "Use Cached-group";
62124                 description
62125                   "Use Cached-group";
62126                 type union {
62127                   type string {
62128                     tailf:info "WORD;;Server-group name";
62129                   }
62130                   type enumeration {
62131                     enum "radius" {
62132                       tailf:info "Use list of all Radius hosts.";
62133                     }
62134                     enum "tacacs+" {
62135                       tailf:info "Use list of all Tacacs+ hosts.";
62136                     }
62137                   }
62138                 }
62139               }
62140               leaf if-authenticated {
62141                 tailf:info "Succeed if user has authenticated.";
62142                 description
62143                   "Succeed if user has authenticated.";
62144                 type empty;
62145               }
62146               leaf none {
62147                 tailf:info "NO authentication.";
62148                 description
62149                   "NO authentication.";
62150                 type empty;
62151               }
62152               leaf local {
62153                 when "not(../../a1/local)" {
62154                   tailf:dependency "../../a1/local";
62155                 }
62156                 tailf:info "Use local username authentication.";
62157                 type empty;
62158               }
62159             }
62160           }
62161           container a3 {
62162             when "not(../a2/none) and not (../a1/none) and not(../a2/if-authenticated) and not(../a1/if-authenticated)" {
62163               tailf:dependency "../a1/none";
62164               tailf:dependency "../a2/none";
62165               tailf:dependency "../a1/if-authenticated";
62166               tailf:dependency "../a2/if-authenticated";
62167             }
62168             tailf:cli-drop-node-name;
62169             tailf:cli-flatten-container;
62170             tailf:cli-compact-syntax;
62171             choice auth-choice {
62172               leaf group {
62173                 tailf:info "Use Server-group";
62174                 description
62175                   "Use Server-group";
62176                 type union {
62177                   type string {
62178                     tailf:info "WORD;;Server-group name";
62179                   }
62180                   type enumeration {
62181                     enum "radius" {
62182                       tailf:info "Use list of all Radius hosts.";
62183                     }
62184                     enum "tacacs+" {
62185                       tailf:info "Use list of all Tacacs+ hosts.";
62186                     }
62187                   }
62188                 }
62189               }
62190               leaf cache {
62191                 tailf:info "Use Cached-group";
62192                 description
62193                   "Use Cached-group";
62194                 type union {
62195                   type string {
62196                     tailf:info "WORD;;Server-group name";
62197                   }
62198                   type enumeration {
62199                     enum "radius" {
62200                       tailf:info "Use list of all Radius hosts.";
62201                     }
62202                     enum "tacacs+" {
62203                       tailf:info "Use list of all Tacacs+ hosts.";
62204                     }
62205                   }
62206                 }
62207               }
62208               leaf none {
62209                 tailf:info "NO authentication.";
62210                 description
62211                   "NO authentication.";
62212                 type empty;
62213               }
62214               leaf if-authenticated {
62215                 tailf:info "Succeed if user has authenticated.";
62216                 description
62217                   "Succeed if user has authenticated.";
62218                 type empty;
62219               }
62220               leaf local {
62221                 when "not(../../a1/local) and not(../../a2/local)" {
62222                   tailf:dependency "../../a1/local";
62223                   tailf:dependency "../../a2/local";
62224                 }
62225                 tailf:info "Use local username authentication.";
62226                 type empty;
62227               }
62228             }
62229           }
62230           container a4 {
62231             when "not(../a2/none) and not(../a1/none) and not(../a3/none) and not(../a2/if-authenticated) and not(../a1/if-authenticated) and not(../a3/if-authenticated)" {
62232               tailf:dependency "../a1/none";
62233               tailf:dependency "../a2/none";
62234               tailf:dependency "../a3/none";
62235               tailf:dependency "../a1/if-authenticated";
62236               tailf:dependency "../a2/if-authenticated";
62237               tailf:dependency "../a3/if-authenticated";
62238             }
62239             tailf:cli-drop-node-name;
62240             tailf:cli-flatten-container;
62241             tailf:cli-compact-syntax;
62242             choice auth-choice {
62243               leaf group {
62244                 tailf:info "Use Server-group";
62245                 description
62246                   "Use Server-group";
62247                 type union {
62248                   type string {
62249                     tailf:info "WORD;;Server-group name";
62250                   }
62251                   type enumeration {
62252                     enum "radius" {
62253                       tailf:info "Use list of all Radius hosts.";
62254                     }
62255                     enum "tacacs+" {
62256                       tailf:info "Use list of all Tacacs+ hosts.";
62257                     }
62258                   }
62259                 }
62260               }
62261               leaf cache {
62262                 tailf:info "Use Cached-group";
62263                 description
62264                   "Use Cached-group";
62265                 type union {
62266                   type string {
62267                     tailf:info "WORD;;Server-group name";
62268                   }
62269                   type enumeration {
62270                     enum "radius" {
62271                       tailf:info "Use list of all Radius hosts.";
62272                     }
62273                     enum "tacacs+" {
62274                       tailf:info "Use list of all Tacacs+ hosts.";
62275                     }
62276                   }
62277                 }
62278               }
62279               leaf none {
62280                 tailf:info "NO authentication.";
62281                 description
62282                   "NO authentication.";
62283                 type empty;
62284               }
62285               leaf if-authenticated {
62286                 tailf:info "Succeed if user has authenticated.";
62287                 description
62288                   "Succeed if user has authenticated.";
62289                 type empty;
62290               }
62291               leaf local {
62292                 when "not(../../a1/local) and not(../../a2/local) and not(../../a3/local)" {
62293                   tailf:dependency "../../a1/local";
62294                   tailf:dependency "../../a2/local";
62295                   tailf:dependency "../../a3/local";
62296                 }
62297                 tailf:info "Use local username authentication.";
62298                 type empty;
62299               }
62300             }
62301           }
62302         }
62303       }
62304       container accounting {
62305         tailf:info "Accounting configurations parameters.";
62306         description
62307           "Accounting configurations parameters.";
62308         tailf:cli-incomplete-command;
62309         tailf:cli-diff-dependency "/ios:native/aaa/new-model";
62310         list commands {
62311           tailf:info "For exec (shell) commands.";
62312           description
62313             "For exec (shell) commands.";
62314           tailf:cli-compact-syntax;
62315           tailf:cli-incomplete-command;
62316           tailf:cli-sequence-commands;
62317           tailf:cli-suppress-mode;
62318           tailf:cli-delete-when-empty;
62319           key "level list-name";
62320           leaf level {
62321             tailf:info "Enable level";
62322             description
62323               "Enable level";
62324             type uint8 {
62325               range "0..15";
62326             }
62327           }
62328           leaf list-name {
62329             type union {
62330               type enumeration {
62331                 enum "default" {
62332                   tailf:info "The default accounting list.";
62333                 }
62334               }
62335               type string {
62336                 tailf:info "WORD;;Named Accounting list. (max 31 characters)";
62337                 length "1..31";
62338               }
62339             }
62340           }
62341           leaf action-type {
62342             tailf:cli-drop-node-name;
62343             tailf:cli-incomplete-command;
62344             type enumeration {
62345               enum "none" {
62346                 tailf:info "No accounting.";
62347               }
62348               enum "start-stop" {
62349                 tailf:info "Record start and stop without waiting";
62350               }
62351               enum "stop-only" {
62352                 tailf:info "Record stop when service terminates.";
62353               }
62354             }
62355           }
62356           leaf broadcast {
62357             tailf:info "Use Broadcast for Accounting";
62358             description
62359               "Use Broadcast for Accounting";
62360             tailf:cli-optional-in-sequence;
62361             tailf:cli-incomplete-command;
62362             type empty;
62363           }
62364           leaf group {
62365             tailf:info "Use Server-group";
62366             description
62367               "Use Server-group";
62368             tailf:cli-full-command;
62369             type union {
62370               type string {
62371                 tailf:info "WORD;;Server-group name";
62372               }
62373               type enumeration {
62374                 enum "tacacs+" {
62375                   tailf:info "Use list of all Tacacs+ hosts.";
62376                 }
62377               }
62378             }
62379           }
62380         }
62381         list dot1x {
62382           tailf:info "For dot1x sessions.";
62383           description
62384             "For dot1x sessions.";
62385           tailf:cli-suppress-mode;
62386           tailf:cli-sequence-commands;
62387           tailf:cli-compact-syntax;
62388           key "name";
62389           leaf name {
62390             type string {
62391               tailf:info "WORD;;Named Accounting list (max 31 characters, longer will be rejected).";
62392             }
62393           }
62394           container start-stop {
62395             tailf:info "Record start and stop without waiting";
62396             description
62397               "Record start and stop without waiting";
62398             tailf:cli-compact-syntax;
62399             tailf:cli-sequence-commands;
62400             tailf:cli-reset-container;
62401             leaf broadcast {
62402               tailf:info "Use Broadcast for Accounting";
62403               description
62404                 "Use Broadcast for Accounting";
62405               tailf:cli-optional-in-sequence;
62406               type empty;
62407             }
62408             leaf group {
62409               tailf:info "Use Server-group";
62410               description
62411                 "Use Server-group";
62412               type union {
62413                 type string {
62414                   tailf:info "WORD;;Server-group name";
62415                 }
62416                 type enumeration {
62417                   enum "radius" {
62418                     tailf:info "Use list of all Radius hosts.";
62419                   }
62420                   enum "tacacs+" {
62421                     tailf:info "+  Use list of all Tacacs+ hosts.";
62422                   }
62423                 }
62424               }
62425             }
62426           }
62427         }
62428         list exec {
62429           tailf:info "For starting an exec (shell).";
62430           description
62431             "For starting an exec (shell).";
62432           tailf:cli-mode-name "cfg-acct-mlist";
62433           key "name";
62434           leaf name {
62435             type string {
62436               tailf:info "WORD;;Named Accounting list (max 31 characters, longer will be rejected).";
62437             }
62438           }
62439           choice accounting-choice {
62440             leaf none {
62441               tailf:info "No accounting.";
62442               description
62443                 "No accounting.";
62444               type empty;
62445             }
62446             container start-stop {
62447               tailf:info "Record start and stop without waiting";
62448               description
62449                 "Record start and stop without waiting";
62450               tailf:cli-compact-syntax;
62451               tailf:cli-sequence-commands;
62452               tailf:cli-reset-container;
62453               leaf broadcast {
62454                 tailf:info "Use Broadcast for Accounting";
62455                 description
62456                   "Use Broadcast for Accounting";
62457                 tailf:cli-optional-in-sequence;
62458                 type empty;
62459               }
62460               leaf group {
62461                 tailf:info "Use Server-group";
62462                 description
62463                   "Use Server-group";
62464                 type union {
62465                   type string {
62466                     tailf:info "WORD;;Server-group name";
62467                   }
62468                   type enumeration {
62469                     enum "radius" {
62470                       tailf:info "Use list of all Radius hosts.";
62471                     }
62472                     enum "tacacs+" {
62473                       tailf:info "+  Use list of all Tacacs+ hosts.";
62474                     }
62475                   }
62476                 }
62477               }
62478             }
62479             container stop-only {
62480               tailf:info "Record stop when service terminates.";
62481               description
62482                 "Record stop when service terminates.";
62483               tailf:cli-compact-syntax;
62484               tailf:cli-sequence-commands;
62485               tailf:cli-reset-container;
62486               leaf broadcast {
62487                 tailf:info "Use Broadcast for Accounting";
62488                 description
62489                   "Use Broadcast for Accounting";
62490                 tailf:cli-optional-in-sequence;
62491                 type empty;
62492               }
62493               leaf group {
62494                 tailf:info "Use Server-group";
62495                 description
62496                   "Use Server-group";
62497                 type union {
62498                   type string {
62499                     tailf:info "WORD;;Server-group name";
62500                   }
62501                   type enumeration {
62502                     enum "radius" {
62503                       tailf:info "Use list of all Radius hosts.";
62504                     }
62505                     enum "tacacs" {
62506                       tailf:info "+  Use list of all Tacacs+ hosts.";
62507                     }
62508                   }
62509                 }
62510               }
62511             }
62512           }
62513         }
62514         list network {
62515           tailf:info "For network services. (PPP, SLIP, ARAP)";
62516           description
62517             "For network services. (PPP, SLIP, ARAP)";
62518           tailf:cli-suppress-mode;
62519           tailf:cli-compact-syntax;
62520           tailf:cli-sequence-commands {
62521             tailf:cli-reset-siblings;
62522           }
62523           key "id";
62524           leaf id {
62525             type union {
62526               type enumeration {
62527                 enum "default" {
62528                   tailf:info "The default accounting list.";
62529                 }
62530               }
62531               type string {
62532                 tailf:info "WORD;;Named Accounting list.";
62533                 length "1..31";
62534               }
62535             }
62536           }
62537           choice network-choice {
62538             case a {
62539               leaf none {
62540                 tailf:info "No accounting.";
62541                 description
62542                   "No accounting.";
62543                 type empty;
62544               }
62545             }
62546             case b {
62547               leaf mode {
62548                 tailf:cli-drop-node-name;
62549                 type enumeration {
62550                   enum "start-stop" {
62551                     tailf:info "Record start and stop without waiting";
62552                   }
62553                   enum "stop-only" {
62554                     tailf:info "Record stop when service terminates.";
62555                   }
62556                 }
62557               }
62558               leaf broadcast {
62559                 tailf:info "Use Broadcast for Accounting";
62560                 description
62561                   "Use Broadcast for Accounting";
62562                 tailf:cli-optional-in-sequence;
62563                 type empty;
62564               }
62565               container a1 {
62566                 tailf:cli-compact-syntax;
62567                 tailf:cli-drop-node-name;
62568                 tailf:cli-flatten-container;
62569                 leaf group {
62570                   tailf:info "Use server-group.";
62571                   description
62572                     "Use server-group.";
62573                   type union {
62574                     type string {
62575                       tailf:info "WORD;;Server-group name";
62576                     }
62577                     type enumeration {
62578                       enum "ldap" {
62579                         tailf:info "Use list of all LDAP hosts.";
62580                       }
62581                       enum "radius" {
62582                         tailf:info "Use list of all Radius hosts.";
62583                       }
62584                       enum "tacacs" {
62585                         tailf:info "+  Use list of all Tacacs+ hosts.";
62586                       }
62587                     }
62588                   }
62589                 }
62590               }
62591               container a2 {
62592                 tailf:cli-compact-syntax;
62593                 tailf:cli-drop-node-name;
62594                 tailf:cli-flatten-container;
62595                 leaf group {
62596                   tailf:info "Use server-group.";
62597                   description
62598                     "Use server-group.";
62599                   type union {
62600                     type string {
62601                       tailf:info "WORD;;Server-group name";
62602                     }
62603                     type enumeration {
62604                       enum "ldap" {
62605                         tailf:info "Use list of all LDAP hosts.";
62606                       }
62607                       enum "radius" {
62608                         tailf:info "Use list of all Radius hosts.";
62609                       }
62610                       enum "tacacs" {
62611                         tailf:info "+  Use list of all Tacacs+ hosts.";
62612                       }
62613                     }
62614                   }
62615                 }
62616               }
62617               container a3 {
62618                 tailf:cli-compact-syntax;
62619                 tailf:cli-drop-node-name;
62620                 tailf:cli-flatten-container;
62621                 leaf group {
62622                   tailf:info "Use server-group.";
62623                   description
62624                     "Use server-group.";
62625                   type union {
62626                     type string {
62627                       tailf:info "WORD;;Server-group name";
62628                     }
62629                     type enumeration {
62630                       enum "ldap" {
62631                         tailf:info "Use list of all LDAP hosts.";
62632                       }
62633                       enum "radius" {
62634                         tailf:info "Use list of all Radius hosts.";
62635                       }
62636                       enum "tacacs" {
62637                         tailf:info "+  Use list of all Tacacs+ hosts.";
62638                       }
62639                     }
62640                   }
62641                 }
62642               }
62643               container a4 {
62644                 tailf:cli-compact-syntax;
62645                 tailf:cli-drop-node-name;
62646                 tailf:cli-flatten-container;
62647                 leaf group {
62648                   tailf:info "Use server-group.";
62649                   description
62650                     "Use server-group.";
62651                   type union {
62652                     type string {
62653                       tailf:info "WORD;;Server-group name";
62654                     }
62655                     type enumeration {
62656                       enum "ldap" {
62657                         tailf:info "Use list of all LDAP hosts.";
62658                       }
62659                       enum "radius" {
62660                         tailf:info "Use list of all Radius hosts.";
62661                       }
62662                       enum "tacacs" {
62663                         tailf:info "+  Use list of all Tacacs+ hosts.";
62664                       }
62665                     }
62666                   }
62667                 }
62668               }
62669             }
62670           }
62671         }
62672         container system {
62673           tailf:info "For system events.";
62674           description
62675             "For system events.";
62676           choice default-guarantee-first {
62677             case default-case {
62678               container default {
62679                 tailf:info "The default accounting list.";
62680                 description
62681                   "The default accounting list.";
62682                 tailf:cli-compact-syntax;
62683                 presence "true";
62684                 leaf none {
62685                   tailf:info "No accounting.";
62686                   description
62687                     "No accounting.";
62688                   tailf:cli-full-command;
62689                   type empty;
62690                 }
62691                 container start-stop {
62692                   tailf:info "Record start and stop without waiting";
62693                   description
62694                     "Record start and stop without waiting";
62695                   tailf:cli-compact-syntax;
62696                   tailf:cli-sequence-commands;
62697                   tailf:cli-reset-container;
62698                   leaf broadcast {
62699                     tailf:info "Use Broadcast for Accounting";
62700                     description
62701                       "Use Broadcast for Accounting";
62702                     tailf:cli-optional-in-sequence;
62703                     type empty;
62704                   }
62705                   leaf group {
62706                     tailf:info "Use Server-group";
62707                     description
62708                       "Use Server-group";
62709                     type union {
62710                       type string {
62711                         tailf:info "WORD;;Server-group name";
62712                       }
62713                       type enumeration {
62714                         enum "radius" {
62715                           tailf:info "Use list of all Radius hosts.";
62716                         }
62717                         enum "tacacs+" {
62718                           tailf:info "+  Use list of all Tacacs+ hosts.";
62719                         }
62720                       }
62721                     }
62722                   }
62723                 }
62724                 leaf vrf {
62725                   tailf:info "VPN Routing/Forwarding parameters";
62726                   description
62727                     "VPN Routing/Forwarding parameters";
62728                   type string {
62729                     tailf:info "WORD;;Table name";
62730                   }
62731                 }
62732               }
62733             }
62734             case guarantee-first-case {
62735               leaf guarantee-first {
62736                 tailf:info "Guarantee system accounting as first record.";
62737                 description
62738                   "Guarantee system accounting as first record.";
62739                 tailf:cli-boolean-no;
62740                 tailf:cli-trim-default;
62741                 type boolean;
62742               }
62743             }
62744           }
62745         }
62746       }
62747       leaf session-id {
62748         tailf:info "AAA Session ID";
62749         description
62750           "AAA Session ID";
62751         tailf:cli-diff-dependency "/ios:native/aaa/new-model";
62752         type enumeration {
62753           enum "common" {
62754             tailf:info "Common Session ID";
62755           }
62756           enum "unique" {
62757             tailf:info "Unique Session ID for different accounting types";
62758           }
62759         }
62760       }
62761     }
62762     container ethernet {
62763       tailf:info "Ethernet configuration";
62764       description
62765         "Ethernet configuration";
62766       list evc {
62767         tailf:info "define an Ethernet virtual connection (EVC)";
62768         description
62769           "define an Ethernet virtual connection (EVC)";
62770         tailf:cli-compact-syntax;
62771         tailf:cli-full-command;
62772         key "name";
62773         leaf name {
62774           type string {
62775             tailf:info "WORD;;EVC id";
62776             length "1..100";
62777           }
62778         }
62779       }
62780       container lmi {
62781         tailf:info "Local Management Interface";
62782         description
62783           "Local Management Interface";
62784         leaf ce {
62785           tailf:info "Ethernet LMI Customer Edge";
62786           description
62787             "Ethernet LMI Customer Edge";
62788           tailf:cli-full-command;
62789           type empty;
62790         }
62791         leaf global {
62792           tailf:info "Ethernet LMI is enabled on all supported Interfaces";
62793           description
62794             "Ethernet LMI is enabled on all supported Interfaces";
62795           tailf:cli-full-command;
62796           type empty;
62797         }
62798       }
62799       container cfm {
62800         tailf:info "Connectivity Fault Management";
62801         description
62802           "Connectivity Fault Management";
62803         container ais {
62804           tailf:info "AIS Maintenance Condition";
62805           description
62806             "AIS Maintenance Condition";
62807           container link-status {
62808             tailf:info "8023ah SMEP or link state up/down";
62809             description
62810               "8023ah SMEP or link state up/down";
62811             container global {
62812               tailf:info "8023ah SMEP or link state state up/down AIS global configuration";
62813               description
62814                 "8023ah SMEP or link state state up/down AIS global configuration";
62815               tailf:cli-add-mode;
62816               tailf:cli-mode-name "config-ais-link-cfm";
62817               presence "true";
62818               container ais-Mode-config-ais-link-cfm {
62819                 tailf:cli-drop-node-name;
62820                 leaf disable {
62821                   tailf:info "Disable AIS transmission";
62822                   description
62823                     "Disable AIS transmission";
62824                   type empty;
62825                 }
62826                 leaf level {
62827                   tailf:info "Maintenance Level to send AIS";
62828                   description
62829                     "Maintenance Level";
62830                   type uint8 {
62831                     range "0..7";
62832                   }
62833                 }
62834                 container period {
62835                   tailf:info "AIS Transmission period";
62836                   description
62837                     "AIS Transmission period";
62838                   leaf s-1 {
62839                     tailf:alt-name "1";
62840                     tailf:info "Seconds";
62841                     type empty;
62842                   }
62843                   leaf s-60 {
62844                     tailf:alt-name "60";
62845                     tailf:info "Seconds";
62846                     description
62847                       "Seconds";
62848                     type empty;
62849                   }
62850                 }
62851               }
62852             }
62853           }
62854         }
62855         container alarm {
62856           tailf:info "CFM Alarm";
62857           description
62858             "CFM Alarm";
62859           leaf delay {
62860             tailf:info "CFM alarm delay";
62861             description
62862               "msec (default 2500 msec)";
62863             type uint16 {
62864               range "2500..10000";
62865             }
62866           }
62867           container notification {
62868             tailf:info "CFM alarm notification";
62869             description
62870               "CFM alarm notification";
62871             leaf all {
62872               tailf:info "Report all defects: DefRDI, DefMACStatus, DefRemote, DefError, DefXcon";
62873               description
62874                 "Report all defects: DefRDI, DefMACStatus, DefRemote, DefError, DefXcon";
62875               type empty;
62876             }
62877             leaf error-xcon {
62878               tailf:info "Report only: DefError and DefXcon";
62879               description
62880                 "Report only: DefError and DefXcon";
62881               type empty;
62882             }
62883             leaf mac-remote-error-xcon {
62884               tailf:info "Report only: DefMACStatus, DefRemote, DefError and DefXcon (default)";
62885               description
62886                 "Report only: DefMACStatus, DefRemote, DefError and DefXcon (default)";
62887               type empty;
62888             }
62889             leaf none {
62890               tailf:info "No defects to be reported";
62891               description
62892                 "No defects to be reported";
62893               type empty;
62894             }
62895             leaf remote-error-xcon {
62896               tailf:info "Report only: DefRemote, DefError and DefXcon";
62897               description
62898                 "Report only: DefRemote, DefError and DefXcon";
62899               type empty;
62900             }
62901             leaf xcon {
62902               tailf:info "Report only: DefXcon";
62903               description
62904                 "Report only: DefXcon";
62905               type empty;
62906             }
62907           }
62908           leaf packet {
62909             tailf:info "CFM fault alarm Continuity Check packets";
62910             description
62911               "max DefError and DefXcon packets";
62912             type uint16 {
62913               range "1..65535";
62914             }
62915           }
62916           leaf reset {
62917             tailf:info "CFM alarm reset";
62918             description
62919               "msec (default 10000 msec)";
62920             type uint16 {
62921               range "2500..10000";
62922             }
62923           }
62924         }
62925         leaf ieee {
62926           tailf:info "CFM IEEE enable";
62927           description
62928             "CFM IEEE enable";
62929           tailf:cli-full-command;
62930           type empty;
62931         }
62932         leaf global {
62933           tailf:info "CFM global enable";
62934           description
62935             "CFM global enable";
62936           tailf:cli-full-command;
62937           type empty;
62938         }
62939         list domain {
62940           tailf:info "Configure a domain";
62941           description
62942             "Configure a domain";
62943           tailf:cli-mode-name "config-ecfm";
62944           tailf:cli-compact-syntax;
62945           tailf:cli-incomplete-command;
62946           key "name";
62947           leaf name {
62948             type string {
62949               tailf:info "WORD;;maintenance domain name";
62950             }
62951           }
62952           leaf level {
62953             tailf:info "Maintenance Level";
62954             description
62955               "Maintenance Level";
62956             tailf:cli-hide-in-submode;
62957             type uint8 {
62958               tailf:info "<0-7>  maintenance level number";
62959             }
62960           }
62961           list service {
62962             tailf:info "Maintenance Association within Domain";
62963             description
62964               "Maintenance Association within Domain";
62965             tailf:cli-mode-name "config-ecfm-srv";
62966             tailf:cli-compact-syntax;
62967             tailf:cli-sequence-commands;
62968             key "name";
62969             leaf name {
62970               type string {
62971                 tailf:info "WORD;; service instance id - short MA name";
62972               }
62973             }
62974             leaf evc {
62975               tailf:info "Specify EVC";
62976               description
62977                 "Specify EVC";
62978               tailf:cli-hide-in-submode;
62979               type string {
62980                 tailf:info "WORD;;EVC name";
62981               }
62982               tailf:non-strict-leafref {
62983                 path "/ios:native/ethernet/evc/name";
62984               }
62985             }
62986             leaf vlan {
62987               tailf:info "VLAN id";
62988               description
62989                 "VLAN id";
62990               tailf:cli-break-sequence-commands;
62991               type uint16 {
62992                 tailf:info "<1-4094>;;between 1 and 4094";
62993                 range "1..4094";
62994               }
62995             }
62996             container continuity-check {
62997               tailf:info "Enable Continuity Check for Maintenance Association";
62998               description
62999                 "Enable Continuity Check for Maintenance Association";
63000               presence "true";
63001             }
63002           }
63003         }
63004         container logging {
63005           tailf:info "Enable CFM syslog messages";
63006           description
63007             "Enable CFM syslog messages";
63008           presence "true";
63009           leaf ais {
63010             tailf:info "AIS logging";
63011             description
63012               "AIS logging";
63013             type empty;
63014           }
63015           container alarm {
63016             tailf:info "Alarm logging";
63017             description
63018               "Alarm logging";
63019             leaf cisco {
63020               tailf:info "Cisco MIB syslogs";
63021               description
63022                 "Cisco MIB syslogs";
63023               type empty;
63024             }
63025             leaf ieee {
63026               tailf:info "IEEE MIB syslogs";
63027               description
63028                 "IEEE MIB syslogs";
63029               type empty;
63030             }
63031           }
63032         }
63033         container mep {
63034           tailf:info "Maintenance End Point";
63035           description
63036             "Maintenance End Point";
63037           container crosscheck {
63038             tailf:info "Cross Check remote MEPs";
63039             description
63040               "Cross Check remote MEPs";
63041             leaf start-delay {
63042               tailf:info "Wait time before cross check starts";
63043               description
63044                 "seconds (30 seconds default)";
63045               type uint16 {
63046                 range "1..65535";
63047               }
63048             }
63049           }
63050         }
63051         container mip {
63052           tailf:info "CFM MIP commands";
63053           description
63054             "CFM MIP commands";
63055           container auto-create {
63056             tailf:info "CFM MIP auto creation";
63057             description
63058               "CFM MIP auto creation";
63059             container level {
63060               tailf:info "Maintenance Level";
63061               description
63062                 "Maintenance Level";
63063               list mef-num {
63064                 tailf:cli-drop-node-name;
63065                 tailf:cli-suppress-mode;
63066                 key "mef-num";
63067                 leaf mef-num {
63068                   tailf:info "maintenance level number";
63069                   description
63070                     "maintenance level number";
63071                   type uint8 {
63072                     range "0..7";
63073                   }
63074                 }
63075                 leaf evc {
63076                   tailf:info "auto create for CFM over EVC";
63077                   description
63078                     "EVC name";
63079                   type string;
63080                 }
63081                 leaf vlan {
63082                   tailf:info "Specify vlan (range 1-4094)";
63083                   description
63084                     "VLAN id";
63085                   type uint16 {
63086                     range "1..4094";
63087                   }
63088                 }
63089               }
63090             }
63091           }
63092           leaf filter {
63093             tailf:info "CFM MIP filter";
63094             description
63095               "CFM MIP filter";
63096             type empty;
63097           }
63098         }
63099         container traceroute {
63100           tailf:info "CFM Traceroute";
63101           description
63102             "CFM Traceroute";
63103           container cache {
63104             tailf:info "CFM Traceroute Cache";
63105             description
63106               "CFM Traceroute Cache";
63107             presence "true";
63108             leaf hold-time {
63109               tailf:info "Hold Time";
63110               description
63111                 "minutes (default 100)";
63112               type uint16 {
63113                 range "1..65535";
63114               }
63115             }
63116             leaf size {
63117               tailf:info "Cache size";
63118               description
63119                 "Number of cached lines (default 100)";
63120               type uint16 {
63121                 range "1..4095";
63122               }
63123             }
63124           }
63125         }
63126       }
63127       container ring {
63128         tailf:info "Ring";
63129         description
63130           "Ring";
63131         container g8032 {
63132           tailf:info "Specify the g.8032 ethernet ring";
63133           description
63134             "Specify the g.8032 ethernet ring";
63135           list rings {
63136             tailf:cli-drop-node-name;
63137             tailf:cli-mode-name "config-erp-ring";
63138             key "name";
63139             leaf name {
63140               tailf:info "Name of the ethernet ring";
63141               description
63142                 "Name of the ethernet ring";
63143               type string;
63144             }
63145             container ring-Mode-config-erp-ring {
63146               tailf:cli-drop-node-name;
63147               container exclusion-list {
63148                 tailf:info "Specifiy exclusion list not protected by ERP";
63149                 description
63150                   "Specifiy exclusion list not protected by ERP";
63151                 leaf vlan-ids {
63152                   tailf:info "Assign list of VLANs to the exclusion list";
63153                   description
63154                     "List of VLAN IDs in the form a-b,c,d,e-f,g";
63155                   type string;
63156                 }
63157               }
63158               list instance {
63159                 tailf:info "Configure the g.8032 ethernet ring instance";
63160                 description
63161                   "Configure the g.8032 ethernet ring instance";
63162                 tailf:cli-mode-name "config-erp-inst";
63163                 key "number";
63164                 leaf number {
63165                   tailf:info "Instance number";
63166                   description
63167                     "Instance number";
63168                   type uint8 {
63169                     range "1..2";
63170                   }
63171                 }
63172                 container aps-channel {
63173                   tailf:info "Configure g.8032 instance aps-channel";
63174                   description
63175                     "Configure g.8032 instance aps-channel";
63176                   tailf:cli-add-mode;
63177                   tailf:cli-mode-name "config-erp-inst-aps";
63178                   presence "true";
63179                   container aps-Mode-config-erp-inst-aps {
63180                     tailf:cli-drop-node-name;
63181                     leaf level {
63182                       tailf:info "Specify the APS message level";
63183                       description
63184                         "Specify the APS message level";
63185                       type uint8 {
63186                         tailf:info "<0-7>;;APS message level";
63187                         range "0..7";
63188                       }
63189                     }
63190                     container port0 {
63191                       tailf:info "Configure g.8032 aps-channel info associated to port0";
63192                       description
63193                         "Configure g.8032 aps-channel info associated to port0";
63194                       container service {
63195                         tailf:info "Specify an Ethernet Service Instance";
63196                         description
63197                           "Specify an Ethernet Service Instance";
63198                         leaf instance {
63199                           tailf:info "Specify an Ethernet Service Instance";
63200                           description
63201                             "Specify an Ethernet Service Instance";
63202                           type uint16 {
63203                             tailf:info "<1-8184>;;Ethernet Service Instance ID";
63204                             range "1..8184";
63205                           }
63206                         }
63207                       }
63208                     }
63209                     container port1 {
63210                       tailf:info "Configure g.8032 aps-channel info associated to port1";
63211                       description
63212                         "Configure g.8032 aps-channel info associated to port1";
63213                       choice service-instance {
63214                         case none-case {
63215                           leaf none {
63216                             tailf:info "Specify port1 APS channel as none";
63217                             description
63218                               "Specify port1 APS channel as none";
63219                             type empty;
63220                           }
63221                         }
63222                         case service-instance-case {
63223                           container service {
63224                             tailf:info "Specify an Ethernet Service Instance";
63225                             description
63226                               "Specify an Ethernet Service Instance";
63227                             leaf instance {
63228                               tailf:info "Specify an Ethernet Service Instance";
63229                               description
63230                                 "Specify an Ethernet Service Instance";
63231                               type uint16 {
63232                                 tailf:info "<1-8184>;;Ethernet Service Instance ID";
63233                                 range "1..8184";
63234                               }
63235                             }
63236                           }
63237                         }
63238                       }
63239                     }
63240                   }
63241                 }
63242                 leaf description {
63243                   tailf:info "Description for g.8032 ethernet ring instance";
63244                   description
63245                     "Description for the instance";
63246                   tailf:cli-multi-value;
63247                   type string;
63248                 }
63249                 container inclusion-list {
63250                   tailf:info "Specify inclusion list protected by ERP";
63251                   description
63252                     "Specify inclusion list protected by ERP";
63253                   leaf vlan-ids {
63254                     tailf:info "Associates a set of VLAN IDs with the current instance";
63255                     description
63256                       "Associates a set of VLAN IDs with the current instance";
63257                     type string {
63258                       tailf:info "WORD;;List of VLAN IDs in the form a-b,c,d,e-f,g";
63259                     }
63260                   }
63261                 }
63262                 leaf profile {
63263                   tailf:info "Specify associated g.8032 ethernet ring profile";
63264                   description
63265                     "Ethernet ring profile name";
63266                   type string;
63267                 }
63268                 container rpl {
63269                   tailf:info "Specify RPL owner, neighbor or next-neighbor";
63270                   description
63271                     "Specify RPL owner, neighbor or next-neighbor";
63272                   choice port {
63273                     case port0 {
63274                       leaf port0 {
63275                         tailf:info "Assign port0 as RPL owner, neighbor or next-neighbor";
63276                         description
63277                           "Assign port0 as RPL owner, neighbor or next-neighbor";
63278                         type enumeration {
63279                           enum "neighbor" {
63280                             tailf:info "RPL neighbor";
63281                           }
63282                           enum "next-neighbor" {
63283                             tailf:info "RPL next neighbor";
63284                           }
63285                           enum "owner" {
63286                             tailf:info "RPL owner";
63287                           }
63288                         }
63289                       }
63290                     }
63291                     case port1 {
63292                       leaf port1 {
63293                         tailf:info "Assign port1 as RPL owner, neighbor or next-neighbor";
63294                         description
63295                           "Assign port1 as RPL owner, neighbor or next-neighbor";
63296                         type enumeration {
63297                           enum "neighbor" {
63298                             tailf:info "RPL neighbor";
63299                           }
63300                           enum "next-neighbor" {
63301                             tailf:info "RPL next neighbor";
63302                           }
63303                           enum "owner" {
63304                             tailf:info "RPL owner";
63305                           }
63306                         }
63307                       }
63308                     }
63309                   }
63310                 }
63311               }
63312               leaf open-ring {
63313                 tailf:info "Specify the g.8032 ring as open ring";
63314                 description
63315                   "Specify the g.8032 ring as open ring";
63316                 type empty;
63317               }
63318               container port0 {
63319                 tailf:info "Port0 of the local node connected to G.8032 ring";
63320                 description
63321                   "Port0 of the local node connected to G.8032 ring";
63322                 container interface {
63323                   tailf:info "Assign port interface";
63324                   description
63325                     "Assign port interface";
63326                   tailf:cli-compact-syntax;
63327                   tailf:cli-flatten-container;
63328                   uses interface-grouping;
63329                 }
63330               }
63331               container port1 {
63332                 tailf:info "Port1 of the local node connected to G.8032 ring";
63333                 description
63334                   "Port1 of the local node connected to G.8032 ring";
63335                 container interface {
63336                   tailf:info "Assign port interface";
63337                   description
63338                     "Assign port interface";
63339                   tailf:cli-compact-syntax;
63340                   tailf:cli-flatten-container;
63341                   uses interface-grouping;
63342                 }
63343                 leaf none {
63344                   tailf:info "Assign port1 as none to enable g.8032 open-ring";
63345                   description
63346                     "Assign port1 as none to enable g.8032 open-ring";
63347                   type empty;
63348                 }
63349               }
63350             }
63351           }
63352           list profile {
63353             tailf:info "g.8032 ring profile configuration";
63354             description
63355               "g.8032 ring profile configuration";
63356             tailf:cli-mode-name "config-erp-profile";
63357             key "pr-name";
63358             leaf pr-name {
63359               tailf:info "ERP profile name string";
63360               description
63361                 "ERP profile name string";
63362               type string;
63363             }
63364             container pr-Mode-config-erp-profile {
63365               tailf:cli-drop-node-name;
63366               leaf non-revertive {
63367                 tailf:info "Non-revertive ring instance";
63368                 description
63369                   "Non-revertive ring instance";
63370                 type empty;
63371               }
63372               container timer {
63373                 tailf:info "g.8032 timer";
63374                 description
63375                   "g.8032 timer";
63376                 leaf guard {
63377                   tailf:info "Guard timer";
63378                   description
63379                     "milliseconds";
63380                   type uint16 {
63381                     range "10..2000";
63382                   }
63383                 }
63384                 leaf hold-off {
63385                   tailf:info "Hold off timer";
63386                   description
63387                     "seconds";
63388                   type uint8 {
63389                     range "0..10";
63390                   }
63391                 }
63392                 leaf wtr {
63393                   tailf:info "Wait-to-Restore timer";
63394                   description
63395                     "minutes";
63396                   type uint8 {
63397                     range "1..12";
63398                   }
63399                 }
63400               }
63401             }
63402           }
63403         }
63404       }
63405     }
63406     list alarm-contact {
63407       tailf:cli-suppress-mode;
63408       tailf:cli-delete-when-empty;
63409       key "name";
63410       leaf name {
63411         type uint8 {
63412           tailf:info "WORD;;Contact number";
63413           range "1..4";
63414         }
63415       }
63416       leaf description {
63417         tailf:cli-multi-value;
63418         type string {
63419           length "1..80";
63420         }
63421       }
63422       leaf severity {
63423         type enumeration {
63424           enum "critical";
63425           enum "major";
63426           enum "minor";
63427         }
63428       }
63429       leaf trigger {
63430         type enumeration {
63431           enum "open";
63432           enum "closed";
63433         }
63434       }
63435     }
63436     container access-list {
63437       tailf:cli-incomplete-command;
63438       tailf:cli-compact-syntax;
63439       tailf:info "Add an access list entry";
63440       description
63441         "Add an access list entry";
63442       list access-list-standard-range {
63443         tailf:cli-drop-node-name;
63444         tailf:cli-suppress-mode;
63445         tailf:cli-delete-when-empty;
63446         tailf:cli-compact-syntax;
63447         tailf:cli-incomplete-command;
63448         key "listnumber";
63449         leaf listnumber {
63450           tailf:cli-drop-node-name;
63451           tailf:cli-incomplete-command;
63452           tailf:cli-incomplete-no;
63453           tailf:cli-suppress-range;
63454           type uint16 {
63455             range "1..99";
63456             tailf:info "<1..99>;;IP standard access list";
63457           }
63458         }
63459         list std-access-list-rule {
63460           tailf:cli-suppress-mode;
63461           tailf:cli-delete-when-empty;
63462           tailf:cli-drop-node-name;
63463           tailf:cli-compact-syntax;
63464           tailf:cli-show-long-obu-diffs;
63465           ordered-by user;
63466           key "rule";
63467           leaf rule {
63468             tailf:cli-drop-node-name;
63469             tailf:cli-multi-word-key;
63470             type string {
63471               tailf:info
63472                 "deny;;Specify packets to reject
63473                  permit;;Specify packets to forwards
63474                  remark;;Access list entry comment";
63475             }
63476           }
63477         }
63478       }
63479       list access-list-extended-range {
63480         tailf:cli-drop-node-name;
63481         tailf:cli-suppress-mode;
63482         tailf:cli-delete-when-empty;
63483         tailf:cli-compact-syntax;
63484         tailf:cli-incomplete-command;
63485         key "listnumber";
63486         leaf listnumber {
63487           tailf:cli-drop-node-name;
63488           tailf:cli-incomplete-command;
63489           tailf:cli-incomplete-no;
63490           tailf:cli-suppress-range;
63491           type uint16 {
63492             range "100..199";
63493             tailf:info "<100..199>;;IP extended access list";
63494           }
63495         }
63496         list ext-access-list-rule {
63497           tailf:cli-suppress-mode;
63498           tailf:cli-delete-when-empty;
63499           tailf:cli-drop-node-name;
63500           tailf:cli-compact-syntax;
63501           tailf:cli-show-long-obu-diffs;
63502           ordered-by user;
63503           key "rule";
63504           leaf rule {
63505             tailf:cli-drop-node-name;
63506             tailf:cli-multi-word-key;
63507             type string {
63508               tailf:info "deny;;Specify packets to rejectdynamic;;Specify DYNAMIC list of PERMITs or DENYspermit;;Specify packets to forwardsremark;;Access list entry comment";
63509             }
63510           }
63511         }
63512       }
63513       container hardware {
63514         container capture {
63515           leaf mode {
63516             type enumeration {
63517               enum "vlan";
63518             }
63519           }
63520         }
63521       }
63522     }
63523
63524     grouping config-bdomain-mode-grouping {
63525       container ip {
63526         tailf:info "IP related commands";
63527         description
63528           "IP related commands";
63529         container igmp {
63530           tailf:info "IP igmp commands";
63531           description
63532             "IP igmp commands";
63533           container snooping {
63534             tailf:info "IP igmp snooping commands";
63535             description
63536               "IP igmp snooping commands";
63537             presence "true";
63538             container check {
63539               tailf:info "enforce TTL or Rtr-Alert Option checking";
63540               description
63541                 "enforce TTL or Rtr-Alert Option checking";
63542               leaf rtr-alert-option {
63543                 tailf:info "Only accept IGMP packets with router-alert option";
63544                 description
63545                   "Only accept IGMP packets with router-alert option";
63546                 type empty;
63547               }
63548               leaf ttl {
63549                 tailf:info "Only accept IGMP packets with TTL=1";
63550                 description
63551                   "Only accept IGMP packets with TTL=1";
63552                 type empty;
63553               }
63554             }
63555             container explicit-tracking {
63556               tailf:info "IGMP explicit host tracking configuration";
63557               description
63558                 "IGMP explicit host tracking configuration";
63559               leaf limit {
63560                 tailf:info "Explicit Host Tracking DB limit";
63561                 description
63562                   "Explicit Host Tracking DB limit";
63563                 type empty;
63564               }
63565             }
63566             leaf immediate-leave {
63567               tailf:info "Enable IGMPv2 immediate leave processing";
63568               description
63569                 "Enable IGMPv2 immediate leave processing";
63570               type empty;
63571             }
63572             leaf last-member-query-count {
63573               tailf:info "Last member query count";
63574               description
63575                 "Last member query count";
63576               type uint8 {
63577                 tailf:info "<1..7>;;Interval (milliseconds)";
63578                 range "1..7";
63579               }
63580             }
63581             leaf last-member-query-interval {
63582               tailf:info "Last member query interval";
63583               description
63584                 "Last member query interval";
63585               type uint16 {
63586                 tailf:info "<100..32767>;;Interval (milliseconds)";
63587                 range "100..32767";
63588               }
63589             }
63590             container mrouter {
63591               tailf:info "Configure an L2 port as a multicast router port";
63592               description
63593                 "Configure an L2 port as a multicast router port";
63594               leaf interface {
63595                 tailf:info "next-hop interface to mrouter";
63596                 description
63597                   "next-hop interface to mrouter";
63598                 type empty;
63599               }
63600             }
63601             container querier {
63602               tailf:info "Enable IGMP querier for this Bdomain";
63603               description
63604                 "Enable IGMP querier for this Bdomain";
63605               presence "true";
63606               leaf address {
63607                 tailf:info "IGMP querier source IP address";
63608                 description
63609                   "IGMP querier source IP address";
63610                 type empty;
63611               }
63612               leaf max-response-time {
63613                 tailf:info "IGMP querier maximum response time (sec)";
63614                 description
63615                   "IGMP querier maximum response time (sec)";
63616                 type empty;
63617               }
63618               leaf query-interval {
63619                 tailf:info "IGMP querier query interval (sec)";
63620                 description
63621                   "IGMP querier query interval (sec)";
63622                 type empty;
63623               }
63624               leaf tcn {
63625                 tailf:info "IGMP querier TCN related parameters";
63626                 description
63627                   "IGMP querier TCN related parameters";
63628                 type empty;
63629               }
63630               leaf timer {
63631                 tailf:info "IGMP other querier timer";
63632                 description
63633                   "IGMP other querier timer";
63634                 type empty;
63635               }
63636               leaf version {
63637                 tailf:info "IGMP version";
63638                 description
63639                   "IGMP version";
63640                 type empty;
63641               }
63642             }
63643             leaf report-suppression {
63644               tailf:info "Enable IGMP report suppression";
63645               description
63646                 "Enable IGMP report suppression";
63647               type empty;
63648             }
63649             leaf robustness-variable {
63650               tailf:info "IGMP snooping bdomain robustness variable";
63651               type uint8 {
63652                 tailf:info "<1..3>;;Robustness variable";
63653                 range "1..3";
63654               }
63655             }
63656             leaf static {
63657               tailf:info "Configure an L2 port as a member of a group";
63658               description
63659                 "Configure an L2 port as a member of a group";
63660               type inet:ipv4-address {
63661                 tailf:info "IP address of the group";
63662               }
63663             }
63664           }
63665         }
63666       }
63667       container mac {
63668         tailf:info "MAC Address related commands";
63669         description
63670           "MAC Address related commands";
63671         leaf aging-time {
63672           tailf:info "Set age time of mac addresses per bridge domain";
63673           description
63674             "Set age time of mac addresses per bridge domain";
63675           type uint16 {
63676             tailf:info "<30..3600>;;Aging time in seconds, default 300 seconds (or 1800 seconds for overlay bridge domains)";
63677             range "30..3600";
63678           }
63679         }
63680         leaf learning {
63681           tailf:info "Disable mac learning on bridge domain";
63682           description
63683             "Disable mac learning on bridge domain";
63684           type empty;
63685         }
63686         container limit {
63687           tailf:info "Limit the MAC Addresses learnt";
63688           description
63689             "Limit the MAC Addresses learnt";
63690           container action {
63691             tailf:info "action when exceeding the limit";
63692             description
63693               "action when exceeding the limit";
63694             container flooding {
63695               tailf:info "Mac flooding";
63696               description
63697                 "Mac flooding";
63698               leaf disable {
63699                 tailf:info "disable";
63700                 description
63701                   "disable";
63702                 type empty;
63703               }
63704             }
63705           }
63706           container maximum {
63707             tailf:info "Maximum";
63708             description
63709               "Maximum";
63710             leaf addresses {
63711               tailf:info "Addresses";
63712               description
63713                 "Addresses";
63714               type uint32 {
63715                 tailf:info "<1..65536>;;Number of addresses that can be learnt";
63716                 range "1..65536";
63717               }
63718             }
63719           }
63720         }
63721       }
63722       container member {
63723         tailf:info "bridge-domain member";
63724         description
63725           "bridge-domain member";
63726         list mem-ipv4 {
63727           tailf:cli-drop-node-name;
63728           tailf:cli-suppress-mode;
63729           key "mem-ipv4";
63730           leaf mem-ipv4 {
63731             tailf:info "IP address of the peer";
63732             description
63733               "IP address of the peer";
63734             type inet:ipv4-address;
63735           }
63736           list mem-vcid {
63737             tailf:cli-drop-node-name;
63738             tailf:cli-suppress-mode;
63739             key "mem-vcid";
63740             leaf mem-vcid {
63741               tailf:info "<1..4294967295>;;Enter VC ID value";
63742               description
63743                 "<1..4294967295>;;Enter VC ID value";
63744               type uint32 {
63745                 range "1..4294967295";
63746               }
63747             }
63748             container encapsulation {
63749               tailf:info "Data encapsulation method";
63750               description
63751                 "Data encapsulation method";
63752               presence "true";
63753               leaf mpls {
63754                 tailf:info "Use MPLS encapsulation";
63755                 description
63756                   "Use MPLS encapsulation";
63757                 type empty;
63758               }
63759             }
63760             container template {
63761               tailf:info "Template to use for encapsulation and protocol configuration";
63762               description
63763                 "Template to use for encapsulation and protocol configuration";
63764               presence "true";
63765               leaf template {
63766                 tailf:info "<WORD>;;template name (Max size 32)";
63767                 description
63768                   "<WORD>;;template name (Max size 32)";
63769                 tailf:cli-drop-node-name;
63770                 type string;
63771               }
63772             }
63773           }
63774           container encapsulation {
63775             tailf:info "Data encapsulation method";
63776             description
63777               "Data encapsulation method";
63778             leaf mpls {
63779               tailf:info "Use MPLS encapsulation";
63780               description
63781                 "Use MPLS encapsulation";
63782               type empty;
63783             }
63784           }
63785           leaf template {
63786             tailf:info "Template to use for encapsulation and protocol configuration";
63787             description
63788               "Template to use for encapsulation and protocol configuration";
63789             type string {
63790               tailf:info "<WORD>;;template name (Max size 32)";
63791             }
63792           }
63793         }
63794         list ACR {
63795           tailf:cli-suppress-mode;
63796           key "acr-int";
63797           leaf acr-int {
63798             tailf:info "<WORD>;;Virtual ACR interface";
63799             description
63800               "<WORD>;;Virtual ACR interface";
63801             type string;
63802           }
63803           container service-instance {
63804             tailf:info "ethernt serivce instance";
63805             description
63806               "ethernt serivce instance";
63807             list sii {
63808               tailf:cli-drop-node-name;
63809               tailf:cli-suppress-mode;
63810               key "sii";
63811               leaf sii {
63812                 tailf:info "<1..8000>;;Service Instance Identifier";
63813                 description
63814                   "<1..8000>;;Service Instance Identifier";
63815                 type uint16 {
63816                   range "1..8000";
63817                 }
63818               }
63819               leaf split-horizon {
63820                 tailf:info "Configure this port as a member of a split horizon group";
63821                 description
63822                   "Configure this port as a member of a split horizon group";
63823                 type empty;
63824               }
63825             }
63826           }
63827         }
63828         leaf Analysis-Module {
63829           tailf:info "Cisco network analysis service module";
63830           description
63831             "Cisco network analysis service module";
63832           type uint8 {
63833             tailf:info "Analysis-Module interface number";
63834           }
63835         }
63836         leaf Fcpa {
63837           tailf:info "Fiber Channel";
63838           description
63839             "Fiber Channel";
63840           type uint8 {
63841             tailf:info "Fcpa interface number";
63842           }
63843         }
63844         leaf SBC {
63845           tailf:info "Session Border Controller";
63846           description
63847             "Session Border Controller";
63848           type uint32 {
63849             tailf:info "<0..2147483647>;;SBC interface number";
63850             range "0..2147483647";
63851           }
63852         }
63853         leaf SONET_ACR {
63854           tailf:info "Virtual SONET-ACR controller";
63855           description
63856             "Virtual SONET-ACR controller";
63857           type uint8 {
63858             tailf:info "SONET_ACR interface number";
63859           }
63860         }
63861         leaf Service-Engine {
63862           tailf:info "Cisco service engine module";
63863           description
63864             "Cisco service engine module";
63865           type uint8 {
63866             tailf:info "Service-Engine interface number";
63867           }
63868         }
63869         leaf Tunnel-tp {
63870           tailf:info "MPLS Transport Profile interface";
63871           description
63872             "MPLS Transport Profile interface";
63873           type uint16 {
63874             tailf:info "<0..65535>;;Tunnel-tp interface number";
63875             range "0..65535";
63876           }
63877         }
63878         leaf VPN {
63879           tailf:info "VPN interface";
63880           description
63881             "VPN interface";
63882           type uint32 {
63883             tailf:info "<0..2147483647>;;VPN interface number";
63884             range "0..2147483647";
63885           }
63886         }
63887         leaf Virtual-TokenRing {
63888           tailf:info "Virtual TokenRing";
63889           description
63890             "Virtual TokenRing";
63891           type uint32 {
63892             tailf:info "<0..2147483647>;;Virtual-TokenRing interface number";
63893             range "0..2147483647";
63894           }
63895         }
63896         leaf ucse {
63897           tailf:info "Cisco ucse server";
63898           description
63899             "Cisco ucse server";
63900           type uint8 {
63901             tailf:info "ucse interface number";
63902           }
63903         }
63904         leaf vasileft {
63905           tailf:info "VasiLeft interface";
63906           description
63907             "VasiLeft interface";
63908           type uint16 {
63909             tailf:info "<1..2000>;;vasileft interface number";
63910             range "1..2000";
63911           }
63912         }
63913         leaf vasiright {
63914           tailf:info "VasiRight interface";
63915           description
63916             "VasiRight interface";
63917           type uint16 {
63918             tailf:info "<1..2000>;;vasiright interface number";
63919             range "1..2000";
63920           }
63921         }
63922         leaf vfi {
63923           tailf:info "Configure the Virtual Forwarding Instance (VFI) member";
63924           description
63925             "Enter VFI name";
63926           type string;
63927         }
63928         leaf vni {
63929           type uint32 {
63930             tailf:info "<4096..16777215>;;VNI ID/number";
63931             range "4096..16777215";
63932           }
63933         }
63934         list member-interface {
63935           tailf:cli-drop-node-name;
63936           tailf:cli-suppress-mode;
63937           tailf:cli-sequence-commands;
63938           tailf:cli-compact-syntax;
63939           key "interface";
63940           leaf interface {
63941             type string;
63942           }
63943           leaf interface-id {
63944             tailf:cli-drop-node-name;
63945             tailf:cli-optional-in-sequence;
63946             type union {
63947               type string;
63948               type uint32;
63949             }
63950           }
63951           leaf service-instance {
63952             tailf:info "ethernt serivce instance";
63953             description
63954               "ethernt serivce instance";
63955             type uint32 {
63956               tailf:info "<1-8000>;;Service Instance Identifier";
63957               range "1..8000";
63958             }
63959           }
63960           container split-horizon {
63961             tailf:info "Configure this port as a member of a split horizon group";
63962             description
63963               "Configure this port as a member of a split horizon group";
63964             tailf:cli-flatten-container;
63965             tailf:cli-break-sequence-commands;
63966             leaf group {
63967               tailf:info "Split-horizon group";
63968               description
63969                 "Split-horizon group";
63970               type uint8 {
63971                 tailf:info "<0-1>;;Split-horizon group number";
63972               }
63973             }
63974           }
63975         }
63976       }
63977       leaf shutdown {
63978         tailf:info "Take the bridge domain admin down";
63979         description
63980           "Take the bridge domain admin down";
63981         type empty;
63982       }
63983     }
63984     container bridge-domain {
63985       tailf:info "Bridge-domain global configuration commands";
63986       description
63987         "Bridge-domain global configuration commands";
63988       list brd-id {
63989         tailf:cli-drop-node-name;
63990         tailf:cli-mode-name "config-bdomain";
63991         key "bridge-domain-id";
63992         leaf bridge-domain-id {
63993           tailf:info "<1..8192>;;bridge-domain ID";
63994           description
63995             "<1..8192>;;bridge-domain ID";
63996           type uint16 {
63997             range "1..8192";
63998           }
63999         }
64000         uses config-bdomain-mode-grouping;
64001       }
64002       container c-mac {
64003         tailf:info "Configure c-mac global commands";
64004         description
64005           "Configure c-mac global commands";
64006         leaf aging-time {
64007           tailf:info "Configure aging time for c-mac bridge domains";
64008           description
64009             "Configure aging time for c-mac bridge domains";
64010           type uint16 {
64011             tailf:info "<30..3600>;;Aging time in second, default 300 seconds (or 1800 seconds for overlay bridge domains)";
64012             range "30..3600";
64013           }
64014         }
64015       }
64016       container otv {
64017         tailf:info "Configure overlay bridge domains";
64018         description
64019           "Configure overlay bridge domains";
64020         container default {
64021           tailf:info "Change default setting of overlay bridge domains";
64022           description
64023             "Change default setting of overlay bridge domains";
64024           leaf age-time {
64025             tailf:info "Configure default mac aging time of overlay bridge domains";
64026             description
64027               "Configure default mac aging time of overlay bridge domains";
64028             type uint16 {
64029               tailf:info "<30..3600>;;Default aging time in seconds for overlay bridge domains";
64030               range "30..3600";
64031             }
64032           }
64033         }
64034       }
64035       container parameterized {
64036         tailf:info "bridge-domain is derived from parameters";
64037         description
64038           "bridge-domain is derived from parameters";
64039         container vlan {
64040           tailf:info "bridge-domain from service instance vlan";
64041           description
64042             "bridge-domain from service instance vlan";
64043           tailf:cli-add-mode;
64044           tailf:cli-mode-name "config-bdomain";
64045           presence "true";
64046           uses config-bdomain-mode-grouping;
64047         }
64048       }
64049     }
64050     container crypto {
64051       tailf:info "Encryption module";
64052       description
64053         "Encryption module";
64054       container call {
64055         tailf:info "Configure Crypto Call Admission Control";
64056         description
64057           "Configure Crypto Call Admission Control";
64058         container admission {
64059           tailf:info "Configure Crypto Call Admission Control";
64060           description
64061             "Configure Crypto Call Admission Control";
64062           container limit {
64063             tailf:info "Configure Crypto Call Admission Control limits";
64064             description
64065               "Configure Crypto Call Admission Control limits";
64066             container all {
64067               tailf:info "onfigure Crypto Call Admission Control total in-negotiation SA limit";
64068               description
64069                 "onfigure Crypto Call Admission Control total in-negotiation SA limit";
64070               leaf in-negotiation-sa {
64071                 tailf:info "Maximum number of in-negotiation SAs allowed";
64072                 description
64073                   "Maximum number of in-negotiation SAs allowed";
64074                 type uint32 {
64075                   tailf:info "<10-99999>;;maximum in-negotiation TOTAL SA limit";
64076                   range "10..99999";
64077                 }
64078               }
64079             }
64080             container ike {
64081               tailf:info "Configure Crypto Call Admission Control active IKE SA limit";
64082               description
64083                 "Configure Crypto Call Admission Control active IKE SA limit";
64084               leaf in-negotiation-sa {
64085                 tailf:info "Maximum number of in-negotiation IKE SAs allowed";
64086                 description
64087                   "Maximum number of in-negotiation IKE SAs allowed";
64088                 type uint32 {
64089                   tailf:info "<10-99999>;;maximum in-negotiation IKE SA limit";
64090                   range "10..99999";
64091                 }
64092               }
64093               leaf sa {
64094                 tailf:info "Maximum active IKE SAs allowed";
64095                 description
64096                   "Maximum active IKE SAs allowed";
64097                 type uint32 {
64098                   tailf:info "<0-99999>;;IKE active SA limit";
64099                   range "0..99999";
64100                 }
64101               }
64102             }
64103             container ipsec {
64104               tailf:info "Configure Crypto Call Admission Control active IPSec SA limit";
64105               description
64106                 "Configure Crypto Call Admission Control active IPSec SA limit";
64107               leaf sa {
64108                 tailf:info "Maximum active IPSec SAs allowed";
64109                 description
64110                   "Maximum active IPSec SAs allowed";
64111                 type uint32 {
64112                   tailf:info "<0-99999>;;IPSEC active SA limit";
64113                   range "0..99999";
64114                 }
64115               }
64116             }
64117           }
64118         }
64119       }
64120       list dynamic-map {
64121         tailf:info "Specify a dynamic crypto map template";
64122         description
64123           "Specify a dynamic crypto map template";
64124         tailf:cli-mode-name "config-crypto-map";
64125         key "name sequence";
64126         leaf name {
64127           type string {
64128             tailf:info "WORD;;Dynamic crypto map template tag";
64129           }
64130         }
64131         leaf sequence {
64132           type uint16 {
64133             tailf:info "<1-65535>;;Sequence to insert into dynamic-map entry";
64134           }
64135         }
64136         container default {
64137           tailf:info "Set a command to its defaults";
64138           description
64139             "Set a command to its defaults";
64140           uses crypto-dynamic-map-default-grouping;
64141         }
64142         uses crypto-dynamic-map-grouping;
64143       }
64144       container engine {
64145         tailf:info "Enter a crypto engine configurable menu";
64146         description
64147           "Enter a crypto engine configurable menu";
64148         leaf software {
64149           tailf:info "Software crypto engine";
64150           description
64151             "Software crypto engine";
64152           type enumeration {
64153             enum "ipsec" {
64154               tailf:info "Allow software crypto engine to process IPSec";
64155             }
64156             enum "isakmp" {
64157               tailf:info "Force isakmp to use the software crypto engine";
64158             }
64159           }
64160         }
64161       }
64162       container gdoi {
64163         tailf:info "Configure GKM (Group Key Management, GDOI or G-IKEv2) Policy";
64164         description
64165           "Configure GKM (Group Key Management, GDOI or G-IKEv2) Policy";
64166         list group {
64167           tailf:info "Configure a GKM (Group Key Management, GDOI or G-IKEv2) Group";
64168           description
64169             "Configure a GKM (Group Key Management, GDOI or G-IKEv2) Group";
64170           tailf:cli-mode-name "config-gkm-group";
64171           key "name";
64172           leaf name {
64173             type string {
64174               tailf:info "WORD;;Group name";
64175             }
64176             tailf:cli-disallow-value "ipv6";
64177           }
64178           leaf ipv6 {
64179             tailf:info "IPv6 GKM (Group Key Management) Group";
64180             description
64181               "IPv6 GKM (Group Key Management) Group";
64182             tailf:cli-prefix-key;
64183             type empty;
64184           }
64185           uses crypto-gdio-grouping;
64186           container default {
64187             tailf:info "Set a command to its defaults";
64188             description
64189               "Set a command to its defaults";
64190             uses crypto-gdio-default-grouping;
64191           }
64192         }
64193       }
64194       container gkm {
64195         tailf:info "Configure GKM (Group Key Management, GDOI or G-IKEv2) Policy";
64196         description
64197           "Configure GKM (Group Key Management, GDOI or G-IKEv2) Policy";
64198         list group {
64199           tailf:info "Configure a GKM (Group Key Management, GDOI or G-IKEv2) Group";
64200           description
64201             "Configure a GKM (Group Key Management, GDOI or G-IKEv2) Group";
64202           tailf:cli-mode-name "config-gkm-group";
64203           key "name";
64204           leaf name {
64205             type string {
64206               tailf:info "WORD;;Group name";
64207             }
64208             tailf:cli-disallow-value "ipv6";
64209           }
64210           leaf ipv6 {
64211             tailf:info "IPv6 GKM (Group Key Management) Group";
64212             description
64213               "IPv6 GKM (Group Key Management) Group";
64214             tailf:cli-prefix-key;
64215             type empty;
64216           }
64217           uses crypto-gdio-grouping;
64218           container default {
64219             tailf:info "Set a command to its defaults";
64220             description
64221               "Set a command to its defaults";
64222             uses crypto-gdio-default-grouping;
64223           }
64224         }
64225       }
64226       list identity {
64227         tailf:info "Enter a crypto identity list";
64228         description
64229           "Enter a crypto identity list";
64230         tailf:cli-mode-name "config-crypto-identity";
64231         key "name";
64232         leaf name {
64233           type string {
64234             tailf:info "WORD;;Crypto identity tag";
64235           }
64236         }
64237         container default {
64238           tailf:info "Set a command to its defaults";
64239           description
64240             "Set a command to its defaults";
64241           uses crypto-identity-default-grouping;
64242         }
64243         uses crypto-identity-grouping;
64244       }
64245       container ikev2 {
64246         tailf:info "Configure IKEv2 Options";
64247         description
64248           "Configure IKEv2 Options";
64249         uses crypto-ikev2-grouping;
64250       }
64251       container ipsec {
64252         tailf:info "Configure IPSEC policy";
64253         description
64254           "Configure IPSEC policy";
64255         uses crypto-ipsec-grouping;
64256       }
64257       container isakmp {
64258         tailf:info "Configure ISAKMP policy";
64259         description
64260           "Configure ISAKMP policy";
64261         uses crypto-isakmp-grouping;
64262       }
64263       container key {
64264         tailf:info "Long term key operations";
64265         description
64266           "Long term key operations";
64267         uses crypto-key-grouping;
64268       }
64269       list keyring {
64270         tailf:info "Key ring commands";
64271         description
64272           "Key ring commands";
64273         tailf:cli-mode-name "config-keyring";
64274         key "name";
64275         leaf name {
64276           type string {
64277             tailf:info "WORD;;name of the key ring";
64278           }
64279         }
64280         leaf vrf {
64281           tailf:info "Mention a vrf it belongs to";
64282           description
64283             "Mention a vrf it belongs to";
64284           tailf:cli-hide-in-submode;
64285           type string {
64286             tailf:info "WORD;;the VRF name";
64287           }
64288         }
64289         container default {
64290           tailf:info "Set a command to its defaults";
64291           description
64292             "Set a command to its defaults";
64293           uses crypto-keyring-grouping;
64294         }
64295         uses crypto-keyring-grouping;
64296       }
64297       container logging {
64298         tailf:info "logging messages";
64299         description
64300           "logging messages";
64301         container ezvpn {
64302           tailf:info "ezvpn logging enable/disable";
64303           description
64304             "ezvpn logging enable/disable";
64305           presence "true";
64306           leaf group {
64307             tailf:info "ezvpn group";
64308             description
64309               "ezvpn group";
64310             type string {
64311               tailf:info "WORD;;group name";
64312             }
64313           }
64314         }
64315         leaf ikev2 {
64316           tailf:info "logging IKEv2 sessions";
64317           description
64318             "logging IKEv2 sessions";
64319           type empty;
64320         }
64321         leaf session {
64322           tailf:info "logging up/down session";
64323           description
64324             "logging up/down session";
64325           type empty;
64326         }
64327       }
64328       container map-ipv6 {
64329         tailf:cli-drop-node-name;
64330         list map {
64331           tailf:info "Enter a crypto map";
64332           description
64333             "Enter a crypto map";
64334           tailf:cli-mode-name "config-crypto-map";
64335           tailf:cli-sequence-commands;
64336           tailf:cli-compact-syntax;
64337           key "name";
64338           leaf name {
64339             type string {
64340               tailf:info "WORD;;Crypto map tag";
64341             }
64342           }
64343           leaf ipv6 {
64344             tailf:info "IPv6 crypto map";
64345             description
64346               "IPv6 crypto map";
64347             tailf:cli-optional-in-sequence;
64348             tailf:cli-prefix-key;
64349             type empty;
64350           }
64351           leaf sequence-number {
64352             tailf:cli-drop-node-name;
64353             tailf:cli-hide-in-submode;
64354             type uint16 {
64355               tailf:info "<1-65535>;;Sequence to insert into crypto map entry";
64356             }
64357           }
64358           leaf keying {
64359             tailf:cli-drop-node-name;
64360             tailf:cli-hide-in-submode;
64361             tailf:cli-optional-in-sequence;
64362             type enumeration {
64363               enum "ipsec-isakmp" {
64364                 tailf:info "IPSEC w/ISAKMP";
64365               }
64366               enum "ipsec-manual" {
64367                 tailf:info "IPSEC w/manual keying";
64368               }
64369               enum "gdoi" {
64370                 tailf:info "configure GDOI map";
64371               }
64372             }
64373           }
64374           choice dynamic-profile {
64375             case dynamic-case {
64376               leaf dynamic {
64377                 tailf:info "Enable dynamic crypto map support";
64378                 description
64379                   "Enable dynamic crypto map support";
64380                 tailf:cli-hide-in-submode;
64381                 tailf:cli-break-sequence-commands;
64382                 tailf:cli-full-command;
64383                 when "../keying = 'ipsec-isakmp'";
64384                 type string {
64385                   tailf:info "WORD;;Name of dynamic-map template";
64386                 }
64387               }
64388             }
64389             case profile-case {
64390               leaf profile {
64391                 tailf:info "Enable crypto map as a crypto-profile";
64392                 description
64393                   "Enable crypto map as a crypto-profile";
64394                 tailf:cli-hide-in-submode;
64395                 tailf:cli-full-command;
64396                 when "../keying = 'ipsec-isakmp'";
64397                 type string {
64398                   tailf:info "WORD;;Name for this crypto profile";
64399                 }
64400               }
64401             }
64402           }
64403           container default {
64404             tailf:info "Set a command to its defaults";
64405             description
64406               "Set a command to its defaults";
64407             tailf:cli-break-sequence-commands;
64408             uses crypto-map-default-grouping;
64409           }
64410           uses crypto-map-grouping;
64411         }
64412       }
64413       container map-ipv6-gdoi {
64414         tailf:cli-drop-node-name;
64415         list map {
64416           tailf:info "Enter a crypto map";
64417           description
64418             "Enter a crypto map";
64419           tailf:cli-mode-name "config-crypto-map-fail-close";
64420           key "name";
64421           leaf name {
64422             type string {
64423               tailf:info "WORD;;Crypto map tag";
64424             }
64425           }
64426           leaf ipv6 {
64427             tailf:info "IPv6 crypto map";
64428             description
64429               "IPv6 crypto map";
64430             tailf:cli-prefix-key;
64431             type empty;
64432           }
64433           leaf gdoi {
64434             tailf:info "Configure crypto map gdoi features";
64435             description
64436               "Configure crypto map gdoi features";
64437             tailf:cli-hide-in-submode;
64438             type enumeration {
64439               enum "fail-close" {
64440                 tailf:info "Configure crypto map on Fail Close mode";
64441               }
64442             }
64443           }
64444           container default {
64445             tailf:info "Set a command to its defaults";
64446             description
64447               "Set a command to its defaults";
64448             uses crypto-map-gdoi-default-mapping;
64449           }
64450           uses crypto-map-gdoi-mapping;
64451         }
64452       }
64453       container map-client {
64454         tailf:cli-drop-node-name;
64455         list map {
64456           tailf:info "Enter a crypto map";
64457           description
64458             "Enter a crypto map";
64459           tailf:cli-suppress-mode;
64460           key "name";
64461           leaf name {
64462             type string {
64463               tailf:info "WORD;;Crypto map tag";
64464             }
64465           }
64466           leaf ipv6 {
64467             tailf:info "IPv6 crypto map";
64468             description
64469               "IPv6 crypto map";
64470             tailf:cli-prefix-key;
64471             type empty;
64472           }
64473           container client {
64474             tailf:info "Specify client configuration settings";
64475             description
64476               "Specify client configuration settings";
64477             tailf:cli-display-separated;
64478             container accounting {
64479               tailf:info "Accounting parameters.";
64480               description
64481                 "Accounting parameters.";
64482               leaf list {
64483                 tailf:info "AAA accounting list to use";
64484                 description
64485                   "AAA accounting list to use";
64486                 tailf:cli-full-command;
64487                 type string {
64488                   tailf:info "WORD;;Named accounting list.";
64489                 }
64490               }
64491             }
64492             container authentication {
64493               tailf:info "Use Extended Authentication";
64494               description
64495                 "Use Extended Authentication";
64496               leaf list {
64497                 tailf:info "AAA authentication list to use";
64498                 description
64499                   "AAA authentication list to use";
64500                 tailf:cli-full-command;
64501                 type string {
64502                   tailf:info "WORD;;Named authentication list.";
64503                 }
64504               }
64505             }
64506             container configuration {
64507               tailf:info "Specify client configuration settings";
64508               description
64509                 "Specify client configuration settings";
64510               container address {
64511                 tailf:info "Specify client network address configuration";
64512                 description
64513                   "Specify client network address configuration";
64514                 leaf initiate {
64515                   tailf:info "Push the network address to the client";
64516                   description
64517                     "Push the network address to the client";
64518                   tailf:cli-full-command;
64519                   type empty;
64520                 }
64521                 leaf respond {
64522                   tailf:info "Respond to network address requests from the client";
64523                   description
64524                     "Respond to network address requests from the client";
64525                   tailf:cli-full-command;
64526                   type empty;
64527                 }
64528               }
64529             }
64530           }
64531           container isakmp {
64532             tailf:info "Specify isakmp configuration settings";
64533             description
64534               "Specify isakmp configuration settings";
64535             tailf:cli-sequence-commands;
64536             tailf:cli-compact-syntax;
64537             tailf:cli-display-separated;
64538             leaf authorization {
64539               tailf:info "Authorization parameters.";
64540               description
64541                 "Authorization parameters.";
64542               type empty;
64543             }
64544             leaf list {
64545               tailf:info "AAA Authorization list to use";
64546               description
64547                 "AAA Authorization list to use";
64548               tailf:cli-full-command;
64549               type string {
64550                 tailf:info "WORD;;Named Authorization list.";
64551               }
64552             }
64553           }
64554           leaf isakmp-profile {
64555             tailf:info "Specify isakmp profile to use";
64556             description
64557               "Specify isakmp profile to use";
64558             tailf:cli-full-command;
64559             type string {
64560               tailf:info "WORD;;Name of the isakmp profile";
64561             }
64562           }
64563           leaf local-address {
64564             tailf:info "Interface to use for local address for this crypto map";
64565             description
64566               "Interface to use for local address for this crypto map";
64567             tailf:cli-full-command;
64568             type string;
64569           }
64570           container redundancy {
64571             tailf:info "High availability options for this map";
64572             description
64573               "High availability options for this map";
64574             tailf:cli-display-separated;
64575             container replay-interval {
64576               tailf:info "HA replay counter interval";
64577               description
64578                 "HA replay counter interval";
64579               tailf:cli-sequence-commands;
64580               tailf:cli-compact-syntax;
64581               leaf inbound {
64582                 tailf:info "HA inbound replay counter interval";
64583                 description
64584                   "HA inbound replay counter interval";
64585                 type uint32 {
64586                   tailf:info "<0-1000>;;Inbound interval in packets";
64587                   range "0..1000";
64588                 }
64589               }
64590               leaf outbound {
64591                 tailf:info "HA outbound replay counter interval";
64592                 description
64593                   "HA outbound replay counter interval";
64594                 type uint32 {
64595                   tailf:info "<1000-100000>;;Outbound interval in packets";
64596                   range "1000..10000";
64597                 }
64598               }
64599             }
64600           }
64601         }
64602       }
64603       container mib {
64604         tailf:info "Configure Crypto-related MIB Parameters";
64605         description
64606           "Configure Crypto-related MIB Parameters";
64607         container ipsec {
64608           tailf:info "onfigure MIB Parameters";
64609           description
64610             "onfigure MIB Parameters";
64611           container flowmib {
64612             tailf:info "Configure IPSec Flow-MIB Parameters";
64613             description
64614               "Configure IPSec Flow-MIB Parameters";
64615             container history {
64616               tailf:info "Configure IPSEC Flow MIB History Parameters";
64617               description
64618                 "Configure IPSEC Flow MIB History Parameters";
64619               container failure {
64620                 tailf:info "Configure IPSEC Flow MIB Failure History Parameters";
64621                 description
64622                   "Configure IPSEC Flow MIB Failure History Parameters";
64623                 leaf size {
64624                   tailf:info "Configure IPSEC Flow MIB Tunnel Failure History Window Size";
64625                   description
64626                     "Configure IPSEC Flow MIB Tunnel Failure History Window Size";
64627                   type uint8 {
64628                     tailf:info "<2-200>;;Specify the failure history window size for IPSec Flow MIB";
64629                   }
64630                 }
64631               }
64632               container tunnel {
64633                 tailf:info "Configure IPSEC Flow MIB Tunnel History Parameters";
64634                 description
64635                   "Configure IPSEC Flow MIB Tunnel History Parameters";
64636                 leaf size {
64637                   tailf:info "Configure IPSEC Flow MIB Tunnel Failure History Window Size";
64638                   description
64639                     "Configure IPSEC Flow MIB Tunnel Failure History Window Size";
64640                   type uint8 {
64641                     tailf:info "<2-200>;;Specify the tunnel history window size for IPSec Flow MIB";
64642                   }
64643                 }
64644               }
64645             }
64646           }
64647         }
64648       }
64649       container pki {
64650         tailf:info "Public Key components";
64651         description
64652           "Public Key components";
64653         leaf authenticate {
64654           tailf:info "Get the CA certificate";
64655           description
64656             "Get the CA certificate";
64657           type string {
64658             tailf:info "WORD;;CA Server Name";
64659           }
64660         }
64661         container certificate {
64662           tailf:info "Actions on certificates";
64663           description
64664             "Actions on certificates";
64665           list chain {
64666             tailf:info "Identify certificates";
64667             description
64668               "Identify certificates";
64669             tailf:cli-mode-name "config-cert-chain";
64670             key "name";
64671             leaf name {
64672               type string {
64673                 tailf:info "WORD;;CA Server Name";
64674               }
64675             }
64676             list certificate {
64677               tailf:info "Certificate issued by the CA";
64678               description
64679                 "Certificate issued by the CA";
64680               tailf:cli-mode-name "config-pki-hexmode";
64681               tailf:cli-exit-command "quit";
64682               tailf:cli-delete-when-empty;
64683               key "serial";
64684               leaf serial {
64685                 type string {
64686                   tailf:info "WORD;;Certificate serial number";
64687                 }
64688               }
64689               leaf certtype {
64690                 tailf:cli-drop-node-name;
64691                 tailf:cli-prefix-key;
64692                 type enumeration {
64693                   enum "ca" {
64694                     tailf:info "CA certificate";
64695                   }
64696                   enum "ra-encrypt" {
64697                     tailf:info "RA encryption certificate";
64698                   }
64699                   enum "ra-general" {
64700                     tailf:info "RA general purpose certificate";
64701                   }
64702                   enum "ra-sign" {
64703                     tailf:info "RA signing certificate";
64704                   }
64705                   enum "rollover" {
64706                     tailf:info "Shadow rollover certificate";
64707                   }
64708                   enum "self-signed" {
64709                     tailf:info "Self-signed certificate";
64710                   }
64711                 }
64712               }
64713             }
64714           }
64715           list map {
64716             tailf:info "Define certificate attributes map";
64717             description
64718               "Define certificate attributes map";
64719             tailf:cli-mode-name "ca-certificate-map";
64720             key "tag";
64721             leaf tag {
64722               type string {
64723                 tailf:info "WORD;;Certificate attribute map tag";
64724               }
64725             }
64726             leaf sequence {
64727               tailf:cli-drop-node-name;
64728               tailf:cli-hide-in-submode;
64729               type uint16 {
64730                 tailf:info "<1-65535>;;Sequence to insert into certificate map entry";
64731               }
64732             }
64733             uses crypto-pki-certificate-map-grouping;
64734           }
64735           leaf pool {
64736             tailf:info "Identify CA certificates in pool";
64737             description
64738               "Identify CA certificates in pool";
64739             type empty;
64740           }
64741           leaf query {
64742             tailf:info "Get certificates from the CA after reboot";
64743             description
64744               "Get certificates from the CA after reboot";
64745             type empty;
64746           }
64747           container storage {
64748             tailf:info "specify where to store certificates";
64749             description
64750               "specify where to store certificates";
64751             leaf path {
64752               tailf:cli-drop-node-name;
64753               tailf:cli-full-command;
64754               type union {
64755                 type enumeration {
64756                   enum "bootflash:" {
64757                     tailf:info "path  to store certificates";
64758                   }
64759                   enum "flash:" {
64760                     tailf:info "path  to store certificates";
64761                   }
64762                   enum "nvram:" {
64763                     tailf:info "path  to store certificates";
64764                   }
64765                 }
64766                 type string {
64767                   tailf:info "WORD";
64768                 }
64769               }
64770             }
64771             leaf on {
64772               tailf:info "Create keypairs on device";
64773               description
64774                 "Create keypairs on device";
64775               type empty;
64776             }
64777             leaf with-keypair {
64778               tailf:info "Store certificates with keypair";
64779               description
64780                 "Store certificates with keypair";
64781               type empty;
64782             }
64783           }
64784           leaf validate {
64785             tailf:info "Validate a certificate chain";
64786             description
64787               "Validate a certificate chain";
64788             type string {
64789               tailf:info "WORD;;trust point";
64790             }
64791           }
64792         }
64793         container crl {
64794           tailf:info "Actions on certificate revocation lists";
64795           description
64796             "Actions on certificate revocation lists";
64797           container cache {
64798             tailf:info "Cache which holds recently parsed CRLs";
64799             description
64800               "Cache which holds recently parsed CRLs";
64801             leaf size {
64802               tailf:info "Size of the recently parsed CRL cache";
64803               description
64804                 "Size of the recently parsed CRL cache";
64805               type uint32 {
64806                 tailf:info "<0-131072>;;Maximum size of the CRL cache in kilobytes";
64807                 range "0..131072";
64808               }
64809             }
64810           }
64811           container download {
64812             tailf:info "auto-download CRL";
64813             description
64814               "auto-download CRL";
64815             container schedule {
64816               tailf:info "Schedule time to auto-download CRL";
64817               description
64818                 "Schedule time to auto-download CRL";
64819               leaf prepublish {
64820                 tailf:info "Requests CRL at prepublish time";
64821                 description
64822                   "Requests CRL at prepublish time";
64823                 type uint16 {
64824                   tailf:info "<0-65535>;;Time interval to Pre-download CRL before CRL expiry";
64825                 }
64826               }
64827               container retries {
64828                 tailf:info "Retry request for failed CDP locations";
64829                 description
64830                   "Retry request for failed CDP locations";
64831                 leaf number {
64832                   tailf:cli-drop-node-name;
64833                   type uint8 {
64834                     tailf:info "<1-15>;;number of retries";
64835                     range "1..15";
64836                   }
64837                 }
64838                 leaf interval {
64839                   tailf:info "retry time interval for each attempt";
64840                   description
64841                     "retry time interval for each attempt";
64842                   type uint16 {
64843                     tailf:info "<15-600>;;retry time interval in minutes";
64844                     range "15..600";
64845                   }
64846                 }
64847               }
64848               container time {
64849                 tailf:info "Request auto-download CRL at this time";
64850                 description
64851                   "Request auto-download CRL at this time";
64852                 tailf:cli-sequence-commands;
64853                 tailf:cli-compact-syntax;
64854                 leaf date {
64855                   tailf:cli-drop-node-name;
64856                   type enumeration {
64857                     enum "Friday" {
64858                       tailf:info "Friday";
64859                     }
64860                     enum "Monday" {
64861                       tailf:info "Monday";
64862                     }
64863                     enum "Saturday" {
64864                       tailf:info "Saturday";
64865                     }
64866                     enum "Sunday" {
64867                       tailf:info "Sunday";
64868                     }
64869                     enum "Thursday" {
64870                       tailf:info "Thursday";
64871                     }
64872                     enum "Tuesday" {
64873                       tailf:info "Tuesday";
64874                     }
64875                     enum "Wednesday" {
64876                       tailf:info "Wednesday";
64877                     }
64878                   }
64879                 }
64880                 leaf clock {
64881                   tailf:cli-drop-node-name;
64882                   type string {
64883                     tailf:info "hh:mm;;Request auto-download CRL at this time";
64884                   }
64885                 }
64886               }
64887             }
64888             leaf trustpoint {
64889               tailf:info "Trustpoint to auto-download CRL";
64890               description
64891                 "Trustpoint to auto-download CRL";
64892               type string {
64893                 tailf:info "WORD;;Name of Trustpoint to use for CRL download";
64894               }
64895             }
64896             container url {
64897               tailf:info "URL to auto-download CRL";
64898               description
64899                 "URL to auto-download CRL";
64900               tailf:cli-sequence-commands;
64901               tailf:cli-compact-syntax;
64902               leaf name {
64903                 tailf:cli-drop-node-name;
64904                 type string {
64905                   tailf:info "WORD;;http or ldap url";
64906                 }
64907               }
64908               leaf source-interface {
64909                 tailf:info "Interface used as source address";
64910                 description
64911                   "Interface used as source address";
64912                 tailf:cli-break-sequence-commands;
64913                 type string;
64914               }
64915               leaf vrf {
64916                 tailf:info "VRF to use for CRL download";
64917                 description
64918                   "VRF to use for CRL download";
64919                 type string {
64920                   tailf:info "WORD;;Name of VRF to use for CRL download";
64921                 }
64922               }
64923             }
64924           }
64925           leaf request {
64926             tailf:info "Requests a current CRL";
64927             description
64928               "Requests a current CRL";
64929             type string {
64930               tailf:info "WORD;;CA Server Name";
64931             }
64932           }
64933         }
64934         leaf enroll {
64935           tailf:info "Request a certificate from a CA";
64936           description
64937             "Request a certificate from a CA";
64938           type string {
64939             tailf:info "WORD;;CA Server Name";
64940           }
64941         }
64942         list export {
64943           tailf:info "Export certificate or PKCS12 file";
64944           description
64945             "Export certificate or PKCS12 file";
64946           tailf:cli-suppress-mode;
64947           key "name";
64948           leaf name {
64949             type string {
64950               tailf:info "WORD;;Trustpoint label to associate keys and certs with";
64951             }
64952           }
64953           container pem {
64954             tailf:info "Export to PEM files";
64955             description
64956               "Export to PEM files";
64957             tailf:cli-hide-in-submode;
64958             container terminal {
64959               tailf:info "Export via the terminal (cut-and-paste)";
64960               description
64961                 "Export via the terminal (cut-and-paste)";
64962               presence "true";
64963               container pem-3des {
64964                 tailf:info "Encrypt the private key with 3DES";
64965                 description
64966                   "Encrypt the private key with 3DES";
64967                 tailf:alt-name "3des";
64968                 leaf password {
64969                   tailf:info "Passphrase";
64970                   description
64971                     "Passphrase";
64972                   tailf:cli-multi-value;
64973                   type string {
64974                     tailf:info "LINE;;Passphrase used to protect the private key";
64975                   }
64976                 }
64977               }
64978               container des {
64979                 tailf:info "Encrypt the private key with DES";
64980                 description
64981                   "Encrypt the private key with DES";
64982                 leaf password {
64983                   tailf:info "Passphrase";
64984                   description
64985                     "Passphrase";
64986                   tailf:cli-multi-value;
64987                   type string {
64988                     tailf:info "LINE;;Passphrase used to protect the private key";
64989                   }
64990                 }
64991               }
64992               leaf rollover {
64993                 tailf:info "Export the rollover CA certificate";
64994                 description
64995                   "Export the rollover CA certificate";
64996                 type empty;
64997               }
64998             }
64999             container url {
65000               tailf:info "Export via the file systems";
65001               description
65002                 "Export via the file systems";
65003               tailf:cli-sequence-commands;
65004               tailf:cli-compact-syntax;
65005               uses crypto-key-url-file-ex-grouping;
65006               leaf encrypt {
65007                 tailf:cli-drop-node-name;
65008                 tailf:cli-optional-in-sequence;
65009                 type enumeration {
65010                   enum "3des" {
65011                     tailf:info "Encrypt the private key with 3DES";
65012                   }
65013                   enum "des" {
65014                     tailf:info "Encrypt the private key with DES";
65015                   }
65016                 }
65017               }
65018               leaf password {
65019                 tailf:info "Passphrase";
65020                 description
65021                   "Passphrase";
65022                 tailf:cli-multi-value;
65023                 when "../encrypt";
65024                 type string {
65025                   tailf:info "LINE;;Passphrase used to protect the private key";
65026                 }
65027               }
65028             }
65029           }
65030           container pkcs12 {
65031             tailf:info "Export to PKCS12 file";
65032             description
65033               "Export to PKCS12 file";
65034             tailf:cli-hide-in-submode;
65035             tailf:cli-sequence-commands;
65036             tailf:cli-compact-syntax;
65037             uses crypto-key-url-file-ex-grouping;
65038             leaf password {
65039               tailf:info "Passphrase";
65040               description
65041                 "Passphrase";
65042               tailf:cli-multi-value;
65043               type string {
65044                 tailf:info "LINE;;Passphrase used to protect the private key";
65045               }
65046             }
65047           }
65048         }
65049         list import {
65050           tailf:info "Import certificate or PKCS12 file";
65051           description
65052             "Import certificate or PKCS12 file";
65053           tailf:cli-suppress-mode;
65054           key "name";
65055           leaf name {
65056             type string {
65057               tailf:info "WORD;;Trustpoint label to associate certificate or pkcs-12 file with";
65058             }
65059           }
65060           leaf certificate {
65061             tailf:info "Import a certificate from a TFTP server or the terminal";
65062             description
65063               "Import a certificate from a TFTP server or the terminal";
65064             type empty;
65065           }
65066           container pem {
65067             tailf:info "Import from PEM files";
65068             description
65069               "Import from PEM files";
65070             tailf:cli-hide-in-submode;
65071             tailf:cli-compact-syntax;
65072             leaf check {
65073               tailf:info "Validate certificate on input";
65074               description
65075                 "Validate certificate on input";
65076               type empty;
65077             }
65078             leaf exportable {
65079               tailf:info "Allow the key as to be exported";
65080               description
65081                 "Allow the key as to be exported";
65082               type empty;
65083             }
65084             container terminal {
65085               tailf:info "Import via the terminal (cut-and-paste)";
65086               description
65087                 "Import via the terminal (cut-and-paste)";
65088               leaf password {
65089                 tailf:info "Passphrase";
65090                 description
65091                   "Passphrase";
65092                 tailf:cli-multi-value;
65093                 type string {
65094                   tailf:info "LINE;;Passphrase used to protect the private key";
65095                 }
65096               }
65097             }
65098             container url {
65099               tailf:info "Export via the file systems";
65100               description
65101                 "Export via the file systems";
65102               tailf:cli-sequence-commands;
65103               tailf:cli-compact-syntax;
65104               uses crypto-key-url-file-ex-grouping;
65105               leaf password {
65106                 tailf:info "Passphrase";
65107                 description
65108                   "Passphrase";
65109                 tailf:cli-multi-value;
65110                 type string {
65111                   tailf:info "LINE;;Passphrase used to protect the private key";
65112                 }
65113               }
65114             }
65115             leaf usage-keys {
65116               tailf:info "Usage key pairs";
65117               description
65118                 "Usage key pairs";
65119               type empty;
65120             }
65121           }
65122           container pkcs12 {
65123             tailf:info "Import from PKCS12 file";
65124             description
65125               "Import from PKCS12 file";
65126             tailf:cli-hide-in-submode;
65127             tailf:cli-sequence-commands;
65128             tailf:cli-compact-syntax;
65129             uses crypto-key-url-file-ex-grouping;
65130             leaf password {
65131               tailf:info "Passphrase";
65132               description
65133                 "Passphrase";
65134               tailf:cli-multi-value;
65135               type string {
65136                 tailf:info "LINE;;Passphrase used to protect the private key";
65137               }
65138             }
65139           }
65140         }
65141         container profile {
65142           tailf:info "Define a certificate profile";
65143           description
65144             "Define a certificate profile";
65145           list enrollment {
65146             tailf:info "Define an enrollment profile";
65147             description
65148               "Define an enrollment profile";
65149             tailf:cli-mode-name "ca-profile-enroll";
65150             key "tag";
65151             leaf tag {
65152               type string {
65153                 tailf:info "WORD;;Certificate enrollment profile tag";
65154               }
65155             }
65156             uses crypto-pki-profile-enrollment-grouping;
65157             container default {
65158               tailf:info "Set a command to its defaults";
65159               description
65160                 "Set a command to its defaults";
65161               uses crypto-pki-profile-enrollment-grouping;
65162             }
65163           }
65164         }
65165         container server {
65166           tailf:info "Enable IOS Certificate server";
65167           description
65168             "Enable IOS Certificate server";
65169           tailf:cli-sequence-commands;
65170           tailf:cli-compact-syntax;
65171           leaf name {
65172             tailf:cli-drop-node-name;
65173             type string {
65174               tailf:info "WORD;;Certificate Server Name";
65175             }
65176           }
65177           leaf rollover {
65178             tailf:info "Rollover the server's key and certificate";
65179             description
65180               "Rollover the server's key and certificate";
65181             tailf:cli-optional-in-sequence;
65182             type empty;
65183           }
65184           leaf cancel {
65185             tailf:info "Cancel a pending rollover";
65186             description
65187               "Cancel a pending rollover";
65188             tailf:cli-optional-in-sequence;
65189             type empty;
65190           }
65191         }
65192         list trustpoint {
65193           tailf:info "Define a CA trustpoint";
65194           description
65195             "Define a CA trustpoint";
65196           tailf:cli-mode-name "ca-trustpoint";
65197           key "id";
65198           leaf id {
65199             type string {
65200               tailf:info "WORD;;CA Server Name";
65201             }
65202           }
65203           container enrollment {
65204             tailf:info "Enrollment parameters";
65205             description
65206               "Enrollment parameters";
65207             leaf http-proxy {
65208               tailf:info "HTTP proxy server for enrollment";
65209               description
65210                 "HTTP proxy server for enrollment";
65211               type string {
65212                 tailf:info "WORD;;host-name";
65213               }
65214             }
65215             container mode {
65216               tailf:info "Mode supported by the Certificate Authority";
65217               description
65218                 "Mode supported by the Certificate Authority";
65219               leaf ra {
65220                 tailf:info "Registration Authority mode";
65221                 description
65222                   "Registration Authority mode";
65223                 type empty;
65224               }
65225             }
65226             leaf pkcs12 {
65227               type empty;
65228             }
65229             leaf profile {
65230               tailf:info "Specify an profile for enrollment";
65231               description
65232                 "Specify an profile for enrollment";
65233               type string {
65234                 tailf:info "WORD;;Profile name";
65235               }
65236             }
65237             container retry {
65238               tailf:info "Polling parameters";
65239               description
65240                 "Polling parameters";
65241               leaf count {
65242                 tailf:info "How many times to poll CA for our certificate";
65243                 description
65244                   "How many times to poll CA for our certificate";
65245                 type uint8 {
65246                   tailf:info "<1-100>;;Number of times to poll a CA for a certificate";
65247                   range "1..100";
65248                 }
65249               }
65250               leaf period {
65251                 tailf:info "How long to wait between requests to CA for our certificate";
65252                 description
65253                   "How long to wait between requests to CA for our certificate";
65254                 type uint8 {
65255                   tailf:info "<1-60>;;Period in minutes between attempts to contact a CA";
65256                   range "1..60";
65257                 }
65258               }
65259             }
65260             leaf selfsigned {
65261               tailf:info "Generate a Self Signed Certificate";
65262               description
65263                 "Generate a Self Signed Certificate";
65264               type empty;
65265             }
65266             container terminal {
65267               tailf:info "Enroll via the terminal (cut-and-paste)";
65268               description
65269                 "Enroll via the terminal (cut-and-paste)";
65270               presence "true";
65271               leaf pem {
65272                 tailf:info "Include PEM encapsulation boundaries";
65273                 description
65274                   "Include PEM encapsulation boundaries";
65275                 type empty;
65276               }
65277             }
65278             leaf url {
65279               tailf:info "CA server enrollment URL";
65280               description
65281                 "CA server enrollment URL";
65282               type string {
65283                 tailf:info "WORD;;HTTP URL";
65284               }
65285             }
65286           }
65287           leaf revocation-check {
65288             tailf:info "Revocation checking options";
65289             description
65290               "Revocation checking options";
65291             type enumeration {
65292               enum "crl" {
65293                 tailf:info "Revocation check by CRL";
65294               }
65295               enum "none" {
65296                 tailf:info "Ignore revocation check";
65297               }
65298               enum "ocsp" {
65299                 tailf:info "Revocation check by OCSP";
65300               }
65301             }
65302           }
65303           leaf rsakeypair {
65304             tailf:info "Specify rsakeypair for this identity";
65305             description
65306               "Specify rsakeypair for this identity";
65307             type string;
65308           }
65309           leaf subject-name {
65310             tailf:info "Subject Name";
65311             description
65312               "Subject Name";
65313             type string;
65314           }
65315         }
65316         container token {
65317           tailf:info "Configure cryptographic token";
65318           description
65319             "Configure cryptographic token";
65320           list token-name {
65321             tailf:cli-suppress-mode;
65322             tailf:cli-delete-when-empty;
65323             tailf:cli-drop-node-name;
65324             tailf:cli-compact-syntax;
65325             key "name";
65326             leaf name {
65327               type string {
65328                 tailf:info "WORD;;token name";
65329               }
65330             }
65331             uses crypto-pki-token-grouping;
65332           }
65333         }
65334         container trustpool {
65335           tailf:info "Define CA trustpool";
65336           description
65337             "Define CA trustpool";
65338           container import {
65339             tailf:info "Import a trustpool bundle";
65340             description
65341               "Import a trustpool bundle";
65342             presence "true";
65343             leaf clean {
65344               tailf:info "Remove all downloaded trustpool certificates prior to import";
65345               description
65346                 "Remove all downloaded trustpool certificates prior to import";
65347               type empty;
65348             }
65349             leaf terminal {
65350               tailf:info "Import bundle via the terminal (cut-and-paste) in PEM format";
65351               description
65352                 "Import bundle via the terminal (cut-and-paste) in PEM format";
65353               type empty;
65354             }
65355             container url {
65356               tailf:info "Import via the file systems";
65357               description
65358                 "Import via the file systems";
65359               uses crypto-key-url-file-im-grouping;
65360             }
65361           }
65362         }
65363         container default {
65364           tailf:info "set default values for tokens";
65365           description
65366             "set default values for tokens";
65367           uses crypto-pki-token-grouping;
65368         }
65369       }
65370       container ssl {
65371         tailf:info "Configure Crypto SSL Options";
65372         description
65373           "Configure Crypto SSL Options";
65374         container authorization {
65375           tailf:info "ssl authorization";
65376           description
65377             "ssl authorization";
65378           leaf policy {
65379             tailf:info "Crypto SSL authorization policy";
65380             description
65381               "Crypto SSL authorization policy";
65382             type string {
65383               tailf:info "WORD;;Name of the policy";
65384             }
65385           }
65386         }
65387         container diagnose {
65388           tailf:info "SSLVPN diagnose";
65389           description
65390             "SSLVPN diagnose";
65391           leaf error {
65392             tailf:info "Start error trace debug";
65393             description
65394               "Start error trace debug";
65395             type uint16 {
65396               tailf:info "<1-1000>;;Maximum number of exit path entry";
65397               range "1..1000";
65398             }
65399           }
65400         }
65401         leaf policy {
65402           tailf:info "Define SSL policies";
65403           description
65404             "Define SSL policies";
65405           type string {
65406             tailf:info "WORD;;Name of ssl policy";
65407           }
65408         }
65409         leaf profile {
65410           tailf:info "Define SSL profiles";
65411           description
65412             "Define SSL profiles";
65413           type string {
65414             tailf:info "WORD;;Name of ssl profile";
65415           }
65416         }
65417         container proposal {
65418           tailf:info "Define ssl Proposal";
65419           description
65420             "Define ssl Proposal";
65421           tailf:cli-add-mode;
65422           tailf:cli-mode-name "config-crypto-ssl-proposal";
65423           leaf name {
65424             tailf:cli-drop-node-name;
65425             tailf:cli-hide-in-submode;
65426             type string {
65427               tailf:info "WORD;;Name of ssl Proposal";
65428             }
65429           }
65430           container protection {
65431             tailf:info "Specify the protection algorithms";
65432             description
65433               "Specify the protection algorithms";
65434             leaf rsa-3des-ede-sha1 {
65435               tailf:info "RSA, 3DES and SHA1";
65436               description
65437                 "RSA, 3DES and SHA1";
65438               type empty;
65439             }
65440             leaf rsa-aes128-sha1 {
65441               tailf:info "RSA, AES128 and SHA1";
65442               description
65443                 "RSA, AES128 and SHA1";
65444               type empty;
65445             }
65446             leaf rsa-aes256-sha1 {
65447               tailf:info "RSA, AES256 and SHA1";
65448               description
65449                 "RSA, AES256 and SHA1";
65450               type empty;
65451             }
65452             leaf rsa-rc4128-md5 {
65453               tailf:info "RSA, RC4 and MD5";
65454               description
65455                 "RSA, RC4 and MD5";
65456               type empty;
65457             }
65458           }
65459         }
65460       }
65461       container vpn {
65462         tailf:info "Configure crypto vpn commands";
65463         description
65464           "Configure crypto vpn commands";
65465         container anyconnect {
65466           tailf:info "Configure anyconnect client package";
65467           description
65468             "Configure anyconnect client package";
65469           container file {
65470             tailf:cli-drop-node-name;
65471             tailf:cli-sequence-commands;
65472             tailf:cli-compact-syntax;
65473             leaf filename {
65474               tailf:cli-drop-node-name;
65475               type string {
65476                 tailf:info "WORD;;Filename of installing package";
65477               }
65478             }
65479             leaf sequence {
65480               tailf:info "client-side download sequence num (priority) of this package";
65481               description
65482                 "client-side download sequence num (priority) of this package";
65483               tailf:cli-optional-in-sequence;
65484               type uint8 {
65485                 tailf:info "<1-9>;;download sequence number of this package for the client";
65486               }
65487             }
65488           }
65489           container profile-container {
65490             tailf:cli-drop-node-name;
65491             tailf:cli-sequence-commands;
65492             tailf:cli-compact-syntax;
65493             leaf profile {
65494               tailf:info "Configure anyconnect client profile";
65495               description
65496                 "Configure anyconnect client profile";
65497               type string {
65498                 tailf:info "WORD;;Name of the AnyConnect profile";
65499               }
65500             }
65501             leaf filename {
65502               tailf:cli-drop-node-name;
65503               type string {
65504                 tailf:info "WORD;;device:filename";
65505               }
65506             }
65507           }
65508         }
65509         leaf csd {
65510           tailf:info "Configure Secure Desktop package";
65511           description
65512             "Configure Secure Desktop package";
65513           type string {
65514             tailf:info "WORD;;Filename of installing package";
65515           }
65516         }
65517       }
65518       leaf xauth {
65519         tailf:info "X-Auth parameters";
65520         description
65521           "X-Auth parameters";
65522         type string;
65523       }
65524     }
65525     container cts {
65526       tailf:info "Cisco Trusted Security commands";
65527       description
65528         "Cisco Trusted Security commands";
65529       container authorization {
65530         tailf:info "CTS global authorization configuration";
65531         description
65532           "CTS global authorization configuration";
65533         leaf list {
65534           tailf:info "Local authorization list to use for CTS";
65535           description
65536             "Local authorization list to use for CTS";
65537           type string {
65538             tailf:info "WORD;;Name of locally configured authorization list";
65539           }
65540         }
65541       }
65542       leaf dot1x-server-timeout {
65543         tailf:info "Timeout for Radius Retries";
65544         description
65545           "Timeout for Radius Retries";
65546         type uint16 {
65547           tailf:info "<30-65535>;;Dot1x Sever timeout value";
65548           range "30..65535";
65549         }
65550       }
65551       leaf dot1x-supp-timeout {
65552         tailf:info "Timeout for supplicant reply";
65553         description
65554           "Timeout for supplicant reply";
65555         type uint16 {
65556           tailf:info "<30-65535>;;Dot1x Supplicant timeout value";
65557           range "30..65535";
65558         }
65559       }
65560       leaf logging {
65561         tailf:info "Set logging parameters";
65562         description
65563           "Set logging parameters";
65564         type enumeration {
65565           enum "verbose" {
65566             tailf:info "Show verbose messages in system logs";
65567           }
65568         }
65569       }
65570       container role-based {
65571         tailf:info "Role-based Access Control configuration commands";
65572         description
65573           "Role-based Access Control configuration commands";
65574         leaf sgt-caching {
65575           tailf:info "Enable SGT caching";
65576           description
65577             "Enable SGT caching";
65578           type empty;
65579         }
65580         list sgt-map {
65581           tailf:info "Assign Security Group Tag (SGT) to IP host or network address";
65582           description
65583             "Assign Security Group Tag (SGT) to IP host or network address";
65584           tailf:cli-suppress-mode;
65585           key "ip sgt";
65586           leaf vrf {
65587             tailf:cli-prefix-key {
65588               tailf:cli-before-key "1";
65589             }
65590             tailf:info "Select VPN Routing/Forwarding instance for the binding";
65591             description
65592               "Select VPN Routing/Forwarding instance for the binding";
65593             type string {
65594               tailf:info "WORD;;VPN Routing/Forwarding instance name";
65595             }
65596           }
65597           leaf host {
65598             tailf:cli-prefix-key {
65599               tailf:cli-before-key "1";
65600             }
65601             type empty;
65602           }
65603           leaf ip {
65604             type union {
65605               type inet:ipv4-address {
65606                 tailf:info "A.B.C.D;;IPv4 host address";
65607               }
65608               type inet:ipv4-prefix {
65609                 tailf:info "A.B.C.D/nn;;IPv4 prefix <network>/<length>, e.g., 35.0.0.0/8";
65610               }
65611               type inet:ipv6-address {
65612                 tailf:info "X:X:X:X::X;;IPv6 host address x:x::y";
65613               }
65614               type inet:ipv6-prefix {
65615                 tailf:info "X:X:X:X::X/<0-128>;;IPv6 prefix <network>/<length> (x:x::y/<z>)";
65616               }
65617             }
65618           }
65619           leaf sgt {
65620             tailf:info "Security Group Tag (SGT)";
65621             description
65622               "Security Group Tag (SGT)";
65623             tailf:cli-expose-key-name;
65624             type uint16 {
65625               tailf:info "<2-65519>;;Security Group Tag value";
65626             }
65627           }
65628         }
65629       }
65630       leaf sgt {
65631         tailf:info "Local device security group";
65632         description
65633           "Local device security group";
65634         type uint16 {
65635           tailf:info "<2-65519>;;Security Group Tag (SGT) value";
65636           range "2..65519";
65637         }
65638       }
65639       container sxp {
65640         tailf:info "CTS sxp configuration";
65641         description
65642           "CTS sxp configuration";
65643       }
65644     }
65645     container bfd {
65646       tailf:info "BFD configuration commands";
65647       description
65648         "BFD configuration commands";
65649       leaf l2cos {
65650         tailf:info "L2 COS value to be used for BFD packets over VLAN interfaces";
65651         description
65652           "Value of L2 COS for BFD Pkts over VLAN interfaces";
65653         type uint8 {
65654           range "0..6";
65655         }
65656       }
65657       container map {
65658         tailf:info "configure bfd map entry for multi-hop sessions";
65659         description
65660           "configure bfd map entry for multi-hop sessions";
65661         container ipv4 {
65662           tailf:info "IPv4 Address Family";
65663           description
65664             "IPv4 Address Family";
65665           container no-vrf {
65666             tailf:cli-drop-node-name;
65667             tailf:cli-sequence-commands;
65668             tailf:cli-compact-syntax;
65669             leaf dest-ip {
65670               tailf:cli-drop-node-name;
65671               type ios:ipv4-prefix {
65672                 tailf:info "A.B.C.D/nn;;Destination IP prefix/len";
65673               }
65674             }
65675             leaf src-ip {
65676               tailf:cli-drop-node-name;
65677               tailf:cli-break-sequence-commands;
65678               type ios:ipv4-prefix {
65679                 tailf:info "A.B.C.D/nn;;Source IP prefix/len";
65680               }
65681             }
65682             leaf template-name {
65683               tailf:cli-drop-node-name;
65684               tailf:cli-full-command;
65685               type string {
65686                 tailf:info "WORD;;bfd template name";
65687               }
65688             }
65689           }
65690           container vrf {
65691             tailf:info "Destination VRF name";
65692             description
65693               "Destination VRF name";
65694             list des-vrf {
65695               tailf:cli-drop-node-name;
65696               tailf:cli-suppress-mode;
65697               key "des-vrf";
65698               leaf des-vrf {
65699                 tailf:info "Destination VRF instance name";
65700                 description
65701                   "Destination VRF instance name";
65702                 type string;
65703               }
65704               leaf A_PERIOD_B_PERIOD_C_PERIOD_D_SLASH_nn {
65705                 tailf:alt-name "A.B.C.D/nn";
65706                 tailf:info "Destination IP prefix/len";
65707                 description
65708                   "Destination IP prefix/len";
65709                 type empty;
65710               }
65711             }
65712           }
65713         }
65714         container ipv6 {
65715           tailf:info "IPv6 Address Family";
65716           description
65717             "IPv6 Address Family";
65718           list dp-ipv6_prefix {
65719             tailf:cli-drop-node-name;
65720             tailf:cli-suppress-mode;
65721             key "dp-ipv6_prefix";
65722             leaf dp-ipv6_prefix {
65723               tailf:info "Destination IPv6 prefix/len";
65724               description
65725                 "Destination IPv6 prefix/len";
65726               type inet:ipv6-prefix;
65727             }
65728             leaf bfd-nm {
65729               tailf:info "bfd template name";
65730               description
65731                 "bfd template name";
65732               tailf:cli-drop-node-name;
65733               type string;
65734             }
65735             list src-ipv6_prefix0 {
65736               tailf:cli-drop-node-name;
65737               tailf:cli-suppress-mode;
65738               key "src-ipv6_prefix0";
65739               leaf src-ipv6_prefix0 {
65740                 tailf:info "Source IPv6 prefix/len";
65741                 description
65742                   "Source IPv6 prefix/len";
65743                 type inet:ipv6-prefix;
65744               }
65745               leaf bfd-name {
65746                 tailf:info "bfd template name";
65747                 description
65748                   "bfd template name";
65749                 tailf:cli-drop-node-name;
65750                 type string;
65751               }
65752             }
65753             container vrf {
65754               tailf:info "Source VRF name";
65755               description
65756                 "Source VRF name";
65757               list sr-vrf {
65758                 tailf:cli-drop-node-name;
65759                 tailf:cli-suppress-mode;
65760                 key "sr-vrf";
65761                 leaf sr-vrf {
65762                   tailf:info "Source VRF instance name";
65763                   description
65764                     "Source VRF instance name";
65765                   type string;
65766                 }
65767                 leaf sr-ipv6_prefix {
65768                   tailf:info "Source IPv6 prefix/len";
65769                   description
65770                     "Source IPv6 prefix/len";
65771                   tailf:cli-drop-node-name;
65772                   type inet:ipv6-prefix;
65773                 }
65774               }
65775             }
65776           }
65777           container vrf {
65778             tailf:info "Destination VRF name";
65779             description
65780               "Destination VRF name";
65781             list dn-vrf {
65782               tailf:cli-drop-node-name;
65783               tailf:cli-suppress-mode;
65784               key "dn-vrf";
65785               leaf dn-vrf {
65786                 tailf:info "Destination VRF instance name";
65787                 description
65788                   "Destination VRF instance name";
65789                 type string;
65790               }
65791               leaf dn-ipv6_prefix {
65792                 tailf:info "Destination IPv6 prefix/len";
65793                 description
65794                   "Destination IPv6 prefix/len";
65795                 tailf:cli-drop-node-name;
65796                 type inet:ipv6-prefix;
65797               }
65798             }
65799           }
65800         }
65801       }
65802       leaf slow-timers {
65803         tailf:info "Change slow timers used by BFD";
65804         description
65805           "Value in ms to use for slow timers";
65806         type uint16 {
65807           range "1000..30000";
65808         }
65809       }
65810     }
65811     container bfd-template {
65812       tailf:info "BFD-template";
65813       description
65814         "BFD-template";
65815       container single-hop {
65816         tailf:info "Single-hop template";
65817         description
65818           "Single-hop template";
65819         tailf:cli-add-mode;
65820         tailf:cli-mode-name "config-bfd";
65821         leaf name {
65822           tailf:cli-drop-node-name;
65823           tailf:cli-hide-in-submode;
65824           type string {
65825             tailf:info "BFD-template name";
65826           }
65827         }
65828         container interval {
65829           tailf:info "Transmit interval between BFD packets";
65830           description
65831             "Transmit interval between BFD packets";
65832           container microseconds {
65833             tailf:info "Specify BFD timers in microseconds";
65834             description
65835               "Specify BFD timers in microseconds";
65836             tailf:cli-compact-syntax;
65837             tailf:cli-sequence-commands;
65838             leaf min-tx {
65839               tailf:info "Minimum transmit interval capability";
65840               description
65841                 "Minimum transmit interval capability";
65842               type uint32 {
65843                 tailf:info "<3300-999000>  Microseconds";
65844                 range "3300..999000";
65845               }
65846             }
65847             leaf min-rx {
65848               tailf:info "Minimum receive interval capability";
65849               description
65850                 "Minimum receive interval capability";
65851               type uint32 {
65852                 tailf:info "<3300-999000>  Microseconds";
65853                 range "3300..999000";
65854               }
65855             }
65856             leaf multiplier {
65857               tailf:info "Multiplier value used to compute holddown";
65858               description
65859                 "Multiplier value used to compute holddown";
65860               type uint8 {
65861                 tailf:info "<3-50>  value used to multiply the interval";
65862                 range "3..50";
65863               }
65864             }
65865           }
65866         }
65867       }
65868     }
65869
65870     grouping pfr-border-grouping {
65871       container cost-minimization {
65872         tailf:info "Specify an ISP's bw cost related information";
65873         description
65874           "Specify an ISP's bw cost related information";
65875         container calc {
65876           tailf:info "Specify how the fee is calculated";
65877           description
65878             "Specify how the fee is calculated";
65879           presence "true";
65880           leaf combined {
65881             tailf:info "Billing based on combination of Egress and Ingress rollup samples";
65882             description
65883               "Billing based on combination of Egress and Ingress rollup samples";
65884             type empty;
65885           }
65886           leaf separate {
65887             tailf:info "Billing based on separate egress and ingress rollup samples";
65888             description
65889               "Billing based on separate egress and ingress rollup samples";
65890             type empty;
65891           }
65892           leaf sum {
65893             tailf:info "Billing based on summed egress and ingress rollup samples";
65894             description
65895               "Billing based on summed egress and ingress rollup samples";
65896             type empty;
65897           }
65898         }
65899         container discard {
65900           tailf:info "Specify how often and how many rollup samples are discarded";
65901           description
65902             "Specify how often and how many rollup samples are discarded";
65903           presence "true";
65904           leaf absolute {
65905             tailf:info "Specify that the discard is a number of rollup samples discarded";
65906             description
65907               "Specify that the discard is a number of rollup samples discarded";
65908             type empty;
65909           }
65910           leaf daily {
65911             tailf:info "Specify if the discard period is daily rather than monthly";
65912             description
65913               "Specify if the discard period is daily rather than monthly";
65914             type empty;
65915           }
65916           leaf percent {
65917             tailf:info "Specify that the discard is a percentage of rollup samples discarded";
65918             description
65919               "Specify that the discard is a percentage of rollup samples discarded";
65920             type empty;
65921           }
65922         }
65923         container end {
65924           tailf:info "Specify the billing end date and time zone difference";
65925           description
65926             "Specify the billing end date and time zone difference";
65927           presence "true";
65928           leaf day-of-month {
65929             tailf:info "Specify the day of month that the billing period ends";
65930             description
65931               "Specify the day of month that the billing period ends";
65932             type empty;
65933           }
65934         }
65935         container fixed {
65936           tailf:info "Specify that fee is fixed regardless of usage";
65937           description
65938             "Specify that fee is fixed regardless of usage";
65939           presence "true";
65940           leaf fee {
65941             tailf:info "Fixed fee for billing";
65942             description
65943               "Fixed fee for billing";
65944             type empty;
65945           }
65946         }
65947         container nickname {
65948           tailf:info "Specify an nickname for the cost structure";
65949           description
65950             "Specify an nickname for the cost structure";
65951           presence "true";
65952           leaf nick-str {
65953             tailf:info "Specify the nickname alphanumeric string";
65954             description
65955               "Specify the nickname alphanumeric string";
65956             tailf:cli-drop-node-name;
65957             type string;
65958           }
65959         }
65960         container sampling {
65961           tailf:info "Specify the sampling period and rollup details";
65962           description
65963             "Specify the sampling period and rollup details";
65964           presence "true";
65965           leaf period {
65966             tailf:info "Specify the sampling period";
65967             description
65968               "Specify the sampling period";
65969             type empty;
65970           }
65971         }
65972         container summer-time {
65973           tailf:info "Specify summer time start and end";
65974           description
65975             "Specify summer time start and end";
65976           presence "true";
65977           leaf wk-start {
65978             tailf:info "Week number to start";
65979             description
65980               "Week number to start";
65981             tailf:cli-drop-node-name;
65982             type uint8 {
65983               range "1..4";
65984             }
65985           }
65986           leaf first {
65987             tailf:info "First week of the month";
65988             description
65989               "First week of the month";
65990             type empty;
65991           }
65992           leaf last {
65993             tailf:info "Last week of the month";
65994             description
65995               "Last week of the month";
65996             type empty;
65997           }
65998         }
65999         container tier {
66000           tailf:info "Specify the top of a tier and the associated fee";
66001           description
66002             "Specify the top of a tier and the associated fee";
66003           presence "true";
66004           leaf tier-cap {
66005             tailf:info "Specify the top of the tier as a percentage of capacity";
66006             description
66007               "Specify the top of the tier as a percentage of capacity";
66008             tailf:cli-drop-node-name;
66009             type uint8 {
66010               range "1..100";
66011             }
66012           }
66013         }
66014       }
66015       container downgrade {
66016         tailf:info "Specify route downgrade options for this interface";
66017         description
66018           "Specify route downgrade options for this interface";
66019         container bgp {
66020           tailf:info "Specify downgrade options for BGP advertisements";
66021           description
66022             "Specify downgrade options for BGP advertisements";
66023           presence "true";
66024           leaf community {
66025             tailf:info "Specify downgrade options for BGP advertisements";
66026             description
66027               "Specify downgrade options for BGP advertisements";
66028             type empty;
66029           }
66030         }
66031       }
66032       leaf link-group {
66033         tailf:info "Specify the link group";
66034         description
66035           "Specify link group name";
66036         type string;
66037       }
66038       container max-xmit-utilization {
66039         tailf:info "Specify the threshold utilization for an external interface";
66040         description
66041           "Specify the threshold utilization for an external interface";
66042         container absolute {
66043           tailf:info "Specify the utilization as an absolute value";
66044           description
66045             "Specify the utilization as an absolute value";
66046           presence "true";
66047           leaf exit-kbps {
66048             tailf:info "Specify the kbps threshold for this exit's bandwitdh";
66049             description
66050               "Specify the kbps threshold for this exit's bandwitdh";
66051             tailf:cli-drop-node-name;
66052             type uint32 {
66053               range "1..1000000000";
66054             }
66055           }
66056         }
66057         container percentage {
66058           tailf:info "Specify the utilization as a percentage of the exit's bandwidth";
66059           description
66060             "Specify the utilization as a percentage of the exit's bandwidth";
66061           presence "true";
66062           leaf exit-pct {
66063             tailf:info "Specify the percentage of the exit's bandwidth";
66064             description
66065               "Specify the percentage of the exit's bandwidth";
66066             tailf:cli-drop-node-name;
66067             type uint8 {
66068               range "1..100";
66069             }
66070           }
66071         }
66072       }
66073       container maximum {
66074         tailf:info "Specify maximum values";
66075         description
66076           "Specify maximum values";
66077         container utilization {
66078           tailf:info "Specify the utilization parameters";
66079           description
66080             "Specify the utilization parameters";
66081           presence "true";
66082           leaf receive {
66083             tailf:info "Specify receive utilization parameter";
66084             description
66085               "Specify receive utilization parameter";
66086             type empty;
66087           }
66088         }
66089       }
66090     }
66091
66092     grouping pfr-border-intf-grouping {
66093       container interface {
66094         tailf:info "Specify an PfR managed border router interface";
66095         description
66096           "Specify an PfR managed border router interface";
66097         list ATM-int {
66098           tailf:cli-drop-node-name;
66099           tailf:cli-suppress-mode;
66100           key "ATM-int";
66101           leaf ATM-int {
66102             tailf:info "ATM interface";
66103             description
66104               "ATM interface";
66105             type string;
66106           }
66107           container external_term {
66108             tailf:cli-drop-node-name;
66109             container external {
66110               tailf:cli-add-mode;
66111               tailf:cli-mode-name "config-pfr-mc-br-if";
66112               presence "true";
66113               uses pfr-border-grouping;
66114             }
66115           }
66116           list external {
66117             tailf:info "Specify/configure an PfR managed exit interface";
66118             description
66119               "Specify/configure an PfR managed exit interface";
66120             tailf:cli-mode-name "config-pfr-mc-br-if";
66121             key "ext-nick";
66122             leaf ext-nick {
66123               tailf:info "Exit nickname";
66124               description
66125                 "Exit nickname";
66126               type string;
66127             }
66128             uses pfr-border-grouping;
66129           }
66130           leaf internal {
66131             tailf:info "Specify an PfR managed intra-domain interface";
66132             description
66133               "Specify an PfR managed intra-domain interface";
66134             type empty;
66135           }
66136         }
66137         leaf BRI {
66138           tailf:info "ISDN Basic Rate Interface";
66139           description
66140             "Interface unit number";
66141           type string;
66142         }
66143         leaf Hssi {
66144           tailf:info "High Speed Serial Interface";
66145           description
66146             "Interface unit number";
66147           type string;
66148         }
66149         leaf Integrated-Service-Engine {
66150           tailf:info "cisco integrated service engine module";
66151           description
66152             "Interface unit number";
66153           type string;
66154         }
66155         leaf Tunnel {
66156           tailf:info "Tunnel interface";
66157           description
66158             "Interface unit number";
66159           type string;
66160         }
66161         leaf Vlan {
66162           tailf:info "Catalyst Vlans";
66163           description
66164             "Interface unit number";
66165           type string;
66166         }
66167       }
66168     }
66169     container pfr {
66170       tailf:info "Performance Routing configuration submodes";
66171       description
66172         "Performance Routing configuration submodes";
66173       container border {
66174         tailf:info "Enter PfR border router configuration submode";
66175         description
66176           "Enter PfR border router configuration submode";
66177         tailf:cli-add-mode;
66178         tailf:cli-mode-name "config-pfr-br";
66179         presence "true";
66180         container pfr-Mode-config-pfr-br {
66181           tailf:cli-drop-node-name;
66182           container active-probe {
66183             tailf:info "Specify active probe parameters";
66184             description
66185               "Specify active probe parameters";
66186             container address {
66187               tailf:info "Identify probe address parameters";
66188               description
66189                 "Identify probe address parameters";
66190               container source {
66191                 tailf:info "Identify probe source address";
66192                 description
66193                   "Identify probe source address";
66194                 container interface {
66195                   tailf:info "Identify probe source address from interface";
66196                   description
66197                     "Identify probe source address from interface";
66198                   tailf:cli-compact-syntax;
66199                   tailf:cli-flatten-container;
66200                   uses interface-grouping;
66201                 }
66202               }
66203             }
66204           }
66205           container local {
66206             tailf:info "Specify the local interface for PfR connection";
66207             description
66208               "Specify the local interface for PfR connection";
66209             container interface {
66210               tailf:cli-drop-node-name;
66211               tailf:info "Identify probe source address from interface";
66212               tailf:cli-compact-syntax;
66213               tailf:cli-flatten-container;
66214               uses interface-grouping;
66215             }
66216           }
66217           leaf logging {
66218             tailf:info "Event logging";
66219             description
66220               "Event logging";
66221             type empty;
66222           }
66223           container master {
66224             tailf:info "Specify the PfR master controller IP address";
66225             description
66226               "Specify the PfR master controller IP address";
66227             list kc-ipv4 {
66228               tailf:cli-drop-node-name;
66229               tailf:cli-suppress-mode;
66230               key "kc-ipv4";
66231               leaf kc-ipv4 {
66232                 tailf:info "IP address";
66233                 description
66234                   "IP address";
66235                 type inet:ipv4-address;
66236               }
66237               leaf key-chain {
66238                 tailf:info "Specify a key-chain";
66239                 description
66240                   "name of key-chain";
66241                 type string;
66242               }
66243             }
66244           }
66245           leaf port {
66246             tailf:info "Specify PfR port number";
66247             description
66248               "Specify PfR port number";
66249             type uint16 {
66250               range "1..65535";
66251             }
66252           }
66253           leaf shutdown {
66254             tailf:info "Disable PfR border router functionality";
66255             description
66256               "Disable PfR border router functionality";
66257             type empty;
66258           }
66259         }
66260       }
66261       container master {
66262         tailf:info "Enter PfR master controller configuration submode";
66263         description
66264           "Enter PfR master controller configuration submode";
66265         tailf:cli-add-mode;
66266         tailf:cli-mode-name "config-pfr-mc";
66267         presence "true";
66268         container icmp-Mode-config-pfr-mc {
66269           tailf:cli-drop-node-name;
66270           container active-probe {
66271             tailf:info "Manually create an active probe for a known target";
66272             description
66273               "Manually create an active probe for a known target";
66274             leaf echo {
66275               tailf:info "Perform ICMP echo probe operations";
66276               description
66277                 "IP address of probe target";
66278               type inet:host;
66279             }
66280             container jitter {
66281               tailf:info "Perform jitter probe operations (requires a responder)";
66282               description
66283                 "Perform jitter probe operations (requires a responder)";
66284               list p-ipv4-or-hostname {
66285                 tailf:cli-drop-node-name;
66286                 tailf:cli-suppress-mode;
66287                 key "p-ipv4-or-hostname";
66288                 leaf p-ipv4-or-hostname {
66289                   tailf:info "IP address of probe target";
66290                   description
66291                     "IP address of probe target";
66292                   type inet:host;
66293                 }
66294                 leaf target-port {
66295                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
66296                   description
66297                     "Target Port Number";
66298                   type uint16 {
66299                     range "1..65535";
66300                   }
66301                 }
66302               }
66303             }
66304             container tcp-conn {
66305               tailf:info "Perform TCP Connection / Disconnect probe operations";
66306               description
66307                 "Perform TCP Connection / Disconnect probe operations";
66308               list t-ipv4-or-hostname {
66309                 tailf:cli-drop-node-name;
66310                 tailf:cli-suppress-mode;
66311                 key "t-ipv4-or-hostname";
66312                 leaf t-ipv4-or-hostname {
66313                   tailf:info "IP address of probe target";
66314                   description
66315                     "IP address of probe target";
66316                   type inet:host;
66317                 }
66318                 leaf target-port {
66319                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
66320                   description
66321                     "Target Port Number";
66322                   type uint16 {
66323                     range "1..65535";
66324                   }
66325                 }
66326               }
66327             }
66328             container udp-echo {
66329               tailf:info "Perform UDP Echo probe operations (requires a responder)";
66330               description
66331                 "Perform UDP Echo probe operations (requires a responder)";
66332               list u-ipv4-or-hostname {
66333                 tailf:cli-drop-node-name;
66334                 tailf:cli-suppress-mode;
66335                 key "u-ipv4-or-hostname";
66336                 leaf u-ipv4-or-hostname {
66337                   tailf:info "IP address of probe target";
66338                   description
66339                     "IP address of probe target";
66340                   type inet:host;
66341                 }
66342                 leaf target-port {
66343                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
66344                   description
66345                     "Target Port Number";
66346                   type uint16 {
66347                     range "1..65535";
66348                   }
66349                 }
66350               }
66351             }
66352           }
66353           container application {
66354             tailf:info "Define application";
66355             description
66356               "Define application";
66357             container define {
66358               tailf:info "Define application";
66359               description
66360                 "Define application";
66361               list app-def {
66362                 tailf:cli-drop-node-name;
66363                 tailf:cli-suppress-mode;
66364                 key "app-def";
66365                 leaf app-def {
66366                   tailf:info "Application definition name";
66367                   description
66368                     "Application definition name";
66369                   type string;
66370                 }
66371                 leaf access-list {
66372                   tailf:info "Define application using access-list";
66373                   description
66374                     "Application definition access-list name";
66375                   type string;
66376                 }
66377                 leaf nbar {
66378                   tailf:info "Define nbar application";
66379                   description
66380                     "Define nbar application";
66381                   type empty;
66382                 }
66383               }
66384             }
66385           }
66386           container backoff {
66387             tailf:info "Specify backoff timer parameters";
66388             description
66389               "Specify backoff timer parameters";
66390             list boff {
66391               tailf:cli-drop-node-name;
66392               tailf:cli-suppress-mode;
66393               key "boff";
66394               leaf boff {
66395                 tailf:info "Specify minimum value of backoff timer (secs)";
66396                 description
66397                   "Specify minimum value of backoff timer (secs)";
66398                 type uint16 {
66399                   range "90..7200";
66400                 }
66401               }
66402               list boff0 {
66403                 tailf:cli-drop-node-name;
66404                 tailf:cli-suppress-mode;
66405                 key "boff0";
66406                 leaf boff0 {
66407                   tailf:info "Specify maximum value of backoff timer (secs)";
66408                   description
66409                     "Specify maximum value of backoff timer (secs)";
66410                   type uint16 {
66411                     range "90..7200";
66412                   }
66413                 }
66414                 leaf bstep {
66415                   tailf:info "Specify optional backoff timer step (secs)";
66416                   description
66417                     "Specify optional backoff timer step (secs)";
66418                   tailf:cli-drop-node-name;
66419                   type uint16 {
66420                     range "90..7110";
66421                   }
66422                 }
66423               }
66424             }
66425           }
66426           leaf bandwidth-resolution {
66427             tailf:info "Enable/configure Bandwidth Resolution";
66428             description
66429               "Enable/configure Bandwidth Resolution";
66430             type empty;
66431           }
66432           container border {
66433             tailf:info "Enter PfR managed border router configuration submode";
66434             description
66435               "Enter PfR managed border router configuration submode";
66436             list br-ipv4 {
66437               tailf:cli-drop-node-name;
66438               tailf:cli-mode-name "config-pfr-mc-br";
66439               key "br-ipv4";
66440               leaf br-ipv4 {
66441                 tailf:info "IP address of border router";
66442                 description
66443                   "IP address of border router";
66444                 type inet:ipv4-address;
66445               }
66446               list key-chain {
66447                 tailf:info "Specify a key-chain";
66448                 description
66449                   "Specify a key-chain";
66450                 tailf:cli-mode-name "config-pfr-mc-br";
66451                 key "kc-name";
66452                 leaf kc-name {
66453                   tailf:info "name of key-chain";
66454                   description
66455                     "name of key-chain";
66456                   type string;
66457                 }
66458                 leaf interface {
66459                   tailf:info "Specify an PfR managed border router interface";
66460                   description
66461                     "Specify an PfR managed border router interface";
66462                   type empty;
66463                 }
66464               }
66465               leaf interface {
66466                 tailf:info "Specify an PfR managed border router interface";
66467                 description
66468                   "Specify an PfR managed border router interface";
66469                 type empty;
66470               }
66471             }
66472           }
66473           container delay {
66474             tailf:info "Specify delay parameters";
66475             description
66476               "Specify delay parameters";
66477             leaf relative {
66478               tailf:info "Maximum allowable relative change from short to long term";
66479               description
66480                 "short/long term in percentage. e.g. 125 is short/long = 1.25";
66481               type uint16 {
66482                 range "1..1000";
66483               }
66484             }
66485             leaf threshold {
66486               tailf:info "Maximum allowable absolute delay";
66487               description
66488                 "Maximum absolute delay threshold (msecs)";
66489               type uint16 {
66490                 range "1..10000";
66491               }
66492             }
66493           }
66494           leaf exporter {
66495             tailf:info "Specify PfR NetFlow Version 9 Exporter parameters";
66496             description
66497               "name of flow exporter";
66498             type string;
66499           }
66500           leaf holddown {
66501             tailf:info "Specify hold-down timer parameter";
66502             description
66503               "Specify hold-down timer parameter (secs)";
66504             type uint16 {
66505               range "90..65535";
66506             }
66507           }
66508           container jitter {
66509             tailf:info "Specify jitter parameters";
66510             description
66511               "Specify jitter parameters";
66512             leaf threshold {
66513               tailf:info "Maximum allowable absolute jitter";
66514               description
66515                 "Maximum absolute jitter threshold (ms)";
66516               type uint16 {
66517                 range "1..1000";
66518               }
66519             }
66520           }
66521           leaf keepalive {
66522             tailf:info "Specify keepalive interval";
66523             description
66524               "Specify keepalive interval in seconds";
66525             type uint16 {
66526               range "0..1000";
66527             }
66528           }
66529           container learn {
66530             tailf:info "Enter prefix and traffic class learning submode";
66531             description
66532               "Enter prefix and traffic class learning submode";
66533             tailf:cli-add-mode;
66534             tailf:cli-mode-name "config-pfr-mc-learn";
66535             presence "true";
66536             container lrn-Mode-config-pfr-mc-learn {
66537               tailf:cli-drop-node-name;
66538               container aggregation-type {
66539                 tailf:info "Type of prefix to aggregate";
66540                 description
66541                   "Type of prefix to aggregate";
66542                 leaf bgp {
66543                   tailf:info "Aggregate prefixes learned via BGP";
66544                   description
66545                     "Aggregate prefixes learned via BGP";
66546                   type empty;
66547                 }
66548                 leaf non-bgp {
66549                   tailf:info "Aggregate prefixes not learned via BGP";
66550                   description
66551                     "Aggregate prefixes not learned via BGP";
66552                   type empty;
66553                 }
66554                 leaf prefix-length {
66555                   tailf:info "Aggregate on prefix length";
66556                   description
66557                     "Specify the prefix mask";
66558                   type uint8 {
66559                     range "1..32";
66560                   }
66561                 }
66562               }
66563               leaf delay {
66564                 tailf:info "Learn top prefixes based on delay";
66565                 description
66566                   "Learn top prefixes based on delay";
66567                 type empty;
66568               }
66569               container expire {
66570                 tailf:info "Set expiry criteria for learn prefixes";
66571                 description
66572                   "Set expiry criteria for learn prefixes";
66573                 container after {
66574                   tailf:info "Specify expiry criteria for learn prefixes";
66575                   description
66576                     "Specify expiry criteria for learn prefixes";
66577                   leaf session {
66578                     tailf:info "Expire prefixes based on number of learn sessions";
66579                     description
66580                       "Specify the value";
66581                     type uint16 {
66582                       range "1..65535";
66583                     }
66584                   }
66585                   leaf time {
66586                     tailf:info "Expire prefixes based on time in minutes";
66587                     description
66588                       "Specify the value";
66589                     type uint16 {
66590                       range "1..65535";
66591                     }
66592                   }
66593                 }
66594               }
66595               container inside {
66596                 tailf:info "Learn prefixes inside the network";
66597                 description
66598                   "Learn prefixes inside the network";
66599                 leaf bgp {
66600                   tailf:info "Learn inside prefixes advertised by BGP out PfR External Interfaces";
66601                   description
66602                     "Learn inside prefixes advertised by BGP out PfR External Interfaces";
66603                   type empty;
66604                 }
66605               }
66606               container list {
66607                 tailf:info "Create PfR Learn Traffic Class List and enter the sub-mode";
66608                 description
66609                   "Create PfR Learn Traffic Class List and enter the sub-mode";
66610                 container seq {
66611                   tailf:info "PfR Learn Traffic Class List sequence number";
66612                   description
66613                     "PfR Learn Traffic Class List sequence number";
66614                   list pfr-tc {
66615                     tailf:cli-drop-node-name;
66616                     tailf:cli-suppress-mode;
66617                     key "pfr-tc";
66618                     leaf pfr-tc {
66619                       tailf:info "PfR Learn Traffic Class List sequence number";
66620                       description
66621                         "PfR Learn Traffic Class List sequence number";
66622                       type uint16 {
66623                         range "1..65535";
66624                       }
66625                     }
66626                     leaf refname {
66627                       tailf:info "PfR Learn Traffic Class List reference name";
66628                       description
66629                         "PfR Learn Traffic Class List reference name";
66630                       type empty;
66631                     }
66632                   }
66633                 }
66634               }
66635               leaf monitor-period {
66636                 tailf:info "Period to monitor prefix for learning";
66637                 description
66638                   "Specify the period in minutes";
66639                 type uint16 {
66640                   range "1..1440";
66641                 }
66642               }
66643               leaf periodic-interval {
66644                 tailf:info "Interval before learning restarts";
66645                 description
66646                   "Specify the interval in minutes";
66647                 type uint16 {
66648                   range "0..10080";
66649                 }
66650               }
66651               container prefixes {
66652                 tailf:info "Number of prefixes to learn";
66653                 description
66654                   "Number of prefixes to learn";
66655                 list prnum {
66656                   tailf:cli-drop-node-name;
66657                   tailf:cli-suppress-mode;
66658                   key "prnum";
66659                   leaf prnum {
66660                     tailf:info "Specify the number of prefixes";
66661                     description
66662                       "Specify the number of prefixes";
66663                     type uint32 {
66664                       range "0..100000";
66665                     }
66666                   }
66667                   leaf applications {
66668                     tailf:info "Number of applications to learn";
66669                     description
66670                       "Specify the number of appl";
66671                     type uint16 {
66672                       range "0..50000";
66673                     }
66674                   }
66675                 }
66676               }
66677               leaf throughput {
66678                 tailf:info "Learn top prefixes based on throughput";
66679                 description
66680                   "Learn top prefixes based on throughput";
66681                 type empty;
66682               }
66683               container traffic-class {
66684                 tailf:info "Set traffic class filters";
66685                 description
66686                   "Set traffic class filters";
66687                 container aggregate {
66688                   tailf:info "Traffic class aggregation specification";
66689                   description
66690                     "Traffic class aggregation specification";
66691                   leaf access-list {
66692                     tailf:info "Match named access list";
66693                     description
66694                       "IP access-list name";
66695                     type string;
66696                   }
66697                 }
66698                 container filter {
66699                   tailf:info "Traffic class filter specification";
66700                   description
66701                     "Traffic class filter specification";
66702                   leaf access-list {
66703                     tailf:info "Match named access list";
66704                     description
66705                       "IP access-list name";
66706                     type string;
66707                   }
66708                 }
66709                 container keys {
66710                   tailf:info "Specify Learn keys for applications";
66711                   description
66712                     "Specify Learn keys for applications";
66713                   container dport {
66714                     tailf:info "Learn top appls based on destination port";
66715                     description
66716                       "Learn top appls based on destination port";
66717                     presence "true";
66718                     leaf dscp {
66719                       tailf:info "Learn top appls based on DSCP";
66720                       description
66721                         "Learn top appls based on DSCP";
66722                       type empty;
66723                     }
66724                     leaf protocol {
66725                       tailf:info "Learn top appls based on protocol";
66726                       description
66727                         "Learn top appls based on protocol";
66728                       type empty;
66729                     }
66730                     leaf sport {
66731                       tailf:info "Learn top appls based on source port";
66732                       description
66733                         "Learn top appls based on source port";
66734                       type empty;
66735                     }
66736                   }
66737                   container dscp {
66738                     tailf:info "Learn top appls based on DSCP";
66739                     description
66740                       "Learn top appls based on DSCP";
66741                     presence "true";
66742                     leaf dport {
66743                       tailf:info "Learn top appls based on destination port";
66744                       description
66745                         "Learn top appls based on destination port";
66746                       type empty;
66747                     }
66748                     leaf protocol {
66749                       tailf:info "Learn top appls based on protocol";
66750                       description
66751                         "Learn top appls based on protocol";
66752                       type empty;
66753                     }
66754                     leaf sport {
66755                       tailf:info "Learn top appls based on source port";
66756                       description
66757                         "Learn top appls based on source port";
66758                       type empty;
66759                     }
66760                   }
66761                   container protocol {
66762                     tailf:info "Learn top appls based on protocol";
66763                     description
66764                       "Learn top appls based on protocol";
66765                     presence "true";
66766                     leaf dport {
66767                       tailf:info "Learn top appls based on destination port";
66768                       description
66769                         "Learn top appls based on destination port";
66770                       type empty;
66771                     }
66772                     leaf dscp {
66773                       tailf:info "Learn top appls based on DSCP";
66774                       description
66775                         "Learn top appls based on DSCP";
66776                       type empty;
66777                     }
66778                     container sport {
66779                       tailf:info "Learn top appls based on source port";
66780                       description
66781                         "Learn top appls based on source port";
66782                       presence "true";
66783                       leaf dport {
66784                         tailf:info "Learn top appls based on destination port";
66785                         description
66786                           "Learn top appls based on destination port";
66787                         type empty;
66788                       }
66789                       leaf dscp {
66790                         tailf:info "Learn top appls based on DSCP";
66791                         description
66792                           "Learn top appls based on DSCP";
66793                         type empty;
66794                       }
66795                     }
66796                   }
66797                   container sport {
66798                     tailf:info "Learn top appls based on source port";
66799                     description
66800                       "Learn top appls based on source port";
66801                     presence "true";
66802                     leaf dport {
66803                       tailf:info "Learn top appls based on destination port";
66804                       description
66805                         "Learn top appls based on destination port";
66806                       type empty;
66807                     }
66808                     leaf dscp {
66809                       tailf:info "Learn top appls based on DSCP";
66810                       description
66811                         "Learn top appls based on DSCP";
66812                       type empty;
66813                     }
66814                     leaf protocol {
66815                       tailf:info "Learn top appls based on protocol";
66816                       description
66817                         "Learn top appls based on protocol";
66818                       type empty;
66819                     }
66820                   }
66821                 }
66822               }
66823             }
66824           }
66825           leaf logging {
66826             tailf:info "Event Logging";
66827             description
66828               "Event Logging";
66829             type empty;
66830           }
66831           container loss {
66832             tailf:info "Specify loss parameters";
66833             description
66834               "Specify loss parameters";
66835             leaf relative {
66836               tailf:info "Maximum allowable relative change from short to long term";
66837               description
66838                 "short/long term in percentage. e.g. 125 is short/long = 1.25";
66839               type uint16 {
66840                 range "1..1000";
66841               }
66842             }
66843             leaf threshold {
66844               tailf:info "Maximum allowable absolute packet lost packets";
66845               description
66846                 "Maximum absolute lost packet threshold in percentage e.g., 1 is 0.0001 percent";
66847               type uint32 {
66848                 range "1..1000000";
66849               }
66850             }
66851           }
66852           container max {
66853             tailf:info "Specify the upper limit";
66854             description
66855               "Specify the upper limit";
66856             container prefix {
66857               tailf:info "Specify prefix upper limit";
66858               description
66859                 "Specify prefix upper limit";
66860               container total {
66861                 tailf:info "Specify max total prefix limit";
66862                 description
66863                   "Specify max total prefix limit";
66864                 list maxpr {
66865                   tailf:cli-drop-node-name;
66866                   tailf:cli-suppress-mode;
66867                   key "maxpr";
66868                   leaf maxpr {
66869                     tailf:info "Specify the max total prefix limit value";
66870                     description
66871                       "Specify the max total prefix limit value";
66872                     type uint32 {
66873                       range "1..100000";
66874                     }
66875                   }
66876                   leaf learn {
66877                     tailf:info "Specify max learn prefix limit";
66878                     description
66879                       "Specify max learn prefix limit value";
66880                     type uint32 {
66881                       range "0..100000";
66882                     }
66883                   }
66884                 }
66885               }
66886             }
66887             container range {
66888               tailf:info "Specify range value";
66889               description
66890                 "Specify range value";
66891               container receive {
66892                 tailf:info "Specify receive range";
66893                 description
66894                   "Specify receive range";
66895                 leaf percent {
66896                   tailf:info "Specify the percentage range";
66897                   description
66898                     "Specify the percentage range";
66899                   type uint8 {
66900                     range "0..100";
66901                   }
66902                 }
66903               }
66904             }
66905           }
66906           container max-range-utilization {
66907             tailf:info "Configure the maximum range for utilization of all exits";
66908             description
66909               "Configure the maximum range for utilization of all exits";
66910             leaf percent {
66911               tailf:info "Specify the percentage range";
66912               description
66913                 "Specify the percentage range";
66914               type uint8 {
66915                 range "1..100";
66916               }
66917             }
66918           }
66919           container mc-peer {
66920             tailf:info "Enable MC-to-MC peering";
66921             description
66922               "Enable MC-to-MC peering";
66923             presence "true";
66924             list he-ipv4 {
66925               tailf:cli-drop-node-name;
66926               tailf:cli-suppress-mode;
66927               key "he-ipv4";
66928               leaf he-ipv4 {
66929                 tailf:info "IP address of head-end MC peer";
66930                 description
66931                   "IP address of head-end MC peer";
66932                 type inet:ipv4-address;
66933               }
66934               list lb-int {
66935                 tailf:cli-drop-node-name;
66936                 tailf:cli-suppress-mode;
66937                 key "lb-int";
66938                 leaf lb-int {
66939                   tailf:info "Loopback interface";
66940                   description
66941                     "Loopback interface";
66942                   type string;
66943                 }
66944                 leaf description {
66945                   tailf:info "MC site description string";
66946                   description
66947                     "MC site description (max 40 char)";
66948                   tailf:cli-multi-value;
66949                   type string;
66950                 }
66951                 leaf domain {
66952                   tailf:info "SAF domain ID to be used for MC-to-MC peering";
66953                   description
66954                     "Domain value";
66955                   type uint16 {
66956                     range "1..65535";
66957                   }
66958                 }
66959               }
66960             }
66961             leaf description {
66962               tailf:info "MC site description string";
66963               description
66964                 "MC site description (max 40 char)";
66965               tailf:cli-multi-value;
66966               type string;
66967             }
66968             container domain {
66969               tailf:info "SAF domain ID to be used for MC-to-MC peering";
66970               description
66971                 "SAF domain ID to be used for MC-to-MC peering";
66972               list dmval {
66973                 tailf:cli-drop-node-name;
66974                 tailf:cli-suppress-mode;
66975                 key "dmval";
66976                 leaf dmval {
66977                   tailf:info "Domain value";
66978                   description
66979                     "Domain value";
66980                   type uint16 {
66981                     range "1..65535";
66982                   }
66983                 }
66984                 list hep-ipv4 {
66985                   tailf:cli-drop-node-name;
66986                   tailf:cli-suppress-mode;
66987                   key "hep-ipv4";
66988                   leaf hep-ipv4 {
66989                     tailf:info "IP address of head-end MC peer";
66990                     description
66991                       "IP address of head-end MC peer";
66992                     type inet:ipv4-address;
66993                   }
66994                   leaf loop-int {
66995                     tailf:info "Loopback interface";
66996                     description
66997                       "Loopback interface";
66998                     tailf:cli-drop-node-name;
66999                     type string;
67000                   }
67001                 }
67002                 leaf description {
67003                   tailf:info "MC site description string";
67004                   description
67005                     "MC site description (max 40 char)";
67006                   tailf:cli-multi-value;
67007                   type string;
67008                 }
67009                 leaf eigrp {
67010                   tailf:info "Use explicit EIGRP configuration instead of auto-config";
67011                   description
67012                     "Loopback interface";
67013                   type string;
67014                 }
67015                 leaf head-end {
67016                   tailf:info "Specify this router as head-end MC-peer";
67017                   description
67018                     "Loopback interface";
67019                   type string;
67020                 }
67021               }
67022             }
67023             container eigrp {
67024               tailf:info "Use explicit EIGRP configuration instead of auto-config";
67025               description
67026                 "Use explicit EIGRP configuration instead of auto-config";
67027               list eigrp-lb {
67028                 tailf:cli-drop-node-name;
67029                 tailf:cli-suppress-mode;
67030                 key "eigrp-lb";
67031                 leaf eigrp-lb {
67032                   tailf:info "Loopback interface";
67033                   description
67034                     "Loopback interface";
67035                   type string;
67036                 }
67037                 leaf description {
67038                   tailf:info "MC site description string";
67039                   description
67040                     "MC site description (max 40 char)";
67041                   tailf:cli-multi-value;
67042                   type string;
67043                 }
67044                 leaf domain {
67045                   tailf:info "SAF domain ID to be used for MC-to-MC peering";
67046                   description
67047                     "Domain value";
67048                   type uint16 {
67049                     range "1..65535";
67050                   }
67051                 }
67052               }
67053             }
67054             container head-end {
67055               tailf:info "Specify this router as head-end MC-peer";
67056               description
67057                 "Specify this router as head-end MC-peer";
67058               list he-loop {
67059                 tailf:cli-drop-node-name;
67060                 tailf:cli-suppress-mode;
67061                 key "he-loop";
67062                 leaf he-loop {
67063                   tailf:info "Loopback interface";
67064                   description
67065                     "Loopback interface";
67066                   type string;
67067                 }
67068                 leaf description {
67069                   tailf:info "MC site description string";
67070                   description
67071                     "MC site description (max 40 char)";
67072                   tailf:cli-multi-value;
67073                   type string;
67074                 }
67075                 leaf domain {
67076                   tailf:info "SAF domain ID to be used for MC-to-MC peering";
67077                   description
67078                     "Domain value";
67079                   type uint16 {
67080                     range "1..65535";
67081                   }
67082                 }
67083               }
67084             }
67085           }
67086           container mode {
67087             tailf:info "Specify PfR operating mode settings";
67088             description
67089               "Specify PfR operating mode settings";
67090             container monitor {
67091               tailf:info "Specify PfR prefix monitoring policy settings";
67092               description
67093                 "Specify PfR prefix monitoring policy settings";
67094               container active {
67095                 tailf:info "Enable active monitoring mode";
67096                 description
67097                   "Enable active monitoring mode";
67098                 presence "true";
67099                 leaf throughput {
67100                   tailf:info "Enable active monitoring with throughput from passive mode";
67101                   description
67102                     "Enable active monitoring with throughput from passive mode";
67103                   type empty;
67104                 }
67105               }
67106               leaf both {
67107                 tailf:info "Enable active and passive monitoring modes";
67108                 description
67109                   "Enable active and passive monitoring modes";
67110                 type empty;
67111               }
67112               leaf fast {
67113                 tailf:info "Enable fast monitoring mode";
67114                 description
67115                   "Enable fast monitoring mode";
67116                 type empty;
67117               }
67118               leaf passive {
67119                 tailf:info "Enable passive monitoring mode";
67120                 description
67121                   "Enable passive monitoring mode";
67122                 type empty;
67123               }
67124             }
67125             container route {
67126               tailf:info "Specify PfR route control policy settings";
67127               description
67128                 "Specify PfR route control policy settings";
67129               leaf control {
67130                 tailf:info "Enable PfR to control routes automatically";
67131                 description
67132                   "Enable PfR to control routes automatically";
67133                 type empty;
67134               }
67135               container metric {
67136                 tailf:info "Specify PfR route protocol related settings";
67137                 description
67138                   "Specify PfR route protocol related settings";
67139                 container bgp {
67140                   tailf:info "Specify PfR bgp protocol settings";
67141                   description
67142                     "Specify PfR bgp protocol settings";
67143                   leaf local-pref {
67144                     tailf:info "Specify OER bgp local preference";
67145                     description
67146                       "Specify the local preference for bgp controlled routes";
67147                     type uint16 {
67148                       range "1..65535";
67149                     }
67150                   }
67151                 }
67152                 container eigrp {
67153                   tailf:info "Specify PfR eigrp routes related settings";
67154                   description
67155                     "Specify PfR eigrp routes related settings";
67156                   leaf tag {
67157                     tailf:info "Specify the eigrp route tag value";
67158                     description
67159                       "Specify a tag value for PfR controlled eigrp routes";
67160                     type uint16 {
67161                       range "1..65535";
67162                     }
67163                   }
67164                 }
67165                 container static {
67166                   tailf:info "Specify PfR static routes related settings";
67167                   description
67168                     "Specify PfR static routes related settings";
67169                   leaf tag {
67170                     tailf:info "Specify the static route tag value";
67171                     description
67172                       "Specify a tag value for PfR controlled static routes";
67173                     type uint16 {
67174                       range "1..65535";
67175                     }
67176                   }
67177                 }
67178               }
67179               leaf observe {
67180                 tailf:info "PfR offers route control advice, but does not take any action";
67181                 description
67182                   "PfR offers route control advice, but does not take any action";
67183                 type empty;
67184               }
67185               container protocol {
67186                 tailf:info "Specify OER route control protocol";
67187                 description
67188                   "Specify OER route control protocol";
67189                 leaf pbr {
67190                   tailf:info "Specify OER route control protocol Policy-Based-Routing";
67191                   description
67192                     "Specify OER route control protocol Policy-Based-Routing";
67193                   type empty;
67194                 }
67195               }
67196             }
67197             container verify {
67198               tailf:info "Specify verification behavior";
67199               description
67200                 "Specify verification behavior";
67201               leaf bidirectional {
67202                 tailf:info "Verify bidirectional traffic of applications";
67203                 description
67204                   "Verify bidirectional traffic of applications";
67205                 type empty;
67206               }
67207             }
67208           }
67209           container mos {
67210             tailf:info "Specify mos parameters";
67211             description
67212               "Specify mos parameters";
67213             container threshold {
67214               tailf:info "Minimum MOS threshold";
67215               description
67216                 "Minimum MOS threshold";
67217               list mos-thresh {
67218                 tailf:cli-drop-node-name;
67219                 tailf:cli-suppress-mode;
67220                 key "mos-thresh";
67221                 leaf mos-thresh {
67222                   tailf:info "Minimum absolute MOS threshold 1.00 - 5.00";
67223                   description
67224                     "Minimum absolute MOS threshold 1.00 - 5.00";
67225                   type string;
67226                 }
67227                 leaf percent {
67228                   tailf:info "Maximum percentage probe with MOS below threshold";
67229                   description
67230                     "Maximum percentage probe with MOS below threshold";
67231                   type uint8 {
67232                     range "1..100";
67233                   }
67234                 }
67235               }
67236             }
67237           }
67238           leaf periodic {
67239             tailf:info "Specify periodic rotation timer value";
67240             description
67241               "Specify periodic rotation timer value (secs)";
67242             type uint16 {
67243               range "90..7200";
67244             }
67245           }
67246           leaf policy-rules {
67247             tailf:info "Name of pfr-map defining PfR policy";
67248             description
67249               "pfr-map name";
67250             type string;
67251           }
67252           leaf port {
67253             tailf:info "Specify tcp port number for PfR communication";
67254             description
67255               "Specify tcp port number for PfR communication";
67256             type uint16 {
67257               range "1..65535";
67258             }
67259           }
67260           container probe {
67261             tailf:info "Specify number of packets for jitter probe";
67262             description
67263               "Specify number of packets for jitter probe";
67264             leaf packets {
67265               tailf:info "Specify number of packets for jitter probe";
67266               description
67267                 "probe packets <number>";
67268               type uint8 {
67269                 range "1..255";
67270               }
67271             }
67272           }
67273           container resolve {
67274             tailf:info "Specify PfR policy resolver settings";
67275             description
67276               "Specify PfR policy resolver settings";
67277             leaf cost {
67278               tailf:info "Specify PfR cost policy resolver settings";
67279               description
67280                 "Specify PfR cost policy resolver settings";
67281               type empty;
67282             }
67283             container delay {
67284               tailf:info "Specify PfR delay policy resolver settings";
67285               description
67286                 "Specify PfR delay policy resolver settings";
67287               container priority {
67288                 tailf:info "Specify the order in which resolver will consider this policy";
67289                 description
67290                   "Specify the order in which resolver will consider this policy";
67291                 list del-pol {
67292                   tailf:cli-drop-node-name;
67293                   tailf:cli-suppress-mode;
67294                   key "del-pol";
67295                   leaf del-pol {
67296                     tailf:info "Specify this policy's priority; 1 being highest";
67297                     description
67298                       "Specify this policy's priority; 1 being highest";
67299                     type uint8 {
67300                       range "1..9";
67301                     }
67302                   }
67303                   leaf variance {
67304                     tailf:info "Specify the range of values considered equivalent for this policy";
67305                     description
67306                       "Specify range; e.g. 25 means all exits measuring up to 25% worse than the best exit are considered equivalent";
67307                     type uint8 {
67308                       range "1..100";
67309                     }
67310                   }
67311                 }
67312               }
67313             }
67314             leaf equivalent-path-round-robin {
67315               tailf:info "Specify equivalent-path round-robin resolver";
67316               description
67317                 "Specify equivalent-path round-robin resolver";
67318               type empty;
67319             }
67320             container jitter {
67321               tailf:info "Specify PfR jitter policy resolver settings";
67322               description
67323                 "Specify PfR jitter policy resolver settings";
67324               container priority {
67325                 tailf:info "Specify the order in which resolver will consider this policy";
67326                 description
67327                   "Specify the order in which resolver will consider this policy";
67328                 list jit-pol {
67329                   tailf:cli-drop-node-name;
67330                   tailf:cli-suppress-mode;
67331                   key "jit-pol";
67332                   leaf jit-pol {
67333                     tailf:info "Specify this policy's priority; 1 being highest";
67334                     description
67335                       "Specify this policy's priority; 1 being highest";
67336                     type uint8 {
67337                       range "1..9";
67338                     }
67339                   }
67340                   leaf variance {
67341                     tailf:info "Specify the range of values considered equivalent for this policy";
67342                     description
67343                       "Specify range; e.g. 25 means all exits measuring up to 25% worse than the best exit are considered equivalent";
67344                     type uint8 {
67345                       range "1..100";
67346                     }
67347                   }
67348                 }
67349               }
67350             }
67351             container loss {
67352               tailf:info "Specify PfR loss policy resolver settings";
67353               description
67354                 "Specify PfR loss policy resolver settings";
67355               container priority {
67356                 tailf:info "Specify the order in which resolver will consider this policy";
67357                 description
67358                   "Specify the order in which resolver will consider this policy";
67359                 list loss-pol {
67360                   tailf:cli-drop-node-name;
67361                   tailf:cli-suppress-mode;
67362                   key "loss-pol";
67363                   leaf loss-pol {
67364                     tailf:info "Specify this policy's priority; 1 being highest";
67365                     description
67366                       "Specify this policy's priority; 1 being highest";
67367                     type uint8 {
67368                       range "1..9";
67369                     }
67370                   }
67371                   leaf variance {
67372                     tailf:info "Specify the range of values considered equivalent for this policy";
67373                     description
67374                       "Specify range; e.g. 25 means all exits measuring up to 25% worse than the best exit are considered equivalent";
67375                     type uint8 {
67376                       range "1..100";
67377                     }
67378                   }
67379                 }
67380               }
67381             }
67382             container mos {
67383               tailf:info "Specify PfR MOS policy resolver settings";
67384               description
67385                 "Specify PfR MOS policy resolver settings";
67386               container priority {
67387                 tailf:info "Specify the order in which resolver will consider this policy";
67388                 description
67389                   "Specify the order in which resolver will consider this policy";
67390                 list mos-pol {
67391                   tailf:cli-drop-node-name;
67392                   tailf:cli-suppress-mode;
67393                   key "mos-pol";
67394                   leaf mos-pol {
67395                     tailf:info "Specify this policy's priority; 1 being highest";
67396                     description
67397                       "Specify this policy's priority; 1 being highest";
67398                     type uint8 {
67399                       range "1..9";
67400                     }
67401                   }
67402                   leaf variance {
67403                     tailf:info "Specify the range of values considered equivalent for this policy";
67404                     description
67405                       "Specify range; e.g. 25 means all exits measuring up to 25% worse than the best exit are considered equivalent";
67406                     type uint8 {
67407                       range "1..100";
67408                     }
67409                   }
67410                 }
67411               }
67412             }
67413           }
67414           container rsvp {
67415             tailf:info "Specify rsvp parameters";
67416             description
67417               "Specify rsvp parameters";
67418             leaf post-dial-delay {
67419               tailf:info "Specify rsvp post-dial-delay in msecs";
67420               description
67421                 "RSVP post-dial-delay in msecs";
67422               type uint16 {
67423                 range "0..500";
67424               }
67425             }
67426             leaf signaling-retries {
67427               tailf:info "Specify number of rsvp signaling-retries";
67428               description
67429                 "Number of signaling-retries";
67430               type uint8 {
67431                 range "0..1";
67432               }
67433             }
67434           }
67435           leaf shutdown {
67436             tailf:info "Disable PfR master controller functionality";
67437             description
67438               "Disable PfR master controller functionality";
67439             type empty;
67440           }
67441           container target-discovery {
67442             tailf:info "Enable/configure Target Discovery";
67443             description
67444               "Enable/configure Target Discovery";
67445             presence "true";
67446             container responder-list {
67447               tailf:info "Specify static list of responders";
67448               description
67449                 "Specify static list of responders";
67450               list td-num {
67451                 tailf:cli-drop-node-name;
67452                 tailf:cli-suppress-mode;
67453                 key "td-num";
67454                 leaf td-num {
67455                   tailf:info "Prefix-list containing list of responders";
67456                   description
67457                     "Prefix-list containing list of responders";
67458                   type string;
67459                 }
67460                 leaf inside-prefixes {
67461                   tailf:info "Prefix-list containing list of inside prefixes";
67462                   description
67463                     "Prefix-list containing list of inside prefixes";
67464                   type string;
67465                 }
67466               }
67467             }
67468           }
67469           container traceroute {
67470             tailf:info "Configure Traceroute global parameters";
67471             description
67472               "Configure Traceroute global parameters";
67473             leaf probe-delay {
67474               tailf:info "Delay between subsequent traceroute probes";
67475               description
67476                 "Specify the time between two probes in msec";
67477               type uint16 {
67478                 range "0..65535";
67479               }
67480             }
67481           }
67482           leaf trigger-log-percentage {
67483             tailf:info "Specify the percentage of out-of-policy TCs that will trigger a syslog";
67484             description
67485               "Specify the percentage of out-of-policy TCs that will trigger a syslog";
67486             type uint8 {
67487               range "0..100";
67488             }
67489           }
67490           container unreachable {
67491             tailf:info "Specify unreachable parameters";
67492             description
67493               "Specify unreachable parameters";
67494             leaf relative {
67495               tailf:info "Maximum allowable relative change from short to long term";
67496               description
67497                 "short/long term in percentage. e.g. 125 is short/long = 1.25";
67498               type uint16 {
67499                 range "1..1000";
67500               }
67501             }
67502             leaf threshold {
67503               tailf:info "Maximum allowable absolute unreachables";
67504               description
67505                 "Maximum absolute unreachable threshold (flows-per-million)";
67506               type uint32 {
67507                 range "1..1000000";
67508               }
67509             }
67510           }
67511         }
67512       }
67513     }
67514     list pfr-map {
67515       tailf:info "Create pfr-map and enter pfr-map command mode";
67516       description
67517         "Create pfr-map and enter pfr-map command mode";
67518       tailf:cli-mode-name "config-pfr-map";
67519       key "pfr-tg";
67520       leaf pfr-tg {
67521         tailf:info "pfr-map tag";
67522         description
67523           "pfr-map tag";
67524         type string;
67525       }
67526       container pfr-Mode-config-pfr-map {
67527         tailf:cli-drop-node-name;
67528         container match {
67529           tailf:info "Match values for PfR policy";
67530           description
67531             "Match values for PfR policy";
67532           container ip {
67533             tailf:info "IP specific information";
67534             description
67535               "IP specific information";
67536             leaf address {
67537               tailf:info "Match address";
67538               description
67539                 "Match address";
67540               type empty;
67541             }
67542           }
67543           container pfr {
67544             tailf:info "Match PfR prefixes";
67545             description
67546               "Match PfR prefixes";
67547             leaf learn {
67548               tailf:info "Match PfR learned prefixes";
67549               description
67550                 "Match PfR learned prefixes";
67551               type empty;
67552             }
67553           }
67554           container traffic-class {
67555             tailf:info "Specify Traffic class";
67556             description
67557               "Specify Traffic class";
67558             leaf access-list {
67559               tailf:info "Specify Traffic class(es) using access-list";
67560               description
67561                 "Specify Traffic class(es) using access-list";
67562               type empty;
67563             }
67564             leaf application {
67565               tailf:info "Specify the application to learn";
67566               description
67567                 "Specify the application to learn";
67568               type empty;
67569             }
67570             leaf prefix-list {
67571               tailf:info "Specify Traffic class(es) using prefix-list";
67572               description
67573                 "Specify Traffic class(es) using prefix-list";
67574               type empty;
67575             }
67576           }
67577         }
67578         container set {
67579           tailf:info "Set values for PfR policy";
67580           description
67581             "Set values for PfR policy";
67582           container active-probe {
67583             tailf:info "Manually create an active probe for a known target";
67584             description
67585               "Manually create an active probe for a known target";
67586             container echo {
67587               tailf:info "Perform ICMP echo probe operations";
67588               description
67589                 "Perform ICMP echo probe operations";
67590               list prb-ipv4-or-hostname {
67591                 tailf:cli-drop-node-name;
67592                 tailf:cli-suppress-mode;
67593                 key "prb-ipv4-or-hostname";
67594                 leaf prb-ipv4-or-hostname {
67595                   tailf:info "IP address of probe target";
67596                   description
67597                     "IP address of probe target";
67598                   type inet:host;
67599                 }
67600                 leaf dscp {
67601                   tailf:info "Specify the DSCP value";
67602                   description
67603                     "Specify the DSCP value";
67604                   type empty;
67605                 }
67606               }
67607             }
67608             container jitter {
67609               tailf:info "Perform jitter probe operations (requires a responder)";
67610               description
67611                 "Perform jitter probe operations (requires a responder)";
67612               list jit-ipv4-or-hostname {
67613                 tailf:cli-drop-node-name;
67614                 tailf:cli-suppress-mode;
67615                 key "jit-ipv4-or-hostname";
67616                 leaf jit-ipv4-or-hostname {
67617                   tailf:info "IP address of probe target";
67618                   description
67619                     "IP address of probe target";
67620                   type inet:host;
67621                 }
67622                 leaf target-port {
67623                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
67624                   description
67625                     "Required Target Port for udp-echo or tcp-conn or jitter";
67626                   type empty;
67627                 }
67628               }
67629             }
67630             container tcp-conn {
67631               tailf:info "Perform TCP Connection / Disconnect probe operations";
67632               description
67633                 "Perform TCP Connection / Disconnect probe operations";
67634               list tcp-ipv4-or-hostname {
67635                 tailf:cli-drop-node-name;
67636                 tailf:cli-suppress-mode;
67637                 key "tcp-ipv4-or-hostname";
67638                 leaf tcp-ipv4-or-hostname {
67639                   tailf:info "IP address of probe target";
67640                   description
67641                     "IP address of probe target";
67642                   type inet:host;
67643                 }
67644                 leaf target-port {
67645                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
67646                   description
67647                     "Required Target Port for udp-echo or tcp-conn or jitter";
67648                   type empty;
67649                 }
67650               }
67651             }
67652             container udp-echo {
67653               tailf:info "Perform UDP Echo probe operations (requires a responder)";
67654               description
67655                 "Perform UDP Echo probe operations (requires a responder)";
67656               list udp-ipv4-or-hostname {
67657                 tailf:cli-drop-node-name;
67658                 tailf:cli-suppress-mode;
67659                 key "udp-ipv4-or-hostname";
67660                 leaf udp-ipv4-or-hostname {
67661                   tailf:info "IP address of probe target";
67662                   description
67663                     "IP address of probe target";
67664                   type inet:host;
67665                 }
67666                 leaf target-port {
67667                   tailf:info "Required Target Port for udp-echo or tcp-conn or jitter";
67668                   description
67669                     "Required Target Port for udp-echo or tcp-conn or jitter";
67670                   type empty;
67671                 }
67672               }
67673             }
67674           }
67675           container backoff {
67676             tailf:info "Specify backoff timer parameters";
67677             description
67678               "Specify backoff timer parameters";
67679             list boff-t {
67680               tailf:cli-drop-node-name;
67681               tailf:cli-suppress-mode;
67682               key "boff-t";
67683               leaf boff-t {
67684                 tailf:info "Specify minimum value of backoff timer (secs)";
67685                 description
67686                   "Specify minimum value of backoff timer (secs)";
67687                 type uint16 {
67688                   range "90..7200";
67689                 }
67690               }
67691               list boff-t0 {
67692                 tailf:cli-drop-node-name;
67693                 tailf:cli-suppress-mode;
67694                 key "boff-t0";
67695                 leaf boff-t0 {
67696                   tailf:info "Specify maximum value of backoff timer (secs)";
67697                   description
67698                     "Specify maximum value of backoff timer (secs)";
67699                   type uint16 {
67700                     range "90..7200";
67701                   }
67702                 }
67703                 leaf boff-rng {
67704                   tailf:info "Specify optional backoff timer step (secs)";
67705                   description
67706                     "Specify optional backoff timer step (secs)";
67707                   tailf:cli-drop-node-name;
67708                   type uint16 {
67709                     range "90..7110";
67710                   }
67711                 }
67712               }
67713             }
67714           }
67715           container delay {
67716             tailf:info "Specify delay parameters";
67717             description
67718               "Specify delay parameters";
67719             leaf relative {
67720               tailf:info "Maximum allowable relative change from short to long term";
67721               description
67722                 "Maximum allowable relative change from short to long term";
67723               type empty;
67724             }
67725             leaf threshold {
67726               tailf:info "Maximum allowable absolute delay";
67727               description
67728                 "Maximum allowable absolute delay";
67729               type empty;
67730             }
67731           }
67732           leaf holddown {
67733             tailf:info "Specify hold-down timer parameter";
67734             description
67735               "Specify hold-down timer parameter (secs)";
67736             type uint16 {
67737               range "90..65535";
67738             }
67739           }
67740           leaf interface {
67741             tailf:info "Specify an PfR managed border router interface";
67742             description
67743               "Set the forwarding interface to Null0";
67744             type string;
67745           }
67746           leaf jitter {
67747             tailf:info "Specify jitter parameters";
67748             description
67749               "Specify jitter parameters";
67750             type empty;
67751           }
67752           container link-group {
67753             tailf:info "Specify the link group";
67754             description
67755               "Specify the link group";
67756             list lg-name {
67757               tailf:cli-drop-node-name;
67758               tailf:cli-suppress-mode;
67759               key "lg-name";
67760               leaf lg-name {
67761                 tailf:info "Specify primary link group name";
67762                 description
67763                   "Specify primary link group name";
67764                 type string;
67765               }
67766               container fallback {
67767                 tailf:info "Specify the fallback link group";
67768                 description
67769                   "Specify the fallback link group";
67770                 presence "true";
67771                 leaf fall-name {
67772                   tailf:info "Specify Fallback link group name";
67773                   description
67774                     "Specify Fallback link group name";
67775                   tailf:cli-drop-node-name;
67776                   type string;
67777                 }
67778               }
67779             }
67780           }
67781           container loss {
67782             tailf:info "Specify loss parameters";
67783             description
67784               "Specify loss parameters";
67785             leaf relative {
67786               tailf:info "Maximum allowable relative change from short to long term";
67787               description
67788                 "short/long term in percentage. e.g. 125 is short/long = 1.25";
67789               type uint16 {
67790                 range "1..1000";
67791               }
67792             }
67793             leaf threshold {
67794               tailf:info "Maximum allowable absolute packet lost packets";
67795               description
67796                 "Maximum absolute lost packet threshold in percentage e.g., 1 is 0.0001 percent";
67797               type uint32 {
67798                 range "1..1000000";
67799               }
67800             }
67801           }
67802           leaf mode {
67803             tailf:info "Specify PfR operating mode settings";
67804             description
67805               "Specify PfR operating mode settings";
67806             type empty;
67807           }
67808           leaf mos {
67809             tailf:info "Specify mos parameters";
67810             description
67811               "Specify mos parameters";
67812             type empty;
67813           }
67814           leaf next-hop {
67815             tailf:info "Specify the next-hop ip address";
67816             description
67817               "Specify the next-hop ip address";
67818             type empty;
67819           }
67820           leaf periodic {
67821             tailf:info "Specify periodic rotation timer value";
67822             description
67823               "Specify periodic rotation timer value";
67824             type empty;
67825           }
67826           leaf probe {
67827             tailf:info "Specify active probe parameter";
67828             description
67829               "Specify active probe parameter";
67830             type empty;
67831           }
67832           leaf resolve {
67833             tailf:info "Specify PfR policy resolver settings";
67834             description
67835               "Specify PfR policy resolver settings";
67836             type empty;
67837           }
67838           leaf traceroute {
67839             tailf:info "Enable traceroute";
67840             description
67841               "Enable traceroute";
67842             type empty;
67843           }
67844           leaf trap-enable {
67845             tailf:info "Enable PfR MIB Traps";
67846             description
67847               "Enable PfR MIB Traps";
67848             type empty;
67849           }
67850           leaf trigger-log-percentage {
67851             tailf:info "Specify the percentage of out-of-policy TCs that will trigger a syslog";
67852             description
67853               "Specify the percentage of out-of-policy TCs that will trigger a syslog";
67854             type empty;
67855           }
67856           leaf unreachable {
67857             tailf:info "Specify unreachable parameters";
67858             description
67859               "Specify unreachable parameters";
67860             type empty;
67861           }
67862         }
67863       }
67864     }
67865     container ptp {
67866       tailf:info "Precision Time Protocol";
67867       description
67868         "Precision Time Protocol";
67869       container clock {
67870         tailf:info "Configure PTP clock";
67871         description
67872           "Configure PTP clock";
67873         tailf:cli-add-mode;
67874         tailf:cli-mode-name "config-ptp-clk";
67875         container ordinary {
67876           tailf:info "Configure PTP Ordinary clock";
67877           description
67878             "Configure PTP Ordinary clock";
67879           tailf:cli-hide-in-submode;
67880           leaf domain {
67881             tailf:info "PTP domain";
67882             description
67883               "PTP domain";
67884             type int8 {
67885               tailf:info "<0-127>##Domain number";
67886               range "0..127";
67887             }
67888           }
67889         }
67890         container clock-port {
67891           tailf:info "Configure clock port";
67892           description
67893             "Configure clock port";
67894           tailf:cli-add-mode;
67895           tailf:cli-mode-name "config-ptp-port";
67896           leaf name {
67897             tailf:info "Port name";
67898             description
67899               "Port name";
67900             tailf:cli-drop-node-name;
67901             tailf:cli-incomplete-command;
67902             tailf:cli-hide-in-submode;
67903             type string {
67904               tailf:info "WORD##Port name";
67905             }
67906           }
67907           leaf slave {
67908             tailf:info "Configure as Slave";
67909             description
67910               "Configure as Slave";
67911             tailf:cli-hide-in-submode;
67912             type empty;
67913           }
67914           leaf master {
67915             tailf:info "Configure as Master";
67916             description
67917               "Configure as Master";
67918             tailf:cli-hide-in-submode;
67919             type empty;
67920           }
67921           container transport {
67922             tailf:info "Set port transport parameters";
67923             description
67924               "Set port transport parameters";
67925             tailf:cli-compact-syntax;
67926             tailf:cli-sequence-commands;
67927             leaf ipv4 {
67928               tailf:info "Use IPv4 encapsulation";
67929               description
67930                 "Use IPv4 encapsulation";
67931               type empty;
67932             }
67933             container unicast {
67934               tailf:info "Use unicast communication channel";
67935               description
67936                 "Use unicast communication channel";
67937               tailf:cli-flatten-container;
67938               tailf:cli-compact-syntax;
67939               tailf:cli-sequence-commands;
67940               leaf interface {
67941                 type string {
67942                   tailf:info "Interface name";
67943                 }
67944               }
67945               leaf negotiation {
67946                 tailf:info "Enable unicast negotiation";
67947                 description
67948                   "Enable unicast negotiation";
67949                 type empty;
67950               }
67951             }
67952           }
67953           container clock {
67954             leaf source {
67955               type inet:ipv4-address {
67956                 tailf:info "A.B.C.D;;IP address of the clock source";
67957               }
67958             }
67959           }
67960         }
67961       }
67962     }
67963     container facility-alarm {
67964       tailf:info "Configure facility alarms";
67965       description
67966         "Configure facility alarms";
67967       tailf:cli-explicit-exit;
67968       tailf:cli-compact-syntax;
67969       tailf:cli-sequence-commands;
67970       leaf severity {
67971         tailf:cli-drop-node-name;
67972         tailf:cli-incomplete-command;
67973         type enumeration {
67974           enum "critical" {
67975             tailf:info "Behavior on critical threshold exceed";
67976           }
67977         }
67978       }
67979       leaf exceed-action {
67980         tailf:info "Behavior on critical threshold exceed";
67981         description
67982           "Behavior on critical threshold exceed";
67983         type enumeration {
67984           enum "shutdown" {
67985             tailf:info "Behavior on critical threshold exceed";
67986           }
67987         }
67988       }
67989     }
67990     container esmc {
67991       tailf:info "Ethernet Synchronization Messaging Channel";
67992       description
67993         "Ethernet Synchronization Messaging Channel";
67994       tailf:cli-explicit-exit;
67995       leaf process {
67996         tailf:info "process";
67997         description
67998           "process";
67999         type empty;
68000       }
68001     }
68002     container tod-clock {
68003       tailf:info "Tod clock config commands";
68004       description
68005         "Tod clock config commands";
68006       tailf:cli-explicit-exit;
68007       container input-source {
68008         tailf:info "Synchronization Input Source";
68009         description
68010           "Synchronization Input Source";
68011         tailf:cli-compact-syntax;
68012         tailf:cli-sequence-commands;
68013         leaf priority {
68014           tailf:cli-drop-node-name;
68015           type uint8 {
68016             tailf:info "<1-250>  Priority";
68017             range "1..250";
68018           }
68019         }
68020         container ptp {
68021           tailf:cli-flatten-container;
68022           leaf domain {
68023             type uint8 {
68024               tailf:info "PTP domain number";
68025             }
68026           }
68027         }
68028       }
68029     }
68030     container network-clock {
68031       tailf:info "Network clock config commands";
68032       description
68033         "Network clock config commands";
68034       tailf:cli-explicit-exit;
68035       container synchronization {
68036         tailf:info "Network clock synchronization selection process";
68037         description
68038           "Network clock synchronization selection process";
68039         leaf automatic {
68040           tailf:info "ITU-T G.781/Telcordia standard based";
68041           description
68042             "ITU-T G.781/Telcordia standard based";
68043           type empty;
68044         }
68045         leaf mode {
68046           tailf:info "synchronization networking mode";
68047           description
68048             "synchronization networking mode";
68049           type enumeration {
68050             enum "QL-enabled" {
68051               tailf:info "QL-enabled mode";
68052             }
68053           }
68054         }
68055       }
68056       container wait-to-restore {
68057         tailf:info "Wait-to-Restore timer";
68058         description
68059           "Wait-to-Restore timer";
68060         tailf:cli-compact-syntax;
68061         tailf:cli-sequence-commands;
68062         leaf time {
68063           tailf:info "Wait-to-Restore time";
68064           description
68065             "Wait-to-Restore time";
68066           tailf:cli-drop-node-name;
68067           type uint32 {
68068             tailf:info "<0-86400>  sec (default 300 seconds)";
68069             range "0..86400";
68070           }
68071         }
68072         leaf global {
68073           tailf:info "Global";
68074           description
68075             "Global";
68076           type empty;
68077         }
68078       }
68079       container input-source {
68080         tailf:info "Synchronization Input Source";
68081         description
68082           "Synchronization Input Source";
68083         tailf:cli-compact-syntax;
68084         tailf:cli-sequence-commands;
68085         leaf priority {
68086           tailf:cli-drop-node-name;
68087           type uint8 {
68088             tailf:info "<1-250>  Priority";
68089             range "1..250";
68090           }
68091         }
68092         container interface {
68093           tailf:cli-optional-in-sequence;
68094           tailf:cli-flatten-container;
68095           uses interface-grouping;
68096         }
68097         container ptp {
68098           tailf:cli-optional-in-sequence;
68099           tailf:cli-flatten-container;
68100           leaf domain {
68101             type uint8 {
68102               tailf:info "PTP domain number";
68103             }
68104           }
68105         }
68106       }
68107     }
68108     container l2vpn {
68109       tailf:info "Layer2 VPN commands";
68110       description
68111         "Layer2 VPN commands";
68112       container l2-Mode-config-l2vpn {
68113         tailf:cli-drop-node-name;
68114         container pseudowire {
68115           tailf:info "Global pseudowire parameters";
68116           description
68117             "Global pseudowire parameters";
68118           container static-oam {
68119             tailf:info "Static PW OAM configuration";
68120             description
68121               "Static PW OAM configuration";
68122             list class {
68123               tailf:info "Static PW OAM class configuration";
68124               description
68125                 "Static PW OAM class configuration";
68126               tailf:cli-mode-name "config-st-pw-oam-class";
68127               key "pw-nm";
68128               leaf pw-nm {
68129                 type string {
68130                   tailf:info "WORD;;Static PW OAM class name";
68131                 }
68132               }
68133               container timeout {
68134                 tailf:info "timeout configurations";
68135                 description
68136                   "timeout configurations";
68137                 container refresh {
68138                   tailf:info "refresh timeout configurations";
68139                   description
68140                     "refresh timeout configurations";
68141                   container send {
68142                     tailf:info "refresh send timeout configuration";
68143                     description
68144                       "refresh send timeout configuration";
68145                     leaf interval {
68146                       tailf:cli-drop-node-name;
68147                       type uint32 {
68148                         tailf:info "<1-4095>;;Seconds, default is 30";
68149                         range "1..4095";
68150                       }
68151                     }
68152                   }
68153                 }
68154               }
68155             }
68156           }
68157           container tlv {
68158             tailf:info "Global PW TLV configuration";
68159             description
68160               "Global PW TLV configuration";
68161             list template {
68162               tailf:info "PW TLV Template Keyword";
68163               description
68164                 "PW TLV Template Keyword";
68165               tailf:cli-mode-name "config-pw-tlv-template";
68166               key "tlv-nm";
68167               leaf tlv-nm {
68168                 type string {
68169                   tailf:info "WORD;;PW TLV template name";
68170                 }
68171               }
68172               container tlv {
68173                 tailf:info "TLV config command";
68174                 description
68175                   "TLV config command";
68176                 container tlv-type {
68177                   tailf:cli-drop-node-name;
68178                   leaf type {
68179                     tailf:cli-drop-node-name;
68180                     type uint8 {
68181                       tailf:info "<1-40>;;TLV type in hex format";
68182                       range "1..40";
68183                     }
68184                   }
68185                 }
68186                 container tlv-description {
68187                   tailf:cli-drop-node-name;
68188                   leaf description {
68189                     tailf:cli-drop-node-name;
68190                     type string {
68191                       tailf:info "WORD;;TLV description string";
68192                     }
68193                   }
68194                 }
68195               }
68196             }
68197           }
68198           container group {
68199             tailf:info "Configure pseudowire group parameters";
68200             description
68201               "Configure pseudowire group parameters";
68202             leaf status {
68203               tailf:info "Send pseudowire group status messages";
68204               description
68205                 "Send pseudowire group status messages";
68206               type empty;
68207             }
68208           }
68209           leaf routing {
68210             tailf:info "Configure l2vpn pseudowire routing";
68211             description
68212               "Configure l2vpn pseudowire routing";
68213             type empty;
68214           }
68215         }
68216         container vfi {
68217           tailf:info "Configure a Virtual Forwarding Instance (VFI)";
68218           description
68219             "Configure a Virtual Forwarding Instance (VFI)";
68220           list context {
68221             tailf:info "Layer2 VPN Context";
68222             description
68223               "Layer2 VPN Context";
68224             tailf:cli-mode-name "config-vfi";
68225             key "vfi-nm";
68226             leaf vfi-nm {
68227               tailf:info "Virtual Forwarding Instance (VFI) name";
68228               description
68229                 "Virtual Forwarding Instance (VFI) name";
68230               type string;
68231             }
68232             container autodiscovery {
68233               tailf:info "Auto Discovery mode";
68234               description
68235                 "Auto Discovery mode";
68236               container bgp {
68237                 tailf:info "Use BGP for neighbor discovery";
68238                 description
68239                   "Use BGP for neighbor discovery";
68240                 container signaling {
68241                   tailf:info "Signaling protocol to use";
68242                   description
68243                     "Signaling protocol to use";
68244                   container bgp {
68245                     tailf:info "Use BGP signaling and discovery";
68246                     description
68247                       "Use BGP signaling and discovery";
68248                     tailf:cli-add-mode;
68249                     tailf:cli-mode-name "config-vfi-autodiscovery";
68250                     presence "true";
68251                     leaf template {
68252                       tailf:info "Template to be used for autodiscovered pseudowires";
68253                       description
68254                         "Template to be used for autodiscovered pseudowires";
68255                       tailf:cli-hide-in-submode;
68256                       type string {
68257                         tailf:info "WORD;;template name (Max size 32)";
68258                       }
68259                     }
68260                   }
68261                   container ldp {
68262                     tailf:info "Use LDP signaling";
68263                     description
68264                       "Use LDP signaling";
68265                     tailf:cli-add-mode;
68266                     tailf:cli-mode-name "config-vfi-autodiscovery";
68267                     presence "true";
68268                     leaf template {
68269                       tailf:info "Template to be used for autodiscovered pseudowires";
68270                       description
68271                         "Template to be used for autodiscovered pseudowires";
68272                       tailf:cli-hide-in-submode;
68273                       type string {
68274                         tailf:info "WORD;;template name (Max size 32)";
68275                       }
68276                     }
68277                   }
68278                 }
68279               }
68280             }
68281             container vpn {
68282               tailf:info "VPN configuration";
68283               description
68284                 "VPN configuration";
68285               leaf id {
68286                 tailf:info "VPN id";
68287                 description
68288                   "VPN id value";
68289                 type uint32 {
68290                   range "1..4294967295";
68291                 }
68292               }
68293             }
68294           }
68295         }
68296         container xconnect {
68297           tailf:info "Configure a cross connect";
68298           description
68299             "Configure a cross connect";
68300           list context {
68301             tailf:info "Layer2 VPN Context";
68302             description
68303               "Layer2 VPN Context";
68304             tailf:cli-mode-name "config-xconnect";
68305             key "xc-name";
68306             leaf xc-name {
68307               tailf:info "Configure the cross connect name";
68308               description
68309                 "Configure the cross connect name";
68310               type string;
68311             }
68312             container xc-Mode-config-xconnect {
68313               tailf:cli-drop-node-name;
68314               leaf description {
68315                 tailf:info "Set xconnect description string";
68316                 description
68317                   "Description string";
68318                 tailf:cli-multi-value;
68319                 type string;
68320               }
68321               container interworking {
68322                 tailf:info "Interworking options for the cross connect";
68323                 description
68324                   "Interworking options for the cross connect";
68325                 leaf ethernet {
68326                   tailf:info "Ethernet interworking";
68327                   description
68328                     "Ethernet interworking";
68329                   type empty;
68330                 }
68331                 leaf ip {
68332                   tailf:info "IP interworking";
68333                   description
68334                     "IP interworking";
68335                   type empty;
68336                 }
68337                 leaf vlan {
68338                   tailf:info "VLAN interworking";
68339                   description
68340                     "VLAN interworking";
68341                   type empty;
68342                 }
68343               }
68344               container match {
68345                 tailf:info "Set Xconnect packet matching criteria";
68346                 description
68347                   "Set Xconnect packet matching criteria";
68348                 container protocol {
68349                   tailf:info "Protocol matching criterion";
68350                   description
68351                     "Protocol matching criterion";
68352                   leaf ipv6 {
68353                     tailf:info "IPV6";
68354                     description
68355                       "IPV6";
68356                     type empty;
68357                   }
68358                 }
68359               }
68360               container member {
68361                 tailf:info "Configure the cross connect member";
68362                 description
68363                   "Configure the cross connect member";
68364                 list mem-ipv4 {
68365                   tailf:cli-drop-node-name;
68366                   tailf:cli-suppress-mode;
68367                   key "mem-ipv4";
68368                   leaf mem-ipv4 {
68369                     tailf:info "IP address of the peer";
68370                     description
68371                       "IP address of the peer";
68372                     type inet:ipv4-address;
68373                   }
68374                   leaf mem-vcid {
68375                     tailf:info "Enter VC ID value";
68376                     description
68377                       "Enter VC ID value";
68378                     tailf:cli-drop-node-name;
68379                     type uint32 {
68380                       range "1..4294967295";
68381                     }
68382                   }
68383                 }
68384                 list mbr-interface {
68385                   tailf:cli-drop-node-name;
68386                   tailf:cli-suppress-mode;
68387                   key "mbr-interface";
68388                   leaf mbr-interface {
68389                     tailf:info "GigabitEthernet IEEE 802.3z";
68390                     description
68391                       "GigabitEthernet IEEE 802.3z";
68392                     type string;
68393                   }
68394                   leaf group {
68395                     tailf:info "Configure the cross connect member redundancy group";
68396                     description
68397                       "Configure the cross connect member redundancy group";
68398                     type empty;
68399                   }
68400                   leaf service-instance {
68401                     tailf:info "Ethernet Service Instance";
68402                     description
68403                       "Ethernet Service Instance";
68404                     type empty;
68405                   }
68406                 }
68407                 leaf Vlan {
68408                   tailf:info "Catalyst Vlans";
68409                   description
68410                     "Vlan interface number";
68411                   type uint16 {
68412                     range "1..4094";
68413                   }
68414                 }
68415               }
68416               container redundancy {
68417                 tailf:info "Xconnect redundancy information";
68418                 description
68419                   "Xconnect redundancy information";
68420                 leaf delay {
68421                   tailf:info "Xconnect redundancy delay parameters";
68422                   description
68423                     "Enable delay";
68424                   type uint8 {
68425                     range "0..180";
68426                   }
68427                 }
68428                 container predictive {
68429                   tailf:info "Switch over to backup member without waiting for UP status";
68430                   description
68431                     "Switch over to backup member without waiting for UP status";
68432                   leaf disabled {
68433                     tailf:info "Disable predictive switchover capability for this xconnect";
68434                     description
68435                       "Disable predictive switchover capability for this xconnect";
68436                     type empty;
68437                   }
68438                   leaf enabled {
68439                     tailf:info "Enable predictive switchover capability for this xconnect";
68440                     description
68441                       "Enable predictive switchover capability for this xconnect";
68442                     type empty;
68443                   }
68444                 }
68445               }
68446               container remote {
68447                 tailf:info "L2VPN remote peer configuration commands";
68448                 description
68449                   "L2VPN remote peer configuration commands";
68450                 container circuit {
68451                   tailf:info "Remote peer circuit configuration";
68452                   description
68453                     "Remote peer circuit configuration";
68454                   leaf id {
68455                     tailf:info "Remote peer circuit ID";
68456                     description
68457                       "Remote peer circuit ID";
68458                     type empty;
68459                   }
68460                 }
68461                 container link {
68462                   tailf:info "Link information";
68463                   description
68464                     "Link information";
68465                   leaf failure {
68466                     tailf:info "Failure information";
68467                     description
68468                       "Failure information";
68469                     type empty;
68470                   }
68471                 }
68472               }
68473               leaf shutdown {
68474                 tailf:info "Shutdown Xconnect";
68475                 description
68476                   "Shutdown Xconnect";
68477                 type empty;
68478               }
68479             }
68480           }
68481         }
68482       }
68483       container config-l2vpn {
68484         tailf:cli-drop-node-name;
68485         tailf:cli-add-mode;
68486         tailf:cli-mode-name "config-l2vpn";
68487         presence "true";
68488         container logging {
68489           tailf:info "Configure logging flags";
68490           description
68491             "Configure logging flags";
68492           container pseudowire {
68493             tailf:info "pseudowire status transition logging";
68494             description
68495               "pseudowire status transition logging";
68496             leaf status {
68497               tailf:info "pseudowire status up/down logging";
68498               description
68499                 "pseudowire status up/down logging";
68500               type empty;
68501             }
68502           }
68503           leaf redundancy {
68504             tailf:info "xconnect redundancy events";
68505             description
68506               "xconnect redundancy events";
68507             type empty;
68508           }
68509         }
68510         container redundancy {
68511           tailf:info "Configure L2VPN redundancy parameters";
68512           description
68513             "Configure L2VPN redundancy parameters";
68514           container predictive {
68515             tailf:info "Switch over to backup member without waiting for UP status";
68516             description
68517               "Switch over to backup member without waiting for UP status";
68518             leaf enabled {
68519               tailf:info "Enable predictive switchover capability for all xconnects";
68520               description
68521                 "Enable predictive switchover capability for all xconnects";
68522               type empty;
68523             }
68524           }
68525         }
68526         leaf router-id {
68527           tailf:info "Configure a Layer2 router-id";
68528           description
68529             "Layer2 router-id value";
68530           type inet:ipv4-address;
68531         }
68532         leaf shutdown {
68533           tailf:info "Shutdown Layer2 VPN";
68534           description
68535             "Shutdown Layer2 VPN";
68536           type empty;
68537         }
68538       }
68539     }
68540     container l3vpn {
68541       tailf:info "l3vpn encapsulation ip commands";
68542       description
68543         "l3vpn encapsulation ip commands";
68544       container encapsulation {
68545         tailf:info "l3vpn encapsulation ip";
68546         description
68547           "l3vpn encapsulation ip";
68548         list ip {
68549           tailf:info "l3vpn encapsulation ip";
68550           description
68551             "l3vpn encapsulation ip";
68552           tailf:cli-mode-name "config-l3vpn-encap-ip";
68553           key "profile-name";
68554           leaf profile-name {
68555             type string {
68556               tailf:info "WORD;;profile name";
68557             }
68558           }
68559           container transport {
68560             tailf:info "transport mode";
68561             description
68562               "transport mode";
68563             container ipv4 {
68564               tailf:info "transport ipv4 mode";
68565               description
68566                 "transport ipv4 mode";
68567               presence "true";
68568               leaf source {
68569                 tailf:info "transport source";
68570                 description
68571                   "transport source";
68572                 type string {
68573                   tailf:info "WORD::Interface name";
68574                 }
68575               }
68576             }
68577           }
68578           container protocol {
68579             tailf:info "protocol mode";
68580             description
68581               "protocol mode";
68582             container gre {
68583               tailf:info "protocol gre";
68584               description
68585                 "protocol gre";
68586               presence "true";
68587               leaf key {
68588                 tailf:info "gre key";
68589                 description
68590                   "gre key";
68591                 type uint32 {
68592                   tailf:info "<0-4294967295>;;key value";
68593                   range "0..4294967295";
68594                 }
68595               }
68596             }
68597           }
68598           container mpls {
68599             tailf:info "Configure MPLS interface parameters";
68600             description
68601               "Configure MPLS interface parameters";
68602             leaf mtu {
68603               tailf:info "Set MPLS Maximum Transmission Unit";
68604               description
68605                 "Set MPLS Maximum Transmission Unit";
68606               type union {
68607                 type uint32 {
68608                   tailf:info "<64-17916>;;MTU (bytes)";
68609                   range "64..17916";
68610                 }
68611                 type enumeration {
68612                   enum "max" {
68613                     tailf:info "set mpls mtu to maximum mtu";
68614                   }
68615                 }
68616               }
68617             }
68618           }
68619         }
68620       }
68621     }
68622     container mpls {
68623       tailf:info "Configure MPLS parameters";
68624       description
68625         "Configure MPLS parameters";
68626       container atm {
68627         tailf:info "Configure ATM options";
68628         description
68629           "Configure ATM options";
68630         leaf disable-headend-vc {
68631           tailf:info "Dedicated lsc capability: In this mode headend Tag VCs are disabled.";
68632           description
68633             "Dedicated lsc capability: In this mode headend Tag VCs are disabled.";
68634           type empty;
68635         }
68636       }
68637       leaf cos-map {
68638         tailf:info "Configure MPLS CoS ATM Multi-VC CoS Map";
68639         description
68640           "Configure MPLS CoS ATM Multi-VC CoS Map";
68641         tailf:cli-full-command;
68642         type uint8 {
68643           range "1..255" {
68644             tailf:info "<1-255>;;cos-map number";
68645           }
68646         }
68647       }
68648       container ip {
68649         tailf:info "Dynamic MPLS forwarding for IP";
68650         description
68651           "Dynamic MPLS forwarding for IP";
68652         leaf default-route {
68653           tailf:info "Allow MPLS forwarding for ip default route";
68654           description
68655             "Allow MPLS forwarding for ip default route";
68656           tailf:cli-full-command;
68657           type empty;
68658         }
68659         container conf {
68660           tailf:cli-no-keyword;
68661           tailf:cli-drop-node-name;
68662           leaf propagate-ttl {
68663             tailf:cli-boolean-no;
68664             type boolean;
68665             default "true";
68666           }
68667         }
68668         container conf-arg {
68669           tailf:cli-drop-node-name;
68670           container propagate-ttl {
68671             tailf:cli-incomplete-command;
68672             tailf:cli-incomplete-no;
68673             leaf forwarded {
68674               tailf:cli-boolean-no;
68675               tailf:cli-show-with-default;
68676               type boolean;
68677             }
68678           }
68679         }
68680         container ttl-expiration {
68681           tailf:info "Control MPLS TTL expiration behavior";
68682           description
68683             "Control MPLS TTL expiration behavior";
68684           leaf pop {
68685             tailf:info "Popping labels on TTL expiration";
68686             description
68687               "Popping labels on TTL expiration";
68688             type uint8 {
68689               range "1..6";
68690               tailf:info "<1-6>;;Popping all labels if original packet has less than N labels";
68691             }
68692           }
68693         }
68694       }
68695       container label {
68696         tailf:info "Label properties";
68697         description
68698           "Label properties";
68699         container atm {
68700           tailf:info "Configure ATM options";
68701           description
68702             "Configure ATM options";
68703           leaf disable-headend-vc {
68704             tailf:info "Dedicated lsc capability: In this mode headend Tag VCs are disabled.";
68705             description
68706               "Dedicated lsc capability: In this mode headend Tag VCs are disabled.";
68707             type empty;
68708           }
68709         }
68710         leaf protocol {
68711           tailf:info "Set platform default label distribution protocol";
68712           description
68713             "Set platform default label distribution protocol";
68714           tailf:cli-full-command;
68715           type enumeration {
68716             enum "ldp" {
68717               tailf:code-name "label_ldp";
68718               tailf:info "Use LDP (default)";
68719             }
68720             enum "tdp:" {
68721               tailf:code-name "label_tdp";
68722               tailf:info "Use TDP";
68723             }
68724           }
68725         }
68726         container range {
68727           tailf:info "Label range";
68728           description
68729             "Label range";
68730           tailf:cli-sequence-commands;
68731           tailf:cli-compact-syntax;
68732           leaf min {
68733             tailf:cli-drop-node-name;
68734             tailf:cli-incomplete-command;
68735             type uint32 {
68736               range "16..1048575";
68737               tailf:info "<16-1048575>  Minimum label value";
68738             }
68739           }
68740           leaf max {
68741             tailf:cli-drop-node-name;
68742             must ". > ../min" {
68743               tailf:dependency "../min";
68744               error-message "Max label value must be > min label value";
68745             }
68746             type uint32 {
68747               range "16..1048575";
68748               tailf:info "<16-1048575>  Maximum label value";
68749             }
68750           }
68751           container static {
68752             tailf:info "Specify block of labels for static bindings";
68753             description
68754               "Specify block of labels for static bindings";
68755             tailf:cli-compact-syntax;
68756             tailf:cli-sequence-commands;
68757             tailf:cli-flatten-container;
68758             leaf min {
68759               tailf:cli-drop-node-name;
68760               tailf:cli-incomplete-command;
68761               type uint32 {
68762                 range "16..1048575";
68763                 tailf:info "<16-1048575>;;Upper minimum static label value";
68764               }
68765             }
68766             leaf max {
68767               tailf:cli-drop-node-name;
68768               must ". > ../min" {
68769                 tailf:dependency "../min";
68770                 error-message "Max label value must be > min label value";
68771               }
68772               type uint32 {
68773                 range "16..1048575";
68774                 tailf:info "<16-1048575>;;Maximum static label value";
68775               }
68776             }
68777           }
68778         }
68779       }
68780       container ldp {
68781         tailf:info "Label Distribution Protocol";
68782         description
68783           "Label Distribution Protocol";
68784         container enable {
68785           tailf:cli-drop-node-name;
68786           leaf advertise-labels {
68787             tailf:cli-boolean-no;
68788             tailf:cli-trim-default;
68789             tailf:cli-show-no;
68790             type boolean;
68791             default "true";
68792           }
68793         }
68794         container enable2 {
68795           tailf:cli-drop-node-name;
68796           container advertise-labels {
68797             tailf:cli-incomplete-command;
68798             tailf:cli-incomplete-no;
68799             tailf:info "Label advertisements";
68800             description
68801               "Label advertisements";
68802             container for {
68803               tailf:info "Access-list specifying controls on destination prefixes";
68804               description
68805                 "Access-list specifying controls on destination prefixes";
68806               tailf:cli-sequence-commands;
68807               tailf:cli-compact-syntax;
68808               leaf from {
68809                 tailf:cli-drop-node-name;
68810                 type string {
68811                   tailf:info "WORD;;IP access-list for destination prefixes; name or number (1-99)";
68812                 }
68813               }
68814               leaf to {
68815                 tailf:info "Access-list specifying controls on LDP peers";
68816                 description
68817                   "Access-list specifying controls on LDP peers";
68818                 type string {
68819                   tailf:info "WORD;;IP access-list for LDP peers; name or number (1-99)";
68820                 }
68821               }
68822             }
68823             list interface {
68824               tailf:info "Advertise /32 interface address";
68825               description
68826                 "Advertise /32 interface address";
68827               tailf:cli-suppress-mode;
68828               key "name";
68829               leaf name {
68830                 type string;
68831               }
68832             }
68833             leaf oldstyle {
68834               tailf:info "Use old style (TDP) method for matching prefix acl";
68835               description
68836                 "Use old style (TDP) method for matching prefix acl";
68837               tailf:cli-full-command;
68838               type empty;
68839             }
68840           }
68841         }
68842         container atm {
68843           tailf:info "Configure ATM MPLS options";
68844           description
68845             "Configure ATM MPLS options";
68846           leaf control-mode {
68847             tailf:info "Select LSP setup control mode for MPLS VCs";
68848             description
68849               "Select LSP setup control mode for MPLS VCs";
68850             tailf:cli-full-command;
68851             type enumeration {
68852               enum "independent" {
68853                 tailf:info "Independent Downstream on Demand Label VC setup";
68854               }
68855               enum "ordered" {
68856                 tailf:info "Ordered Dowstream on Demand Label VC setup";
68857               }
68858             }
68859             default "ordered";
68860             tailf:cli-trim-default;
68861           }
68862           leaf vc-merge {
68863             tailf:info "Select VC merge capability";
68864             description
68865               "Select VC merge capability";
68866             tailf:cli-full-command;
68867             tailf:cli-boolean-no;
68868             tailf:cli-trim-default;
68869             type boolean;
68870             default "true";
68871           }
68872         }
68873         container backoff {
68874           tailf:info "Set LDP session backoff parameters";
68875           description
68876             "Set LDP session backoff parameters";
68877           tailf:cli-sequence-commands;
68878           tailf:cli-compact-syntax;
68879           leaf initial {
68880             tailf:cli-drop-node-name;
68881             tailf:cli-incomplete-command;
68882             type uint32 {
68883               tailf:info "<5-2147483>;;Initial session backoff time (seconds)";
68884               range "5..2147483";
68885             }
68886           }
68887           leaf max {
68888             tailf:cli-drop-node-name;
68889             type uint32 {
68890               tailf:info "<5-2147483>;;Maximum session backoff time (seconds)";
68891               range "5..2147483";
68892             }
68893           }
68894         }
68895         container discovery {
68896           tailf:info "LDP discovery";
68897           description
68898             "LDP discovery";
68899           container hello {
68900             tailf:info "LDP discovery Hello";
68901             description
68902               "LDP discovery Hello";
68903             leaf holdtime {
68904               tailf:info "LDP discovery Hello holdtime";
68905               description
68906                 "LDP discovery Hello holdtime";
68907               type uint16 {
68908                 tailf:info "<1-65535>;;Holdtime in seconds";
68909                 range "1..65535";
68910               }
68911             }
68912             leaf interval {
68913               tailf:info "LDP discovery Hello interval";
68914               description
68915                 "LDP discovery Hello interval";
68916               tailf:cli-full-command;
68917               type uint16 {
68918                 tailf:info "<1-65535>;;Hello interval in seconds";
68919                 range "1..65535";
68920               }
68921             }
68922           }
68923           container targeted-hello {
68924             tailf:info "LDP discovery Targeted Hello";
68925             description
68926               "LDP discovery Targeted Hello";
68927             container accept {
68928               tailf:info "Accept targeted hellos";
68929               description
68930                 "Accept targeted hellos";
68931               presence "Accept targeted hellos";
68932               leaf from {
68933                 tailf:info "Access list to specify acceptable targeted hello sources";
68934                 description
68935                   "Access list to specify acceptable targeted hello sources";
68936                 type string {
68937                   tailf:info "WORD;;IP access-list for acceptable targeted hello sources";
68938                 }
68939               }
68940             }
68941             leaf holdtime {
68942               tailf:info "LDP discovery Hello holdtime";
68943               description
68944                 "LDP discovery Hello holdtime";
68945               type uint16 {
68946                 tailf:info "<1-65535>;;Holdtime in seconds";
68947                 range "1..65535";
68948               }
68949             }
68950             leaf interval {
68951               tailf:info "LDP discovery Hello interval";
68952               description
68953                 "LDP discovery Hello interval";
68954               tailf:cli-full-command;
68955               type uint16 {
68956                 tailf:info "<1-65535>;;Hello interval in seconds";
68957                 range "1..65535";
68958               }
68959             }
68960           }
68961         }
68962         container explicit-null {
68963           tailf:info "Advertise Explicit Null label in place of Implicit Null";
68964           description
68965             "Advertise Explicit Null label in place of Implicit Null";
68966           presence "Advertise Explicit Null label in place of Implicit Null";
68967           leaf for {
68968             tailf:info "Access-list specifying controls on destination prefixes";
68969             description
68970               "Access-list specifying controls on destination prefixes";
68971             type string {
68972               tailf:info "WORD;;IP access-list for destination prefixes; name or number (1-99)";
68973             }
68974           }
68975           leaf to {
68976             tailf:info "Access-list specifying controls on LDP peers";
68977             description
68978               "Access-list specifying controls on LDP peers";
68979             type string {
68980               tailf:info "WORD;;IP access-list for LDP peers; name or number (1-99)";
68981             }
68982           }
68983         }
68984         container graceful-restart {
68985           tailf:info "Configure Graceful Restart timers";
68986           description
68987             "Configure Graceful Restart timers";
68988           presence "Configure Graceful Restart timers";
68989           container timers {
68990             tailf:info "Configure Graceful Restart timers";
68991             description
68992               "Configure Graceful Restart timers";
68993             leaf forwarding-holding {
68994               tailf:info "Forwarding State Holding time";
68995               description
68996                 "Forwarding State Holding time";
68997               tailf:cli-full-command;
68998               type uint16 {
68999                 tailf:info "<30-600>;;seconds";
69000                 range "30..600";
69001               }
69002             }
69003             leaf max-recovery {
69004               tailf:info "Max-Recovery time";
69005               description
69006                 "Max-Recovery time";
69007               tailf:cli-full-command;
69008               type uint16 {
69009                 tailf:info "<15-600>;;seconds";
69010                 range "15..600";
69011               }
69012             }
69013             leaf neighbor-liveness {
69014               tailf:info "Neighbor-Liveness time";
69015               description
69016                 "Neighbor-Liveness time";
69017               tailf:cli-full-command;
69018               type uint16 {
69019                 range "5..600";
69020                 tailf:info "<5-300>;;seconds";
69021               }
69022             }
69023           }
69024         }
69025         leaf holdtime {
69026           tailf:info "LDP session holdtime";
69027           description
69028             "LDP session holdtime";
69029           tailf:cli-full-command;
69030           type uint32 {
69031             tailf:info "<15-2147483>;;Holdtime in seconds";
69032             range "15..2147483";
69033           }
69034         }
69035         container logging {
69036           tailf:info "Enable LDP logging";
69037           description
69038             "Enable LDP logging";
69039           leaf neighbor-changes {
69040             tailf:info "Log LDP neighbor state changes";
69041             description
69042               "Log LDP neighbor state changes";
69043             type empty;
69044           }
69045         }
69046         leaf loop-detection {
69047           tailf:info "Enable LDP Loop Detection";
69048           description
69049             "Enable LDP Loop Detection";
69050           tailf:cli-full-command;
69051           type empty;
69052         }
69053         leaf maxhops {
69054           tailf:info "Limit hop count for LDP LSP setup";
69055           description
69056             "Limit hop count for LDP LSP setup";
69057           tailf:cli-full-command;
69058           type uint8 {
69059             range "0..255";
69060             tailf:info "<1-255>;;Maximum hop count value";
69061           }
69062         }
69063         list neighbor {
69064           tailf:info "Configure neighbor parameters";
69065           description
69066             "Configure neighbor parameters";
69067           tailf:cli-suppress-mode;
69068           tailf:cli-delete-when-empty;
69069           key "address";
69070           leaf address {
69071             type inet:ipv4-address {
69072               tailf:info "A.B.C.D;;IP address for LDP neighbor";
69073             }
69074           }
69075           leaf implicit-withdraw {
69076             tailf:info "Enable LDP Implicit Withdraw Label";
69077             description
69078               "Enable LDP Implicit Withdraw Label";
69079             tailf:cli-full-command;
69080             type empty;
69081           }
69082           container labels {
69083             tailf:info "Configure label binding exchange controls";
69084             description
69085               "Configure label binding exchange controls";
69086             leaf accept {
69087               tailf:info "Specify label bindings to accept";
69088               description
69089                 "Specify label bindings to accept";
69090               type string {
69091                 tailf:info "WORD;;IP access-list for LDP peers; name or number (1-99)";
69092               }
69093             }
69094           }
69095           container password {
69096             tailf:info "Set a password";
69097             description
69098               "Set a password";
69099             tailf:cli-compact-syntax;
69100             leaf enctype {
69101               tailf:cli-drop-node-name;
69102               tailf:cli-incomplete-command;
69103               tailf:cli-reset-container;
69104               type uint8 {
69105                 range "0..7";
69106                 tailf:info "<0-7>;;Encryption type (0 to disable encryption, 7 for proprietary)";
69107               }
69108               default "0";
69109             }
69110             leaf text {
69111               tailf:cli-drop-node-name;
69112               tailf:cli-full-command;
69113               tailf:cli-multi-value;
69114               tailf:cli-reset-container;
69115               type string {
69116                 pattern "[a-zA-Z].*";
69117                 tailf:info "LINE;;The password";
69118               }
69119             }
69120           }
69121           container targeted {
69122             tailf:info "Establish targeted session";
69123             description
69124               "Establish targeted session";
69125             presence "Establish targeted session";
69126             leaf protocol {
69127               tailf:cli-drop-node-name;
69128               type enumeration {
69129                 enum "ldp" {
69130                   tailf:code-name "target_ldp";
69131                   tailf:info "User LDP";
69132                 }
69133                 enum "tdp" {
69134                   tailf:code-name "target_tdp";
69135                   tailf:info "Use TDP";
69136                 }
69137               }
69138             }
69139           }
69140         }
69141         container request-labels {
69142           tailf:info "Access list to specify valid downstream on demand destinations.";
69143           description
69144             "Access list to specify valid downstream on demand destinations.";
69145           leaf for {
69146             tailf:info "Access list to specify acceptable downstream on demand destinations";
69147             description
69148               "Access list to specify acceptable downstream on demand destinations";
69149             type string {
69150               tailf:info "WORD;;IP access-list for destination prefixes; name or number (1-99)";
69151             }
69152           }
69153         }
69154         container router-id {
69155           tailf:info "Select interface to prefer for LDP identifier address";
69156           description
69157             "Select interface to prefer for LDP identifier address";
69158           tailf:cli-sequence-commands {
69159             tailf:cli-reset-siblings;
69160           }
69161           tailf:cli-compact-syntax;
69162           leaf interface {
69163             tailf:cli-drop-node-name;
69164             type string {
69165               tailf:info "WORD;;intrace name";
69166             }
69167           }
69168           leaf force {
69169             tailf:info "Forcibly change the LDP router id";
69170             description
69171               "Forcibly change the LDP router id";
69172             type empty;
69173           }
69174         }
69175         container tcp {
69176           tailf:info "Set TCP parameters for LDP";
69177           description
69178             "Set TCP parameters for LDP";
69179           leaf pak-priority {
69180             tailf:info "Set (local) priority for LDP session TCP connection";
69181             description
69182               "Set (local) priority for LDP session TCP connection";
69183             type empty;
69184           }
69185         }
69186       }
69187       container prefix-map {
69188         tailf:info "Configure MPLS CoS Tag-VC Multi-VC Prefix Map";
69189         description
69190           "Configure MPLS CoS Tag-VC Multi-VC Prefix Map";
69191         tailf:cli-sequence-commands;
69192         tailf:cli-compact-syntax;
69193         leaf nr {
69194           tailf:cli-drop-node-name;
69195           tailf:cli-incomplete-command;
69196           type uint8 {
69197             range "1..255";
69198             tailf:info "<1-255>;;prefix-map number";
69199           }
69200         }
69201         leaf access-list {
69202           tailf:info "Configure access-list for this prefix-map";
69203           description
69204             "Configure access-list for this prefix-map";
69205           tailf:cli-incomplete-command;
69206           type uint8 {
69207             range "1..255";
69208             tailf:info "<1-255>;;access-list number";
69209           }
69210         }
69211         leaf cos-map {
69212           tailf:info "Configure cos-map for this prefix-map";
69213           description
69214             "Configure cos-map for this prefix-map";
69215           type uint8 {
69216             range "1..255";
69217             tailf:info "<1-255>;;cos-map number";
69218           }
69219         }
69220       }
69221       container static {
69222         tailf:info "MPLS static application";
69223         description
69224           "MPLS static application";
69225         presence "true";
69226         container binding {
69227           tailf:info "Establish static label bindings";
69228           description
69229             "Establish static label bindings";
69230           tailf:cli-sequence-commands {
69231             tailf:cli-reset-all-siblings;
69232           }
69233           tailf:cli-compact-syntax;
69234           container ipv4 {
69235             tailf:info "Bind IPv4 destination with label";
69236             description
69237               "Bind IPv4 destination with label";
69238             tailf:cli-flatten-container;
69239             tailf:cli-incomplete-command;
69240             tailf:cli-compact-syntax;
69241             list global {
69242               tailf:cli-drop-node-name;
69243               tailf:cli-incomplete-command;
69244               tailf:cli-suppress-mode;
69245               key "address mask";
69246               leaf address {
69247                 tailf:cli-incomplete-command;
69248                 type inet:ipv4-address {
69249                   tailf:info "A.B.C.D  Destination prefix";
69250                 }
69251               }
69252               leaf mask {
69253                 tailf:cli-incomplete-command;
69254                 type inet:ipv4-address {
69255                   tailf:info "A.B.C.D  Destination prefix mask";
69256                 }
69257               }
69258               uses mpls-static-binding-ipv4-grouping;
69259             }
69260             list vrf {
69261               tailf:cli-suppress-mode;
69262               tailf:cli-incomplete-command;
69263               tailf:cli-diff-dependency "/ios:native/ip/vrf";
69264               tailf:cli-diff-dependency "/ios:native/vrf/definition";
69265               key "name address mask";
69266               leaf name {
69267                 type string {
69268                   tailf:info "WORD;;VPN Routing/Forwarding instance name";
69269                 }
69270               }
69271               leaf address {
69272                 tailf:cli-drop-node-name;
69273                 tailf:cli-incomplete-command;
69274                 type inet:ipv4-address {
69275                   tailf:info "A.B.C.D  Destination prefix";
69276                 }
69277               }
69278               leaf mask {
69279                 tailf:cli-drop-node-name;
69280                 tailf:cli-incomplete-command;
69281                 type inet:ipv4-address {
69282                   tailf:info "A.B.C.D  Destination prefix mask";
69283                 }
69284               }
69285               uses mpls-static-binding-ipv4-grouping;
69286             }
69287           }
69288         }
69289       }
69290       container traffic-eng {
69291         tailf:info "Configure Traffic Engineering parameters";
69292         description
69293           "Configure Traffic Engineering parameters";
69294         container auto-bw {
69295           tailf:info "auto-bw parameters";
69296           description
69297             "auto-bw parameters";
69298           container timers {
69299             tailf:info "Enable auto-bw Timers Collection and Application";
69300             description
69301               "Enable auto-bw Timers Collection and Application";
69302             presence "Enable auto-bw Timers Collection and Application";
69303             leaf frequency {
69304               tailf:info "Interval between auto-bw data collection";
69305               description
69306                 "Interval between auto-bw data collection";
69307               type uint32 {
69308                 tailf:info "<1-604800>;;seconds between auto-bw";
69309                 range "1..604800";
69310               }
69311             }
69312           }
69313         }
69314         container auto-tunnel {
69315           tailf:info "Configure automatic TE tunnels";
69316           description
69317             "Configure automatic TE tunnels";
69318           container backup {
69319             tailf:info "Configure auto-tunnel backup tunnel";
69320             description
69321               "Configure auto-tunnel backup tunnel";
69322             presence "true";
69323             container config {
69324               tailf:info "Config commands to apply to all backup auto-tunnels";
69325               description
69326                 "Config commands to apply to all backup auto-tunnels";
69327               container affinity {
69328                 tailf:info "desired link attributes for links comprising tunnel";
69329                 description
69330                   "desired link attributes for links comprising tunnel";
69331                 list aff-val {
69332                   tailf:cli-drop-node-name;
69333                   tailf:cli-suppress-mode;
69334                   key "aff-val";
69335                   leaf aff-val {
69336                     tailf:info "<0x0-0xFFFFFFFF>;;affinity value";
69337                     description
69338                       "<0x0-0xFFFFFFFF>;;affinity value";
69339                     type string;
69340                   }
69341                   leaf mask {
69342                     tailf:info "mask on desired link attributes";
69343                     description
69344                       "mask on desired link attributes";
69345                     type string {
69346                       tailf:info "<0x0-0xFFFFFFFF>;;mask value";
69347                     }
69348                   }
69349                 }
69350               }
69351               container unnumbered-interface {
69352                 tailf:info "Configure the interface to use for unnumbered";
69353                 description
69354                   "Configure the interface to use for unnumbered";
69355                 leaf unn-interface {
69356                   tailf:info "Virtual ACR interface";
69357                   description
69358                     "Virtual ACR interface";
69359                   tailf:cli-drop-node-name;
69360                   type string;
69361                 }
69362                 leaf unn-controller {
69363                   tailf:info "Telecom-Bus Clock Controller";
69364                   description
69365                     "Telecom-Bus Clock Controller";
69366                   tailf:cli-drop-node-name;
69367                   type string;
69368                 }
69369                 leaf Tunnel {
69370                   tailf:info "Tunnel interface";
69371                   description
69372                     "Tunnel interface number";
69373                   type uint32 {
69374                     range "0..2147483647";
69375                   }
69376                 }
69377                 leaf Tunnel-tp {
69378                   tailf:info "MPLS Transport Profile interface";
69379                   description
69380                     "Tunnel-tp interface number";
69381                   type uint16 {
69382                     range "0..65535";
69383                   }
69384                 }
69385                 leaf VPN {
69386                   tailf:info "VPN interface";
69387                   description
69388                     "VPN interface number";
69389                   type uint32 {
69390                     range "0..2147483647";
69391                   }
69392                 }
69393                 leaf VirtualPortGroup {
69394                   tailf:info "Virtual Port Group";
69395                   description
69396                     "VirtualPortGroup interface number";
69397                   type uint8 {
69398                     range "0..31";
69399                   }
69400                 }
69401                 leaf Vlan {
69402                   tailf:info "Catalyst Vlans";
69403                   description
69404                     "Vlan interface number";
69405                   type uint16 {
69406                     range "1..4094";
69407                   }
69408                 }
69409                 leaf vasileft {
69410                   tailf:info "VasiLeft interface";
69411                   description
69412                     "vasileft interface number";
69413                   type uint16 {
69414                     range "1..2000";
69415                   }
69416                 }
69417                 leaf vasiright {
69418                   tailf:info "VasiRight interface";
69419                   description
69420                     "vasiright interface number";
69421                   type uint16 {
69422                     range "1..2000";
69423                   }
69424                 }
69425               }
69426             }
69427             leaf nhop-only {
69428               tailf:info "Automatically create n-hop backup tunnels only";
69429               description
69430                 "Automatically create n-hop backup tunnels only";
69431               type empty;
69432             }
69433             container srlg {
69434               tailf:info "Shared Risk Link Groups influence backup tunnel path selection";
69435               description
69436                 "Shared Risk Link Groups influence backup tunnel path selection";
69437               container exclude {
69438                 tailf:info "Backup tunnels avoid SRLGs of protected interfaces";
69439                 description
69440                   "Backup tunnels avoid SRLGs of protected interfaces";
69441                 leaf force {
69442                   tailf:info "Backup tunnels MUST not use SRLGs of protected interfaces";
69443                   description
69444                     "Backup tunnels MUST not use SRLGs of protected interfaces";
69445                   type empty;
69446                 }
69447                 leaf preferred {
69448                   tailf:info "Backup tunnels try to avoid using SRLGs of protected interfaces";
69449                   description
69450                     "Backup tunnels try to avoid using SRLGs of protected interfaces";
69451                   type empty;
69452                 }
69453               }
69454             }
69455             container timers {
69456               tailf:info "Configure timers for backup auto-tunnels";
69457               description
69458                 "Configure timers for backup auto-tunnels";
69459               container removal {
69460                 tailf:info "Configure timer for removal of backup tunnel";
69461                 description
69462                   "Configure timer for removal of backup tunnel";
69463                 leaf unused {
69464                   tailf:info "Configure period to check for removing not in use tunnels";
69465                   description
69466                     "seconds between scanning to remove not in use tunnels";
69467                   type uint32 {
69468                     range "0..604800";
69469                   }
69470                 }
69471               }
69472             }
69473             container tunnel-num {
69474               tailf:info "Configure tunnel I/F numbers for backup auto-tunnels";
69475               description
69476                 "Configure tunnel I/F numbers for backup auto-tunnels";
69477               container min {
69478                 tailf:info "Configure the starting id-range";
69479                 description
69480                   "Configure the starting id-range";
69481                 list tnr-range {
69482                   tailf:cli-drop-node-name;
69483                   tailf:cli-suppress-mode;
69484                   key "tnr-range";
69485                   leaf tnr-range {
69486                     tailf:info "starting tunnel number range";
69487                     description
69488                       "starting tunnel number range";
69489                     type uint16 {
69490                       range "0..65535";
69491                     }
69492                   }
69493                   leaf max {
69494                     tailf:info "Configure the ending id-range";
69495                     description
69496                       "Configure the ending id-range";
69497                     type empty;
69498                   }
69499                 }
69500               }
69501             }
69502           }
69503           container mesh {
69504             tailf:info "Automatically create mesh tunnels";
69505             description
69506               "Automatically create mesh tunnels";
69507             presence "true";
69508             container tunnel-num {
69509               tailf:info "Configure tunnel I/F numbers for mesh auto-tunnels";
69510               description
69511                 "Configure tunnel I/F numbers for mesh auto-tunnels";
69512               container min {
69513                 tailf:info "Configure the starting id-range";
69514                 description
69515                   "Configure the starting id-range";
69516                 list mesh-range {
69517                   tailf:cli-drop-node-name;
69518                   tailf:cli-suppress-mode;
69519                   key "mesh-range";
69520                   leaf mesh-range {
69521                     tailf:info "starting tunnel number range";
69522                     description
69523                       "starting tunnel number range";
69524                     type uint16 {
69525                       range "0..65535";
69526                     }
69527                   }
69528                   leaf max {
69529                     tailf:info "Configure the ending id-range";
69530                     description
69531                       "Configure the ending id-range";
69532                     type empty;
69533                   }
69534                 }
69535               }
69536             }
69537           }
69538           container primary {
69539             tailf:info "Automatically create one-hop primary tunnels";
69540             description
69541               "Automatically create one-hop primary tunnels";
69542             container config {
69543               tailf:info "Config commands to apply to all primary auto-tunnels";
69544               description
69545                 "Config commands to apply to all primary auto-tunnels";
69546               container mpls {
69547                 tailf:info "Configure dynamic MPLS forwarding";
69548                 description
69549                   "Configure dynamic MPLS forwarding";
69550                 leaf ip {
69551                   tailf:info "Configure dynamic MPLS forwarding for ip";
69552                   description
69553                     "Configure dynamic MPLS forwarding for ip";
69554                   type empty;
69555                 }
69556               }
69557               container unnumbered-interface {
69558                 tailf:info "Configure the interface to use for unnumbered";
69559                 description
69560                   "Configure the interface to use for unnumbered";
69561                 leaf vacr-interface {
69562                   tailf:info "Virtual ACR interface";
69563                   description
69564                     "Virtual ACR interface";
69565                   tailf:cli-drop-node-name;
69566                   type string;
69567                 }
69568                 leaf tbcc-controller {
69569                   tailf:info "Telecom-Bus Clock Controller";
69570                   description
69571                     "Telecom-Bus Clock Controller";
69572                   tailf:cli-drop-node-name;
69573                   type string;
69574                 }
69575                 leaf Tunnel {
69576                   tailf:info "Tunnel interface";
69577                   description
69578                     "Tunnel interface number";
69579                   type uint32 {
69580                     range "0..2147483647";
69581                   }
69582                 }
69583                 leaf Tunnel-tp {
69584                   tailf:info "MPLS Transport Profile interface";
69585                   description
69586                     "Tunnel-tp interface number";
69587                   type uint16 {
69588                     range "0..65535";
69589                   }
69590                 }
69591                 leaf VPN {
69592                   tailf:info "VPN interface";
69593                   description
69594                     "VPN interface number";
69595                   type uint32 {
69596                     range "0..2147483647";
69597                   }
69598                 }
69599                 leaf VirtualPortGroup {
69600                   tailf:info "Virtual Port Group";
69601                   description
69602                     "VirtualPortGroup interface number";
69603                   type uint8 {
69604                     range "0..31";
69605                   }
69606                 }
69607                 leaf Vlan {
69608                   tailf:info "Catalyst Vlans";
69609                   description
69610                     "Vlan interface number";
69611                   type uint16 {
69612                     range "1..4094";
69613                   }
69614                 }
69615                 leaf vasileft {
69616                   tailf:info "VasiLeft interface";
69617                   description
69618                     "vasileft interface number";
69619                   type uint16 {
69620                     range "1..2000";
69621                   }
69622                 }
69623                 leaf vasiright {
69624                   tailf:info "VasiRight interface";
69625                   description
69626                     "vasiright interface number";
69627                   type uint16 {
69628                     range "1..2000";
69629                   }
69630                 }
69631               }
69632             }
69633             leaf onehop {
69634               tailf:info "Automatically create tunnel to all next-hops";
69635               description
69636                 "Automatically create tunnel to all next-hops";
69637               type empty;
69638             }
69639             container timers {
69640               tailf:info "Configure timers for primary auto-tunnels";
69641               description
69642                 "Configure timers for primary auto-tunnels";
69643               container removal {
69644                 tailf:info "Configure removal of primary tunnels";
69645                 description
69646                   "Configure removal of primary tunnels";
69647                 leaf rerouted {
69648                   tailf:info "Configure time to remove primary after failure";
69649                   description
69650                     "seconds how long auto-tunnel primary can stay frr active";
69651                   type uint32 {
69652                     range "30..604800";
69653                   }
69654                 }
69655               }
69656             }
69657             container tunnel-num {
69658               tailf:info "Configure tunnel I/F numbers for primary auto-tunnels";
69659               description
69660                 "Configure tunnel I/F numbers for primary auto-tunnels";
69661               container min {
69662                 tailf:info "Configure the starting id-range";
69663                 description
69664                   "Configure the starting id-range";
69665                 list tnr-range {
69666                   tailf:cli-drop-node-name;
69667                   tailf:cli-suppress-mode;
69668                   key "tnr-range";
69669                   leaf tnr-range {
69670                     tailf:info "starting tunnel number range";
69671                     description
69672                       "starting tunnel number range";
69673                     type uint16 {
69674                       range "0..65535";
69675                     }
69676                   }
69677                   leaf max {
69678                     tailf:info "Configure the ending id-range";
69679                     description
69680                       "Configure the ending id-range";
69681                     type empty;
69682                   }
69683                 }
69684               }
69685             }
69686           }
69687         }
69688         container ds-te {
69689           tailf:info "Configure standard DS-TE parameters";
69690           description
69691             "Configure standard DS-TE parameters";
69692           container bc-model {
69693             tailf:info "Configure BC model";
69694             description
69695               "Configure BC model";
69696             leaf mam {
69697               tailf:info "BC Maximum allocation model";
69698               description
69699                 "BC Maximum allocation model";
69700               type empty;
69701             }
69702           }
69703           container mode {
69704             tailf:info "Configure DS-TE migration mode";
69705             description
69706               "Configure DS-TE migration mode";
69707             leaf ietf {
69708               tailf:info "Configure DS-TE standard mode";
69709               description
69710                 "Configure DS-TE standard mode";
69711               type empty;
69712             }
69713             leaf migration {
69714               tailf:info "Configure DS-TE migration mode";
69715               description
69716                 "Configure DS-TE migration mode";
69717               type empty;
69718             }
69719           }
69720           container te-classes {
69721             tailf:info "Specify TE-Class parameters";
69722             description
69723               "Specify TE-Class parameters";
69724             tailf:cli-add-mode;
69725             tailf:cli-mode-name "config-te-class";
69726             presence "true";
69727             container te-Mode-config-te-class {
69728               tailf:cli-drop-node-name;
69729               leaf list {
69730                 tailf:info "Re-list all the TE-Classes";
69731                 description
69732                   "Re-list all the TE-Classes";
69733                 type empty;
69734               }
69735               container te-class {
69736                 tailf:info "Configure a TE-Class";
69737                 description
69738                   "Configure a TE-Class";
69739                 list te-idx {
69740                   tailf:cli-drop-node-name;
69741                   tailf:cli-suppress-mode;
69742                   key "te-idx";
69743                   leaf te-idx {
69744                     tailf:info "Specify the TE-Class index";
69745                     description
69746                       "Specify the TE-Class index";
69747                     type uint8 {
69748                       range "0..7";
69749                     }
69750                   }
69751                   leaf class-type {
69752                     tailf:info "Specify the Class-Type for this TE-Class";
69753                     description
69754                       "Specify Class-Type value (0 for Global and 1 for Sub-Pool)";
69755                     type uint8 {
69756                       range "0..1";
69757                     }
69758                   }
69759                   leaf unused {
69760                     tailf:info "Specify that this TE-Class index is unused";
69761                     description
69762                       "Specify that this TE-Class index is unused";
69763                     type empty;
69764                   }
69765                 }
69766               }
69767             }
69768           }
69769         }
69770         container fast-reroute {
69771           tailf:info "fast-reroute parameters";
69772           description
69773             "fast-reroute parameters";
69774           container backup-prot-preempt {
69775             tailf:info "Preemption algorithm for backup tunnels";
69776             description
69777               "Preemption algorithm for backup tunnels";
69778             leaf optimize-bw {
69779               tailf:info "Reduce bandwidth wastage (default: minimize LSPs preempted)";
69780               description
69781                 "Reduce bandwidth wastage (default: minimize LSPs preempted)";
69782               type empty;
69783             }
69784           }
69785           container timers {
69786             tailf:info "configure fast-reroute timer";
69787             description
69788               "configure fast-reroute timer";
69789             leaf promotion {
69790               tailf:info "Configure how often we scan for LSP backup promotion";
69791               description
69792                 "seconds between promotions (0 disables promotion.)";
69793               type uint32 {
69794                 range "0..604800";
69795               }
69796             }
69797           }
69798         }
69799         container link-management {
69800           tailf:info "Link Management configuration";
69801           description
69802             "Link Management configuration";
69803           container timers {
69804             tailf:info "Link Management timers configuration";
69805             description
69806               "Link Management timers configuration";
69807             leaf bandwidth-hold {
69808               tailf:info "Link Management bandwidth hold timer";
69809               description
69810                 "Link Management bandwidth hold timer";
69811               tailf:cli-full-command;
69812               type uint16 {
69813                 tailf:info "<1-300>;;seconds";
69814                 range "1..300";
69815               }
69816             }
69817             leaf periodic-flooding {
69818               tailf:info "Link Management periodic flooding interval";
69819               description
69820                 "Link Management periodic flooding interval";
69821               tailf:cli-full-command;
69822               type uint16 {
69823                 tailf:info "<0-3600>;;seconds";
69824                 range "0..3600";
69825               }
69826             }
69827           }
69828         }
69829         container logging {
69830           tailf:info "Trap logging configuration";
69831           description
69832             "Trap logging configuration";
69833           container lsp {
69834             tailf:info "LSP-specific traps logging configuration";
69835             description
69836               "LSP-specific traps logging configuration";
69837             container path-errors {
69838               tailf:info "Log LSP Path Error traps";
69839               description
69840                 "Log LSP Path Error traps";
69841               presence "Log LSP Path Error traps";
69842               leaf access-list {
69843                 tailf:cli-drop-node-name;
69844                 type access-list-type;
69845               }
69846             }
69847             container preemption {
69848               tailf:info "Log LSP Preemption traps";
69849               description
69850                 "Log LSP Preemption traps";
69851               presence "Log LSP Preemption traps";
69852               leaf access-list {
69853                 tailf:cli-drop-node-name;
69854                 type access-list-type;
69855               }
69856             }
69857             container reservation-errors {
69858               tailf:info "Log LSP Reservation Error traps";
69859               description
69860                 "Log LSP Reservation Error traps";
69861               presence "Log LSP Reservation Error traps";
69862               leaf access-list {
69863                 tailf:cli-drop-node-name;
69864                 type access-list-type;
69865               }
69866             }
69867             container setups {
69868               tailf:info "Log LSP Establishment Traps";
69869               description
69870                 "Log LSP Establishment Traps";
69871               presence "Log LSP Establishment Traps";
69872               leaf access-list {
69873                 tailf:cli-drop-node-name;
69874                 type access-list-type;
69875               }
69876             }
69877             container teardowns {
69878               tailf:info "Log LSP Teardown Traps";
69879               description
69880                 "Log LSP Teardown Traps";
69881               presence "Log LSP Teardown Traps";
69882               leaf access-list {
69883                 tailf:cli-drop-node-name;
69884                 type access-list-type;
69885               }
69886             }
69887           }
69888           container tunnel {
69889             tailf:info "Tunnel-specific traps logging configuration";
69890             description
69891               "Tunnel-specific traps logging configuration";
69892             container lsp-selection {
69893               tailf:info "Log Tunnel LSP Selection traps";
69894               description
69895                 "Log Tunnel LSP Selection traps";
69896               presence "Log Tunnel LSP Selection traps";
69897               leaf access-list {
69898                 tailf:cli-drop-node-name;
69899                 type access-list-type;
69900               }
69901             }
69902             container path {
69903               tailf:info "Log Tunnel Path-related traps";
69904               description
69905                 "Log Tunnel Path-related traps";
69906               container change {
69907                 tailf:info "Log Tunnel Path change traps";
69908                 description
69909                   "Log Tunnel Path change traps";
69910                 presence "Log Tunnel Path change traps";
69911                 leaf access-list {
69912                   tailf:cli-drop-node-name;
69913                   type access-list-type;
69914                 }
69915               }
69916             }
69917           }
69918         }
69919         container lsp {
69920           tailf:info "Configure LSP parameters";
69921           description
69922             "Configure LSP parameters";
69923           list attributes {
69924             tailf:info "Configure LSP attributes";
69925             description
69926               "Configure LSP attributes";
69927             tailf:cli-mode-name "config-lsp-attr";
69928             key "lsp-att";
69929             leaf lsp-att {
69930               tailf:info "Name of LSP attribute list";
69931               description
69932                 "Name of LSP attribute list";
69933               type string;
69934             }
69935             container flag-Mode-config-lsp-attr {
69936               tailf:cli-drop-node-name;
69937               container affinity {
69938                 tailf:info "Specify attribute flags for links comprising LSP";
69939                 description
69940                   "Specify attribute flags for links comprising LSP";
69941                 list fl-val {
69942                   tailf:cli-drop-node-name;
69943                   tailf:cli-suppress-mode;
69944                   key "fl-val";
69945                   leaf fl-val {
69946                     tailf:info "<0x0-0xFFFFFFFF>;;affinity value";
69947                     description
69948                       "<0x0-0xFFFFFFFF>;;affinity value";
69949                     type string;
69950                   }
69951                   leaf mask {
69952                     tailf:info "mask on desired link attributes";
69953                     description
69954                       "mask on desired link attributes";
69955                     type empty;
69956                   }
69957                 }
69958               }
69959               container auto-bw {
69960                 tailf:info "Specify automatic bandwidth configuration";
69961                 description
69962                   "Specify automatic bandwidth configuration";
69963                 presence "true";
69964                 leaf adjustment-threshold {
69965                   tailf:info "Set the bandwidth change threshold to trigger adjustment";
69966                   description
69967                     "Percent bandwidth change to trigger adjustment";
69968                   type uint8 {
69969                     range "1..99";
69970                   }
69971                 }
69972                 leaf collect-bw {
69973                   tailf:info "Just collect bandwidth info";
69974                   description
69975                     "Just collect bandwidth info";
69976                   type empty;
69977                 }
69978                 leaf frequency {
69979                   tailf:info "frequency to change LSP bandwidth";
69980                   description
69981                     "seconds between applying auto-bw";
69982                   type uint32 {
69983                     range "300..604800";
69984                   }
69985                 }
69986                 leaf max-bw {
69987                   tailf:info "Set the Maximum Bandwidth for auto-bw";
69988                   description
69989                     "Maximum bandwidth to apply (kbps)";
69990                   type uint32 {
69991                     range "0..4294967295";
69992                   }
69993                 }
69994                 leaf min-bw {
69995                   tailf:info "Set the minimum bandwidth for auto-bw";
69996                   description
69997                     "Minimum bandwidth to apply (kbps)";
69998                   type uint32 {
69999                     range "0..4294967295";
70000                   }
70001                 }
70002                 leaf overflow-limit {
70003                   tailf:info "Percent bandwidth change to trigger adjustment";
70004                   description
70005                     "Number of consecutive samples exceeding threshold";
70006                   type uint8 {
70007                     range "1..10";
70008                   }
70009                 }
70010               }
70011               container bandwidth {
70012                 tailf:info "Specify LSP bandwidth";
70013                 description
70014                   "Specify LSP bandwidth";
70015                 leaf bnd-kbp {
70016                   tailf:info "bandwidth requirement in kbps";
70017                   description
70018                     "bandwidth requirement in kbps";
70019                   tailf:cli-drop-node-name;
70020                   type uint32 {
70021                     range "0..4294967295";
70022                   }
70023                 }
70024                 leaf sub-pool {
70025                   tailf:info "use sub-pool bandwidth";
70026                   description
70027                     "bandwidth requirement in kbps";
70028                   type uint32 {
70029                     range "1..4294967295";
70030                   }
70031                 }
70032               }
70033               leaf list {
70034                 tailf:info "Re-list all of the attribute list entries";
70035                 description
70036                   "Re-list all of the attribute list entries";
70037                 type empty;
70038               }
70039               leaf lockdown {
70040                 tailf:info "Lockdown the LSP--disable reoptimization";
70041                 description
70042                   "Lockdown the LSP--disable reoptimization";
70043                 type empty;
70044               }
70045               container priority {
70046                 description
70047                   "Specify LSP priority";
70048                 list lss-pri {
70049                   tailf:info "Specify LSP priority";
70050                   tailf:cli-drop-node-name;
70051                   tailf:cli-suppress-mode;
70052                   key "lss-pri";
70053                   leaf lss-pri {
70054                     tailf:info "setup priority";
70055                     description
70056                       "setup priority";
70057                     type uint8 {
70058                       range "0..7";
70059                     }
70060                   }
70061                   leaf lss-pri0 {
70062                     tailf:info "hold priority";
70063                     description
70064                       "hold priority";
70065                     tailf:cli-drop-node-name;
70066                     type uint8 {
70067                       range "0..7";
70068                     }
70069                   }
70070                 }
70071               }
70072               container protection {
70073                 tailf:info "Enable failure protection";
70074                 description
70075                   "Enable failure protection";
70076                 presence "true";
70077                 container fast-reroute {
70078                   tailf:info "Enable fast-reroute failure protection";
70079                   description
70080                     "Enable fast-reroute failure protection";
70081                   presence "true";
70082                   leaf bw-protect {
70083                     tailf:info "Enable BW protection";
70084                     description
70085                       "Enable BW protection";
70086                     type empty;
70087                   }
70088                 }
70089               }
70090               leaf record-route {
70091                 tailf:info "Record the route used by the LSP";
70092                 description
70093                   "Record the route used by the LSP";
70094                 type empty;
70095               }
70096             }
70097           }
70098         }
70099         leaf nsr {
70100           tailf:info "TE NSR configuration";
70101           description
70102             "TE NSR configuration";
70103           type empty;
70104         }
70105         container path-option {
70106           tailf:info "Configure path-option";
70107           description
70108             "Configure path-option";
70109           container list {
70110             tailf:info "Configure path-option list";
70111             description
70112               "Configure path-option list";
70113             list identifier {
70114               tailf:info "Specify path-option list by number";
70115               description
70116                 "Specify path-option list by number";
70117               tailf:cli-mode-name "cfg-pathoption-list";
70118               key "po-num";
70119               leaf po-num {
70120                 tailf:info "Enter number";
70121                 description
70122                   "Enter number";
70123                 type uint16 {
70124                   range "1..65535";
70125                 }
70126               }
70127             }
70128             list name {
70129               tailf:info "Specify path-option list by name";
70130               description
70131                 "Specify path-option list by name";
70132               tailf:cli-mode-name "cfg-pathoption-list";
70133               key "spo-name";
70134               leaf spo-name {
70135                 tailf:info "Enter name";
70136                 description
70137                   "Enter name";
70138                 type string;
70139               }
70140             }
70141           }
70142         }
70143         container path-selection {
70144           tailf:info "Path Selection Configuration";
70145           description
70146             "Path Selection Configuration";
70147           leaf metric {
70148             tailf:info "Metric Type Configuration";
70149             description
70150               "Metric Type Configuration";
70151             tailf:cli-full-command;
70152             type enumeration {
70153               enum "igp" {
70154                 tailf:info "Use IGP metric";
70155               }
70156               enum "te" {
70157                 tailf:info "User TE metric";
70158               }
70159             }
70160           }
70161           container overload {
70162             tailf:info "Overload Node Configuration";
70163             description
70164               "Overload Node Configuration";
70165             container allow {
70166               tailf:info "Allow overloaded nodes in CSPFs";
70167               description
70168                 "Allow overloaded nodes in CSPFs";
70169               tailf:cli-sequence-commands;
70170               leaf head {
70171                 tailf:info "Allow overloaded head node in TE CSPF";
70172                 description
70173                   "Allow overloaded head node in TE CSPF";
70174                 tailf:cli-optional-in-sequence;
70175                 tailf:cli-reset-container;
70176                 type empty;
70177               }
70178               leaf middle {
70179                 tailf:info "Allow overloaded middle node in TE CSPF";
70180                 description
70181                   "Allow overloaded middle node in TE CSPF";
70182                 tailf:cli-optional-in-sequence;
70183                 tailf:cli-reset-container;
70184                 type empty;
70185               }
70186               leaf tail {
70187                 tailf:info "Allow overloaded middle node in TE CSPF";
70188                 description
70189                   "Allow overloaded middle node in TE CSPF";
70190                 tailf:cli-optional-in-sequence;
70191                 tailf:cli-reset-container;
70192                 type empty;
70193               }
70194             }
70195           }
70196         }
70197         container reoptimize {
70198           tailf:info "Reoptimization parameters";
70199           description
70200             "Reoptimization parameters";
70201           container events {
70202             tailf:info "Reoptimization triggers";
70203             description
70204               "Reoptimization triggers";
70205             leaf link-up {
70206               tailf:info "Reoptimize tunnels on link up events";
70207               description
70208                 "Reoptimize tunnels on link up events";
70209               type empty;
70210             }
70211           }
70212           container timers {
70213             tailf:info "Reoptimization timers";
70214             description
70215               "Reoptimization timers";
70216             container delay {
70217               tailf:info "Delay reoptimization action";
70218               description
70219                 "Delay reoptimization action";
70220               leaf cleanup {
70221                 tailf:info "Delay cleanup of reoptimized LSP";
70222                 description
70223                   "Delay cleanup of reoptimized LSP";
70224                 tailf:cli-full-command;
70225                 type uint8 {
70226                   range "0..60";
70227                   tailf:info "<0-60>;;seconds to delay cleanup of replaced tunnel LSP";
70228                 }
70229               }
70230               leaf installation {
70231                 tailf:info "Delay replacement of current LSP by reoptimized LSP";
70232                 description
70233                   "Delay replacement of current LSP by reoptimized LSP";
70234                 tailf:cli-full-command;
70235                 type uint16 {
70236                   range "0..3600";
70237                   tailf:info "<0-3600>;;seconds to delay replacement of tunnel LSP";
70238                 }
70239               }
70240             }
70241             leaf frequency {
70242               tailf:info "Interval between reoptimization scans";
70243               description
70244                 "Interval between reoptimization scans";
70245               tailf:cli-full-command;
70246               type uint32 {
70247                 tailf:info "<0-604800>;;seconds between reoptimizations (0 disables reoptimization)";
70248                 range "0..604800";
70249               }
70250             }
70251           }
70252         }
70253         container signalling {
70254           tailf:info "Traffic Engineering Signalling Parameters";
70255           description
70256             "Traffic Engineering Signalling Parameters";
70257           container advertise {
70258             tailf:info "Signalling advertisement parameters";
70259             description
70260               "Signalling advertisement parameters";
70261             container implicit-null {
70262               tailf:info "Use MPLS encoding for Implicit-Null Label in signalling messages";
70263               description
70264                 "Use MPLS encoding for Implicit-Null Label in signalling messages";
70265               presence "Use MPLS encoding for Implicit-Null Label in signalling messages";
70266               leaf nr {
70267                 tailf:cli-drop-node-name;
70268                 type uint8 {
70269                   range "1..99";
70270                   tailf:info "<1-99>;;Number of IP access-list to determine applicable signalling peers";
70271                 }
70272               }
70273             }
70274           }
70275           container forwarding {
70276             tailf:info "Control interaction of LSP signalling and LFIB maintenance";
70277             description
70278               "Control interaction of LSP signalling and LFIB maintenance";
70279             leaf sync {
70280               tailf:info "Program linecard LFIBs before signalling LSP label upstream";
70281               description
70282                 "Program linecard LFIBs before signalling LSP label upstream";
70283               type empty;
70284             }
70285           }
70286           container restart {
70287             tailf:info "Signalling restart parameters";
70288             description
70289               "Signalling restart parameters";
70290             container neighbors {
70291               tailf:info "Identify signalling restart capable neighbors";
70292               description
70293                 "Identify signalling restart capable neighbors";
70294               presence "Identify signalling restart capable neighbors";
70295               leaf nr {
70296                 tailf:cli-drop-node-name;
70297                 type uint8 {
70298                   range "1..99";
70299                   tailf:info "<1-99>;;Number of IP access-list to determine applicable signalling peers";
70300                 }
70301               }
70302             }
70303           }
70304         }
70305         container topology {
70306           tailf:info "Topology Database Configuration";
70307           description
70308             "Topology Database Configuration";
70309           container holddown {
70310             tailf:info "Topology Database hold down timers";
70311             description
70312               "Topology Database hold down timers";
70313             leaf sigerr {
70314               tailf:info "Link hold down time for signalling errors";
70315               description
70316                 "Link hold down time for signalling errors";
70317               type uint16 {
70318                 range "0..300";
70319                 tailf:info "<0-300>;;Hold down time in seconds";
70320               }
70321             }
70322           }
70323         }
70324         container trace {
70325           tailf:info "Trace configuration";
70326           description
70327             "Trace configuration";
70328           container buffer-size {
70329             tailf:info "Trace buffer size configuration";
70330             description
70331               "Trace buffer size configuration";
70332             leaf error {
70333               tailf:info "Error trace buffer size in kB (default 32kB)";
70334               description
70335                 "trace error buffer size in kB (default 32kB)";
70336               type uint16 {
70337                 range "1..500";
70338               }
70339             }
70340             leaf event {
70341               tailf:info "Event trace buffer size in kB (default 1% of system memory)";
70342               description
70343                 "trace event buffer size in kB (default 1% of system memory)";
70344               type uint16 {
70345                 range "1..2500";
70346               }
70347             }
70348             leaf warning {
70349               tailf:info "Warning trace buffer size in kB (default 32kB)";
70350               description
70351                 "trace warning buffer size in kB (default 32kB)";
70352               type uint8 {
70353                 range "1..250";
70354               }
70355             }
70356           }
70357         }
70358         leaf tunnels {
70359           tailf:info "Traffic Engineering tunnels";
70360           description
70361             "Traffic Engineering tunnels";
70362           tailf:cli-full-command;
70363           type empty;
70364         }
70365       }
70366       container tp {
70367         tailf:info "Configure MPLS Transport Profile parameters";
70368         description
70369           "Configure MPLS Transport Profile parameters";
70370         presence "true";
70371       }
70372     }
70373     container router {
70374       tailf:info "Enable a routing process";
70375       description
70376         "Enable a routing process";
70377       list bgp {
70378         tailf:info "Border Gateway Protocol (BGP)";
70379         description
70380           "Border Gateway Protocol (BGP)";
70381         tailf:cli-mode-name "config-router";
70382         tailf:cli-diff-dependency "/ios:native/vrf/definition";
70383         tailf:cli-diff-dependency "/ios:native/ip/vrf";
70384         key "as-no";
70385         max-elements "1";
70386         leaf as-no {
70387           tailf:cli-suppress-range;
70388           type bgp-as-number-type;
70389         }
70390         uses bgp-address-family-grouping;
70391         container address-family {
70392           tailf:info "Enter Address Family command mode";
70393           description
70394             "Enter Address Family command mode";
70395           container no-vrf {
70396             tailf:cli-drop-node-name;
70397             list ipv4 {
70398               tailf:info "Address family";
70399               description
70400                 "Address family";
70401               tailf:cli-full-command;
70402               tailf:cli-delete-when-empty;
70403               tailf:cli-exit-command "exit-address-family" {
70404                 tailf:info "Exit from Address Family configuration mode";
70405               }
70406               key "unicast-multicast";
70407               leaf unicast-multicast {
70408                 type enumeration {
70409                   enum "unicast" {
70410                     tailf:code-name "ipv4_unicast";
70411                     tailf:info "Address Family modifier";
70412                   }
70413                   enum "multicast" {
70414                     tailf:code-name "ipv4_multicast";
70415                     tailf:info "Address Family modifier";
70416                   }
70417                   enum "mdt" {
70418                     tailf:info "IPv4 multicast distribution tree (MDT)";
70419                   }
70420                   enum "tunnel" {
70421                     tailf:info "IPv4 tunnel address prefixes.";
70422                   }
70423                   enum "labeled-unicast" {
70424                     tailf:info "IPv4 labeled-unicast address prefixes";
70425                   }
70426                   enum "flowspec" {
70427                     tailf:info "IPv4 flowspec";
70428                   }
70429                   enum "mvpn" {
70430                     tailf:info "IPv4 mvpn";
70431                   }
70432                 }
70433                 tailf:key-default "unicast";
70434               }
70435               uses bgp-address-family-grouping;
70436             }
70437           }
70438           container with-vrf {
70439             tailf:cli-drop-node-name;
70440             list ipv4 {
70441               tailf:info "Address family";
70442               description
70443                 "Address family";
70444               tailf:cli-suppress-mode;
70445               tailf:cli-delete-when-empty;
70446               tailf:cli-incomplete-command;
70447               key "unicast-multicast";
70448               leaf unicast-multicast {
70449                 type enumeration {
70450                   enum "unicast" {
70451                     tailf:code-name "ipv4_unicast";
70452                     tailf:info "Address Family modifier";
70453                   }
70454                   enum "multicast" {
70455                     tailf:code-name "ipv4_multicast";
70456                     tailf:info "Address Family modifier";
70457                   }
70458                   enum "mdt" {
70459                     tailf:info "IPv4 multicast distribution tree (MDT)";
70460                   }
70461                   enum "tunnel" {
70462                     tailf:info "IPv4 tunnel address prefixes.";
70463                   }
70464                   enum "labeled-unicast" {
70465                     tailf:info "IPv4 labeled-unicast address prefixes";
70466                   }
70467                   enum "flowspec" {
70468                     tailf:info "IPv4 flowspec";
70469                   }
70470                   enum "mvpn" {
70471                     tailf:info "IPv4 mvpn";
70472                   }
70473                 }
70474                 tailf:key-default "unicast";
70475               }
70476               list vrf {
70477                 tailf:cli-mode-name "config-router-af";
70478                 tailf:cli-full-command;
70479                 tailf:cli-diff-dependency "/ios:native/ip/vrf";
70480                 tailf:cli-diff-dependency "/ios:native/vrf/definition";
70481                 tailf:cli-exit-command "exit-address-family" {
70482                   tailf:info "Exit from Address Family configuration mode";
70483                 }
70484                 key "name";
70485                 leaf name {
70486                   type string {
70487                     tailf:info "WORD;;VPN Routing/Forwarding instance name";
70488                   }
70489                 }
70490                 uses bgp-address-family-grouping;
70491               }
70492             }
70493           }
70494           list ipv6 {
70495             tailf:info "Address family";
70496             description
70497               "Address family";
70498             tailf:cli-suppress-mode;
70499             tailf:cli-delete-when-empty;
70500             tailf:cli-full-command;
70501             tailf:cli-exit-command "exit-address-family" {
70502               tailf:info "Exit from Address Family configuration mode";
70503             }
70504             key "unicast-multicast";
70505             leaf unicast-multicast {
70506               type enumeration {
70507                 enum "unicast" {
70508                   tailf:code-name "ipv6_unicast";
70509                   tailf:info "Address Family modifier";
70510                 }
70511                 enum "multicast" {
70512                   tailf:code-name "ipv6_multicast";
70513                   tailf:info "Address Family modifier";
70514                 }
70515                 enum "mdt" {
70516                   tailf:info "IPv6 multicast distribution tree (MDT)";
70517                 }
70518                 enum "flowspec" {
70519                   tailf:info "IPv6 flowspec";
70520                 }
70521                 enum "mvpn" {
70522                   tailf:info "IPv6 mvpn";
70523                 }
70524               }
70525               tailf:key-default "unicast";
70526             }
70527             list vrf {
70528               tailf:cli-full-command;
70529               tailf:cli-diff-dependency "/ios:native/vrf/definition";
70530               tailf:cli-exit-command "exit-address-family" {
70531                 tailf:info "Exit from Address Family configuration mode";
70532               }
70533               key "name";
70534               leaf name {
70535                 type string {
70536                   tailf:info "WORD;;VPN Routing/Forwarding instance name";
70537                 }
70538               }
70539               uses bgp-address-family-grouping;
70540             }
70541             uses bgp-address-family-grouping;
70542           }
70543           list vpnv4 {
70544             tailf:info "Address family";
70545             description
70546               "Address family";
70547             tailf:cli-exit-command "exit-address-family" {
70548               tailf:info "Exit from Address Family configuration mode";
70549             }
70550             key "unicast-multicast";
70551             leaf unicast-multicast {
70552               type enumeration {
70553                 enum "unicast" {
70554                   tailf:code-name "vpnv4_unicast";
70555                   tailf:info "Address Family modifier";
70556                 }
70557               }
70558               tailf:key-default "unicast";
70559             }
70560             uses bgp-address-family-grouping;
70561           }
70562           list vpnv6 {
70563             tailf:info "Address family";
70564             description
70565               "Address family";
70566             tailf:cli-exit-command "exit-address-family" {
70567               tailf:info "Exit from Address Family configuration mode";
70568             }
70569             key "unicast-multicast";
70570             leaf unicast-multicast {
70571               type enumeration {
70572                 enum "unicast" {
70573                   tailf:code-name "vpnv6_unicast";
70574                   tailf:info "Address Family modifier";
70575                 }
70576               }
70577               tailf:key-default "unicast";
70578             }
70579             uses bgp-address-family-grouping;
70580           }
70581           list nsap {
70582             tailf:info "Address family";
70583             description
70584               "Address family";
70585             tailf:cli-exit-command "exit-address-family" {
70586               tailf:info "Exit from Address Family configuration mode";
70587             }
70588             key "unicast-multicast";
70589             leaf unicast-multicast {
70590               type enumeration {
70591                 enum "unicast" {
70592                   tailf:code-name "nsap_unicast";
70593                   tailf:info "Address Family modifier";
70594                 }
70595               }
70596               tailf:key-default "unicast";
70597             }
70598             uses bgp-address-family-grouping;
70599           }
70600           list l2vpn {
70601             tailf:info "Address family";
70602             description
70603               "Address family";
70604             tailf:cli-exit-command "exit-address-family" {
70605               tailf:info "Exit from Address Family configuration mode";
70606             }
70607             key "evpn_vpls";
70608             leaf evpn_vpls {
70609               type enumeration {
70610                 enum "evpn" {
70611                   tailf:code-name "l2vpn_evpn";
70612                   tailf:info "Address Family modifier";
70613                 }
70614                 enum "vpls" {
70615                   tailf:code-name "l2vpn_vpls";
70616                   tailf:info "Address Family modifier";
70617                 }
70618               }
70619               tailf:key-default "evpn";
70620             }
70621             uses bgp-address-family-grouping;
70622           }
70623           list rtfilter {
70624             tailf:info "Address family";
70625             description
70626               "Address family";
70627             tailf:cli-exit-command "exit-address-family" {
70628               tailf:info "Exit from Address Family configuration mode";
70629             }
70630             key "unicast-multicast";
70631             leaf unicast-multicast {
70632               type enumeration {
70633                 enum "unicast" {
70634                   tailf:code-name "rtfilter_unicast";
70635                   tailf:info "Address Family modifier";
70636                 }
70637               }
70638               tailf:key-default "unicast";
70639             }
70640             uses bgp-address-family-grouping;
70641           }
70642         }
70643         container template {
70644           tailf:info "Enter template command mode";
70645           description
70646             "Enter template command mode";
70647           list peer-policy {
70648             tailf:info "Template configuration for policy parameters";
70649             description
70650               "Template configuration for policy parameters";
70651             tailf:cli-mode-name "config-router-ptmp";
70652             tailf:cli-exit-command "exit-peer-policy" {
70653               tailf:info "Exit from template configuration mode";
70654             }
70655             key "name";
70656             leaf name {
70657               type string {
70658                 tailf:info "WORD;;Name of peer-policy template";
70659               }
70660             }
70661             list route-map {
70662               tailf:info "Apply route map to neighbor";
70663               description
70664                 "Apply route map to neighbor";
70665               tailf:cli-suppress-mode;
70666               key "name";
70667               leaf name {
70668                 type string {
70669                   tailf:info "WORD;;Name of route map";
70670                 }
70671               }
70672               leaf in {
70673                 tailf:info "Apply map to incoming routes";
70674                 description
70675                   "Apply map to incoming routes";
70676                 type empty;
70677               }
70678               leaf out {
70679                 tailf:info "Apply map to outgoing routes";
70680                 description
70681                   "Apply map to outgong routes";
70682                 type empty;
70683               }
70684             }
70685           }
70686           list peer-session {
70687             tailf:info "Template configuration for session parameters";
70688             description
70689               "Template configuration for session parameters";
70690             tailf:cli-exit-command "exit-peer-session" {
70691               tailf:info "Exit from template configuration mode";
70692             }
70693             key "name";
70694             leaf name {
70695               type string {
70696                 tailf:info "WORD;;Name of peer-session template";
70697               }
70698             }
70699           }
70700         }
70701       }
70702       list ospfv3 {
70703         tailf:cli-mode-name "config-router";
70704         tailf:info "OSPFv3";
70705         description
70706           "OSPFv3";
70707         key "id";
70708         leaf id {
70709           tailf:cli-suppress-range;
70710           type uint16 {
70711             range "1..65535";
70712             tailf:info "<1-65535>;;Process ID";
70713           }
70714         }
70715         uses ospf-ospfv3-common-grouping;
70716         uses ospfv3-grouping;
70717         container address-family {
70718           tailf:info "Enter Address Family command mode";
70719           description
70720             "Enter Address Family command mode";
70721           container ipv4 {
70722             tailf:info "IPv4 Address family";
70723             description
70724               "IPv4 Address family";
70725             container unicast {
70726               tailf:info "Address Family Modifier";
70727               description
70728                 "Address Family Modifier";
70729               tailf:cli-add-mode;
70730               tailf:cli-mode-name "config-router-af";
70731               tailf:cli-exit-command "exit-address-family" {
70732                 tailf:info "Exit from Address Family configuration mode";
70733               }
70734               presence "true";
70735               uses ospf-ospfv3-common-grouping;
70736               uses ospf-ospfv3-common-address-family-grouping;
70737               uses ospfv3-address-family-grouping;
70738             }
70739             list vrf {
70740               tailf:info "Specify parameters for a VPN Routing/Forwarding instance";
70741               description
70742                 "Specify parameters for a VPN Routing/Forwarding instance";
70743               tailf:cli-diff-dependency "/ios:native/ip/vrf";
70744               tailf:cli-diff-dependency "/ios:native/vrf/definition";
70745               tailf:cli-mode-name "config-router-af";
70746               tailf:cli-exit-command "exit-address-family" {
70747                 tailf:info "Exit from Address Family configuration mode";
70748               }
70749               key "name";
70750               leaf name {
70751                 type string {
70752                   tailf:info "WORD;;VPN Routing/Forwarding instance name";
70753                 }
70754               }
70755               uses ospf-ospfv3-common-grouping;
70756               uses ospf-ospfv3-common-address-family-grouping;
70757               uses ospfv3-address-family-grouping;
70758             }
70759           }
70760           container ipv6 {
70761             tailf:info "IPv6 Address family";
70762             description
70763               "IPv6 Address family";
70764             container unicast {
70765               tailf:cli-add-mode;
70766               tailf:cli-mode-name "config-router-af";
70767               tailf:info "Address Family Modifier";
70768               tailf:cli-exit-command "exit-address-family" {
70769                 tailf:info "Exit from Address Family configuration mode";
70770               }
70771               presence "true";
70772               uses ospf-ospfv3-common-grouping;
70773               uses ospf-ospfv3-common-address-family-grouping;
70774               uses ospfv3-address-family-grouping;
70775             }
70776             list vrf {
70777               tailf:info "Specify parameters for a VPN Routing/Forwarding instance";
70778               description
70779                 "Specify parameters for a VPN Routing/Forwarding instance";
70780               tailf:cli-diff-dependency "/ios:native/ip/vrf";
70781               tailf:cli-diff-dependency "/ios:native/vrf/definition";
70782               tailf:cli-mode-name "config-router-af";
70783               tailf:cli-exit-command "exit-address-family" {
70784                 tailf:info "Exit from Address Family configuration mode";
70785               }
70786               key "name";
70787               leaf name {
70788                 type string {
70789                   tailf:info "WORD;;VPN Routing/Forwarding instance name";
70790                 }
70791               }
70792               uses ospf-ospfv3-common-grouping;
70793               uses ospf-ospfv3-common-address-family-grouping;
70794               uses ospfv3-address-family-grouping;
70795             }
70796             uses ospfv3-af-ipv6-summary-prefix-grouping;
70797           }
70798         }
70799       }
70800       list ospf {
70801         tailf:cli-mode-name "config-router";
70802         tailf:info "Open Shortest Path First (OSPF)";
70803         description
70804           "Open Shortest Path First (OSPF)";
70805         key "id";
70806         leaf id {
70807           tailf:cli-suppress-range;
70808           type uint16 {
70809             range "1..65535";
70810             tailf:info "<1-65535>;;Process ID";
70811           }
70812         }
70813         leaf vrf {
70814           tailf:info "VPN Routing/Forwarding Instance";
70815           description
70816             "VPN Routing/Forwarding Instance";
70817           tailf:cli-full-command;
70818           tailf:cli-hide-in-submode;
70819           tailf:cli-diff-dependency "/ios:native/ip/vrf";
70820           tailf:cli-diff-dependency "/ios:native/vrf/definition";
70821           type string {
70822             tailf:info "WORD;;VPN Routing/Forwarding Instance (VRF) name";
70823           }
70824         }
70825         container address-family {
70826           tailf:info "Enter Address Family command mode";
70827           description
70828             "Enter Address Family command mode";
70829           container ipv4_1 {
70830             tailf:cli-drop-node-name;
70831             container ipv4 {
70832               tailf:info "Address family";
70833               description
70834                 "Address family";
70835               tailf:cli-add-mode;
70836               tailf:cli-mode-name "config-router-af";
70837               tailf:cli-full-command;
70838               uses ospf-address-family-grouping;
70839             }
70840           }
70841           container ipv4 {
70842             tailf:info "Address family";
70843             description
70844               "Address family";
70845             container unicast {
70846               tailf:info "Address Family Modifier";
70847               description
70848                 "Address Family Modifier";
70849               tailf:cli-add-mode;
70850               tailf:cli-mode-name "config-router-af";
70851               tailf:cli-full-command;
70852               uses ospf-address-family-grouping;
70853             }
70854             container multicast {
70855               tailf:info "Address Family Modifier";
70856               description
70857                 "Address Family Modifier";
70858               tailf:cli-add-mode;
70859               tailf:cli-mode-name "config-router-af";
70860               tailf:cli-full-command;
70861               uses ospf-address-family-grouping;
70862             }
70863           }
70864         }
70865         uses ospf-ospfv3-common-grouping;
70866         uses ospf-ospfv3-common-address-family-grouping;
70867         uses distribute-list-grouping;
70868         container domain-id {
70869           tailf:info "OSPF domain-id";
70870           description
70871             "OSPF domain-id";
70872           choice domain-id-choice {
70873             leaf ip-format {
70874               tailf:cli-drop-node-name;
70875               type inet:ipv4-address {
70876                 tailf:info "A.B.C.D;;OSPF domain ID in IP address format";
70877               }
70878             }
70879             container ip-format-secondary {
70880               tailf:cli-drop-node-name;
70881               tailf:cli-compact-syntax;
70882               tailf:cli-sequence-commands;
70883               leaf ip {
70884                 tailf:cli-drop-node-name;
70885                 type inet:ipv4-address {
70886                   tailf:info "A.B.C.D;;OSPF domain ID in IP address format";
70887                 }
70888               }
70889               leaf secondary {
70890                 tailf:info "Secondary Domain-ID";
70891                 description
70892                   "Secondary Domain-ID";
70893                 type empty;
70894               }
70895             }
70896             leaf Null {
70897               tailf:info "Null Domain-ID";
70898               description
70899                 "Null Domain-ID";
70900               tailf:cli-full-command;
70901               type empty;
70902             }
70903             container type {
70904               tailf:info "OSPF domain ID type in Hex format";
70905               description
70906                 "OSPF domain ID type in Hex format";
70907               tailf:cli-sequence-commands;
70908               tailf:cli-compact-syntax;
70909               leaf type-leaf {
70910                 tailf:cli-drop-node-name;
70911                 tailf:cli-incomplete-command;
70912                 type enumeration {
70913                   enum "0005" {
70914                     tailf:info "Type 0x0005";
70915                   }
70916                   enum "0105" {
70917                     tailf:info "Type 0x0105";
70918                   }
70919                   enum "0205" {
70920                     tailf:info "Type 0x0205";
70921                   }
70922                   enum "8005" {
70923                     tailf:info "Type 0x8005";
70924                   }
70925                 }
70926               }
70927               leaf value {
70928                 tailf:info "OSPF domain ID value in Hex format";
70929                 description
70930                   "OSPF domain ID value in Hex format";
70931                 type string {
70932                   tailf:info "Hex-data;;OSPF domain ID ext. community value in Hex";
70933                   pattern "[0-9a-fA-F]{12}";
70934                 }
70935               }
70936             }
70937           }
70938         }
70939         leaf domain-tag {
70940           tailf:info "OSPF domain-tag";
70941           description
70942             "OSPF domain-tag";
70943           tailf:cli-full-command;
70944           type uint32 {
70945             range "1 .. 4294967295";
70946             tailf:info "<1-4294967295>;;OSPF domain tag - 32-bit value";
70947           }
70948         }
70949         container fast-reroute {
70950           tailf:info "LFA FastReroute parameters";
70951           description
70952             "LFA FastReroute parameters";
70953           leaf keep-all-paths {
70954             tailf:info "Keep LFA FRR audit trail";
70955             description
70956               "Keep LFA FRR audit trail";
70957             tailf:cli-full-command;
70958             type empty;
70959           }
70960           container per-prefix {
70961             tailf:info "Per-prefix LFA FRR parameters";
70962             description
70963               "Per-prefix LFA FRR parameters";
70964             container enable {
70965               tailf:info "Enable LFA Fast Reroute";
70966               description
70967                 "Enable LFA Fast Reroute";
70968               tailf:cli-compact-syntax;
70969               leaf area {
70970                 tailf:info "Area to enable LFA FRR in";
70971                 description
70972                   "Area to enable LFA FRR in";
70973                 tailf:cli-incomplete-command;
70974                 type ospf-area-type;
70975               }
70976               leaf prefix-priority {
70977                 tailf:info "Priority of prefixes to be protected";
70978                 description
70979                   "Priority of prefixes to be protected";
70980                 type enumeration {
70981                   enum "high" {
70982                     tailf:info "High priority prefixes";
70983                   }
70984                   enum "low" {
70985                     tailf:info "Low priority prefixes";
70986                   }
70987                 }
70988               }
70989             }
70990             container remote-lfa {
70991               tailf:info "Remote LFA FastReroute parameters";
70992               description
70993                 "Remote LFA FastReroute parameters";
70994               leaf area {
70995                 tailf:info "Area for remote LFA command";
70996                 description
70997                   "Area for remote LFA command";
70998                 tailf:cli-incomplete-command;
70999                 type ospf-area-type;
71000               }
71001               leaf maximum-cost {
71002                 tailf:info "Maximum distance to tunnel endpoint";
71003                 description
71004                   "Maximum distance to tunnel endpoint";
71005                 tailf:cli-full-command;
71006                 type uint32 {
71007                   tailf:info "<1-16777214>;;Value of the maximum distance to tunnel endpoint";
71008                   range "1..16777214";
71009                 }
71010               }
71011               leaf tunnel {
71012                 tailf:info "Remote LFA tunnel type";
71013                 description
71014                   "Remote LFA tunnel type";
71015                 tailf:cli-full-command;
71016                 type enumeration {
71017                   enum "mpls-ldp" {
71018                     tailf:info "Enable remote LFA tunneling via MPLS";
71019                   }
71020                 }
71021               }
71022             }
71023             container tie-break {
71024               tailf:info "LFA FRR repair path selection policy tiebreaks";
71025               description
71026                 "LFA FRR repair path selection policy tiebreaks";
71027               container broadcast-interface-disjoint {
71028                 tailf:info "Interface protection attribute";
71029                 description
71030                   "Interface protection attribute";
71031                 tailf:cli-compact-syntax;
71032                 uses tie-break-index;
71033               }
71034               container downstream {
71035                 tailf:info "Downstream repair path attribute";
71036                 description
71037                   "Downstream repair path attribute";
71038                 tailf:cli-compact-syntax;
71039                 uses tie-break-index;
71040               }
71041               container linecard-disjoint {
71042                 tailf:info "Line card protection attribute";
71043                 description
71044                   "Line card protection attribute";
71045                 tailf:cli-compact-syntax;
71046                 uses tie-break-index;
71047               }
71048               container lowest-metric {
71049                 tailf:info "Lowest metric repair path attribute";
71050                 description
71051                   "Lowest metric repair path attribute";
71052                 tailf:cli-compact-syntax;
71053                 uses tie-break-index;
71054               }
71055               container node-protecting {
71056                 tailf:info "Node protecting repair path attribute";
71057                 description
71058                   "Node protecting repair path attribute";
71059                 tailf:cli-compact-syntax;
71060                 uses tie-break-index;
71061               }
71062               container primary-path {
71063                 tailf:info "Equal cost multipath attribute";
71064                 description
71065                   "Equal cost multipath attribute";
71066                 tailf:cli-compact-syntax;
71067                 uses tie-break-index;
71068               }
71069               container secondary-path {
71070                 tailf:info "Not-equal cost multipath attribute";
71071                 description
71072                   "Not-equal cost multipath attribute";
71073                 tailf:cli-compact-syntax;
71074                 uses tie-break-index;
71075               }
71076               container srlg {
71077                 tailf:info "Shared risk link group attribute";
71078                 description
71079                   "Shared risk link group attribute";
71080                 tailf:cli-compact-syntax;
71081                 uses tie-break-index;
71082               }
71083             }
71084           }
71085         }
71086         container graceful-restart {
71087           tailf:info "Graceful-restart options";
71088           presence "true";
71089           description
71090             "Graceful-restart options";
71091           leaf disable {
71092             tailf:info "Graceful restart disable";
71093             description
71094               "Graceful restart disable";
71095             type empty;
71096           }
71097           container helper {
71098             tailf:info "helper support";
71099             description
71100               "helper support";
71101             presence "true";
71102             leaf disable {
71103               tailf:info "disable helper support";
71104               description
71105                 "disable helper support";
71106               type empty;
71107             }
71108             leaf strict-lsa-checking {
71109               tailf:info "enable helper strict LSA checking";
71110               description
71111                 "enable helper strict LSA checking";
71112               type empty;
71113             }
71114           }
71115           leaf restart-interval {
71116             tailf:info "Graceful restart interval";
71117             description
71118               "Graceful restart interval";
71119             type uint16 {
71120               tailf:info "<1-1800>;;Maximum route lifetime following restart, in seconds";
71121             }
71122           }
71123         }
71124         container ignore {
71125           tailf:info "Do not complain about specific event";
71126           description
71127             "Do not complain about specific event";
71128           container lsa {
71129             tailf:info "Do not complain upon receiving LSA of the specified type";
71130             description
71131               "Do not complain upon receiving LSA of the specified type";
71132             leaf mospf {
71133               tailf:info "MOSPF Type 6 LSA";
71134               description
71135                 "MOSPF Type 6 LSA";
71136               type empty;
71137             }
71138           }
71139         }
71140         leaf ispf {
71141           tailf:info "Enable incremental SPF computation";
71142           description
71143             "Enable incremental SPF computation";
71144           tailf:cli-full-command;
71145           type empty;
71146         }
71147         container limit {
71148           tailf:info "Limit a specific OSPF feature";
71149           description
71150             "Limit a specific OSPF feature";
71151           tailf:cli-compact-syntax;
71152           container retransmissions {
71153             tailf:info "LS update, DBD, and LS request retransmissions";
71154             description
71155               "LS update, DBD, and LS request retransmissions";
71156             leaf non-dc {
71157               tailf:info "Non-demand-circuit retransmissions";
71158               description
71159                 "Non-demand-circuit retransmissions";
71160               type limit-dc-non-dc-type;
71161             }
71162             leaf dc {
71163               tailf:info "Demand circuit retransmissions";
71164               description
71165                 "Demand circuit retransmissions";
71166               type limit-dc-non-dc-type;
71167             }
71168           }
71169         }
71170         container local-rib-criteria {
71171           tailf:info "Enable or disable usage of local RIB as route criteria";
71172           description
71173             "Enable or disable usage of local RIB as route criteria";
71174           tailf:cli-compact-syntax;
71175           leaf forwarding-address {
71176             tailf:info "Local RIB used to validate external/NSSA forwarding addresses";
71177             description
71178               "Local RIB used to validate external/NSSA forwarding addresses";
71179             type empty;
71180           }
71181           leaf inter-area-summary {
71182             tailf:info "Local RIB used as criteria for inter-area summaries";
71183             description
71184               "Local RIB used as criteria for inter-area summaries";
71185             type empty;
71186           }
71187           leaf nssa-translation {
71188             tailf:info "Local RIB used as criteria for NSSA translation";
71189             description
71190               "Local RIB used as criteria for NSSA translation";
71191             type empty;
71192           }
71193         }
71194         container microloop {
71195           tailf:info "Traffic microloop control parameters";
71196           description
71197             "Traffic microloop control parameters";
71198           container avoidance {
71199             tailf:info "Traffic microloop avoidance parameters";
71200             description
71201               "Traffic microloop avoidance parameters";
71202             presence "true";
71203             leaf disable {
71204               tailf:info "Microloop avoidance auto-enable prohibited";
71205               description
71206                 "Microloop avoidance auto-enable prohibited";
71207               tailf:cli-full-command;
71208               type empty;
71209             }
71210             leaf protected {
71211               tailf:info "Microloop avoidance for protected prefixes only";
71212               description
71213                 "Microloop avoidance for protected prefixes only";
71214               tailf:cli-full-command;
71215               type empty;
71216             }
71217             leaf rib-update-delay {
71218               tailf:info "Delay before updating the RIB";
71219               description
71220                 "Delay before updating the RIB";
71221               tailf:cli-full-command;
71222               type uint32 {
71223                 tailf:info "<1-600000>;;RIB update delay in msec";
71224                 range "1..600000";
71225               }
71226             }
71227           }
71228         }
71229         container mpls {
71230           tailf:info "Configure MPLS routing protocol parameters";
71231           description
71232             "Configure MPLS routing protocol parameters";
71233           container ldp {
71234             tailf:info "routing protocol commands for MPLS LDP";
71235             description
71236               "routing protocol commands for MPLS LDP";
71237             container autoconfig {
71238               tailf:info "Configure LDP automatic configuration";
71239               description
71240                 "Configure LDP automatic configuration";
71241               presence "Configure LDP automatic configuration";
71242               leaf area {
71243                 tailf:info "Configure an OSPF area to run MPLS LDP";
71244                 description
71245                   "Configure an OSPF area to run MPLS LDP";
71246                 type ospf-area-type;
71247               }
71248             }
71249             container sync {
71250               tailf:info "Configure LDP-IGP Synchronization";
71251               description
71252                 "Configure LDP-IGP Synchronization";
71253               presence "Configure LDP-IGP Synchronization";
71254             }
71255           }
71256           container traffic-eng {
71257             tailf:info "routing protocol commands for MPLS Traffic Engineering";
71258             description
71259               "routing protocol commands for MPLS Traffic Engineering";
71260             tailf:cli-compact-syntax;
71261             leaf multicast-intact {
71262               tailf:info "MPLS TE and PIM interaction";
71263               description
71264                 "MPLS TE and PIM interaction";
71265               tailf:cli-full-command;
71266               type empty;
71267             }
71268             leaf area {
71269               tailf:info "configure an ospf area to run MPLS Traffic Engineering";
71270               description
71271                 "configure an ospf area to run MPLS Traffic Engineering";
71272               tailf:cli-full-command;
71273               type ospf-area-type;
71274             }
71275             container autoroute-exclude {
71276               tailf:info "MPLS TE autoroute exclude";
71277               description
71278                 "MPLS TE autoroute exclude";
71279               leaf prefix-list {
71280                 tailf:info "Filter prefixes";
71281                 description
71282                   "Filter prefixes";
71283                 type string {
71284                   tailf:info "WORD  Name of an IP prefix-list";
71285                 }
71286               }
71287             }
71288             container interface {
71289               tailf:info "MPLS TE interface configuration for this OSPF process";
71290               description
71291                 "MPLS TE interface configuration for this OSPF process";
71292               tailf:cli-sequence-commands;
71293               tailf:cli-compact-syntax;
71294               leaf name {
71295                 tailf:cli-drop-node-name;
71296                 tailf:cli-incomplete-command;
71297                 type string {
71298                   tailf:info "WORD;;Interface name";
71299                 }
71300               }
71301               leaf id {
71302                 tailf:cli-drop-node-name;
71303                 tailf:cli-optional-in-sequence;
71304                 type uint32;
71305               }
71306               leaf area {
71307                 tailf:info "advertise MPLS TE information for this interface into area";
71308                 description
71309                   "advertise MPLS TE information for this interface into area";
71310                 type uint32 {
71311                   tailf:info "<0-0>;;OSPF area ID as a decimal value";
71312                 }
71313               }
71314             }
71315             container mesh-group-container {
71316               tailf:cli-drop-node-name;
71317               tailf:cli-sequence-commands;
71318               tailf:cli-compact-syntax;
71319               leaf mesh-group {
71320                 tailf:info "Traffic Engineering Mesh-Group advertisement";
71321                 description
71322                   "Traffic Engineering Mesh-Group advertisement";
71323                 tailf:cli-incomplete-command;
71324                 type uint32 {
71325                   range "0 .. 4294967295";
71326                   tailf:info "<0-4294967295>;;Mesh Group Id";
71327                 }
71328               }
71329               leaf interface {
71330                 tailf:info "Interface";
71331                 description
71332                   "Interface";
71333                 tailf:cli-incomplete-command;
71334                 tailf:cli-drop-node-name;
71335                 type string {
71336                   tailf:info "WORD;;Interface name";
71337                 }
71338               }
71339               leaf id {
71340                 tailf:cli-drop-node-name;
71341                 tailf:cli-optional-in-sequence;
71342                 type uint32;
71343               }
71344               list area {
71345                 tailf:info "configure flooding scope as area";
71346                 description
71347                   "configure flooding scope as area";
71348                 tailf:cli-suppress-mode;
71349                 tailf:cli-delete-when-empty;
71350                 key "id";
71351                 leaf id {
71352                   tailf:cli-suppress-range;
71353                   type ospf-area-type;
71354                 }
71355               }
71356             }
71357             container router-id {
71358               tailf:info "Traffic Engineering stable IP address for system";
71359               description
71360                 "Traffic Engineering stable IP address for system";
71361               tailf:cli-sequence-commands;
71362               tailf:cli-compact-syntax;
71363               leaf interface {
71364                 tailf:info "Interface";
71365                 description
71366                   "Interface";
71367                 tailf:cli-drop-node-name;
71368                 type string {
71369                   tailf:info "WORD;;Interface name";
71370                 }
71371               }
71372               leaf id {
71373                 tailf:cli-drop-node-name;
71374                 tailf:cli-optional-in-sequence;
71375                 type uint32;
71376               }
71377             }
71378           }
71379         }
71380         list neighbor {
71381           tailf:info "Specify a neighbor router";
71382           description
71383             "Specify a neighbor router";
71384           tailf:cli-suppress-mode;
71385           tailf:cli-delete-when-empty;
71386           key "ip";
71387           leaf ip {
71388             type inet:ipv4-address {
71389               tailf:info "A.B.C.D;;Neighbor address";
71390             }
71391           }
71392           leaf cost {
71393             tailf:info "OSPF cost for point-to-multipoint neighbor";
71394             description
71395               "OSPF cost for point-to-multipoint neighbor";
71396             type uint32 {
71397               range "1 .. 65535";
71398               tailf:info "<1-65535>;;metric";
71399             }
71400           }
71401           container database-filter {
71402             tailf:info "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor";
71403             description
71404               "Filter OSPF LSA during synchronization and flooding for point-to-multipoint neighbor";
71405             tailf:cli-flatten-container;
71406             container all {
71407               tailf:info "Filter all LSA";
71408               description
71409                 "Filter all LSA";
71410               tailf:cli-compact-syntax;
71411               tailf:cli-flatten-container;
71412               leaf out {
71413                 tailf:info "Outgoing LSA";
71414                 description
71415                   "Outgoing LSA";
71416                 type empty;
71417               }
71418             }
71419           }
71420           leaf poll-interval {
71421             tailf:info "OSPF dead-router polling interval";
71422             description
71423               "OSPF dead-router polling interval";
71424             type uint32 {
71425               range "0 .. 65535";
71426               tailf:info "<0-65535>;;Seconds";
71427             }
71428           }
71429           leaf priority {
71430             tailf:info "OSPF priority of non-broadcast neighbor";
71431             description
71432               "OSPF priority of non-broadcast neighbor";
71433             type uint32 {
71434               range "0 .. 255";
71435               tailf:info "<0-255>;;Priority";
71436             }
71437           }
71438         }
71439         list network {
71440           tailf:info "Enable routing on an IP network";
71441           description
71442             "Enable routing on an IP network";
71443           tailf:cli-incomplete-command;
71444           tailf:cli-suppress-mode;
71445           tailf:cli-delete-when-empty;
71446           key "ip mask";
71447           leaf ip {
71448             type inet:ipv4-address {
71449               tailf:info "A.B.C.D;;Network number";
71450             }
71451           }
71452           leaf mask {
71453             type inet:ipv4-address {
71454               tailf:info "A.B.C.D;;OSPF wild card bits";
71455             }
71456           }
71457           leaf area {
71458             tailf:info "Set the OSPF area ID";
71459             description
71460               "Set the OSPF area ID";
71461             type ospf-area-type;
71462           }
71463         }
71464         container nsf {
71465           tailf:info "Non-stop forwarding";
71466           description
71467             "Non-stop forwarding";
71468           presence "true";
71469           container cisco {
71470             tailf:info "Cisco Non-stop forwarding";
71471             description
71472               "Cisco Non-stop forwarding";
71473             presence "true";
71474             container helper {
71475               tailf:info "helper support";
71476               description
71477                 "helper support";
71478               presence "helper support";
71479               leaf disable {
71480                 tailf:cli-reset-container;
71481                 tailf:info "disable helper support";
71482                 description
71483                   "disable helper support";
71484                 type empty;
71485               }
71486             }
71487           }
71488           container ietf {
71489             tailf:info "IETF graceful restart";
71490             description
71491               "IETF graceful restart";
71492             container helper {
71493               tailf:info "helper support";
71494               description
71495                 "helper support";
71496               presence "helper support";
71497               leaf disable {
71498                 tailf:cli-reset-container;
71499                 tailf:cli-delete-container-on-delete;
71500                 tailf:info "disable helper support";
71501                 description
71502                   "disable helper support";
71503                 type empty;
71504               }
71505               leaf strict-lsa-checking {
71506                 tailf:info "enable helper strict LSA checking";
71507                 description
71508                   "enable helper strict LSA checking";
71509                 type empty;
71510               }
71511             }
71512           }
71513         }
71514         container prefix-priority {
71515           tailf:info "OSPF prefix priority";
71516           description
71517             "OSPF prefix priority";
71518           tailf:cli-compact-syntax;
71519           tailf:cli-sequence-commands;
71520           leaf high {
71521             tailf:info "High prefix priority";
71522             description
71523               "High prefix priority";
71524             type empty;
71525           }
71526           leaf route-map {
71527             tailf:info "Prefix priority selection by route-map";
71528             description
71529               "Prefix priority selection by route-map";
71530             type string {
71531               tailf:info "WORD;;Route-map name";
71532             }
71533           }
71534         }
71535         leaf prefix-suppression {
71536           tailf:info "OSPF prefix suppression";
71537           description
71538             "OSPF prefix suppression";
71539           tailf:cli-full-command;
71540           type empty;
71541         }
71542         leaf priority {
71543           tailf:info "OSPF topology priority";
71544           description
71545             "OSPF topology priority";
71546           type uint8 {
71547             tailf:info "<0-127>;;OSPF topology priority";
71548             range "0..127";
71549           }
71550         }
71551         container process-min-time {
71552           tailf:info "Percentage of quantum to be used before releasing CPU";
71553           description
71554             "Percentage of quantum to be used before releasing CPU";
71555           leaf percent {
71556             tailf:info "percent";
71557             description
71558               "percent";
71559             type uint32 {
71560               range "1 .. 100";
71561               tailf:info "<1-100>;;Minimum CPU quantum";
71562             }
71563           }
71564         }
71565         leaf shutdown {
71566           tailf:info "Shutdown the OSPF protocol under the current instance";
71567           description
71568             "Shutdown the OSPF protocol under the current instance";
71569           tailf:cli-boolean-no;
71570           type boolean;
71571         }
71572         uses ospf-snmp-grouping;
71573         list summary-address {
71574           tailf:info "Configure IP address summaries";
71575           description
71576             "Configure IP address summaries";
71577           tailf:cli-suppress-mode;
71578           tailf:cli-delete-when-empty;
71579           key "ip wildcard";
71580           leaf ip {
71581             type inet:ipv4-address {
71582               tailf:info "A.B.C.D;;IP summary address";
71583             }
71584           }
71585           leaf wildcard {
71586             type inet:ipv4-address {
71587               tailf:info "A.B.C.D;;Summary mask";
71588             }
71589           }
71590           choice tag-no-advertise-choice {
71591             leaf nssa-only {
71592               tailf:info "Limit summary to NSSA areas";
71593               description
71594                 "Limit summary to NSSA areas";
71595               type empty;
71596             }
71597             leaf tag {
71598               tailf:info "Set tag";
71599               description
71600                 "Set tag";
71601               tailf:cli-full-command;
71602               type uint32 {
71603                 range "0 .. 4294967295";
71604                 tailf:info "<0-4294967295>;;32-bit tag value";
71605               }
71606             }
71607             leaf not-advertise {
71608               tailf:info "Do not advertise when translating OSPF type-7 LSA";
71609               description
71610                 "Do not advertise when translating OSPF type-7 LSA";
71611               type empty;
71612               tailf:cli-full-command;
71613             }
71614           }
71615         }
71616       }
71617       list eigrp {
71618         tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
71619         description
71620           "Enhanced Interior Gateway Routing Protocol (EIGRP)";
71621         tailf:cli-mode-name "config-router";
71622         key "id";
71623         leaf id {
71624           tailf:info "Autonomous System ID";
71625           description
71626             "Autonomous System ID";
71627           type union {
71628             type uint16 {
71629               tailf:info "<1..65535>;;ID";
71630               range "1..65535";
71631             }
71632             type string {
71633               tailf:info "WORD;;EIGRP Virtual-Instance Name";
71634             }
71635           }
71636         }
71637         container address-family {
71638           tailf:info "Enter Address Family command mode";
71639           description
71640             "Enter Address Family command mode";
71641           container ipv4 {
71642             tailf:info "Address Family IPv4";
71643             description
71644               "Address Family IPv4";
71645             list af-list {
71646               tailf:cli-drop-node-name;
71647               description
71648                 "Specify Address-Family Autonomous System Number";
71649               tailf:cli-mode-name "config-router-af";
71650               tailf:cli-exit-command "exit-address-family";
71651               tailf:cli-full-command;
71652               key "autonomous-system";
71653               leaf autonomous-system {
71654                 tailf:cli-expose-key-name;
71655                 tailf:info "Specify Address-Family Autonomous System Number";
71656                 description
71657                   "Specify Address-Family Autonomous System Number";
71658                 type uint16 {
71659                   tailf:info "<1-65535>;;Autonomous System";
71660                 }
71661               }
71662               leaf unicast-multicast {
71663                 tailf:cli-drop-node-name;
71664                 tailf:cli-prefix-key;
71665                 type enumeration {
71666                   enum "unicast" {
71667                     tailf:info "Address Family Unicast";
71668                   }
71669                   enum "multicast" {
71670                     tailf:info "Address Family Multicast";
71671                   }
71672                 }
71673               }
71674               leaf vrf {
71675                 tailf:cli-prefix-key;
71676                 tailf:info "Specify a specific virtual routing/forwarding instance";
71677                 description
71678                   "Virtual Routing/Forwarding instance name";
71679                 type string;
71680               }
71681               list af-interface {
71682                 tailf:info "Enter Address Family interface configuration";
71683                 description
71684                   "Enter Address Family interface configuration";
71685                 tailf:cli-mode-name "config-router-af-interface";
71686                 tailf:cli-exit-command "exit-af-interface";
71687                 key "name";
71688                 leaf name {
71689                   type string;
71690                 }
71691                 leaf hello-interval {
71692                   tailf:info "Configures hello interval";
71693                   description
71694                     "Configures hello interval";
71695                   type uint16 {
71696                     tailf:info "<1-65535>;;Seconds between hello transmissions";
71697                   }
71698                 }
71699                 leaf hold-time {
71700                   tailf:info "Configures hold time";
71701                   description
71702                     "Configures hold time";
71703                   type uint16 {
71704                     tailf:info "<1-65535>;;Seconds before neighbor is considered down";
71705                   }
71706                 }
71707                 leaf passive-interface {
71708                   tailf:info "Suppress address updates on an interface";
71709                   description
71710                     "Suppress address updates on an interface";
71711                   type empty;
71712                 }
71713                 leaf split-horizon {
71714                   tailf:info "Perform split horizon";
71715                   description
71716                     "Perform split horizon";
71717                   tailf:cli-boolean-no;
71718                   tailf:cli-trim-default;
71719                   type boolean;
71720                 }
71721                 container authentication {
71722                   tailf:info "authentication subcommands";
71723                   description
71724                     "authentication subcommands";
71725                   container mode {
71726                     tailf:info "authentication mode";
71727                     description
71728                       "authentication mode";
71729                     leaf md5 {
71730                       tailf:info "Keyed message digest";
71731                       description
71732                         "Keyed message digest";
71733                       tailf:cli-full-command;
71734                       type empty;
71735                     }
71736                     container hmac-sha-256 {
71737                       tailf:info "HMAC-SHA-256 Authentication";
71738                       description
71739                         "HMAC-SHA-256 Authentication";
71740                       tailf:cli-compact-syntax;
71741                       leaf auth-type {
71742                         tailf:cli-drop-node-name;
71743                         type uint8 {
71744                           tailf:info "<0-7>;;Encryption type (0 for not yet encrypted, 7 for proprietary)";
71745                         }
71746                       }
71747                       leaf auth-key {
71748                         tailf:cli-drop-node-name;
71749                         tailf:cli-full-command;
71750                         tailf:cli-multi-value;
71751                         type string {
71752                           tailf:info "WORD;;Authentication key (8 chars)";
71753                         }
71754                       }
71755                     }
71756                   }
71757                   leaf key-chain {
71758                     tailf:info "key-chain";
71759                     description
71760                       "key-chain";
71761                     tailf:cli-full-command;
71762                     type string {
71763                       tailf:info "WORD;;name of key-chain";
71764                     }
71765                   }
71766                 }
71767                 container summary-address {
71768                   tailf:cli-sequence-commands;
71769                   tailf:cli-compact-syntax;
71770                   leaf address {
71771                     tailf:cli-drop-node-name;
71772                     type inet:ipv4-address;
71773                   }
71774                   leaf mask {
71775                     tailf:cli-drop-node-name;
71776                     type inet:ipv4-address;
71777                   }
71778                 }
71779               }
71780               list topology {
71781                 tailf:info "Topology configuration mode";
71782                 description
71783                   "Topology configuration mode";
71784                 tailf:cli-mode-name "config-router-af-topology";
71785                 tailf:cli-exit-command "exit-af-topology";
71786                 key "name";
71787                 leaf name {
71788                   type string {
71789                     tailf:info "WORD;;Topology name";
71790                   }
71791                 }
71792                 container distribute-list {
71793                   tailf:info "Filter entries in eigrp updates";
71794                   description
71795                     "Filter entries in eigrp updates";
71796                   list route-map {
71797                     tailf:info "Filter prefixes based on the route-map";
71798                     description
71799                       "Filter prefixes based on the route-map";
71800                     tailf:cli-suppress-mode;
71801                     key "name";
71802                     leaf name {
71803                       type string {
71804                         tailf:info "WORD;;route-map name";
71805                       }
71806                     }
71807                     leaf in {
71808                       tailf:info "Filter incoming service updates";
71809                       description
71810                         "Filter incoming service updates";
71811                       type string {
71812                         tailf:info "WORD;;Interface name";
71813                       }
71814                     }
71815                     leaf out {
71816                       tailf:info "Filter outgoing service updates";
71817                       description
71818                         "Filter outgoing service updates";
71819                       type string {
71820                         tailf:info "WORD;;Interface name";
71821                       }
71822                     }
71823                   }
71824                 }
71825               }
71826               container network {
71827                 tailf:info "Enable routing on an IP network";
71828                 description
71829                   "Enable routing on an IP network";
71830                 tailf:cli-sequence-commands;
71831                 tailf:cli-compact-syntax;
71832                 leaf number {
71833                   description
71834                     "Network number";
71835                   tailf:cli-drop-node-name;
71836                   type inet:ipv4-address {
71837                     tailf:info "A.B.C.D;;Network number";
71838                   }
71839                 }
71840                 leaf wild-card {
71841                   description
71842                     "EIGRP wild card bits";
71843                   tailf:cli-drop-node-name;
71844                   type inet:ipv4-address {
71845                     tailf:info "A.B.C.D;;EIGRP wild card bits";
71846                   }
71847                 }
71848               }
71849               container eigrp {
71850                 tailf:info "EIGRP Address Family specific commands";
71851                 description
71852                   "EIGRP Address Family specific commands";
71853                 leaf router-id {
71854                   tailf:info "router id for this EIGRP process";
71855                   description
71856                     "router id for this EIGRP process";
71857                   tailf:cli-full-command;
71858                   type inet:ipv4-address {
71859                     tailf:info "A.B.C.D;;EIGRP Router-ID in IP address format";
71860                   }
71861                 }
71862                 container stub {
71863                   tailf:info "Set address-family in stubbed mode";
71864                   description
71865                     "Set address-family in stubbed mode";
71866                   tailf:cli-compact-syntax;
71867                   presence "true";
71868                   leaf connected {
71869                     tailf:info "Do advertise connected routes";
71870                     description
71871                       "Do advertise connected routes";
71872                     type empty;
71873                   }
71874                   leaf leak-map {
71875                     tailf:info "Allow dynamic prefixes based on the leak-map";
71876                     description
71877                       "Allow dynamic prefixes based on the leak-map";
71878                     tailf:cli-full-command;
71879                     type string {
71880                       tailf:info "WORD;;leak-map name";
71881                     }
71882                   }
71883                   leaf receive-only {
71884                     tailf:info "Set receive only neighbor";
71885                     description
71886                       "Set receive only neighbor";
71887                     type empty;
71888                   }
71889                   leaf redistributed {
71890                     tailf:info "Do advertise redistributed routes";
71891                     description
71892                       "Do advertise redistributed routes";
71893                     type empty;
71894                   }
71895                   leaf static {
71896                     tailf:info "Do advertise static routes";
71897                     description
71898                       "Do advertise static routes";
71899                     type empty;
71900                   }
71901                   leaf summary {
71902                     tailf:info "Do advertise summary routes";
71903                     description
71904                       "Do advertise summary routes";
71905                     type empty;
71906                   }
71907                 }
71908               }
71909               leaf nsf {
71910                 tailf:info "Non-stop forwarding";
71911                 description
71912                   "Non-stop forwarding";
71913                 tailf:cli-full-command;
71914                 type empty;
71915               }
71916             }
71917           }
71918         }
71919         leaf auto-summary {
71920           tailf:info "Enable automatic network number summarization";
71921           description
71922             "Enable automatic network number summarization";
71923           type empty;
71924         }
71925         container bfd {
71926           tailf:info "BFD configuration commands";
71927           description
71928             "BFD configuration commands";
71929           leaf all-interfaces {
71930             tailf:info "Enable BFD on all interfaces";
71931             description
71932               "Enable BFD on all interfaces";
71933             type empty;
71934           }
71935           container interface {
71936             tailf:info "Enable BFD on specific interface";
71937             description
71938               "Enable BFD on specific interface";
71939             tailf:cli-compact-syntax;
71940             tailf:cli-flatten-container;
71941             uses interface-grouping;
71942           }
71943         }
71944         container default-information {
71945           tailf:info "Control distribution of default information";
71946           description
71947             "Control distribution of default information";
71948           container in {
71949             tailf:info "Accept input default routing information";
71950             description
71951               "Accept input default routing information";
71952             presence "true";
71953             leaf sa-num {
71954               tailf:info "A standard expanded IP access list number";
71955               description
71956                 "A standard expanded IP access list number";
71957               tailf:cli-drop-node-name;
71958               type uint16 {
71959                 range "1300..1999";
71960               }
71961             }
71962             leaf sa-name {
71963               tailf:info "Standard Access-list name";
71964               description
71965                 "Standard Access-list name";
71966               tailf:cli-drop-node-name;
71967               type string;
71968             }
71969           }
71970           container out {
71971             tailf:info "Accept output default routing information";
71972             description
71973               "Accept output default routing information";
71974             presence "true";
71975             leaf sa-out-num {
71976               tailf:info "A standard expanded IP access list number";
71977               description
71978                 "A standard expanded IP access list number";
71979               tailf:cli-drop-node-name;
71980               type uint16 {
71981                 range "1300..1999";
71982               }
71983             }
71984             leaf sa-out-name {
71985               tailf:info "Standard Access-list name";
71986               description
71987                 "Standard Access-list name";
71988               tailf:cli-drop-node-name;
71989               type string;
71990             }
71991           }
71992         }
71993         container default-metric {
71994           tailf:info "Set metric of redistributed routes";
71995           description
71996             "Set metric of redistributed routes";
71997           list dm-rdr {
71998             tailf:cli-drop-node-name;
71999             tailf:cli-suppress-mode;
72000             key "dm-rdr";
72001             leaf dm-rdr {
72002               tailf:info "Bandwidth in Kbits per second";
72003               description
72004                 "Bandwidth in Kbits per second";
72005               type uint32 {
72006                 range "1..4294967295";
72007               }
72008             }
72009             list dm-rdr0 {
72010               tailf:cli-drop-node-name;
72011               tailf:cli-suppress-mode;
72012               key "dm-rdr0";
72013               leaf dm-rdr0 {
72014                 tailf:info "delay metric in 10 microsecond units";
72015                 description
72016                   "delay metric in 10 microsecond units";
72017                 type uint32 {
72018                   range "0..4294967295";
72019                 }
72020               }
72021               leaf dm-rdr-pct {
72022                 tailf:info "Reliability metric where 255 is 100% reliable";
72023                 description
72024                   "Reliability metric where 255 is 100% reliable";
72025                 tailf:cli-drop-node-name;
72026                 type uint8 {
72027                   range "0..255";
72028                 }
72029               }
72030             }
72031           }
72032         }
72033         container distance {
72034           tailf:info "Define an administrative distance";
72035           description
72036             "Define an administrative distance";
72037           list rad-dis {
72038             tailf:cli-drop-node-name;
72039             tailf:cli-suppress-mode;
72040             key "rad-dis";
72041             leaf rad-dis {
72042               tailf:info "Set route administrative distance";
72043               description
72044                 "Set route administrative distance";
72045               type uint8 {
72046                 range "1..255";
72047               }
72048             }
72049             list dis-ipv4 {
72050               tailf:cli-drop-node-name;
72051               tailf:cli-suppress-mode;
72052               key "dis-ipv4";
72053               leaf dis-ipv4 {
72054                 tailf:info "IP Source address";
72055                 description
72056                   "IP Source address";
72057                 type inet:ipv4-address;
72058               }
72059               leaf dis-ipv40 {
72060                 tailf:info "Wildcard bits";
72061                 description
72062                   "Wildcard bits";
72063                 tailf:cli-drop-node-name;
72064                 type inet:ipv4-address;
72065               }
72066             }
72067           }
72068           container eigrp {
72069             tailf:info "Set distance for internal and external routes";
72070             description
72071               "Set distance for internal and external routes";
72072             list di-rt {
72073               tailf:cli-drop-node-name;
72074               tailf:cli-suppress-mode;
72075               key "di-rt";
72076               leaf di-rt {
72077                 tailf:info "Distance for internal routes";
72078                 description
72079                   "Distance for internal routes";
72080                 type uint8 {
72081                   range "1..255";
72082                 }
72083               }
72084               leaf di-rt0 {
72085                 tailf:info "Distance for external routes";
72086                 description
72087                   "Distance for external routes";
72088                 tailf:cli-drop-node-name;
72089                 type uint8 {
72090                   range "1..255";
72091                 }
72092               }
72093             }
72094           }
72095         }
72096         container distribute-list {
72097           tailf:info "Filter entries in eigrp updates";
72098           description
72099             "Filter entries in eigrp updates";
72100           list eig-filt {
72101             tailf:cli-drop-node-name;
72102             tailf:cli-suppress-mode;
72103             key "eig-filt";
72104             leaf eig-filt {
72105               tailf:info "IP expanded access list number";
72106               description
72107                 "IP expanded access list number";
72108               type uint16 {
72109                 range "1300..2699";
72110               }
72111             }
72112             container in {
72113               tailf:info "Filter incoming service updates";
72114               description
72115                 "Filter incoming service updates";
72116               presence "true";
72117               leaf interface_name {
72118                 tailf:info "Interface name";
72119                 description
72120                   "Interface name";
72121                 tailf:cli-drop-node-name;
72122                 type string;
72123               }
72124             }
72125             container out {
72126               tailf:info "Filter outgoing service updates";
72127               description
72128                 "Filter outgoing service updates";
72129               presence "true";
72130               leaf interface_name {
72131                 tailf:info "Interface name";
72132                 description
72133                   "Interface name";
72134                 tailf:cli-drop-node-name;
72135                 type string;
72136               }
72137             }
72138           }
72139           list al-num {
72140             tailf:cli-drop-node-name;
72141             tailf:cli-suppress-mode;
72142             key "al-num";
72143             leaf al-num {
72144               tailf:info "Access-list name";
72145               description
72146                 "Access-list name";
72147               type string;
72148             }
72149             container in {
72150               tailf:info "Filter incoming service updates";
72151               description
72152                 "Filter incoming service updates";
72153               presence "true";
72154               leaf interface_name {
72155                 tailf:info "Interface name";
72156                 description
72157                   "Interface name";
72158                 tailf:cli-drop-node-name;
72159                 type string;
72160               }
72161             }
72162             container out {
72163               tailf:info "Filter outgoing service updates";
72164               description
72165                 "Filter outgoing service updates";
72166               presence "true";
72167               leaf interface_name {
72168                 tailf:info "Interface name";
72169                 description
72170                   "Interface name";
72171                 tailf:cli-drop-node-name;
72172                 type string;
72173               }
72174             }
72175           }
72176           container gateway {
72177             tailf:info "Filtering incoming address updates based on gateway";
72178             description
72179               "Filtering incoming address updates based on gateway";
72180             list gw-list {
72181               tailf:cli-drop-node-name;
72182               tailf:cli-suppress-mode;
72183               key "gw-list";
72184               leaf gw-list {
72185                 tailf:info "Name of an IP prefix-list";
72186                 description
72187                   "Name of an IP prefix-list";
72188                 type string;
72189               }
72190               leaf in {
72191                 tailf:info "Filter incoming service updates";
72192                 description
72193                   "Filter incoming service updates";
72194                 type empty;
72195               }
72196               leaf out {
72197                 tailf:info "Filter outgoing service updates";
72198                 description
72199                   "Filter outgoing service updates";
72200                 type empty;
72201               }
72202             }
72203           }
72204           container prefix {
72205             tailf:info "Filter prefixes in address updates";
72206             description
72207               "Filter prefixes in address updates";
72208             list pl-name {
72209               tailf:cli-drop-node-name;
72210               tailf:cli-suppress-mode;
72211               key "pl-name";
72212               leaf pl-name {
72213                 tailf:info "Name of an IP prefix-list";
72214                 description
72215                   "Name of an IP prefix-list";
72216                 type string;
72217               }
72218               leaf gateway {
72219                 tailf:info "Filtering incoming address updates based on gateway";
72220                 description
72221                   "Filtering incoming address updates based on gateway";
72222                 type empty;
72223               }
72224               leaf in {
72225                 tailf:info "Filter incoming service updates";
72226                 description
72227                   "Filter incoming service updates";
72228                 type empty;
72229               }
72230               leaf out {
72231                 tailf:info "Filter outgoing service updates";
72232                 description
72233                   "Filter outgoing service updates";
72234                 type empty;
72235               }
72236             }
72237           }
72238           container route-map {
72239             tailf:info "Filter prefixes based on the route-map";
72240             description
72241               "Filter prefixes based on the route-map";
72242             list rmap-name {
72243               tailf:cli-drop-node-name;
72244               tailf:cli-suppress-mode;
72245               key "rmap-name";
72246               leaf rmap-name {
72247                 tailf:info "route-map name";
72248                 description
72249                   "route-map name";
72250                 type string;
72251               }
72252               leaf in {
72253                 tailf:info "Filter incoming service updates";
72254                 description
72255                   "Filter incoming service updates";
72256                 type empty;
72257               }
72258               leaf out {
72259                 tailf:info "Filter outgoing service updates";
72260                 description
72261                   "Filter outgoing service updates";
72262                 type empty;
72263               }
72264             }
72265           }
72266         }
72267         container eigrp {
72268           tailf:info "EIGRP specific commands";
72269           description
72270             "EIGRP specific commands";
72271           leaf event-log-size {
72272             tailf:info "Set EIGRP maximum event log entries";
72273             description
72274               "Max event log entries";
72275             type uint32 {
72276               range "0..12356402";
72277             }
72278           }
72279           leaf log-neighbor-changes {
72280             tailf:info "Enable/Disable EIGRP neighbor logging";
72281             description
72282               "Enable/Disable EIGRP neighbor logging";
72283             type empty;
72284           }
72285           container log-neighbor-warnings {
72286             tailf:info "Enable/Disable EIGRP neighbor warnings";
72287             description
72288               "Enable/Disable EIGRP neighbor warnings";
72289             presence "true";
72290             leaf warn-sec {
72291               tailf:info "Neighbor warning interval in seconds";
72292               description
72293                 "Neighbor warning interval in seconds";
72294               tailf:cli-drop-node-name;
72295               type uint16 {
72296                 range "1..65535";
72297               }
72298             }
72299           }
72300           leaf router-id {
72301             tailf:info "router id for this EIGRP process";
72302             description
72303               "EIGRP Router-ID in IP address format";
72304             type inet:ipv4-address;
72305           }
72306           container stub {
72307             tailf:info "Set address-family in stubbed mode";
72308             description
72309               "Set address-family in stubbed mode";
72310             presence "true";
72311             container connected {
72312               tailf:info "Do advertise connected routes";
72313               description
72314                 "Do advertise connected routes";
72315               presence "true";
72316               leaf leak-map {
72317                 tailf:info "Allow dynamic prefixes based on the leak-map";
72318                 description
72319                   "Allow dynamic prefixes based on the leak-map";
72320                 type empty;
72321               }
72322               leaf redistributed {
72323                 tailf:info "Do advertise redistributed routes";
72324                 description
72325                   "Do advertise redistributed routes";
72326                 type empty;
72327               }
72328               leaf static {
72329                 tailf:info "Do advertise static routes";
72330                 description
72331                   "Do advertise static routes";
72332                 type empty;
72333               }
72334               leaf summary {
72335                 tailf:info "Do advertise summary routes";
72336                 description
72337                   "Do advertise summary routes";
72338                 type empty;
72339               }
72340             }
72341             leaf leak-map {
72342               tailf:info "Allow dynamic prefixes based on the leak-map";
72343               description
72344                 "leak-map name";
72345               type string;
72346             }
72347             leaf receive-only {
72348               tailf:info "Set receive only neighbor";
72349               description
72350                 "Set receive only neighbor";
72351               type empty;
72352             }
72353             container redistributed {
72354               tailf:info "Do advertise redistributed routes";
72355               description
72356                 "Do advertise redistributed routes";
72357               presence "true";
72358               leaf connected {
72359                 tailf:info "Do advertise connected routes";
72360                 description
72361                   "Do advertise connected routes";
72362                 type empty;
72363               }
72364               leaf leak-map {
72365                 tailf:info "Allow dynamic prefixes based on the leak-map";
72366                 description
72367                   "Allow dynamic prefixes based on the leak-map";
72368                 type empty;
72369               }
72370               leaf static {
72371                 tailf:info "Do advertise static routes";
72372                 description
72373                   "Do advertise static routes";
72374                 type empty;
72375               }
72376               leaf summary {
72377                 tailf:info "Do advertise summary routes";
72378                 description
72379                   "Do advertise summary routes";
72380                 type empty;
72381               }
72382             }
72383             container static {
72384               tailf:info "Do advertise static routes";
72385               description
72386                 "Do advertise static routes";
72387               presence "true";
72388               leaf connected {
72389                 tailf:info "Do advertise connected routes";
72390                 description
72391                   "Do advertise connected routes";
72392                 type empty;
72393               }
72394               leaf leak-map {
72395                 tailf:info "Allow dynamic prefixes based on the leak-map";
72396                 description
72397                   "Allow dynamic prefixes based on the leak-map";
72398                 type empty;
72399               }
72400               leaf redistributed {
72401                 tailf:info "Do advertise redistributed routes";
72402                 description
72403                   "Do advertise redistributed routes";
72404                 type empty;
72405               }
72406               leaf summary {
72407                 tailf:info "Do advertise summary routes";
72408                 description
72409                   "Do advertise summary routes";
72410                 type empty;
72411               }
72412             }
72413             container summary {
72414               tailf:info "Do advertise summary routes";
72415               description
72416                 "Do advertise summary routes";
72417               presence "true";
72418               leaf connected {
72419                 tailf:info "Do advertise connected routes";
72420                 description
72421                   "Do advertise connected routes";
72422                 type empty;
72423               }
72424               leaf leak-map {
72425                 tailf:info "Allow dynamic prefixes based on the leak-map";
72426                 description
72427                   "Allow dynamic prefixes based on the leak-map";
72428                 type empty;
72429               }
72430               leaf redistributed {
72431                 tailf:info "Do advertise redistributed routes";
72432                 description
72433                   "Do advertise redistributed routes";
72434                 type empty;
72435               }
72436               leaf static {
72437                 tailf:info "Do advertise static routes";
72438                 description
72439                   "Do advertise static routes";
72440                 type empty;
72441               }
72442             }
72443           }
72444           leaf upgrade-cli {
72445             tailf:info "Upgrade the Classic Mode config to Named Mode";
72446             description
72447               "EIGRP Virtual-Instance Name";
72448             type string;
72449           }
72450         }
72451         leaf maximum-paths {
72452           tailf:info "Forward packets over multiple paths";
72453           description
72454             "Number of paths";
72455           type uint8 {
72456             range "1..32";
72457           }
72458         }
72459         container metric {
72460           tailf:info "Modify metrics and parameters for advertisement";
72461           description
72462             "Modify metrics and parameters for advertisement";
72463           leaf maximum-hops {
72464             tailf:info "Advertise greater than <hops> as unreachable";
72465             description
72466               "Hop count";
72467             type uint8 {
72468               range "1..255";
72469             }
72470           }
72471           leaf weights {
72472             tailf:info "Modify metric coefficients";
72473             description
72474               "Type (Only TOS 0 supported)";
72475             type uint8 {
72476               range "0..8";
72477             }
72478           }
72479         }
72480         container neighbor {
72481           tailf:info "Specify a neighbor router";
72482           description
72483             "Specify a neighbor router";
72484           list neb-ipv4 {
72485             tailf:cli-drop-node-name;
72486             tailf:cli-suppress-mode;
72487             key "neb-ipv4";
72488             leaf neb-ipv4 {
72489               tailf:info "Neighbor address";
72490               description
72491                 "Neighbor address";
72492               type inet:ipv4-address;
72493             }
72494             container interface {
72495               tailf:cli-drop-node-name;
72496               tailf:info "Specify interface for global address";
72497               description
72498                 "Specify interface for global address";
72499               tailf:cli-compact-syntax;
72500               tailf:cli-flatten-container;
72501               uses interface-grouping;
72502             }
72503           }
72504         }
72505         container network {
72506           tailf:info "Enable routing on an IP network";
72507           description
72508             "Enable routing on an IP network";
72509           list nw-ipv4 {
72510             tailf:cli-drop-node-name;
72511             tailf:cli-suppress-mode;
72512             key "nw-ipv4";
72513             leaf nw-ipv4 {
72514               tailf:info "Network number";
72515               description
72516                 "Network number";
72517               type inet:ipv4-address;
72518             }
72519             leaf nw-ipv40 {
72520               tailf:info "EIGRP wild card bits";
72521               description
72522                 "EIGRP wild card bits";
72523               tailf:cli-drop-node-name;
72524               type inet:ipv4-address;
72525             }
72526           }
72527         }
72528         leaf nsf {
72529           tailf:info "Non-stop forwarding";
72530           description
72531             "Non-stop forwarding";
72532           type empty;
72533         }
72534         container offset-list {
72535           tailf:info "Add or subtract offset from EIGRP metrics";
72536           description
72537             "Add or subtract offset from EIGRP metrics";
72538           list nsr-list {
72539             tailf:cli-drop-node-name;
72540             tailf:cli-suppress-mode;
72541             key "nsr-list";
72542             leaf nsr-list {
72543               tailf:info "Access list of networks to apply offset (extended range)";
72544               description
72545                 "Access list of networks to apply offset (extended range)";
72546               type uint16 {
72547                 range "1300..1999";
72548               }
72549             }
72550             leaf in {
72551               tailf:info "Perform offset on incoming updates";
72552               description
72553                 "Perform offset on incoming updates";
72554               type empty;
72555             }
72556             leaf out {
72557               tailf:info "Perform offset on outgoing updates";
72558               description
72559                 "Perform offset on outgoing updates";
72560               type empty;
72561             }
72562           }
72563           list ol-acl {
72564             tailf:cli-drop-node-name;
72565             tailf:cli-suppress-mode;
72566             key "ol-acl";
72567             leaf ol-acl {
72568               tailf:info "Access-list name";
72569               description
72570                 "Access-list name";
72571               type string;
72572             }
72573             leaf in {
72574               tailf:info "Perform offset on incoming updates";
72575               description
72576                 "Perform offset on incoming updates";
72577               type empty;
72578             }
72579             leaf out {
72580               tailf:info "Perform offset on outgoing updates";
72581               description
72582                 "Perform offset on outgoing updates";
72583               type empty;
72584             }
72585           }
72586         }
72587         leaf passive-interface {
72588           tailf:info "Suppress routing updates on an interface";
72589           description
72590             "Suppress routing updates on an interface";
72591           type string;
72592         }
72593         container redistribute {
72594           tailf:info "Redistribute IPv4 routes from another routing protocol";
72595           description
72596             "Redistribute IPv4 routes from another routing protocol";
72597           list bgp {
72598             tailf:info "Border Gateway Protocol (BGP)";
72599             description
72600               "Border Gateway Protocol (BGP)";
72601             tailf:cli-suppress-mode;
72602             tailf:cli-compact-syntax;
72603             key "rdr-as";
72604             leaf rdr-as {
72605               tailf:info "Autonomous system number";
72606               description
72607                 "Autonomous system number";
72608               type bgp-as-number-type;
72609             }
72610             container metric {
72611               tailf:info "Metric for redistributed routes";
72612               description
72613                 "Metric for redistributed routes";
72614               tailf:cli-flatten-container;
72615               tailf:cli-compact-syntax;
72616               tailf:cli-sequence-commands;
72617               leaf bandwith {
72618                 tailf:cli-drop-node-name;
72619                 description
72620                   "Bandwidth metric in Kbits per second";
72621                 type uint32 {
72622                   tailf:info "<1-4294967295>;;Bandwidth metric in Kbits per second";
72623                   range "1..4294967295";
72624                 }
72625               }
72626               leaf delay {
72627                 tailf:cli-drop-node-name;
72628                 description
72629                   "EIGRP delay metric, in 10 microsecond units";
72630                 type uint32 {
72631                   tailf:info "<0-4294967295>;;EIGRP delay metric, in 10 microsecond units";
72632                   range "0..4294967295";
72633                 }
72634               }
72635               leaf reliability {
72636                 tailf:cli-drop-node-name;
72637                 description
72638                   "EIGRP reliability metric where 255 is 100% reliable";
72639                 type uint8 {
72640                   tailf:info "<0-255>;;EIGRP reliability metric where 255 is 100% reliable";
72641                   range "0..255";
72642                 }
72643               }
72644               leaf Effective {
72645                 tailf:cli-drop-node-name;
72646                 description
72647                   "EIGRP Effective bandwidth metric (Loading) where 255 is 100% loaded";
72648                 type uint8 {
72649                   tailf:info "<1-255>;;EIGRP Effective bandwidth metric (Loading) where 255 is 100% loaded";
72650                   range "1..255";
72651                 }
72652               }
72653               leaf mtu {
72654                 tailf:cli-drop-node-name;
72655                 description
72656                   "EIGRP MTU of the path";
72657                 type uint16 {
72658                   tailf:info "<1-65535>;;EIGRP MTU of the path";
72659                   range "1..65535";
72660                 }
72661               }
72662             }
72663             leaf route-map {
72664               tailf:info "Route map reference";
72665               description
72666                 "Route map reference";
72667               type string {
72668                 tailf:info "WORD;;Pointer to route-map entries";
72669               }
72670             }
72671             leaf rd-LESSER_1_PERIOD_0-XX_PERIOD_YY_GREATER_ {
72672               tailf:alt-name "_LT_1.0-XX.YY_GT_";
72673               tailf:info "Autonomous system number";
72674               description
72675                 "Autonomous system number";
72676               type empty;
72677             }
72678           }
72679           container connected {
72680             tailf:info "Connected";
72681             description
72682               "Connected";
72683             presence "true";
72684             leaf metric {
72685               tailf:info "Metric for redistributed routes";
72686               description
72687                 "Metric for redistributed routes";
72688               type empty;
72689             }
72690             leaf route-map {
72691               tailf:info "Route map reference";
72692               description
72693                 "Route map reference";
72694               type empty;
72695             }
72696           }
72697           leaf eigrp {
72698             tailf:info "Enhanced Interior Gateway Routing Protocol (EIGRP)";
72699             description
72700               "Autonomous system number";
72701             type uint16 {
72702               range "1..65535";
72703             }
72704           }
72705           container isis {
72706             tailf:info "ISO IS-IS";
72707             description
72708               "ISO IS-IS";
72709             presence "true";
72710             leaf si-tag {
72711               tailf:info "ISO routing area tag";
72712               description
72713                 "ISO routing area tag";
72714               tailf:cli-drop-node-name;
72715               type string;
72716             }
72717             leaf level-1 {
72718               tailf:info "IS-IS level-1 routes only";
72719               description
72720                 "IS-IS level-1 routes only";
72721               type empty;
72722             }
72723             leaf level-1-2 {
72724               tailf:info "IS-IS level-1 and level-2 routes";
72725               description
72726                 "IS-IS level-1 and level-2 routes";
72727               type empty;
72728             }
72729             leaf level-2 {
72730               tailf:info "IS-IS level-2 routes only";
72731               description
72732                 "IS-IS level-2 routes only";
72733               type empty;
72734             }
72735             leaf metric {
72736               tailf:info "Metric for redistributed routes";
72737               description
72738                 "Metric for redistributed routes";
72739               type empty;
72740             }
72741             leaf route-map {
72742               tailf:info "Route map reference";
72743               description
72744                 "Route map reference";
72745               type empty;
72746             }
72747           }
72748           container lisp {
72749             tailf:info "Locator ID Separation Protocol (LISP)";
72750             description
72751               "Locator ID Separation Protocol (LISP)";
72752             presence "true";
72753             leaf metric {
72754               tailf:info "Metric for redistributed routes";
72755               description
72756                 "Metric for redistributed routes";
72757               type empty;
72758             }
72759             leaf route-map {
72760               tailf:info "Route map reference";
72761               description
72762                 "Route map reference";
72763               type empty;
72764             }
72765           }
72766           container mobile {
72767             tailf:info "Mobile routes";
72768             description
72769               "Mobile routes";
72770             presence "true";
72771             leaf metric {
72772               tailf:info "Metric for redistributed routes";
72773               description
72774                 "Metric for redistributed routes";
72775               type empty;
72776             }
72777             leaf route-map {
72778               tailf:info "Route map reference";
72779               description
72780                 "Route map reference";
72781               type empty;
72782             }
72783           }
72784           container odr {
72785             tailf:info "On Demand stub Routes";
72786             description
72787               "On Demand stub Routes";
72788             presence "true";
72789             leaf metric {
72790               tailf:info "Metric for redistributed routes";
72791               description
72792                 "Metric for redistributed routes";
72793               type empty;
72794             }
72795             leaf route-map {
72796               tailf:info "Route map reference";
72797               description
72798                 "Route map reference";
72799               type empty;
72800             }
72801           }
72802           leaf ospf {
72803             tailf:info "Open Shortest Path First (OSPF)";
72804             description
72805               "Process ID";
72806             type uint16 {
72807               range "1..65535";
72808             }
72809           }
72810           container rip {
72811             tailf:info "Routing Information Protocol (RIP)";
72812             description
72813               "Routing Information Protocol (RIP)";
72814             presence "true";
72815             leaf metric {
72816               tailf:info "Metric for redistributed routes";
72817               description
72818                 "Metric for redistributed routes";
72819               type empty;
72820             }
72821             leaf route-map {
72822               tailf:info "Route map reference";
72823               description
72824                 "Route map reference";
72825               type empty;
72826             }
72827           }
72828           container static {
72829             tailf:info "Static routes";
72830             description
72831               "Static routes";
72832             presence "true";
72833             leaf metric {
72834               tailf:info "Metric for redistributed routes";
72835               description
72836                 "Metric for redistributed routes";
72837               type empty;
72838             }
72839             leaf route-map {
72840               tailf:info "Route map reference";
72841               description
72842                 "Route map reference";
72843               type empty;
72844             }
72845           }
72846           container vrf {
72847             tailf:info "Specify a source virtual routing/forwarding instance";
72848             description
72849               "Specify a source virtual routing/forwarding instance";
72850             leaf vrf-fin {
72851               tailf:info "Virtual Routing/Forwarding instance name";
72852               description
72853                 "Virtual Routing/Forwarding instance name";
72854               tailf:cli-drop-node-name;
72855               type string;
72856             }
72857             leaf global {
72858               tailf:info "global VRF";
72859               description
72860                 "global VRF";
72861               type empty;
72862             }
72863           }
72864         }
72865         leaf shutdown {
72866           tailf:info "Shutdown this instance of EIGRP";
72867           description
72868             "Shutdown this instance of EIGRP";
72869           type empty;
72870         }
72871         container summary-metric {
72872           tailf:info "Specify summary to apply metric/filtering";
72873           description
72874             "Specify summary to apply metric/filtering";
72875           list sm-ipv4 {
72876             tailf:cli-drop-node-name;
72877             tailf:cli-suppress-mode;
72878             key "sm-ipv4";
72879             leaf sm-ipv4 {
72880               tailf:info "Summary to configure static metric";
72881               description
72882                 "Summary to configure static metric";
72883               type inet:ipv4-address;
72884             }
72885             leaf sm-ipv4-mask {
72886               tailf:info "Network mask";
72887               description
72888                 "Network mask";
72889               tailf:cli-drop-node-name;
72890               type inet:ipv4-address;
72891             }
72892           }
72893           leaf A-PERIOD-B-PERIOD-C-PERIOD-D-SLASH-nn {
72894             tailf:alt-name "A.B.C.D/nn";
72895             tailf:info "Summary <network>/<length>, e.g., 192.168.0.0/16";
72896             description
72897               "Summary <network>/<length>, e.g., 192.168.0.0/16";
72898             type empty;
72899           }
72900         }
72901         container timers {
72902           tailf:info "Adjust routing timers";
72903           description
72904             "Adjust routing timers";
72905           container active-time {
72906             tailf:info "time limit for active state";
72907             description
72908               "time limit for active state";
72909             leaf atimer {
72910               tailf:info "active state time limit in minutes";
72911               description
72912                 "active state time limit in minutes";
72913               tailf:cli-drop-node-name;
72914               type uint16 {
72915                 range "1..65535";
72916               }
72917             }
72918             leaf disabled {
72919               tailf:info "disable time limit for active state";
72920               description
72921                 "disable time limit for active state";
72922               type empty;
72923             }
72924           }
72925           container graceful-restart {
72926             tailf:info "EIGRP Graceful Restart timer";
72927             description
72928               "EIGRP Graceful Restart timer";
72929             leaf purge-time {
72930               tailf:info "EIGRP stale route purge time";
72931               description
72932                 "EIGRP stale route purge time";
72933               type empty;
72934             }
72935           }
72936           container nsf {
72937             tailf:info "EIGRP NSF timer";
72938             description
72939               "EIGRP NSF timer";
72940             leaf converge {
72941               tailf:info "EIGRP time limit for convergence after switchover";
72942               description
72943                 "EIGRP time limit for convergence after switchover";
72944               type empty;
72945             }
72946             leaf signal {
72947               tailf:info "EIGRP time limit for signaling NSF restart";
72948               description
72949                 "EIGRP time limit for signaling NSF restart";
72950               type empty;
72951             }
72952           }
72953         }
72954         container traffic-share {
72955           tailf:info "How to compute traffic share over alternate paths";
72956           description
72957             "How to compute traffic share over alternate paths";
72958           leaf balanced {
72959             tailf:info "Share inversely proportional to metric";
72960             description
72961               "Share inversely proportional to metric";
72962             type empty;
72963           }
72964           container min {
72965             tailf:info "All traffic shared among min metric paths";
72966             description
72967               "All traffic shared among min metric paths";
72968             leaf across-interfaces {
72969               tailf:info "Use different interfaces for equal-cost paths";
72970               description
72971                 "Use different interfaces for equal-cost paths";
72972               type empty;
72973             }
72974           }
72975         }
72976         leaf variance {
72977           tailf:info "Control load balancing variance";
72978           description
72979             "Metric variance multiplier";
72980           type uint8 {
72981             range "1..128";
72982           }
72983         }
72984       }
72985       container isis {
72986         tailf:cli-add-mode;
72987         tailf:info "ISO IS-IS";
72988         description
72989           "ISO IS-IS";
72990         tailf:cli-mode-name "config-router";
72991         presence "true";
72992         uses isis-main-grouping;
72993       }
72994       container isis-container {
72995         tailf:cli-drop-node-name;
72996         list isis {
72997           tailf:info "ISO IS-IS";
72998           description
72999             "ISO IS-IS";
73000           tailf:cli-mode-name "config-router";
73001           key "area-tag";
73002           leaf area-tag {
73003             type string {
73004               tailf:info "WORD;;ISO routing area tag";
73005             }
73006           }
73007           uses isis-main-grouping;
73008         }
73009       }
73010       container rip {
73011         tailf:cli-add-mode;
73012         tailf:cli-mode-name "config-router";
73013         tailf:info "Routing Information Protocol (RIP)";
73014         description
73015           "Routing Information Protocol (RIP)";
73016         uses router-rip-grouping;
73017         container address-family {
73018           tailf:info "Enter Address Family command mode";
73019           description
73020             "Enter Address Family command mode";
73021           container ipv4 {
73022             tailf:info "Address family";
73023             description
73024               "Address family";
73025             container unicast {
73026               tailf:cli-add-mode;
73027               tailf:cli-mode-name "config-router-af";
73028               tailf:info "Address Family Modifier";
73029               tailf:cli-full-command;
73030               tailf:cli-exit-command "exit-address-family" {
73031                 tailf:info "Exit from Address Family configuration mode";
73032               }
73033               uses router-rip-grouping;
73034             }
73035             list vrf {
73036               tailf:info "Specify parameters for a VPN Routing/Forwarding instance";
73037               description
73038                 "Specify parameters for a VPN Routing/Forwarding instance";
73039               tailf:cli-full-command;
73040               tailf:cli-mode-name "config-router-af";
73041               tailf:cli-diff-dependency "/ios:native/ip/vrf";
73042               tailf:cli-diff-dependency "/ios:native/vrf/definition";
73043               tailf:cli-exit-command "exit-address-family" {
73044                 tailf:info "Exit from Address Family configuration mode";
73045               }
73046               key "name";
73047               leaf name {
73048                 type string {
73049                   tailf:info "WORD;;VPN Routing/Forwarding instance name";
73050                 }
73051               }
73052               uses address-family-vrf-grouping;
73053             }
73054           }
73055         }
73056         container default {
73057           tailf:info "Set a command to its defaults";
73058           description
73059             "Set a command to its defaults";
73060           container address-family {
73061             tailf:info "Enter Address Family command mode";
73062             description
73063               "Enter Address Family command mode";
73064             container ipv4 {
73065               presence "true";
73066               tailf:info "Address family";
73067               description
73068                 "Address family";
73069               leaf unicast {
73070                 tailf:info "Address Family Modifier";
73071                 description
73072                   "Address Family Modifier";
73073                 type empty;
73074               }
73075               list vrf {
73076                 tailf:info "Specify parameters for a VPN Routing/Forwarding instance";
73077                 description
73078                   "Specify parameters for a VPN Routing/Forwarding instance";
73079                 tailf:cli-suppress-mode;
73080                 tailf:cli-delete-when-empty;
73081                 tailf:cli-diff-dependency "/ios:native/ip/vrf";
73082                 tailf:cli-diff-dependency "/ios:native/vrf/definition";
73083                 key "name";
73084                 leaf name {
73085                   type string {
73086                     tailf:info "WORD;;VPN Routing/Forwarding instance name";
73087                   }
73088                 }
73089               }
73090             }
73091           }
73092           uses default-router-rip-grouping;
73093           container default-information {
73094             tailf:info "Control distribution of default information";
73095             description
73096               "Control distribution of default information";
73097             leaf originate {
73098               tailf:info "Distribute a default route";
73099               description
73100                 "Distribute a default route";
73101               type empty;
73102             }
73103           }
73104           leaf default-metric {
73105             tailf:cli-full-command;
73106             tailf:info "Set metric of redistributed routes";
73107             description
73108               "Set metric of redistributed routes";
73109             type empty;
73110           }
73111           uses distance-grouping;
73112           uses distribute-list-grouping;
73113           leaf flash-update-threshold {
73114             tailf:cli-full-command;
73115             tailf:info "Specify flash update threshold in second";
73116             description
73117               "Specify flash update threshold in second";
73118             type empty;
73119           }
73120           leaf input-queue {
73121             tailf:cli-full-command;
73122             tailf:info "Specify input queue depth";
73123             description
73124               "Specify input queue depth";
73125             type empty;
73126           }
73127           uses offset-list-grouping;
73128           leaf output-delay {
73129             tailf:cli-full-command;
73130             tailf:info "Interpacket delay for RIP updates";
73131             description
73132               "Interpacket delay for RIP updates";
73133             type empty;
73134           }
73135           uses passive-interface-grouping;
73136           container redistribute {
73137             tailf:info "Redistribute information from another routing protocol";
73138             description
73139               "Redistribute information from another routing protocol";
73140             uses default-redistribute-grouping;
73141           }
73142           container timers {
73143             tailf:info "Adjust routing timers";
73144             description
73145               "Adjust routing timers";
73146             leaf basic {
73147               tailf:info "Basic routing protocol update timers";
73148               description
73149                 "Basic routing protocol update timers";
73150               type empty;
73151             }
73152           }
73153           container traffic-share {
73154             tailf:info "How to compute traffic share over alternate paths";
73155             description
73156               "How to compute traffic share over alternate paths";
73157             container min {
73158               tailf:info "All traffic shared among min metric paths";
73159               description
73160                 "All traffic shared among min metric paths";
73161               leaf across-interfaces {
73162                 tailf:info "Use different interfaces for equal-cost paths";
73163                 description
73164                   "Use different interfaces for equal-cost paths";
73165                 type empty;
73166               }
73167             }
73168           }
73169           leaf version {
73170             tailf:cli-full-command;
73171             tailf:info "Set routing protocol version";
73172             description
73173               "Set routing protocol version";
73174             type empty;
73175           }
73176         }
73177       }
73178       container lisp {
73179         tailf:info "Locator/ID Separation Protocol";
73180         description
73181           "Locator/ID Separation Protocol";
73182         tailf:cli-add-mode;
73183         tailf:cli-mode-name "config-router-lisp";
73184         uses router-lisp-grouping;
73185       }
73186       list lisp-list {
73187         tailf:cli-drop-node-name;
73188         description
73189           "Locator/ID Separation Protocol";
73190         tailf:cli-mode-name "config-router-lisp";
73191         key "lisp";
73192         leaf lisp {
73193           tailf:info "Locator/ID Separation Protocol";
73194           description
73195             "Locator/ID Separation Protocol";
73196           tailf:cli-expose-key-name;
73197           type uint16 {
73198             tailf:info "<0-65520>;;router lisp ID";
73199           }
73200         }
73201         uses router-lisp-grouping;
73202       }
73203     }
73204
73205     grouping config-service-chain-grouping {
73206       leaf description {
73207         tailf:info "Service function forwarder description";
73208         description
73209           "Service function forwarder description";
73210         tailf:cli-multi-value;
73211         type string {
73212           tailf:info "LINE;;Up to 256 characters describing this service function forwarder";
73213           length "1..256";
73214         }
73215       }
73216       container ip {
73217         tailf:info "IP address for Service Function Forwarder";
73218         description
73219           "IP address for Service Function Forwarder";
73220         leaf address {
73221           tailf:info "Set IPv4 address";
73222           description
73223             "Set IPv4 address";
73224           type inet:ipv4-address {
73225             tailf:info "A.B.C.D;;IP address of Service Function Forwarder";
73226           }
73227         }
73228       }
73229     }
73230     container service-chain {
73231       tailf:info "Service Chain mode";
73232       description
73233         "Service Chain mode";
73234       list service-function {
73235         tailf:info "Service function details";
73236         description
73237           "Service function details";
73238         tailf:cli-mode-name "config-service-chain-sf";
73239         key "name";
73240         leaf name {
73241           tailf:info "WORD;;Service function name";
73242           description
73243             "WORD;;Service function name";
73244           type string;
73245         }
73246         container config-service-chain-sf-mode {
73247           tailf:cli-drop-node-name;
73248           leaf description {
73249             tailf:info "Service function description";
73250             description
73251               "Service function description";
73252             tailf:cli-multi-value;
73253             tailf:cli-full-command;
73254             type string {
73255               tailf:info "LINE;;Up to 256 characters describing this service function";
73256               length "1..256";
73257             }
73258           }
73259           container encapsulation {
73260             tailf:info "Service node encapsulation";
73261             description
73262               "Service node encapsulation";
73263             container gre {
73264               tailf:info "Service node encapsulation type";
73265               description
73266                 "Service node encapsulation type";
73267               leaf enhanced {
73268                 tailf:info "Add enhanced NSH TLV information";
73269                 description
73270                   "Add enhanced NSH TLV information";
73271                 type enumeration {
73272                   enum "copy" {
73273                     tailf:info "Send a copy of the packet";
73274                   }
73275                   enum "divert" {
73276                     tailf:info "Divert the packet (default)";
73277                   }
73278                 }
73279               }
73280             }
73281             leaf none {
73282               tailf:info "Service node encapsulation type";
73283               description
73284                 "Service node encapsulation type";
73285               type empty;
73286             }
73287           }
73288           container ip {
73289             tailf:info "Service node";
73290             description
73291               "Service node";
73292             leaf address {
73293               type inet:ipv4-address {
73294                 tailf:info "A.B.C.D;;Service node";
73295               }
73296             }
73297           }
73298         }
73299       }
73300       container service-function-forwarder {
73301         tailf:info "Service function forwarder details";
73302         description
73303           "Service function forwarder details";
73304         list service-ff-name {
73305           tailf:cli-drop-node-name;
73306           tailf:cli-mode-name "config-service-chain-sff";
73307           key "name";
73308           leaf name {
73309             tailf:info "WORD;;Service function forwarder name";
73310             description
73311               "WORD;;Service function forwarder name";
73312             type string;
73313           }
73314           uses config-service-chain-grouping;
73315         }
73316         container local {
73317           tailf:info "Local service function forwarder";
73318           description
73319             "Local service function forwarder";
73320           tailf:cli-add-mode;
73321           tailf:cli-mode-name "config-service-chain-sff";
73322           presence "true";
73323           uses config-service-chain-grouping;
73324         }
73325       }
73326       list service-path {
73327         tailf:info "Service Path Entries";
73328         description
73329           "Service Path Entries";
73330         tailf:cli-mode-name "config-service-chain-path";
73331         key "service-path-id";
73332         leaf service-path-id {
73333           type uint32 {
73334             range "0..16777215";
73335             tailf:info "<0-16777215>;;Service Path ID";
73336           }
73337         }
73338         container config-service-chain-path-mode {
73339           tailf:cli-drop-node-name;
73340           leaf description {
73341             tailf:info "Path Description";
73342             description
73343               "Path Description";
73344             tailf:cli-multi-value;
73345             tailf:cli-full-command;
73346             type string {
73347               tailf:info "LINE;;Up to 256 characters describing this service path";
73348               length "1..256";
73349             }
73350           }
73351           container service-index {
73352             tailf:info "Service Index";
73353             description
73354               "Service Index";
73355             list services {
73356               tailf:cli-drop-node-name;
73357               tailf:cli-suppress-mode;
73358               key "service-index-id";
73359               leaf service-index-id {
73360                 type uint8 {
73361                   range "2..255";
73362                   tailf:info "<2-255>;;Service Index ID";
73363                 }
73364               }
73365               choice service-type-choice {
73366                 leaf service-function {
73367                   tailf:info "Service Function name";
73368                   description
73369                     "Service Function name";
73370                   type string {
73371                     tailf:info "WORD;;Service Function name";
73372                   }
73373                 }
73374                 leaf service-function-forwarder {
73375                   tailf:info "Service Function Forwarder name";
73376                   description
73377                     "Service Function Forwarder name";
73378                   type string {
73379                     tailf:info "WORD;;Service Function Forwarder name";
73380                   }
73381                 }
73382                 leaf terminate {
73383                   tailf:info "Terminate(Proxy)";
73384                   description
73385                     "Terminate(Proxy)";
73386                   type empty;
73387                 }
73388               }
73389             }
73390           }
73391         }
73392       }
73393     }
73394     container service-routing {
73395       tailf:info "Configure service-routing";
73396       description
73397         "Configure service-routing";
73398       leaf capabilities-manager {
73399         tailf:info "Service-Routing Capabilities Manager configuration";
73400         description
73401           "Service-Routing Capabilities Manager configuration";
73402         tailf:cli-boolean-no;
73403         tailf:cli-trim-default;
73404         type boolean;
73405       }
73406     }
73407     container performance {
73408       tailf:info "Global Performance monitor configuration";
73409       description
73410         "Global Performance monitor configuration";
73411       container monitor {
73412         tailf:info "monitor";
73413         description
73414           "monitor";
73415         list context {
73416           tailf:info "Define ezPM context";
73417           description
73418             "Define ezPM context";
73419           tailf:cli-mode-name "config-perf-mon";
73420           key "name";
73421           leaf name {
73422             type string {
73423               tailf:info "WORD;;ezPM context name";
73424             }
73425           }
73426           leaf profile {
73427             tailf:info "Select ezPM profile";
73428             description
73429               "Select ezPM profile";
73430             tailf:cli-hide-in-submode;
73431             type enumeration {
73432               enum "application-experience" {
73433                 tailf:info "Application eXperience performance monitor profile";
73434               }
73435               enum "application-performance" {
73436                 tailf:info "Application performance profile";
73437               }
73438               enum "application-statistics" {
73439                 tailf:info "Application statistics profile";
73440               }
73441             }
73442           }
73443           container default {
73444             tailf:info "Set a command to its defaults";
73445             description
73446               "Set a command to its defaults";
73447             leaf description {
73448               tailf:info "Provide a description for ezPM context";
73449               description
73450                 "Provide a description for ezPM context";
73451               tailf:cli-full-command;
73452               type empty;
73453             }
73454             uses performance-monitor-context-default-grouping;
73455           }
73456           leaf description {
73457             tailf:info "Provide a description for ezPM context";
73458             description
73459               "Provide a description for ezPM context";
73460             tailf:cli-multi-value;
73461             tailf:cli-full-command;
73462             type string {
73463               tailf:info "LINE;;ezPM context description";
73464             }
73465           }
73466           uses performance-monitor-context-grouping;
73467         }
73468         container observation-point {
73469           tailf:info "Select observation point";
73470           description
73471             "Select observation point";
73472           leaf encrypted-text {
73473             tailf:info "Select clear text for observation";
73474             description
73475               "Select clear text for observation";
73476             tailf:cli-full-command;
73477             type empty;
73478           }
73479         }
73480       }
73481     }
73482     container otv {
73483       tailf:info "Configure OTV information";
73484       description
73485         "Configure OTV information";
73486       container fragmentation {
73487         tailf:info "Clear the DF (Don't Fragment) bit in the IP header";
73488         description
73489           "Clear the DF (Don't Fragment) bit in the IP header";
73490         container join-interface {
73491           tailf:info "Allow fragmentation for overlays using this join-interface";
73492           description
73493             "Allow fragmentation for overlays using this join-interface";
73494           uses interface-grouping;
73495         }
73496       }
73497       container isis {
73498         tailf:info "OTV ISIS instance subcommands";
73499         description
73500           "OTV ISIS instance subcommands";
73501         list Overlay {
73502           tailf:info "Overlay interface";
73503           description
73504             "Overlay interface";
73505           tailf:cli-mode-name "config-otv-isis";
73506           key "number";
73507           leaf number {
73508             type uint16 {
73509               tailf:info "<0-512>;;Overlay interface number";
73510               range "0..512";
73511             }
73512           }
73513           uses otv-isis-overlay-grouping;
73514         }
73515         container site {
73516           tailf:info "Site Instance";
73517           description
73518             "Site Instance";
73519           tailf:cli-add-mode;
73520           tailf:cli-mode-name "config-otv-isis";
73521           uses otv-isis-site-grouping;
73522         }
73523       }
73524       list site {
73525         tailf:info "OTV site network configuration";
73526         description
73527           "OTV site network configuration";
73528         tailf:cli-mode-name "config-otv-site";
73529         key "bridge-domain";
73530         leaf bridge-domain {
73531           tailf:info "Bridge-domain to discover local OTV enabled devices";
73532           description
73533             "Bridge-domain to discover local OTV enabled devices";
73534           tailf:cli-expose-key-name;
73535           tailf:cli-full-command;
73536           type uint16 {
73537             tailf:info "<1-8192>;;Bridge-domain ID";
73538             range "1..8192";
73539           }
73540         }
73541         container default {
73542           tailf:info "Set a command to its defaults";
73543           description
73544             "Set a command to its defaults";
73545           container otv {
73546             tailf:info "OTV site configuration subcommands";
73547             description
73548               "OTV site configuration subcommands";
73549             uses otv-isis-grouping;
73550           }
73551         }
73552         container otv {
73553           tailf:info "OTV site configuration subcommands";
73554           description
73555             "OTV site configuration subcommands";
73556           uses otv-isis-grouping;
73557         }
73558       }
73559       leaf site-identifier {
73560         tailf:info "OTV site id";
73561         description
73562           "OTV site id";
73563         tailf:cli-full-command;
73564         type union {
73565           type uint32 {
73566             tailf:info "<0x1-0xFFFFFFFF>;;site-id in Hex format";
73567           }
73568           type string {
73569             tailf:info "H.H.H;;site-id in MAC format";
73570           }
73571         }
73572       }
73573     }
73574     container utd {
73575       tailf:info "Global Unified Threat Defense";
73576       description
73577         "Global Unified Threat Defense";
73578       tailf:cli-add-mode;
73579       tailf:cli-mode-name "config-utd";
73580       presence "true";
73581       container engine {
73582         tailf:info "UTD engine";
73583         description
73584           "UTD engine";
73585         container advanced {
73586           tailf:info "UTD engine advanced";
73587           description
73588             "UTD engine advanced";
73589           tailf:cli-add-mode;
73590           tailf:cli-mode-name "config-utd-eng-adv";
73591           container default {
73592             tailf:info "Set a command to its defaults";
73593             description
73594               "Set a command to its defaults";
73595             container threat {
73596               tailf:info "Provide threat detection";
73597               description
73598                 "Provide threat detection";
73599               presence "true";
73600             }
73601           }
73602           container threat {
73603             tailf:info "Provide threat detection";
73604             description
73605               "Provide threat detection";
73606             presence "true";
73607             leaf detection {
73608               tailf:info "Provide threat detection";
73609               description
73610                 "Provide threat detection";
73611               type empty;
73612             }
73613           }
73614         }
73615         container standard {
73616           tailf:info "UTD engine standard";
73617           description
73618             "UTD engine standard";
73619           tailf:cli-add-mode;
73620           tailf:cli-mode-name "config-utd-eng-std";
73621           container default {
73622             tailf:info "Set a command to its defaults";
73623             description
73624               "Set a command to its defaults";
73625             leaf policy {
73626               tailf:info "Provide the policy option (default=balanced)";
73627               description
73628                 "Provide the policy option (default=balanced)";
73629               tailf:cli-full-command;
73630               type empty;
73631             }
73632             leaf threat {
73633               tailf:info "Provide the threat detection/protection option (default=detection)";
73634               description
73635                 "Provide the threat detection/protection option (default=detection)";
73636               tailf:cli-full-command;
73637               type empty;
73638             }
73639           }
73640           uses utd-engine-standard-grouping;
73641         }
73642       }
73643       container whitelist {
73644         tailf:info "UTD whitelist config submode";
73645         description
73646           "UTD whitelist config submode";
73647         tailf:cli-add-mode;
73648         tailf:cli-mode-name "config-utd-whitelist";
73649         container signature {
73650           tailf:info "Provide signatures for the whitelist";
73651           description
73652             "Provide signatures for the whitelist";
73653           tailf:cli-sequence-commands;
73654           tailf:cli-compact-syntax;
73655           leaf id {
73656             tailf:info "Provide signature id for the whitelist";
73657             description
73658               "Provide signature id for the whitelist";
73659             type uint64 {
73660               tailf:info "<0-4294967295>;;Provide the signature ID to be whitelisted";
73661               range "0..4294967295";
73662             }
73663           }
73664           leaf comment {
73665             tailf:info "Provide a comment for the signature";
73666             description
73667               "Provide a comment for the signature";
73668             tailf:cli-optional-in-sequence;
73669             tailf:cli-multi-value;
73670             type string {
73671               tailf:info "LINE;;Enter the comment string";
73672             }
73673           }
73674         }
73675       }
73676     }
73677     container remote-management {
73678       tailf:info "Enable the remote managment";
73679       description
73680         "Enable the remote managment";
73681       tailf:cli-add-mode;
73682       tailf:cli-mode-name "config-remote-mgmt";
73683       leaf dmi {
73684         tailf:info "data-model-interface";
73685         description
73686           "data-model-interface";
73687         tailf:cli-full-command;
73688         type empty;
73689       }
73690       leaf restful-api {
73691         tailf:info "RESTful API";
73692         description
73693           "RESTful API";
73694         tailf:cli-boolean-no;
73695         tailf:cli-trim-default;
73696         type boolean;
73697         default "true";
73698       }
73699     }
73700     list virtual-service {
73701       tailf:info "Configure virtual service";
73702       description
73703         "Configure virtual service";
73704       tailf:cli-mode-name "config-virt-serv";
73705       key "name";
73706       leaf name {
73707         type string {
73708           tailf:info "WORD;;Virtual service name (up to 63 characters)";
73709           length "1..63";
73710         }
73711       }
73712       leaf activate {
73713         tailf:info "Activate configured virtual service";
73714         description
73715           "Activate configured virtual service";
73716         tailf:cli-full-command;
73717         type empty;
73718       }
73719       leaf profile {
73720         type string;
73721       }
73722       container vnic {
73723         tailf:info "Guest vnic configuration";
73724         description
73725           "Guest vnic configuration";
73726         container gateway {
73727           tailf:info "Gateway interface to connect to the guest vnic";
73728           description
73729             "Gateway interface to connect to the guest vnic";
73730           list VirtualPortGroup {
73731             tailf:info "Virtual Port Group";
73732             description
73733               "Virtual Port Group";
73734             tailf:cli-mode-name "config-virt-serv-vnic";
73735             tailf:cli-allow-join-with-key {
73736               tailf:cli-display-joined;
73737             }
73738             key "number";
73739             leaf number {
73740               type uint16 {
73741                 tailf:info "<0-31>;;VirtualPortGroup interface number";
73742                 range "0..31";
73743               }
73744             }
73745             container guest {
73746               tailf:info "Configure guest vnic address";
73747               description
73748                 "Configure guest vnic address";
73749               choice ip-address {
73750                 case ipv4-case {
73751                   container ip {
73752                     tailf:info "Guest vnic IP address";
73753                     description
73754                       "Guest vnic IP address";
73755                     leaf address {
73756                       tailf:info "Set the IP address of virtual interface on guest";
73757                       description
73758                         "Set the IP address of virtual interface on guest";
73759                       type inet:ipv4-address {
73760                         tailf:info "A.B.C.D;;IP address";
73761                       }
73762                     }
73763                   }
73764                 }
73765                 case ipv6-case {
73766                   container ipv6 {
73767                     tailf:info "Guest vnic IPv6 address";
73768                     description
73769                       "Guest vnic IPv6 address";
73770                     leaf address {
73771                       tailf:info "Set the IPv6 address of virtual interface on guest";
73772                       description
73773                         "Set the IPv6 address of virtual interface on guest";
73774                       type inet:ipv6-address {
73775                         tailf:info "X:X:X:X::X;;IPv6 prefix";
73776                       }
73777                     }
73778                   }
73779                 }
73780               }
73781             }
73782           }
73783         }
73784         container management {
73785           tailf:info "Gateway interface to connect to the guest vnic";
73786           description
73787             "Gateway interface to connect to the guest vnic";
73788           tailf:cli-add-mode;
73789           tailf:cli-mode-name "config-virt-serv-vnic";
73790           leaf GigabitEthernet0 {
73791             tailf:info "Management Ethernet Interface";
73792             description
73793               "Management Ethernet Interface";
73794             tailf:cli-hide-in-submode;
73795             type empty;
73796           }
73797           container guest {
73798             tailf:info "Configure guest vnic address";
73799             description
73800               "Configure guest vnic address";
73801             choice ip-address {
73802               case ipv4-case {
73803                 container ip {
73804                   tailf:info "Guest vnic IP address";
73805                   description
73806                     "Guest vnic IP address";
73807                   leaf address {
73808                     tailf:info "Set the IP address of virtual interface on guest";
73809                     description
73810                       "Set the IP address of virtual interface on guest";
73811                     type inet:ipv4-address {
73812                       tailf:info "A.B.C.D;;IP address";
73813                     }
73814                   }
73815                 }
73816               }
73817               case ipv6-case {
73818                 container ipv6 {
73819                   tailf:info "Guest vnic IPv6 address";
73820                   description
73821                     "Guest vnic IPv6 address";
73822                   leaf address {
73823                     tailf:info "Set the IPv6 address of virtual interface on guest";
73824                     description
73825                       "Set the IPv6 address of virtual interface on guest";
73826                     type inet:ipv6-address {
73827                       tailf:info "X:X:X:X::X;;IPv6 prefix";
73828                     }
73829                   }
73830                 }
73831               }
73832             }
73833           }
73834         }
73835       }
73836     }
73837   }
73838   augment "/ios:native/router/rip/default/distribute-list/accesslist" {
73839     leaf id {
73840       tailf:cli-drop-node-name;
73841       tailf:cli-prefix-key;
73842       mandatory true;
73843       tailf:cli-disallow-value "prefix|gateway|route-map";
73844       type default-access-list-id-type;
73845     }
73846   }
73847   augment "/ios:native/router/rip/distribute-list/accesslist" {
73848     leaf id {
73849       tailf:cli-drop-node-name;
73850       tailf:cli-prefix-key;
73851       mandatory true;
73852       tailf:cli-disallow-value "prefix|gateway|route-map";
73853       type access-list-id-type;
73854     }
73855   }
73856   augment "/ios:native/router/rip/default/distribute-list/accesslist-ifname" {
73857     leaf id {
73858       tailf:cli-drop-node-name;
73859       tailf:cli-prefix-key;
73860       mandatory true;
73861       tailf:cli-disallow-value "prefix|gateway|route-map";
73862       type default-access-list-id-type;
73863     }
73864   }
73865   augment "/ios:native/router/rip/distribute-list/accesslist-ifname" {
73866     leaf id {
73867       tailf:cli-drop-node-name;
73868       tailf:cli-prefix-key;
73869       mandatory true;
73870       tailf:cli-disallow-value "prefix|gateway|route-map";
73871       type access-list-id-type;
73872     }
73873   }
73874   augment "/ios:native/router/rip/default/distance/distance-list" {
73875     leaf access-list {
73876       tailf:cli-drop-node-name;
73877       type default-access-list-standard-id-type;
73878     }
73879   }
73880   augment "/ios:native/router/rip/distance/distance-list" {
73881     leaf access-list {
73882       tailf:cli-drop-node-name;
73883       type access-list-standard-id-type;
73884     }
73885   }
73886   augment "/ios:native/router/rip/default/offset-list" {
73887     leaf id {
73888       tailf:cli-incomplete-command;
73889       tailf:cli-drop-node-name;
73890       tailf:cli-prefix-key {
73891         tailf:cli-before-key "1";
73892       }
73893       mandatory true;
73894       tailf:cli-disallow-value "in|out";
73895       type default-offset-list-id-type;
73896     }
73897   }
73898   augment "/ios:native/router/rip/offset-list" {
73899     leaf id {
73900       tailf:cli-incomplete-command;
73901       tailf:cli-drop-node-name;
73902       tailf:cli-prefix-key {
73903         tailf:cli-before-key "1";
73904       }
73905       mandatory true;
73906       tailf:cli-disallow-value "in|out";
73907       type offset-list-id-type;
73908     }
73909   }
73910   augment "/ios:native/router/ospf/distribute-list/accesslist" {
73911     leaf id {
73912       tailf:cli-drop-node-name;
73913       tailf:cli-prefix-key;
73914       mandatory true;
73915       tailf:cli-disallow-value "prefix|gateway|route-map";
73916       type access-list-id-type;
73917     }
73918   }
73919   augment "/ios:native/router/ospf/distribute-list/accesslist-ifname" {
73920     leaf id {
73921       tailf:cli-drop-node-name;
73922       tailf:cli-prefix-key;
73923       mandatory true;
73924       tailf:cli-disallow-value "prefix|gateway|route-map";
73925       type access-list-id-type;
73926     }
73927   }
73928   augment "/ios:native" {
73929     container snmp {
73930       tailf:info "Modify non engine SNMP parameters";
73931       description
73932         "Modify non engine SNMP parameters";
73933       container ifmib {
73934         tailf:info "IF-MIB commands";
73935         description
73936           "IF-MIB commands";
73937         container ifindex {
73938           tailf:info "ifindex persistence";
73939           description
73940             "ifindex persistence";
73941           leaf persist {
73942             tailf:info "Persist interface indices";
73943             description
73944               "Persist interface indices";
73945             type empty;
73946           }
73947         }
73948         container ifalias {
73949           tailf:info "ifAlias description option, by default it is limited to 64 character";
73950           description
73951             "ifAlias description option, by default it is limited to 64 character";
73952           leaf long {
73953             tailf:info "ifAlias description can be up to 256 characters";
73954             description
73955               "ifAlias description can be up to 256 characters";
73956             type empty;
73957           }
73958         }
73959       }
73960       container mib {
73961         tailf:info "MIB commands";
73962         description
73963           "MIB commands";
73964         container bulkstat {
73965           tailf:info "Bulkstat Configuration commands";
73966           description
73967             "Bulkstat Configuration commands";
73968           list object-list {
73969             tailf:info "Configure an Object List.";
73970             description
73971               "Configure an Object List.";
73972             tailf:cli-suppress-mode;
73973             tailf:cli-delete-when-empty;
73974             key "name";
73975             leaf name {
73976               type string {
73977                 tailf:info "WORD;;Name of object list";
73978               }
73979             }
73980           }
73981         }
73982         leaf persist {
73983           tailf:info "Persistence for MIBS";
73984           description
73985             "Persistence for MIBS";
73986           tailf:cli-full-command;
73987           type enumeration {
73988             enum "cbqos" {
73989               tailf:info "CBQOS MIB index persistence";
73990             }
73991             enum "circuit" {
73992               tailf:info "Circuit MIB persistence";
73993             }
73994           }
73995         }
73996       }
73997     }
73998     container snmp-server {
73999       tailf:info "Modify SNMP engine parameters";
74000       description
74001         "Modify SNMP engine parameters";
74002       leaf chassis-id {
74003         tailf:info "String to uniquely identify this chassis";
74004         description
74005           "String to uniquely identify this chassis";
74006         tailf:cli-multi-value;
74007         type string {
74008           tailf:info "LINE;;Unique ID string";
74009         }
74010       }
74011       list community {
74012         tailf:info "Enable SNMP; set community string and access privs";
74013         description
74014           "Enable SNMP; set community string and access privs";
74015         tailf:cli-suppress-mode;
74016         tailf:cli-delete-when-empty;
74017         tailf:cli-compact-syntax;
74018         tailf:cli-sequence-commands {
74019           tailf:cli-reset-siblings;
74020         }
74021         key "name";
74022         leaf name {
74023           type string {
74024             tailf:info "WORD;;SNMP community string";
74025           }
74026         }
74027         leaf view {
74028           tailf:info "Restrict this community to a named MIB view";
74029           description
74030             "Restrict this community to a named MIB view";
74031           tailf:cli-optional-in-sequence;
74032           type string {
74033             tailf:info "WORD;;MIB view to which this community has access";
74034           }
74035         }
74036         choice access-choice {
74037           leaf RO {
74038             tailf:info "Read-only access with this community string";
74039             description
74040               "Read-only access with this community string";
74041             tailf:cli-optional-in-sequence;
74042             type empty;
74043           }
74044           leaf RW {
74045             tailf:info "Read-write access with this community string";
74046             description
74047               "Read-write access with this community string";
74048             tailf:cli-optional-in-sequence;
74049             type empty;
74050           }
74051         }
74052         choice access-list-choice {
74053           case ipv6 {
74054             leaf ipv6 {
74055               tailf:info "Specify IPv6 Named Access-List";
74056               description
74057                 "Specify IPv6 Named Access-List";
74058               type string {
74059                 tailf:info "WORD;;IPv6 Access-list name";
74060               }
74061             }
74062           }
74063           case ipv4 {
74064             leaf access-list-name {
74065               tailf:cli-drop-node-name;
74066               type std-acl-type;
74067             }
74068           }
74069         }
74070       }
74071       leaf contact {
74072         tailf:info "Text for mib object sysContact";
74073         description
74074           "Text for mib object sysContact";
74075         tailf:cli-multi-value;
74076         type string {
74077           tailf:info "LINE;;identification of the contact person for this managed node";
74078         }
74079       }
74080       container enable {
74081         tailf:info "Enable SNMP Traps or Informs";
74082         description
74083           "Enable SNMP Traps or Informs";
74084         choice enable-choice {
74085           case informs {
74086             leaf informs {
74087               tailf:info "Enable SNMP Informs";
74088               description
74089                 "Enable SNMP Informs";
74090               type empty;
74091             }
74092           }
74093           case traps {
74094             container traps {
74095               tailf:info "Enable SNMP Traps";
74096               description
74097                 "Enable SNMP Traps";
74098               leaf aaa_server {
74099                 tailf:info "Enable SNMP AAA Server traps";
74100                 description
74101                   "Enable SNMP AAA Server traps";
74102                 tailf:cli-full-command;
74103                 type empty;
74104               }
74105               container alarms {
74106                 tailf:info "Enable SNMP alarms traps";
74107                 description
74108                   "Enable SNMP alarms traps";
74109                 tailf:cli-delete-when-empty;
74110                 presence "true";
74111                 leaf alarm-type {
74112                   tailf:cli-drop-node-name;
74113                   type union {
74114                     type uint8 {
74115                       tailf:info "<1-4>;;Alarm Logging severity level";
74116                       range "1..4";
74117                     }
74118                     type enumeration {
74119                       enum "critical" {
74120                         tailf:info "Service affecting Condition       (severity=1)";
74121                       }
74122                       enum "informational" {
74123                         tailf:info "Informational messages            (severity=4)";
74124                       }
74125                       enum "major" {
74126                         tailf:info "Immediate action needed           (severity=2)";
74127                       }
74128                       enum "minor" {
74129                         tailf:info "Minor warning conditions          (severity=3)";
74130                       }
74131                     }
74132                   }
74133                 }
74134               }
74135               container atm {
74136                 tailf:info "Enable SNMP atm traps";
74137                 description
74138                   "Enable SNMP atm traps";
74139                 container pvc {
74140                   tailf:info "Enable SNMP atm pvc traps";
74141                   description
74142                     "Enable SNMP atm pvc traps";
74143                   tailf:cli-sequence-commands;
74144                   tailf:cli-delete-when-empty;
74145                   presence "true";
74146                   container extension {
74147                     tailf:info "Enable SNMP atm pvc extension traps";
74148                     description
74149                       "Enable SNMP atm pvc extension traps";
74150                     tailf:cli-optional-in-sequence;
74151                     leaf down {
74152                       tailf:info "Enable SNMP atm pvc extended down trap";
74153                       description
74154                         "Enable SNMP atm pvc extended down trap";
74155                       tailf:cli-full-command;
74156                       type empty;
74157                     }
74158                     leaf up {
74159                       tailf:info "Enable SNMP atm pvc extended up traps";
74160                       description
74161                         "Enable SNMP atm pvc extended up traps";
74162                       tailf:cli-full-command;
74163                       type empty;
74164                     }
74165                     leaf mibversion {
74166                       tailf:info "Extension MIB version to be used";
74167                       description
74168                         "Extension MIB version to be used";
74169                       tailf:cli-full-command;
74170                       type enumeration {
74171                         enum "1" {
74172                           tailf:info "Use Extension mibversion 1";
74173                         }
74174                         enum "2" {
74175                           tailf:info "Use Extension mibversion 2";
74176                         }
74177                       }
74178                     }
74179                     container oam {
74180                       tailf:info "Enable SNMP atm pvc extended oam trap";
74181                       description
74182                         "Enable SNMP atm pvc extended oam trap";
74183                       container failure {
74184                         tailf:info "Enable SNMP atm pvc extended any oam failure trap";
74185                         description
74186                           "Enable SNMP atm pvc extended any oam failure trap";
74187                         leaf loopback {
74188                           tailf:info "Enable SNMP atm pvc extended oam loopback failure trap";
74189                           description
74190                             "Enable SNMP atm pvc extended oam loopback failure trap";
74191                           tailf:cli-full-command;
74192                           type empty;
74193                         }
74194                       }
74195                     }
74196                   }
74197                   leaf interval {
74198                     tailf:info "minimum period between successive traps";
74199                     description
74200                       "minimum period between successive traps";
74201                     tailf:cli-optional-in-sequence;
74202                     type uint16 {
74203                       tailf:info "<1-3600>;;minimum period between successive traps (in seconds)";
74204                       range "1..3600";
74205                     }
74206                   }
74207                   leaf fail-interval {
74208                     tailf:info "minimum period for storing the failed timestamp";
74209                     description
74210                       "minimum period for storing the failed timestamp";
74211                     type uint16 {
74212                       tailf:info "<0-3600>;;minimum period for storing the failed timestamp (in seconds)";
74213                       range "0..3600";
74214                     }
74215                   }
74216                 }
74217                 container subif {
74218                   tailf:info "Enable SNMP atm subinterface traps";
74219                   description
74220                     "Enable SNMP atm subinterface traps";
74221                   tailf:cli-sequence-commands;
74222                   tailf:cli-delete-when-empty;
74223                   presence "true";
74224                   leaf interval {
74225                     tailf:info "Interval duration in which to limit the number of traps sent";
74226                     description
74227                       "Interval duration in which to limit the number of traps sent";
74228                     tailf:cli-optional-in-sequence;
74229                     type uint16 {
74230                       tailf:info "<0-3600>;;Duration of rate-limiting interval (0-3600 seconds)";
74231                       range "0..3600";
74232                     }
74233                   }
74234                   leaf count {
74235                     tailf:info "Maximum number of traps sent per interval";
74236                     description
74237                       "Maximum number of traps sent per interval";
74238                     type uint16 {
74239                       tailf:info "<1-1000>  Maximum traps per interval (1-1000)";
74240                       range "1..1000";
74241                     }
74242                   }
74243                 }
74244               }
74245               leaf authenticate-fail {
74246                 tailf:info "Enable SNMP 802.11 Authentication Fail Trap";
74247                 description
74248                   "Enable SNMP 802.11 Authentication Fail Trap";
74249                 tailf:cli-full-command;
74250                 type empty;
74251               }
74252               container auth-framework {
74253                 tailf:cli-delete-when-empty;
74254                 presence "true";
74255                 leaf sec-violation {
74256                   type empty;
74257                 }
74258               }
74259               leaf bfd {
74260                 tailf:cli-full-command;
74261                 type empty;
74262               }
74263               leaf bgp {
74264                 tailf:info "Enable BGP traps";
74265                 description
74266                   "Enable BGP traps";
74267                 tailf:cli-full-command;
74268                 type empty;
74269               }
74270               container bridge {
74271                 tailf:cli-delete-when-empty;
74272                 presence "true";
74273                 leaf newroot {
74274                   type empty;
74275                 }
74276                 leaf topologychange {
74277                   type empty;
74278                 }
74279               }
74280               leaf bstun {
74281                 tailf:info "Enable SNMP BSTUN traps";
74282                 description
74283                   "Enable SNMP BSTUN traps";
74284                 tailf:cli-full-command;
74285                 type empty;
74286               }
74287               container bulkstat {
74288                 tailf:info "Enable Data-Collection-MIB Collection notifications";
74289                 description
74290                   "Enable Data-Collection-MIB Collection notifications";
74291                 tailf:cli-compact-syntax;
74292                 tailf:cli-delete-when-empty;
74293                 presence "true";
74294                 leaf collection {
74295                   tailf:info "Enable Data-Collection-MIB Collection notifications";
74296                   description
74297                     "Enable Data-Collection-MIB Collection notifications";
74298                   type empty;
74299                 }
74300                 leaf transfer {
74301                   tailf:info "Enable Data-Collection-MIB Transfer notifications";
74302                   description
74303                     "Enable Data-Collection-MIB Transfer notifications";
74304                   type empty;
74305                 }
74306               }
74307               container call-home {
74308                 tailf:info "Enable CISCO-CALLHOME-MIB traps";
74309                 description
74310                   "Enable CISCO-CALLHOME-MIB traps";
74311                 tailf:cli-delete-when-empty;
74312                 presence "true";
74313                 leaf message-send-fail {
74314                   type empty;
74315                 }
74316                 leaf server-fail {
74317                   type empty;
74318                 }
74319               }
74320               leaf c2900 {
74321                 tailf:info "Enable SNMP c2900 traps";
74322                 description
74323                   "Enable SNMP c2900 traps";
74324                 tailf:cli-full-command;
74325                 type empty;
74326               }
74327               container c6kxbar {
74328                 tailf:info "Enable SNMP CISCO-CAT6K-CROSSBAR-MIB traps";
74329                 description
74330                   "Enable SNMP CISCO-CAT6K-CROSSBAR-MIB traps";
74331                 tailf:cli-delete-when-empty;
74332                 presence "true";
74333                 leaf intbus-crcexcd {
74334                   tailf:info "Enable SNMP cc6kxbarIntBusCRCErrExcdNotif notification";
74335                   description
74336                     "Enable SNMP cc6kxbarIntBusCRCErrExcdNotif notification";
74337                   type empty;
74338                 }
74339                 leaf intbus-crcrcvrd {
74340                   tailf:info "Enable SNMP cc6kxbarIntBusCRCErrRcvrdNotif notification";
74341                   description
74342                     "Enable SNMP cc6kxbarIntBusCRCErrRcvrdNotif notification";
74343                   type empty;
74344                 }
74345                 leaf swbus {
74346                   tailf:info "Enable SNMP cc6kxbarSwBusStatusChangeNotif notification";
74347                   description
74348                     "Enable SNMP cc6kxbarSwBusStatusChangeNotif notification";
74349                   type empty;
74350                 }
74351               }
74352               leaf casa {
74353                 tailf:info "Enable SNMP casa traps";
74354                 description
74355                   "Enable SNMP casa traps";
74356                 tailf:cli-full-command;
74357                 type empty;
74358               }
74359               leaf ccme {
74360                 tailf:cli-full-command;
74361                 type empty;
74362               }
74363               container cef {
74364                 leaf resource-failure {
74365                   type empty;
74366                 }
74367                 leaf peer-state-change {
74368                   type empty;
74369                 }
74370                 leaf peer-fib-state-change {
74371                   type empty;
74372                 }
74373                 leaf inconsistency {
74374                   type empty;
74375                 }
74376               }
74377               leaf cluster {
74378                 tailf:info "Enable Cluster traps";
74379                 description
74380                   "Enable Cluster traps";
74381                 type empty;
74382               }
74383               leaf channel {
74384                 tailf:info "Enable SNMP channel traps";
74385                 description
74386                   "Enable SNMP channel traps";
74387                 tailf:cli-full-command;
74388                 type empty;
74389               }
74390               leaf chassis {
74391                 tailf:info "Enable SNMP chassis traps";
74392                 description
74393                   "Enable SNMP chassis traps";
74394                 type empty;
74395               }
74396               leaf cnpd {
74397                 tailf:info "Enable NBAR Protocol Discovery traps";
74398                 description
74399                   "Enable NBAR Protocol Discovery traps";
74400                 tailf:cli-full-command;
74401                 type empty;
74402               }
74403               leaf config {
74404                 tailf:info "Enable SNMP config traps";
74405                 description
74406                   "Enable SNMP config traps";
74407                 tailf:cli-full-command;
74408                 type empty;
74409               }
74410               leaf copy-config {
74411                 tailf:info "Enable SNMP copy-config traps";
74412                 description
74413                   "Enable SNMP copy-config traps";
74414                 tailf:cli-full-command;
74415                 type empty;
74416               }
74417               leaf config-copy {
74418                 tailf:info "Enable SNMP config-copy traps";
74419                 description
74420                   "Enable SNMP config-copy traps";
74421                 tailf:cli-full-command;
74422                 type empty;
74423               }
74424               leaf config-ctid {
74425                 tailf:cli-full-command;
74426                 type empty;
74427               }
74428               container cpu {
74429                 tailf:info "Allow cpu related traps";
74430                 description
74431                   "Allow cpu related traps";
74432                 tailf:cli-delete-when-empty;
74433                 presence "true";
74434                 leaf threshold {
74435                   tailf:info "Allow CPU utilization threshold violation traps";
74436                   description
74437                     "Allow CPU utilization threshold violation traps";
74438                   type empty;
74439                 }
74440               }
74441               leaf cpu_threshold {
74442                 tailf:info "Enables CPU threshold notifications";
74443                 description
74444                   "Enables CPU threshold notifications";
74445                 tailf:cli-full-command;
74446                 type empty;
74447               }
74448               container csg {
74449                 tailf:info "Enable SNMP CSG traps";
74450                 description
74451                   "Enable SNMP CSG traps";
74452                 tailf:cli-delete-when-empty;
74453                 presence "true";
74454                 leaf agent {
74455                   tailf:info "Enable SNMP Agent Server traps";
74456                   description
74457                     "Enable SNMP Agent Server traps";
74458                   type empty;
74459                 }
74460                 leaf database {
74461                   tailf:info "Enable SNMP CSG database traps";
74462                   description
74463                     "Enable SNMP CSG database traps";
74464                   type empty;
74465                 }
74466                 leaf quota-server {
74467                   tailf:info "Enable SNMP Quota Server traps";
74468                   description
74469                     "Enable SNMP Quota Server traps";
74470                   type empty;
74471                 }
74472               }
74473               leaf dial {
74474                 tailf:info "Enable SNMP dial control traps";
74475                 description
74476                   "Enable SNMP dial control traps";
74477                 tailf:cli-full-command;
74478                 type empty;
74479               }
74480               leaf director {
74481                 tailf:info "Enable SNMP Distributed Director traps";
74482                 description
74483                   "Enable SNMP Distributed Director traps";
74484                 tailf:cli-full-command;
74485                 type empty;
74486               }
74487               leaf dlsw {
74488                 tailf:info "Enable SNMP dlsw traps";
74489                 description
74490                   "Enable SNMP dlsw traps";
74491                 tailf:cli-full-command;
74492                 type empty;
74493               }
74494               leaf deauthenticate {
74495                 tailf:info "Enable SNMP 802.11 Deauthentication Trap";
74496                 description
74497                   "Enable SNMP 802.11 Deauthentication Trap";
74498                 tailf:cli-full-command;
74499                 type empty;
74500               }
74501               leaf disassociate {
74502                 tailf:info "Enable SNMP 802.11 Disassociation Trap";
74503                 description
74504                   "Enable SNMP 802.11 Disassociation Trap";
74505                 tailf:cli-full-command;
74506                 type empty;
74507               }
74508               leaf dnis {
74509                 tailf:info "Enable SNMP DNIS traps";
74510                 description
74511                   "Enable SNMP DNIS traps";
74512                 tailf:cli-full-command;
74513                 type empty;
74514               }
74515               leaf dot11-qos {
74516                 tailf:info "Enable SNMP 802.11 QoS Change Trap";
74517                 description
74518                   "Enable SNMP 802.11 QoS Change Trap";
74519                 tailf:cli-full-command;
74520                 type empty;
74521               }
74522               container dot1x {
74523                 leaf auth-fail-vlan {
74524                   type empty;
74525                 }
74526                 leaf guest-vlan {
74527                   type empty;
74528                 }
74529                 leaf no-auth-fail-vlan {
74530                   type empty;
74531                 }
74532                 leaf no-guest-vlan {
74533                   type empty;
74534                 }
74535               }
74536               leaf ds0-busyout {
74537                 tailf:info "Enable ds0-busyout traps";
74538                 description
74539                   "Enable ds0-busyout traps";
74540                 tailf:cli-full-command;
74541                 type empty;
74542               }
74543               leaf ds1 {
74544                 tailf:info "Enable SNMP DS1 traps";
74545                 description
74546                   "Enable SNMP DS1 traps";
74547                 tailf:cli-full-command;
74548                 type empty;
74549               }
74550               leaf ds1-loopback {
74551                 tailf:info "Enable ds1-loopback traps";
74552                 description
74553                   "Enable ds1-loopback traps";
74554                 tailf:cli-full-command;
74555                 type empty;
74556               }
74557               leaf ds3 {
74558                 tailf:info "Enable SNMP DS3 traps";
74559                 description
74560                   "Enable SNMP DS3 traps";
74561                 tailf:cli-full-command;
74562                 type empty;
74563               }
74564               container dsp {
74565                 tailf:info "Enable SNMP dsp traps";
74566                 description
74567                   "Enable SNMP dsp traps";
74568                 tailf:cli-delete-when-empty;
74569                 presence "true";
74570                 leaf card-status {
74571                   tailf:info "Enable SNMP card status of dsp traps";
74572                   description
74573                     "Enable SNMP card status of dsp traps";
74574                   type empty;
74575                 }
74576                 leaf oper-state {
74577                   type empty;
74578                 }
74579               }
74580               leaf eigrp {
74581                 tailf:info "Enable SNMP EIGRP traps";
74582                 description
74583                   "Enable SNMP EIGRP traps";
74584                 tailf:cli-full-command;
74585                 type empty;
74586               }
74587               container energywise {
74588                 tailf:cli-delete-when-empty;
74589                 presence "true";
74590                 leaf event-occured {
74591                   type empty;
74592                 }
74593                 leaf level-change {
74594                   type empty;
74595                 }
74596                 leaf neighbor-added {
74597                   type empty;
74598                 }
74599                 leaf neighbor-deleted {
74600                   type empty;
74601                 }
74602               }
74603               leaf entity {
74604                 tailf:info "Enable SNMP entity traps";
74605                 description
74606                   "Enable SNMP entity traps";
74607                 tailf:cli-full-command;
74608                 type empty;
74609               }
74610               container entity-diag {
74611                 tailf:info "Enable SNMP CISCO-ENTITY-DIAG-MIB traps";
74612                 description
74613                   "Enable SNMP CISCO-ENTITY-DIAG-MIB traps";
74614                 tailf:cli-delete-when-empty;
74615                 presence "true";
74616                 leaf boot-up-fail {
74617                   tailf:info "Enable SNMP ceDiagBootUpFailedNotif traps";
74618                   description
74619                     "Enable SNMP ceDiagBootUpFailedNotif traps";
74620                   type empty;
74621                 }
74622                 leaf hm-test-recover {
74623                   tailf:info "Enable SNMP ceDiagHMTestRecoverNotif traps";
74624                   description
74625                     "Enable SNMP ceDiagHMTestRecoverNotif traps";
74626                   type empty;
74627                 }
74628                 leaf hm-thresh-reached {
74629                   tailf:info "Enable SNMP ceDiagHMThresholdReachedNotif traps";
74630                   description
74631                     "Enable SNMP ceDiagHMThresholdReachedNotif traps";
74632                   type empty;
74633                 }
74634                 leaf scheduled-test-fail {
74635                   tailf:info "Enable SNMP ceDiagScheduledTestFailedNotif traps";
74636                   description
74637                     "Enable SNMP ceDiagScheduledTestFailedNotif traps";
74638                   type empty;
74639                 }
74640               }
74641               container envmon {
74642                 tailf:info "Enable SNMP environmental monitor traps";
74643                 description
74644                   "Enable SNMP environmental monitor traps";
74645                 tailf:cli-delete-when-empty;
74646                 presence "true";
74647                 leaf fan {
74648                   type empty;
74649                 }
74650                 leaf shutdown {
74651                   type empty;
74652                 }
74653                 leaf supply {
74654                   type empty;
74655                 }
74656                 leaf temperature {
74657                   type empty;
74658                 }
74659                 leaf status {
74660                   type empty;
74661                 }
74662               }
74663               container errdisable {
74664                 tailf:info "Enable SNMP errdisable notifications";
74665                 description
74666                   "Enable SNMP errdisable notifications";
74667                 tailf:cli-delete-when-empty;
74668                 presence "true";
74669                 leaf notification-rate {
74670                   tailf:info "Number of notifications per minute";
74671                   description
74672                     "Number of notifications per minute";
74673                   type uint16 {
74674                     tailf:info "<0-10000>;;Number of notificatios per minute";
74675                     range "0..10000";
74676                   }
74677                 }
74678               }
74679               leaf ether-oam {
74680                 tailf:cli-full-command;
74681                 type empty;
74682               }
74683               container ethernet {
74684                 container cfm {
74685                   leaf alarm {
74686                     tailf:info "Enable SNMP Ethernet CFM fault alarm trap";
74687                     description
74688                       "Enable SNMP Ethernet CFM fault alarm trap";
74689                     type empty;
74690                   }
74691                   container cc {
74692                     tailf:cli-delete-when-empty;
74693                     presence "true";
74694                     leaf config {
74695                       type empty;
74696                     }
74697                     leaf cross-connect {
74698                       type empty;
74699                     }
74700                     leaf loop {
74701                       type empty;
74702                     }
74703                     leaf mep-down {
74704                       type empty;
74705                     }
74706                     leaf mep-up {
74707                       type empty;
74708                     }
74709                   }
74710                   container crosscheck {
74711                     tailf:cli-delete-when-empty;
74712                     presence "true";
74713                     leaf mep-missing {
74714                       type empty;
74715                     }
74716                     leaf mep-unknown {
74717                       type empty;
74718                     }
74719                     leaf service-up {
74720                       type empty;
74721                     }
74722                   }
74723                 }
74724                 container evc {
74725                   tailf:info "Enable SNMP Ethernet EVC traps";
74726                   description
74727                     "Enable SNMP Ethernet EVC traps";
74728                   tailf:cli-delete-when-empty;
74729                   presence "true";
74730                   leaf create {
74731                     tailf:info "Enable SNMP Ethernet EVC create traps";
74732                     description
74733                       "Enable SNMP Ethernet EVC create traps";
74734                     type empty;
74735                   }
74736                   leaf delete {
74737                     tailf:info "Enable SNMP Ethernet EVC delete traps";
74738                     description
74739                       "Enable SNMP Ethernet EVC delete traps";
74740                     type empty;
74741                   }
74742                   leaf status {
74743                     tailf:info "Enable SNMP Ethernet EVC status traps";
74744                     description
74745                       "Enable SNMP Ethernet EVC status traps";
74746                     type empty;
74747                   }
74748                 }
74749               }
74750               leaf event-manager {
74751                 tailf:info "Enable SNMP Embedded Event Manager traps";
74752                 description
74753                   "Enable SNMP Embedded Event Manager traps";
74754                 tailf:cli-full-command;
74755                 type empty;
74756               }
74757               container firewall {
74758                 tailf:cli-delete-when-empty;
74759                 presence "true";
74760                 leaf serverstatus {
74761                   type empty;
74762                 }
74763               }
74764               container flash {
74765                 tailf:info "Enable SNMP FLASH notifications";
74766                 description
74767                   "Enable SNMP FLASH notifications";
74768                 tailf:cli-delete-when-empty;
74769                 presence "true";
74770                 leaf insertion {
74771                   tailf:info "Enable SNMP Flash Insertion notifications";
74772                   description
74773                     "Enable SNMP Flash Insertion notifications";
74774                   type empty;
74775                 }
74776                 leaf removal {
74777                   tailf:info "Enable SNMP Flash Removal notifications";
74778                   description
74779                     "Enable SNMP Flash Removal notifications";
74780                   type empty;
74781                 }
74782               }
74783               leaf flowmon {
74784                 tailf:info "Enabel SNMP flowmon notifications";
74785                 description
74786                   "Enabel SNMP flowmon notifications";
74787                 type empty;
74788               }
74789               container flex-links {
74790                 tailf:info "Enable SNMP FLEX Links traps";
74791                 description
74792                   "Enable SNMP FLEX Links traps";
74793                 tailf:cli-delete-when-empty;
74794                 presence "true";
74795                 leaf status {
74796                   tailf:info "Enable SNMP FLEX Links status change traps";
74797                   description
74798                     "Enable SNMP FLEX Links status change traps";
74799                   type empty;
74800                 }
74801               }
74802               container frame-relay {
74803                 tailf:info "Enable SNMP frame-relay traps";
74804                 description
74805                   "Enable SNMP frame-relay traps";
74806                 tailf:cli-delete-when-empty;
74807                 presence "true";
74808                 container multilink {
74809                   tailf:info "Enable MFR traps";
74810                   description
74811                     "Enable MFR traps";
74812                   leaf bundle-mismatch {
74813                     tailf:info "Enable MFR trap for inconsistent bundle event";
74814                     description
74815                       "Enable MFR trap for inconsistent bundle event";
74816                     type empty;
74817                   }
74818                 }
74819                 container subif {
74820                   tailf:info "Enable SNMP frame-relay subinterface traps";
74821                   description
74822                     "Enable SNMP frame-relay subinterface traps";
74823                   tailf:cli-delete-when-empty;
74824                   presence "true";
74825                 }
74826               }
74827               leaf fru-ctrl {
74828                 tailf:info "Enable SNMP entity FRU control traps";
74829                 description
74830                   "Enable SNMP entity FRU control traps";
74831                 tailf:cli-full-command;
74832                 type empty;
74833               }
74834               leaf gatekeeper {
74835                 tailf:info "Enable SNMP gatekeeper traps";
74836                 description
74837                   "Enable SNMP gatekeeper traps";
74838                 tailf:cli-full-command;
74839                 type empty;
74840               }
74841               leaf hsrp {
74842                 tailf:info "Enable SNMP HSRP traps";
74843                 description
74844                   "Enable SNMP HSRP traps";
74845                 tailf:cli-full-command;
74846                 type empty;
74847               }
74848               leaf icsudsu {
74849                 tailf:info "Enable SNMP ICSUDSU traps";
74850                 description
74851                   "Enable SNMP ICSUDSU traps";
74852                 tailf:cli-full-command;
74853                 type empty;
74854               }
74855               leaf ima {
74856                 tailf:info "Enable SNMP ATM IMA traps";
74857                 description
74858                   "Enable SNMP ATM IMA traps";
74859                 tailf:cli-full-command;
74860                 type empty;
74861               }
74862               leaf ipmobile {
74863                 tailf:info "Enable SNMP ipmobile traps";
74864                 description
74865                   "Enable SNMP ipmobile traps";
74866                 tailf:cli-full-command;
74867                 type empty;
74868               }
74869               leaf ipmulticast {
74870                 tailf:info "Enable SNMP ipmulticast traps";
74871                 description
74872                   "Enable SNMP ipmulticast traps";
74873                 tailf:cli-full-command;
74874                 type empty;
74875               }
74876               container ipsec {
74877                 tailf:info "Enable IPsec traps";
74878                 description
74879                   "Enable IPsec traps";
74880                 container cryptomap {
74881                   leaf add {
74882                     tailf:info "Enable IPsec Cryptomap add trap";
74883                     description
74884                       "Enable IPsec Cryptomap add trap";
74885                     tailf:cli-full-command;
74886                     type empty;
74887                   }
74888                   leaf attach {
74889                     tailf:info "Enable IPsec Cryptomap Attach trap";
74890                     description
74891                       "Enable IPsec Cryptomap Attach trap";
74892                     tailf:cli-full-command;
74893                     type empty;
74894                   }
74895                   leaf delete {
74896                     tailf:info "Enable IPsec Cryptomap delete trap";
74897                     description
74898                       "Enable IPsec Cryptomap delete trap";
74899                     tailf:cli-full-command;
74900                     type empty;
74901                   }
74902                   leaf detach {
74903                     tailf:info "Enable IPsec Cryptomap Detach trap";
74904                     description
74905                       "Enable IPsec Cryptomap Detach trap";
74906                     tailf:cli-full-command;
74907                     type empty;
74908                   }
74909                 }
74910                 container tunnel {
74911                   tailf:info "Enable IPsec Tunnel traps";
74912                   description
74913                     "Enable IPsec Tunnel traps";
74914                   leaf start {
74915                     tailf:info "Enable IPsec Tunnel Start trap";
74916                     description
74917                       "Enable IPsec Tunnel Start trap";
74918                     tailf:cli-full-command;
74919                     type empty;
74920                   }
74921                   leaf stop {
74922                     tailf:info "Enable IPsec Tunnel Stop trap";
74923                     description
74924                       "Enable IPsec Tunnel Stop trap";
74925                     tailf:cli-full-command;
74926                     type empty;
74927                   }
74928                 }
74929                 leaf too-many-sas {
74930                   tailf:info "Enable IPsec Tunnel Start trap";
74931                   description
74932                     "Enable IPsec Tunnel Start trap";
74933                   type empty;
74934                 }
74935               }
74936               container isakmp {
74937                 tailf:info "Enable ISAKMP traps traps";
74938                 description
74939                   "Enable ISAKMP traps traps";
74940                 container policy {
74941                   tailf:info "Enable ISAKMP traps";
74942                   description
74943                     "Enable ISAKMP traps";
74944                   leaf add {
74945                     tailf:info "Enable ISAKMP Policy add trap";
74946                     description
74947                       "Enable ISAKMP Policy add trap";
74948                     type empty;
74949                   }
74950                   leaf delete {
74951                     tailf:info "Enable ISAKMP Policy delete trap";
74952                     description
74953                       "Enable ISAKMP Policy delete trap";
74954                     type empty;
74955                   }
74956                 }
74957                 container tunnel {
74958                   tailf:info "Enable ISAKMP Tunnel traps";
74959                   description
74960                     "Enable ISAKMP Tunnel traps";
74961                   leaf start {
74962                     tailf:info "Enable ISAKMP Tunnel start trap";
74963                     description
74964                       "Enable ISAKMP Tunnel start trap";
74965                     type empty;
74966                   }
74967                   leaf stop {
74968                     tailf:info "Enable ISAKMP Tunnel stop trap";
74969                     description
74970                       "Enable ISAKMP Tunnel stop trap";
74971                     type empty;
74972                   }
74973                 }
74974               }
74975               container isdn {
74976                 tailf:info "Enable SNMP isdn traps";
74977                 description
74978                   "Enable SNMP isdn traps";
74979                 tailf:cli-delete-when-empty;
74980                 presence "true";
74981                 leaf call-information {
74982                   tailf:info "Enable SNMP isdn call information traps";
74983                   description
74984                     "Enable SNMP isdn call information traps";
74985                   type empty;
74986                 }
74987                 leaf chan-not-avail {
74988                   tailf:info "Enable SNMP isdn channel not avail traps";
74989                   description
74990                     "Enable SNMP isdn channel not avail traps";
74991                   type empty;
74992                 }
74993                 leaf ietf {
74994                   tailf:info "Enable SNMP isdn ietf traps";
74995                   description
74996                     "Enable SNMP isdn ietf traps";
74997                   type empty;
74998                 }
74999                 leaf layer2 {
75000                   tailf:info "Enable SNMP isdn layer2 transition traps";
75001                   description
75002                     "Enable SNMP isdn layer2 transition traps";
75003                   type empty;
75004                 }
75005               }
75006               leaf ipsla {
75007                 tailf:info "Enable IPSLA traps traps";
75008                 description
75009                   "Enable IPSLA traps traps";
75010                 tailf:cli-full-command;
75011                 type empty;
75012               }
75013               leaf isis {
75014                 tailf:info "Enable ISIS traps traps";
75015                 description
75016                   "Enable ISIS traps traps";
75017                 tailf:cli-full-command;
75018                 type empty;
75019               }
75020               container l2tc {
75021                 tailf:info "Enable SNMP L2 Tunnel Config traps";
75022                 description
75023                   "Enable SNMP L2 Tunnel Config traps";
75024                 tailf:cli-delete-when-empty;
75025                 presence "true";
75026                 tailf:cli-compact-syntax;
75027                 leaf sys-threshold {
75028                   tailf:info "Enable SNMP L2TC System threshold traps";
75029                   description
75030                     "Enable SNMP L2TC System threshold traps";
75031                   type empty;
75032                 }
75033                 leaf threshold {
75034                   tailf:info "Enable SNMP L2 Tunnel Config threshold traps";
75035                   description
75036                     "Enable SNMP L2 Tunnel Config threshold traps";
75037                   type empty;
75038                 }
75039               }
75040               container l2tun {
75041                 tailf:info "Enable SNMP L2 tunnel protocol traps";
75042                 description
75043                   "Enable SNMP L2 tunnel protocol traps";
75044                 leaf session {
75045                   tailf:info "Enable SNMP l2tun session traps";
75046                   description
75047                     "Enable SNMP l2tun session traps";
75048                   tailf:cli-full-command;
75049                   type empty;
75050                 }
75051                 container pseudowire {
75052                   leaf status {
75053                     type empty;
75054                   }
75055                 }
75056               }
75057               container license {
75058                 tailf:info "Enable license traps";
75059                 description
75060                   "Enable license traps";
75061                 tailf:cli-compact-syntax;
75062                 leaf deploy {
75063                   tailf:info "Enable license deployment traps";
75064                   description
75065                     "Enable license deployment traps";
75066                   tailf:cli-show-no;
75067                   type empty;
75068                 }
75069                 leaf error {
75070                   tailf:info "Enable license error traps";
75071                   description
75072                     "Enable license error traps";
75073                   type empty;
75074                 }
75075                 leaf usage {
75076                   tailf:info "Enable license usage traps";
75077                   description
75078                     "Enable license usage traps";
75079                   type empty;
75080                 }
75081               }
75082               container mac-notification {
75083                 tailf:info "Enable SNMP MAC Notification traps";
75084                 description
75085                   "Enable SNMP MAC Notification traps";
75086                 tailf:cli-compact-syntax;
75087                 tailf:cli-delete-when-empty;
75088                 presence "true";
75089                 leaf change {
75090                   tailf:info "Enable SNMP Change traps";
75091                   description
75092                     "Enable SNMP Change traps";
75093                   type empty;
75094                 }
75095                 leaf move {
75096                   tailf:info "Enable SNMP Move traps";
75097                   description
75098                     "Enable SNMP Move traps";
75099                   type empty;
75100                 }
75101                 leaf threshold {
75102                   tailf:info "Enable SNMP Threshold traps";
75103                   description
75104                     "Enable SNMP Threshold traps";
75105                   type empty;
75106                 }
75107               }
75108               container mac-notification2 {
75109                 tailf:alt-name "MAC-Notification";
75110                 tailf:info "Enable SNMP MAC Notification traps";
75111                 description
75112                   "Enable SNMP MAC Notification traps";
75113                 tailf:cli-delete-when-empty;
75114                 presence "true";
75115                 leaf change {
75116                   tailf:info "Enable SNMP Change traps";
75117                   description
75118                     "Enable SNMP Change traps";
75119                   type empty;
75120                 }
75121                 leaf move {
75122                   tailf:info "Enable SNMP Move traps";
75123                   description
75124                     "Enable SNMP Move traps";
75125                   type empty;
75126                 }
75127                 leaf threshold {
75128                   tailf:info "Enable SNMP Threshold traps";
75129                   description
75130                     "Enable SNMP Threshold traps";
75131                   type empty;
75132                 }
75133               }
75134               container memory {
75135                 tailf:info "Enable SNMP Memory traps";
75136                 description
75137                   "Enable SNMP Memory traps";
75138                 presence "true";
75139                 leaf bufferpeak {
75140                   tailf:info "Enable SNMP Memory Bufferpeak traps";
75141                   description
75142                     "Enable SNMP Memory Bufferpeak traps";
75143                   tailf:cli-full-command;
75144                   type empty;
75145                 }
75146               }
75147               leaf module {
75148                 tailf:info "Enable SNMP module traps";
75149                 description
75150                   "Enable SNMP module traps";
75151                 type empty;
75152               }
75153               container mpls {
75154                 tailf:info "Enable SNMP MPLS traps";
75155                 description
75156                   "Enable SNMP MPLS traps";
75157                 tailf:cli-delete-when-empty;
75158                 presence "true";
75159                 container traffic-eng {
75160                   tailf:cli-delete-when-empty;
75161                   presence "true";
75162                 }
75163                 container fast-reroute {
75164                   tailf:cli-delete-when-empty;
75165                   presence "true";
75166                   leaf protected {
75167                     type empty;
75168                   }
75169                 }
75170                 container rfc {
75171                   tailf:cli-delete-when-empty;
75172                   presence "true";
75173                   leaf ldp {
75174                     type empty;
75175                   }
75176                 }
75177                 container ldp {
75178                   tailf:info "SNMP MPLS label distribution protocol traps";
75179                   description
75180                     "SNMP MPLS label distribution protocol traps";
75181                   tailf:cli-delete-when-empty;
75182                   presence "true";
75183                   leaf pv-limit {
75184                     tailf:info "Enable MPLS LDP path vector limit mismatch traps";
75185                     description
75186                       "Enable MPLS LDP path vector limit mismatch traps";
75187                     type empty;
75188                   }
75189                   leaf session-down {
75190                     tailf:info "Enable MPLS LDP session down traps";
75191                     description
75192                       "Enable MPLS LDP session down traps";
75193                     type empty;
75194                   }
75195                   leaf session-up {
75196                     tailf:info "Enable MPLS LDP session up traps";
75197                     description
75198                       "Enable MPLS LDP session up traps";
75199                     type empty;
75200                   }
75201                   leaf threshold {
75202                     tailf:info "Enable MPLS LDP threshold exceeded traps";
75203                     description
75204                       "Enable MPLS LDP threshold exceeded traps";
75205                     type empty;
75206                   }
75207                 }
75208                 leaf vpn {
75209                   type empty;
75210                 }
75211               }
75212               leaf msdp {
75213                 tailf:info "Enable SNMP MSDP traps";
75214                 description
75215                   "Enable SNMP MSDP traps";
75216                 tailf:cli-full-command;
75217                 type empty;
75218               }
75219               leaf mvpn {
75220                 tailf:info "Enable Multicast Virtual Private Networks traps";
75221                 description
75222                   "Enable Multicast Virtual Private Networks traps";
75223                 tailf:cli-full-command;
75224                 type empty;
75225               }
75226               container nhrp {
75227                 tailf:cli-delete-when-empty;
75228                 presence "true";
75229                 container nhs {
75230                   presence "true";
75231                 }
75232                 container nhc {
75233                   presence "true";
75234                 }
75235                 container nhp {
75236                   presence "true";
75237                 }
75238                 container quota-exceeded {
75239                   presence "true";
75240                 }
75241               }
75242               container ospf {
75243                 tailf:info "Enable OSPF traps";
75244                 description
75245                   "Enable OSPF traps";
75246                 container state-change {
75247                   tailf:info "State change traps";
75248                   description
75249                     "State change traps";
75250                   tailf:cli-delete-when-empty;
75251                   presence "true";
75252                   leaf if-state-change {
75253                     tailf:info "Non-virtual interface state changes";
75254                     description
75255                       "Non-virtual interface state changes";
75256                     type empty;
75257                   }
75258                   leaf neighbor-state-change {
75259                     tailf:info "Non-virtual neighbor state changes";
75260                     description
75261                       "Non-virtual neighbor state changes";
75262                     type empty;
75263                   }
75264                   leaf virtif-state-change {
75265                     tailf:info "Virtual interface state changes";
75266                     description
75267                       "Virtual interface state changes";
75268                     type empty;
75269                   }
75270                   leaf virtneighbor-state-change {
75271                     tailf:info "Non-virtual neighbor state changes";
75272                     description
75273                       "Non-virtual neighbor state changes";
75274                     type empty;
75275                   }
75276                 }
75277                 container errors {
75278                   tailf:info "Error traps";
75279                   description
75280                     "Error traps";
75281                   tailf:cli-delete-when-empty;
75282                   presence "true";
75283                 }
75284                 container retransmit {
75285                   tailf:info "Packet retransmit traps";
75286                   description
75287                     "Packet retransmit traps";
75288                   tailf:cli-delete-when-empty;
75289                   presence "true";
75290                   leaf packets {
75291                     tailf:info "Packet retransmission on non-virtual interfaces";
75292                     description
75293                       "Packet retransmission on non-virtual interfaces";
75294                     type empty;
75295                   }
75296                   leaf virt-packets {
75297                     tailf:info "Packet retransmission on virtual interfaces";
75298                     description
75299                       "Packet retransmission on virtual interfaces";
75300                     type empty;
75301                   }
75302                 }
75303                 container lsa {
75304                   tailf:info "Lsa related traps";
75305                   description
75306                     "Lsa related traps";
75307                   tailf:cli-delete-when-empty;
75308                   presence "true";
75309                   leaf lsa-maxage {
75310                     tailf:info "Lsa aged to maxage";
75311                     description
75312                       "Lsa aged to maxage";
75313                     type empty;
75314                   }
75315                   leaf lsa-originate {
75316                     tailf:info "New lsa originated";
75317                     description
75318                       "New lsa originated";
75319                     type empty;
75320                   }
75321                 }
75322                 container cisco-specific {
75323                   tailf:info "Cisco specific traps";
75324                   description
75325                     "Cisco specific traps";
75326                   tailf:cli-delete-when-empty;
75327                   presence "true";
75328                   container state-change {
75329                     tailf:info "State change traps";
75330                     description
75331                       "State change traps";
75332                     tailf:cli-delete-when-empty;
75333                     presence "true";
75334                     leaf nssa-trans-change {
75335                       tailf:info "Nssa translator state changes";
75336                       description
75337                         "Nssa translator state changes";
75338                       type empty;
75339                     }
75340                     container shamlink {
75341                       tailf:info "Sham link state change traps";
75342                       description
75343                         "Sham link state change traps";
75344                       tailf:cli-delete-when-empty;
75345                       presence "true";
75346                       leaf interface {
75347                         tailf:info "Sham link interface state changes";
75348                         description
75349                           "Sham link interface state changes";
75350                         type empty;
75351                       }
75352                       leaf interface-old {
75353                         tailf:info "Sham link interface state changes (deprecated)";
75354                         description
75355                           "Sham link interface state changes (deprecated)";
75356                         type empty;
75357                       }
75358                       leaf neighbor {
75359                         tailf:info "Sham link neighbor state changes";
75360                         description
75361                           "Sham link neighbor state changes";
75362                         type empty;
75363                       }
75364                     }
75365                   }
75366                   container errors {
75367                     tailf:info "Error traps";
75368                     description
75369                       "Error traps";
75370                     tailf:cli-delete-when-empty;
75371                     presence "true";
75372                   }
75373                   container errdisable {
75374                     tailf:info "Enable SNMP errdisable notifications";
75375                     description
75376                       "Enable SNMP errdisable notifications";
75377                     tailf:cli-delete-when-empty;
75378                     presence "true";
75379                     leaf notification-rate {
75380                       tailf:info "Number of notifications per minute";
75381                       description
75382                         "Number of notifications per minute";
75383                       type uint16 {
75384                         tailf:info "<0-10000>;;Number of notificatios per minute";
75385                         range "0..10000";
75386                       }
75387                     }
75388                   }
75389                   container retransmit {
75390                     tailf:info "Packet retransmit traps";
75391                     description
75392                       "Packet retransmit traps";
75393                     tailf:cli-delete-when-empty;
75394                     presence "true";
75395                   }
75396                   container lsa {
75397                     tailf:info "Lsa related traps";
75398                     description
75399                       "Lsa related traps";
75400                     tailf:cli-delete-when-empty;
75401                     presence "true";
75402                     leaf lsa-maxage {
75403                       tailf:info "Lsa aged to maxage";
75404                       description
75405                         "Lsa aged to maxage";
75406                       type empty;
75407                     }
75408                     leaf lsa-originate {
75409                       tailf:info "New lsa originated";
75410                       description
75411                         "New lsa originated";
75412                       type empty;
75413                     }
75414                   }
75415                 }
75416               }
75417               container pim {
75418                 tailf:info "Enable SNMP PIM traps";
75419                 description
75420                   "Enable SNMP PIM traps";
75421                 tailf:cli-delete-when-empty;
75422                 presence "true";
75423                 leaf invalid-pim-message {
75424                   tailf:info "Enable invalid pim message trap";
75425                   description
75426                     "Enable invalid pim message trap";
75427                   type empty;
75428                 }
75429                 leaf neighbor-change {
75430                   tailf:info "Enable neighbor change trap";
75431                   description
75432                     "Enable neighbor change trap";
75433                   type empty;
75434                 }
75435                 leaf rp-mapping-change {
75436                   tailf:info "Enable rp mapping change trap";
75437                   description
75438                     "Enable rp mapping change trap";
75439                   type empty;
75440                 }
75441               }
75442               container plogd {
75443                 tailf:info "Enable SNMP plogd traps";
75444                 description
75445                   "Enable SNMP plogd traps";
75446                 presence "true";
75447               }
75448               container port-security {
75449                 tailf:info "Enable SNMP port security traps";
75450                 description
75451                   "Enable SNMP port security traps";
75452                 tailf:cli-delete-when-empty;
75453                 presence "true";
75454                 leaf trap-rate {
75455                   tailf:info "Number of traps per second";
75456                   description
75457                     "Number of traps per second";
75458                   type uint16 {
75459                     tailf:info "<0-1000>;;Number of traps per second";
75460                     range "0..1000";
75461                   }
75462                 }
75463               }
75464               container power-ethernet {
75465                 tailf:info "Enable SNMP power ethernet traps";
75466                 description
75467                   "Enable SNMP power ethernet traps";
75468                 leaf group {
75469                   tailf:info "Enable SNMP inline power group based traps";
75470                   description
75471                     "Enable SNMP inline power group based traps";
75472                   type string {
75473                     tailf:info "WORD;;The group number or list";
75474                   }
75475                 }
75476                 leaf police {
75477                   tailf:info "Enable Policing Trap";
75478                   description
75479                     "Enable Policing Trap";
75480                   type empty;
75481                 }
75482               }
75483               leaf pppoe {
75484                 tailf:info "Enable SNMP pppoe traps";
75485                 description
75486                   "Enable SNMP pppoe traps";
75487                 tailf:cli-full-command;
75488                 type empty;
75489               }
75490               container pw {
75491                 tailf:cli-delete-when-empty;
75492                 presence "true";
75493                 leaf vc {
75494                   type empty;
75495                 }
75496               }
75497               leaf rep {
75498                 tailf:cli-full-command;
75499                 type empty;
75500               }
75501               leaf resource-policy {
75502                 tailf:cli-full-command;
75503                 type empty;
75504               }
75505               leaf rf {
75506                 tailf:info "Enable all SNMP traps defined in CISCO-RF-MIB";
75507                 description
75508                   "Enable all SNMP traps defined in CISCO-RF-MIB";
75509                 tailf:cli-full-command;
75510                 type empty;
75511               }
75512               leaf rogue-ap {
75513                 tailf:info "Enable SNMP 802.11 Rogue AP Trap";
75514                 description
75515                   "Enable SNMP 802.11 Rogue AP Trap";
75516                 tailf:cli-full-command;
75517                 type empty;
75518               }
75519               leaf rsvp {
75520                 tailf:info "Enable RSVP flow change traps";
75521                 description
75522                   "Enable RSVP flow change traps";
75523                 tailf:cli-full-command;
75524                 type empty;
75525               }
75526               leaf rtr {
75527                 tailf:info "Enable SNMP Response Time Reporter traps";
75528                 description
75529                   "Enable SNMP Response Time Reporter traps";
75530                 tailf:cli-full-command;
75531                 type empty;
75532               }
75533               container slb {
75534                 tailf:info "Enable SNMP SLB traps";
75535                 description
75536                   "Enable SNMP SLB traps";
75537                 tailf:cli-delete-when-empty;
75538                 presence "true";
75539                 leaf csrp {
75540                   tailf:info "Enable SNMP SLB Fault Tolerance Replication Protocol traps";
75541                   description
75542                     "Enable SNMP SLB Fault Tolerance Replication Protocol traps";
75543                   type empty;
75544                 }
75545                 leaf real {
75546                   tailf:info "Enable SNMP SLB Real Server traps";
75547                   description
75548                     "Enable SNMP SLB Real Server traps";
75549                   type empty;
75550                 }
75551                 leaf virtual {
75552                   tailf:info "Enable SNMP SLB Virtual Server traps";
75553                   description
75554                     "Enable SNMP SLB Virtual Server traps";
75555                   type empty;
75556                 }
75557               }
75558               container snmp {
75559                 tailf:info "Enable SNMP traps";
75560                 description
75561                   "Enable SNMP traps";
75562                 tailf:cli-compact-syntax;
75563                 leaf authentication {
75564                   tailf:info "Enable authentication trap";
75565                   description
75566                     "Enable authentication trap";
75567                   type empty;
75568                 }
75569                 leaf coldstart {
75570                   tailf:info "Enable coldStart trap";
75571                   description
75572                     "Enable coldStart trap";
75573                   type empty;
75574                 }
75575                 leaf linkdown {
75576                   tailf:info "Enable linkDown trap";
75577                   description
75578                     "Enable linkDown trap";
75579                   type empty;
75580                 }
75581                 leaf linkup {
75582                   tailf:info "Enable linkUp trap";
75583                   description
75584                     "Enable linkUp trap";
75585                   type empty;
75586                 }
75587                 leaf warmstart {
75588                   tailf:info "Enable warmStart trap";
75589                   description
75590                     "Enable warmStart trap";
75591                   type empty;
75592                 }
75593               }
75594               leaf sonet {
75595                 tailf:info "Enable SNMP SONET traps";
75596                 description
75597                   "Enable SNMP SONET traps";
75598                 type empty;
75599               }
75600               leaf srst {
75601                 tailf:cli-full-command;
75602                 type empty;
75603               }
75604               leaf srp {
75605                 tailf:info "Enable SRP protocol traps";
75606                 description
75607                   "Enable SRP protocol traps";
75608                 tailf:cli-full-command;
75609                 type empty;
75610               }
75611               container stackwise {
75612                 tailf:info "Enable SNMP stackwise traps";
75613                 description
75614                   "Enable SNMP stackwise traps";
75615                 tailf:cli-delete-when-empty;
75616                 presence "true";
75617                 leaf GLS {
75618                   tailf:info "Enable STACKWISE stack power GLS trap";
75619                   description
75620                     "Enable STACKWISE stack power GLS trap";
75621                   type empty;
75622                 }
75623                 leaf ILS {
75624                   tailf:info "Enable STACKWISE stack power ILS trap";
75625                   description
75626                     "Enable STACKWISE stack power ILS trap";
75627                   type empty;
75628                 }
75629                 leaf SRLS {
75630                   tailf:info "Enable STACKWISE stack power SRLS trap";
75631                   description
75632                     "Enable STACKWISE stack power SRLS trap";
75633                   type empty;
75634                 }
75635                 leaf insufficient-power {
75636                   tailf:info "Enable STACKWISE stack power unbalanced power supplies trap";
75637                   description
75638                     "Enable STACKWISE stack power unbalanced power supplies trap";
75639                   type empty;
75640                 }
75641                 leaf invalid-input-current {
75642                   tailf:info "Enable STACKWISE stack power invalid input current trap";
75643                   description
75644                     "Enable STACKWISE stack power invalid input current trap";
75645                   type empty;
75646                 }
75647                 leaf invalid-output-current {
75648                   tailf:info "Enable STACKWISE stack power invalid output current trap";
75649                   description
75650                     "Enable STACKWISE stack power invalid output current trap";
75651                   type empty;
75652                 }
75653                 leaf member-removed {
75654                   tailf:info "Enable STACKWISE stack member removed trap";
75655                   description
75656                     "Enable STACKWISE stack member removed trap";
75657                   type empty;
75658                 }
75659                 leaf member-upgrade-notification {
75660                   tailf:info "Enable STACKWISE member to be reloaded for upgrade trap";
75661                   description
75662                     "Enable STACKWISE member to be reloaded for upgrade trap";
75663                   type empty;
75664                 }
75665                 leaf new-master {
75666                   tailf:info "Enable STACKWISE new master trap";
75667                   description
75668                     "Enable STACKWISE new master trap";
75669                   type empty;
75670                 }
75671                 leaf new-member {
75672                   tailf:info "Enable STACKWISE stack new member trap";
75673                   description
75674                     "Enable STACKWISE stack new member trap";
75675                   type empty;
75676                 }
75677                 leaf port-change {
75678                   tailf:info "Enable STACKWISE port change trap";
75679                   description
75680                     "Enable STACKWISE port change trap";
75681                   type empty;
75682                 }
75683                 leaf power-budget-warning {
75684                   tailf:info "Enable STACKWISE stack power budget warning trap";
75685                   description
75686                     "Enable STACKWISE stack power budget warning trap";
75687                   type empty;
75688                 }
75689                 leaf power-invalid-topology {
75690                   tailf:info "Enable STACKWISE stack power invalid topology trap";
75691                   description
75692                     "Enable STACKWISE stack power invalid topology trap";
75693                   type empty;
75694                 }
75695                 leaf power-link-status-changed {
75696                   tailf:info "Enable STACKWISE stack power link status changed trap";
75697                   description
75698                     "Enable STACKWISE stack power link status changed trap";
75699                   type empty;
75700                 }
75701                 leaf power-oper-status-changed {
75702                   tailf:info "Enable STACKWISE stack power port oper status changed trap";
75703                   description
75704                     "Enable STACKWISE stack power port oper status changed trap";
75705                   type empty;
75706                 }
75707                 leaf power-priority-conflict {
75708                   tailf:info "Enable STACKWISE stack power priority conflict trap";
75709                   description
75710                     "Enable STACKWISE stack power priority conflict trap";
75711                   type empty;
75712                 }
75713                 leaf power-version-mismatch {
75714                   tailf:info "Enable STACKWISE stack power version mismatch discovered trap";
75715                   description
75716                     "Enable STACKWISE stack power version mismatch discovered trap";
75717                   type empty;
75718                 }
75719                 leaf ring-redundant {
75720                   tailf:info "Enable STACKWISE stack ring redundant trap";
75721                   description
75722                     "Enable STACKWISE stack ring redundant trap";
75723                   type empty;
75724                 }
75725                 leaf stack-mismatch {
75726                   tailf:info "Enable STACKWISE stack mismatch trap";
75727                   description
75728                     "Enable STACKWISE stack mismatch trap";
75729                   type empty;
75730                 }
75731                 leaf unbalanced-power-supplies {
75732                   tailf:info "Enable STACKWISE stack power unbalanced power supplies trap";
75733                   description
75734                     "Enable STACKWISE stack power unbalanced power supplies trap";
75735                   type empty;
75736                 }
75737                 leaf under-budget {
75738                   tailf:info "Enable STACKWISE stack power under budget trap";
75739                   description
75740                     "Enable STACKWISE stack power under budget trap";
75741                   type empty;
75742                 }
75743                 leaf under-voltage {
75744                   tailf:info "Enable STACKWISE stack power under voltage trap";
75745                   description
75746                     "Enable STACKWISE stack power under voltage trap";
75747                   type empty;
75748                 }
75749               }
75750               container stpx {
75751                 tailf:cli-delete-when-empty;
75752                 presence "true";
75753                 leaf inconsistency {
75754                   type empty;
75755                 }
75756                 leaf root-inconsistency {
75757                   type empty;
75758                 }
75759                 leaf loop-inconsistency {
75760                   type empty;
75761                 }
75762               }
75763               leaf stun {
75764                 tailf:info "Enable SNMP STUN traps";
75765                 description
75766                   "Enable SNMP STUN traps";
75767                 tailf:cli-full-command;
75768                 type empty;
75769               }
75770               leaf switch-over {
75771                 tailf:info "Enable SNMP 802.11 Standby Switch-over Trap";
75772                 description
75773                   "Enable SNMP 802.11 Standby Switch-over Trap";
75774                 tailf:cli-full-command;
75775                 type empty;
75776               }
75777               leaf syslog {
75778                 tailf:info "Enable SNMP syslog traps";
75779                 description
75780                   "Enable SNMP syslog traps";
75781                 tailf:cli-full-command;
75782                 type empty;
75783               }
75784               container transceiver {
75785                 leaf all {
75786                   type empty;
75787                 }
75788               }
75789               leaf tty {
75790                 tailf:info "Enable TCP connection traps";
75791                 description
75792                   "Enable TCP connection traps";
75793                 tailf:cli-full-command;
75794                 type empty;
75795               }
75796               container udld {
75797                 tailf:info "Enable SNMP CISCO-UDLDP-MIB traps";
75798                 description
75799                   "Enable SNMP CISCO-UDLDP-MIB traps";
75800                 tailf:cli-compact-syntax;
75801                 tailf:cli-delete-when-empty;
75802                 presence "true";
75803                 leaf link-fail-rpt {
75804                   tailf:info "Enable SNMP cudldpFastHelloLinkFailRptNotification traps";
75805                   description
75806                     "Enable SNMP cudldpFastHelloLinkFailRptNotification traps";
75807                   type empty;
75808                 }
75809                 leaf status-change {
75810                   tailf:info "Enable SNMP cudldpFastHelloStatusChangeNotification traps";
75811                   description
75812                     "Enable SNMP cudldpFastHelloStatusChangeNotification traps";
75813                   type empty;
75814                 }
75815               }
75816               leaf vlancreate {
75817                 tailf:cli-full-command;
75818                 type empty;
75819               }
75820               leaf vlandelete {
75821                 tailf:cli-full-command;
75822                 type empty;
75823               }
75824               leaf vlan-mac-limit {
75825                 tailf:info "Enable SNMP L2 Control VLAN MAC Limit notifications";
75826                 description
75827                   "Enable SNMP L2 Control VLAN MAC Limit notifications";
75828                 type empty;
75829               }
75830               leaf vlan-membership {
75831                 tailf:cli-full-command;
75832                 type empty;
75833               }
75834               leaf voice {
75835                 tailf:info "Enable SNMP voice traps";
75836                 description
75837                   "Enable SNMP voice traps";
75838                 tailf:cli-full-command;
75839                 type empty;
75840               }
75841               container vrfmib {
75842                 leaf vrf-up {
75843                   type empty;
75844                 }
75845                 leaf vrf-down {
75846                   type empty;
75847                 }
75848                 leaf vnet-trunk-up {
75849                   type empty;
75850                 }
75851                 leaf vnet-trunk-down {
75852                   type empty;
75853                 }
75854               }
75855               leaf vrrp {
75856                 tailf:info "Enable SNMP vrrp traps";
75857                 description
75858                   "Enable SNMP vrrp traps";
75859                 tailf:cli-full-command;
75860                 type empty;
75861               }
75862               leaf vsimaster {
75863                 tailf:info "Allow SNMP vsimaster traps";
75864                 description
75865                   "Allow SNMP vsimaster traps";
75866                 tailf:cli-full-command;
75867                 type empty;
75868               }
75869               container vstack {
75870                 tailf:info "Enable SNMP Smart Install traps";
75871                 description
75872                   "Enable SNMP Smart Install traps";
75873                 tailf:cli-delete-when-empty;
75874                 presence "true";
75875                 tailf:cli-compact-syntax;
75876                 leaf addition {
75877                   tailf:info "Enable client added trap";
75878                   description
75879                     "Enable client added trap";
75880                   type empty;
75881                 }
75882                 leaf failure {
75883                   tailf:info "Enable file upload/download failure trap";
75884                   description
75885                     "Enable file upload/download failure trap";
75886                   type empty;
75887                 }
75888                 leaf lost {
75889                   tailf:info "Enable client lost trap";
75890                   description
75891                     "Enable client lost trap";
75892                   type empty;
75893                 }
75894                 leaf operation {
75895                   tailf:info "Enable operation mode change trap";
75896                   description
75897                     "Enable operation mode change trap";
75898                   type empty;
75899                 }
75900               }
75901               leaf vtp {
75902                 tailf:cli-full-command;
75903                 type empty;
75904               }
75905               leaf wlan-wep {
75906                 tailf:info "Enable SNMP 802.11 WLAN WEP Trap";
75907                 description
75908                   "Enable SNMP 802.11 WLAN WEP Trap";
75909                 tailf:cli-full-command;
75910                 type empty;
75911               }
75912               leaf xgcp {
75913                 tailf:info "Enable XGCP protocol traps";
75914                 description
75915                   "Enable XGCP protocol traps";
75916                 tailf:cli-full-command;
75917                 type empty;
75918               }
75919             }
75920           }
75921         }
75922       }
75923       container engineID {
75924         tailf:info "Configure a local or remote SNMPv3 engineID";
75925         description
75926           "Configure a local or remote SNMPv3 engineID";
75927         leaf local {
75928           tailf:info "engineID of the local agent";
75929           description
75930             "engineID of the local agent";
75931           type string {
75932             tailf:info "WORD;;engine ID octet string";
75933             length "1..24";
75934           }
75935         }
75936         container remote {
75937           tailf:info "engineID of the remote agent";
75938         }
75939       }
75940       list group {
75941         tailf:info "Define a User Security Model group";
75942         description
75943           "Define a User Security Model group";
75944         tailf:cli-suppress-mode;
75945         tailf:cli-delete-when-empty;
75946         tailf:cli-compact-syntax;
75947         tailf:cli-sequence-commands;
75948         key "id";
75949         leaf id {
75950           type string {
75951             tailf:info "WORD;;Name of the group";
75952           }
75953         }
75954         choice security-model {
75955           container v1 {
75956             tailf:info "group using the v1 security model";
75957           }
75958           container v2c {
75959             tailf:info "group using the v2c security model";
75960           }
75961           container v3 {
75962             tailf:info "group using the User Security Model (SNMPv3)";
75963             description
75964               "group using the User Security Model (SNMPv3)";
75965             tailf:cli-compact-syntax;
75966             tailf:cli-sequence-commands {
75967               tailf:cli-reset-siblings;
75968             }
75969             leaf security-level {
75970               tailf:cli-drop-node-name;
75971               type enumeration {
75972                 enum "auth" {
75973                   tailf:info "group using the authNoPriv Security Level";
75974                 }
75975                 enum "noauth" {
75976                   tailf:info "group using the noAuthNoPriv Security Level";
75977                 }
75978                 enum "priv" {
75979                   tailf:info "group using SNMPv3 authPriv security level";
75980                 }
75981               }
75982             }
75983             leaf context {
75984               tailf:cli-optional-in-sequence;
75985               tailf:info "specify a context to associate these views for the group";
75986               description
75987                 "specify a context to associate these views for the group";
75988               type string {
75989                 tailf:info "WORD;;context name";
75990               }
75991             }
75992             leaf match {
75993               tailf:cli-optional-in-sequence;
75994               tailf:info "context name match criteria";
75995               description
75996                 "context name match criteria";
75997               type enumeration {
75998                 enum "exact" {
75999                   tailf:info "match the exact context";
76000                 }
76001                 enum "prefix" {
76002                   tailf:info "only match the context prefix";
76003                 }
76004               }
76005             }
76006             leaf read {
76007               tailf:cli-optional-in-sequence;
76008               tailf:info "specify a read view for the group";
76009               description
76010                 "specify a read view for the group";
76011               type string {
76012                 tailf:info "WORD;;read view name";
76013               }
76014             }
76015             leaf write {
76016               tailf:cli-optional-in-sequence;
76017               tailf:info "specify a write view for the group";
76018               description
76019                 "specify a write view for the group";
76020               type string {
76021                 tailf:info "WORD;;write view name";
76022               }
76023             }
76024             leaf notify {
76025               tailf:cli-optional-in-sequence;
76026               tailf:info "specify a notify view for the group";
76027               description
76028                 "specify a notify view for the group";
76029               type string {
76030                 tailf:info "WORD;;notify view name";
76031               }
76032             }
76033             leaf access {
76034               tailf:info "specify an access-list associated with this group";
76035               description
76036                 "specify an access-list associated with this group";
76037               type union {
76038                 type uint8 {
76039                   tailf:info "<1-99>;;Std IP accesslist allowing access with this group";
76040                   range "1..99";
76041                 }
76042                 type string {
76043                   tailf:info "WORD;;Access-list name";
76044                 }
76045               }
76046             }
76047           }
76048         }
76049       }
76050       list host {
76051         tailf:info "Specify hosts to receive SNMP notifications";
76052         description
76053           "Specify hosts to receive SNMP notifications";
76054         tailf:cli-suppress-mode;
76055         tailf:cli-delete-when-empty;
76056         tailf:cli-sequence-commands;
76057         tailf:cli-compact-syntax;
76058         tailf:cli-incomplete-command;
76059         key "ip-address";
76060         leaf ip-address {
76061           type host-type {
76062             tailf:info "WORD;;Hostname or IP/IPv6 address of SNMP notification host";
76063           }
76064         }
76065         leaf vrf {
76066           tailf:info "VPN Routing instance for this host";
76067           description
76068             "VPN Routing instance for this host";
76069           tailf:cli-optional-in-sequence;
76070           tailf:cli-incomplete-command;
76071           tailf:cli-diff-dependency "/ios:native/ip/vrf";
76072           tailf:cli-diff-dependency "/ios:native/vrf/definition";
76073           type string;
76074         }
76075         choice informs-traps-choice {
76076           leaf informs {
76077             tailf:info "Send Inform messages to this host";
76078             description
76079               "Send Inform messages to this host";
76080             tailf:cli-optional-in-sequence;
76081             tailf:cli-incomplete-command;
76082             type empty;
76083           }
76084           leaf traps {
76085             tailf:info "Send Trap messages to this host";
76086             description
76087               "Send Trap messages to this host";
76088             tailf:cli-optional-in-sequence;
76089             tailf:cli-incomplete-command;
76090             type empty;
76091           }
76092           default "traps";
76093         }
76094         container version {
76095           tailf:info "SNMP version to use for notification messages";
76096           description
76097             "SNMP version to use for notification messages";
76098           tailf:cli-optional-in-sequence;
76099           tailf:cli-flatten-container;
76100           tailf:cli-incomplete-command;
76101           leaf version {
76102             tailf:cli-drop-node-name;
76103             type enumeration {
76104               enum "1" {
76105                 tailf:info "Use SNMPv1";
76106               }
76107               enum "2c" {
76108                 tailf:info "Use SNMPv2c";
76109               }
76110               enum "3" {
76111                 tailf:info "Use SNMPv3";
76112               }
76113             }
76114           }
76115           leaf security-level {
76116             tailf:cli-drop-node-name;
76117             when "../version = '3'";
76118             type enumeration {
76119               enum "auth" {
76120                 tailf:info "Use the SNMPv3 authNoPriv Security Level";
76121               }
76122               enum "noauth" {
76123                 tailf:info "Use the SNMPv3 noAuthNoPriv Security Level";
76124               }
76125               enum "priv" {
76126                 tailf:info "Use the SNMPv3 authPriv Security Level";
76127               }
76128             }
76129           }
76130         }
76131         list community-string {
76132           tailf:cli-drop-node-name;
76133           tailf:cli-suppress-mode;
76134           tailf:cli-compact-syntax;
76135           tailf:cli-delete-when-empty;
76136           key "name";
76137           leaf name {
76138             type string {
76139               tailf:info "WORD;;SNMPv1/v2c community string or SNMPv3 user name";
76140             }
76141           }
76142           leaf aaa_server {
76143             tailf:info "Allow SNMP AAA traps";
76144             description
76145               "Allow SNMP AAA traps";
76146             type empty;
76147           }
76148           leaf alarms {
76149             tailf:info "Allow SNMP alarms traps";
76150             description
76151               "Allow SNMP alarms traps";
76152             type empty;
76153           }
76154           leaf atm {
76155             tailf:info "Allow SNMP atm traps";
76156             description
76157               "Allow SNMP atm traps";
76158             type empty;
76159           }
76160           leaf bfd {
76161             tailf:info "Allow SNMP BFD traps";
76162             description
76163               "Allow SNMP BFD traps";
76164             type empty;
76165           }
76166           leaf bgp {
76167             tailf:info "Allow BGP state change traps";
76168             description
76169               "Allow BGP state change traps";
76170             type empty;
76171           }
76172           leaf bstun {
76173             tailf:info "Allow bstun event traps";
76174             description
76175               "Allow bstun event traps";
76176             type empty;
76177           }
76178           leaf bulkstat {
76179             tailf:info "Allow Data-Collection-MIB traps";
76180             description
76181               "Allow Data-Collection-MIB traps";
76182             type empty;
76183           }
76184           leaf call-home {
76185             tailf:info "Allow SNMP CISCO-CALLHOME-MIB traps";
76186             description
76187               "Allow SNMP CISCO-CALLHOME-MIB traps";
76188             type empty;
76189           }
76190           leaf casa {
76191             tailf:info "Allow casa event traps";
76192             description
76193               "Allow casa event traps";
76194             type empty;
76195           }
76196           leaf cef {
76197             tailf:info "Allows cef traps";
76198             description
76199               "Allows cef traps";
76200             type empty;
76201           }
76202           leaf cnpd {
76203             tailf:info "Allow NBAR Protocol Discovery traps";
76204             description
76205               "Allow NBAR Protocol Discovery traps";
76206             type empty;
76207           }
76208           leaf config {
76209             tailf:info "Allow SNMP config traps";
76210             description
76211               "Allow SNMP config traps";
76212             type empty;
76213           }
76214           leaf config-copy {
76215             tailf:info "Allow SNMP config-copy traps";
76216             description
76217               "Allow SNMP config-copy traps";
76218             type empty;
76219           }
76220           leaf config-ctid {
76221             tailf:info "Allow SNMP config-ctid traps";
76222             description
76223               "Allow SNMP config-ctid traps";
76224             type empty;
76225           }
76226           leaf cpu {
76227             tailf:info "Allow cpu related traps";
76228             description
76229               "Allow cpu related traps";
76230             type empty;
76231           }
76232           leaf dhcp {
76233             tailf:info "Allow dhcp traps";
76234             description
76235               "Allow dhcp traps";
76236             type empty;
76237           }
76238           leaf dlsw {
76239             tailf:info "Allow dlsw traps";
76240             description
76241               "Allow dlsw traps";
76242             type empty;
76243           }
76244           leaf ds1 {
76245             tailf:info "Allow SNMP ds1 traps";
76246             description
76247               "Allow SNMP ds1 traps";
76248             type empty;
76249           }
76250           leaf dsp {
76251             tailf:info "Allow SNMP DSP traps";
76252             description
76253               "Allow SNMP DSP traps";
76254             type empty;
76255           }
76256           leaf dspu {
76257             tailf:info "Allow dspu event traps";
76258             description
76259               "Allow dspu event traps";
76260             type empty;
76261           }
76262           leaf eigrp {
76263             tailf:info "Allow SNMP EIGRP traps";
76264             description
76265               "Allow SNMP EIGRP traps";
76266             type empty;
76267           }
76268           leaf entity {
76269             tailf:info "Allow SNMP entity traps";
76270             description
76271               "Allow SNMP entity traps";
76272             type empty;
76273           }
76274           leaf entity-diag {
76275             tailf:info "Allow SNMP CISCO-ENTITY-DIAG-MIB traps";
76276             description
76277               "Allow SNMP CISCO-ENTITY-DIAG-MIB traps";
76278             type empty;
76279           }
76280           leaf entity-qfp {
76281             tailf:info "Allow SNMP CISCO-ENTITY-QFP-MIB traps";
76282             description
76283               "Allow SNMP CISCO-ENTITY-QFP-MIB traps";
76284             type empty;
76285           }
76286           leaf entity-state {
76287             tailf:info "Allow ENTITY-STATE-MIB traps";
76288             description
76289               "Allow ENTITY-STATE-MIB traps";
76290             type empty;
76291           }
76292           leaf ethernet-cfm {
76293             tailf:info "Allow SNMP Ethernet CFM traps";
76294             description
76295               "Allow SNMP Ethernet CFM traps";
76296             type empty;
76297           }
76298           leaf evc {
76299             tailf:info "Allow SNMP EVC traps";
76300             description
76301               "Allow SNMP EVC traps";
76302             type empty;
76303           }
76304           leaf event-manager {
76305             tailf:info "Allow SNMP Embedded Event Manager traps";
76306             description
76307               "Allow SNMP Embedded Event Manager traps";
76308             type empty;
76309           }
76310           leaf firewall {
76311             tailf:info "Allow SNMP Firewall traps";
76312             description
76313               "Allow SNMP Firewall traps";
76314             type empty;
76315           }
76316           leaf flash {
76317             tailf:info "Allow SNMP FLASH traps";
76318             description
76319               "Allow SNMP FLASH traps";
76320             type empty;
76321           }
76322           leaf flowmon {
76323             tailf:info "Allow SNMP flow monitor notifications";
76324             description
76325               "Allow SNMP flow monitor notifications";
76326             type empty;
76327           }
76328           leaf frame-relay {
76329             tailf:info "Allow SNMP frame-relay traps";
76330             description
76331               "Allow SNMP frame-relay traps";
76332             type empty;
76333           }
76334           leaf fru-ctrl {
76335             tailf:info "Allow entity FRU control traps";
76336             description
76337               "Allow entity FRU control traps";
76338             type empty;
76339           }
76340           leaf gdoi {
76341             tailf:info "Allows gdoi traps";
76342             description
76343               "Allows gdoi traps";
76344             type empty;
76345           }
76346           leaf hsrp {
76347             tailf:info "Allow SNMP HSRP traps";
76348             description
76349               "Allow SNMP HSRP traps";
76350             type empty;
76351           }
76352           leaf iplocalpool {
76353             tailf:info "Allow SNMP IP Local Pool traps";
76354             description
76355               "Allow SNMP IP Local Pool traps";
76356             type empty;
76357           }
76358           leaf ipmulticast {
76359             tailf:info "Allow SNMP ipmulticast traps";
76360             description
76361               "Allow SNMP ipmulticast traps";
76362             type empty;
76363           }
76364           leaf ipsec {
76365             tailf:info "Allow SNMP IPsec traps";
76366             description
76367               "Allow SNMP IPsec traps";
76368             type empty;
76369           }
76370           leaf ipsla {
76371             tailf:info "Allow SNMP Host IP SLA traps";
76372             description
76373               "Allow SNMP Host IP SLA traps";
76374             type empty;
76375           }
76376           leaf isakmp {
76377             tailf:info "Allow SNMP ISAKMP traps";
76378             description
76379               "Allow SNMP ISAKMP traps";
76380             type empty;
76381           }
76382           leaf isg-mib {
76383             tailf:info "Allow SNMP isgmib traps";
76384             description
76385               "Allow SNMP isgmib traps";
76386             type empty;
76387           }
76388           leaf isis {
76389             tailf:info "Allow IS-IS traps";
76390             description
76391               "Allow IS-IS traps";
76392             type empty;
76393           }
76394           leaf l2tun-pseudowire-status {
76395             tailf:info "Allow SNMP L2 pseudowire status traps";
76396             description
76397               "Allow SNMP L2 pseudowire status traps";
76398             type empty;
76399           }
76400           leaf l2tun-session {
76401             tailf:info "Allow SNMP L2 session traps";
76402             description
76403               "Allow SNMP L2 session traps";
76404             type empty;
76405           }
76406           leaf license {
76407             tailf:info "Allow license traps";
76408             description
76409               "Allow license traps";
76410             type empty;
76411           }
76412           leaf memory {
76413             tailf:info "Allow SNMP Mempool traps";
76414             description
76415               "Allow SNMP Mempool traps";
76416             type empty;
76417           }
76418           leaf mpls-fast-reroute {
76419             tailf:info "Allow SNMP MPLS traffic engineering fast reroute traps";
76420             description
76421               "Allow SNMP MPLS traffic engineering fast reroute traps";
76422             type empty;
76423           }
76424           leaf mpls-ldp {
76425             tailf:info "Allow SNMP MPLS label distribution protocol traps";
76426             description
76427               "Allow SNMP MPLS label distribution protocol traps";
76428             type empty;
76429           }
76430           leaf mpls-traffic-eng {
76431             tailf:info "Allow SNMP MPLS traffic engineering traps";
76432             description
76433               "Allow SNMP MPLS traffic engineering traps";
76434             type empty;
76435           }
76436           leaf mpls-vpn {
76437             tailf:info "Allow SNMP MPLS Virtual Private Network traps";
76438             description
76439               "Allow SNMP MPLS Virtual Private Network traps";
76440             type empty;
76441           }
76442           leaf msdp {
76443             tailf:info "Allow SNMP MSDP traps";
76444             description
76445               "Allow SNMP MSDP traps";
76446             type empty;
76447           }
76448           leaf mvpn {
76449             tailf:info "Allow Multicast Virtual Private Network traps";
76450             description
76451               "Allow Multicast Virtual Private Network traps";
76452             type empty;
76453           }
76454           leaf nhrp {
76455             tailf:info "Allow SNMP NHRP traps";
76456             description
76457               "Allow SNMP NHRP traps";
76458             type empty;
76459           }
76460           leaf ospf {
76461             tailf:info "Allow OSPF traps";
76462             description
76463               "Allow OSPF traps";
76464             type empty;
76465           }
76466           leaf ospfv3 {
76467             tailf:info "Allow OSPFv3 traps";
76468             description
76469               "Allow OSPFv3 traps";
76470             type empty;
76471           }
76472           leaf pfr {
76473             tailf:info "Allow SNMP PfR traps";
76474             description
76475               "Allow SNMP PfR traps";
76476             type empty;
76477           }
76478           leaf pim {
76479             tailf:info "Allow SNMP PIM traps";
76480             description
76481               "Allow SNMP PIM traps";
76482             type empty;
76483           }
76484           leaf pw-vc {
76485             tailf:info "Allow SNMP Pseudowire VC traps";
76486             description
76487               "Allow SNMP Pseudowire VC traps";
76488             type empty;
76489           }
76490           leaf resource-policy {
76491             tailf:info "Enable CISCO-ERM-MIB notifications";
76492             description
76493               "Enable CISCO-ERM-MIB notifications";
76494             type empty;
76495           }
76496           leaf rf {
76497             tailf:info "Allow all SNMP traps defined in CISCO-RF-MIB";
76498             description
76499               "Allow all SNMP traps defined in CISCO-RF-MIB";
76500             type empty;
76501           }
76502           leaf rsrb {
76503             tailf:info "Allow rsrb event traps";
76504             description
76505               "Allow rsrb event traps";
76506             type empty;
76507           }
76508           leaf rsvp {
76509             tailf:info "Allow RSVP flow change traps";
76510             description
76511               "Allow RSVP flow change traps";
76512             type empty;
76513           }
76514           leaf sdlc {
76515             tailf:info "Allow sdlc event traps";
76516             description
76517               "Allow sdlc event traps";
76518             type empty;
76519           }
76520           leaf sdllc {
76521             tailf:info "Allow sdllc event traps";
76522             description
76523               "Allow sdllc event traps";
76524             type empty;
76525           }
76526           leaf snmp {
76527             tailf:info "Allow SNMP-type notifications";
76528             description
76529               "Allow SNMP-type notifications";
76530             type empty;
76531           }
76532           leaf sonet {
76533             tailf:info "Allow SNMP SONET traps";
76534             description
76535               "Allow SNMP SONET traps";
76536             type empty;
76537           }
76538           leaf srp {
76539             tailf:info "Allow SRP protocol traps";
76540             description
76541               "Allow SRP protocol traps";
76542             type empty;
76543           }
76544           leaf stun {
76545             tailf:info "Allow stun event traps";
76546             description
76547               "Allow stun event traps";
76548             type empty;
76549           }
76550           leaf syslog {
76551             tailf:info "Allow SNMP syslog traps";
76552             description
76553               "Allow SNMP syslog traps";
76554             type empty;
76555           }
76556           leaf trustsec-sxp {
76557             tailf:info "Allow SNMP CISCO-TRUSTSEC-SXP-MIB traps";
76558             description
76559               "Allow SNMP CISCO-TRUSTSEC-SXP-MIB traps";
76560             type empty;
76561           }
76562           leaf tty {
76563             tailf:info "Allow TCP connection traps";
76564             description
76565               "Allow TCP connection traps";
76566             type empty;
76567           }
76568           leaf udp-port {
76569             tailf:info "The notification host's UDP port number (default port 162)";
76570             description
76571               "The notification host's UDP port number (default port 162)";
76572             type uint16 {
76573               tailf:info "<0-65535>;;The notification host's UDP port number";
76574             }
76575           }
76576           leaf voice {
76577             tailf:info "Allow SNMP Voice traps";
76578             description
76579               "Allow SNMP Voice traps";
76580             type empty;
76581           }
76582           leaf vrfmib {
76583             tailf:info "Allow SNMP vrfmib traps";
76584             description
76585               "Allow SNMP vrfmib traps";
76586             type empty;
76587           }
76588           leaf vrrp {
76589             tailf:info "Allow SNMP vrrp traps";
76590             description
76591               "Allow SNMP vrrp traps";
76592             type empty;
76593           }
76594           leaf x25 {
76595             tailf:info "Allow x25 event traps";
76596             description
76597               "Allow x25 event traps";
76598             type empty;
76599           }
76600         }
76601       }
76602       container ip {
76603         tailf:info "IP ToS configuration for SNMP traffic";
76604         description
76605           "IP ToS configuration for SNMP traffic";
76606         leaf dscp {
76607           tailf:info "IP DSCP value for SNMP traffic";
76608           description
76609             "IP DSCP value for SNMP traffic";
76610           type uint8 {
76611             tailf:info "<0-63>;;ip dscp value (default value 0 )";
76612             range "0..63";
76613           }
76614         }
76615         leaf precedence {
76616           tailf:info "IP Precedence value for SNMP traffic";
76617           description
76618             "IP Precedence value for SNMP traffic";
76619           tailf:cli-full-command;
76620           type uint8 {
76621             tailf:info "<0-7>;;ip precedence value (default value 0)";
76622             range "0..7";
76623           }
76624         }
76625       }
76626       container ifindex {
76627         tailf:info "Enable ifindex persistence";
76628         description
76629           "Enable ifindex persistence";
76630         leaf persist {
76631           tailf:info "Persist interface indices";
76632           description
76633             "Persist interface indices";
76634           type empty;
76635         }
76636       }
76637       leaf location {
76638         tailf:info "Text for mib object sysLocation";
76639         description
76640           "Text for mib object sysLocation";
76641         tailf:cli-multi-value;
76642         type string {
76643           tailf:info "LINE;;The physical location of this node";
76644         }
76645       }
76646       container manager {
76647         tailf:info "Modify SNMP manager parameters";
76648         description
76649           "Modify SNMP manager parameters";
76650         tailf:cli-display-separated;
76651         presence "true";
76652         leaf session-timeout {
76653           tailf:info "Timeout value for destroying sessions";
76654           description
76655             "Timeout value for destroying sessions";
76656           type uint32 {
76657             tailf:info "<10-2147483>;;seconds";
76658             range "10..2147483";
76659           }
76660         }
76661       }
76662       leaf packetsize {
76663         tailf:info "Largest SNMP packet size";
76664         description
76665           "Largest SNMP packet size";
76666         tailf:cli-full-command;
76667         type uint32 {
76668           tailf:info "<484-17924>;;Packet size";
76669           range "484..17924";
76670         }
76671       }
76672       leaf queue-length {
76673         tailf:info "Message queue length for each TRAP host";
76674         description
76675           "Message queue length for each TRAP host";
76676         type uint16 {
76677           tailf:info "<1-5000>;;Queue length (default 10)";
76678           range "1..5000";
76679         }
76680       }
76681       container source-interface {
76682         tailf:info "Assign an source interface";
76683         description
76684           "Assign an source interface";
76685         container informs {
76686           tailf:info "source interface for informs";
76687           description
76688             "source interface for informs";
76689           tailf:cli-diff-dependency "/ios:native/interface";
76690           uses interface-grouping;
76691         }
76692         container traps {
76693           tailf:info "source interface for traps";
76694           description
76695             "source interface for traps";
76696           tailf:cli-diff-dependency "/ios:native/interface";
76697           uses interface-grouping;
76698         }
76699       }
76700       leaf system-shutdown {
76701         tailf:info "Enable use of the SNMP reload command";
76702         description
76703           "Enable use of the SNMP reload command";
76704         tailf:cli-full-command;
76705         type empty;
76706       }
76707       leaf tftp-server-list {
76708         tailf:info "Limit TFTP servers used via SNMP";
76709         description
76710           "Limit TFTP servers used via SNMP";
76711         type union {
76712           type uint8 {
76713             tailf:info "<1-99>;;IP standard access list";
76714             range "1..99";
76715           }
76716           type string {
76717             tailf:info "WORD;;Access-list name";
76718           }
76719         }
76720       }
76721       container trap {
76722         tailf:info "SNMP trap options";
76723         description
76724           "SNMP trap options";
76725         container link {
76726           tailf:info "Assign/Enable SNMP link traps";
76727           description
76728             "Assign/Enable SNMP link traps";
76729           leaf ietf {
76730             tailf:info "Use IETF standard for SNMP traps";
76731             description
76732               "Use IETF standard for SNMP traps";
76733             tailf:cli-full-command;
76734             type empty;
76735           }
76736           leaf switchover {
76737             tailf:info "Enable link up/down traps during switchover";
76738             description
76739               "Enable link up/down traps during switchover";
76740             tailf:cli-full-command;
76741             type empty;
76742           }
76743         }
76744         leaf timeout {
76745           tailf:info "Set timeout for TRAP message retransmissions";
76746           description
76747             "Set timeout for TRAP message retransmissions";
76748           type uint16 {
76749             tailf:info "<1-1000>;;Timeout (default 30 seconds)";
76750             range "1..1000";
76751           }
76752         }
76753       }
76754       container trap-source {
76755         tailf:info "Assign an interface for the source address of all traps";
76756         description
76757           "Assign an interface for the source address of all traps";
76758         tailf:cli-diff-dependency "/ios:native/interface";
76759         uses interface-grouping;
76760       }
76761       list view {
76762         tailf:info "Define an SNMPv2 MIB view";
76763         description
76764           "Define an SNMPv2 MIB view";
76765         tailf:cli-suppress-mode;
76766         tailf:cli-delete-when-empty;
76767         tailf:cli-compact-syntax;
76768         key "name mib";
76769         leaf name {
76770           type string {
76771             tailf:info "WORD;;Name of the view";
76772           }
76773         }
76774         leaf mib {
76775           type string {
76776             tailf:info "WORD;;MIB view family name";
76777           }
76778         }
76779         leaf inc-exl {
76780           tailf:cli-drop-node-name;
76781           type enumeration {
76782             enum "excluded" {
76783               tailf:info "MIB family is excluded from the view";
76784             }
76785             enum "included" {
76786               tailf:info "MIB family is included in the view";
76787             }
76788           }
76789         }
76790       }
76791     }
76792     container dot11 {
76793       tailf:info "IEEE 802.11 config commands";
76794       description
76795         "IEEE 802.11 config commands";
76796       leaf syslog {
76797         tailf:info "Enable syslog";
76798         description
76799           "Enable syslog";
76800         tailf:cli-full-command;
76801         type empty;
76802       }
76803     }
76804     container license {
76805       tailf:info "Configure license features";
76806       description
76807         "Configure license features";
76808       container udi {
76809         tailf:cli-compact-syntax;
76810         tailf:cli-sequence-commands;
76811         tailf:cli-reset-container;
76812         leaf pid {
76813           type string;
76814         }
76815         leaf sn {
76816           type string;
76817         }
76818       }
76819       container feature {
76820         tailf:info "License features";
76821         description
76822           "License features";
76823         leaf name {
76824           tailf:cli-drop-node-name;
76825           tailf:cli-disallow-value "port";
76826           type string {
76827             tailf:info "License feature name";
76828           }
76829         }
76830         container port {
76831           tailf:info "Enable Ports for IM";
76832           description
76833             "Enable Ports for IM";
76834           leaf bulk {
76835             tailf:info "Enable Bulk port licenes";
76836             description
76837               "Enable Bulk port licenes";
76838             tailf:cli-full-command;
76839             type empty;
76840           }
76841           leaf onegig {
76842             tailf:info "Enable 1G port bundles";
76843             description
76844               "Enable 1G port bundles";
76845             type uint8 {
76846               tailf:info "<1-2>;;port bundle count ex:count=1 will enable 6 ports";
76847               range "1..2";
76848             }
76849           }
76850           leaf b-6xonegig {
76851             tailf:info "Enable 6x1G port bundles";
76852             description
76853               "Enable 6x1G port bundles";
76854             tailf:alt-name "6xonegig";
76855             type uint8 {
76856               tailf:info "<1-2>;;port bundle count ex:count=1 will enable 6 ports";
76857               range "1..2";
76858             }
76859           }
76860           leaf tengig {
76861             tailf:info "Enable 10G port bundles";
76862             description
76863               "Enable 10G port bundles";
76864             type uint8 {
76865               tailf:info "<1-2>;;port bundle count, each count will enable/disable 2 ports- disable in reverse order";
76866               range "1..2";
76867             }
76868           }
76869         }
76870       }
76871       container accept {
76872         tailf:cli-compact-syntax;
76873         tailf:cli-sequence-commands {
76874           tailf:cli-reset-all-siblings;
76875         }
76876         leaf end {
76877           type empty;
76878         }
76879         leaf user {
76880           type empty;
76881         }
76882         leaf agreement {
76883           type empty;
76884         }
76885       }
76886       container boot {
76887         tailf:info "license boot config commands";
76888         description
76889           "license boot config commands";
76890         container level {
76891           tailf:info "which level to boot";
76892           description
76893             "which level to boot";
76894           container ipbase {
76895             tailf:info "ipbase level";
76896             description
76897               "ipbase level";
76898             tailf:cli-display-separated;
76899             presence "true";
76900             leaf switch {
76901               tailf:info "Switch license information";
76902               description
76903                 "Switch license information";
76904               type uint8;
76905             }
76906           }
76907           container ipservices {
76908             tailf:info "ipservices level";
76909             description
76910               "ipservices level";
76911             tailf:cli-display-separated;
76912             presence "true";
76913             leaf switch {
76914               tailf:info "Switch license information";
76915               description
76916                 "Switch license information";
76917               type empty;
76918             }
76919           }
76920           container ipservicesk9 {
76921             tailf:info "ipservicesk9 level";
76922             description
76923               "ipservicesk9 level";
76924             tailf:cli-display-separated;
76925             presence "true";
76926             leaf switch {
76927               tailf:info "Switch license information";
76928               description
76929                 "Switch license information";
76930               type empty;
76931             }
76932           }
76933           container lanbase {
76934             tailf:info "lanbase level";
76935             description
76936               "lanbase level";
76937             tailf:cli-display-separated;
76938             presence "true";
76939             leaf switch {
76940               tailf:info "Switch license information";
76941               description
76942                 "Switch license information";
76943               type empty;
76944             }
76945           }
76946           container lite {
76947             tailf:info "lite level";
76948             description
76949               "lite level";
76950             tailf:cli-display-separated;
76951             presence "true";
76952             leaf switch {
76953               tailf:info "Switch license information";
76954               description
76955                 "Switch license information";
76956               type empty;
76957             }
76958           }
76959           container metroaggrservices {
76960             tailf:info "metroaggrservices level";
76961             description
76962               "metroaggrservices level";
76963             tailf:cli-display-separated;
76964             presence "true";
76965             leaf switch {
76966               tailf:info "Switch license information";
76967               description
76968                 "Switch license information";
76969               type empty;
76970             }
76971           }
76972           container advancedmetroipaccess {
76973             tailf:info "Advanced Metro IP Access License Level";
76974             description
76975               "Advanced Metro IP Access License Level";
76976             presence "true";
76977           }
76978           container metroaccess {
76979             tailf:info "Metro Access License Level";
76980             description
76981               "Metro Access License Level";
76982             presence "true";
76983           }
76984           container metroipaccess {
76985             tailf:info "Metro IP Access License Level";
76986             description
76987               "Metro IP Access License Level";
76988             presence "true";
76989           }
76990           container entservices {
76991             tailf:info "Entservices License Level";
76992             description
76993               "Entservices License Level";
76994             presence "true";
76995           }
76996           container adventerprise {
76997             tailf:info "Adventerprise License Level";
76998             description
76999               "Adventerprise License Level";
77000             presence "true";
77001           }
77002           container appxk9 {
77003             tailf:info "Appxk9 License Level";
77004             description
77005               "Appxk9 License Level";
77006             presence "true";
77007           }
77008           container securityk9 {
77009             tailf:info "Securityk9 License Level";
77010             description
77011               "Securityk9 License Level";
77012             presence "true";
77013           }
77014           container uck9 {
77015             tailf:info "Uck9 License Level";
77016             description
77017               "Uck9 License Level";
77018             presence "true";
77019             leaf disable {
77020               type empty;
77021             }
77022           }
77023         }
77024         container boot-module {
77025           tailf:cli-drop-node-name;
77026           tailf:cli-compact-syntax;
77027           tailf:cli-sequence-commands;
77028           leaf module {
77029             type enumeration {
77030               enum "c2900";
77031             }
77032           }
77033           container technology-package {
77034             leaf securityk9 {
77035               tailf:cli-full-command;
77036               type empty;
77037             }
77038             leaf uck9 {
77039               tailf:cli-full-command;
77040               type empty;
77041             }
77042             leaf datak9 {
77043               tailf:cli-full-command;
77044               type empty;
77045             }
77046           }
77047         }
77048       }
77049       leaf smart {
77050         type enumeration {
77051           enum "enable";
77052         }
77053       }
77054     }
77055     container cdp {
77056       tailf:info "Global CDP configuration subcommands";
77057       description
77058         "Global CDP configuration subcommands";
77059       leaf run {
77060         tailf:info "Enable CDP";
77061         description
77062           "Enable CDP";
77063         type empty;
77064       }
77065     }
77066     container voice {
77067       tailf:info "Global voice configuration";
77068       description
77069         "Global voice configuration";
77070       list service {
77071         tailf:info "Global packet telephony service commands";
77072         description
77073           "Global packet telephony service commands";
77074         tailf:cli-mode-name "conf-voi-serv";
77075         key "type";
77076         leaf type {
77077           type enumeration {
77078             enum "pots" {
77079               tailf:info "Telephony";
77080             }
77081             enum "saf" {
77082               tailf:info "Define voice service saf commands";
77083             }
77084             enum "voatm" {
77085               tailf:info "Voice over ATM";
77086             }
77087             enum "vofr" {
77088               tailf:info "Voice over Frame Relay";
77089             }
77090             enum "voip" {
77091               tailf:info "Voice over IP";
77092             }
77093           }
77094         }
77095         container fax {
77096           tailf:info "Global fax commands";
77097           description
77098             "Global fax commands";
77099           tailf:cli-compact-syntax;
77100           leaf protocol {
77101             tailf:info "The system-wide fax protocol type";
77102             description
77103               "The system-wide fax protocol type";
77104             type enumeration {
77105               enum "cisco" {
77106                 tailf:info "Use Cisco proprietary protocol";
77107               }
77108               enum "none" {
77109                 tailf:info "Disable fax transport";
77110               }
77111               enum "pass-through" {
77112                 tailf:info "Use an audio codec for fax transport";
77113               }
77114               enum "t38" {
77115                 tailf:info "Use T.38 protocol";
77116               }
77117             }
77118           }
77119           leaf fallback {
77120             when "../protocol = 't38'";
77121             tailf:info "fax transport to use if T.38 unsupported on far end";
77122             description
77123               "fax transport to use if T.38 unsupported on far end";
77124             type enumeration {
77125               enum "cisco" {
77126                 tailf:info "Use Cisco proprietary protocol";
77127               }
77128               enum "none" {
77129                 tailf:info "No fallback";
77130               }
77131               enum "pass-through" {
77132                 tailf:info "Use an audio codec for fax transport";
77133               }
77134             }
77135           }
77136           leaf codec {
77137             tailf:cli-drop-node-name;
77138             when "../protocol = 'pass-through' or ../fallback = 'pass-through'";
77139             type enumeration {
77140               enum "g711alaw" {
77141                 tailf:info " G.711 A Law 64000 bps (for E1)";
77142               }
77143               enum "g711ulaw" {
77144                 tailf:info " G.711 u Law 64000 bps (for T1)";
77145               }
77146             }
77147           }
77148           leaf ls-redundancy {
77149             when "../protocol = 't38'";
77150             tailf:info "t38 low speed redundancy";
77151             description
77152               "t38 low speed redundancy";
77153             type uint8 {
77154               tailf:info "<0-5>;;redundancy level, 0 and <cr> no redundancy";
77155               range "0..5";
77156             }
77157           }
77158           leaf hs-redundancy {
77159             when "../protocol = 't38'";
77160             tailf:info "t38 high speed redundancy";
77161             description
77162               "t38 high speed redundancy";
77163             type uint8 {
77164               tailf:info "<0-2>;;redundancy level, 0 and <cr> no redundancy";
77165               range "0..2";
77166             }
77167           }
77168           leaf version {
77169             when "../protocol = 't38'";
77170             tailf:info "t38 fax version";
77171             description
77172               "t38 fax version";
77173             type enumeration {
77174               enum "0" {
77175                 tailf:info "version 0";
77176               }
77177               enum "3" {
77178                 tailf:info "version 3";
77179               }
77180             }
77181           }
77182         }
77183       }
77184     }
77185     list voice-card {
77186       tailf:info "Configure a specific voice-card";
77187       description
77188         "Configure a specific voice-card";
77189       tailf:cli-mode-name "config-voicecard";
77190       key "slot";
77191       leaf slot {
77192         type uint8 {
77193           tailf:info "<0-2>;;Voice interface slot #";
77194           range "0..2";
77195         }
77196       }
77197     }
77198     container card {
77199       tailf:cli-reset-container;
77200       tailf:cli-compact-syntax;
77201       tailf:cli-sequence-commands;
77202       leaf type {
77203         tailf:cli-incomplete-command;
77204         tailf:cli-remove-before-change;
77205         type enumeration {
77206           enum "t1";
77207           enum "e1";
77208         }
77209       }
77210       leaf slot {
77211         tailf:cli-drop-node-name;
77212         type uint32;
77213       }
77214       leaf bay {
77215         tailf:cli-drop-node-name;
77216         type uint32;
77217       }
77218     }
77219     container event {
77220       tailf:info "Event related configuration commands";
77221       description
77222         "Event related configuration commands";
77223       container manager {
77224         tailf:info "Event Manager configuration commands";
77225         description
77226           "Event Manager configuration commands";
77227         list environment {
77228           tailf:info "Set an Embedded Event Manager global environment variable";
77229           description
77230             "Set an Embedded Event Manager global environment variable";
77231           tailf:cli-suppress-mode;
77232           tailf:cli-delete-when-empty;
77233           key "name";
77234           leaf name {
77235             type string {
77236               tailf:info "WORD;;Name of the global environment variable";
77237             }
77238           }
77239           leaf value {
77240             tailf:cli-drop-node-name;
77241             type string {
77242               tailf:info "LINE;;Value of the global environment variable";
77243             }
77244           }
77245         }
77246         container directory {
77247           tailf:info "Set Embedded Event Manager directory information";
77248           description
77249             "Set Embedded Event Manager directory information";
77250           container user {
77251             tailf:info "Set Embedded Event Manager user directory information";
77252             description
77253               "Set Embedded Event Manager user directory information";
77254             leaf policy {
77255               tailf:info "Set Embedded Event Manager user policy directory";
77256               description
77257                 "Set Embedded Event Manager user policy directory";
77258               type string {
77259                 tailf:info "WORD;;Path of the Embedded Event Manager user policy directory";
77260               }
77261             }
77262           }
77263         }
77264         list applet {
77265           tailf:info "Register an Event Manager applet";
77266           description
77267             "Register an Event Manager applet";
77268           tailf:cli-mode-name "config-applet";
77269           tailf:cli-exit-command "exit" {
77270             tailf:info "Exit from Event Manager applet configuration submode";
77271           }
77272           key "name";
77273           leaf name {
77274             type string {
77275               tailf:info "WORD;;Name of the Event Manager applet";
77276             }
77277           }
77278           leaf authorization {
77279             tailf:info "Specify an authorization type for the applet";
77280             description
77281               "Specify an authorization type for the applet";
77282             tailf:cli-hide-in-submode;
77283             type enumeration {
77284               enum "bypass" {
77285                 tailf:info "EEM aaa authorization type bypass";
77286               }
77287             }
77288           }
77289           leaf class {
77290             tailf:info "Specify a class for the applet";
77291             description
77292               "Specify a class for the applet";
77293             tailf:cli-hide-in-submode;
77294             type string {
77295               tailf:info "Class A-Z | default - default class";
77296               pattern "[A-Z]|default";
77297             }
77298           }
77299           leaf trap {
77300             tailf:info "Generate an SNMP trap when applet is triggered.";
77301             description
77302               "Generate an SNMP trap when applet is triggered.";
77303             tailf:cli-hide-in-submode;
77304             type empty;
77305           }
77306           container event {
77307             tailf:info "Add or modify event information";
77308             description
77309               "Add or modify event information";
77310             container snmp-notification {
77311               tailf:info "SNMP Notification Event";
77312               description
77313                 "SNMP Notification Event";
77314               tailf:cli-compact-syntax;
77315               tailf:cli-reset-container;
77316               leaf oid {
77317                 tailf:info "Object ID of data element";
77318                 description
77319                   "Object ID of data element";
77320                 type string {
77321                   tailf:info "WORD;;OID string";
77322                 }
77323               }
77324               leaf oid-val {
77325                 tailf:info "Comparison value";
77326                 description
77327                   "Comparison value";
77328                 type string {
77329                   tailf:info "WORD;;Comparision value";
77330                 }
77331               }
77332               leaf op {
77333                 tailf:info "Operator";
77334                 description
77335                   "Operator";
77336                 type operator-type;
77337               }
77338               leaf src-ip-address {
77339                 tailf:info "Source ip address";
77340                 description
77341                   "Source ip address";
77342                 type union {
77343                   type inet:ipv4-address {
77344                     tailf:info "A.B.C.D;;Source ip address value";
77345                   }
77346                   type inet:ipv6-address {
77347                     tailf:info "X:X:X:X::X;;Source ip address value";
77348                   }
77349                 }
77350               }
77351               leaf dest-ip-address {
77352                 tailf:info "Destination ip address";
77353                 description
77354                   "Destination ip address";
77355                 type union {
77356                   type inet:ipv4-address {
77357                     tailf:info "A.B.C.D;;Destination ip address value";
77358                   }
77359                   type inet:ipv6-address {
77360                     tailf:info "X:X:X:X::X;;Destination ip address value";
77361                   }
77362                 }
77363               }
77364             }
77365             container syslog {
77366               tailf:info "Syslog event";
77367               description
77368                 "Syslog event";
77369               leaf pattern {
77370                 tailf:info "Pattern match string for the entire message";
77371                 description
77372                   "Pattern match string for the entire message";
77373                 type string {
77374                   tailf:info "WORD;;Pattern match string for the entire message";
77375                 }
77376               }
77377             }
77378           }
77379           list action {
77380             tailf:info "Add or modify an action statement";
77381             description
77382               "Add or modify an action statement";
77383             tailf:cli-suppress-mode;
77384             tailf:cli-delete-when-empty;
77385             tailf:cli-incomplete-command;
77386             tailf:cli-compact-syntax;
77387             tailf:cli-reset-container;
77388             ordered-by user;
77389             key "name";
77390             leaf name {
77391               type string {
77392                 tailf:info "WORD;;Label";
77393               }
77394             }
77395             container if {
77396               tailf:info "if conditional";
77397               description
77398                 "if conditional";
77399               tailf:cli-compact-syntax;
77400               tailf:cli-sequence-commands;
77401               tailf:cli-reset-container;
77402               leaf string-op-1 {
77403                 tailf:cli-drop-node-name;
77404                 tailf:cli-incomplete-command;
77405                 type string {
77406                   tailf:info "WORD;;first operand";
77407                 }
77408               }
77409               leaf keyword {
77410                 tailf:cli-drop-node-name;
77411                 tailf:cli-incomplete-command;
77412                 type operator-type;
77413               }
77414               leaf string-op-2 {
77415                 tailf:cli-drop-node-name;
77416                 type string {
77417                   tailf:info "WORD;;second operand";
77418                 }
77419               }
77420               leaf goto {
77421                 tailf:info "goto label";
77422                 description
77423                   "goto label";
77424                 type string {
77425                   tailf:info "WORD;;label";
77426                 }
77427               }
77428             }
77429             container info {
77430               tailf:info "Obtain system specific information";
77431               description
77432                 "Obtain system specific information";
77433               container type {
77434                 tailf:info "Type of information to obtain";
77435                 description
77436                   "Type of information to obtain";
77437                 tailf:cli-full-no;
77438                 container snmp {
77439                   tailf:info "SNMP information";
77440                   description
77441                     "SNMP information";
77442                   container var {
77443                     tailf:info "Trap variable";
77444                     description
77445                       "Trap variable";
77446                     tailf:cli-compact-syntax;
77447                     tailf:cli-sequence-commands;
77448                     tailf:cli-reset-container;
77449                     leaf variable-name {
77450                       tailf:cli-drop-node-name;
77451                       tailf:cli-incomplete-command;
77452                       type string {
77453                         tailf:info "WORD;;Trap variable name";
77454                       }
77455                     }
77456                     leaf oid {
77457                       tailf:info "SNMP object id";
77458                       description
77459                         "SNMP object id";
77460                       tailf:cli-incomplete-command;
77461                       type string {
77462                         tailf:info "WORD;;oid string";
77463                       }
77464                     }
77465                     leaf oid-type {
77466                       tailf:cli-drop-node-name;
77467                       tailf:cli-incomplete-command;
77468                       type enumeration {
77469                         enum "counter" {
77470                           tailf:info "Counter value";
77471                         }
77472                         enum "gauge" {
77473                           tailf:info "Gauge value";
77474                         }
77475                         enum "int" {
77476                           tailf:info "Integer value";
77477                         }
77478                         enum "ipv4" {
77479                           tailf:info "IPv4 address";
77480                         }
77481                         enum "octet" {
77482                           tailf:info "Octet value";
77483                         }
77484                         enum "string" {
77485                           tailf:info "String value";
77486                         }
77487                         enum "uint" {
77488                           tailf:info "Unsigned integer value";
77489                         }
77490                       }
77491                     }
77492                     leaf oid-type-value {
77493                       tailf:cli-drop-node-name;
77494                       type string;
77495                     }
77496                   }
77497                   container trap {
77498                     tailf:info "SNMP trap";
77499                     description
77500                       "SNMP trap";
77501                     tailf:cli-compact-syntax;
77502                     tailf:cli-sequence-commands;
77503                     tailf:cli-reset-container;
77504                     leaf enterprise-oid {
77505                       tailf:info "Enterprise oid";
77506                       description
77507                         "Enterprise oid";
77508                       tailf:cli-incomplete-command;
77509                       type string {
77510                         tailf:info "WORD;;Enterprise oid string";
77511                       }
77512                     }
77513                     leaf generic-trapnum {
77514                       tailf:info "Generic trap number";
77515                       description
77516                         "Generic trap number";
77517                       tailf:cli-incomplete-command;
77518                       type uint32 {
77519                         tailf:info "<0-4294967295>;;Generic trap number";
77520                       }
77521                     }
77522                     leaf specific-trapnum {
77523                       tailf:info "Specific trap number";
77524                       description
77525                         "Specific trap number";
77526                       tailf:cli-incomplete-command;
77527                       type uint32 {
77528                         tailf:info "<0-4294967295>;;Specific trap number";
77529                       }
77530                     }
77531                     leaf trap-oid {
77532                       tailf:info "Trap oid";
77533                       description
77534                         "Trap oid";
77535                       tailf:cli-incomplete-command;
77536                       type string {
77537                         tailf:info "WORD;;oid string";
77538                       }
77539                     }
77540                     leaf trap-var {
77541                       tailf:info "Trap variable";
77542                       description
77543                         "Trap variable";
77544                       type string {
77545                         tailf:info "WORD;;Trap variable name";
77546                       }
77547                     }
77548                   }
77549                 }
77550               }
77551             }
77552             leaf end {
77553               tailf:info "end conditional block";
77554               description
77555                 "end conditional block";
77556               type empty;
77557             }
77558             container regexp {
77559               tailf:info "regular expression match";
77560               description
77561                 "regular expression match";
77562               tailf:cli-compact-syntax;
77563               tailf:cli-sequence-commands;
77564               tailf:cli-reset-container;
77565               leaf string-pattern {
77566                 tailf:cli-drop-node-name;
77567                 tailf:cli-incomplete-command;
77568                 type string {
77569                   tailf:info "WORD;;regular expression pattern";
77570                 }
77571               }
77572               leaf string-input {
77573                 tailf:cli-drop-node-name;
77574                 type string {
77575                   tailf:info "WORD;;input string";
77576                 }
77577               }
77578               leaf string-match {
77579                 tailf:cli-drop-node-name;
77580                 type string {
77581                   tailf:info "WORD;;match variable";
77582                 }
77583               }
77584               leaf string-submatch1 {
77585                 tailf:cli-drop-node-name;
77586                 type string {
77587                   tailf:info "WORD;;submatch variable";
77588                 }
77589               }
77590               leaf string-submatch2 {
77591                 tailf:cli-drop-node-name;
77592                 type string {
77593                   tailf:info "WORD;;submatch variable";
77594                 }
77595               }
77596               leaf string-submatch3 {
77597                 tailf:cli-drop-node-name;
77598                 type string {
77599                   tailf:info "WORD;;submatch variable";
77600                 }
77601               }
77602             }
77603             container snmp-trap {
77604               tailf:info "Send an SNMP trap";
77605               description
77606                 "Send an SNMP trap";
77607               tailf:cli-compact-syntax;
77608               tailf:cli-delete-when-empty;
77609               presence "true";
77610               leaf intdata1 {
77611                 tailf:info "SNMP integer data1";
77612                 description
77613                   "SNMP integer data1";
77614                 type int32 {
77615                   tailf:info "<-2147483648 - 2147483647>;;SNMP trap integer value1";
77616                 }
77617               }
77618               leaf intdata2 {
77619                 tailf:info "SNMP integer data2";
77620                 description
77621                   "SNMP integer data2";
77622                 type int32 {
77623                   tailf:info "<-2147483648 - 2147483647>;;SNMP trap integer value2";
77624                 }
77625               }
77626               leaf strdata {
77627                 tailf:info "SNMP trap string";
77628                 description
77629                   "SNMP trap string";
77630                 type string {
77631                   tailf:info "WORD  SNMP trap string value";
77632                 }
77633               }
77634             }
77635             container string {
77636               tailf:info "string commands";
77637               description
77638                 "string commands";
77639               leaf trim {
77640                 tailf:info "trim characters from both ends of string";
77641                 description
77642                   "trim characters from both ends of string";
77643                 type string;
77644               }
77645             }
77646             container syslog {
77647               tailf:info "Log a syslog message";
77648               description
77649                 "Log a syslog message";
77650               tailf:cli-compact-syntax;
77651               leaf facility {
77652                 tailf:info "Facility string";
77653                 description
77654                   "Facility string";
77655                 type string {
77656                   tailf:info "WORD;;facility string";
77657                 }
77658               }
77659               leaf msg {
77660                 tailf:info "Syslog message";
77661                 description
77662                   "Syslog message";
77663                 type string {
77664                   tailf:info "WORD;;message string";
77665                 }
77666               }
77667               leaf priority {
77668                 tailf:info "Priority of syslog message";
77669                 description
77670                   "Priority of syslog message";
77671                 type logging-level-type;
77672               }
77673             }
77674           }
77675           leaf description {
77676             tailf:info "Add or modify an applet description";
77677             description
77678               "Add or modify an applet description";
77679             tailf:cli-full-command;
77680             tailf:cli-multi-value;
77681             type string {
77682               tailf:info "LINE;;description";
77683             }
77684           }
77685           container trigger {
77686             tailf:info "Enter applet trigger configuration submode";
77687             description
77688               "Enter applet trigger configuration submode";
77689             tailf:cli-add-mode;
77690             tailf:cli-mode-name "config-applet-trigger";
77691           }
77692         }
77693       }
77694     }
77695     leaf disable-eadi {
77696       tailf:cli-full-command;
77697       type empty;
77698     }
77699     container memory-size {
77700       tailf:info "Adjust memory size by percentage";
77701       description
77702         "Adjust memory size by percentage";
77703       leaf iomem {
77704         tailf:info "I/O memory";
77705         description
77706           "I/O memory";
77707         type uint8 {
77708           tailf:info "<5-25>;;percentage of DRAM to use for I/O memory: 5, 10, 15, 20, 25";
77709           range "5..25" {
77710             tailf:step "5";
77711           }
77712         }
77713       }
77714     }
77715     container transceiver {
77716       tailf:info "Select from transceiver configuration commands";
77717       description
77718         "Select from transceiver configuration commands";
77719       container type {
77720         tailf:info "type keyword";
77721         description
77722           "type keyword";
77723         container all {
77724           tailf:cli-add-mode;
77725           tailf:cli-mode-name "config-xcvr-type";
77726           tailf:cli-full-command;
77727           container monitoring {
77728             tailf:info "Enable/disable monitoring";
77729             description
77730               "Enable/disable monitoring";
77731             presence "true";
77732             leaf interval {
77733               tailf:info "Set interval for monitoring";
77734               description
77735                 "Set interval for monitoring";
77736               type uint16 {
77737                 tailf:info "<300-3600>;;Time interval for monitoring transceiver in seconds";
77738                 range "300..3600";
77739               }
77740             }
77741           }
77742         }
77743       }
77744     }
77745     container onep {
77746       tailf:info "ONEP functionality";
77747       description
77748         "ONEP functionality";
77749       tailf:cli-add-mode;
77750       tailf:cli-mode-name "config-onep";
77751       tailf:cli-full-command;
77752       container service {
77753         tailf:info "ONEP service set";
77754         description
77755           "ONEP service set";
77756         leaf set {
77757           tailf:info "ONEP service set";
77758           description
77759             "ONEP service set";
77760           type enumeration {
77761             enum "vty" {
77762               tailf:info "vty service set";
77763             }
77764             enum "advancedrouting" {
77765               tailf:info "advancedrouting service set";
77766             }
77767             enum "mediatrace" {
77768               tailf:info "mediatrace service set";
77769             }
77770             enum "onefw" {
77771               tailf:info "onefw service set";
77772             }
77773           }
77774         }
77775       }
77776       container tls {
77777         tailf:info "TLS transport";
77778         description
77779           "TLS transport";
77780         tailf:cli-add-mode;
77781         tailf:cli-mode-name "config-onep-tls";
77782         container trustpoint {
77783           tailf:info "Trustpoint configuration";
77784           description
77785             "Trustpoint configuration";
77786           leaf client-verification {
77787             tailf:info "Client trustpoint";
77788             description
77789               "Client trustpoint";
77790             type string {
77791               tailf:info "WORD;;Trustpoint name";
77792             }
77793           }
77794           leaf server-identity {
77795             tailf:info "Server trustpoint";
77796             description
77797               "Server trustpoint";
77798             type string {
77799               tailf:info "WORD;;Trustpoint name";
77800             }
77801           }
77802         }
77803       }
77804     }
77805     container service-insertion {
77806       tailf:info "Service Insertion mode";
77807       description
77808         "Service Insertion mode";
77809       leaf acg-reload-delay {
77810         tailf:info "Reload delay timer for ACG";
77811         description
77812           "Reload delay timer for ACG";
77813         type uint16 {
77814           tailf:info "<120-450>;;ACG reload delay timer value in seconds";
77815           range "120..450";
77816         }
77817       }
77818       list appnav-controller-group {
77819         tailf:info "AppNav Controller Group";
77820         description
77821           "AppNav Controller Group";
77822         tailf:cli-mode-name "config-service-insertion-acg";
77823         key "group-name";
77824         leaf group-name {
77825           type string {
77826             tailf:info "WORD;;AppNav Controller Group Name";
77827           }
77828         }
77829         leaf-list appnav-controller {
77830           tailf:info "AppNav controller";
77831           description
77832             "AppNav controller";
77833           tailf:cli-list-syntax;
77834           type inet:ipv4-address {
77835             tailf:info "A.B.C.D;;AppNav controller IP address";
77836           }
77837         }
77838         leaf description {
77839           tailf:info "ACG description";
77840           description
77841             "ACG description";
77842           type string;
77843         }
77844       }
77845       container service-context {
77846         tailf:info "Service Context";
77847         description
77848           "Service Context";
77849         list waas {
77850           tailf:info "Service controller waas";
77851           description
77852             "Service controller waas";
77853           tailf:cli-allow-join-with-key {
77854             tailf:cli-display-joined;
77855           }
77856           tailf:cli-mode-name "config-service-insertion-context";
77857           tailf:cli-suppress-key-abbreviation;
77858           key "name";
77859           leaf name {
77860             type string {
77861               tailf:info "/<1-32>;;/Service Context ID";
77862             }
77863           }
77864           leaf appnav-controller-group {
77865             tailf:info "AppNav Controller Group";
77866             description
77867               "AppNav Controller Group";
77868             type string {
77869               tailf:info "WORD;;AppNav Controller Group";
77870             }
77871           }
77872           container authentication {
77873             tailf:info "Authentication key";
77874             description
77875               "Authentication key";
77876             tailf:cli-sequence-commands;
77877             tailf:cli-compact-syntax;
77878             leaf sha1 {
77879               tailf:info "Authentication type";
77880               description
77881                 "Authentication type";
77882               type empty;
77883             }
77884             leaf key {
77885               tailf:info "Authentication Key";
77886               description
77887                 "Authentication Key";
77888               type empty;
77889             }
77890             leaf encrypt {
77891               tailf:cli-drop-node-name;
77892               tailf:cli-break-sequence-commands;
77893               type enumeration {
77894                 enum "0" {
77895                   tailf:info "Specifies an UNENCRYPTED secret will follow";
77896                 }
77897                 enum "7" {
77898                   tailf:info "Specifies a HIDDEN secret will follow";
77899                 }
77900               }
77901             }
77902             leaf string {
77903               tailf:cli-drop-node-name;
77904               type string {
77905                 tailf:info "WORD;;Key string (64 chars max)";
77906               }
77907             }
77908           }
77909           leaf enable {
77910             tailf:info "service context enable";
77911             description
77912               "service context enable";
77913             type empty;
77914           }
77915           leaf service-node-group {
77916             tailf:info "service node Group";
77917             description
77918               "service node Group";
77919             type string {
77920               tailf:info "WORD;;service node Group";
77921             }
77922           }
77923           leaf service-policy {
77924             tailf:info "Specify a service policy for the service context";
77925             description
77926               "Specify a service policy for the service context";
77927             type string {
77928               tailf:info "WORD;;Name of the preconfigured service policy";
77929             }
77930           }
77931           container vrf {
77932             tailf:info "VRF";
77933             description
77934               "VRF";
77935             leaf default {
77936               tailf:info "default";
77937               description
77938                 "default";
77939               type empty;
77940             }
77941             leaf global {
77942               tailf:info "global";
77943               description
77944                 "global";
77945               type empty;
77946             }
77947             leaf name {
77948               tailf:info "vrf name";
77949               description
77950                 "vrf name";
77951               type string {
77952                 tailf:info "WORD;;vrf name";
77953               }
77954             }
77955           }
77956         }
77957       }
77958       list service-node-group {
77959         tailf:info "service node Group";
77960         description
77961           "service node Group";
77962         tailf:cli-mode-name "config-service-insertion-sng";
77963         key "name";
77964         leaf name {
77965           type string {
77966             tailf:info "WORD;;service node Group Name";
77967           }
77968         }
77969         leaf description {
77970           tailf:info "Group Description";
77971           description
77972             "Group Description";
77973           type string {
77974             tailf:info "WORD;;Group Description";
77975           }
77976         }
77977         leaf node-discovery {
77978           tailf:info "service node auto discovery";
77979           description
77980             "service node auto discovery";
77981           type enumeration {
77982             enum "enable" {
77983               tailf:info "service context enable";
77984             }
77985           }
77986         }
77987         leaf-list service-node {
77988           tailf:info "service node";
77989           description
77990             "service node";
77991           tailf:cli-list-syntax;
77992           type inet:ipv4-address {
77993             tailf:info "A.B.C.D;;service node IP ADDRESS";
77994           }
77995         }
77996       }
77997       container swap {
77998         tailf:info "Swap src-ip";
77999         description
78000           "Swap src-ip";
78001         leaf src-ip {
78002           tailf:info "Swap source-ip of service-insertion packets";
78003           description
78004             "Swap source-ip of service-insertion packets";
78005           type empty;
78006         }
78007       }
78008     }
78009     container udld {
78010       tailf:info "Configure global UDLD setting";
78011       description
78012         "Configure global UDLD setting";
78013       leaf aggressive {
78014         tailf:info "Enable UDLD protocol in aggressive mode on fiber ports exceptwhere locally configured";
78015         description
78016           "Enable UDLD protocol in aggressive mode on fiber ports exceptwhere locally configured";
78017         type empty;
78018       }
78019       leaf enable {
78020         tailf:info "Enable UDLD protocol on fiber ports except where locally configured";
78021         description
78022           "Enable UDLD protocol on fiber ports except where locally configured";
78023         type empty;
78024       }
78025       container message {
78026         tailf:info "Set UDLD message parameters";
78027         description
78028           "Set UDLD message parameters";
78029         leaf time {
78030           tailf:info "Set UDLD message time period";
78031           description
78032             "Set UDLD message time period";
78033           type uint8 {
78034             tailf:info "<1-90>;;Time in seconds between sending of messages in steady state";
78035             range "1..90";
78036           }
78037         }
78038       }
78039     }
78040   }
78041 }