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 config-service-chain-grouping {
1740 tailf:info "Service function forwarder description";
1741 description "Service function forwarder description";
1742 tailf:cli-multi-value;
1744 tailf:info "LINE;;Up to 256 characters describing this " + "service function forwarder";
1749 tailf:info "IP address for Service Function Forwarder";
1750 description "IP address for Service Function Forwarder";
1752 tailf:info "Set IPv4 address";
1753 description "Set IPv4 address";
1754 type inet:ipv4-address {
1755 tailf:info "A.B.C.D;;IP address of Service Function Forwarder";
1761 grouping interface-atm-grouping {
1765 grouping interface-cellular-grouping {
1766 //interface * / dialer
1781 //interface * / async
1791 grouping interface-common-grouping {
1792 // interface * / service-policy
1793 container service-policy {
1794 tailf:info "Configure QoS Service Policy";
1795 description "Configure QoS Service Policy";
1797 tailf:cli-full-command;
1798 tailf:info "Keep history of QoS metrics";
1799 description "Keep history of QoS metrics";
1803 tailf:cli-full-command;
1804 tailf:info "Assign policy-map to the input of an interface";
1805 description "Assign policy-map to the input of an interface";
1807 tailf:info "WORD;;policy-map name";
1809 tailf:non-strict-leafref {
1810 path "/ios:native/policy-map/name";
1814 tailf:cli-full-command;
1815 tailf:info "Assign policy-map to the output of an interface";
1816 description "Assign policy-map to the output of an interface";
1818 tailf:info "WORD;;policy-map name";
1820 tailf:non-strict-leafref {
1821 path "/ios:native/policy-map/name";
1825 tailf:info "Configure CPL Service Policy";
1826 description "Configure CPL Service Policy";
1827 container performance-monitor {
1828 tailf:info "Configure media monitor service-policy type";
1829 description "Configure media monitor service-policy type";
1830 tailf:cli-sequence-commands;
1831 tailf:cli-compact-syntax;
1833 tailf:cli-drop-node-name;
1836 tailf:info "Assign policy-map to the input of an interfcae";
1839 tailf:info "Assign policy-map to the output of an interfcae";
1844 tailf:cli-drop-node-name;
1846 tailf:info "WORD;;policy-map name";
1848 tailf:non-strict-leafref {
1849 path "/ios:native/policy-map/name";
1853 // interface * / service-policy type * / service-chain
1854 container service-chain {
1855 tailf:info "Configure Service-chain Service Policy";
1856 description "Configure Service-chain Service Policy";
1857 tailf:cli-sequence-commands;
1858 tailf:cli-compact-syntax;
1860 tailf:cli-drop-node-name;
1863 tailf:info "Assign policy-map to the input of an interfcae";
1866 tailf:info "Assign policy-map to the output of an interfcae";
1871 tailf:cli-drop-node-name;
1873 tailf:info "WORD;;policy-map name";
1875 tailf:non-strict-leafref {
1876 path "/ios:native/policy-map/name";
1884 grouping interface-ethernet-grouping {
1888 grouping interface-grouping {
1892 grouping interface-overlay-grouping {
1896 grouping interface-pointtopoint-grouping {
1900 grouping interface-pseudowire-grouping {
1904 grouping interface-switch-grouping {
1908 grouping interface-tunnel-grouping {
1912 grouping interface-zone-member-grouping {
1913 // interface * / zone-member
1914 container zone-member {
1915 tailf:info "Apply zone name";
1916 description "Apply zone name";
1918 tailf:info "Security zone";
1919 description "Security zone";
1921 tailf:non-strict-leafref {
1922 path "/ios:native/zone/security/id";
1928 grouping police-action-drop-grouping {
1930 tailf:info "drop packet";
1931 description "drop packet";
1936 grouping police-action-grouping {
1938 tailf:cli-break-sequence-commands;
1939 tailf:cli-no-keyword;
1940 tailf:cli-drop-node-name;
1941 tailf:cli-flatten-container;
1942 // policy-map * / class * / police ? / conform-action
1943 uses police-conform-action-grouping;
1944 // policy-map * / class * / police ? / exceed-action
1945 uses police-exceed-action-grouping;
1946 // policy-map * / class * / police ? / violate-action
1947 uses police-violate-action-grouping;
1951 grouping police-conform-action-grouping {
1952 container conform-set-clp-transmit {
1953 tailf:cli-no-keyword;
1954 tailf:cli-drop-node-name;
1955 tailf:cli-flatten-container;
1956 container conform-action {
1957 tailf:info "action when rate is less than conform burst";
1958 description "action when rate is less than conform burst";
1959 tailf:cli-flatten-container;
1960 leaf set-clp-transmit {
1961 tailf:info "set atm clp and send it";
1962 description "set atm clp and send it";
1967 container conform-set-cos-transmit {
1968 tailf:cli-no-keyword;
1969 tailf:cli-drop-node-name;
1970 tailf:cli-flatten-container;
1971 container conform-action {
1972 tailf:info "action when rate is less than conform burst";
1973 description "action when rate is less than conform burst";
1974 tailf:cli-flatten-container;
1975 leaf set-cos-transmit {
1976 tailf:info "rewrite packet cos and send it";
1977 description "rewrite packet cos and send it";
1978 type cos_value-type;
1982 container conform-set-cos-transmit-table {
1983 tailf:cli-no-keyword;
1984 tailf:cli-drop-node-name;
1985 tailf:cli-flatten-container;
1986 container conform-action {
1987 tailf:info "action when rate is less than conform burst";
1988 description "action when rate is less than conform burst";
1989 tailf:cli-compact-syntax;
1990 tailf:cli-flatten-container;
1991 tailf:cli-sequence-commands;
1992 leaf set-cos-transmit {
1993 tailf:info "rewrite packet cos and send it";
1994 description "rewrite packet cos and send it";
1995 type cos_value-type;
1998 tailf:info "Specify table-map";
1999 description "Specify table-map";
2001 path "/ios:native/table-map/name";
2006 container conform-set-discard-class-transmit {
2007 tailf:cli-no-keyword;
2008 tailf:cli-drop-node-name;
2009 tailf:cli-flatten-container;
2010 container conform-action {
2011 tailf:info "action when rate is less than conform burst";
2012 description "action when rate is less than conform burst";
2013 tailf:cli-flatten-container;
2014 leaf set-discard-class-transmit {
2015 tailf:info "set discard-class and send it";
2016 description "set discard-class and send it";
2018 tailf:info "<0-7>;;new discard-class";
2024 container conform-set-dscp-transmit {
2025 tailf:cli-no-keyword;
2026 tailf:cli-drop-node-name;
2027 tailf:cli-flatten-container;
2028 container conform-action {
2029 tailf:info "action when rate is less than conform burst";
2030 description "action when rate is less than conform burst";
2031 tailf:cli-flatten-container;
2032 leaf set-dscp-transmit {
2033 tailf:info "set dscp and send it";
2034 description "set dscp and send it";
2039 container conform-set-dscp-transmit-table {
2040 tailf:cli-no-keyword;
2041 tailf:cli-drop-node-name;
2042 tailf:cli-flatten-container;
2043 container conform-action {
2044 tailf:info "action when rate is less than conform burst";
2045 description "action when rate is less than conform burst";
2046 tailf:cli-compact-syntax;
2047 tailf:cli-flatten-container;
2048 tailf:cli-sequence-commands;
2049 leaf set-dscp-transmit {
2050 tailf:info "set dscp and send it";
2051 description "set dscp and send it";
2055 tailf:info "Specify table-map";
2056 description "Specify table-map";
2058 path "/ios:native/table-map/name";
2063 container conform-set-frde-transmit {
2064 tailf:cli-no-keyword;
2065 tailf:cli-drop-node-name;
2066 tailf:cli-flatten-container;
2067 container conform-action {
2068 tailf:info "action when rate is less than conform burst";
2069 description "action when rate is less than conform burst";
2070 tailf:cli-flatten-container;
2071 leaf set-frde-transmit {
2072 tailf:info "set FR DE and send it";
2073 description "set FR DE and send it";
2078 container conform-set-mpls-exp-imposition-transmit {
2079 tailf:cli-no-keyword;
2080 tailf:cli-drop-node-name;
2081 tailf:cli-flatten-container;
2082 container conform-action {
2083 tailf:info "action when rate is less than conform burst";
2084 description "action when rate is less than conform burst";
2085 tailf:cli-flatten-container;
2086 leaf set-mpls-exp-imposition-transmit {
2087 tailf:info "set exp at tag imposition and send it";
2088 description "set exp at tag imposition and send it";
2089 type exp_value-type;
2093 container conform-set-mpls-exp-imposition-transmit-table {
2094 tailf:cli-no-keyword;
2095 tailf:cli-drop-node-name;
2096 tailf:cli-flatten-container;
2097 container conform-action {
2098 tailf:info "action when rate is less than conform burst";
2099 description "action when rate is less than conform burst";
2100 tailf:cli-compact-syntax;
2101 tailf:cli-flatten-container;
2102 tailf:cli-sequence-commands;
2103 leaf set-mpls-exp-imposition-transmit {
2104 tailf:info "set exp at tag imposition and send it";
2105 description "set exp at tag imposition and send it";
2106 type exp_value-type;
2109 tailf:info "Specify table-map";
2110 description "Specify table-map";
2112 path "/ios:native/table-map/name";
2117 container conform-set-mpls-exp-topmost-transmit {
2118 tailf:cli-no-keyword;
2119 tailf:cli-drop-node-name;
2120 tailf:cli-flatten-container;
2121 container conform-action {
2122 tailf:info "action when rate is less than conform burst";
2123 description "action when rate is less than conform burst";
2124 tailf:cli-flatten-container;
2125 leaf set-mpls-exp-topmost-transmit {
2126 tailf:info "set exp on topmost label and send it";
2127 description "set exp on topmost label and send it";
2128 type exp_value-type;
2132 container conform-set-mpls-exp-topmost-transmit-table {
2133 tailf:cli-no-keyword;
2134 tailf:cli-drop-node-name;
2135 tailf:cli-flatten-container;
2136 container conform-action {
2137 tailf:info "action when rate is less than conform burst";
2138 description "action when rate is less than conform burst";
2139 tailf:cli-compact-syntax;
2140 tailf:cli-flatten-container;
2141 tailf:cli-sequence-commands;
2142 leaf set-mpls-exp-topmost-transmit {
2143 tailf:info "set exp on topmost label and send it";
2144 description "set exp on topmost label and send it";
2145 type exp_value-type;
2148 tailf:info "Specify table-map";
2149 description "Specify table-map";
2151 path "/ios:native/table-map/name";
2156 container conform-set-prec-transmit {
2157 tailf:cli-no-keyword;
2158 tailf:cli-drop-node-name;
2159 tailf:cli-flatten-container;
2160 container conform-action {
2161 tailf:info "action when rate is less than conform burst";
2162 description "action when rate is less than conform burst";
2163 tailf:cli-flatten-container;
2164 leaf set-prec-transmit {
2165 tailf:info "rewrite packet precedence and send it";
2166 description "rewrite packet precedence and send it";
2167 type prec_value-type;
2171 container conform-set-prec-transmit-table {
2172 tailf:cli-no-keyword;
2173 tailf:cli-drop-node-name;
2174 tailf:cli-flatten-container;
2175 container conform-action {
2176 tailf:info "action when rate is less than conform burst";
2177 description "action when rate is less than conform burst";
2178 tailf:cli-compact-syntax;
2179 tailf:cli-flatten-container;
2180 tailf:cli-sequence-commands;
2181 leaf set-prec-transmit {
2182 tailf:info "rewrite packet precedence and send it";
2183 description "rewrite packet precedence and send it";
2184 type prec_value-type;
2187 tailf:info "Specify table-map";
2188 description "Specify table-map";
2190 path "/ios:native/table-map/name";
2195 container conform-set-qos-transmit {
2196 tailf:cli-no-keyword;
2197 tailf:cli-drop-node-name;
2198 tailf:cli-flatten-container;
2199 container conform-action {
2200 tailf:info "action when rate is less than conform burst";
2201 description "action when rate is less than conform burst";
2202 tailf:cli-flatten-container;
2203 leaf set-qos-transmit {
2204 tailf:info "set qos-group and send it";
2205 description "set qos-group and send it";
2206 type qos_value-type;
2210 container conform-set-qos-transmit-table {
2211 tailf:cli-no-keyword;
2212 tailf:cli-drop-node-name;
2213 tailf:cli-flatten-container;
2214 container conform-action {
2215 tailf:info "action when rate is less than conform burst";
2216 description "action when rate is less than conform burst";
2217 tailf:cli-compact-syntax;
2218 tailf:cli-flatten-container;
2219 tailf:cli-sequence-commands;
2220 leaf set-qos-transmit {
2221 tailf:info "set qos-group and send it";
2222 description "set qos-group and send it";
2223 type qos_value-type;
2226 tailf:info "Specify table-map";
2227 description "Specify table-map";
2229 path "/ios:native/table-map/name";
2234 container conform-transmit {
2235 tailf:cli-no-keyword;
2236 tailf:cli-drop-node-name;
2237 tailf:cli-flatten-container;
2238 container conform-action {
2239 tailf:info "action when rate is less than conform burst";
2240 description "action when rate is less than conform burst";
2241 tailf:cli-flatten-container;
2242 uses police-action-transmit-grouping;
2245 container conform-drop {
2246 tailf:cli-no-keyword;
2247 tailf:cli-drop-node-name;
2248 tailf:cli-flatten-container;
2249 container conform-action {
2250 tailf:info "action when rate is less than conform burst";
2251 description "action when rate is less than conform burst";
2252 tailf:cli-flatten-container;
2253 uses police-action-drop-grouping;
2258 grouping police-action-transmit-grouping {
2260 tailf:info "transmit packet";
2261 description "transmit packet";
2266 grouping police-exceed-action-grouping {
2267 container exceed-dscp {
2268 tailf:cli-no-keyword;
2269 tailf:cli-drop-node-name;
2270 tailf:cli-flatten-container;
2271 container exceed-action {
2272 tailf:info "action when rate is within conform and "+
2273 "conform + exceed burst";
2274 description "action when rate is within conform and "+
2275 "conform + exceed burst";
2276 tailf:cli-flatten-container;
2283 container exceed-set-clp-transmit {
2284 tailf:cli-no-keyword;
2285 tailf:cli-drop-node-name;
2286 tailf:cli-flatten-container;
2287 container exceed-action {
2288 tailf:info "action when rate is within conform and "+
2289 "conform + exceed burst";
2290 description "action when rate is within conform and "+
2291 "conform + exceed burst";
2292 tailf:cli-flatten-container;
2293 leaf set-clp-transmit {
2294 tailf:info "set atm clp and send it";
2295 description "set atm clp and send it";
2300 container exceed-set-cos-transmit {
2301 tailf:cli-no-keyword;
2302 tailf:cli-drop-node-name;
2303 tailf:cli-flatten-container;
2304 container exceed-action {
2305 tailf:info "action when rate is within conform and "+
2306 "conform + exceed burst";
2307 description "action when rate is within conform and "+
2308 "conform + exceed burst";
2309 tailf:cli-flatten-container;
2310 leaf set-cos-transmit {
2311 tailf:info "rewrite packet cos and send it";
2312 description "rewrite packet cos and send it";
2313 type cos_value-type;
2317 container exceed-set-discard-class-transmit {
2318 tailf:cli-no-keyword;
2319 tailf:cli-drop-node-name;
2320 tailf:cli-flatten-container;
2321 container exceed-action {
2322 tailf:info "action when rate is within conform and "+
2323 "conform + exceed burst";
2324 description "action when rate is within conform and "+
2325 "conform + exceed burst";
2326 tailf:cli-flatten-container;
2327 leaf set-discard-class-transmit {
2328 tailf:info "set discard-class and send it";
2329 description "set discard-class and send it";
2331 tailf:info "<0-7>;;new discard-class";
2337 container exceed-set-dscp-transmit {
2338 tailf:cli-no-keyword;
2339 tailf:cli-drop-node-name;
2340 tailf:cli-flatten-container;
2341 container exceed-action {
2342 tailf:info "action when rate is within conform and "+
2343 "conform + exceed burst";
2344 description "action when rate is within conform and "+
2345 "conform + exceed burst";
2346 tailf:cli-flatten-container;
2347 leaf set-dscp-transmit {
2348 tailf:info "set dscp and send it";
2349 description "set dscp and send it";
2352 container set-dscp-transmit-c {
2353 tailf:alt-name "set-dscp-transmit";
2364 container exceed-set-frde-transmit {
2365 tailf:cli-no-keyword;
2366 tailf:cli-drop-node-name;
2367 tailf:cli-flatten-container;
2368 container exceed-action {
2369 tailf:info "action when rate is within conform and "+
2370 "conform + exceed burst";
2371 description "action when rate is within conform and "+
2372 "conform + exceed burst";
2373 tailf:cli-flatten-container;
2374 leaf set-frde-transmit {
2375 tailf:info "set FR DE and send it";
2376 description "set FR DE and send it";
2381 container exceed-set-mpls-exp-imposition-transmit {
2382 tailf:cli-no-keyword;
2383 tailf:cli-drop-node-name;
2384 tailf:cli-flatten-container;
2385 container exceed-action {
2386 tailf:info "action when rate is within conform and "+
2387 "conform + exceed burst";
2388 description "action when rate is within conform and "+
2389 "conform + exceed burst";
2390 tailf:cli-flatten-container;
2391 leaf set-mpls-exp-imposition-transmit {
2392 tailf:info "set exp at tag imposition and send it";
2393 description "set exp at tag imposition and send it";
2394 type exp_value-type;
2398 container exceed-set-mpls-exp-topmost-transmit {
2399 tailf:cli-no-keyword;
2400 tailf:cli-drop-node-name;
2401 tailf:cli-flatten-container;
2402 container exceed-action {
2403 tailf:info "action when rate is within conform and "+
2404 "conform + exceed burst";
2405 description "action when rate is within conform and "+
2406 "conform + exceed burst";
2407 tailf:cli-flatten-container;
2408 leaf set-mpls-exp-topmost-transmit {
2409 tailf:info "set exp on topmost label and send it";
2410 description "set exp on topmost label and send it";
2411 type exp_value-type;
2415 container exceed-set-prec-transmit {
2416 tailf:cli-no-keyword;
2417 tailf:cli-drop-node-name;
2418 tailf:cli-flatten-container;
2419 container exceed-action {
2420 tailf:info "action when rate is within conform and "+
2421 "conform + exceed burst";
2422 description "action when rate is within conform and "+
2423 "conform + exceed burst";
2424 tailf:cli-flatten-container;
2425 leaf set-prec-transmit {
2426 tailf:info "rewrite packet precedence and send it";
2427 description "rewrite packet precedence and send it";
2428 type prec_value-type;
2432 container exceed-set-qos-transmit {
2433 tailf:cli-no-keyword;
2434 tailf:cli-drop-node-name;
2435 tailf:cli-flatten-container;
2436 container exceed-action {
2437 tailf:info "action when rate is within conform and "+
2438 "conform + exceed burst";
2439 description "action when rate is within conform and "+
2440 "conform + exceed burst";
2441 tailf:cli-flatten-container;
2442 leaf set-qos-transmit {
2443 tailf:info "set qos-group and send it";
2444 description "set qos-group and send it";
2445 type qos_value-type;
2449 container exceed-transmit {
2450 tailf:cli-no-keyword;
2451 tailf:cli-drop-node-name;
2452 tailf:cli-flatten-container;
2453 container exceed-action {
2454 tailf:info "action when rate is within conform and "+
2455 "conform + exceed burst";
2456 description "action when rate is within conform and "+
2457 "conform + exceed burst";
2458 tailf:cli-flatten-container;
2459 uses police-action-transmit-grouping;
2462 container exceed-drop {
2463 tailf:cli-no-keyword;
2464 tailf:cli-drop-node-name;
2465 tailf:cli-flatten-container;
2466 container exceed-action {
2467 tailf:info "action when rate is within conform and "+
2468 "conform + exceed burst";
2469 description "action when rate is within conform and "+
2470 "conform + exceed burst";
2471 tailf:cli-flatten-container;
2472 uses police-action-drop-grouping;
2477 grouping police-violate-action-grouping {
2478 container violate-set-clp-transmit {
2479 tailf:cli-no-keyword;
2480 tailf:cli-drop-node-name;
2481 tailf:cli-flatten-container;
2482 container violate-action {
2483 tailf:info "action when rate is greater than conform + "+
2485 description "action when rate is greater than conform + "+
2487 tailf:cli-flatten-container;
2488 leaf set-clp-transmit {
2489 tailf:info "set atm clp and send it";
2490 description "set atm clp and send it";
2495 container violate-set-cos-transmit {
2496 tailf:cli-no-keyword;
2497 tailf:cli-drop-node-name;
2498 tailf:cli-flatten-container;
2499 container violate-action {
2500 tailf:info "action when rate is greater than conform + "+
2502 description "action when rate is greater than conform + "+
2504 tailf:cli-flatten-container;
2505 leaf set-cos-transmit {
2506 tailf:info "rewrite packet cos and send it";
2507 description "rewrite packet cos and send it";
2508 type cos_value-type;
2512 container violate-set-discard-class-transmit {
2513 tailf:cli-no-keyword;
2514 tailf:cli-drop-node-name;
2515 tailf:cli-flatten-container;
2516 container violate-action {
2517 tailf:info "action when rate is greater than conform + "+
2519 description "action when rate is greater than conform + "+
2521 tailf:cli-flatten-container;
2522 leaf set-discard-class-transmit {
2523 tailf:info "set discard-class and send it";
2524 description "set discard-class and send it";
2526 tailf:info "<0-7>;;new discard-class";
2532 container violate-set-dscp-transmit {
2533 tailf:cli-no-keyword;
2534 tailf:cli-drop-node-name;
2535 tailf:cli-flatten-container;
2536 container violate-action {
2537 tailf:info "action when rate is greater than conform + "+
2539 description "action when rate is greater than conform + "+
2541 tailf:cli-flatten-container;
2542 leaf set-dscp-transmit {
2543 tailf:info "set dscp and send it";
2544 description "set dscp and send it";
2549 container violate-set-frde-transmit {
2550 tailf:cli-no-keyword;
2551 tailf:cli-drop-node-name;
2552 tailf:cli-flatten-container;
2553 container violate-action {
2554 tailf:info "action when rate is greater than conform + "+
2556 description "action when rate is greater than conform + "+
2558 tailf:cli-flatten-container;
2559 leaf set-frde-transmit {
2560 tailf:info "set FR DE and send it";
2561 description "set FR DE and send it";
2566 container violate-set-mpls-exp-imposition-transmit {
2567 tailf:cli-no-keyword;
2568 tailf:cli-drop-node-name;
2569 tailf:cli-flatten-container;
2570 container violate-action {
2571 tailf:info "action when rate is greater than conform + "+
2573 description "action when rate is greater than conform + "+
2575 tailf:cli-flatten-container;
2576 leaf set-mpls-exp-imposition-transmit {
2577 tailf:info "set exp at tag imposition and send it";
2578 description "set exp at tag imposition and send it";
2579 type exp_value-type;
2583 container violate-set-mpls-exp-topmost-transmit {
2584 tailf:cli-no-keyword;
2585 tailf:cli-drop-node-name;
2586 tailf:cli-flatten-container;
2587 container violate-action {
2588 tailf:info "action when rate is greater than conform + "+
2590 description "action when rate is greater than conform + "+
2592 tailf:cli-flatten-container;
2593 leaf set-mpls-exp-topmost-transmit {
2594 tailf:info "set exp on topmost label and send it";
2595 description "set exp on topmost label and send it";
2596 type exp_value-type;
2600 container violate-set-prec-transmit {
2601 tailf:cli-no-keyword;
2602 tailf:cli-drop-node-name;
2603 tailf:cli-flatten-container;
2604 container violate-action {
2605 tailf:info "action when rate is greater than conform + "+
2607 description "action when rate is greater than conform + "+
2609 tailf:cli-flatten-container;
2610 leaf set-prec-transmit {
2611 tailf:info "rewrite packet precedence and send it";
2612 description "rewrite packet precedence and send it";
2613 type prec_value-type;
2617 container violate-set-qos-transmit {
2618 tailf:cli-no-keyword;
2619 tailf:cli-drop-node-name;
2620 tailf:cli-flatten-container;
2621 container violate-action {
2622 tailf:info "action when rate is greater than conform + "+
2624 description "action when rate is greater than conform + "+
2626 tailf:cli-flatten-container;
2627 leaf set-qos-transmit {
2628 tailf:info "set qos-group and send it";
2629 description "set qos-group and send it";
2630 type qos_value-type;
2634 container violate-transmit {
2635 tailf:cli-no-keyword;
2636 tailf:cli-drop-node-name;
2637 tailf:cli-flatten-container;
2638 container violate-action {
2639 tailf:info "action when rate is greater than conform + "+
2641 description "action when rate is greater than conform + "+
2643 tailf:cli-flatten-container;
2644 uses police-action-transmit-grouping;
2647 container violate-drop {
2648 tailf:cli-no-keyword;
2649 tailf:cli-drop-node-name;
2650 tailf:cli-flatten-container;
2651 container violate-action {
2652 tailf:info "action when rate is greater than conform + "+
2654 description "action when rate is greater than conform + "+
2656 tailf:cli-flatten-container;
2657 uses police-action-drop-grouping;
2662 grouping pseudowire-grouping {
2666 grouping random-detect-grouping {
2667 leaf min-threshold {
2668 tailf:cli-drop-node-name;
2669 tailf:cli-incomplete-command;
2672 tailf:info "<1-4096>;;minimum threshold (number of packets)";
2675 leaf max-threshold {
2676 tailf:cli-drop-node-name;
2677 tailf:cli-incomplete-command;
2680 tailf:info "<1-4096>;;maximum threshold (number of packets)";
2684 tailf:cli-drop-node-name;
2687 tailf:info "<1-65535>;;mark probability denominator";
2693 /// ========================================================================
2695 /// ========================================================================
2698 tailf:cli-drop-node-name;
2699 container table-map {
2700 tailf:info "Map external entry attributes into routing table";
2701 tailf:cli-full-command;
2702 description "Map external entry attributes into routing table";
2703 tailf:display-when "ipv4 or ../../ipv4 or ../ipv4 " +
2704 " or ipv6 or ../../ipv6 or ../ipv6 ";
2706 description "route-map name";
2707 tailf:cli-drop-node-name;
2709 tailf:info "WORD;;route-map name";
2713 tailf:info "Selective route download";
2718 /// ========================================================================
2720 /// ========================================================================
2722 container interface {
2723 tailf:info "Configure interfaces";
2724 description "Configure interfaces";
2725 tailf:cli-diff-dependency "/ios:native/vrf";
2726 tailf:cli-explicit-exit;
2728 // interface AppNav-Compress
2729 list AppNav-Compress {
2730 tailf:info "Service-Context Virtual Interface Compress";
2731 description "Service-Context Virtual Interface Compress";
2732 tailf:cli-allow-join-with-key {
2733 tailf:cli-display-joined;
2735 tailf:cli-mode-name "config-if";
2736 tailf:cli-suppress-key-abbreviation;
2740 tailf:info "<1-1000>;;AppNav-Compress interface number";
2744 uses interface-common-grouping;
2746 // interface AppNav-UnCompress
2747 list AppNav-UnCompress {
2748 tailf:info "Service-Context Virtual Interface UnCompress";
2749 description "Service-Context Virtual Interface UnCompress";
2750 tailf:cli-allow-join-with-key {
2751 tailf:cli-display-joined;
2753 tailf:cli-mode-name "config-if";
2754 tailf:cli-suppress-key-abbreviation;
2758 tailf:info "<1-1000>;;AppNav-UnCompress interface number";
2762 uses interface-common-grouping;
2767 tailf:info "ATM interface";
2768 description "ATM interface";
2769 tailf:cli-allow-join-with-key {
2770 tailf:cli-display-joined;
2772 tailf:cli-mode-name "config-if";
2773 tailf:cli-suppress-key-abbreviation;
2777 tailf:info "<slot>/<subslot>/<port>;;ATM interface number";
2778 pattern "([0-9]/){2}([0-9]|(ima[0-9]))(:[0-9])?";
2781 uses interface-atm-grouping;
2784 // subinterface ATM #.#
2785 container ATM-subinterface {
2786 tailf:cli-drop-node-name;
2788 tailf:cli-allow-join-with-key {
2789 tailf:cli-display-joined;
2791 tailf:cli-mode-name "config-subif";
2792 tailf:cli-suppress-key-abbreviation;
2796 pattern "([0-9]/){2}[0-9]\.([0-9]/){3}[0-9]";
2799 uses interface-atm-grouping;
2803 // interface ATM-ACR #
2805 tailf:info "ATM-ACR interface";
2806 description "ATM-ACR interface";
2807 tailf:cli-allow-join-with-key {
2808 tailf:cli-display-joined;
2810 tailf:cli-mode-name "config-if";
2811 tailf:cli-suppress-key-abbreviation;
2815 tailf:info "<slot>/<subslot>/<port>;;ATM-ACR interface number";
2819 uses interface-atm-grouping;
2822 // subinterface ATM-ACR #.#
2823 container ATM-ACRsubinterface {
2824 tailf:cli-drop-node-name;
2826 tailf:cli-allow-join-with-key {
2827 tailf:cli-display-joined;
2829 tailf:cli-mode-name "config-subif";
2830 tailf:cli-suppress-key-abbreviation;
2834 pattern "[0-9]\.([0-9]/){3}[0-9]";
2837 uses interface-atm-grouping;
2842 tailf:info "Bridge-Domain interface";
2843 description "Bridge-Domain interface";
2844 tailf:cli-allow-join-with-key {
2845 tailf:cli-display-joined;
2847 tailf:cli-mode-name "config-if";
2851 // pattern "([0-9])+/([0-9])+(/([0-9])+)?";
2852 tailf:info "<1-16000>;;BDI interface number";
2855 uses interface-common-grouping;
2860 tailf:info "Circuit Emulation interface";
2861 description "Circuit Emulation interface";
2862 tailf:cli-allow-join-with-key {
2863 tailf:cli-display-joined;
2865 tailf:cli-mode-name "config-if";
2866 tailf:cli-suppress-key-abbreviation;
2870 tailf:info "<slot>/<port>;;CEM interface number";
2871 pattern "([0-9]/){2}[0-9]";
2874 uses interface-atm-grouping;
2877 // interface CEM-ACR #
2879 tailf:info "Circuit Emulation interface";
2880 description "Circuit Emulation interface";
2881 tailf:cli-allow-join-with-key {
2882 tailf:cli-display-joined;
2884 tailf:cli-mode-name "config-if";
2885 tailf:cli-suppress-key-abbreviation;
2889 tailf:info "<0-255>;;CEM-ACR interface number";
2893 uses interface-atm-grouping;
2896 // interface Embedded-Service-Engine
2897 list Embedded-Service-Engine {
2898 tailf:info "cisco embedded service engine module";
2899 description "cisco embedded service engine module";
2900 tailf:cli-allow-join-with-key {
2901 tailf:cli-display-joined;
2903 tailf:cli-mode-name "config-if";
2904 // tailf:cli-full-command;
2908 tailf:info "<0-2>/<0-0>;;Embedded-Service-Engine interface number";
2911 uses interface-common-grouping;
2914 // interface FastEthernet
2916 tailf:info "FastEthernet IEEE 802.3";
2917 description "FastEthernet IEEE 802.3";
2918 tailf:cli-allow-join-with-key {
2919 tailf:cli-display-joined;
2921 tailf:cli-mode-name "config-if";
2922 // tailf:cli-full-command;
2926 //pattern "([0-9])+(/([0-9])+)*";
2927 tailf:info "<0-66>/<0-128>;;FastEthernet interface number";
2930 uses interface-ethernet-grouping;
2931 uses interface-common-grouping;
2932 uses interface-zone-member-grouping;
2933 uses interface-switch-grouping; //CATALYST
2936 // interface GigabitEthernet
2937 list GigabitEthernet {
2938 tailf:info "GigabitEthernet IEEE 802.3z";
2939 description "GigabitEthernet IEEE 802.3z";
2940 tailf:cli-allow-join-with-key {
2941 tailf:cli-display-joined;
2943 tailf:cli-mode-name "config-if";
2944 // tailf:cli-full-command;
2948 //pattern "([0-9])+(/([0-9])+)*";
2949 tailf:info "<0-66>/<0-128>;;"+
2950 "GigabitEthernet interface number";
2954 tailf:info "Media type";
2955 description "Media type";
2958 tailf:info "Use whichever connector is attached";
2961 tailf:info "Copper";
2975 uses interface-ethernet-grouping;
2976 uses interface-common-grouping;
2977 uses interface-zone-member-grouping;
2978 uses interface-switch-grouping; //CATALYST
2981 // interface TenGigabitEthernet
2982 list TenGigabitEthernet {
2983 tailf:info "Ten Gigabit Ethernet";
2984 description "Ten Gigabit Ethernet";
2985 tailf:cli-allow-join-with-key {
2986 tailf:cli-display-joined;
2988 tailf:cli-mode-name "config-if";
2989 // tailf:cli-full-command;
2993 //pattern "([0-9])+(/([0-9])+)*";
2994 tailf:info "<0-66>/<0-128>;;"+
2995 "TenGigabitEthernet interface number";
2999 tailf:info "Media type";
3000 description "Media type";
3003 tailf:info "Use whichever connector is attached";
3006 tailf:info "Copper";
3020 uses interface-ethernet-grouping;
3021 uses interface-common-grouping;
3022 uses interface-zone-member-grouping;
3023 uses interface-switch-grouping; //CATALYST
3026 // interface Loopback
3028 // pvh hide Loopback interfaces
3029 // tailf:hidden full;
3030 tailf:info "Loopback interface";
3031 description "Loopback interface";
3032 tailf:cli-allow-join-with-key {
3033 tailf:cli-display-joined;
3035 tailf:cli-mode-name "config-if";
3036 // tailf:cli-full-command;
3040 // pattern "([0-9])+/([0-9])+(/([0-9])+)?";
3041 tailf:info "<0-2147483647>;;Loopback interface number";
3044 uses interface-common-grouping;
3048 tailf:info "Network virtualization endpoint interface";
3049 description "Network virtualization endpoint interface";
3050 tailf:cli-allow-join-with-key {
3051 tailf:cli-display-joined;
3053 tailf:cli-mode-name "config-if";
3057 tailf:info "<1-4096>;;nve interface number";
3062 container source-interface {
3063 tailf:info "Specify source interface for NVE";
3064 description "Specify source interface for NVE";
3065 // FIXME: tailf:cli-diff-dependency "/ios:native/interface";
3066 uses interface-grouping;
3069 tailf:cli-incomplete-command;
3070 tailf:cli-sequence-commands;
3072 tailf:info "Configure VNI information";
3073 description "Configure VNI information";
3074 tailf:cli-sequence-commands;
3075 tailf:cli-compact-syntax;
3080 tailf:info "WORD;;VNI range or instance between 4096-16777215 example: 6010-6030 or 7115";
3083 container mcast-group {
3084 tailf:cli-incomplete-command;
3085 tailf:cli-sequence-commands;
3086 leaf multicast-group-min {
3087 tailf:cli-drop-node-name;
3088 tailf:info "Starting Multicast Group IPv4 Address";
3089 description "Starting Multicast Group IPv4 Address";
3090 type inet:ipv4-address {
3091 tailf:info "A.B.C.D;;IP address";
3094 leaf multicast-group-max {
3095 tailf:cli-drop-node-name;
3096 tailf:info "Ending Multicast Group IPv4 Address";
3097 description "Ending Multicast Group IPv4 Address";
3098 type inet:ipv4-address {
3099 tailf:info "A.B.C.D;;IP address";
3107 // interface overlay
3109 tailf:info "Overlay interface";
3110 description "Overlay interface";
3111 tailf:cli-allow-join-with-key {
3112 tailf:cli-display-joined;
3114 tailf:cli-mode-name "config-if";
3118 tailf:info "<0-512>;;Overlay interface number";
3122 uses interface-common-grouping;
3123 uses interface-ethernet-grouping;
3124 uses interface-overlay-grouping;
3127 // interface Port-channel
3129 tailf:info "Ethernet Channel of interfaces";
3130 description "Ethernet Channel of interfaces";
3131 tailf:cli-allow-join-with-key {
3132 tailf:cli-display-joined;
3134 tailf:cli-mode-name "config-if";
3135 // tailf:cli-full-command;
3139 tailf:info "<1-512>;;Port-channel interface number";
3144 tailf:alt-name "speed";
3145 tailf:info "Configure speed operation.";
3146 description "Configure speed operation.";
3149 tailf:info "Force 10 Mbps operation";
3152 tailf:info "Force 100 Mbps operation";
3155 tailf:info "Enable AUTO speed configuration";
3157 enum "nonegotiate" {
3161 tailf:info "Enable AUTO speed configuration";
3165 uses interface-common-grouping;
3166 uses interface-switch-grouping; //CATALYST
3167 uses interface-ethernet-grouping;
3170 // subinterface Port-channel #.#
3171 container Port-channel-subinterface {
3172 tailf:cli-drop-node-name;
3174 tailf:cli-allow-join-with-key {
3175 tailf:cli-display-joined;
3177 tailf:cli-mode-name "config-subif";
3178 tailf:cli-suppress-key-abbreviation;
3183 uses interface-common-grouping;
3184 uses interface-switch-grouping; //CATALYST
3185 uses interface-ethernet-grouping;
3189 //interface pseudowire
3191 tailf:info "Pseudowire Interface";
3192 description "Pseudowire Interface";
3193 tailf:cli-mode-name "config-if";
3194 tailf:cli-allow-join-with-key {
3195 tailf:cli-display-joined;
3200 tailf:info "<1-231072>;;pseudowire interface number";
3204 uses pseudowire-grouping;
3208 tailf:info "SM Interface";
3209 description "SM Interface";
3210 tailf:cli-mode-name "config-if";
3211 tailf:cli-allow-join-with-key {
3212 tailf:cli-display-joined;
3217 pattern "([0-9])+(/([0-9])+)?";
3220 uses interface-common-grouping;
3222 //interface Cellular
3224 tailf:info "Cellular Interface";
3225 description "Cellular Interface";
3226 tailf:cli-mode-name "config-if";
3227 tailf:cli-allow-join-with-key {
3228 tailf:cli-display-joined;
3233 pattern "([0-9])+(/([0-9])+)?";
3236 uses interface-common-grouping;
3237 uses interface-cellular-grouping;
3242 tailf:info "Catalyst Vlans";
3243 description "Catalyst Vlans";
3244 tailf:cli-allow-join-with-key {
3245 tailf:cli-display-joined;
3250 tailf:info "<1-4094>;;Vlan interface number";
3254 uses interface-common-grouping;
3255 uses interface-zone-member-grouping;
3258 // interface Group-Async
3260 tailf:info "Async Group interface";
3261 description "Async Group interface";
3262 tailf:cli-allow-join-with-key {
3263 tailf:cli-display-joined;
3268 tailf:info "<0-64>;;Group-Async interface number";
3272 leaf physical-layer {
3273 tailf:info "Configure sync or async physical layer on serial "+
3275 description "Configure sync or async physical layer on serial "+
3279 tailf:info "Configure asynchronous physical layer on serial "
3283 tailf:info "Configure synchronous physical layer on serial "+
3288 uses interface-common-grouping;
3291 // interface Multilink
3293 tailf:info "Multilink-group interface";
3294 description "Multilink-group interface";
3295 tailf:cli-allow-join-with-key {
3296 tailf:cli-display-joined;
3298 tailf:cli-mode-name "config-if";
3299 tailf:cli-full-command;
3303 tailf:info "<1-65535>;;Multilink interface number";
3307 uses interface-common-grouping;
3308 uses interface-pointtopoint-grouping;
3313 tailf:info "Serial interface";
3314 description "Serial interface";
3315 tailf:cli-allow-join-with-key {
3316 tailf:cli-display-joined;
3318 tailf:cli-mode-name "config-if";
3319 tailf:cli-full-command;
3323 pattern "([0-9])+/([0-9])+/([0-9])+\.([0-9])+/([0-9])+/([0-9])+/([0-9])+:([0-9])";
3324 //FIXME: info + syntax
3327 uses interface-common-grouping;
3328 uses interface-pointtopoint-grouping;
3331 // interface Tunnel #
3333 tailf:info "Tunnel interface";
3334 description "Tunnel interface";
3335 tailf:cli-allow-join-with-key {
3336 tailf:cli-display-joined;
3338 tailf:cli-mode-name "config-if";
3339 tailf:cli-suppress-key-abbreviation;
3343 tailf:info "<0-2147483647>;;Tunnel interface number";
3346 uses interface-common-grouping;
3348 // interface Tunnel* / qos
3350 tailf:info "Quality of Service related commands";
3351 description "Quality of Service related commands";
3353 tailf:info "Enable QOS classification before packets are tunnel "+
3355 description "Enable QOS classification before packets are tunnel "+
3361 // interface Tunnel* / tunnel
3362 uses interface-tunnel-grouping;
3365 // interface Virtual-Template
3366 list Virtual-Template {
3367 tailf:info "Virtual Template interface";
3368 description "Virtual Template interface";
3369 tailf:cli-allow-join-with-key {
3370 tailf:cli-display-joined;
3372 tailf:cli-mode-name "config-if";
3373 tailf:cli-full-command;
3374 tailf:cli-explicit-exit;
3378 tailf:info "<1-4095>;;Virtual-Template interface number";
3383 tailf:info "type of the virtual-template";
3384 description "type of the virtual-template";
3385 tailf:cli-hide-in-submode;
3388 tailf:info "Set VT type as ethernet";
3391 tailf:info "Set VT type as serial";
3394 tailf:info "Set VT type as tunnel";
3397 tailf:info "Set VT type as vpn";
3402 uses interface-ethernet-grouping;
3403 uses interface-common-grouping;
3404 uses interface-zone-member-grouping;
3405 uses interface-switch-grouping; //CATALYST
3406 uses interface-pointtopoint-grouping;
3407 // interface Tunnel* / tunnel
3408 uses interface-tunnel-grouping;
3411 // interface VirtualPortGroup
3412 list VirtualPortGroup {
3413 tailf:info "Virtual Port Group";
3414 description "Virtual Port Group";
3415 tailf:cli-allow-join-with-key {
3416 tailf:cli-display-joined;
3418 tailf:cli-mode-name "config-if";
3419 tailf:cli-full-command;
3420 tailf:cli-explicit-exit;
3424 tailf:info " <0-31>;;VirtualPortGroup interface number";
3428 uses interface-switch-grouping; //CATALYST
3429 uses interface-ethernet-grouping;
3430 uses interface-common-grouping;
3432 // interface vasileft
3434 tailf:info "vasileft";
3435 description "vasileft";
3436 tailf:cli-allow-join-with-key {
3437 tailf:cli-display-joined;
3439 tailf:cli-mode-name "config-if";
3440 tailf:cli-full-command;
3441 tailf:cli-explicit-exit;
3445 tailf:info "<1-2000>;;vasileft interface number";
3449 uses interface-switch-grouping; //CATALYST
3450 uses interface-ethernet-grouping;
3451 uses interface-common-grouping;
3454 // interface vasiright
3456 tailf:info "vasiright";
3457 description "vasiright";
3458 tailf:cli-allow-join-with-key {
3459 tailf:cli-display-joined;
3461 tailf:cli-mode-name "config-if";
3462 tailf:cli-full-command;
3463 tailf:cli-explicit-exit;
3467 tailf:info "<1-2000>;;vasiright interface number";
3471 uses interface-switch-grouping; //CATALYST
3472 uses interface-ethernet-grouping;
3473 uses interface-common-grouping;
3478 /// ========================================================================
3480 /// ========================================================================
3481 /// Note: must come before class-map and policy-map.
3484 tailf:info "mls global commands";
3485 description "mls global commands";
3486 tailf:cli-incomplete-no;
3490 tailf:info "MLS ACL operation";
3491 description "MLS ACL operation";
3494 tailf:info "ACL TCAM";
3495 description "ACL TCAM";
3496 leaf default-result {
3497 tailf:info "Default result to be used during tcam programming";
3498 description "Default result to be used during tcam programming";
3501 tailf:info "Bridge result";
3504 tailf:info "Deny result";
3507 tailf:info "Permit result";
3511 container log-update {
3512 tailf:info "Log TCAM updates";
3513 description "Log TCAM updates";
3515 leaf rate-limit-msg {
3516 tailf:info "Enable/Disable syslog ratelimiting";
3517 description "Enable/Disable syslog ratelimiting";
3520 tailf:info "Disable ratelimiting syslog";
3523 tailf:info "Enable syslog ratelimiting at 1 per second";
3529 tailf:info "share global deny or permit any entries";
3530 description "share global deny or permit any entries";
3531 tailf:cli-boolean-no;
3532 tailf:cli-trim-default;
3542 tailf:info "cef keyword";
3543 description "cef keyword";
3551 // maximum-routes Configure route allocation for protocols
3552 // tunnel Allow tunnel fragmentation
3554 // erm FIB Exception Recovery Manager
3555 // exclude exclude keyword
3558 tailf:info "flowmask keyword";
3559 description "flowmask keyword";
3561 tailf:info "flowmask ip keyword";
3562 description "flowmask ip keyword";
3564 enum interface-destination {
3565 tailf:info "interface-destination flow keyword";
3567 enum interface-destination-source {
3568 tailf:info "interface-destination-source flow keyword";
3570 enum interface-full {
3571 tailf:info "interface-full flow keyword";
3573 enum interface-source {
3574 tailf:info "interface-source only flow keyword";
3581 tailf:info "ip keyword";
3582 description "ip keyword";
3586 container multicast {
3587 tailf:info "multicast keyword";
3588 description "multicast keyword";
3589 tailf:cli-display-separated;
3591 // bidir Bidir commands
3592 // connected Enable download of interface/mask entry
3593 container consistency-check {
3594 tailf:info "Set consistency checking characteristics";
3595 description "Set consistency checking characteristics";
3598 tailf:info "Settle time for entry/oif for consistancy-checker";
3599 description "Settle time for entry/oif for consistancy-checker";
3601 tailf:info "<2-3600>;;Settle time for entry/oif in seconds";
3605 // type Set consistency checker type
3607 // egress Set egress replication options
3608 leaf flow-stat-timer {
3609 tailf:info "timer for flow statistic used by mls-msc and mlsm";
3610 description "timer for flow statistic used by mls-msc and mlsm";
3612 tailf:info "<1-100>;;#seconds between one batch and another";
3616 // met-optimization Enable or disable met optimisation
3617 // non-rpf Enable rate-limiting of non-RPF traffic
3618 // replication-mode Disable auto-detection mode for egress
3619 // sso Stateful switchover parameters
3620 // threshold Threshold rate for installing h/w shortcuts
3623 // slb Server Load Balancing
3625 // nde netflow data export (nde) keyword
3626 // netflow netflow keyword
3628 container mls-qos-conf {
3629 tailf:cli-no-keyword;
3630 tailf:cli-drop-node-name;
3637 tailf:info "QoS parameters";
3638 description "QoS parameters";
3639 tailf:cli-incomplete-command;
3640 tailf:cli-incomplete-no;
3641 // mls qos aggregate-policer *
3642 list aggregate-policer {
3643 tailf:info "Assign aggregate policer";
3644 description "Assign aggregate policer";
3645 tailf:cli-suppress-mode;
3646 tailf:cli-delete-when-empty;
3647 tailf:cli-compact-syntax;
3648 tailf:cli-sequence-commands {
3649 tailf:cli-reset-all-siblings;
3654 tailf:info "WORD;;aggregate policer name";
3657 leaf target-bit-rate {
3658 tailf:cli-drop-node-name;
3660 tailf:info "<32000-60000000000>;;Target Bit Rate (bits per "
3661 +"second) (postfix k, m, g optional; decimal point allowed)";
3662 range "32000..60000000000";
3666 tailf:cli-drop-node-name;
3667 tailf:cli-optional-in-sequence;
3669 tailf:info "<1000-31250000>;;Normal burst bytes";
3670 range "1000..31250000";
3674 tailf:cli-drop-node-name;
3675 tailf:cli-optional-in-sequence;
3676 when "../burst-normal" {
3677 tailf:dependency "../burst-normal";
3680 tailf:info "<1000-31250000>;;Maximum burst bytes";
3681 range "1000..31250000";
3687 tailf:cli-optional-in-sequence;
3689 tailf:info "<32000-60000000000>;;Target Bit Rate (bits per "
3690 +"second) (postfix k, m, g optional; decimal point allowed)";
3691 range "32000..60000000000";
3694 container conform-action {
3695 tailf:info "action when rate is not exceeded";
3696 description "action when rate is not exceeded";
3697 tailf:cli-optional-in-sequence;
3698 tailf:cli-compact-syntax;
3699 tailf:cli-flatten-container;
3700 choice action-choice {
3702 tailf:info "drop packet";
3703 description "drop packet";
3706 leaf set-dscp-transmit {
3707 tailf:info "set dscp and send it";
3708 description "set dscp and send it";
3711 leaf set-mpls-exp-imposition-transmit {
3712 tailf:info "set exp at tag imposition and send it";
3713 description "set exp at tag imposition and send it";
3715 tailf:info "<0-7>;;new exp";
3719 leaf set-prec-transmit {
3720 tailf:info "rewrite packet precedence and send it";
3721 description "rewrite packet precedence and send it";
3723 tailf:info "<0-7>;;new precedence";
3728 tailf:info "transmit packet";
3729 description "transmit packet";
3734 leaf exceed-action {
3735 tailf:info "action when rate is exceeded";
3736 description "action when rate is exceeded";
3737 tailf:cli-optional-in-sequence;
3740 tailf:info "drop packet";
3742 enum policed-dscp-transmit {
3743 tailf:info "change dscp per policed-dscp map and send it";
3746 tailf:info "transmit packet";
3750 leaf violate-action {
3751 tailf:info "action when rate violated";
3752 description "action when rate violated";
3755 tailf:info "drop packet";
3757 enum policed-dscp-transmit {
3758 tailf:info "change dscp per policed-dscp map and send it";
3761 tailf:info "transmit packet";
3766 // map Define QoS mapping
3769 tailf:info "qos map keyword";
3770 description "qos map keyword";
3771 leaf-list cos-dscp {
3772 tailf:info "cos-dscp map: eight dscp values for cos 0-7";
3773 description "cos-dscp map: eight dscp values for cos 0-7";
3774 tailf:cli-flat-list-syntax;
3777 tailf:info "<0-63>;;CoS values separated by spaces (up to 8 values total)";
3781 leaf-list policed-dscp {
3782 tailf:info "policed-dscp map keyword";
3783 description "policed-dscp map keyword";
3785 tailf:cli-flat-list-syntax;
3788 tailf:info "<0-63>;;DSCP values separated by spaces (up to 8 values total)";
3793 tailf:info "to keyword";
3799 // marking marking keyword
3800 // police police keyword
3801 // protocol protocol keyword
3802 // queueing-only queueing-only (no QoS rewrite, no policing)
3803 // recirc recirculate path
3806 tailf:info "packet qos rewrite enable/disable";
3807 description "packet qos rewrite enable/disable";
3809 tailf:info "ip packet qos rewrite enable/disable";
3810 description "ip packet qos rewrite enable/disable";
3812 tailf:info "packet ip dscp rewrite enable/disable";
3813 description "packet ip dscp rewrite enable/disable";
3816 tailf:info "slot number";
3817 description "slot number";
3819 tailf:info "WORD;;Slots seperated by commas. Valid slots: 1,2,"
3826 // mls qos queue-set
3827 container queue-set {
3828 tailf:info "Choose a queue set for this queue";
3829 description "Choose a queue set for this queue";
3831 tailf:info "Direction the command applies for this command";
3832 description "Direction the command applies for this command";
3833 tailf:cli-sequence-commands;
3834 tailf:cli-compact-syntax;
3836 tailf:cli-drop-node-name;
3838 tailf:info "<1-2>;;queue-set id";
3843 tailf:info "Assign threshold values to a queue";
3844 description "Assign threshold values to a queue";
3845 tailf:cli-suppress-mode;
3846 tailf:cli-break-sequence-commands;
3847 tailf:cli-compact-syntax;
3848 tailf:cli-sequence-commands;
3852 tailf:info "<1-4>;;enter queue id in this queue set";
3857 tailf:cli-drop-node-name;
3858 description "drop threshold1 1-3200";
3860 tailf:info "<1-3200>;;enter drop threshold1 1-3200";
3865 tailf:cli-drop-node-name;
3866 description "drop threshold2 1-3200";
3868 tailf:info "<1-3200>;;enter drop threshold2 1-3200";
3873 tailf:cli-drop-node-name;
3874 description "reserved threshold 1-100";
3876 tailf:info "<1-3200>;;enter drop threshold2 1-3200";
3881 tailf:cli-drop-node-name;
3882 description "maximum threshold1 1-3200";
3884 tailf:info "<1-3200>;;enter maximum threshold1 1-3200";
3890 tailf:info "assign buffers to each egress queue";
3891 description "assign buffers to each egress queue";
3892 tailf:cli-flat-list-syntax;
3894 tailf:info "<0-99>/<1-100>;;enter buffer percentage for queue x 0-99/2 1-100";
3900 // mls qos srr-queue
3901 container srr-queue {
3902 tailf:info "Configure SRR receive queues";
3903 description "Configure SRR receive queues";
3905 tailf:info "input keyword";
3906 description "input keyword";
3907 leaf-list bandwidth {
3908 tailf:info "Configure SRR bandwidth";
3909 description "Configure SRR bandwidth";
3910 tailf:cli-flat-list-syntax;
3912 tailf:info "<1-100>;;enter bandwidth weight for queue id x";
3917 tailf:info "Configure queue tail-drop thresholds";
3918 description "Configure queue tail-drop thresholds";
3919 tailf:cli-suppress-mode;
3923 tailf:info "<1-2>;;enter threshold queue id (1-2)";
3927 leaf-list queue-size-percent {
3928 tailf:cli-drop-node-name;
3929 tailf:cli-flat-list-syntax;
3931 tailf:info "<1-100>;;enter percent of queue size for threshold x";
3936 list priority-queue {
3937 tailf:info "Configure priority scheduling";
3938 description "Configure priority scheduling";
3939 tailf:cli-suppress-mode;
3943 tailf:info "<1-2>;;enter priority queue number [1-2]";
3947 tailf:info "ingress priority queue bandwidth % of stack ring";
3948 description "ingress priority queue bandwidth % of stack ring";
3950 tailf:info "<0-40>;;enter bandwidth number [0-40]";
3956 tailf:info "Configure cos-map for a queue id";
3957 description "Configure cos-map for a queue id";
3958 tailf:cli-suppress-mode;
3959 key "queue threshold";
3961 tailf:info "Assign COS values to a queue";
3962 description "Assign COS values to a queue";
3963 tailf:cli-expose-key-name;
3965 tailf:info "<1-4>;;enter cos-map output queue id";
3970 tailf:info "Assign COS values to a queue threshold";
3971 description "Assign COS values to a queue threshold";
3972 tailf:cli-expose-key-name;
3974 tailf:info "<1-3>;;enter cos-map threshold id";
3979 tailf:cli-drop-node-name;
3980 tailf:cli-flat-list-syntax;
3983 tailf:info "<0-7>;;8 cos values separated by spaces";
3989 tailf:info "Configure dscp-map for a queue id";
3990 description "Configure dscp-map for a queue id";
3991 tailf:cli-suppress-mode;
3992 key "queue threshold";
3994 tailf:info "Assign DSCP values to a queue";
3995 description "Assign DSCP values to a queue";
3996 tailf:cli-expose-key-name;
3998 tailf:info "<1-4>;;enter dscp-map output queue id";
4003 tailf:info "Assign DSCP values to a queue threshold";
4004 description "Assign DSCP values to a queue threshold";
4005 tailf:cli-expose-key-name;
4007 tailf:info "<1-3>;;enter dscp-map threshold id";
4012 tailf:cli-drop-node-name;
4013 tailf:cli-flat-list-syntax;
4016 tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
4023 tailf:info "output keyword";
4024 description "output keyword";
4026 tailf:info "Configure cos-map for a queue id";
4027 description "Configure cos-map for a queue id";
4028 tailf:cli-suppress-mode;
4029 key "queue threshold";
4031 tailf:info "Assign COS values to a queue";
4032 description "Assign COS values to a queue";
4033 tailf:cli-expose-key-name;
4035 tailf:info "<1-4>;;enter cos-map output queue id";
4040 tailf:info "Assign COS values to a queue threshold";
4041 description "Assign COS values to a queue threshold";
4042 tailf:cli-expose-key-name;
4044 tailf:info "<1-3>;;enter cos-map threshold id";
4049 tailf:cli-drop-node-name;
4050 tailf:cli-flat-list-syntax;
4053 tailf:info "<0-7>;;8 cos values separated by spaces";
4059 tailf:info "Configure dscp-map for a queue id";
4060 description "Configure dscp-map for a queue id";
4061 tailf:cli-suppress-mode;
4062 key "queue threshold";
4064 tailf:info "Assign DSCP values to a queue";
4065 description "Assign DSCP values to a queue";
4066 tailf:cli-expose-key-name;
4068 tailf:info "<1-4>;;enter dscp-map output queue id";
4073 tailf:info "Assign DSCP values to a queue threshold";
4074 description "Assign DSCP values to a queue threshold";
4075 tailf:cli-expose-key-name;
4077 tailf:info "<1-3>;;enter dscp-map threshold id";
4082 tailf:cli-drop-node-name;
4083 tailf:cli-flat-list-syntax;
4086 tailf:info "<0-63>;;dscp values separated by spaces (up to 8 values total)";
4094 // statistics-export qos statistics data export
4096 container rate-limit {
4097 tailf:info "Rate limit different behaviors";
4098 description "Rate limit different behaviors";
4099 // all Rate Limiting for both Unicast and Multicast packets
4101 tailf:info "layer2 protocol cases";
4102 description "layer2 protocol cases";
4103 // ip-admission IP admission on Layer2 ports
4105 tailf:cli-compact-syntax;
4106 tailf:cli-sequence-commands {
4107 tailf:cli-reset-siblings;
4109 tailf:info "layer2 protocol tunnelling packets";
4110 leaf packets-per-second {
4111 description "layer2 protocol tunnelling packets";
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 // mac-security Mac security traffics
4128 tailf:info "layer2 protocol data unit packets";
4129 description "layer2 protocol data unit packets";
4130 tailf:cli-compact-syntax;
4131 tailf:cli-sequence-commands {
4132 tailf:cli-reset-siblings;
4134 leaf packets-per-second {
4135 tailf:cli-drop-node-name;
4137 tailf:info "<10-1000000>;;packets per second";
4138 range "10..1000000";
4141 leaf packets-in-burst {
4142 tailf:cli-drop-node-name;
4144 tailf:info "<1-255>;;packets in burst";
4149 // port-security Port security traffics
4151 // multicast Rate limiting for Multicast packets
4152 // unicast Rate limiting for Unicast packets
4155 // sampling sampling keyword
4158 tailf:info "enable hardware packet parsing error checks";
4159 description "enable hardware packet parsing error checks";
4161 tailf:info "check on IP packets";
4162 description "check on IP packets";
4164 tailf:info "check for packet checksum errors";
4165 description "check for packet checksum errors";
4166 tailf:cli-boolean-no;
4167 tailf:cli-trim-default;
4171 container "length" {
4172 tailf:info "check for packet length errors";
4173 description "check for packet length errors";
4175 tailf:info "check length in header against physical frame length";
4176 description "check length in header against physical frame length";
4177 tailf:cli-boolean-no;
4178 tailf:cli-trim-default;
4183 tailf:info "check for minimum packet length";
4184 description "check for minimum packet length";
4185 tailf:cli-boolean-no;
4186 tailf:cli-trim-default;
4192 tailf:info "check for packet having equal source and destination IP "
4194 description "check for packet having equal source and destination IP "
4199 tailf:info "syslog packet parse errors";
4200 description "syslog packet parse errors";
4207 /// ========================================================================
4209 /// ========================================================================
4210 // Note: must come before class-map and policy-map.
4213 tailf:info "Switch policer";
4214 description "Switch policer";
4215 // policer aggregate *
4217 tailf:info "Named aggregate policer";
4218 description "Named aggregate policer";
4219 tailf:cli-suppress-mode;
4220 tailf:cli-delete-when-empty;
4221 tailf:cli-compact-syntax;
4222 tailf:cli-reset-container;
4223 tailf:cli-sequence-commands {
4224 tailf:cli-reset-siblings;
4229 tailf:info "WORD;;aggregate policer Name";
4234 tailf:info "Committed information rate";
4235 description "Committed information rate";
4237 tailf:info "<8000-1000000000>;;Bits per second";
4238 range "8000..1000000000";
4243 tailf:info "Conform burst";
4244 description "Conform burst";
4245 tailf:cli-optional-in-sequence;
4247 tailf:info "<8000-1000000000>;;Burst bytes";
4248 range "8000..1000000000";
4252 leaf conform-action {
4253 tailf:info "action when rate is within conform and conform + "+
4255 description "action when rate is within conform and conform + "+
4257 tailf:cli-optional-in-sequence;
4260 leaf set-qos-transmit {
4261 tailf:info "set qos-group and send it";
4262 description "set qos-group and send it";
4263 when "../conform-action";
4264 tailf:cli-optional-in-sequence;
4266 tailf:info "<0-99>;;new qos-group";
4270 leaf set-dot1ad-dei-transmit {
4271 tailf:info "set dei and send it";
4272 description "set dei and send it";
4273 when "../conform-action";
4274 tailf:cli-optional-in-sequence;
4276 tailf:info "<0-1>;;new dei value";
4280 leaf set-prec-transmit {
4281 tailf:info "rewrite packet precedence and send it";
4282 description "rewrite packet precedence and send it";
4283 when "../conform-action";
4284 tailf:cli-optional-in-sequence;
4285 type prec_value-type;
4287 container set-prec-transmit-table {
4288 when "../set-prec-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-dscp-transmit {
4304 tailf:info "set dscp and send it";
4305 description "set dscp and send it";
4306 when "../conform-action";
4307 tailf:cli-optional-in-sequence;
4310 container set-dscp-transmit-table {
4311 when "../set-dscp-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";
4326 leaf set-cos-transmit {
4327 tailf:info "set cos and send it";
4328 description "set cos and send it";
4329 when "../conform-action";
4330 tailf:cli-optional-in-sequence;
4331 type cos_value-type;
4333 container set-cos-transmit-table {
4334 when "../set-cos-transmit";
4335 tailf:cli-no-keyword;
4336 tailf:cli-drop-node-name;
4337 tailf:cli-optional-in-sequence;
4338 tailf:cli-flatten-container;
4340 tailf:info "Set packet cos from cos based on table map";
4341 description "Set packet cos from cos based on table map";
4342 tailf:cli-optional-in-sequence;
4344 tailf:non-strict-leafref {
4345 path "/ios:native/table-map/name";
4350 tailf:info "transmit packet";
4351 description "transmit packet";
4352 when "../conform-action";
4353 tailf:cli-optional-in-sequence;
4357 leaf exceed-action {
4358 tailf:info "action when rate is within conform and conform + "+
4360 description "action when rate is within conform and conform + "+
4365 tailf:info "drop packet";
4366 description "drop packet";
4367 when "../exceed-action";
4368 tailf:cli-optional-in-sequence;
4369 tailf:cli-full-command;
4372 container exceed-transmit {
4373 tailf:cli-no-keyword;
4374 tailf:cli-drop-node-name;
4375 tailf:cli-optional-in-sequence;
4376 tailf:cli-flatten-container;
4378 tailf:info "transmit packet";
4379 description "transmit packet";
4380 when "../../exceed-action";
4381 tailf:cli-optional-in-sequence;
4388 /// ========================================================================
4390 /// ========================================================================
4393 tailf:info "Configure QoS Class Map";
4394 description "Configure QoS Class Map";
4395 tailf:cli-mode-name "config-cmap";
4396 tailf:cli-suppress-list-no;
4397 tailf:cli-delete-when-empty;
4398 tailf:cli-no-key-completion;
4403 tailf:info "WORD;;class-map name";
4405 tailf:cli-disallow-value "type";
4407 // class-map * type inspect
4409 tailf:info "type of the class-map";
4410 description "type of the class-map";
4411 tailf:cli-prefix-key;
4413 enum access-control {
4414 tailf:info "access-control specific class-map";
4417 tailf:info "Configure a APPNAV Class Map";
4420 tailf:info "Configure a control policy class-map";
4423 tailf:info "Configure Firewall Class Map";
4425 enum multicast-flows {
4426 tailf:info "multicast class-maps";
4429 tailf:info "class-map for protocol header stack specification";
4432 tailf:info "Configure a subscriber policy traffic classmap";
4436 // class-map * <protocol>
4438 when "../type = 'inspect'";
4439 tailf:cli-drop-node-name;
4440 tailf:cli-prefix-key;
4443 tailf:info "Configure CBAC class-map for IM-AOL protocol";
4446 tailf:info "eDonkey";
4449 tailf:info "FastTrack Traffic - KaZaA, Morpheus, Grokster...";
4452 tailf:info "Gnutella Version2 Traffic - BearShare, Shareeza, "
4456 tailf:info "Configure CBAC class-map for HTTP protocol";
4459 tailf:info "Configure CBAC class-map for IMAP protocol";
4462 tailf:info "Kazaa Version 2";
4465 tailf:info "Configure CBAC class-map for IM-MSN protocol";
4468 tailf:info "Configure CBAC class-map for POP3 protocol";
4471 tailf:info "Configure CBAC class-map for SMTP protocol";
4474 tailf:info "Configure CBAC class-map for RPC protocol";
4477 tailf:info "Configure CBAC class-map for IM-YAHOO protocol";
4481 // class-map * <match-any|match-all>
4483 tailf:cli-no-keyword;
4484 tailf:cli-prefix-key;
4485 tailf:cli-drop-node-name;
4488 tailf:info "Logical-AND all matching statements under "+
4492 tailf:info "Logical-OR all matching statements under this "+
4498 // class-map * / description
4499 leaf "description" {
4500 tailf:info "Class-Map description";
4501 description "Class-Map description";
4502 tailf:cli-multi-value;
4504 tailf:info "LINE;;Description of this class-map (up to 200 "+
4508 // class-map * / match
4510 tailf:info "classification criteria";
4511 description "classification criteria";
4512 uses class-map-match-grouping;
4513 uses class-map-appnav-match-grouping;
4515 tailf:info "Negate this match result";
4516 description "Negate this match result";
4517 uses class-map-match-grouping;
4518 uses class-map-appnav-not-match-grouping;
4523 /// ========================================================================
4525 /// ========================================================================
4528 tailf:info "Configure QoS Policy Map";
4529 description "Configure QoS Policy Map";
4530 tailf:cli-mode-name "config-pmap";
4531 tailf:cli-diff-dependency "/ios:native/class-map";
4532 tailf:cli-diff-dependency "/ios:native/table-map";
4533 tailf:cli-diff-dependency "/ios:native/mls/qos/aggregate-policer";
4534 tailf:cli-diff-dependency "/ios:native/policer/aggregate";
4538 tailf:info "WORD;;policy-map name";
4540 tailf:cli-disallow-value
4541 "(type)|(http)|(im)|(imap)|(p2p)|(pop3)|(smtp)|(sunrpc)";
4544 tailf:info "type of the policy-map";
4545 description "type of the policy-map";
4546 tailf:cli-prefix-key;
4548 enum access-control {
4549 tailf:info "access-control specific policy-map";
4552 tailf:info "Configure a APPNAV Policy Map";
4555 tailf:info "Configure Firewall Policy Map";
4557 enum packet-service {
4558 tailf:info "Configure Packet Service Policy Map";
4560 enum performance-monitor {
4561 tailf:info "Performance monitoring policy-map type";
4564 tailf:info "policymap service configuration";
4566 enum service-chain {
4567 tailf:info "Configure Service Chain Policy Map";
4572 when "../type = 'inspect'";
4573 tailf:cli-drop-node-name;
4574 tailf:cli-prefix-key;
4577 tailf:info "Configure CBAC policy-map for HTTP protocol";
4580 tailf:info "Configure CBAC policy-map for IM protocol";
4583 tailf:info "Configure CBAC policy-map for IMAP protocol";
4586 tailf:info "Configure CBAC policy-map for P2P protocols";
4589 tailf:info "Configure CBAC policy-map for POP3 protocol";
4592 tailf:info "Configure CBAC policy-map for SMTP protocol";
4595 tailf:info "Configure CBAC policy-map for RPC protocol";
4599 // policy-map * / class *
4601 tailf:info "policy criteria";
4602 description "policy criteria";
4603 tailf:cli-mode-name "config-pmap-c";
4606 tailf:cli-disallow-value "type";
4607 type class-name-type;
4609 // policy-map * / class * / type
4611 tailf:info "type of the class-map";
4612 description "type of the class-map";
4613 tailf:cli-prefix-key;
4616 tailf:info "Configure CBAC Class Map";
4620 leaf insert-before {
4621 tailf:info "Insert the class before a specified class";
4622 description "Insert the class before a specified class";
4623 tailf:cli-hide-in-submode;
4624 when "../../type = 'appnav'";
4626 tailf:info "WORD;;Insert the class before a specified class";
4629 // policy-map * / class * / appnav policy
4630 container appnav-policy {
4631 when "../../type = 'appnav'";
4632 tailf:cli-drop-node-name;
4634 tailf:info "Distribute action";
4635 description "Distribute action";
4636 tailf:cli-suppress-mode;
4637 key service-node-group;
4638 leaf service-node-group {
4639 tailf:info "Distribute to service-node-group";
4640 description "Distribute to service-node-group";
4641 tailf:cli-expose-key-name;
4643 tailf:info "WORD;;service-node-group name";
4646 leaf insert-before {
4647 tailf:info "Insert before specific node";
4648 description "Insert before specific node";
4649 tailf:cli-optional-in-sequence;
4651 tailf:info "WORD;;service-node-group name";
4656 tailf:info "Monitor AO";
4657 description "Monitor AO";
4658 when "../distribute";
4660 enum MS-port-mapper {
4661 tailf:info "Monitor Microsoft Endpoint Port Mapper load";
4664 tailf:info "Monitor CIFS Accelerator load";
4667 tailf:info "Monitor HTTP Accelerator load";
4670 tailf:info "Monitor ICA Accelerator load";
4673 tailf:info "Monitor MAPI Accelerator load";
4676 tailf:info "Monitor NFS Accelerator load";
4679 tailf:info "Monitor SSL accelerator load";
4682 tailf:info "Monitor Video Accelerator load";
4687 tailf:info "pass-through action";
4688 description "pass-through action";
4692 // policy-map * / class * / inspect policy
4694 when "../../type = 'inspect'";
4695 tailf:cli-drop-node-name;
4696 tailf:cli-sequence-commands {
4697 tailf:cli-reset-siblings;
4700 tailf:cli-drop-node-name;
4701 tailf:cli-remove-before-change;
4704 tailf:info "CXSC Inspection";
4707 tailf:info "Drop the packet";
4710 tailf:info "Context-based Access Control Engine";
4713 tailf:info "Pass the packet";
4715 enum service-policy {
4716 tailf:info "Deep Packet Inspection Engine";
4721 tailf:info "Send logging message for drop or pass";
4722 description "Send logging message for drop or pass";
4723 when "../action = 'drop'or ../action = 'pass'";
4726 leaf parameter-map {
4727 tailf:cli-drop-node-name;
4728 when "../action = 'inspect' or ../action = 'cxsc'";
4730 tailf:non-strict-leafref {
4731 path "/ios:native/parameter-map/name";
4735 tailf:cli-drop-node-name;
4736 when "../action = 'service-policy'";
4737 tailf:cli-sequence-commands;
4738 tailf:cli-compact-syntax;
4740 tailf:cli-drop-node-name;
4743 tailf:info "GTPv0 DPI";
4746 tailf:info "GTPv1 DPI";
4749 tailf:info "IMAP DPI";
4752 tailf:info "POP3 DPI";
4755 tailf:info "SMTP DPI";
4758 tailf:info "RPC DPI";
4763 tailf:cli-drop-node-name;
4765 tailf:info "WORD;;DPI policy-map name";
4770 // policy-map * / class * / performance-monitor policy
4771 container pm-policy {
4772 when "../../type = 'performance-monitor'";
4773 tailf:cli-drop-node-name;
4775 tailf:info "Flow subcommands";
4776 description "Flow subcommands";
4778 tailf:info "Apply a Flow Monitor";
4779 description "Apply a Flow Monitor";
4781 tailf:info "WORD;;Flow monitor name";
4786 tailf:info "Monitor related parameters";
4787 description "Monitor related parameters";
4789 tailf:info "Monitor metric";
4790 description "Monitor metric";
4792 tailf:info "RTP metrics parameters";
4793 description "RTP metrics parameters";
4795 tailf:cli-mode-name "config-pmap-c-mrtp";
4797 tailf:info "RTP timestamp field's sampling frequency";
4798 description "RTP timestamp field's sampling frequency";
4799 tailf:cli-suppress-mode;
4800 tailf:cli-sequence-commands;
4801 tailf:cli-compact-syntax;
4806 tailf:info "<0-127>;;payload type number";
4811 tailf:info "CELB(25)";
4814 tailf:info "CN(13)";
4817 tailf:info "Change the default clock rate for all the dynamic payload type";
4820 tailf:info "DVI4 RFC-3551 8000Hz(5)";
4823 tailf:info "DVI4 RFC-3551 16000Hz(6)";
4826 tailf:info "DVI4 Dipol 11025Hz(16)";
4829 tailf:info "DVI4 Dipol 22050Hz(17)";
4832 tailf:info "G722(9)";
4835 tailf:info "G723(4)";
4838 tailf:info "G728(15)";
4841 tailf:info "G729(18)";
4844 tailf:info "GSM(3)";
4847 tailf:info "H261(31)";
4850 tailf:info "H263(34)";
4853 tailf:info "JPEG(26)";
4856 tailf:info "L16 channel 1(11)";
4859 tailf:info "L16 channel 2(10)";
4862 tailf:info "LPC(7)";
4865 tailf:info "MP2T(33)";
4868 tailf:info "MPA(14)";
4871 tailf:info "MPV(32)";
4874 tailf:info "NV(28)";
4877 tailf:info "PCMA(8)";
4880 tailf:info "PCMU(0)";
4883 tailf:info "QCELP(12)";
4889 tailf:cli-drop-node-name;
4891 tailf:info "<1000-192000>;;frequency in Hz";
4892 range "1000..192000";
4900 tailf:info "Configure threshold crossing actions";
4901 description "Configure threshold crossing actions";
4902 tailf:cli-mode-name "config-pmap-c-react";
4906 tailf:info "<1-65535> React instance id";
4910 tailf:cli-drop-node-name;
4911 tailf:cli-hide-in-submode;
4914 tailf:info "Media stream stopped";
4917 tailf:info "Variation in packet rate from configured expected rate";
4919 enum rtp-jitter-average {
4920 tailf:info "Mean jitter for the RTP stream";
4922 enum transport-packets-lost-rate {
4923 tailf:info "Ratio of lost packets to total reaceived packets";
4928 tailf:info "Description for threshold crossing action instance";
4929 description "Description for the instance";
4930 tailf:cli-multi-value;
4934 tailf:info "Config react action";
4935 description "Config react action";
4937 tailf:info "SNMP is notified of the event";
4938 description "SNMP is notified of the event";
4939 tailf:cli-full-command;
4943 tailf:info "The threshold-crossing event is logged to syslog";
4944 description "The threshold-crossing event is logged to syslog";
4945 tailf:cli-full-command;
4950 tailf:info "Config react alarm";
4951 description "Config react alarm";
4953 tailf:info "Alarm severity - default level none";
4954 description "Alarm severity - default level none";
4957 tailf:info "TCA severity level critical (severity = 2)";
4960 tailf:info "TCA severity level major (severity = 3)";
4963 tailf:info "TCA severity level critical (severity = 1)";
4966 tailf:info "TCA severity level minor (severity = 4)";
4969 tailf:info "TCA severity level default (severity = 5)";
4974 tailf:info "Alarm raised type - for each flow or a group";
4975 description "Alarm raised type - for each flow or a group";
4977 tailf:info "Alert for each flow within the class";
4978 description "Alert for each flow within the class";
4979 tailf:cli-full-command;
4983 tailf:info "Alert if more than one flow cross the threshold";
4984 description "Alert if more than one flow cross the threshold";
4986 tailf:info "Number of flows in the group cross the threshold";
4987 description "Number of flows in the group cross the threshold";
4988 tailf:cli-full-command;
4990 tailf:info "<1-65535>;;Number of flows";
4994 tailf:info "Percent of flows in the group cross the threshold";
4995 description "Percent of flows in the group cross the threshold";
4996 tailf:cli-full-command;
4998 tailf:info "<1-100>;;Percent of flows";
5005 container threshold {
5006 tailf:info "Config react threshold";
5007 description "Config react threshold";
5009 tailf:info "Range of percentage loss that would trigger the alarm";
5010 description "Range of percentage loss that would trigger the alarm";
5012 tailf:info "greater and equal to";
5013 description "greater and equal to";
5014 tailf:cli-full-command;
5016 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5020 tailf:info "greater than";
5021 description "greater than";
5022 tailf:cli-full-command;
5024 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5028 tailf:info "less and equal to";
5029 description "less and equal to";
5030 tailf:cli-full-command;
5032 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5036 tailf:info "less than";
5037 description "less than";
5038 tailf:cli-full-command;
5040 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5044 tailf:info "threshold within the range of";
5045 description "threshold within the range of";
5046 tailf:cli-sequence-commands;
5047 tailf:cli-compact-syntax;
5049 tailf:cli-drop-node-name;
5051 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5055 tailf:cli-drop-node-name;
5057 tailf:info "WORD;;rtp lost fraction threshold 0.05 - 100 (% in precision of 0.01)";
5065 // policy-map * / class * / inspect-police
5066 container inspect-police {
5067 when "../policy/action = 'inspect'";
5068 tailf:cli-drop-node-name;
5070 tailf:info "Police";
5071 description "Police";
5072 tailf:cli-sequence-commands {
5073 tailf:cli-reset-siblings;
5075 tailf:cli-compact-syntax;
5077 tailf:info "Specify police rate";
5078 description "Specify police rate";
5080 tailf:info "<8000-2000000000>;;Rate value in bps";
5081 range "8000..2000000000";
5085 tailf:info "Specify 'burst' parameter";
5086 description "Specify 'burst' parameter";
5088 tailf:info "<1000-512000000>;;Burst value in bytes";
5089 range "1000..512000000";
5095 tailf:cli-drop-node-name;
5096 tailf:cli-suppress-mode;
5100 type policy-action-type;
5102 choice action-param {
5103 case bandwidth-case {
5104 // policy-map * / class * / bandwidth
5105 container bandwidth {
5106 //tailf:info "Bandwidth";
5107 tailf:cli-drop-node-name;
5108 when "../action-type = 'bandwidth'";
5110 tailf:cli-drop-node-name;
5113 tailf:info "<8-2000000>;;Kilo Bits per second";
5117 tailf:info "% of total Bandwidth";
5118 description "% of total Bandwidth";
5119 type percentage-type;
5121 container remaining {
5122 tailf:info "% of the remaining bandwidth";
5123 description "% of the remaining bandwidth";
5125 tailf:info "% of the remaining bandwidth";
5126 description "% of the remaining bandwidth";
5127 type percentage-type;
5130 tailf:info "ratio for sharing excess bandwidth";
5131 description "ratio for sharing excess bandwidth";
5133 tailf:info "<1-65536>;;Ratio";
5139 case compression-case {
5140 // policy-map * / class * / compression
5141 container compression {
5142 //tailf:info "Activate Compression";
5143 tailf:cli-drop-node-name;
5144 //presence "Activate Compression";
5145 when "../action-type = 'compression'";
5147 tailf:info "configure header compression";
5148 description "configure header compression";
5149 presence "configure header compression";
5151 tailf:info "configure ip header compression";
5152 description "configure ip header compression";
5155 tailf:code-name "header_rtp";
5156 tailf:info "configure rtp header compression";
5159 tailf:info "configure tcp header compression";
5167 // policy-map * / class * / drop
5169 //tailf:info "Drop all packets";
5170 // tailf:cli-full-command;
5174 case estimate-case {
5175 // policy-map * / class * / estimate
5176 container estimate {
5177 //tailf:info "estimate resources required for this class";
5178 tailf:cli-drop-node-name;
5179 when "../action-type = 'estimate'";
5180 container bandwidth {
5181 presence "bandwidth required to service this class";
5182 tailf:info "bandwidth required to service this class";
5183 description "bandwidth required to service this class";
5184 tailf:cli-sequence-commands;
5185 tailf:cli-compact-syntax;
5186 container delay-one-in {
5187 tailf:info "specify QoS target delay";
5188 description "specify QoS target delay";
5189 tailf:cli-compact-syntax;
5190 tailf:cli-sequence-commands;
5192 tailf:cli-drop-node-name;
5193 tailf:cli-incomplete-command;
5195 range "50..1000000";
5196 tailf:info "<50-1000000>;;delay one packet "+
5203 tailf:info "<8-1000>;;worst-case "+
5204 "milliseconds of delay";
5210 tailf:info "specify QoS target loss rate";
5211 description "specify QoS target loss rate";
5213 tailf:info "<50-1000000>;;drop one packet of N";
5220 //policy-map * / class * / forward service-path
5222 //tailf:info "forward service-path action";
5223 tailf:cli-reset-container;
5224 tailf:cli-drop-node-name;
5225 when "../action-type = 'forward'";
5227 tailf:info "Service Path Entries";
5228 description "Service Path Entries";
5229 tailf:cli-suppress-mode;
5230 key "service-path-id";
5231 leaf service-path-id {
5233 range "0..16777215";
5234 tailf:info "<0-16777215>;;Service Path ID";
5237 leaf service-index {
5238 tailf:info "Service Index";
5239 description "Service Index";
5242 tailf:info "<2-255>;;Service Index ID";
5248 case fair-queue-case {
5249 // policy-map * / class * / fair-queue
5250 // class-default: fair-queue [number-of-dynamic-queues]
5252 // policy-map: fair-queue [queue-limit queue-value]
5254 // air-queue [congestive-discard-threshold [dynamic-q [reservable-q]]]
5255 container fair-queue {
5256 //tailf:info "Enable Flow-based Fair Queuing in this Class";
5257 tailf:cli-reset-container;
5258 tailf:cli-drop-node-name;
5259 when "../action-type = 'fair-queue'";
5260 leaf dynamic-queues {
5261 tailf:cli-drop-node-name;
5262 tailf:cli-full-command;
5264 range "16|32|64|128|256|512|1024|2048|4096" {
5265 tailf:info "<16-4096>;;Number Dynamic Conversation "+
5271 tailf:info "per flow queue limit";
5272 description "per flow queue limit";
5273 tailf:cli-full-command;
5275 tailf:info "<1-32768>;;packets";
5281 case netflow-sampler-case {
5282 // policy-map * / class * / netflow-sampler
5283 leaf netflow-sampler {
5284 //tailf:info "NetFlow action";
5285 tailf:cli-drop-node-name;
5286 tailf:cli-full-command;
5287 when "../action-type = 'netflow-sampler'";
5288 // should be leafref to sampler
5290 tailf:info "WORD;;Name of the flow sampler";
5295 // policy-map * / class * / police ?
5296 choice police-choice {
5297 // policy-map * / class * / police aggregate
5298 case police-aggregate-case {
5299 container police-aggregate {
5300 tailf:cli-no-keyword;
5301 tailf:cli-drop-node-name;
5303 //tailf:info "Police";
5304 tailf:cli-drop-node-name;
5305 when "../../action-type = 'police'" {
5306 tailf:dependency "../../action-type";
5309 tailf:info "Choose aggregate policer for current class";
5310 description "Choose aggregate policer for current class";
5312 tailf:info "WORD;;enter aggregate-policer name";
5318 // police (policy-map)
5319 // police cir <bps> [[bc <burst-normal>] [be <burst-max>]]
5320 // [pir <bps> [be <burst-bytes>]] ACTIONS
5321 // NOTE: cir, bc & be keywords are mandatory in this model.
5322 // Java code will add missing cir,bc and be in show().
5323 case police-policy-map-case {
5324 container police-policy-map {
5325 tailf:cli-no-keyword;
5326 tailf:cli-drop-node-name;
5329 tailf:cli-mode-name "config-pmap-c-police";
5330 tailf:cli-flatten-container;
5331 tailf:cli-sequence-commands {
5332 tailf:cli-reset-siblings;
5334 tailf:cli-drop-node-name;
5335 when "../../action-type = 'police'" {
5336 tailf:dependency "../../action-type";
5340 tailf:info "Committed information rate";
5341 description "Committed information rate";
5342 tailf:cli-hide-in-submode;
5343 type police-bps-type;
5345 // [bc <burst-normal>]
5347 tailf:info "Conform burst";
5348 description "Conform burst";
5349 tailf:cli-optional-in-sequence;
5350 tailf:cli-hide-in-submode;
5351 type police-burst-type;
5356 tailf:info "Excess burst";
5357 description "Excess burst";
5358 tailf:cli-optional-in-sequence;
5359 tailf:cli-hide-in-submode;
5360 type police-burst-type;
5362 // [pir <bps> [be <burst-bytes>]]
5364 tailf:info "Peak Information Rate";
5365 description "Peak Information Rate";
5366 tailf:cli-optional-in-sequence;
5367 tailf:cli-hide-in-submode;
5368 type police-bps-type;
5372 tailf:cli-no-keyword;
5373 tailf:cli-drop-node-name;
5374 tailf:cli-optional-in-sequence;
5375 tailf:cli-flatten-container;
5376 tailf:cli-hide-in-submode;
5378 tailf:info "Excess burst";
5379 description "Excess burst";
5380 type police-burst-type;
5383 // conform-action | exceed-action | violate-action
5384 uses police-action-grouping;
5388 // police cir percent (combo of percent & policy-map versions)
5389 // police cir percent <percentage>
5390 // [bc] <burst> ms] [be [<burst> ms]
5391 // [pir percent <percentage> [be <burst> ms]] ACTIONS
5392 case police-cir-percent-case {
5393 container police-cir-percent {
5394 tailf:cli-no-keyword;
5395 tailf:cli-drop-node-name;
5397 tailf:cli-drop-node-name;
5398 when "../../action-type = 'police'" {
5399 tailf:dependency "../../action-type";
5402 tailf:info "Committed information rate";
5403 description "Committed information rate";
5405 tailf:info "% of interface bandwidth for Committed "+
5407 description "% of interface bandwidth for Committed "+
5410 tailf:cli-mode-name "config-pmap-c-police";
5411 tailf:cli-incomplete-command;
5412 tailf:cli-flatten-container;
5413 tailf:cli-sequence-commands {
5414 tailf:cli-reset-siblings;
5416 // percent <percentage>
5418 tailf:cli-drop-node-name;
5419 tailf:cli-hide-in-submode;
5420 type percentage-type;
5424 tailf:info "Conform burst";
5425 description "Conform burst";
5426 tailf:cli-optional-in-sequence;
5427 tailf:cli-hide-in-submode;
5429 tailf:info "<1-2000>;;Burst ms";
5434 tailf:cli-no-keyword;
5435 tailf:cli-drop-node-name;
5436 tailf:cli-optional-in-sequence;
5437 tailf:cli-hide-in-submode;
5438 tailf:cli-compact-syntax;
5439 tailf:cli-flatten-container;
5441 tailf:info "Milli seconds";
5442 description "Milli seconds";
5443 tailf:cli-no-keyword;
5449 when "../bc-ms/ms" {
5450 tailf:dependency "../bc-ms/ms";
5452 tailf:info "Excess burst";
5453 tailf:cli-optional-in-sequence;
5454 tailf:cli-hide-in-submode;
5456 tailf:info "<1-2000>;;Burst ms";
5461 tailf:cli-no-keyword;
5462 tailf:cli-drop-node-name;
5463 tailf:cli-hide-in-submode;
5464 tailf:cli-compact-syntax;
5465 tailf:cli-flatten-container;
5467 tailf:info "Milli seconds";
5468 description "Milli seconds";
5469 tailf:cli-no-keyword;
5473 // [pir percent <percentage> [be <burst> ms]]
5475 tailf:info "Peak Information Rate";
5476 description "Peak Information Rate";
5477 tailf:cli-compact-syntax;
5478 tailf:cli-flatten-container;
5479 tailf:cli-hide-in-submode;
5480 tailf:cli-optional-in-sequence;
5482 tailf:info "% of interface bandwidth for Peak "+
5484 description "% of interface bandwidth for Peak "+
5486 type percentage-type;
5491 tailf:cli-no-keyword;
5492 tailf:cli-drop-node-name;
5493 tailf:cli-optional-in-sequence;
5494 tailf:cli-flatten-container;
5495 tailf:cli-hide-in-submode;
5497 tailf:info "Excess burst";
5498 description "Excess burst";
5500 tailf:info "<1-2000>;;Burst ms";
5504 container pir-be-ms {
5505 when "../pir-be/be" {
5506 tailf:dependency "../pir-be/be";
5508 tailf:cli-no-keyword;
5509 tailf:cli-drop-node-name;
5510 tailf:cli-optional-in-sequence;
5511 tailf:cli-hide-in-submode;
5512 tailf:cli-flatten-container;
5514 tailf:info "Milli seconds";
5515 description "Milli seconds";
5516 tailf:cli-no-keyword;
5520 // conform-action | exceed-action | violate-action
5521 uses police-action-grouping;
5527 // police rate (control-plane)
5528 // police rate <units> <pps|bps> [burst <burst-in-x> <packets|bytes>]
5529 // [peak-rate <peak-rate-in-xps> <pps|bps>]
5530 // [peak-burst <peak-burst-in-x> <packets|bytes>]
5531 // [conform-action <action>]
5532 case police-rate-unit-case {
5533 container police-rate-unit {
5534 tailf:cli-no-keyword;
5535 tailf:cli-drop-node-name;
5537 tailf:cli-drop-node-name;
5538 when "../../action-type = 'police'" {
5539 tailf:dependency "../../action-type";
5542 tailf:info "Specify police rate";
5543 description "Specify police rate";
5545 tailf:cli-mode-name "config-pmap-c-police";
5546 tailf:cli-flatten-container;
5547 tailf:cli-sequence-commands {
5548 tailf:cli-reset-siblings;
5552 tailf:cli-drop-node-name;
5553 tailf:cli-hide-in-submode;
5555 tailf:info "<1-2000000000>;;Rate value in the range "+
5556 "8000-2,000,000,000 bps or 1-2,000,000 pps";
5561 tailf:cli-no-keyword;
5562 tailf:cli-drop-node-name;
5563 tailf:cli-hide-in-submode;
5564 type police-pps-bps-type;
5566 // [burst <burst-in-x> <packets|bytes>]
5568 tailf:info "Specify 'burst' parameter";
5569 description "Specify 'burst' parameter";
5570 tailf:cli-optional-in-sequence;
5571 tailf:cli-compact-syntax;
5572 tailf:cli-hide-in-submode;
5573 tailf:cli-flatten-container;
5574 tailf:cli-sequence-commands;
5576 tailf:cli-no-keyword;
5577 tailf:cli-drop-node-name;
5578 tailf:cli-incomplete-command;
5580 tailf:info "<1-512000000>;;Burst value in "+
5585 tailf:cli-no-keyword;
5586 tailf:cli-drop-node-name;
5587 tailf:cli-hide-in-submode;
5588 type police-packets-bytes-type;
5591 // [peak-rate <peak-rate-in-xps> <pps|bps>]
5592 container peak-rate {
5593 tailf:info "Specify peak rate";
5594 description "Specify peak rate";
5595 tailf:cli-optional-in-sequence;
5596 tailf:cli-compact-syntax;
5597 tailf:cli-flatten-container;
5598 tailf:cli-hide-in-submode;
5599 tailf:cli-sequence-commands;
5600 leaf peak-rate-value {
5601 tailf:cli-no-keyword;
5602 tailf:cli-drop-node-name;
5603 tailf:cli-incomplete-command;
5605 tailf:info "<1-512000000>;;Peak-rate value in "+
5606 "packets or bytes per second";
5607 range "1..512000000";
5611 tailf:cli-no-keyword;
5612 tailf:cli-drop-node-name;
5613 type police-pps-bps-type;
5616 // [peak-burst <peak-burst-in-x> <packets|bytes>]
5617 container peak-burst {
5618 tailf:info "Specify 'peak-burst' parameter for peak-rate";
5619 description "Specify 'peak-burst' parameter for peak-rate";
5620 tailf:cli-optional-in-sequence;
5621 tailf:cli-compact-syntax;
5622 tailf:cli-flatten-container;
5623 tailf:cli-hide-in-submode;
5624 tailf:cli-sequence-commands;
5626 tailf:cli-no-keyword;
5627 tailf:cli-drop-node-name;
5628 tailf:cli-incomplete-command;
5630 tailf:info "<1-512000000>;;Burst value in "+
5635 tailf:cli-no-keyword;
5636 tailf:cli-drop-node-name;
5637 type police-packets-bytes-type;
5640 // conform-action | exceed-action | violate-action
5641 uses police-action-grouping;
5646 // police rate percent (control-plane)
5647 // police rate percent <percentage> [burst <ms> ms]
5648 // [peak-rate percent <percentage>] [peak-burst <ms> ms]
5649 case police-rate-percent-case {
5650 container police-rate-percent {
5651 tailf:cli-no-keyword;
5652 tailf:cli-drop-node-name;
5654 tailf:cli-drop-node-name;
5655 when "../../action-type = 'police'" {
5656 tailf:dependency "../../action-type";
5659 tailf:info "Specify police rate";
5660 description "Specify police rate";
5662 tailf:info "% of interface bandwidth for rate";
5663 description "% of interface bandwidth for rate";
5665 tailf:cli-mode-name "config-pmap-c-police";
5666 tailf:cli-flatten-container;
5667 tailf:cli-sequence-commands {
5668 tailf:cli-reset-siblings;
5672 tailf:cli-drop-node-name;
5673 tailf:cli-hide-in-submode;
5674 type percentage-type;
5678 tailf:info "Specify 'burst' parameter";
5679 description "Specify 'burst' parameter";
5680 tailf:cli-optional-in-sequence;
5681 tailf:cli-hide-in-submode;
5683 tailf:info "<1-2000>;;Burst value in milliseconds";
5688 tailf:info "Treat 'burst' value in milliseconds";
5689 description "Treat 'burst' value in milliseconds";
5690 tailf:cli-hide-in-submode;
5693 // [peak-rate percent <percentage>]
5694 container peak-rate {
5695 tailf:info "Specify peak rate";
5696 description "Specify peak rate";
5697 tailf:cli-hide-in-submode;
5698 tailf:cli-optional-in-sequence;
5699 tailf:cli-flatten-container;
5701 tailf:info "% of interface bandwidth for peak-rate";
5702 description "% of interface bandwidth for peak-rate";
5703 type percentage-type;
5706 // [peak-burst <ms> ms]
5708 tailf:info "Specify 'peak-burst' parameter for "+
5710 description "Specify 'peak-burst' parameter for "+
5712 tailf:cli-hide-in-submode;
5713 tailf:cli-optional-in-sequence;
5715 tailf:info "<1-2000>;;Peak burst value in "+
5719 container peak-burst-ms {
5720 when "../peak-burst";
5721 tailf:cli-no-keyword;
5722 tailf:cli-drop-node-name;
5723 tailf:cli-optional-in-sequence;
5724 tailf:cli-hide-in-submode;
5725 tailf:cli-flatten-container;
5727 tailf:info "Milli seconds";
5728 description "Milli seconds";
5729 tailf:cli-no-keyword;
5733 // conform-action | exceed-action | violate-action
5734 uses police-action-grouping;
5741 // police rate pdp [burst <bytes>]
5742 // [peak-rate pdp [peak-burst <bytes>]] ACTIONS
5743 case police-rate-pdp-case {
5744 container police-rate-pdp {
5745 tailf:cli-no-keyword;
5746 tailf:cli-drop-node-name;
5748 tailf:cli-drop-node-name;
5749 when "../../action-type = 'police'" {
5750 tailf:dependency "../../action-type";
5753 tailf:info "Specify police rate";
5754 description "Specify police rate";
5756 tailf:info "% of interface bandwidth for rate";
5757 description "% of interface bandwidth for rate";
5759 tailf:cli-mode-name "config-pmap-c-police";
5760 tailf:cli-flatten-container;
5761 tailf:cli-sequence-commands {
5762 tailf:cli-reset-siblings;
5766 tailf:info "Conform burst";
5767 description "Conform burst";
5768 tailf:cli-hide-in-submode;
5769 tailf:cli-optional-in-sequence;
5770 type police-burst-type;
5772 // [peak-rate pdp [peak-burst <bytes>]]
5774 tailf:info "Specify peak rate";
5775 description "Specify peak rate";
5776 tailf:cli-hide-in-submode;
5777 tailf:cli-optional-in-sequence;
5784 when "../peak-rate";
5785 tailf:info "Specify 'peak-burst' parameter for "+
5787 description "Specify 'peak-burst' parameter for "+
5789 tailf:cli-hide-in-submode;
5790 tailf:cli-optional-in-sequence;
5791 type police-burst-type;
5793 // conform-action | exceed-action | violate-action
5794 uses police-action-grouping;
5800 // police target-bit-rate <bits per second>
5801 case police-target-bitrate-case {
5802 container police-target-bitrate {
5803 tailf:cli-no-keyword;
5804 tailf:cli-drop-node-name;
5806 tailf:cli-drop-node-name;
5807 when "../../action-type = 'police'" {
5808 tailf:dependency "../../action-type";
5811 tailf:cli-mode-name "config-pmap-c-police";
5813 tailf:info "Target bit rate (bits per second) (postfix k, m, g optional),
5814 decimal point allowed";
5815 description "Target bit rate (bits per second) (postfix k, m, g optional),
5816 decimal point allowed";
5817 tailf:cli-no-keyword;
5818 tailf:cli-drop-node-name;
5819 tailf:cli-hide-in-submode;
5821 tailf:info "<8000-10000000000>;;Target bit rate (bits per second)";
5822 range "8000..10000000000";
5825 // conform-action | exceed-action | violate-action
5826 uses police-action-grouping;
5830 // police flow (policy-map)
5831 // police flow [mask {dest-only | full-flow | src-only}]
5832 // <bps> [<burst-normal>] ACTIONS
5833 case police-flow-case {
5834 container police-flow {
5835 tailf:cli-no-keyword;
5836 tailf:cli-drop-node-name;
5838 tailf:cli-drop-node-name;
5839 when "../../action-type = 'police'" {
5840 tailf:dependency "../../action-type";
5843 tailf:info "police each flow";
5844 description "police each flow";
5846 tailf:cli-mode-name "config-pmap-c-police";
5847 tailf:cli-flatten-container;
5848 tailf:cli-sequence-commands {
5849 tailf:cli-reset-siblings;
5851 // [mask {dest-only | full-flow | src-only}]
5853 tailf:info "flow mask to be used for policing";
5854 description "flow mask to be used for policing";
5855 tailf:cli-hide-in-submode;
5856 tailf:cli-optional-in-sequence;
5859 tailf:info "destination-address only flow mask";
5862 tailf:info "full flow mask";
5865 tailf:info "source-address only flow mask";
5871 tailf:cli-drop-node-name;
5872 tailf:cli-hide-in-submode;
5873 type police-bps-type;
5878 tailf:cli-drop-node-name;
5879 tailf:cli-hide-in-submode;
5880 tailf:cli-optional-in-sequence;
5881 type police-burst-type;
5883 // conform-action | exceed-action | violate-action
5884 uses police-action-grouping;
5889 // police (Catalyst 4500)
5890 // police <bps> bps <byte> byte ACTIONS
5891 case police-catalyst-case {
5892 container police-catalyst {
5893 tailf:cli-no-keyword;
5894 tailf:cli-drop-node-name;
5897 tailf:cli-mode-name "config-pmap-c-police";
5898 tailf:cli-flatten-container;
5899 tailf:cli-drop-node-name;
5900 when "../../action-type = 'police'" {
5901 tailf:dependency "../../action-type";
5903 tailf:cli-sequence-commands {
5904 tailf:cli-reset-siblings;
5908 tailf:cli-no-keyword;
5909 tailf:cli-drop-node-name;
5910 tailf:cli-hide-in-submode;
5911 tailf:cli-incomplete-command;
5913 tailf:info "<32000-32000000000>;;Rate in bits per second "+
5914 "(postfix k, m, g optional; decimal point allowed)";
5918 tailf:cli-hide-in-submode;
5919 tailf:cli-incomplete-command;
5924 tailf:cli-no-keyword;
5925 tailf:cli-drop-node-name;
5926 tailf:cli-hide-in-submode;
5927 tailf:cli-incomplete-command;
5929 tailf:info "<32000-32000000000>;;(postfix k, m, g "+
5930 "optional; decimal point allowed)";
5934 tailf:cli-hide-in-submode;
5937 // conform-action | exceed-action | violate-action
5939 tailf:cli-no-keyword;
5940 tailf:cli-break-sequence-commands;
5941 tailf:cli-drop-node-name;
5942 tailf:cli-flatten-container;
5943 tailf:cli-hide-in-submode;
5944 // policy-map * / class * / police ? / conform-action
5945 uses police-conform-action-grouping;
5946 // policy-map * / class * / police ? / exceed-action
5947 uses police-exceed-action-grouping;
5948 // policy-map * / class * / police ? / violate-action
5949 uses police-violate-action-grouping;
5954 // police (Catalyst C3550)
5955 // police <bps> <burst> exceed-action {drop | policed-dscp-transmit}]
5956 case police-switch-case {
5957 container police-switch {
5958 tailf:cli-no-keyword;
5959 tailf:cli-drop-node-name;
5961 tailf:cli-compact-syntax;
5962 tailf:cli-drop-node-name;
5963 when "../../action-type = 'police'" {
5964 tailf:dependency "../../action-type";
5966 tailf:cli-sequence-commands {
5967 tailf:cli-reset-siblings;
5971 tailf:cli-incomplete-command;
5972 tailf:cli-drop-node-name;
5974 tailf:info "<8000-1000000000>;;Bits per second";
5975 range "8000..1000000000";
5980 tailf:cli-drop-node-name;
5982 tailf:info "<8000-2000000>;;Normal burst bytes";
5983 range "8000..2000000";
5987 leaf exceed-action {
5988 tailf:info "action when rate is exceeded";
5989 description "action when rate is exceeded";
5992 tailf:info "drop packet";
5994 enum policed-dscp-transmit {
5995 tailf:info "change dscp per policed-dscp map and send it";
6004 case priority-case {
6005 // policy-map * / class * / priority
6006 container priority {
6007 //tailf:info "Strict Scheduling Priority for this Class";
6008 tailf:cli-compact-syntax;
6009 tailf:cli-sequence-commands;
6010 tailf:cli-drop-node-name;
6011 when "../action-type = 'priority'";
6013 tailf:info "Multi-Level Priority Queue";
6014 description "Multi-Level Priority Queue";
6015 tailf:cli-optional-in-sequence;
6017 tailf:info "<1-2>;;Multi-Level Priority Queue";
6021 choice priority-type {
6023 tailf:cli-drop-node-name;
6026 tailf:info "<8-2000000>;;Kilo Bits per second";
6030 tailf:info "% of total bandwidth";
6031 description "% of total bandwidth";
6034 tailf:info "<1-100>;;percentage";
6039 tailf:cli-drop-node-name;
6041 tailf:info "<32-64000000>;;Burst in bytes";
6042 range "32..64000000";
6047 case queue-buffers-case {
6048 // policy-map * / class * / queue-buffers
6049 container queue-buffers {
6050 tailf:cli-drop-node-name;
6051 when "../action-type = 'queue-buffers'";
6053 tailf:info "Relative buffer size for queue";
6054 description "Relative buffer size for queue";
6056 tailf:info "<0-100>;;Queue-buffers ratio limit";
6062 case queue-limit-case {
6063 // policy-map * / class * / queue-limit
6064 container queue-limit {
6065 //tailf:info "Queue Max Threshold for Tail Drop";
6066 tailf:cli-compact-syntax;
6067 tailf:cli-sequence-commands {
6068 tailf:cli-reset-siblings;
6070 tailf:cli-drop-node-name;
6071 when "../action-type = 'queue-limit'";
6072 leaf queue-limit-value {
6073 tailf:cli-drop-node-name;
6075 tailf:info "<1-8192000> in bytes, <1-3400> in ms, "+
6076 "<1-32768> in packets by default";
6080 leaf queue-limit-type {
6081 tailf:cli-drop-node-name;
6084 tailf:info "in bytes";
6087 tailf:info "in milliseconds";
6090 tailf:info "in packets";
6093 tailf:info "in microseconds";
6098 container queue-limit-dscp {
6099 //tailf:info "Queue Max Threshold for Tail Drop";
6100 tailf:cli-compact-syntax;
6101 tailf:cli-drop-node-name;
6102 when "../action-type = 'queue-limit'";
6104 tailf:info "parameters for each dscp value";
6105 description "parameters for each dscp value";
6109 tailf:info "dscp values";
6110 description "dscp values";
6113 leaf-list sdcp-val {
6114 tailf:cli-drop-node-name;
6118 tailf:info "% of threshold";
6119 description "% of threshold";
6121 tailf:info "<0-100>;;% of threshold";
6127 case random-detect {
6128 // policy-map * / class * / random-detect
6129 container random-detect {
6130 //tailf:info "Enable Random Early Detection as drop policy";
6132 tailf:cli-drop-node-name;
6133 when "../action-type = 'random-detect'";
6134 container aggregate {
6135 tailf:info "aggregate subclasses";
6136 description "aggregate subclasses";
6137 tailf:cli-compact-syntax;
6138 tailf:cli-sequence-commands {
6139 tailf:cli-reset-siblings;
6142 leaf minimum-thresh {
6143 tailf:info "minimum threshold for red aggregate";
6144 description "minimum threshold for red aggregate";
6146 tailf:info "<0-1000000>;;minimum threshold (number of packets)";
6150 leaf maximum-thresh {
6151 tailf:info "maximum threshold for red aggregate";
6152 description "maximum threshold for red aggregate";
6154 tailf:info "<0-1000000>;;maximum threshold (number of packets)";
6158 leaf mark-probability {
6159 tailf:info "mark-probability for red aggregate";
6160 description "mark-probability for red aggregate";
6164 tailf:cli-drop-node-name;
6166 tailf:info "<0-65535>;;mark probability denominator";
6171 container discard-class {
6172 tailf:info "parameters for each discard-class value";
6173 description "parameters for each discard-class value";
6174 tailf:cli-compact-syntax;
6175 tailf:cli-sequence-commands;
6177 tailf:cli-drop-node-name;
6178 tailf:cli-incomplete-command;
6181 tailf:info "<0-7>;;discard-class value";
6184 uses random-detect-grouping;
6186 leaf discard-class-based {
6187 tailf:info "Enable discard-class-based WRED as drop policy";
6188 description "Enable discard-class-based WRED as drop policy";
6189 tailf:cli-full-command;
6193 tailf:info "Enable dscp-based WRED as drop policy";
6194 description "Enable dscp-based WRED as drop policy";
6195 tailf:cli-full-command;
6199 tailf:info "parameters for each dscp value";
6200 description "parameters for each dscp value";
6201 tailf:cli-suppress-mode;
6202 tailf:cli-compact-syntax;
6203 tailf:cli-sequence-commands;
6208 uses random-detect-grouping;
6211 tailf:info "explicit congestion notification";
6212 description "explicit congestion notification";
6213 tailf:cli-full-command;
6216 leaf exponential-weighting-constant {
6217 tailf:info "weight for mean queue depth calculation";
6218 description "weight for mean queue depth calculation";
6219 tailf:cli-full-command;
6222 tailf:info "<1-16>;;integer in 1..16 used in weighted "+
6223 "average to mean 2^number";
6227 tailf:info "Enable precedence-based WRED as drop policy";
6228 description "Enable precedence-based WRED as drop policy";
6229 tailf:cli-full-command;
6232 container precedence {
6233 tailf:info "parameters for each precedence value";
6234 description "parameters for each precedence value";
6235 tailf:cli-sequence-commands;
6236 tailf:cli-compact-syntax;
6238 tailf:cli-drop-node-name;
6239 tailf:cli-incomplete-command;
6240 type precedence-type2;
6242 uses random-detect-grouping;
6246 case service-policy-case {
6247 // policy-map * / class * / service-policy
6248 leaf service-policy {
6249 //tailf:info "Configure Flow Next";
6250 tailf:cli-full-command;
6251 tailf:cli-drop-node-name;
6252 when "../action-type = 'service-policy'";
6254 tailf:non-strict-leafref {
6255 path "/ios:native/policy-map/name";
6260 // policy-map * / class * / set
6262 //tailf:info "Set QoS values";
6263 tailf:cli-drop-node-name;
6264 when "../action-type = 'set'";
6265 // policy-map * / class * / set atm-clp
6267 tailf:info "Set ATM CLP bit to 1";
6268 description "Set ATM CLP bit to 1";
6269 tailf:cli-full-command;
6272 // policy-map * / class * / set cos
6274 tailf:info "Set IEEE 802.1Q/ISL class of service/user "+
6276 description "Set IEEE 802.1Q/ISL class of service/user "+
6278 tailf:cli-compact-syntax;
6279 tailf:cli-sequence-commands;
6283 tailf:cli-drop-node-name;
6286 tailf:info "<0-7>;;cos value";
6292 tailf:cli-drop-node-name;
6295 tailf:code-name "pack_dscp";
6296 tailf:info "Set value from packet dscp";
6299 tailf:code-name "pack_precedence";
6300 tailf:info "Set value from packet "+
6306 tailf:info "Set codepoint value based on tablemap.";
6307 description "Set codepoint value based on tablemap.";
6309 tailf:info "WORD;;table-map name";
6311 tailf:non-strict-leafref {
6312 path "/ios:native/table-map/name";
6318 // policy-map * / class * / set discard-class
6319 leaf discard-class {
6320 tailf:info "Discard behavior identifier";
6321 description "Discard behavior identifier";
6322 tailf:cli-full-command;
6325 tailf:info "<0-7>;;Discard Class value";
6328 // policy-map * / class * / set dscp
6330 tailf:info "Set DSCP in IP(v4) and IPv6 packets";
6331 description "Set DSCP in IP(v4) and IPv6 packets";
6332 tailf:cli-compact-syntax;
6334 tailf:info "set tunnel packet dscp";
6335 description "set tunnel packet dscp";
6339 tailf:cli-drop-node-name;
6343 // policy-map * / class * / set fr-de
6345 tailf:info "Set FR DE bit to 1";
6346 description "Set FR DE bit to 1";
6347 tailf:cli-full-command;
6350 // policy-map * / class * / set ip
6352 tailf:info "Set IP specific values";
6353 description "Set IP specific values";
6356 tailf:info "Set IP DSCP (DiffServ CodePointint)";
6357 description "Set IP DSCP (DiffServ CodePointint)";
6358 tailf:cli-compact-syntax;
6360 tailf:info "set tunnel packet dscp";
6361 description "set tunnel packet dscp";
6365 tailf:cli-drop-node-name;
6369 container precedence {
6370 tailf:info "Set IP precedence";
6371 description "Set IP precedence";
6372 presence "Set IP precedence";
6373 leaf precedence-val {
6374 tailf:cli-drop-node-name;
6375 type precedence-type;
6380 // policy-map * / class * / set mpls
6382 tailf:info "Set MPLS specific values";
6383 description "Set MPLS specific values";
6384 container experimental {
6385 tailf:info "Set Experimental value";
6386 description "Set Experimental value";
6388 container imposition {
6389 tailf:info "Set Experimental value at tag imposition";
6390 description "Set Experimental value at tag imposition";
6392 tailf:cli-drop-node-name;
6393 tailf:cli-full-command;
6395 tailf:info "<0-7>;;Experimental value";
6404 tailf:info "Set Experimental value on topmost label";
6405 description "Set Experimental value on topmost label";
6407 tailf:cli-drop-node-name;
6408 tailf:cli-full-command;
6410 tailf:info "<0-7>;;Experimental value";
6417 // policy-map * / class * / set qos-group
6418 container qos-group {
6419 tailf:info "Set QoS Group";
6420 description "Set QoS Group";
6421 leaf qos-group-value {
6422 tailf:cli-drop-node-name;
6423 tailf:cli-full-command;
6435 // policy-map * / class * / shape
6437 //tailf:info "Traffic Shaping";
6438 tailf:cli-drop-node-name;
6439 when "../action-type = 'shape'";
6440 // policy-map * / class * / shape adaptive
6442 tailf:info "Enable Traffic Shaping adaptation to BECN";
6443 description "Enable Traffic Shaping adaptation to BECN";
6444 tailf:cli-full-command;
6446 range "8000..154400000";
6447 tailf:info "<8000-154400000>;;Lower Bound Target Bit "+
6448 "Rate (bits per second)";
6451 // policy-map * / class * / shape average
6453 tailf:info "configure token bucket: CIR (bps) [Bc (bits) "+
6454 "[Be (bits)]], send out Bc only per interval";
6455 description "configure token bucket: CIR (bps) [Bc (bits) "+
6456 "[Be (bits)]], send out Bc only per interval";
6457 tailf:cli-sequence-commands;
6458 tailf:cli-compact-syntax;
6459 choice average-choice {
6462 tailf:cli-drop-node-name;
6464 //range "8000..154400000";
6465 //FIXME: what is range max?
6466 tailf:info "<8000-max>;;Target Bit "+
6467 "Rate (bits per second), the value "+
6468 "needs to be a multiple of 8000";
6471 leaf bits-per-interval-sustained {
6472 tailf:cli-drop-node-name;
6474 range "256..154400000";
6475 tailf:info "<256-154400000>;;bits per "+
6476 "interval, sustained. Needs to be "+
6477 "multiple of 128. Recommend not to "+
6478 "configure it, the algorithm will "+
6479 "find out the best value";
6482 leaf bits-per-interval-excess {
6483 tailf:cli-drop-node-name;
6485 range "0..154400000";
6486 tailf:info "<0-154400000>;;bits per "+
6487 "interval, excess. Needs to be "+
6488 "multiple of 128. Bc will be used if "+
6489 "you don't configure it.";
6495 tailf:info "% of interface bandwidth for "+
6496 "Committed information rate";
6497 description "% of interface bandwidth for "+
6498 "Committed information rate";
6499 type percentage-type;
6501 leaf burst-size-sustained {
6502 tailf:cli-incomplete-command;
6503 tailf:cli-drop-node-name;
6506 tailf:info "<10-2000>;;Sustained burst "+
6511 tailf:info "milliseconds";
6512 description "milliseconds";
6516 tailf:cli-drop-node-name;
6517 tailf:cli-flatten-container;
6518 tailf:cli-sequence-commands;
6519 tailf:cli-compact-syntax;
6520 leaf burst-size-excess {
6521 tailf:cli-incomplete-command;
6524 tailf:info "<10-2000>;;Excess burst "+
6529 tailf:info "milliseconds";
6530 description "milliseconds";
6537 // policy-map * / class * / shape fecn-adapt
6539 tailf:info "Enable Traffic Shaping reflection of FECN as "+
6541 description "Enable Traffic Shaping reflection of FECN as "+
6543 tailf:cli-full-command;
6546 // policy-map * / class * / shape fr-voice-adapt
6547 container fr-voice-adapt {
6548 tailf:info "Enable rate adjustment depending on voice "+
6550 description "Enable rate adjustment depending on voice "+
6552 presence "Enable rate adjustment depending on voice "+
6557 tailf:info "<1-10000>;;de-activation delay in "+
6562 // policy-map * / class * / shape max-buffers
6564 tailf:cli-full-command;
6565 tailf:info "Set Maximum Buffer Limit";
6566 description "Set Maximum Buffer Limit";
6569 tailf:info "<1-4096>;;Maximum Buffer Limit";
6575 // policy-map * / class * / trust
6577 //tailf:info "Set trust value for the class";
6578 tailf:cli-drop-node-name;
6579 when "../action-type = 'trust'";
6582 tailf:info "trust value for the class";
6585 tailf:info "trust value for the class";
6587 enum ip-precedence {
6588 tailf:info "trust value for the class";
6596 // policy-map * / description
6597 leaf "description" {
6598 tailf:info "Policy-Map description";
6599 description "Policy-Map description";
6600 tailf:cli-multi-value;
6603 tailf:info "LINE;;Description of this policy-map (up to "
6607 // policy-map * /sequence-interval
6608 leaf sequence-interval {
6609 tailf:info "Enable sequence number capability";
6610 description "Enable sequence number capability";
6611 when "../type = 'appnav'";
6613 tailf:info "<0-65535>;;Sequence Number Interval";
6618 /// ========================================================================
6620 /// ========================================================================
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 /// ========================================================================