11 import ietf-inet-types {
13 revision-date 2013-07-15;
16 import ietf-yang-types {
21 "This file was adapted to be parsed by yangtools for groupbasedpolicy project purpose";
26 /// ========================================================================
28 /// ========================================================================
30 typedef class-name-type {
33 // Note: leafref can't be used here due to part of union.
34 //path "/ios:native/class-map/name";
35 tailf:info "WORD;;class-map name";
39 tailf:info "System default class matching otherwise "+
40 "unclassified packet";
46 typedef cos_value-type {
49 tailf:info "<0-7>;;new cos value";
54 tailf:info "Set packet cos from cos";
57 tailf:info "Set packet cos from dscp";
60 tailf:info "Set packet cos from exp";
63 tailf:info "Set packet cos from precedence";
72 tailf:info "<0-63>;;Differentiated services codepoint value";
77 tailf:info "Match packets with AF11 dscp (001010)";
81 tailf:info "Match packets with AF12 dscp (001100)";
85 tailf:info "Match packets with AF13 dscp (001110)";
89 tailf:info "Match packets with AF21 dscp (010010)";
93 tailf:info "Match packets with AF22 dscp (010100)";
97 tailf:info "Match packets with AF23 dscp (010110)";
101 tailf:info "Match packets with AF31 dscp (011010)";
105 tailf:info "Match packets with AF32 dscp (011100)";
109 tailf:info "Match packets with AF33 dscp (011110)";
113 tailf:info "Match packets with AF41 dscp (100010)";
117 tailf:info "Match packets with AF42 dscp (100100)";
121 tailf:info "Match packets with AF43 dscp (100110)";
125 tailf:info "Match packets with CS1(precedence 1) dscp" +
130 tailf:info "Match packets with CS2(precedence 2) dscp" +
135 tailf:info "Match packets with CS3(precedence 3) dscp" +
140 tailf:info "Match packets with CS4(precedence 4) dscp" +
145 tailf:info "Match packets with CS5(precedence 5) dscp" +
150 tailf:info "Match packets with CS6(precedence 6) dscp" +
155 tailf:info "Match packets with CS7(precedence 7) dscp" +
160 tailf:code-name "dscp_default";
161 tailf:info "Match packets with default dscp (000000)";
165 tailf:info "Set packet dscp from dscp";
168 tailf:info "Match packets with EF dscp (101110)";
172 tailf:info "Set packet dscp from precedence";
178 typedef exp_value-type {
181 tailf:info "<0-7>;;new exp";
186 tailf:info "Set packet exp from cos";
189 tailf:info "Set packet exp from dscp";
192 tailf:info "Set packet exp from exp";
195 tailf:info "Set packet exp from precedence";
201 typedef percentage-type {
203 tailf:info "<1-100>;;Percentage";
208 typedef police-bps-type {
210 tailf:info "<8000-64000000000>;;Bits per second";
211 range "8000..64000000000";
215 typedef police-burst-type {
217 tailf:info "<1000-512000000>;;Burst bytes";
218 range "1000..512000000";
222 typedef police-packets-bytes-type {
225 tailf:info "Treat 'burst' value as packets";
228 tailf:info "Treat 'burst' value as bytes";
233 typedef police-pps-bps-type {
236 tailf:info "pps Treat 'rate' value in "+
237 "packets-per-second";
240 tailf:info "pps Treat 'rate' value in "+
246 typedef policy-action-type {
249 tailf:code-name policy_bandwidth;
250 tailf:info "Bandwidth";
253 tailf:info "Activate Compression";
256 tailf:info "Dynamic buffer limiting";
259 tailf:info "Drop all packets";
262 tailf:info "Estimate resources required for this class";
265 tailf:info "Enable Flow-based Fair Queuing in this Class";
268 tailf:info "Forward service-path action";
270 enum netflow-sampler {
271 tailf:info "NetFlow action";
277 tailf:code-name policy_priority;
278 tailf:info "Strict Scheduling Priority for this Class";
281 tailf:info "Queue Max Threshold for Tail Drop";
284 tailf:info "Enable Random Early Detection as drop policy";
286 enum service-policy {
287 tailf:info "Configure Flow Next";
290 tailf:info "Set QoS values";
293 tailf:code-name policy_shape;
294 tailf:info "Traffic Shaping";
297 tailf:info "Set trust value for the class";
300 tailf:info "queue buffer";
305 typedef prec_value-type {
308 tailf:info "<0-7>;;new precedence";
313 tailf:info "Set packet precedence from cos";
316 tailf:info "Set packet precedence from dscp";
319 tailf:info "Set packet precedence from exp";
322 tailf:info "Set packet precedence from precedence";
328 typedef precedence-type {
331 tailf:info "<0-7>;;Precedence value";
336 tailf:info "Set packets with critical precedence (5)";
339 tailf:info "Set packets with flash precedence (3)";
341 enum flash-override {
342 tailf:info "Set packets with flash override precedence (4)";
345 tailf:info "Set packets with immediate precedence (2)";
348 tailf:code-name "prec_internet";
349 tailf:info "Set packets with internetwork control"+
353 tailf:info "Set packets with network control precedence"+
357 tailf:code-name "prec_priority";
358 tailf:info "Set packets with priority precedence (1)";
361 tailf:info "Set packets with routine precedence (0)";
367 typedef precedence-type2 {
370 tailf:info "<0-7>;;IP precedence";
375 tailf:code-name "prec_rsvp";
376 tailf:info "rsvp traffic";
382 typedef qos_value-type {
385 tailf:info "<0-99>;;new qos-group";
390 tailf:info "Set packet qos from cos";
393 tailf:info "Set packet qos from dscp";
396 tailf:info "Set packet qos from exp";
399 tailf:info "Set packet qos from precedence";
405 /// ========================================================================
407 /// ========================================================================
409 grouping class-map-appnav-not-match-grouping {
410 // class-map * / peer
412 when "../../../type = 'appnav'";
413 tailf:info "APPNAV Peer Filter";
414 description "APPNAV Peer Filter";
416 tailf:info "H.H.H;;Device ID";
421 grouping class-map-appnav-match-grouping {
422 // class-map * / peer
424 when "../../type = 'appnav'";
425 tailf:info "APPNAV Peer Filter";
426 description "APPNAV Peer Filter";
428 tailf:info "H.H.H;;Device ID";
433 grouping class-map-match-grouping {
434 // class-map * / match application
435 container application {
436 tailf:info "Application to match";
437 description "Application to match";
438 container application-group {
439 tailf:info "Application Group to match";
440 description "Application Group to match";
441 leaf telepresence-group {
442 tailf:info "Telepresence Group";
443 description "Telepresence Group";
444 tailf:cli-full-command;
448 tailf:info "VMWARE Group";
449 description "VMWARE Group";
450 tailf:cli-full-command;
454 tailf:info "WebEx Group";
455 description "WebEx Group";
456 tailf:cli-full-command;
460 container attribute {
461 tailf:info "Application attribute to match";
462 description "Application attribute to match";
464 tailf:info "Media type attribute to match";
465 description "Media type attribute to match";
471 tailf:info "Audio Video";
474 tailf:info "Control";
486 // class-map * / match access-group
487 container access-group {
488 tailf:info "Access group";
489 description "Access group";
491 tailf:cli-drop-node-name;
494 tailf:info "<1-2699>;;Access list index";
499 tailf:info "Named Access List";
500 description "Named Access List";
501 tailf:cli-list-syntax;
503 tailf:info "WORD;;Access List name";
507 // class-map * / match any
509 tailf:info "Any packets";
510 description "Any packets";
513 // class-map * / match class-map
514 leaf-list class-map {
515 tailf:info "Class map";
516 description "Class map";
517 tailf:cli-list-syntax;
519 path "/ios:native/class-map/name";
520 // tailf:info "WORD;;Match class-map name";
523 // class-map * / match cos
525 tailf:info "IEEE 802.1Q/ISL class of service/user priority values";
526 description "IEEE 802.1Q/ISL class of service/user priority values";
527 tailf:cli-flat-list-syntax;
530 tailf:info "<0-7>;;Enter up to 4 class-of-service values"+
531 " separated by white-spaces";
534 // class-map * / match destination-address
535 container destination-address {
536 tailf:info "Destination address";
537 description "Destination address";
539 tailf:info "MAC address";
540 description "MAC address";
541 tailf:cli-list-syntax;
542 type yang:mac-address {
543 tailf:info "H.H.H;;MAC address";
547 // class-map * / discard-class
548 leaf-list discard-class {
549 tailf:info "Discard behavior identifier";
550 description "Discard behavior identifier";
551 tailf:cli-list-syntax;
554 tailf:info "<0-7>;;Discard Class value";
557 // class-map * / dscp
559 tailf:info "Match DSCP in IP(v4) and IPv6 packets";
560 description "Match DSCP in IP(v4) and IPv6 packets";
561 tailf:cli-flat-list-syntax;
562 tailf:cli-list-syntax;
565 // class-map * / fr-de
567 tailf:info "Match on Frame-relay DE bit";
568 description "Match on Frame-relay DE bit";
571 // class-map * / fr-dlci
573 tailf:info "Match on fr-dlci";
574 description "Match on fr-dlci";
575 tailf:cli-list-syntax;
578 tailf:info "<16-1007>;;frame-relay dlci number";
581 // class-map * / input-interface
582 leaf-list input-interface {
583 tailf:info "Select an input interface to match";
584 description "Select an input interface to match";
585 tailf:cli-list-syntax;
586 //FIXME: interface dependency
591 tailf:info "IP specific values";
592 description "IP specific values";
593 // class-map * / ip dscp
595 tailf:info "Match IP DSCP (DiffServ CodePoints)";
596 description "Match IP DSCP (DiffServ CodePoints)";
597 tailf:cli-flat-list-syntax;
598 tailf:cli-list-syntax;
601 // class-map * / ip precedence
602 leaf-list precedence {
603 tailf:info "Match IP precedence";
604 description "Match IP precedence";
605 tailf:cli-flat-list-syntax;
606 type precedence-type;
608 // class-map * / ip rtp
610 tailf:info "Match RTP port nos";
611 description "Match RTP port nos";
616 tailf:info "<2000-65535>;;Lower bound of UDP"+
623 tailf:info "<0-16383>;;Range of UDP ports";
628 // class-map * / non-client-nrt
629 leaf non-client-nrt {
630 tailf:cli-full-command;
633 // class-map * / mpls
635 tailf:info "Multi Protocol Label Switching specific values";
636 description "Multi Protocol Label Switching specific values";
637 container experimental {
638 tailf:info "Match MPLS experimental";
639 description "Match MPLS experimental";
641 tailf:info "Match MPLS experimental value on topmost label";
642 description "Match MPLS experimental value on topmost label";
643 tailf:cli-flat-list-syntax;
646 tailf:info "<0-7>;;Enter up to 8 experimental values "+
647 "separated by white-spaces";
652 // class-map * / packet
654 tailf:info "Layer 3 Packet length";
655 description "Layer 3 Packet length";
657 tailf:info "Layer 3 Packet length";
658 description "Layer 3 Packet length";
660 tailf:info "Maximum length of packet";
661 description "Maximum length of packet";
664 tailf:info "<1-2000>;;Packet length in bytes";
668 tailf:info "Minimum length of packet";
669 description "Minimum length of packet";
672 tailf:info "<1-2000>;;Packet length in bytes";
677 // class-map * / precedence
678 leaf-list precedence {
679 tailf:info "Match Precedence in IP(v4) and IPv6 packets";
680 description "Match Precedence in IP(v4) and IPv6 packets";
681 tailf:cli-flat-list-syntax;
682 type precedence-type;
684 // class-map * / protocol
686 tailf:info "Protocol";
687 description "Protocol";
689 tailf:cli-drop-node-name;
692 tailf:info "IEEE 802.11 WLANs WG IAPP";
695 tailf:info "ACE Server/Propagation";
698 tailf:info "America-Online Instant Messenger";
701 tailf:info "Apple QuickTime";
704 tailf:info "Bliff mail notification";
707 tailf:info "bittorrent";
710 tailf:info "Bootstrap Protocol Client";
713 tailf:info "Bootstrap Protocol Server";
716 tailf:info "CD Database Protocol";
722 tailf:info "Cisco FNATIVE";
724 enum cisco-net-mgmt {
725 tailf:info "cisco-net-mgmt";
728 tailf:info "cisco license/perf/GDP/X.25/ident svcs";
731 tailf:info "Cisco SYSMAINT";
734 tailf:info "Cisco TDP";
737 tailf:info "Cisco TNATIVE";
739 enum citriximaclient {
740 tailf:info "Citrix IMA Client";
743 tailf:info "Cisco Line Protocol";
745 enum creativepartnr {
746 tailf:info "Creative Partnr";
748 enum creativeserver {
749 tailf:info "Creative Server";
752 tailf:info "Daytime (RFC 867)";
755 tailf:info "dBASE Unix";
757 enum dbcontrol_agent {
758 tailf:info "Oracle dbControl Agent po";
761 tailf:info "Dynamic DNS Version 3";
764 tailf:info "DHCP Failover";
767 tailf:info "Direct Connect Version 2.0";
770 tailf:info "Discard port";
773 tailf:info "DNSIX Securit Attribute Token Map";
776 tailf:info "Echo port";
778 enum entrust-svc-hdlr {
779 tailf:info "Entrust KM/Admin Service Handler";
782 tailf:info "Entrust sps/aaas/aams";
785 tailf:info "Remote Process Execution";
791 tailf:info "FTP over TLS/SSL";
797 tailf:info "Oracle GIOP/SSL";
800 tailf:info "GPRS Tunneling Protocol Version 0";
803 tailf:info "GPRS Tunneling Protocol Version 1";
806 tailf:info "H225 RAS over Unicast";
808 enum h323callsigalt {
809 tailf:info "h323 Call Signal Alternate";
812 tailf:info "HP Performance data alarm manager";
815 tailf:info "HP Performance data collector";
817 enum hp-managed-node {
818 tailf:info "HP Performance data managed node";
821 tailf:info "Hot Standby Router Protocol";
824 tailf:info "Secure Hypertext Transfer Protocol";
827 tailf:info "ica (Citrix)";
830 tailf:info "icabrowser (Citrix)";
833 tailf:info "Authentication Service";
836 tailf:info "IGMP over UDP for SSM";
839 tailf:info "Interactive Mail Access Protocol 3";
842 tailf:info "IMAP over TLS/SSL";
848 tailf:info "Microsoft IPsec NAT-T";
851 tailf:info "IRC-SERV";
854 tailf:info "IRC over TLS/SSL";
866 tailf:info "iSCSI port";
872 tailf:info "LDAP admin server port";
875 tailf:info "LDAP over TLS/SSL";
878 tailf:info "Remote login";
881 tailf:info "Lotus Mail Tracking Agent Protocol";
884 tailf:info "Lotus Note";
886 // AppNav match protocol
891 tailf:info "MS-AD-REP";
894 tailf:info "MS-EXCH-NSPI";
900 tailf:info "MS-FRSAPI";
907 tailf:info "MSN-MESSENGER";
910 tailf:info "NETLOGON";
913 tailf:info "Microsoft-DS";
915 enum ms-cluster-net {
916 tailf:info "MS Cluster Net";
919 tailf:info "Microsoft .NETster Port";
922 tailf:info "Microsoft SNA Server/Base";
925 tailf:info "Microsoft SQL";
928 tailf:info "Microsoft SQL Monitor";
930 enum msexch-routing {
931 tailf:info "Microsoft Exchange Routing";
934 tailf:info "MSN Instant Messenger";
937 tailf:info "Microsoft Remote Procedure Call";
943 tailf:info "N2H2 Filter Service Port";
946 tailf:info "NCP (Novell)";
949 tailf:info "Oracle Net8 Cman/Admin";
952 tailf:info "NETBIOS Datagram Service";
955 tailf:info "NETBIOS Name Service";
958 tailf:info "NETBIOS Session Service";
961 tailf:info "Variant of systat";
964 tailf:info "OEM Agent (Oracle)";
970 tailf:info "Oracle EM/VP";
973 tailf:info "Oracle Names";
976 tailf:info "Oracle SQL*Net v1/v2";
978 enum pcanywheredata {
979 tailf:info "pcANYWHEREdata";
981 enum pcanywherestat {
982 tailf:info "pcANYWHEREstat";
985 tailf:info "POP3 over TLS/SSL";
988 tailf:info "Password Generator Protocol";
991 tailf:info "Quick Mail Transfer Protocol";
994 tailf:info "remote-winsock";
997 tailf:info "RADIUS & Accounting";
1000 tailf:info "Oracle RDB";
1003 tailf:info "RealNetwork's Realmedia Protocol";
1006 tailf:info "ISS Real Secure Console Service Port";
1009 tailf:info "Local Routing Process";
1012 tailf:info "RSVP ENCAPSULATION-1/2";
1015 tailf:info "RSVP Tunnel";
1018 tailf:info "Oracle RTC-PM port";
1021 tailf:info "Remote Telnet Service";
1027 tailf:info "Remote command";
1030 tailf:info "SIP-TLS";
1033 tailf:info "SMS RCINFO/XFER/CHAT";
1036 tailf:info "SNMP Trap";
1039 tailf:info "SQL-NET";
1042 tailf:info "SQL Services";
1045 tailf:info "SQL Service";
1048 tailf:info "SSLshell";
1051 tailf:info "State Sync Protocol";
1054 tailf:info "Reliable Syslog Service";
1057 tailf:info "Login Host Protocol (TACACS)";
1060 tailf:info "TACACS-Database Service";
1063 tailf:info "Tarantella";
1069 tailf:info "Telnet over TLS/SSL";
1075 tailf:info "Time server";
1078 tailf:info "cisco RSRB";
1081 tailf:info "Oracle TTC/SSL";
1087 tailf:info "UUCPD/UUCP-RLOGIN";
1093 tailf:info "Network Disctionary";
1096 tailf:info "Who's service";
1099 tailf:info "Microsoft WINS";
1102 tailf:info "X Window System";
1105 tailf:info "XDM Control Protocol";
1108 tailf:info "Yahoo! Instant Messenger";
1111 tailf:info "AppleTalk ARP";
1114 tailf:info "AppleTalk";
1117 tailf:info "IP ARP";
1120 tailf:info "Border Gateway Protocol";
1123 tailf:info "Bridging";
1126 tailf:info "Block Serial Tunnel";
1129 tailf:info "Cisco Discovery Protocol";
1134 tailf:info "Citrix Systems ICA protocol";
1135 description "Citrix Systems ICA protocol";
1136 presence "enable citrix system protocol matching";
1138 tailf:info "Citrix ICA tag 0-high 1-medium 2-low "+
1140 description "Citrix ICA tag 0-high 1-medium 2-low "+
1143 tailf:info "WORD;;Enter a string as the sub-protocol "+
1149 tailf:info "ISO CLNS";
1150 description "ISO CLNS";
1154 tailf:info "ISO CLNS End System";
1155 description "ISO CLNS End System";
1159 tailf:info "ISO CLNS Intermediate System";
1160 description "ISO CLNS Intermediate System";
1164 tailf:info "ISO CMNS";
1165 description "ISO CMNS";
1168 leaf compressedtcp {
1169 tailf:info "Compressed TCP (VJ";
1170 description "Compressed TCP (VJ";
1174 tailf:info "CU-SeeMe desktop video conference";
1175 description "CU-SeeMe desktop video conference";
1179 tailf:info "DECnet";
1180 description "DECnet";
1184 tailf:info "DECnet Node";
1185 description "DECnet Node";
1188 leaf decnet_router-l1 {
1189 tailf:info "DECnet Router L1";
1190 description "DECnet Router L1";
1193 leaf decnet_router-l2 {
1194 tailf:info "DECnet Router L2";
1195 description "DECnet Router L2";
1199 tailf:info "Dynamic Host Configuration";
1200 description "Dynamic Host Configuration";
1205 tailf:info "Data Link Switching (Direct encapsulation only";
1209 tailf:info "Domain Name Server lookup";
1213 tailf:info "eDonkey";
1217 tailf:info "Exterior Gateway Protocol";
1221 tailf:info "Enhanced Interior Gateway Routing Protocol";
1225 tailf:info "MS-RPC for Exchange";
1227 container fasttrack {
1228 tailf:info "FastTrack Traffic - KaZaA, Morpheus, Grokster";
1229 description "FastTrack Traffic - KaZaA, Morpheus, Grokster";
1230 presence "enable fasttrack matching";
1231 leaf file-transfer {
1232 tailf:info "File transfer stream";
1233 description "File transfer stream";
1235 tailf:info "WORD;;Enter a string as the sub-protocol "+
1242 tailf:info "Finger";
1246 tailf:info "File Transfer Protocol";
1248 container gnutella {
1249 tailf:info "Gnutella Version2 Traffic - BearShare, Shareeza, "+
1251 description "Gnutella Version2 Traffic - BearShare, Shareeza, "+
1253 presence "enable gnutella matching";
1254 leaf file-transfer {
1255 tailf:info "File transfer stream";
1256 description "File transfer stream";
1258 tailf:info "WORD;;Enter a string as the sub-protocol "+
1265 tailf:info "Gopher";
1269 tailf:info "Generic Routing Encapsulation";
1273 tailf:info "H323 Protocol";
1276 tailf:info "World Wide Web traffic";
1277 description "World Wide Web traffic";
1278 presence "enable http traffic matching";
1279 leaf c-header-field {
1280 tailf:info "Client general Header Field";
1281 description "Client general Header Field";
1283 tailf:info "WORD;;Enter a string as the sub-protocol "+
1288 tailf:info "Server Host Name";
1289 description "Server Host Name";
1291 tailf:info "WORD;;Enter a string as the sub-protocol "+
1296 tailf:info "Match MIME Type";
1297 description "Match MIME Type";
1299 tailf:info "WORD;;Enter a string as the sub-protocol "+
1303 leaf s-header-field {
1304 tailf:info "Server general Header Field";
1305 description "Server general Header Field";
1307 tailf:info "WORD;;Enter a string as the sub-protocol "+
1312 tailf:info "Match URL String";
1313 description "Match URL String";
1315 tailf:info "WORD;;Enter a string as the sub-protocol "+
1321 tailf:info "Internet Control Message";
1322 description "Internet Control Message";
1326 tailf:info "Internet Message Access Protocol";
1327 description "Internet Message Access Protocol";
1336 tailf:info "IP in IP (encapsulation";
1337 description "IP in IP (encapsulation";
1341 tailf:info "IP Security Protocol (ESP/AH";
1342 description "IP Security Protocol (ESP/AH";
1351 tailf:info "Novell IPX";
1352 description "Novell IPX";
1357 tailf:info "Internet Relay Chat";
1358 description "Internet Relay Chat";
1361 tailf:info "Kazaa Version 2";
1362 description "Kazaa Version 2";
1363 presence "enable kazaa version 2 matching";
1364 leaf file-transfer {
1365 tailf:info "File transfer stream";
1366 description "File transfer stream";
1368 tailf:info "WORD;;Enter a string as the sub-protocol "+
1374 tailf:info "Kerberos";
1375 description "Kerberos";
1379 tailf:info "L2F/L2TP tunnel";
1380 description "L2F/L2TP tunnel";
1384 tailf:info "Lightweight Directory Access Protocol";
1385 description "Lightweight Directory Access Protocol";
1394 tailf:info "Media Gateway Control Protocol";
1395 description "Media Gateway Control Protocol";
1399 tailf:info "Napster Traffic";
1400 description "Napster Traffic";
1401 presence "enable napster matching";
1403 tailf:info "Non-standard port advertizements";
1404 description "Non-standard port advertizements";
1409 tailf:info "NetBIOS";
1410 description "NetBIOS";
1414 tailf:info "Microsoft Netshow";
1415 description "Microsoft Netshow";
1419 tailf:info "Network File System";
1420 description "Network File System";
1424 tailf:info "Network News Transfer Protocol";
1425 description "Network News Transfer Protocol";
1429 tailf:info "Lotus Notes(R";
1430 description "Lotus Notes(R";
1434 tailf:info "Novadigm EDM";
1435 description "Novadigm EDM";
1439 tailf:info "Network Time Protocol";
1440 description "Network Time Protocol";
1444 tailf:info "Open Shortest Path First";
1445 description "Open Shortest Path First";
1449 tailf:info "PAD links";
1450 description "PAD links";
1454 tailf:info "Symantec pcANYWHERE";
1455 description "Symantec pcANYWHERE";
1459 tailf:info "Post Office Protocol";
1460 description "Post Office Protocol";
1464 tailf:info "PPP over Ethernet";
1465 description "PPP over Ethernet";
1469 tailf:info "Point-to-Point Tunneling Protocol";
1470 description "Point-to-Point Tunneling Protocol";
1474 tailf:info "print spooler/lpd";
1475 description "print spooler/lpd";
1479 tailf:info "qllc protocol";
1480 description "qllc protocol";
1484 tailf:info "BSD r-commands (rsh, rlogin, rexec";
1485 description "BSD r-commands (rsh, rlogin, rexec";
1489 tailf:info "Routing Information Protocol";
1490 description "Routing Information Protocol";
1494 tailf:info "Remote Source-Route Bridging";
1495 description "Remote Source-Route Bridging";
1499 tailf:info "Resource Reservation Protocol";
1500 description "Resource Reservation Protocol";
1504 tailf:info "Real Time Control Protocol";
1505 description "Real Time Control Protocol";
1509 tailf:info "Real Time Protocol";
1510 description "Real Time Protocol";
1511 presence "enable rtp matching";
1513 tailf:info "Match voice packets";
1514 description "Match voice packets";
1518 tailf:info "Match an explicit PT";
1519 description "Match an explicit PT";
1521 tailf:info "WORD;;Enter a string as the sub-protocol "+
1526 tailf:info "Match video packets";
1527 description "Match video packets";
1532 tailf:info "Real Time Streaming Protocol";
1533 description "Real Time Streaming Protocol";
1537 tailf:info "FTP over TLS/SSL";
1538 description "FTP over TLS/SSL";
1542 tailf:info "Secured HTTP";
1543 description "Secured HTTP";
1547 tailf:info "Internet Message Access Protocol over TLS/SSL";
1548 description "Internet Message Access Protocol over TLS/SSL";
1552 tailf:info "Internet Relay Chat over TLS/SSL";
1553 description "Internet Relay Chat over TLS/SSL";
1557 tailf:info "Lightweight Directory Access Protocol over TLS/SSL";
1558 description "Lightweight Directory Access Protocol over TLS/SSL";
1562 tailf:info "Network News Transfer Protocol over TLS/SSL";
1563 description "Network News Transfer Protocol over TLS/SSL";
1567 tailf:info "Post Office Protocol over TLS/SSL";
1568 description "Post Office Protocol over TLS/SSL";
1571 leaf secure-telnet {
1572 tailf:info "Telnet over TLS/SSL";
1573 description "Telnet over TLS/SSL";
1577 tailf:info "Session Initiation Protocol";
1578 description "Session Initiation Protocol";
1582 tailf:info "Skinny Protocol";
1583 description "Skinny Protocol";
1587 tailf:info "Simple Mail Transfer Protocol";
1588 description "Simple Mail Transfer Protocol";
1594 tailf:info "Snapshot routing support";
1595 description "Snapshot routing support";
1599 tailf:info "Simple Network Management Protocol";
1600 description "Simple Network Management Protocol";
1605 description "SOCKS";
1609 tailf:info "SQL*NET for Oracle";
1610 description "SQL*NET for Oracle";
1614 tailf:info "MS SQL Server";
1615 description "MS SQL Server";
1619 tailf:info "Secured Shell";
1620 description "Secured Shell";
1624 tailf:info "Xing Technology StreamWorks player";
1625 description "Xing Technology StreamWorks player";
1629 tailf:info "Serial Tunnel";
1630 description "Serial Tunnel";
1634 tailf:info "Sun RPC";
1635 description "Sun RPC";
1639 tailf:info "WORD;;Enter a string as the sub-protocol "+
1640 "parameter"; tailf:info "System Logging Utility";
1641 description "System Logging Utility";
1645 tailf:info "Telnet";
1646 description "Telnet";
1650 tailf:info "Trivial File Transfer Protocol";
1651 description "Trivial File Transfer Protocol";
1655 tailf:info "VDOLive streaming video";
1656 description "VDOLive streaming video";
1660 tailf:info "voice over Frame Relay packets";
1661 description "voice over Frame Relay packets";
1665 tailf:info "WinMx file-sharing application";
1666 description "WinMx file-sharing application";
1670 tailf:info "X-Windows remote access";
1671 description "X-Windows remote access";
1675 // class-map * / qos-group
1676 leaf-list qos-group {
1677 tailf:info "Qos-group";
1678 description "Qos-group";
1679 tailf:cli-list-syntax;
1681 tailf:info "<0-99>;;Qos Group value";
1685 // class-map * / match security-group
1686 container security-group {
1687 tailf:info "Security group";
1688 description "Security group";
1689 container destination {
1690 tailf:info "Destination security group";
1691 description "Destination security group";
1693 tailf:info "Security group tag";
1694 description "Security group tag";
1696 tailf:info "<1-65533>;;Security group tag id";
1701 tailf:info "Source security group";
1702 description "Source security group";
1704 tailf:info "Security group tag";
1705 description "Security group tag";
1707 tailf:info "<1-65533>;;Security group tag id";
1712 // class-map * / source-address
1713 container source-address {
1714 tailf:info "Source address";
1715 description "Source address";
1717 tailf:info "MAC address";
1718 description "MAC address";
1719 tailf:cli-list-syntax;
1720 type yang:mac-address {
1721 tailf:info "H.H.H;;MAC address";
1725 // class-map * / match vlan
1727 tailf:info "VLANs to match";
1728 description "VLANs to match";
1729 tailf:cli-range-list-syntax;
1730 tailf:cli-list-syntax;
1732 tailf:info "<1-4094>;;VLAN id";
1738 grouping interface-atm-grouping {
1742 grouping interface-cellular-grouping {
1743 //interface * / dialer
1758 //interface * / async
1768 grouping interface-common-grouping {
1769 // interface * / service-policy
1770 container service-policy {
1771 tailf:info "Configure QoS Service Policy";
1772 description "Configure QoS Service Policy";
1774 tailf:cli-full-command;
1775 tailf:info "Keep history of QoS metrics";
1776 description "Keep history of QoS metrics";
1780 tailf:cli-full-command;
1781 tailf:info "Assign policy-map to the input of an interface";
1782 description "Assign policy-map to the input of an interface";
1784 tailf:info "WORD;;policy-map name";
1786 tailf:non-strict-leafref {
1787 path "/ios:native/policy-map/name";
1791 tailf:cli-full-command;
1792 tailf:info "Assign policy-map to the output of an interface";
1793 description "Assign policy-map to the output of an interface";
1795 tailf:info "WORD;;policy-map name";
1797 tailf:non-strict-leafref {
1798 path "/ios:native/policy-map/name";
1802 tailf:info "Configure CPL Service Policy";
1803 description "Configure CPL Service Policy";
1804 container performance-monitor {
1805 tailf:info "Configure media monitor service-policy type";
1806 description "Configure media monitor service-policy type";
1807 tailf:cli-sequence-commands;
1808 tailf:cli-compact-syntax;
1810 tailf:cli-drop-node-name;
1813 tailf:info "Assign policy-map to the input of an interfcae";
1816 tailf:info "Assign policy-map to the output of an interfcae";
1821 tailf:cli-drop-node-name;
1823 tailf:info "WORD;;policy-map name";
1825 tailf:non-strict-leafref {
1826 path "/ios:native/policy-map/name";
1830 // interface * / service-policy type * / service-chain
1831 container service-chain {
1832 tailf:info "Configure Service-chain Service Policy";
1833 description "Configure Service-chain Service Policy";
1834 tailf:cli-sequence-commands;
1835 tailf:cli-compact-syntax;
1837 tailf:cli-drop-node-name;
1840 tailf:info "Assign policy-map to the input of an interfcae";
1843 tailf:info "Assign policy-map to the output of an interfcae";
1848 tailf:cli-drop-node-name;
1850 tailf:info "WORD;;policy-map name";
1852 tailf:non-strict-leafref {
1853 path "/ios:native/policy-map/name";
1861 grouping interface-ethernet-grouping {
1865 grouping interface-grouping {
1869 grouping interface-overlay-grouping {
1873 grouping interface-pointtopoint-grouping {
1877 grouping interface-pseudowire-grouping {
1881 grouping interface-switch-grouping {
1885 grouping interface-tunnel-grouping {
1889 grouping interface-zone-member-grouping {
1890 // interface * / zone-member
1891 container zone-member {
1892 tailf:info "Apply zone name";
1893 description "Apply zone name";
1895 tailf:info "Security zone";
1896 description "Security zone";
1898 tailf:non-strict-leafref {
1899 path "/ios:native/zone/security/id";
1905 grouping police-action-drop-grouping {
1907 tailf:info "drop packet";
1908 description "drop packet";
1913 grouping police-action-grouping {
1915 tailf:cli-break-sequence-commands;
1916 tailf:cli-no-keyword;
1917 tailf:cli-drop-node-name;
1918 tailf:cli-flatten-container;
1919 // policy-map * / class * / police ? / conform-action
1920 uses police-conform-action-grouping;
1921 // policy-map * / class * / police ? / exceed-action
1922 uses police-exceed-action-grouping;
1923 // policy-map * / class * / police ? / violate-action
1924 uses police-violate-action-grouping;
1928 grouping police-conform-action-grouping {
1929 container conform-set-clp-transmit {
1930 tailf:cli-no-keyword;
1931 tailf:cli-drop-node-name;
1932 tailf:cli-flatten-container;
1933 container conform-action {
1934 tailf:info "action when rate is less than conform burst";
1935 description "action when rate is less than conform burst";
1936 tailf:cli-flatten-container;
1937 leaf set-clp-transmit {
1938 tailf:info "set atm clp and send it";
1939 description "set atm clp and send it";
1944 container conform-set-cos-transmit {
1945 tailf:cli-no-keyword;
1946 tailf:cli-drop-node-name;
1947 tailf:cli-flatten-container;
1948 container conform-action {
1949 tailf:info "action when rate is less than conform burst";
1950 description "action when rate is less than conform burst";
1951 tailf:cli-flatten-container;
1952 leaf set-cos-transmit {
1953 tailf:info "rewrite packet cos and send it";
1954 description "rewrite packet cos and send it";
1955 type cos_value-type;
1959 container conform-set-cos-transmit-table {
1960 tailf:cli-no-keyword;
1961 tailf:cli-drop-node-name;
1962 tailf:cli-flatten-container;
1963 container conform-action {
1964 tailf:info "action when rate is less than conform burst";
1965 description "action when rate is less than conform burst";
1966 tailf:cli-compact-syntax;
1967 tailf:cli-flatten-container;
1968 tailf:cli-sequence-commands;
1969 leaf set-cos-transmit {
1970 tailf:info "rewrite packet cos and send it";
1971 description "rewrite packet cos and send it";
1972 type cos_value-type;
1975 tailf:info "Specify table-map";
1976 description "Specify table-map";
1978 path "/ios:native/table-map/name";
1983 container conform-set-discard-class-transmit {
1984 tailf:cli-no-keyword;
1985 tailf:cli-drop-node-name;
1986 tailf:cli-flatten-container;
1987 container conform-action {
1988 tailf:info "action when rate is less than conform burst";
1989 description "action when rate is less than conform burst";
1990 tailf:cli-flatten-container;
1991 leaf set-discard-class-transmit {
1992 tailf:info "set discard-class and send it";
1993 description "set discard-class and send it";
1995 tailf:info "<0-7>;;new discard-class";
2001 container conform-set-dscp-transmit {
2002 tailf:cli-no-keyword;
2003 tailf:cli-drop-node-name;
2004 tailf:cli-flatten-container;
2005 container conform-action {
2006 tailf:info "action when rate is less than conform burst";
2007 description "action when rate is less than conform burst";
2008 tailf:cli-flatten-container;
2009 leaf set-dscp-transmit {
2010 tailf:info "set dscp and send it";
2011 description "set dscp and send it";
2016 container conform-set-dscp-transmit-table {
2017 tailf:cli-no-keyword;
2018 tailf:cli-drop-node-name;
2019 tailf:cli-flatten-container;
2020 container conform-action {
2021 tailf:info "action when rate is less than conform burst";
2022 description "action when rate is less than conform burst";
2023 tailf:cli-compact-syntax;
2024 tailf:cli-flatten-container;
2025 tailf:cli-sequence-commands;
2026 leaf set-dscp-transmit {
2027 tailf:info "set dscp and send it";
2028 description "set dscp and send it";
2032 tailf:info "Specify table-map";
2033 description "Specify table-map";
2035 path "/ios:native/table-map/name";
2040 container conform-set-frde-transmit {
2041 tailf:cli-no-keyword;
2042 tailf:cli-drop-node-name;
2043 tailf:cli-flatten-container;
2044 container conform-action {
2045 tailf:info "action when rate is less than conform burst";
2046 description "action when rate is less than conform burst";
2047 tailf:cli-flatten-container;
2048 leaf set-frde-transmit {
2049 tailf:info "set FR DE and send it";
2050 description "set FR DE and send it";
2055 container conform-set-mpls-exp-imposition-transmit {
2056 tailf:cli-no-keyword;
2057 tailf:cli-drop-node-name;
2058 tailf:cli-flatten-container;
2059 container conform-action {
2060 tailf:info "action when rate is less than conform burst";
2061 description "action when rate is less than conform burst";
2062 tailf:cli-flatten-container;
2063 leaf set-mpls-exp-imposition-transmit {
2064 tailf:info "set exp at tag imposition and send it";
2065 description "set exp at tag imposition and send it";
2066 type exp_value-type;
2070 container conform-set-mpls-exp-imposition-transmit-table {
2071 tailf:cli-no-keyword;
2072 tailf:cli-drop-node-name;
2073 tailf:cli-flatten-container;
2074 container conform-action {
2075 tailf:info "action when rate is less than conform burst";
2076 description "action when rate is less than conform burst";
2077 tailf:cli-compact-syntax;
2078 tailf:cli-flatten-container;
2079 tailf:cli-sequence-commands;
2080 leaf set-mpls-exp-imposition-transmit {
2081 tailf:info "set exp at tag imposition and send it";
2082 description "set exp at tag imposition and send it";
2083 type exp_value-type;
2086 tailf:info "Specify table-map";
2087 description "Specify table-map";
2089 path "/ios:native/table-map/name";
2094 container conform-set-mpls-exp-topmost-transmit {
2095 tailf:cli-no-keyword;
2096 tailf:cli-drop-node-name;
2097 tailf:cli-flatten-container;
2098 container conform-action {
2099 tailf:info "action when rate is less than conform burst";
2100 description "action when rate is less than conform burst";
2101 tailf:cli-flatten-container;
2102 leaf set-mpls-exp-topmost-transmit {
2103 tailf:info "set exp on topmost label and send it";
2104 description "set exp on topmost label and send it";
2105 type exp_value-type;
2109 container conform-set-mpls-exp-topmost-transmit-table {
2110 tailf:cli-no-keyword;
2111 tailf:cli-drop-node-name;
2112 tailf:cli-flatten-container;
2113 container conform-action {
2114 tailf:info "action when rate is less than conform burst";
2115 description "action when rate is less than conform burst";
2116 tailf:cli-compact-syntax;
2117 tailf:cli-flatten-container;
2118 tailf:cli-sequence-commands;
2119 leaf set-mpls-exp-topmost-transmit {
2120 tailf:info "set exp on topmost label and send it";
2121 description "set exp on topmost label and send it";
2122 type exp_value-type;
2125 tailf:info "Specify table-map";
2126 description "Specify table-map";
2128 path "/ios:native/table-map/name";
2133 container conform-set-prec-transmit {
2134 tailf:cli-no-keyword;
2135 tailf:cli-drop-node-name;
2136 tailf:cli-flatten-container;
2137 container conform-action {
2138 tailf:info "action when rate is less than conform burst";
2139 description "action when rate is less than conform burst";
2140 tailf:cli-flatten-container;
2141 leaf set-prec-transmit {
2142 tailf:info "rewrite packet precedence and send it";
2143 description "rewrite packet precedence and send it";
2144 type prec_value-type;
2148 container conform-set-prec-transmit-table {
2149 tailf:cli-no-keyword;
2150 tailf:cli-drop-node-name;
2151 tailf:cli-flatten-container;
2152 container conform-action {
2153 tailf:info "action when rate is less than conform burst";
2154 description "action when rate is less than conform burst";
2155 tailf:cli-compact-syntax;
2156 tailf:cli-flatten-container;
2157 tailf:cli-sequence-commands;
2158 leaf set-prec-transmit {
2159 tailf:info "rewrite packet precedence and send it";
2160 description "rewrite packet precedence and send it";
2161 type prec_value-type;
2164 tailf:info "Specify table-map";
2165 description "Specify table-map";
2167 path "/ios:native/table-map/name";
2172 container conform-set-qos-transmit {
2173 tailf:cli-no-keyword;
2174 tailf:cli-drop-node-name;
2175 tailf:cli-flatten-container;
2176 container conform-action {
2177 tailf:info "action when rate is less than conform burst";
2178 description "action when rate is less than conform burst";
2179 tailf:cli-flatten-container;
2180 leaf set-qos-transmit {
2181 tailf:info "set qos-group and send it";
2182 description "set qos-group and send it";
2183 type qos_value-type;
2187 container conform-set-qos-transmit-table {
2188 tailf:cli-no-keyword;
2189 tailf:cli-drop-node-name;
2190 tailf:cli-flatten-container;
2191 container conform-action {
2192 tailf:info "action when rate is less than conform burst";
2193 description "action when rate is less than conform burst";
2194 tailf:cli-compact-syntax;
2195 tailf:cli-flatten-container;
2196 tailf:cli-sequence-commands;
2197 leaf set-qos-transmit {
2198 tailf:info "set qos-group and send it";
2199 description "set qos-group and send it";
2200 type qos_value-type;
2203 tailf:info "Specify table-map";
2204 description "Specify table-map";
2206 path "/ios:native/table-map/name";
2211 container conform-transmit {
2212 tailf:cli-no-keyword;
2213 tailf:cli-drop-node-name;
2214 tailf:cli-flatten-container;
2215 container conform-action {
2216 tailf:info "action when rate is less than conform burst";
2217 description "action when rate is less than conform burst";
2218 tailf:cli-flatten-container;
2219 uses police-action-transmit-grouping;
2222 container conform-drop {
2223 tailf:cli-no-keyword;
2224 tailf:cli-drop-node-name;
2225 tailf:cli-flatten-container;
2226 container conform-action {
2227 tailf:info "action when rate is less than conform burst";
2228 description "action when rate is less than conform burst";
2229 tailf:cli-flatten-container;
2230 uses police-action-drop-grouping;
2235 grouping police-action-transmit-grouping {
2237 tailf:info "transmit packet";
2238 description "transmit packet";
2243 grouping police-exceed-action-grouping {
2244 container exceed-dscp {
2245 tailf:cli-no-keyword;
2246 tailf:cli-drop-node-name;
2247 tailf:cli-flatten-container;
2248 container exceed-action {
2249 tailf:info "action when rate is within conform and "+
2250 "conform + exceed burst";
2251 description "action when rate is within conform and "+
2252 "conform + exceed burst";
2253 tailf:cli-flatten-container;
2260 container exceed-set-clp-transmit {
2261 tailf:cli-no-keyword;
2262 tailf:cli-drop-node-name;
2263 tailf:cli-flatten-container;
2264 container exceed-action {
2265 tailf:info "action when rate is within conform and "+
2266 "conform + exceed burst";
2267 description "action when rate is within conform and "+
2268 "conform + exceed burst";
2269 tailf:cli-flatten-container;
2270 leaf set-clp-transmit {
2271 tailf:info "set atm clp and send it";
2272 description "set atm clp and send it";
2277 container exceed-set-cos-transmit {
2278 tailf:cli-no-keyword;
2279 tailf:cli-drop-node-name;
2280 tailf:cli-flatten-container;
2281 container exceed-action {
2282 tailf:info "action when rate is within conform and "+
2283 "conform + exceed burst";
2284 description "action when rate is within conform and "+
2285 "conform + exceed burst";
2286 tailf:cli-flatten-container;
2287 leaf set-cos-transmit {
2288 tailf:info "rewrite packet cos and send it";
2289 description "rewrite packet cos and send it";
2290 type cos_value-type;
2294 container exceed-set-discard-class-transmit {
2295 tailf:cli-no-keyword;
2296 tailf:cli-drop-node-name;
2297 tailf:cli-flatten-container;
2298 container exceed-action {
2299 tailf:info "action when rate is within conform and "+
2300 "conform + exceed burst";
2301 description "action when rate is within conform and "+
2302 "conform + exceed burst";
2303 tailf:cli-flatten-container;
2304 leaf set-discard-class-transmit {
2305 tailf:info "set discard-class and send it";
2306 description "set discard-class and send it";
2308 tailf:info "<0-7>;;new discard-class";
2314 container exceed-set-dscp-transmit {
2315 tailf:cli-no-keyword;
2316 tailf:cli-drop-node-name;
2317 tailf:cli-flatten-container;
2318 container exceed-action {
2319 tailf:info "action when rate is within conform and "+
2320 "conform + exceed burst";
2321 description "action when rate is within conform and "+
2322 "conform + exceed burst";
2323 tailf:cli-flatten-container;
2324 leaf set-dscp-transmit {
2325 tailf:info "set dscp and send it";
2326 description "set dscp and send it";
2329 container set-dscp-transmit-c {
2330 tailf:alt-name "set-dscp-transmit";
2341 container exceed-set-frde-transmit {
2342 tailf:cli-no-keyword;
2343 tailf:cli-drop-node-name;
2344 tailf:cli-flatten-container;
2345 container exceed-action {
2346 tailf:info "action when rate is within conform and "+
2347 "conform + exceed burst";
2348 description "action when rate is within conform and "+
2349 "conform + exceed burst";
2350 tailf:cli-flatten-container;
2351 leaf set-frde-transmit {
2352 tailf:info "set FR DE and send it";
2353 description "set FR DE and send it";
2358 container exceed-set-mpls-exp-imposition-transmit {
2359 tailf:cli-no-keyword;
2360 tailf:cli-drop-node-name;
2361 tailf:cli-flatten-container;
2362 container exceed-action {
2363 tailf:info "action when rate is within conform and "+
2364 "conform + exceed burst";
2365 description "action when rate is within conform and "+
2366 "conform + exceed burst";
2367 tailf:cli-flatten-container;
2368 leaf set-mpls-exp-imposition-transmit {
2369 tailf:info "set exp at tag imposition and send it";
2370 description "set exp at tag imposition and send it";
2371 type exp_value-type;
2375 container exceed-set-mpls-exp-topmost-transmit {
2376 tailf:cli-no-keyword;
2377 tailf:cli-drop-node-name;
2378 tailf:cli-flatten-container;
2379 container exceed-action {
2380 tailf:info "action when rate is within conform and "+
2381 "conform + exceed burst";
2382 description "action when rate is within conform and "+
2383 "conform + exceed burst";
2384 tailf:cli-flatten-container;
2385 leaf set-mpls-exp-topmost-transmit {
2386 tailf:info "set exp on topmost label and send it";
2387 description "set exp on topmost label and send it";
2388 type exp_value-type;
2392 container exceed-set-prec-transmit {
2393 tailf:cli-no-keyword;
2394 tailf:cli-drop-node-name;
2395 tailf:cli-flatten-container;
2396 container exceed-action {
2397 tailf:info "action when rate is within conform and "+
2398 "conform + exceed burst";
2399 description "action when rate is within conform and "+
2400 "conform + exceed burst";
2401 tailf:cli-flatten-container;
2402 leaf set-prec-transmit {
2403 tailf:info "rewrite packet precedence and send it";
2404 description "rewrite packet precedence and send it";
2405 type prec_value-type;
2409 container exceed-set-qos-transmit {
2410 tailf:cli-no-keyword;
2411 tailf:cli-drop-node-name;
2412 tailf:cli-flatten-container;
2413 container exceed-action {
2414 tailf:info "action when rate is within conform and "+
2415 "conform + exceed burst";
2416 description "action when rate is within conform and "+
2417 "conform + exceed burst";
2418 tailf:cli-flatten-container;
2419 leaf set-qos-transmit {
2420 tailf:info "set qos-group and send it";
2421 description "set qos-group and send it";
2422 type qos_value-type;
2426 container exceed-transmit {
2427 tailf:cli-no-keyword;
2428 tailf:cli-drop-node-name;
2429 tailf:cli-flatten-container;
2430 container exceed-action {
2431 tailf:info "action when rate is within conform and "+
2432 "conform + exceed burst";
2433 description "action when rate is within conform and "+
2434 "conform + exceed burst";
2435 tailf:cli-flatten-container;
2436 uses police-action-transmit-grouping;
2439 container exceed-drop {
2440 tailf:cli-no-keyword;
2441 tailf:cli-drop-node-name;
2442 tailf:cli-flatten-container;
2443 container exceed-action {
2444 tailf:info "action when rate is within conform and "+
2445 "conform + exceed burst";
2446 description "action when rate is within conform and "+
2447 "conform + exceed burst";
2448 tailf:cli-flatten-container;
2449 uses police-action-drop-grouping;
2454 grouping police-violate-action-grouping {
2455 container violate-set-clp-transmit {
2456 tailf:cli-no-keyword;
2457 tailf:cli-drop-node-name;
2458 tailf:cli-flatten-container;
2459 container violate-action {
2460 tailf:info "action when rate is greater than conform + "+
2462 description "action when rate is greater than conform + "+
2464 tailf:cli-flatten-container;
2465 leaf set-clp-transmit {
2466 tailf:info "set atm clp and send it";
2467 description "set atm clp and send it";
2472 container violate-set-cos-transmit {
2473 tailf:cli-no-keyword;
2474 tailf:cli-drop-node-name;
2475 tailf:cli-flatten-container;
2476 container violate-action {
2477 tailf:info "action when rate is greater than conform + "+
2479 description "action when rate is greater than conform + "+
2481 tailf:cli-flatten-container;
2482 leaf set-cos-transmit {
2483 tailf:info "rewrite packet cos and send it";
2484 description "rewrite packet cos and send it";
2485 type cos_value-type;
2489 container violate-set-discard-class-transmit {
2490 tailf:cli-no-keyword;
2491 tailf:cli-drop-node-name;
2492 tailf:cli-flatten-container;
2493 container violate-action {
2494 tailf:info "action when rate is greater than conform + "+
2496 description "action when rate is greater than conform + "+
2498 tailf:cli-flatten-container;
2499 leaf set-discard-class-transmit {
2500 tailf:info "set discard-class and send it";
2501 description "set discard-class and send it";
2503 tailf:info "<0-7>;;new discard-class";
2509 container violate-set-dscp-transmit {
2510 tailf:cli-no-keyword;
2511 tailf:cli-drop-node-name;
2512 tailf:cli-flatten-container;
2513 container violate-action {
2514 tailf:info "action when rate is greater than conform + "+
2516 description "action when rate is greater than conform + "+
2518 tailf:cli-flatten-container;
2519 leaf set-dscp-transmit {
2520 tailf:info "set dscp and send it";
2521 description "set dscp and send it";
2526 container violate-set-frde-transmit {
2527 tailf:cli-no-keyword;
2528 tailf:cli-drop-node-name;
2529 tailf:cli-flatten-container;
2530 container violate-action {
2531 tailf:info "action when rate is greater than conform + "+
2533 description "action when rate is greater than conform + "+
2535 tailf:cli-flatten-container;
2536 leaf set-frde-transmit {
2537 tailf:info "set FR DE and send it";
2538 description "set FR DE and send it";
2543 container violate-set-mpls-exp-imposition-transmit {
2544 tailf:cli-no-keyword;
2545 tailf:cli-drop-node-name;
2546 tailf:cli-flatten-container;
2547 container violate-action {
2548 tailf:info "action when rate is greater than conform + "+
2550 description "action when rate is greater than conform + "+
2552 tailf:cli-flatten-container;
2553 leaf set-mpls-exp-imposition-transmit {
2554 tailf:info "set exp at tag imposition and send it";
2555 description "set exp at tag imposition and send it";
2556 type exp_value-type;
2560 container violate-set-mpls-exp-topmost-transmit {
2561 tailf:cli-no-keyword;
2562 tailf:cli-drop-node-name;
2563 tailf:cli-flatten-container;
2564 container violate-action {
2565 tailf:info "action when rate is greater than conform + "+
2567 description "action when rate is greater than conform + "+
2569 tailf:cli-flatten-container;
2570 leaf set-mpls-exp-topmost-transmit {
2571 tailf:info "set exp on topmost label and send it";
2572 description "set exp on topmost label and send it";
2573 type exp_value-type;
2577 container violate-set-prec-transmit {
2578 tailf:cli-no-keyword;
2579 tailf:cli-drop-node-name;
2580 tailf:cli-flatten-container;
2581 container violate-action {
2582 tailf:info "action when rate is greater than conform + "+
2584 description "action when rate is greater than conform + "+
2586 tailf:cli-flatten-container;
2587 leaf set-prec-transmit {
2588 tailf:info "rewrite packet precedence and send it";
2589 description "rewrite packet precedence and send it";
2590 type prec_value-type;
2594 container violate-set-qos-transmit {
2595 tailf:cli-no-keyword;
2596 tailf:cli-drop-node-name;
2597 tailf:cli-flatten-container;
2598 container violate-action {
2599 tailf:info "action when rate is greater than conform + "+
2601 description "action when rate is greater than conform + "+
2603 tailf:cli-flatten-container;
2604 leaf set-qos-transmit {
2605 tailf:info "set qos-group and send it";
2606 description "set qos-group and send it";
2607 type qos_value-type;
2611 container violate-transmit {
2612 tailf:cli-no-keyword;
2613 tailf:cli-drop-node-name;
2614 tailf:cli-flatten-container;
2615 container violate-action {
2616 tailf:info "action when rate is greater than conform + "+
2618 description "action when rate is greater than conform + "+
2620 tailf:cli-flatten-container;
2621 uses police-action-transmit-grouping;
2624 container violate-drop {
2625 tailf:cli-no-keyword;
2626 tailf:cli-drop-node-name;
2627 tailf:cli-flatten-container;
2628 container violate-action {
2629 tailf:info "action when rate is greater than conform + "+
2631 description "action when rate is greater than conform + "+
2633 tailf:cli-flatten-container;
2634 uses police-action-drop-grouping;
2639 grouping pseudowire-grouping {
2643 grouping random-detect-grouping {
2644 leaf min-threshold {
2645 tailf:cli-drop-node-name;
2646 tailf:cli-incomplete-command;
2649 tailf:info "<1-4096>;;minimum threshold (number of packets)";
2652 leaf max-threshold {
2653 tailf:cli-drop-node-name;
2654 tailf:cli-incomplete-command;
2657 tailf:info "<1-4096>;;maximum threshold (number of packets)";
2661 tailf:cli-drop-node-name;
2664 tailf:info "<1-65535>;;mark probability denominator";
2670 /// ========================================================================
2672 /// ========================================================================
2675 tailf:cli-drop-node-name;
2676 container table-map {
2677 tailf:info "Map external entry attributes into routing table";
2678 tailf:cli-full-command;
2679 description "Map external entry attributes into routing table";
2680 tailf:display-when "ipv4 or ../../ipv4 or ../ipv4 " +
2681 " or ipv6 or ../../ipv6 or ../ipv6 ";
2683 description "route-map name";
2684 tailf:cli-drop-node-name;
2686 tailf:info "WORD;;route-map name";
2690 tailf:info "Selective route download";
2695 /// ========================================================================
2697 /// ========================================================================
2699 container interface {
2700 tailf:info "Configure interfaces";
2701 description "Configure interfaces";
2702 tailf:cli-diff-dependency "/ios:native/vrf";
2703 tailf:cli-explicit-exit;
2705 // interface AppNav-Compress
2706 list AppNav-Compress {
2707 tailf:info "Service-Context Virtual Interface Compress";
2708 description "Service-Context Virtual Interface Compress";
2709 tailf:cli-allow-join-with-key {
2710 tailf:cli-display-joined;
2712 tailf:cli-mode-name "config-if";
2713 tailf:cli-suppress-key-abbreviation;
2717 tailf:info "<1-1000>;;AppNav-Compress interface number";
2721 uses interface-common-grouping;
2723 // interface AppNav-UnCompress
2724 list AppNav-UnCompress {
2725 tailf:info "Service-Context Virtual Interface UnCompress";
2726 description "Service-Context Virtual Interface UnCompress";
2727 tailf:cli-allow-join-with-key {
2728 tailf:cli-display-joined;
2730 tailf:cli-mode-name "config-if";
2731 tailf:cli-suppress-key-abbreviation;
2735 tailf:info "<1-1000>;;AppNav-UnCompress interface number";
2739 uses interface-common-grouping;
2744 tailf:info "ATM interface";
2745 description "ATM interface";
2746 tailf:cli-allow-join-with-key {
2747 tailf:cli-display-joined;
2749 tailf:cli-mode-name "config-if";
2750 tailf:cli-suppress-key-abbreviation;
2754 tailf:info "<slot>/<subslot>/<port>;;ATM interface number";
2755 pattern "([0-9]/){2}([0-9]|(ima[0-9]))(:[0-9])?";
2758 uses interface-atm-grouping;
2761 // subinterface ATM #.#
2762 container ATM-subinterface {
2763 tailf:cli-drop-node-name;
2765 tailf:cli-allow-join-with-key {
2766 tailf:cli-display-joined;
2768 tailf:cli-mode-name "config-subif";
2769 tailf:cli-suppress-key-abbreviation;
2773 pattern "([0-9]/){2}[0-9]\.([0-9]/){3}[0-9]";
2776 uses interface-atm-grouping;
2780 // interface ATM-ACR #
2782 tailf:info "ATM-ACR interface";
2783 description "ATM-ACR interface";
2784 tailf:cli-allow-join-with-key {
2785 tailf:cli-display-joined;
2787 tailf:cli-mode-name "config-if";
2788 tailf:cli-suppress-key-abbreviation;
2792 tailf:info "<slot>/<subslot>/<port>;;ATM-ACR interface number";
2796 uses interface-atm-grouping;
2799 // subinterface ATM-ACR #.#
2800 container ATM-ACRsubinterface {
2801 tailf:cli-drop-node-name;
2803 tailf:cli-allow-join-with-key {
2804 tailf:cli-display-joined;
2806 tailf:cli-mode-name "config-subif";
2807 tailf:cli-suppress-key-abbreviation;
2811 pattern "[0-9]\.([0-9]/){3}[0-9]";
2814 uses interface-atm-grouping;
2819 tailf:info "Bridge-Domain interface";
2820 description "Bridge-Domain interface";
2821 tailf:cli-allow-join-with-key {
2822 tailf:cli-display-joined;
2824 tailf:cli-mode-name "config-if";
2828 // pattern "([0-9])+/([0-9])+(/([0-9])+)?";
2829 tailf:info "<1-16000>;;BDI interface number";
2832 uses interface-common-grouping;
2837 tailf:info "Circuit Emulation interface";
2838 description "Circuit Emulation interface";
2839 tailf:cli-allow-join-with-key {
2840 tailf:cli-display-joined;
2842 tailf:cli-mode-name "config-if";
2843 tailf:cli-suppress-key-abbreviation;
2847 tailf:info "<slot>/<port>;;CEM interface number";
2848 pattern "([0-9]/){2}[0-9]";
2851 uses interface-atm-grouping;
2854 // interface CEM-ACR #
2856 tailf:info "Circuit Emulation interface";
2857 description "Circuit Emulation interface";
2858 tailf:cli-allow-join-with-key {
2859 tailf:cli-display-joined;
2861 tailf:cli-mode-name "config-if";
2862 tailf:cli-suppress-key-abbreviation;
2866 tailf:info "<0-255>;;CEM-ACR interface number";
2870 uses interface-atm-grouping;
2873 // interface Embedded-Service-Engine
2874 list Embedded-Service-Engine {
2875 tailf:info "cisco embedded service engine module";
2876 description "cisco embedded service engine module";
2877 tailf:cli-allow-join-with-key {
2878 tailf:cli-display-joined;
2880 tailf:cli-mode-name "config-if";
2881 // tailf:cli-full-command;
2885 tailf:info "<0-2>/<0-0>;;Embedded-Service-Engine interface number";
2888 uses interface-common-grouping;
2891 // interface FastEthernet
2893 tailf:info "FastEthernet IEEE 802.3";
2894 description "FastEthernet IEEE 802.3";
2895 tailf:cli-allow-join-with-key {
2896 tailf:cli-display-joined;
2898 tailf:cli-mode-name "config-if";
2899 // tailf:cli-full-command;
2903 //pattern "([0-9])+(/([0-9])+)*";
2904 tailf:info "<0-66>/<0-128>;;FastEthernet interface number";
2907 uses interface-ethernet-grouping;
2908 uses interface-common-grouping;
2909 uses interface-zone-member-grouping;
2910 uses interface-switch-grouping; //CATALYST
2913 // interface GigabitEthernet
2914 list GigabitEthernet {
2915 tailf:info "GigabitEthernet IEEE 802.3z";
2916 description "GigabitEthernet IEEE 802.3z";
2917 tailf:cli-allow-join-with-key {
2918 tailf:cli-display-joined;
2920 tailf:cli-mode-name "config-if";
2921 // tailf:cli-full-command;
2925 //pattern "([0-9])+(/([0-9])+)*";
2926 tailf:info "<0-66>/<0-128>;;"+
2927 "GigabitEthernet interface number";
2931 tailf:info "Media type";
2932 description "Media type";
2935 tailf:info "Use whichever connector is attached";
2938 tailf:info "Copper";
2952 uses interface-ethernet-grouping;
2953 uses interface-common-grouping;
2954 uses interface-zone-member-grouping;
2955 uses interface-switch-grouping; //CATALYST
2958 // interface TenGigabitEthernet
2959 list TenGigabitEthernet {
2960 tailf:info "Ten Gigabit Ethernet";
2961 description "Ten Gigabit Ethernet";
2962 tailf:cli-allow-join-with-key {
2963 tailf:cli-display-joined;
2965 tailf:cli-mode-name "config-if";
2966 // tailf:cli-full-command;
2970 //pattern "([0-9])+(/([0-9])+)*";
2971 tailf:info "<0-66>/<0-128>;;"+
2972 "TenGigabitEthernet interface number";
2976 tailf:info "Media type";
2977 description "Media type";
2980 tailf:info "Use whichever connector is attached";
2983 tailf:info "Copper";
2997 uses interface-ethernet-grouping;
2998 uses interface-common-grouping;
2999 uses interface-zone-member-grouping;
3000 uses interface-switch-grouping; //CATALYST
3003 // interface Loopback
3005 // pvh hide Loopback interfaces
3006 // tailf:hidden full;
3007 tailf:info "Loopback interface";
3008 description "Loopback interface";
3009 tailf:cli-allow-join-with-key {
3010 tailf:cli-display-joined;
3012 tailf:cli-mode-name "config-if";
3013 // tailf:cli-full-command;
3017 // pattern "([0-9])+/([0-9])+(/([0-9])+)?";
3018 tailf:info "<0-2147483647>;;Loopback interface number";
3021 uses interface-common-grouping;
3025 tailf:info "Network virtualization endpoint interface";
3026 description "Network virtualization endpoint interface";
3027 tailf:cli-allow-join-with-key {
3028 tailf:cli-display-joined;
3030 tailf:cli-mode-name "config-if";
3034 tailf:info "<1-4096>;;nve interface number";
3039 container source-interface {
3040 tailf:info "Specify source interface for NVE";
3041 description "Specify source interface for NVE";
3042 // FIXME: tailf:cli-diff-dependency "/ios:native/interface";
3043 uses interface-grouping;
3046 tailf:cli-incomplete-command;
3047 tailf:cli-sequence-commands;
3049 tailf:info "Configure VNI information";
3050 description "Configure VNI information";
3051 tailf:cli-sequence-commands;
3052 tailf:cli-compact-syntax;
3057 tailf:info "WORD;;VNI range or instance between 4096-16777215 example: 6010-6030 or 7115";
3060 container mcast-group {
3061 tailf:cli-incomplete-command;
3062 tailf:cli-sequence-commands;
3063 leaf multicast-group-min {
3064 tailf:cli-drop-node-name;
3065 tailf:info "Starting Multicast Group IPv4 Address";
3066 description "Starting Multicast Group IPv4 Address";
3067 type inet:ipv4-address {
3068 tailf:info "A.B.C.D;;IP address";
3071 leaf multicast-group-max {
3072 tailf:cli-drop-node-name;
3073 tailf:info "Ending Multicast Group IPv4 Address";
3074 description "Ending Multicast Group IPv4 Address";
3075 type inet:ipv4-address {
3076 tailf:info "A.B.C.D;;IP address";
3084 // interface overlay
3086 tailf:info "Overlay interface";
3087 description "Overlay interface";
3088 tailf:cli-allow-join-with-key {
3089 tailf:cli-display-joined;
3091 tailf:cli-mode-name "config-if";
3095 tailf:info "<0-512>;;Overlay interface number";
3099 uses interface-common-grouping;
3100 uses interface-ethernet-grouping;
3101 uses interface-overlay-grouping;
3104 // interface Port-channel
3106 tailf:info "Ethernet Channel of interfaces";
3107 description "Ethernet Channel of interfaces";
3108 tailf:cli-allow-join-with-key {
3109 tailf:cli-display-joined;
3111 tailf:cli-mode-name "config-if";
3112 // tailf:cli-full-command;
3116 tailf:info "<1-512>;;Port-channel interface number";
3121 tailf:alt-name "speed";
3122 tailf:info "Configure speed operation.";
3123 description "Configure speed operation.";
3126 tailf:info "Force 10 Mbps operation";
3129 tailf:info "Force 100 Mbps operation";
3132 tailf:info "Enable AUTO speed configuration";
3134 enum "nonegotiate" {
3138 tailf:info "Enable AUTO speed configuration";
3142 uses interface-common-grouping;
3143 uses interface-switch-grouping; //CATALYST
3144 uses interface-ethernet-grouping;
3147 // subinterface Port-channel #.#
3148 container Port-channel-subinterface {
3149 tailf:cli-drop-node-name;
3151 tailf:cli-allow-join-with-key {
3152 tailf:cli-display-joined;
3154 tailf:cli-mode-name "config-subif";
3155 tailf:cli-suppress-key-abbreviation;
3160 uses interface-common-grouping;
3161 uses interface-switch-grouping; //CATALYST
3162 uses interface-ethernet-grouping;
3166 //interface pseudowire
3168 tailf:info "Pseudowire Interface";
3169 description "Pseudowire Interface";
3170 tailf:cli-mode-name "config-if";
3171 tailf:cli-allow-join-with-key {
3172 tailf:cli-display-joined;
3177 tailf:info "<1-231072>;;pseudowire interface number";
3181 uses pseudowire-grouping;
3185 tailf:info "SM Interface";
3186 description "SM Interface";
3187 tailf:cli-mode-name "config-if";
3188 tailf:cli-allow-join-with-key {
3189 tailf:cli-display-joined;
3194 pattern "([0-9])+(/([0-9])+)?";
3197 uses interface-common-grouping;
3199 //interface Cellular
3201 tailf:info "Cellular Interface";
3202 description "Cellular Interface";
3203 tailf:cli-mode-name "config-if";
3204 tailf:cli-allow-join-with-key {
3205 tailf:cli-display-joined;
3210 pattern "([0-9])+(/([0-9])+)?";
3213 uses interface-common-grouping;
3214 uses interface-cellular-grouping;
3219 tailf:info "Catalyst Vlans";
3220 description "Catalyst Vlans";
3221 tailf:cli-allow-join-with-key {
3222 tailf:cli-display-joined;
3227 tailf:info "<1-4094>;;Vlan interface number";
3231 uses interface-common-grouping;
3232 uses interface-zone-member-grouping;
3235 // interface Group-Async
3237 tailf:info "Async Group interface";
3238 description "Async Group interface";
3239 tailf:cli-allow-join-with-key {
3240 tailf:cli-display-joined;
3245 tailf:info "<0-64>;;Group-Async interface number";
3249 leaf physical-layer {
3250 tailf:info "Configure sync or async physical layer on serial "+
3252 description "Configure sync or async physical layer on serial "+
3256 tailf:info "Configure asynchronous physical layer on serial "
3260 tailf:info "Configure synchronous physical layer on serial "+
3265 uses interface-common-grouping;
3268 // interface Multilink
3270 tailf:info "Multilink-group interface";
3271 description "Multilink-group interface";
3272 tailf:cli-allow-join-with-key {
3273 tailf:cli-display-joined;
3275 tailf:cli-mode-name "config-if";
3276 tailf:cli-full-command;
3280 tailf:info "<1-65535>;;Multilink interface number";
3284 uses interface-common-grouping;
3285 uses interface-pointtopoint-grouping;
3290 tailf:info "Serial interface";
3291 description "Serial interface";
3292 tailf:cli-allow-join-with-key {
3293 tailf:cli-display-joined;
3295 tailf:cli-mode-name "config-if";
3296 tailf:cli-full-command;
3300 pattern "([0-9])+/([0-9])+/([0-9])+\.([0-9])+/([0-9])+/([0-9])+/([0-9])+:([0-9])";
3301 //FIXME: info + syntax
3304 uses interface-common-grouping;
3305 uses interface-pointtopoint-grouping;
3308 // interface Tunnel #
3310 tailf:info "Tunnel interface";
3311 description "Tunnel interface";
3312 tailf:cli-allow-join-with-key {
3313 tailf:cli-display-joined;
3315 tailf:cli-mode-name "config-if";
3316 tailf:cli-suppress-key-abbreviation;
3320 tailf:info "<0-2147483647>;;Tunnel interface number";
3323 uses interface-common-grouping;
3325 // interface Tunnel* / qos
3327 tailf:info "Quality of Service related commands";
3328 description "Quality of Service related commands";
3330 tailf:info "Enable QOS classification before packets are tunnel "+
3332 description "Enable QOS classification before packets are tunnel "+
3338 // interface Tunnel* / tunnel
3339 uses interface-tunnel-grouping;
3342 // interface Virtual-Template
3343 list Virtual-Template {
3344 tailf:info "Virtual Template interface";
3345 description "Virtual Template interface";
3346 tailf:cli-allow-join-with-key {
3347 tailf:cli-display-joined;
3349 tailf:cli-mode-name "config-if";
3350 tailf:cli-full-command;
3351 tailf:cli-explicit-exit;
3355 tailf:info "<1-4095>;;Virtual-Template interface number";
3360 tailf:info "type of the virtual-template";
3361 description "type of the virtual-template";
3362 tailf:cli-hide-in-submode;
3365 tailf:info "Set VT type as ethernet";
3368 tailf:info "Set VT type as serial";
3371 tailf:info "Set VT type as tunnel";
3374 tailf:info "Set VT type as vpn";
3379 uses interface-ethernet-grouping;
3380 uses interface-common-grouping;
3381 uses interface-zone-member-grouping;
3382 uses interface-switch-grouping; //CATALYST
3383 uses interface-pointtopoint-grouping;
3384 // interface Tunnel* / tunnel
3385 uses interface-tunnel-grouping;
3388 // interface VirtualPortGroup
3389 list VirtualPortGroup {
3390 tailf:info "Virtual Port Group";
3391 description "Virtual Port Group";
3392 tailf:cli-allow-join-with-key {
3393 tailf:cli-display-joined;
3395 tailf:cli-mode-name "config-if";
3396 tailf:cli-full-command;
3397 tailf:cli-explicit-exit;
3401 tailf:info " <0-31>;;VirtualPortGroup interface number";
3405 uses interface-switch-grouping; //CATALYST
3406 uses interface-ethernet-grouping;
3407 uses interface-common-grouping;
3409 // interface vasileft
3411 tailf:info "vasileft";
3412 description "vasileft";
3413 tailf:cli-allow-join-with-key {
3414 tailf:cli-display-joined;
3416 tailf:cli-mode-name "config-if";
3417 tailf:cli-full-command;
3418 tailf:cli-explicit-exit;
3422 tailf:info "<1-2000>;;vasileft interface number";
3426 uses interface-switch-grouping; //CATALYST
3427 uses interface-ethernet-grouping;
3428 uses interface-common-grouping;
3431 // interface vasiright
3433 tailf:info "vasiright";
3434 description "vasiright";
3435 tailf:cli-allow-join-with-key {
3436 tailf:cli-display-joined;
3438 tailf:cli-mode-name "config-if";
3439 tailf:cli-full-command;
3440 tailf:cli-explicit-exit;
3444 tailf:info "<1-2000>;;vasiright interface number";
3448 uses interface-switch-grouping; //CATALYST
3449 uses interface-ethernet-grouping;
3450 uses interface-common-grouping;
3455 /// ========================================================================
3457 /// ========================================================================
3458 /// Note: must come before class-map and policy-map.
3461 tailf:info "mls global commands";
3462 description "mls global commands";
3463 tailf:cli-incomplete-no;
3467 tailf:info "MLS ACL operation";
3468 description "MLS ACL operation";
3471 tailf:info "ACL TCAM";
3472 description "ACL TCAM";
3473 leaf default-result {
3474 tailf:info "Default result to be used during tcam programming";
3475 description "Default result to be used during tcam programming";
3478 tailf:info "Bridge result";
3481 tailf:info "Deny result";
3484 tailf:info "Permit result";
3488 container log-update {
3489 tailf:info "Log TCAM updates";
3490 description "Log TCAM updates";
3492 leaf rate-limit-msg {
3493 tailf:info "Enable/Disable syslog ratelimiting";
3494 description "Enable/Disable syslog ratelimiting";
3497 tailf:info "Disable ratelimiting syslog";
3500 tailf:info "Enable syslog ratelimiting at 1 per second";
3506 tailf:info "share global deny or permit any entries";
3507 description "share global deny or permit any entries";
3508 tailf:cli-boolean-no;
3509 tailf:cli-trim-default;
3519 tailf:info "cef keyword";
3520 description "cef keyword";
3528 // maximum-routes Configure route allocation for protocols
3529 // tunnel Allow tunnel fragmentation
3531 // erm FIB Exception Recovery Manager
3532 // exclude exclude keyword
3535 tailf:info "flowmask keyword";
3536 description "flowmask keyword";
3538 tailf:info "flowmask ip keyword";
3539 description "flowmask ip keyword";
3541 enum interface-destination {
3542 tailf:info "interface-destination flow keyword";
3544 enum interface-destination-source {
3545 tailf:info "interface-destination-source flow keyword";
3547 enum interface-full {
3548 tailf:info "interface-full flow keyword";
3550 enum interface-source {
3551 tailf:info "interface-source only flow keyword";
3558 tailf:info "ip keyword";
3559 description "ip keyword";
3563 container multicast {
3564 tailf:info "multicast keyword";
3565 description "multicast keyword";
3566 tailf:cli-display-separated;
3568 // bidir Bidir commands
3569 // connected Enable download of interface/mask entry
3570 container consistency-check {
3571 tailf:info "Set consistency checking characteristics";
3572 description "Set consistency checking characteristics";
3575 tailf:info "Settle time for entry/oif for consistancy-checker";
3576 description "Settle time for entry/oif for consistancy-checker";
3578 tailf:info "<2-3600>;;Settle time for entry/oif in seconds";
3582 // type Set consistency checker type
3584 // egress Set egress replication options
3585 leaf flow-stat-timer {
3586 tailf:info "timer for flow statistic used by mls-msc and mlsm";
3587 description "timer for flow statistic used by mls-msc and mlsm";
3589 tailf:info "<1-100>;;#seconds between one batch and another";
3593 // met-optimization Enable or disable met optimisation
3594 // non-rpf Enable rate-limiting of non-RPF traffic
3595 // replication-mode Disable auto-detection mode for egress
3596 // sso Stateful switchover parameters
3597 // threshold Threshold rate for installing h/w shortcuts
3600 // slb Server Load Balancing
3602 // nde netflow data export (nde) keyword
3603 // netflow netflow keyword
3605 container mls-qos-conf {
3606 tailf:cli-no-keyword;
3607 tailf:cli-drop-node-name;
3614 tailf:info "QoS parameters";
3615 description "QoS parameters";
3616 tailf:cli-incomplete-command;
3617 tailf:cli-incomplete-no;
3618 // mls qos aggregate-policer *
3619 list aggregate-policer {
3620 tailf:info "Assign aggregate policer";
3621 description "Assign aggregate policer";
3622 tailf:cli-suppress-mode;
3623 tailf:cli-delete-when-empty;
3624 tailf:cli-compact-syntax;
3625 tailf:cli-sequence-commands {
3626 tailf:cli-reset-all-siblings;
3631 tailf:info "WORD;;aggregate policer name";
3634 leaf target-bit-rate {
3635 tailf:cli-drop-node-name;
3637 tailf:info "<32000-60000000000>;;Target Bit Rate (bits per "
3638 +"second) (postfix k, m, g optional; decimal point allowed)";
3639 range "32000..60000000000";
3643 tailf:cli-drop-node-name;
3644 tailf:cli-optional-in-sequence;
3646 tailf:info "<1000-31250000>;;Normal burst bytes";
3647 range "1000..31250000";
3651 tailf:cli-drop-node-name;
3652 tailf:cli-optional-in-sequence;
3653 when "../burst-normal" {
3654 tailf:dependency "../burst-normal";
3657 tailf:info "<1000-31250000>;;Maximum burst bytes";
3658 range "1000..31250000";
3664 tailf:cli-optional-in-sequence;
3666 tailf:info "<32000-60000000000>;;Target Bit Rate (bits per "
3667 +"second) (postfix k, m, g optional; decimal point allowed)";
3668 range "32000..60000000000";
3671 container conform-action {
3672 tailf:info "action when rate is not exceeded";
3673 description "action when rate is not exceeded";
3674 tailf:cli-optional-in-sequence;
3675 tailf:cli-compact-syntax;
3676 tailf:cli-flatten-container;
3677 choice action-choice {
3679 tailf:info "drop packet";
3680 description "drop packet";
3683 leaf set-dscp-transmit {
3684 tailf:info "set dscp and send it";
3685 description "set dscp and send it";
3688 leaf set-mpls-exp-imposition-transmit {
3689 tailf:info "set exp at tag imposition and send it";
3690 description "set exp at tag imposition and send it";
3692 tailf:info "<0-7>;;new exp";
3696 leaf set-prec-transmit {
3697 tailf:info "rewrite packet precedence and send it";
3698 description "rewrite packet precedence and send it";
3700 tailf:info "<0-7>;;new precedence";
3705 tailf:info "transmit packet";
3706 description "transmit packet";
3711 leaf exceed-action {
3712 tailf:info "action when rate is exceeded";
3713 description "action when rate is exceeded";
3714 tailf:cli-optional-in-sequence;
3717 tailf:info "drop packet";
3719 enum policed-dscp-transmit {
3720 tailf:info "change dscp per policed-dscp map and send it";
3723 tailf:info "transmit packet";
3727 leaf violate-action {
3728 tailf:info "action when rate violated";
3729 description "action when rate violated";
3732 tailf:info "drop packet";
3734 enum policed-dscp-transmit {
3735 tailf:info "change dscp per policed-dscp map and send it";
3738 tailf:info "transmit packet";
3743 // map Define QoS mapping
3746 tailf:info "qos map keyword";
3747 description "qos map keyword";
3748 leaf-list cos-dscp {
3749 tailf:info "cos-dscp map: eight dscp values for cos 0-7";
3750 description "cos-dscp map: eight dscp values for cos 0-7";
3751 tailf:cli-flat-list-syntax;
3754 tailf:info "<0-63>;;CoS values separated by spaces (up to 8 values total)";
3758 leaf-list policed-dscp {
3759 tailf:info "policed-dscp map keyword";
3760 description "policed-dscp map keyword";
3762 tailf:cli-flat-list-syntax;
3765 tailf:info "<0-63>;;DSCP values separated by spaces (up to 8 values total)";
3770 tailf:info "to keyword";
3776 // marking marking keyword
3777 // police police keyword
3778 // protocol protocol keyword
3779 // queueing-only queueing-only (no QoS rewrite, no policing)
3780 // recirc recirculate path
3783 tailf:info "packet qos rewrite enable/disable";
3784 description "packet qos rewrite enable/disable";
3786 tailf:info "ip packet qos rewrite enable/disable";
3787 description "ip packet qos rewrite enable/disable";
3789 tailf:info "packet ip dscp rewrite enable/disable";
3790 description "packet ip dscp rewrite enable/disable";
3793 tailf:info "slot number";
3794 description "slot number";
3796 tailf:info "WORD;;Slots seperated by commas. Valid slots: 1,2,"
3803 // mls qos queue-set
3804 container queue-set {
3805 tailf:info "Choose a queue set for this queue";
3806 description "Choose a queue set for this queue";
3808 tailf:info "Direction the command applies for this command";
3809 description "Direction the command applies for this command";
3810 tailf:cli-sequence-commands;
3811 tailf:cli-compact-syntax;
3813 tailf:cli-drop-node-name;
3815 tailf:info "<1-2>;;queue-set id";
3820 tailf:info "Assign threshold values to a queue";
3821 description "Assign threshold values to a queue";
3822 tailf:cli-suppress-mode;
3823 tailf:cli-break-sequence-commands;
3824 tailf:cli-compact-syntax;
3825 tailf:cli-sequence-commands;
3829 tailf:info "<1-4>;;enter queue id in this queue set";
3834 tailf:cli-drop-node-name;
3835 description "drop threshold1 1-3200";
3837 tailf:info "<1-3200>;;enter drop threshold1 1-3200";
3842 tailf:cli-drop-node-name;
3843 description "drop threshold2 1-3200";
3845 tailf:info "<1-3200>;;enter drop threshold2 1-3200";
3850 tailf:cli-drop-node-name;
3851 description "reserved threshold 1-100";
3853 tailf:info "<1-3200>;;enter drop threshold2 1-3200";
3858 tailf:cli-drop-node-name;
3859 description "maximum threshold1 1-3200";
3861 tailf:info "<1-3200>;;enter maximum threshold1 1-3200";
3867 tailf:info "assign buffers to each egress queue";
3868 description "assign buffers to each egress queue";
3869 tailf:cli-flat-list-syntax;
3871 tailf:info "<0-99>/<1-100>;;enter buffer percentage for queue x 0-99/2 1-100";
3877 // mls qos srr-queue
3878 container srr-queue {
3879 tailf:info "Configure SRR receive queues";
3880 description "Configure SRR receive queues";
3882 tailf:info "input keyword";
3883 description "input keyword";
3884 leaf-list bandwidth {
3885 tailf:info "Configure SRR bandwidth";
3886 description "Configure SRR bandwidth";
3887 tailf:cli-flat-list-syntax;
3889 tailf:info "<1-100>;;enter bandwidth weight for queue id x";
3894 tailf:info "Configure queue tail-drop thresholds";
3895 description "Configure queue tail-drop thresholds";
3896 tailf:cli-suppress-mode;
3900 tailf:info "<1-2>;;enter threshold queue id (1-2)";
3904 leaf-list queue-size-percent {
3905 tailf:cli-drop-node-name;
3906 tailf:cli-flat-list-syntax;
3908 tailf:info "<1-100>;;enter percent of queue size for threshold x";
3913 list priority-queue {
3914 tailf:info "Configure priority scheduling";
3915 description "Configure priority scheduling";
3916 tailf:cli-suppress-mode;
3920 tailf:info "<1-2>;;enter priority queue number [1-2]";
3924 tailf:info "ingress priority queue bandwidth % of stack ring";
3925 description "ingress priority queue bandwidth % of stack ring";
3927 tailf:info "<0-40>;;enter bandwidth number [0-40]";
3933 tailf:info "Configure cos-map for a queue id";
3934 description "Configure cos-map for a queue id";
3935 tailf:cli-suppress-mode;
3936 key "queue threshold";
3938 tailf:info "Assign COS values to a queue";
3939 description "Assign COS values to a queue";
3940 tailf:cli-expose-key-name;
3942 tailf:info "<1-4>;;enter cos-map output queue id";
3947 tailf:info "Assign COS values to a queue threshold";
3948 description "Assign COS values to a queue threshold";
3949 tailf:cli-expose-key-name;
3951 tailf:info "<1-3>;;enter cos-map threshold id";
3956 tailf:cli-drop-node-name;
3957 tailf:cli-flat-list-syntax;
3960 tailf:info "<0-7>;;8 cos values separated by spaces";
3966 tailf:info "Configure dscp-map for a queue id";
3967 description "Configure dscp-map for a queue id";
3968 tailf:cli-suppress-mode;
3969 key "queue threshold";
3971 tailf:info "Assign DSCP values to a queue";
3972 description "Assign DSCP values to a queue";
3973 tailf:cli-expose-key-name;
3975 tailf:info "<1-4>;;enter dscp-map output queue id";
3980 tailf:info "Assign DSCP values to a queue threshold";
3981 description "Assign DSCP values to a queue threshold";
3982 tailf:cli-expose-key-name;
3984 tailf:info "<1-3>;;enter dscp-map threshold id";
3989 tailf:cli-drop-node-name;
3990 tailf:cli-flat-list-syntax;
3993 tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
4000 tailf:info "output keyword";
4001 description "output keyword";
4003 tailf:info "Configure cos-map for a queue id";
4004 description "Configure cos-map for a queue id";
4005 tailf:cli-suppress-mode;
4006 key "queue threshold";
4008 tailf:info "Assign COS values to a queue";
4009 description "Assign COS values to a queue";
4010 tailf:cli-expose-key-name;
4012 tailf:info "<1-4>;;enter cos-map output queue id";
4017 tailf:info "Assign COS values to a queue threshold";
4018 description "Assign COS values to a queue threshold";
4019 tailf:cli-expose-key-name;
4021 tailf:info "<1-3>;;enter cos-map threshold id";
4026 tailf:cli-drop-node-name;
4027 tailf:cli-flat-list-syntax;
4030 tailf:info "<0-7>;;8 cos values separated by spaces";
4036 tailf:info "Configure dscp-map for a queue id";
4037 description "Configure dscp-map for a queue id";
4038 tailf:cli-suppress-mode;
4039 key "queue threshold";
4041 tailf:info "Assign DSCP values to a queue";
4042 description "Assign DSCP values to a queue";
4043 tailf:cli-expose-key-name;
4045 tailf:info "<1-4>;;enter dscp-map output queue id";
4050 tailf:info "Assign DSCP values to a queue threshold";
4051 description "Assign DSCP values to a queue threshold";
4052 tailf:cli-expose-key-name;
4054 tailf:info "<1-3>;;enter dscp-map threshold id";
4059 tailf:cli-drop-node-name;
4060 tailf:cli-flat-list-syntax;
4063 tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
4071 // statistics-export qos statistics data export
4073 container rate-limit {
4074 tailf:info "Rate limit different behaviors";
4075 description "Rate limit different behaviors";
4076 // all Rate Limiting for both Unicast and Multicast packets
4078 tailf:info "layer2 protocol cases";
4079 description "layer2 protocol cases";
4080 // ip-admission IP admission on Layer2 ports
4082 tailf:cli-compact-syntax;
4083 tailf:cli-sequence-commands {
4084 tailf:cli-reset-siblings;
4086 tailf:info "layer2 protocol tunnelling packets";
4087 leaf packets-per-second {
4088 description "layer2 protocol tunnelling packets";
4089 tailf:cli-drop-node-name;
4091 tailf:info "<10-1000000>;;packets per second";
4092 range "10..1000000";
4095 leaf packets-in-burst {
4096 tailf:cli-drop-node-name;
4098 tailf:info "<1-255>;;packets in burst";
4103 // mac-security Mac security traffics
4105 tailf:info "layer2 protocol data unit packets";
4106 description "layer2 protocol data unit packets";
4107 tailf:cli-compact-syntax;
4108 tailf:cli-sequence-commands {
4109 tailf:cli-reset-siblings;
4111 leaf packets-per-second {
4112 tailf:cli-drop-node-name;
4114 tailf:info "<10-1000000>;;packets per second";
4115 range "10..1000000";
4118 leaf packets-in-burst {
4119 tailf:cli-drop-node-name;
4121 tailf:info "<1-255>;;packets in burst";
4126 // port-security Port security traffics
4128 // multicast Rate limiting for Multicast packets
4129 // unicast Rate limiting for Unicast packets
4132 // sampling sampling keyword
4135 tailf:info "enable hardware packet parsing error checks";
4136 description "enable hardware packet parsing error checks";
4138 tailf:info "check on IP packets";
4139 description "check on IP packets";
4141 tailf:info "check for packet checksum errors";
4142 description "check for packet checksum errors";
4143 tailf:cli-boolean-no;
4144 tailf:cli-trim-default;
4148 container "length" {
4149 tailf:info "check for packet length errors";
4150 description "check for packet length errors";
4152 tailf:info "check length in header against physical frame length";
4153 description "check length in header against physical frame length";
4154 tailf:cli-boolean-no;
4155 tailf:cli-trim-default;
4160 tailf:info "check for minimum packet length";
4161 description "check for minimum packet length";
4162 tailf:cli-boolean-no;
4163 tailf:cli-trim-default;
4169 tailf:info "check for packet having equal source and destination IP "
4171 description "check for packet having equal source and destination IP "
4176 tailf:info "syslog packet parse errors";
4177 description "syslog packet parse errors";
4184 /// ========================================================================
4186 /// ========================================================================
4187 // Note: must come before class-map and policy-map.
4190 tailf:info "Switch policer";
4191 description "Switch policer";
4192 // policer aggregate *
4194 tailf:info "Named aggregate policer";
4195 description "Named aggregate policer";
4196 tailf:cli-suppress-mode;
4197 tailf:cli-delete-when-empty;
4198 tailf:cli-compact-syntax;
4199 tailf:cli-reset-container;
4200 tailf:cli-sequence-commands {
4201 tailf:cli-reset-siblings;
4206 tailf:info "WORD;;aggregate policer Name";
4211 tailf:info "Committed information rate";
4212 description "Committed information rate";
4214 tailf:info "<8000-1000000000>;;Bits per second";
4215 range "8000..1000000000";
4220 tailf:info "Conform burst";
4221 description "Conform burst";
4222 tailf:cli-optional-in-sequence;
4224 tailf:info "<8000-1000000000>;;Burst bytes";
4225 range "8000..1000000000";
4229 leaf conform-action {
4230 tailf:info "action when rate is within conform and conform + "+
4232 description "action when rate is within conform and conform + "+
4234 tailf:cli-optional-in-sequence;
4237 leaf set-qos-transmit {
4238 tailf:info "set qos-group and send it";
4239 description "set qos-group and send it";
4240 when "../conform-action";
4241 tailf:cli-optional-in-sequence;
4243 tailf:info "<0-99>;;new qos-group";
4247 leaf set-dot1ad-dei-transmit {
4248 tailf:info "set dei and send it";
4249 description "set dei and send it";
4250 when "../conform-action";
4251 tailf:cli-optional-in-sequence;
4253 tailf:info "<0-1>;;new dei value";
4257 leaf set-prec-transmit {
4258 tailf:info "rewrite packet precedence and send it";
4259 description "rewrite packet precedence and send it";
4260 when "../conform-action";
4261 tailf:cli-optional-in-sequence;
4262 type prec_value-type;
4264 container set-prec-transmit-table {
4265 when "../set-prec-transmit";
4266 tailf:cli-no-keyword;
4267 tailf:cli-drop-node-name;
4268 tailf:cli-optional-in-sequence;
4269 tailf:cli-flatten-container;
4271 tailf:info "Set packet cos from cos based on table map";
4272 description "Set packet cos from cos based on table map";
4273 tailf:cli-optional-in-sequence;
4275 tailf:non-strict-leafref {
4276 path "/ios:native/table-map/name";
4280 leaf set-dscp-transmit {
4281 tailf:info "set dscp and send it";
4282 description "set dscp and send it";
4283 when "../conform-action";
4284 tailf:cli-optional-in-sequence;
4287 container set-dscp-transmit-table {
4288 when "../set-dscp-transmit";
4289 tailf:cli-no-keyword;
4290 tailf:cli-drop-node-name;
4291 tailf:cli-optional-in-sequence;
4292 tailf:cli-flatten-container;
4294 tailf:info "Set packet cos from cos based on table map";
4295 description "Set packet cos from cos based on table map";
4296 tailf:cli-optional-in-sequence;
4298 tailf:non-strict-leafref {
4299 path "/ios:native/table-map/name";
4303 leaf set-cos-transmit {
4304 tailf:info "set cos and send it";
4305 description "set cos and send it";
4306 when "../conform-action";
4307 tailf:cli-optional-in-sequence;
4308 type cos_value-type;
4310 container set-cos-transmit-table {
4311 when "../set-cos-transmit";
4312 tailf:cli-no-keyword;
4313 tailf:cli-drop-node-name;
4314 tailf:cli-optional-in-sequence;
4315 tailf:cli-flatten-container;
4317 tailf:info "Set packet cos from cos based on table map";
4318 description "Set packet cos from cos based on table map";
4319 tailf:cli-optional-in-sequence;
4321 tailf:non-strict-leafref {
4322 path "/ios:native/table-map/name";
4327 tailf:info "transmit packet";
4328 description "transmit packet";
4329 when "../conform-action";
4330 tailf:cli-optional-in-sequence;
4334 leaf exceed-action {
4335 tailf:info "action when rate is within conform and conform + "+
4337 description "action when rate is within conform and conform + "+
4342 tailf:info "drop packet";
4343 description "drop packet";
4344 when "../exceed-action";
4345 tailf:cli-optional-in-sequence;
4346 tailf:cli-full-command;
4349 container exceed-transmit {
4350 tailf:cli-no-keyword;
4351 tailf:cli-drop-node-name;
4352 tailf:cli-optional-in-sequence;
4353 tailf:cli-flatten-container;
4355 tailf:info "transmit packet";
4356 description "transmit packet";
4357 when "../../exceed-action";
4358 tailf:cli-optional-in-sequence;
4365 /// ========================================================================
4367 /// ========================================================================
4370 tailf:info "Configure QoS Class Map";
4371 description "Configure QoS Class Map";
4372 tailf:cli-mode-name "config-cmap";
4373 tailf:cli-suppress-list-no;
4374 tailf:cli-delete-when-empty;
4375 tailf:cli-no-key-completion;
4380 tailf:info "WORD;;class-map name";
4382 tailf:cli-disallow-value "type";
4384 // class-map * type inspect
4386 tailf:info "type of the class-map";
4387 description "type of the class-map";
4388 tailf:cli-prefix-key;
4390 enum access-control {
4391 tailf:info "access-control specific class-map";
4394 tailf:info "Configure a APPNAV Class Map";
4397 tailf:info "Configure a control policy class-map";
4400 tailf:info "Configure Firewall Class Map";
4402 enum multicast-flows {
4403 tailf:info "multicast class-maps";
4406 tailf:info "class-map for protocol header stack specification";
4409 tailf:info "Configure a subscriber policy traffic classmap";
4413 // class-map * <protocol>
4415 when "../type = 'inspect'";
4416 tailf:cli-drop-node-name;
4417 tailf:cli-prefix-key;
4420 tailf:info "Configure CBAC class-map for IM-AOL protocol";
4423 tailf:info "eDonkey";
4426 tailf:info "FastTrack Traffic - KaZaA, Morpheus, Grokster...";
4429 tailf:info "Gnutella Version2 Traffic - BearShare, Shareeza, "
4433 tailf:info "Configure CBAC class-map for HTTP protocol";
4436 tailf:info "Configure CBAC class-map for IMAP protocol";
4439 tailf:info "Kazaa Version 2";
4442 tailf:info "Configure CBAC class-map for IM-MSN protocol";
4445 tailf:info "Configure CBAC class-map for POP3 protocol";
4448 tailf:info "Configure CBAC class-map for SMTP protocol";
4451 tailf:info "Configure CBAC class-map for RPC protocol";
4454 tailf:info "Configure CBAC class-map for IM-YAHOO protocol";
4458 // class-map * <match-any|match-all>
4460 tailf:cli-no-keyword;
4461 tailf:cli-prefix-key;
4462 tailf:cli-drop-node-name;
4465 tailf:info "Logical-AND all matching statements under "+
4469 tailf:info "Logical-OR all matching statements under this "+
4475 // class-map * / description
4476 leaf "description" {
4477 tailf:info "Class-Map description";
4478 description "Class-Map description";
4479 tailf:cli-multi-value;
4481 tailf:info "LINE;;Description of this class-map (up to 200 "+
4485 // class-map * / match
4487 tailf:info "classification criteria";
4488 description "classification criteria";
4489 uses class-map-match-grouping;
4490 uses class-map-appnav-match-grouping;
4492 tailf:info "Negate this match result";
4493 description "Negate this match result";
4494 uses class-map-match-grouping;
4495 uses class-map-appnav-not-match-grouping;
4500 /// ========================================================================
4502 /// ========================================================================
4505 tailf:info "Configure QoS Policy Map";
4506 description "Configure QoS Policy Map";
4507 tailf:cli-mode-name "config-pmap";
4508 tailf:cli-diff-dependency "/ios:native/class-map";
4509 tailf:cli-diff-dependency "/ios:native/table-map";
4510 tailf:cli-diff-dependency "/ios:native/mls/qos/aggregate-policer";
4511 tailf:cli-diff-dependency "/ios:native/policer/aggregate";
4515 tailf:info "WORD;;policy-map name";
4517 tailf:cli-disallow-value
4518 "(type)|(http)|(im)|(imap)|(p2p)|(pop3)|(smtp)|(sunrpc)";
4521 tailf:info "type of the policy-map";
4522 description "type of the policy-map";
4523 tailf:cli-prefix-key;
4525 enum access-control {
4526 tailf:info "access-control specific policy-map";
4529 tailf:info "Configure a APPNAV Policy Map";
4532 tailf:info "Configure Firewall Policy Map";
4534 enum packet-service {
4535 tailf:info "Configure Packet Service Policy Map";
4537 enum performance-monitor {
4538 tailf:info "Performance monitoring policy-map type";
4541 tailf:info "policymap service configuration";
4543 enum service-chain {
4544 tailf:info "Configure Service Chain Policy Map";
4549 when "../type = 'inspect'";
4550 tailf:cli-drop-node-name;
4551 tailf:cli-prefix-key;
4554 tailf:info "Configure CBAC policy-map for HTTP protocol";
4557 tailf:info "Configure CBAC policy-map for IM protocol";
4560 tailf:info "Configure CBAC policy-map for IMAP protocol";
4563 tailf:info "Configure CBAC policy-map for P2P protocols";
4566 tailf:info "Configure CBAC policy-map for POP3 protocol";
4569 tailf:info "Configure CBAC policy-map for SMTP protocol";
4572 tailf:info "Configure CBAC policy-map for RPC protocol";
4576 // policy-map * / class *
4578 tailf:info "policy criteria";
4579 description "policy criteria";
4580 tailf:cli-mode-name "config-pmap-c";
4583 tailf:cli-disallow-value "type";
4584 type class-name-type;
4586 // policy-map * / class * / type
4588 tailf:info "type of the class-map";
4589 description "type of the class-map";
4590 tailf:cli-prefix-key;
4593 tailf:info "Configure CBAC Class Map";
4597 leaf insert-before {
4598 tailf:info "Insert the class before a specified class";
4599 description "Insert the class before a specified class";
4600 tailf:cli-hide-in-submode;
4601 when "../../type = 'appnav'";
4603 tailf:info "WORD;;Insert the class before a specified class";
4606 // policy-map * / class * / appnav policy
4607 container appnav-policy {
4608 when "../../type = 'appnav'";
4609 tailf:cli-drop-node-name;
4611 tailf:info "Distribute action";
4612 description "Distribute action";
4613 tailf:cli-suppress-mode;
4614 key service-node-group;
4615 leaf service-node-group {
4616 tailf:info "Distribute to service-node-group";
4617 description "Distribute to service-node-group";
4618 tailf:cli-expose-key-name;
4620 tailf:info "WORD;;service-node-group name";
4623 leaf insert-before {
4624 tailf:info "Insert before specific node";
4625 description "Insert before specific node";
4626 tailf:cli-optional-in-sequence;
4628 tailf:info "WORD;;service-node-group name";
4633 tailf:info "Monitor AO";
4634 description "Monitor AO";
4635 when "../distribute";
4637 enum MS-port-mapper {
4638 tailf:info "Monitor Microsoft Endpoint Port Mapper load";
4641 tailf:info "Monitor CIFS Accelerator load";
4644 tailf:info "Monitor HTTP Accelerator load";
4647 tailf:info "Monitor ICA Accelerator load";
4650 tailf:info "Monitor MAPI Accelerator load";
4653 tailf:info "Monitor NFS Accelerator load";
4656 tailf:info "Monitor SSL accelerator load";
4659 tailf:info "Monitor Video Accelerator load";
4664 tailf:info "pass-through action";
4665 description "pass-through action";
4669 // policy-map * / class * / inspect policy
4671 when "../../type = 'inspect'";
4672 tailf:cli-drop-node-name;
4673 tailf:cli-sequence-commands {
4674 tailf:cli-reset-siblings;
4677 tailf:cli-drop-node-name;
4678 tailf:cli-remove-before-change;
4681 tailf:info "CXSC Inspection";
4684 tailf:info "Drop the packet";
4687 tailf:info "Context-based Access Control Engine";
4690 tailf:info "Pass the packet";
4692 enum service-policy {
4693 tailf:info "Deep Packet Inspection Engine";
4698 tailf:info "Send logging message for drop or pass";
4699 description "Send logging message for drop or pass";
4700 when "../action = 'drop'or ../action = 'pass'";
4703 leaf parameter-map {
4704 tailf:cli-drop-node-name;
4705 when "../action = 'inspect' or ../action = 'cxsc'";
4707 tailf:non-strict-leafref {
4708 path "/ios:native/parameter-map/name";
4712 tailf:cli-drop-node-name;
4713 when "../action = 'service-policy'";
4714 tailf:cli-sequence-commands;
4715 tailf:cli-compact-syntax;
4717 tailf:cli-drop-node-name;
4720 tailf:info "GTPv0 DPI";
4723 tailf:info "GTPv1 DPI";
4726 tailf:info "IMAP DPI";
4729 tailf:info "POP3 DPI";
4732 tailf:info "SMTP DPI";
4735 tailf:info "RPC DPI";
4740 tailf:cli-drop-node-name;
4742 tailf:info "WORD;;DPI policy-map name";
4747 // policy-map * / class * / performance-monitor policy
4748 container pm-policy {
4749 when "../../type = 'performance-monitor'";
4750 tailf:cli-drop-node-name;
4752 tailf:info "Flow subcommands";
4753 description "Flow subcommands";
4755 tailf:info "Apply a Flow Monitor";
4756 description "Apply a Flow Monitor";
4758 tailf:info "WORD;;Flow monitor name";
4763 tailf:info "Monitor related parameters";
4764 description "Monitor related parameters";
4766 tailf:info "Monitor metric";
4767 description "Monitor metric";
4769 tailf:info "RTP metrics parameters";
4770 description "RTP metrics parameters";
4772 tailf:cli-mode-name "config-pmap-c-mrtp";
4774 tailf:info "RTP timestamp field's sampling frequency";
4775 description "RTP timestamp field's sampling frequency";
4776 tailf:cli-suppress-mode;
4777 tailf:cli-sequence-commands;
4778 tailf:cli-compact-syntax;
4783 tailf:info "<0-127>;;payload type number";
4788 tailf:info "CELB(25)";
4791 tailf:info "CN(13)";
4794 tailf:info "Change the default clock rate for all the dynamic payload type";
4797 tailf:info "DVI4 RFC-3551 8000Hz(5)";
4800 tailf:info "DVI4 RFC-3551 16000Hz(6)";
4803 tailf:info "DVI4 Dipol 11025Hz(16)";
4806 tailf:info "DVI4 Dipol 22050Hz(17)";
4809 tailf:info "G722(9)";
4812 tailf:info "G723(4)";
4815 tailf:info "G728(15)";
4818 tailf:info "G729(18)";
4821 tailf:info "GSM(3)";
4824 tailf:info "H261(31)";
4827 tailf:info "H263(34)";
4830 tailf:info "JPEG(26)";
4833 tailf:info "L16 channel 1(11)";
4836 tailf:info "L16 channel 2(10)";
4839 tailf:info "LPC(7)";
4842 tailf:info "MP2T(33)";
4845 tailf:info "MPA(14)";
4848 tailf:info "MPV(32)";
4851 tailf:info "NV(28)";
4854 tailf:info "PCMA(8)";
4857 tailf:info "PCMU(0)";
4860 tailf:info "QCELP(12)";
4866 tailf:cli-drop-node-name;
4868 tailf:info "<1000-192000>;;frequency in Hz";
4869 range "1000..192000";
4877 tailf:info "Configure threshold crossing actions";
4878 description "Configure threshold crossing actions";
4879 tailf:cli-mode-name "config-pmap-c-react";
4883 tailf:info "<1-65535> React instance id";
4887 tailf:cli-drop-node-name;
4888 tailf:cli-hide-in-submode;
4891 tailf:info "Media stream stopped";
4894 tailf:info "Variation in packet rate from configured expected rate";
4896 enum rtp-jitter-average {
4897 tailf:info "Mean jitter for the RTP stream";
4899 enum transport-packets-lost-rate {
4900 tailf:info "Ratio of lost packets to total reaceived packets";
4905 tailf:info "Description for threshold crossing action instance";
4906 description "Description for the instance";
4907 tailf:cli-multi-value;
4911 tailf:info "Config react action";
4912 description "Config react action";
4914 tailf:info "SNMP is notified of the event";
4915 description "SNMP is notified of the event";
4916 tailf:cli-full-command;
4920 tailf:info "The threshold-crossing event is logged to syslog";
4921 description "The threshold-crossing event is logged to syslog";
4922 tailf:cli-full-command;
4927 tailf:info "Config react alarm";
4928 description "Config react alarm";
4930 tailf:info "Alarm severity - default level none";
4931 description "Alarm severity - default level none";
4934 tailf:info "TCA severity level critical (severity = 2)";
4937 tailf:info "TCA severity level major (severity = 3)";
4940 tailf:info "TCA severity level critical (severity = 1)";
4943 tailf:info "TCA severity level minor (severity = 4)";
4946 tailf:info "TCA severity level default (severity = 5)";
4951 tailf:info "Alarm raised type - for each flow or a group";
4952 description "Alarm raised type - for each flow or a group";
4954 tailf:info "Alert for each flow within the class";
4955 description "Alert for each flow within the class";
4956 tailf:cli-full-command;
4960 tailf:info "Alert if more than one flow cross the threshold";
4961 description "Alert if more than one flow cross the threshold";
4963 tailf:info "Number of flows in the group cross the threshold";
4964 description "Number of flows in the group cross the threshold";
4965 tailf:cli-full-command;
4967 tailf:info "<1-65535>;;Number of flows";
4971 tailf:info "Percent of flows in the group cross the threshold";
4972 description "Percent of flows in the group cross the threshold";
4973 tailf:cli-full-command;
4975 tailf:info "<1-100>;;Percent of flows";
4982 container threshold {
4983 tailf:info "Config react threshold";
4984 description "Config react threshold";
4986 tailf:info "Range of percentage loss that would trigger the alarm";
4987 description "Range of percentage loss that would trigger the alarm";
4989 tailf:info "greater and equal to";
4990 description "greater and equal to";
4991 tailf:cli-full-command;
4993 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
4997 tailf:info "greater than";
4998 description "greater than";
4999 tailf:cli-full-command;
5001 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5005 tailf:info "less and equal to";
5006 description "less and equal to";
5007 tailf:cli-full-command;
5009 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5013 tailf:info "less than";
5014 description "less than";
5015 tailf:cli-full-command;
5017 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5021 tailf:info "threshold within the range of";
5022 description "threshold within the range of";
5023 tailf:cli-sequence-commands;
5024 tailf:cli-compact-syntax;
5026 tailf:cli-drop-node-name;
5028 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5032 tailf:cli-drop-node-name;
5034 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5042 // policy-map * / class * / inspect-police
5043 container inspect-police {
5044 when "../policy/action = 'inspect'";
5045 tailf:cli-drop-node-name;
5047 tailf:info "Police";
5048 description "Police";
5049 tailf:cli-sequence-commands {
5050 tailf:cli-reset-siblings;
5052 tailf:cli-compact-syntax;
5054 tailf:info "Specify police rate";
5055 description "Specify police rate";
5057 tailf:info "<8000-2000000000>;;Rate value in bps";
5058 range "8000..2000000000";
5062 tailf:info "Specify 'burst' parameter";
5063 description "Specify 'burst' parameter";
5065 tailf:info "<1000-512000000>;;Burst value in bytes";
5066 range "1000..512000000";
5072 tailf:cli-drop-node-name;
5073 tailf:cli-suppress-mode;
5077 type policy-action-type;
5079 choice action-param {
5080 case bandwidth-case {
5081 // policy-map * / class * / bandwidth
5082 container bandwidth {
5083 //tailf:info "Bandwidth";
5084 tailf:cli-drop-node-name;
5085 when "../action-type = 'bandwidth'";
5087 tailf:cli-drop-node-name;
5090 tailf:info "<8-2000000>;;Kilo Bits per second";
5094 tailf:info "% of total Bandwidth";
5095 description "% of total Bandwidth";
5096 type percentage-type;
5098 container remaining {
5099 tailf:info "% of the remaining bandwidth";
5100 description "% of the remaining bandwidth";
5102 tailf:info "% of the remaining bandwidth";
5103 description "% of the remaining bandwidth";
5104 type percentage-type;
5107 tailf:info "ratio for sharing excess bandwidth";
5108 description "ratio for sharing excess bandwidth";
5110 tailf:info "<1-65536>;;Ratio";
5116 case compression-case {
5117 // policy-map * / class * / compression
5118 container compression {
5119 //tailf:info "Activate Compression";
5120 tailf:cli-drop-node-name;
5121 //presence "Activate Compression";
5122 when "../action-type = 'compression'";
5124 tailf:info "configure header compression";
5125 description "configure header compression";
5126 presence "configure header compression";
5128 tailf:info "configure ip header compression";
5129 description "configure ip header compression";
5132 tailf:code-name "header_rtp";
5133 tailf:info "configure rtp header compression";
5136 tailf:info "configure tcp header compression";
5144 // policy-map * / class * / drop
5146 //tailf:info "Drop all packets";
5147 // tailf:cli-full-command;
5151 case estimate-case {
5152 // policy-map * / class * / estimate
5153 container estimate {
5154 //tailf:info "estimate resources required for this class";
5155 tailf:cli-drop-node-name;
5156 when "../action-type = 'estimate'";
5157 container bandwidth {
5158 presence "bandwidth required to service this class";
5159 tailf:info "bandwidth required to service this class";
5160 description "bandwidth required to service this class";
5161 tailf:cli-sequence-commands;
5162 tailf:cli-compact-syntax;
5163 container delay-one-in {
5164 tailf:info "specify QoS target delay";
5165 description "specify QoS target delay";
5166 tailf:cli-compact-syntax;
5167 tailf:cli-sequence-commands;
5169 tailf:cli-drop-node-name;
5170 tailf:cli-incomplete-command;
5172 range "50..1000000";
5173 tailf:info "<50-1000000>;;delay one packet "+
5180 tailf:info "<8-1000>;;worst-case "+
5181 "milliseconds of delay";
5187 tailf:info "specify QoS target loss rate";
5188 description "specify QoS target loss rate";
5190 tailf:info "<50-1000000>;;drop one packet of N";
5197 //policy-map * / class * / forward service-path
5199 //tailf:info "forward service-path action";
5200 tailf:cli-reset-container;
5201 tailf:cli-drop-node-name;
5202 when "../action-type = 'forward'";
5204 tailf:info "Service Path Entries";
5205 description "Service Path Entries";
5206 tailf:cli-suppress-mode;
5207 key "service-path-id";
5208 leaf service-path-id {
5210 range "0..16777215";
5211 tailf:info "<0-16777215>;;Service Path ID";
5214 leaf service-index {
5215 tailf:info "Service Index";
5216 description "Service Index";
5219 tailf:info "<2-255>;;Service Index ID";
5225 case fair-queue-case {
5226 // policy-map * / class * / fair-queue
5227 // class-default: fair-queue [number-of-dynamic-queues]
5229 // policy-map: fair-queue [queue-limit queue-value]
5231 // air-queue [congestive-discard-threshold [dynamic-q [reservable-q]]]
5232 container fair-queue {
5233 //tailf:info "Enable Flow-based Fair Queuing in this Class";
5234 tailf:cli-reset-container;
5235 tailf:cli-drop-node-name;
5236 when "../action-type = 'fair-queue'";
5237 leaf dynamic-queues {
5238 tailf:cli-drop-node-name;
5239 tailf:cli-full-command;
5241 range "16|32|64|128|256|512|1024|2048|4096" {
5242 tailf:info "<16-4096>;;Number Dynamic Conversation "+
5248 tailf:info "per flow queue limit";
5249 description "per flow queue limit";
5250 tailf:cli-full-command;
5252 tailf:info "<1-32768>;;packets";
5258 case netflow-sampler-case {
5259 // policy-map * / class * / netflow-sampler
5260 leaf netflow-sampler {
5261 //tailf:info "NetFlow action";
5262 tailf:cli-drop-node-name;
5263 tailf:cli-full-command;
5264 when "../action-type = 'netflow-sampler'";
5265 // should be leafref to sampler
5267 tailf:info "WORD;;Name of the flow sampler";
5272 // policy-map * / class * / police ?
5273 choice police-choice {
5274 // policy-map * / class * / police aggregate
5275 case police-aggregate-case {
5276 container police-aggregate {
5277 tailf:cli-no-keyword;
5278 tailf:cli-drop-node-name;
5280 //tailf:info "Police";
5281 tailf:cli-drop-node-name;
5282 when "../../action-type = 'police'" {
5283 tailf:dependency "../../action-type";
5286 tailf:info "Choose aggregate policer for current class";
5287 description "Choose aggregate policer for current class";
5289 tailf:info "WORD;;enter aggregate-policer name";
5295 // police (policy-map)
5296 // police cir <bps> [[bc <burst-normal>] [be <burst-max>]]
5297 // [pir <bps> [be <burst-bytes>]] ACTIONS
5298 // NOTE: cir, bc & be keywords are mandatory in this model.
5299 // Java code will add missing cir,bc and be in show().
5300 case police-policy-map-case {
5301 container police-policy-map {
5302 tailf:cli-no-keyword;
5303 tailf:cli-drop-node-name;
5306 tailf:cli-mode-name "config-pmap-c-police";
5307 tailf:cli-flatten-container;
5308 tailf:cli-sequence-commands {
5309 tailf:cli-reset-siblings;
5311 tailf:cli-drop-node-name;
5312 when "../../action-type = 'police'" {
5313 tailf:dependency "../../action-type";
5317 tailf:info "Committed information rate";
5318 description "Committed information rate";
5319 tailf:cli-hide-in-submode;
5320 type police-bps-type;
5322 // [bc <burst-normal>]
5324 tailf:info "Conform burst";
5325 description "Conform burst";
5326 tailf:cli-optional-in-sequence;
5327 tailf:cli-hide-in-submode;
5328 type police-burst-type;
5333 tailf:info "Excess burst";
5334 description "Excess burst";
5335 tailf:cli-optional-in-sequence;
5336 tailf:cli-hide-in-submode;
5337 type police-burst-type;
5339 // [pir <bps> [be <burst-bytes>]]
5341 tailf:info "Peak Information Rate";
5342 description "Peak Information Rate";
5343 tailf:cli-optional-in-sequence;
5344 tailf:cli-hide-in-submode;
5345 type police-bps-type;
5349 tailf:cli-no-keyword;
5350 tailf:cli-drop-node-name;
5351 tailf:cli-optional-in-sequence;
5352 tailf:cli-flatten-container;
5353 tailf:cli-hide-in-submode;
5355 tailf:info "Excess burst";
5356 description "Excess burst";
5357 type police-burst-type;
5360 // conform-action | exceed-action | violate-action
5361 uses police-action-grouping;
5365 // police cir percent (combo of percent & policy-map versions)
5366 // police cir percent <percentage>
5367 // [bc] <burst> ms] [be [<burst> ms]
5368 // [pir percent <percentage> [be <burst> ms]] ACTIONS
5369 case police-cir-percent-case {
5370 container police-cir-percent {
5371 tailf:cli-no-keyword;
5372 tailf:cli-drop-node-name;
5374 tailf:cli-drop-node-name;
5375 when "../../action-type = 'police'" {
5376 tailf:dependency "../../action-type";
5379 tailf:info "Committed information rate";
5380 description "Committed information rate";
5382 tailf:info "% of interface bandwidth for Committed "+
5384 description "% of interface bandwidth for Committed "+
5387 tailf:cli-mode-name "config-pmap-c-police";
5388 tailf:cli-incomplete-command;
5389 tailf:cli-flatten-container;
5390 tailf:cli-sequence-commands {
5391 tailf:cli-reset-siblings;
5393 // percent <percentage>
5395 tailf:cli-drop-node-name;
5396 tailf:cli-hide-in-submode;
5397 type percentage-type;
5401 tailf:info "Conform burst";
5402 description "Conform burst";
5403 tailf:cli-optional-in-sequence;
5404 tailf:cli-hide-in-submode;
5406 tailf:info "<1-2000>;;Burst ms";
5411 tailf:cli-no-keyword;
5412 tailf:cli-drop-node-name;
5413 tailf:cli-optional-in-sequence;
5414 tailf:cli-hide-in-submode;
5415 tailf:cli-compact-syntax;
5416 tailf:cli-flatten-container;
5418 tailf:info "Milli seconds";
5419 description "Milli seconds";
5420 tailf:cli-no-keyword;
5426 when "../bc-ms/ms" {
5427 tailf:dependency "../bc-ms/ms";
5429 tailf:info "Excess burst";
5430 tailf:cli-optional-in-sequence;
5431 tailf:cli-hide-in-submode;
5433 tailf:info "<1-2000>;;Burst ms";
5438 tailf:cli-no-keyword;
5439 tailf:cli-drop-node-name;
5440 tailf:cli-hide-in-submode;
5441 tailf:cli-compact-syntax;
5442 tailf:cli-flatten-container;
5444 tailf:info "Milli seconds";
5445 description "Milli seconds";
5446 tailf:cli-no-keyword;
5450 // [pir percent <percentage> [be <burst> ms]]
5452 tailf:info "Peak Information Rate";
5453 description "Peak Information Rate";
5454 tailf:cli-compact-syntax;
5455 tailf:cli-flatten-container;
5456 tailf:cli-hide-in-submode;
5457 tailf:cli-optional-in-sequence;
5459 tailf:info "% of interface bandwidth for Peak "+
5461 description "% of interface bandwidth for Peak "+
5463 type percentage-type;
5468 tailf:cli-no-keyword;
5469 tailf:cli-drop-node-name;
5470 tailf:cli-optional-in-sequence;
5471 tailf:cli-flatten-container;
5472 tailf:cli-hide-in-submode;
5474 tailf:info "Excess burst";
5475 description "Excess burst";
5477 tailf:info "<1-2000>;;Burst ms";
5481 container pir-be-ms {
5482 when "../pir-be/be" {
5483 tailf:dependency "../pir-be/be";
5485 tailf:cli-no-keyword;
5486 tailf:cli-drop-node-name;
5487 tailf:cli-optional-in-sequence;
5488 tailf:cli-hide-in-submode;
5489 tailf:cli-flatten-container;
5491 tailf:info "Milli seconds";
5492 description "Milli seconds";
5493 tailf:cli-no-keyword;
5497 // conform-action | exceed-action | violate-action
5498 uses police-action-grouping;
5504 // police rate (control-plane)
5505 // police rate <units> <pps|bps> [burst <burst-in-x> <packets|bytes>]
5506 // [peak-rate <peak-rate-in-xps> <pps|bps>]
5507 // [peak-burst <peak-burst-in-x> <packets|bytes>]
5508 // [conform-action <action>]
5509 case police-rate-unit-case {
5510 container police-rate-unit {
5511 tailf:cli-no-keyword;
5512 tailf:cli-drop-node-name;
5514 tailf:cli-drop-node-name;
5515 when "../../action-type = 'police'" {
5516 tailf:dependency "../../action-type";
5519 tailf:info "Specify police rate";
5520 description "Specify police rate";
5522 tailf:cli-mode-name "config-pmap-c-police";
5523 tailf:cli-flatten-container;
5524 tailf:cli-sequence-commands {
5525 tailf:cli-reset-siblings;
5529 tailf:cli-drop-node-name;
5530 tailf:cli-hide-in-submode;
5532 tailf:info "<1-2000000000>;;Rate value in the range "+
5533 "8000-2,000,000,000 bps or 1-2,000,000 pps";
5538 tailf:cli-no-keyword;
5539 tailf:cli-drop-node-name;
5540 tailf:cli-hide-in-submode;
5541 type police-pps-bps-type;
5543 // [burst <burst-in-x> <packets|bytes>]
5545 tailf:info "Specify 'burst' parameter";
5546 description "Specify 'burst' parameter";
5547 tailf:cli-optional-in-sequence;
5548 tailf:cli-compact-syntax;
5549 tailf:cli-hide-in-submode;
5550 tailf:cli-flatten-container;
5551 tailf:cli-sequence-commands;
5553 tailf:cli-no-keyword;
5554 tailf:cli-drop-node-name;
5555 tailf:cli-incomplete-command;
5557 tailf:info "<1-512000000>;;Burst value in "+
5562 tailf:cli-no-keyword;
5563 tailf:cli-drop-node-name;
5564 tailf:cli-hide-in-submode;
5565 type police-packets-bytes-type;
5568 // [peak-rate <peak-rate-in-xps> <pps|bps>]
5569 container peak-rate {
5570 tailf:info "Specify peak rate";
5571 description "Specify peak rate";
5572 tailf:cli-optional-in-sequence;
5573 tailf:cli-compact-syntax;
5574 tailf:cli-flatten-container;
5575 tailf:cli-hide-in-submode;
5576 tailf:cli-sequence-commands;
5577 leaf peak-rate-value {
5578 tailf:cli-no-keyword;
5579 tailf:cli-drop-node-name;
5580 tailf:cli-incomplete-command;
5582 tailf:info "<1-512000000>;;Peak-rate value in "+
5583 "packets or bytes per second";
5584 range "1..512000000";
5588 tailf:cli-no-keyword;
5589 tailf:cli-drop-node-name;
5590 type police-pps-bps-type;
5593 // [peak-burst <peak-burst-in-x> <packets|bytes>]
5594 container peak-burst {
5595 tailf:info "Specify 'peak-burst' parameter for peak-rate";
5596 description "Specify 'peak-burst' parameter for peak-rate";
5597 tailf:cli-optional-in-sequence;
5598 tailf:cli-compact-syntax;
5599 tailf:cli-flatten-container;
5600 tailf:cli-hide-in-submode;
5601 tailf:cli-sequence-commands;
5603 tailf:cli-no-keyword;
5604 tailf:cli-drop-node-name;
5605 tailf:cli-incomplete-command;
5607 tailf:info "<1-512000000>;;Burst value in "+
5612 tailf:cli-no-keyword;
5613 tailf:cli-drop-node-name;
5614 type police-packets-bytes-type;
5617 // conform-action | exceed-action | violate-action
5618 uses police-action-grouping;
5623 // police rate percent (control-plane)
5624 // police rate percent <percentage> [burst <ms> ms]
5625 // [peak-rate percent <percentage>] [peak-burst <ms> ms]
5626 case police-rate-percent-case {
5627 container police-rate-percent {
5628 tailf:cli-no-keyword;
5629 tailf:cli-drop-node-name;
5631 tailf:cli-drop-node-name;
5632 when "../../action-type = 'police'" {
5633 tailf:dependency "../../action-type";
5636 tailf:info "Specify police rate";
5637 description "Specify police rate";
5639 tailf:info "% of interface bandwidth for rate";
5640 description "% of interface bandwidth for rate";
5642 tailf:cli-mode-name "config-pmap-c-police";
5643 tailf:cli-flatten-container;
5644 tailf:cli-sequence-commands {
5645 tailf:cli-reset-siblings;
5649 tailf:cli-drop-node-name;
5650 tailf:cli-hide-in-submode;
5651 type percentage-type;
5655 tailf:info "Specify 'burst' parameter";
5656 description "Specify 'burst' parameter";
5657 tailf:cli-optional-in-sequence;
5658 tailf:cli-hide-in-submode;
5660 tailf:info "<1-2000>;;Burst value in milliseconds";
5665 tailf:info "Treat 'burst' value in milliseconds";
5666 description "Treat 'burst' value in milliseconds";
5667 tailf:cli-hide-in-submode;
5670 // [peak-rate percent <percentage>]
5671 container peak-rate {
5672 tailf:info "Specify peak rate";
5673 description "Specify peak rate";
5674 tailf:cli-hide-in-submode;
5675 tailf:cli-optional-in-sequence;
5676 tailf:cli-flatten-container;
5678 tailf:info "% of interface bandwidth for peak-rate";
5679 description "% of interface bandwidth for peak-rate";
5680 type percentage-type;
5683 // [peak-burst <ms> ms]
5685 tailf:info "Specify 'peak-burst' parameter for "+
5687 description "Specify 'peak-burst' parameter for "+
5689 tailf:cli-hide-in-submode;
5690 tailf:cli-optional-in-sequence;
5692 tailf:info "<1-2000>;;Peak burst value in "+
5696 container peak-burst-ms {
5697 when "../peak-burst";
5698 tailf:cli-no-keyword;
5699 tailf:cli-drop-node-name;
5700 tailf:cli-optional-in-sequence;
5701 tailf:cli-hide-in-submode;
5702 tailf:cli-flatten-container;
5704 tailf:info "Milli seconds";
5705 description "Milli seconds";
5706 tailf:cli-no-keyword;
5710 // conform-action | exceed-action | violate-action
5711 uses police-action-grouping;
5718 // police rate pdp [burst <bytes>]
5719 // [peak-rate pdp [peak-burst <bytes>]] ACTIONS
5720 case police-rate-pdp-case {
5721 container police-rate-pdp {
5722 tailf:cli-no-keyword;
5723 tailf:cli-drop-node-name;
5725 tailf:cli-drop-node-name;
5726 when "../../action-type = 'police'" {
5727 tailf:dependency "../../action-type";
5730 tailf:info "Specify police rate";
5731 description "Specify police rate";
5733 tailf:info "% of interface bandwidth for rate";
5734 description "% of interface bandwidth for rate";
5736 tailf:cli-mode-name "config-pmap-c-police";
5737 tailf:cli-flatten-container;
5738 tailf:cli-sequence-commands {
5739 tailf:cli-reset-siblings;
5743 tailf:info "Conform burst";
5744 description "Conform burst";
5745 tailf:cli-hide-in-submode;
5746 tailf:cli-optional-in-sequence;
5747 type police-burst-type;
5749 // [peak-rate pdp [peak-burst <bytes>]]
5751 tailf:info "Specify peak rate";
5752 description "Specify peak rate";
5753 tailf:cli-hide-in-submode;
5754 tailf:cli-optional-in-sequence;
5761 when "../peak-rate";
5762 tailf:info "Specify 'peak-burst' parameter for "+
5764 description "Specify 'peak-burst' parameter for "+
5766 tailf:cli-hide-in-submode;
5767 tailf:cli-optional-in-sequence;
5768 type police-burst-type;
5770 // conform-action | exceed-action | violate-action
5771 uses police-action-grouping;
5777 // police target-bit-rate <bits per second>
5778 case police-target-bitrate-case {
5779 container police-target-bitrate {
5780 tailf:cli-no-keyword;
5781 tailf:cli-drop-node-name;
5783 tailf:cli-drop-node-name;
5784 when "../../action-type = 'police'" {
5785 tailf:dependency "../../action-type";
5788 tailf:cli-mode-name "config-pmap-c-police";
5790 tailf:info "Target bit rate (bits per second) (postfix k, m, g optional),
5791 decimal point allowed";
5792 description "Target bit rate (bits per second) (postfix k, m, g optional),
5793 decimal point allowed";
5794 tailf:cli-no-keyword;
5795 tailf:cli-drop-node-name;
5796 tailf:cli-hide-in-submode;
5798 tailf:info "<8000-10000000000>;;Target bit rate (bits per second)";
5799 range "8000..10000000000";
5802 // conform-action | exceed-action | violate-action
5803 uses police-action-grouping;
5807 // police flow (policy-map)
5808 // police flow [mask {dest-only | full-flow | src-only}]
5809 // <bps> [<burst-normal>] ACTIONS
5810 case police-flow-case {
5811 container police-flow {
5812 tailf:cli-no-keyword;
5813 tailf:cli-drop-node-name;
5815 tailf:cli-drop-node-name;
5816 when "../../action-type = 'police'" {
5817 tailf:dependency "../../action-type";
5820 tailf:info "police each flow";
5821 description "police each flow";
5823 tailf:cli-mode-name "config-pmap-c-police";
5824 tailf:cli-flatten-container;
5825 tailf:cli-sequence-commands {
5826 tailf:cli-reset-siblings;
5828 // [mask {dest-only | full-flow | src-only}]
5830 tailf:info "flow mask to be used for policing";
5831 description "flow mask to be used for policing";
5832 tailf:cli-hide-in-submode;
5833 tailf:cli-optional-in-sequence;
5836 tailf:info "destination-address only flow mask";
5839 tailf:info "full flow mask";
5842 tailf:info "source-address only flow mask";
5848 tailf:cli-drop-node-name;
5849 tailf:cli-hide-in-submode;
5850 type police-bps-type;
5855 tailf:cli-drop-node-name;
5856 tailf:cli-hide-in-submode;
5857 tailf:cli-optional-in-sequence;
5858 type police-burst-type;
5860 // conform-action | exceed-action | violate-action
5861 uses police-action-grouping;
5866 // police (Catalyst 4500)
5867 // police <bps> bps <byte> byte ACTIONS
5868 case police-catalyst-case {
5869 container police-catalyst {
5870 tailf:cli-no-keyword;
5871 tailf:cli-drop-node-name;
5874 tailf:cli-mode-name "config-pmap-c-police";
5875 tailf:cli-flatten-container;
5876 tailf:cli-drop-node-name;
5877 when "../../action-type = 'police'" {
5878 tailf:dependency "../../action-type";
5880 tailf:cli-sequence-commands {
5881 tailf:cli-reset-siblings;
5885 tailf:cli-no-keyword;
5886 tailf:cli-drop-node-name;
5887 tailf:cli-hide-in-submode;
5888 tailf:cli-incomplete-command;
5890 tailf:info "<32000-32000000000>;;Rate in bits per second "+
5891 "(postfix k, m, g optional; decimal point allowed)";
5895 tailf:cli-hide-in-submode;
5896 tailf:cli-incomplete-command;
5901 tailf:cli-no-keyword;
5902 tailf:cli-drop-node-name;
5903 tailf:cli-hide-in-submode;
5904 tailf:cli-incomplete-command;
5906 tailf:info "<32000-32000000000>;;(postfix k, m, g "+
5907 "optional; decimal point allowed)";
5911 tailf:cli-hide-in-submode;
5914 // conform-action | exceed-action | violate-action
5916 tailf:cli-no-keyword;
5917 tailf:cli-break-sequence-commands;
5918 tailf:cli-drop-node-name;
5919 tailf:cli-flatten-container;
5920 tailf:cli-hide-in-submode;
5921 // policy-map * / class * / police ? / conform-action
5922 uses police-conform-action-grouping;
5923 // policy-map * / class * / police ? / exceed-action
5924 uses police-exceed-action-grouping;
5925 // policy-map * / class * / police ? / violate-action
5926 uses police-violate-action-grouping;
5931 // police (Catalyst C3550)
5932 // police <bps> <burst> exceed-action {drop | policed-dscp-transmit}]
5933 case police-switch-case {
5934 container police-switch {
5935 tailf:cli-no-keyword;
5936 tailf:cli-drop-node-name;
5938 tailf:cli-compact-syntax;
5939 tailf:cli-drop-node-name;
5940 when "../../action-type = 'police'" {
5941 tailf:dependency "../../action-type";
5943 tailf:cli-sequence-commands {
5944 tailf:cli-reset-siblings;
5948 tailf:cli-incomplete-command;
5949 tailf:cli-drop-node-name;
5951 tailf:info "<8000-1000000000>;;Bits per second";
5952 range "8000..1000000000";
5957 tailf:cli-drop-node-name;
5959 tailf:info "<8000-2000000>;;Normal burst bytes";
5960 range "8000..2000000";
5964 leaf exceed-action {
5965 tailf:info "action when rate is exceeded";
5966 description "action when rate is exceeded";
5969 tailf:info "drop packet";
5971 enum policed-dscp-transmit {
5972 tailf:info "change dscp per policed-dscp map and send it";
5981 case priority-case {
5982 // policy-map * / class * / priority
5983 container priority {
5984 //tailf:info "Strict Scheduling Priority for this Class";
5985 tailf:cli-compact-syntax;
5986 tailf:cli-sequence-commands;
5987 tailf:cli-drop-node-name;
5988 when "../action-type = 'priority'";
5990 tailf:info "Multi-Level Priority Queue";
5991 description "Multi-Level Priority Queue";
5992 tailf:cli-optional-in-sequence;
5994 tailf:info "<1-2>;;Multi-Level Priority Queue";
5998 choice priority-type {
6000 tailf:cli-drop-node-name;
6003 tailf:info "<8-2000000>;;Kilo Bits per second";
6007 tailf:info "% of total bandwidth";
6008 description "% of total bandwidth";
6011 tailf:info "<1-100>;;percentage";
6016 tailf:cli-drop-node-name;
6018 tailf:info "<32-64000000>;;Burst in bytes";
6019 range "32..64000000";
6024 case queue-buffers-case {
6025 // policy-map * / class * / queue-buffers
6026 container queue-buffers {
6027 tailf:cli-drop-node-name;
6028 when "../action-type = 'queue-buffers'";
6030 tailf:info "Relative buffer size for queue";
6031 description "Relative buffer size for queue";
6033 tailf:info "<0-100>;;Queue-buffers ratio limit";
6039 case queue-limit-case {
6040 // policy-map * / class * / queue-limit
6041 container queue-limit {
6042 //tailf:info "Queue Max Threshold for Tail Drop";
6043 tailf:cli-compact-syntax;
6044 tailf:cli-sequence-commands {
6045 tailf:cli-reset-siblings;
6047 tailf:cli-drop-node-name;
6048 when "../action-type = 'queue-limit'";
6049 leaf queue-limit-value {
6050 tailf:cli-drop-node-name;
6052 tailf:info "<1-8192000> in bytes, <1-3400> in ms, "+
6053 "<1-32768> in packets by default";
6057 leaf queue-limit-type {
6058 tailf:cli-drop-node-name;
6061 tailf:info "in bytes";
6064 tailf:info "in milliseconds";
6067 tailf:info "in packets";
6070 tailf:info "in microseconds";
6075 container queue-limit-dscp {
6076 //tailf:info "Queue Max Threshold for Tail Drop";
6077 tailf:cli-compact-syntax;
6078 tailf:cli-drop-node-name;
6079 when "../action-type = 'queue-limit'";
6081 tailf:info "parameters for each dscp value";
6082 description "parameters for each dscp value";
6086 tailf:info "dscp values";
6087 description "dscp values";
6090 leaf-list sdcp-val {
6091 tailf:cli-drop-node-name;
6095 tailf:info "% of threshold";
6096 description "% of threshold";
6098 tailf:info "<0-100>;;% of threshold";
6104 case random-detect {
6105 // policy-map * / class * / random-detect
6106 container random-detect {
6107 //tailf:info "Enable Random Early Detection as drop policy";
6109 tailf:cli-drop-node-name;
6110 when "../action-type = 'random-detect'";
6111 container aggregate {
6112 tailf:info "aggregate subclasses";
6113 description "aggregate subclasses";
6114 tailf:cli-compact-syntax;
6115 tailf:cli-sequence-commands {
6116 tailf:cli-reset-siblings;
6119 leaf minimum-thresh {
6120 tailf:info "minimum threshold for red aggregate";
6121 description "minimum threshold for red aggregate";
6123 tailf:info "<0-1000000>;;minimum threshold (number of packets)";
6127 leaf maximum-thresh {
6128 tailf:info "maximum threshold for red aggregate";
6129 description "maximum threshold for red aggregate";
6131 tailf:info "<0-1000000>;;maximum threshold (number of packets)";
6135 leaf mark-probability {
6136 tailf:info "mark-probability for red aggregate";
6137 description "mark-probability for red aggregate";
6141 tailf:cli-drop-node-name;
6143 tailf:info "<0-65535>;;mark probability denominator";
6148 container discard-class {
6149 tailf:info "parameters for each discard-class value";
6150 description "parameters for each discard-class value";
6151 tailf:cli-compact-syntax;
6152 tailf:cli-sequence-commands;
6154 tailf:cli-drop-node-name;
6155 tailf:cli-incomplete-command;
6158 tailf:info "<0-7>;;discard-class value";
6161 uses random-detect-grouping;
6163 leaf discard-class-based {
6164 tailf:info "Enable discard-class-based WRED as drop policy";
6165 description "Enable discard-class-based WRED as drop policy";
6166 tailf:cli-full-command;
6170 tailf:info "Enable dscp-based WRED as drop policy";
6171 description "Enable dscp-based WRED as drop policy";
6172 tailf:cli-full-command;
6176 tailf:info "parameters for each dscp value";
6177 description "parameters for each dscp value";
6178 tailf:cli-suppress-mode;
6179 tailf:cli-compact-syntax;
6180 tailf:cli-sequence-commands;
6185 uses random-detect-grouping;
6188 tailf:info "explicit congestion notification";
6189 description "explicit congestion notification";
6190 tailf:cli-full-command;
6193 leaf exponential-weighting-constant {
6194 tailf:info "weight for mean queue depth calculation";
6195 description "weight for mean queue depth calculation";
6196 tailf:cli-full-command;
6199 tailf:info "<1-16>;;integer in 1..16 used in weighted "+
6200 "average to mean 2^number";
6204 tailf:info "Enable precedence-based WRED as drop policy";
6205 description "Enable precedence-based WRED as drop policy";
6206 tailf:cli-full-command;
6209 container precedence {
6210 tailf:info "parameters for each precedence value";
6211 description "parameters for each precedence value";
6212 tailf:cli-sequence-commands;
6213 tailf:cli-compact-syntax;
6215 tailf:cli-drop-node-name;
6216 tailf:cli-incomplete-command;
6217 type precedence-type2;
6219 uses random-detect-grouping;
6223 case service-policy-case {
6224 // policy-map * / class * / service-policy
6225 leaf service-policy {
6226 //tailf:info "Configure Flow Next";
6227 tailf:cli-full-command;
6228 tailf:cli-drop-node-name;
6229 when "../action-type = 'service-policy'";
6231 tailf:non-strict-leafref {
6232 path "/ios:native/policy-map/name";
6237 // policy-map * / class * / set
6239 //tailf:info "Set QoS values";
6240 tailf:cli-drop-node-name;
6241 when "../action-type = 'set'";
6242 // policy-map * / class * / set atm-clp
6244 tailf:info "Set ATM CLP bit to 1";
6245 description "Set ATM CLP bit to 1";
6246 tailf:cli-full-command;
6249 // policy-map * / class * / set cos
6251 tailf:info "Set IEEE 802.1Q/ISL class of service/user "+
6253 description "Set IEEE 802.1Q/ISL class of service/user "+
6255 tailf:cli-compact-syntax;
6256 tailf:cli-sequence-commands;
6260 tailf:cli-drop-node-name;
6263 tailf:info "<0-7>;;cos value";
6269 tailf:cli-drop-node-name;
6272 tailf:code-name "pack_dscp";
6273 tailf:info "Set value from packet dscp";
6276 tailf:code-name "pack_precedence";
6277 tailf:info "Set value from packet "+
6283 tailf:info "Set codepoint value based on tablemap.";
6284 description "Set codepoint value based on tablemap.";
6286 tailf:info "WORD;;table-map name";
6288 tailf:non-strict-leafref {
6289 path "/ios:native/table-map/name";
6295 // policy-map * / class * / set discard-class
6296 leaf discard-class {
6297 tailf:info "Discard behavior identifier";
6298 description "Discard behavior identifier";
6299 tailf:cli-full-command;
6302 tailf:info "<0-7>;;Discard Class value";
6305 // policy-map * / class * / set dscp
6307 tailf:info "Set DSCP in IP(v4) and IPv6 packets";
6308 description "Set DSCP in IP(v4) and IPv6 packets";
6309 tailf:cli-compact-syntax;
6311 tailf:info "set tunnel packet dscp";
6312 description "set tunnel packet dscp";
6316 tailf:cli-drop-node-name;
6320 // policy-map * / class * / set fr-de
6322 tailf:info "Set FR DE bit to 1";
6323 description "Set FR DE bit to 1";
6324 tailf:cli-full-command;
6327 // policy-map * / class * / set ip
6329 tailf:info "Set IP specific values";
6330 description "Set IP specific values";
6333 tailf:info "Set IP DSCP (DiffServ CodePointint)";
6334 description "Set IP DSCP (DiffServ CodePointint)";
6335 tailf:cli-compact-syntax;
6337 tailf:info "set tunnel packet dscp";
6338 description "set tunnel packet dscp";
6342 tailf:cli-drop-node-name;
6346 container precedence {
6347 tailf:info "Set IP precedence";
6348 description "Set IP precedence";
6349 presence "Set IP precedence";
6350 leaf precedence-val {
6351 tailf:cli-drop-node-name;
6352 type precedence-type;
6357 // policy-map * / class * / set mpls
6359 tailf:info "Set MPLS specific values";
6360 description "Set MPLS specific values";
6361 container experimental {
6362 tailf:info "Set Experimental value";
6363 description "Set Experimental value";
6365 container imposition {
6366 tailf:info "Set Experimental value at tag imposition";
6367 description "Set Experimental value at tag imposition";
6369 tailf:cli-drop-node-name;
6370 tailf:cli-full-command;
6372 tailf:info "<0-7>;;Experimental value";
6381 tailf:info "Set Experimental value on topmost label";
6382 description "Set Experimental value on topmost label";
6384 tailf:cli-drop-node-name;
6385 tailf:cli-full-command;
6387 tailf:info "<0-7>;;Experimental value";
6394 // policy-map * / class * / set qos-group
6395 container qos-group {
6396 tailf:info "Set QoS Group";
6397 description "Set QoS Group";
6398 leaf qos-group-value {
6399 tailf:cli-drop-node-name;
6400 tailf:cli-full-command;
6412 // policy-map * / class * / shape
6414 //tailf:info "Traffic Shaping";
6415 tailf:cli-drop-node-name;
6416 when "../action-type = 'shape'";
6417 // policy-map * / class * / shape adaptive
6419 tailf:info "Enable Traffic Shaping adaptation to BECN";
6420 description "Enable Traffic Shaping adaptation to BECN";
6421 tailf:cli-full-command;
6423 range "8000..154400000";
6424 tailf:info "<8000-154400000>;;Lower Bound Target Bit "+
6425 "Rate (bits per second)";
6428 // policy-map * / class * / shape average
6430 tailf:info "configure token bucket: CIR (bps) [Bc (bits) "+
6431 "[Be (bits)]], send out Bc only per interval";
6432 description "configure token bucket: CIR (bps) [Bc (bits) "+
6433 "[Be (bits)]], send out Bc only per interval";
6434 tailf:cli-sequence-commands;
6435 tailf:cli-compact-syntax;
6436 choice average-choice {
6439 tailf:cli-drop-node-name;
6441 //range "8000..154400000";
6442 //FIXME: what is range max?
6443 tailf:info "<8000-max>;;Target Bit "+
6444 "Rate (bits per second), the value "+
6445 "needs to be a multiple of 8000";
6448 leaf bits-per-interval-sustained {
6449 tailf:cli-drop-node-name;
6451 range "256..154400000";
6452 tailf:info "<256-154400000>;;bits per "+
6453 "interval, sustained. Needs to be "+
6454 "multiple of 128. Recommend not to "+
6455 "configure it, the algorithm will "+
6456 "find out the best value";
6459 leaf bits-per-interval-excess {
6460 tailf:cli-drop-node-name;
6462 range "0..154400000";
6463 tailf:info "<0-154400000>;;bits per "+
6464 "interval, excess. Needs to be "+
6465 "multiple of 128. Bc will be used if "+
6466 "you don't configure it.";
6472 tailf:info "% of interface bandwidth for "+
6473 "Committed information rate";
6474 description "% of interface bandwidth for "+
6475 "Committed information rate";
6476 type percentage-type;
6478 leaf burst-size-sustained {
6479 tailf:cli-incomplete-command;
6480 tailf:cli-drop-node-name;
6483 tailf:info "<10-2000>;;Sustained burst "+
6488 tailf:info "milliseconds";
6489 description "milliseconds";
6493 tailf:cli-drop-node-name;
6494 tailf:cli-flatten-container;
6495 tailf:cli-sequence-commands;
6496 tailf:cli-compact-syntax;
6497 leaf burst-size-excess {
6498 tailf:cli-incomplete-command;
6501 tailf:info "<10-2000>;;Excess burst "+
6506 tailf:info "milliseconds";
6507 description "milliseconds";
6514 // policy-map * / class * / shape fecn-adapt
6516 tailf:info "Enable Traffic Shaping reflection of FECN as "+
6518 description "Enable Traffic Shaping reflection of FECN as "+
6520 tailf:cli-full-command;
6523 // policy-map * / class * / shape fr-voice-adapt
6524 container fr-voice-adapt {
6525 tailf:info "Enable rate adjustment depending on voice "+
6527 description "Enable rate adjustment depending on voice "+
6529 presence "Enable rate adjustment depending on voice "+
6534 tailf:info "<1-10000>;;de-activation delay in "+
6539 // policy-map * / class * / shape max-buffers
6541 tailf:cli-full-command;
6542 tailf:info "Set Maximum Buffer Limit";
6543 description "Set Maximum Buffer Limit";
6546 tailf:info "<1-4096>;;Maximum Buffer Limit";
6552 // policy-map * / class * / trust
6554 //tailf:info "Set trust value for the class";
6555 tailf:cli-drop-node-name;
6556 when "../action-type = 'trust'";
6559 tailf:info "trust value for the class";
6562 tailf:info "trust value for the class";
6564 enum ip-precedence {
6565 tailf:info "trust value for the class";
6573 // policy-map * / description
6574 leaf "description" {
6575 tailf:info "Policy-Map description";
6576 description "Policy-Map description";
6577 tailf:cli-multi-value;
6580 tailf:info "LINE;;Description of this policy-map (up to "
6584 // policy-map * /sequence-interval
6585 leaf sequence-interval {
6586 tailf:info "Enable sequence number capability";
6587 description "Enable sequence number capability";
6588 when "../type = 'appnav'";
6590 tailf:info "<0-65535>;;Sequence Number Interval";
6595 /// ========================================================================
6597 /// ========================================================================
6599 grouping config-service-chain-grouping {
6601 tailf:info "Service function forwarder description";
6602 description "Service function forwarder description";
6603 tailf:cli-multi-value;
6605 tailf:info "LINE;;Up to 256 characters describing this " + "service function forwarder";
6610 tailf:info "IP address for Service Function Forwarder";
6611 description "IP address for Service Function Forwarder";
6613 tailf:info "Set IPv4 address";
6614 description "Set IPv4 address";
6615 type inet:ipv4-address {
6616 tailf:info "A.B.C.D;;IP address of Service Function Forwarder";
6622 container service-chain {
6623 tailf:info "Service Chain mode";
6624 description "Service Chain mode";
6625 list service-function {
6626 tailf:info "Service function details";
6627 description "Service function details";
6628 tailf:cli-mode-name "config-service-chain-sf";
6631 tailf:info "WORD;;Service function name";
6632 description "WORD;;Service function name";
6635 container config-service-chain-sf-mode {
6636 tailf:cli-drop-node-name;
6638 tailf:info "Service function description";
6639 description "Service function description";
6640 tailf:cli-multi-value;
6641 tailf:cli-full-command;
6643 tailf:info "LINE;;Up to 256 characters describing this "
6644 +"service function";
6648 container encapsulation {
6649 tailf:info "Service node encapsulation";
6650 description "Service node encapsulation";
6652 tailf:info "Service node encapsulation type";
6653 description "Service node encapsulation type";
6655 tailf:info "Add enhanced NSH TLV information";
6656 description "Add enhanced NSH TLV information";
6659 tailf:info "Send a copy of the packet";
6662 tailf:info "Divert the packet (default)";
6668 tailf:info "Service node encapsulation type";
6669 description "Service node encapsulation type";
6674 tailf:info "Service node";
6675 description "Service node";
6677 type inet:ipv4-address {
6678 tailf:info "A.B.C.D;;Service node";
6684 container service-function-forwarder {
6685 tailf:info "Service function forwarder details";
6686 description "Service function forwarder details";
6687 list service-ff-name {
6688 tailf:cli-drop-node-name;
6689 tailf:cli-mode-name "config-service-chain-sff";
6692 tailf:info "WORD;;Service function forwarder name";
6693 description "WORD;;Service function forwarder name";
6696 uses config-service-chain-grouping;
6699 tailf:info "Local service function forwarder";
6700 description "Local service function forwarder";
6702 tailf:cli-mode-name "config-service-chain-sff";
6704 uses config-service-chain-grouping;
6708 tailf:info "Service Path Entries";
6709 description "Service Path Entries";
6710 tailf:cli-mode-name "config-service-chain-path";
6711 key "service-path-id";
6712 leaf service-path-id {
6714 range "0..16777215";
6715 tailf:info "<0-16777215>;;Service Path ID";
6718 container config-service-chain-path-mode {
6719 tailf:cli-drop-node-name;
6721 tailf:info "Path Description";
6722 description "Path Description";
6723 tailf:cli-multi-value;
6724 tailf:cli-full-command;
6726 tailf:info "LINE;;Up to 256 characters describing this "
6731 container service-index {
6732 tailf:info "Service Index";
6733 description "Service Index";
6735 tailf:cli-drop-node-name;
6736 tailf:cli-suppress-mode;
6737 key "service-index-id";
6738 leaf service-index-id {
6741 tailf:info "<2-255>;;Service Index ID";
6744 choice service-type-choice {
6745 leaf service-function {
6746 tailf:info "Service Function name";
6747 description "Service Function name";
6749 tailf:info "WORD;;Service Function name";
6752 leaf service-function-forwarder {
6753 tailf:info "Service Function Forwarder name";
6754 description "Service Function Forwarder name";
6756 tailf:info "WORD;;Service Function Forwarder name";
6760 tailf:info "Terminate(Proxy)";
6761 description "Terminate(Proxy)";
6772 /// ========================================================================
6774 /// ========================================================================