2 * Copyright (c) 2015-2016 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
18 This file defines vpe control-plane API messages which are generally
19 called through a shared memory interface.
23 * Note: API placement cleanup in progress
24 * If you're looking for interface APIs, please
25 * see .../vnet/vnet/{interface.api,interface_api.c}
26 * IP APIs: see .../vnet/vnet/ip/{ip.api, ip_api.c}
27 * TAP APIs: see .../vnet/vnet/unix/{tap.api, tap_api.c}
28 * VXLAN APIs: see .../vnet/vnet/vxlan/{vxlan.api, vxlan_api.c}
29 * AF-PACKET APIs: ... see /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
30 * NETMAP APIs: see ... /vnet/vnet/devices/netmap/{netmap.api, netmap_api.c}
31 * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c}
32 * VXLAN GPE APIs: see .../vnet/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
33 * GRE APIs: see .../vnet/vnet/gre/{gre.api, gre_api.c}
34 * L2TP APIs: see .../vnet/vnet/l2tp/{l2tp.api, l2tp_api.c}
35 * BFD APIs: see .../vnet/vnet/bfd/{bfd.api, bfd_api.c}
36 * IPSEC APIs: see .../vnet/vnet/ipsec/{ipsec.api, ipsec_api.c}
39 /** \brief Create a new subinterface with the given vlan id
40 @param client_index - opaque cookie to identify the sender
41 @param context - sender context, to match reply w/ request
42 @param sw_if_index - software index of the new vlan's parent interface
43 @param vlan_id - vlan tag of the new interface
45 define create_vlan_subif
53 /** \brief Reply for the vlan subinterface create request
54 @param context - returned sender context, to match reply w/ request
55 @param retval - return code
56 @param sw_if_index - software index allocated for the new subinterface
58 define create_vlan_subif_reply
65 /** \brief Enable or Disable MPLS on and interface
66 @param client_index - opaque cookie to identify the sender
67 @param context - sender context, to match reply w/ request
68 @param sw_if_index - index of the interface
69 @param enable - if non-zero enable, else disable
71 define sw_interface_set_mpls_enable
79 /** \brief Reply for MPLS state on an interface
80 @param context - returned sender context, to match reply w/ request
81 @param retval - return code
83 define sw_interface_set_mpls_enable_reply
89 /** \brief MPLS Route Add / del route
90 @param client_index - opaque cookie to identify the sender
91 @param context - sender context, to match reply w/ request
92 @param mr_label - The MPLS label value
93 @param mr_eos - The End of stack bit
94 @param mr_table_id - The MPLS table-id the route is added in
95 @param mr_classify_table_index - If this is a classify route,
96 this is the classify table index
97 @param mr_create_table_if_needed - If the MPLS or IP tables do not exist,
99 @param mr_is_add - Is this a route add or delete
100 @param mr_is_classify - Is this route result a classify
101 @param mr_is_multipath - Is this route update a multipath - i.e. is this
102 a path addition to an existing route
103 @param mr_is_resolve_host - Recurse resolution constraint via a host prefix
104 @param mr_is_resolve_attached - Recurse resolution constraint via attached prefix
105 @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4
106 @param mr_next_hop_weight - The weight, for UCMP
107 @param mr_next_hop[16] - the nextop address
108 @param mr_next_hop_sw_if_index - the next-hop SW interface
109 @param mr_next_hop_table_id - the next-hop table-id (if appropriate)
110 @param mr_next_hop_n_out_labels - the number of labels in the label stack
111 @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first
112 @param next_hop_via_label - The next-hop is a resolved via a local label
114 define mpls_route_add_del
121 u32 mr_classify_table_index;
122 u8 mr_create_table_if_needed;
126 u8 mr_is_resolve_host;
127 u8 mr_is_resolve_attached;
128 u8 mr_next_hop_proto_is_ip4;
129 u8 mr_next_hop_weight;
131 u8 mr_next_hop_n_out_labels;
132 u32 mr_next_hop_sw_if_index;
133 u32 mr_next_hop_table_id;
134 u32 mr_next_hop_via_label;
135 u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
138 /** \brief Reply for MPLS route add / del request
139 @param context - returned sender context, to match reply w/ request
140 @param retval - return code
142 define mpls_route_add_del_reply
148 /** \brief Dump MPLS fib table
149 @param client_index - opaque cookie to identify the sender
158 @param sw_if_index - index of the interface
159 @param weight - The weight, for UCMP
160 @param is_local - local if non-zero, else remote
161 @param is_drop - Drop the packet
162 @param is_unreach - Drop the packet and rate limit send ICMP unreachable
163 @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
164 @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
165 @param next_hop[16] - the next hop address
167 WARNING: this type is replicated, pending cleanup completion
170 typeonly manual_print manual_endian define fib_path2
182 /** \brief mpls FIB table response
183 @param table_id - MPLS fib table id
184 @param s_bit - End-of-stack bit
185 @param label - MPLS label value
186 @param count - the number of fib_path in path
187 @param path - array of of fib_path structures
189 manual_endian manual_print define mpls_fib_details
196 vl_api_fib_path2_t path[count];
199 /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create
200 a per-prefix label entry.
201 @param client_index - opaque cookie to identify the sender
202 @param context - sender context, to match reply w/ request
203 @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in
204 @param mb_label - The MPLS label value to bind
205 @param mb_ip_table_id - The IP table-id of the IP prefix to bind to.
206 @param mb_create_table_if_needed - Create either/both tables if required.
207 @param mb_is_bind - Bind or unbind
208 @param mb_is_ip4 - The prefix to bind to is IPv4
209 @param mb_address_length - Length of IP prefix
210 @param mb_address[16] - IP prefix/
212 define mpls_ip_bind_unbind
216 u32 mb_mpls_table_id;
219 u8 mb_create_table_if_needed;
222 u8 mb_address_length;
226 /** \brief Reply for MPLS IP bind/unbind request
227 @param context - returned sender context, to match reply w/ request
228 @param retval - return code
230 define mpls_ip_bind_unbind_reply
236 /** \brief MPLS tunnel Add / del route
237 @param client_index - opaque cookie to identify the sender
238 @param context - sender context, to match reply w/ request
239 @param mt_is_add - Is this a route add or delete
240 @param mt_sw_if_index - The SW interface index of the tunnel to delete
241 @param mt_next_hop_proto_is_ip4 - The next-hop is IPV4
242 @param mt_next_hop_weight - The weight, for UCMP
243 @param mt_next_hop[16] - the nextop address
244 @param mt_next_hop_sw_if_index - the next-hop SW interface
245 @param mt_next_hop_table_id - the next-hop table-id (if appropriate)
246 @param mt_next_hop_n_out_labels - the number of next-hop output labels
247 @param mt_next_hop_out_label_stack - the next-hop output label stack, outer most first
249 define mpls_tunnel_add_del
256 u8 mt_next_hop_proto_is_ip4;
257 u8 mt_next_hop_weight;
259 u8 mt_next_hop_n_out_labels;
260 u32 mt_next_hop_sw_if_index;
261 u32 mt_next_hop_table_id;
262 u32 mt_next_hop_out_label_stack[mt_next_hop_n_out_labels];
265 /** \brief Reply for MPLS tunnel add / del request
266 @param context - returned sender context, to match reply w/ request
267 @param retval - return code
268 @param sw_if_index - SW interface index of the tunnel created
270 define mpls_tunnel_add_del_reply
277 /** \brief Dump mpls eth tunnel table
278 @param client_index - opaque cookie to identify the sender
279 @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels
281 define mpls_tunnel_dump
288 /** \brief mpls eth tunnel operational state response
289 @param tunnel_index - eth tunnel identifier
290 @param intfc_address - interface ipv4 addr
291 @param mask_width - interface ipv4 addr mask
292 @param hw_if_index - interface id
294 @param tunnel_dst_mac -
295 @param tx_sw_if_index -
296 @param encap_index - reference to mpls label table
297 @param nlabels - number of resolved labels
298 @param labels - resolved labels
300 define mpls_tunnel_details
306 u8 mt_next_hop_proto_is_ip4;
308 u32 mt_next_hop_sw_if_index;
309 u32 mt_next_hop_table_id;
310 u32 mt_next_hop_n_labels;
311 u32 mt_next_hop_out_labels[mt_next_hop_n_labels];
314 /** \brief Proxy ARP add / del request
315 @param client_index - opaque cookie to identify the sender
316 @param context - sender context, to match reply w/ request
317 @param vrf_id - VRF / Fib table ID
318 @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
319 @param low_address[4] - Low address of the Proxy ARP range
320 @param hi_address[4] - High address of the Proxy ARP range
322 define proxy_arp_add_del
332 /** \brief Reply for proxy arp add / del request
333 @param context - returned sender context, to match reply w/ request
334 @param retval - return code
336 define proxy_arp_add_del_reply
342 /** \brief Proxy ARP add / del request
343 @param client_index - opaque cookie to identify the sender
344 @param context - sender context, to match reply w/ request
345 @param sw_if_index - Which interface to enable / disable Proxy Arp on
346 @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
348 define proxy_arp_intfc_enable_disable
353 /* 1 = on, 0 = off */
357 /** \brief Reply for Proxy ARP interface enable / disable request
358 @param context - returned sender context, to match reply w/ request
359 @param retval - return code
361 define proxy_arp_intfc_enable_disable_reply
367 /** \brief Reset VRF (remove all routes etc) request
368 @param client_index - opaque cookie to identify the sender
369 @param context - sender context, to match reply w/ request
370 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
371 @param vrf_id - ID of th FIB table / VRF to reset
381 /** \brief Reply for Reset VRF request
382 @param context - returned sender context, to match reply w/ request
383 @param retval - return code
385 define reset_vrf_reply
391 /** \brief Is Address Reachable request - DISABLED
392 @param client_index - opaque cookie to identify the sender
393 @param context - sender context, to match reply w/ request
394 @param next_hop_sw_if_index - index of interface used to get to next hop
395 @param is_ipv6 - 1 for IPv6, 0 for IPv4
396 @param is_error - address not found or does not match intf
397 @param address[] - Address in question
399 define is_address_reachable
401 u32 client_index; /* (api_main_t *) am->my_client_index */
403 u32 next_hop_sw_if_index;
404 u8 is_known; /* on reply, this is the answer */
406 u8 is_error; /* address not found or does not match intf */
410 /** \brief Want Stats, register for stats updates
411 @param client_index - opaque cookie to identify the sender
412 @param context - sender context, to match reply w/ request
413 @param enable_disable - 1 = enable stats, 0 = disable
414 @param pid - pid of process requesting stats updates
424 /** \brief Reply for Want Stats request
425 @param context - returned sender context, to match reply w/ request
426 @param retval - return code
428 define want_stats_reply
434 typeonly manual_print manual_endian define ip4_fib_counter
442 manual_print manual_endian define vnet_ip4_fib_counters
446 vl_api_ip4_fib_counter_t c[count];
449 typeonly manual_print manual_endian define ip6_fib_counter
457 manual_print manual_endian define vnet_ip6_fib_counters
461 vl_api_ip6_fib_counter_t c[count];
464 /** \brief Request for a single block of summary stats
465 @param client_index - opaque cookie to identify the sender
466 @param context - sender context, to match reply w/ request
468 define vnet_get_summary_stats
474 /** \brief Reply for vnet_get_summary_stats request
475 @param context - sender context, to match reply w/ request
476 @param retval - return code for request
481 define vnet_summary_stats_reply
490 /** \brief OAM event structure
491 @param dst_address[] -
500 /** \brief Want OAM events request
501 @param client_index - opaque cookie to identify the sender
502 @param context - sender context, to match reply w/ request
503 @param enable_disable- enable if non-zero, else disable
504 @param pid - pid of the requesting process
506 define want_oam_events
514 /** \brief Want OAM events response
515 @param context - sender context, to match reply w/ request
516 @param retval - return code for the want oam stats request
518 define want_oam_events_reply
524 /** \brief OAM add / del target request
525 @param client_index - opaque cookie to identify the sender
526 @param context - sender context, to match reply w/ request
527 @param vrf_id - vrf_id of the target
528 @param src_address[] - source address to use for the updates
529 @param dst_address[] - destination address of the target
530 @param is_add - add target if non-zero, else delete
542 /** \brief OAM add / del target response
543 @param context - sender context, to match reply w/ request
544 @param retval - return code of the request
546 define oam_add_del_reply
552 /** \brief Reset fib table request
553 @param client_index - opaque cookie to identify the sender
554 @param context - sender context, to match reply w/ request
555 @param vrf_id - vrf/table id of the fib table to reset
556 @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
566 /** \brief Reset fib response
567 @param context - sender context, to match reply w/ request
568 @param retval - return code for the reset bfib request
570 define reset_fib_reply
576 /** \brief DHCP Proxy config add / del request
577 @param client_index - opaque cookie to identify the sender
578 @param context - sender context, to match reply w/ request
579 @param vrf_id - vrf id
580 @param if_ipv6 - ipv6 if non-zero, else ipv4
581 @param is_add - add the config if non-zero, else delete
582 @param insert_circuit_id - option82 suboption 1 fib number
583 @param dhcp_server[] - server address
584 @param dhcp_src_address[] - <fix this, need details>
586 define dhcp_proxy_config
593 u8 insert_circuit_id;
595 u8 dhcp_src_address[16];
598 /** \brief DHCP Proxy config response
599 @param context - sender context, to match reply w/ request
600 @param retval - return code for the request
602 define dhcp_proxy_config_reply
608 /** \brief DHCP Proxy set / unset vss request
609 @param client_index - opaque cookie to identify the sender
610 @param context - sender context, to match reply w/ request
611 @param tbl_id - table id
612 @param oui - first part of vpn id
613 @param fib_id - second part of vpn id
614 @param is_ipv6 - ip6 if non-zero, else ip4
615 @param is_add - set vss if non-zero, else delete
617 define dhcp_proxy_set_vss
628 /** \brief DHCP proxy set / unset vss response
629 @param context - sender context, to match reply w/ request
630 @param retval - return code for the request
632 define dhcp_proxy_set_vss_reply
638 /** \brief Create loopback interface request
639 @param client_index - opaque cookie to identify the sender
640 @param context - sender context, to match reply w/ request
641 @param mac_address - mac addr to assign to the interface if none-zero
643 define create_loopback
650 /** \brief Create loopback interface response
651 @param context - sender context, to match reply w/ request
652 @param sw_if_index - sw index of the interface that was created
653 @param retval - return code for the request
655 define create_loopback_reply
662 /** \brief Delete loopback interface request
663 @param client_index - opaque cookie to identify the sender
664 @param context - sender context, to match reply w/ request
665 @param sw_if_index - sw index of the interface that was created
667 define delete_loopback
674 /** \brief Delete loopback interface response
675 @param context - sender context, to match reply w/ request
676 @param retval - return code for the request
678 define delete_loopback_reply
684 /** \brief Control ping from client to api server request
685 @param client_index - opaque cookie to identify the sender
686 @param context - sender context, to match reply w/ request
694 /** \brief Control ping from the client to the server response
695 @param client_index - opaque cookie to identify the sender
696 @param context - sender context, to match reply w/ request
697 @param retval - return code for the request
698 @param vpe_pid - the pid of the vpe, returned by the server
700 define control_ping_reply
708 /** \brief Process a vpe parser cli string request
709 @param client_index - opaque cookie to identify the sender
710 @param context - sender context, to match reply w/ request
711 @param cmd_in_shmem - pointer to cli command string
727 /** \brief vpe parser cli string response
728 @param context - sender context, to match reply w/ request
729 @param retval - return code for request
730 @param reply_in_shmem - Reply string from cli processing if any
738 define cli_inband_reply
746 /** \brief Set max allowed ARP or ip6 neighbor entries request
747 @param client_index - opaque cookie to identify the sender
748 @param context - sender context, to match reply w/ request
749 @param is_ipv6 - neighbor limit if non-zero, else ARP limit
750 @param arp_neighbor_limit - the new limit, defaults are ~ 50k
752 define set_arp_neighbor_limit
757 u32 arp_neighbor_limit;
760 /** \brief Set max allowed ARP or ip6 neighbor entries response
761 @param context - sender context, to match reply w/ request
762 @param retval - return code for request
764 define set_arp_neighbor_limit_reply
770 /** \brief L2 interface patch add / del request
771 @param client_index - opaque cookie to identify the sender
772 @param context - sender context, to match reply w/ request
773 @param rx_sw_if_index - receive side interface
774 @param tx_sw_if_index - transmit side interface
775 @param is_add - if non-zero set up the interface patch, else remove it
777 define l2_patch_add_del
786 /** \brief L2 interface patch add / del response
787 @param context - sender context, to match reply w/ request
788 @param retval - return code for the request
790 define l2_patch_add_del_reply
796 /** \brief IPv6 segment routing tunnel add / del request
797 @param client_index - opaque cookie to identify the sender
798 @param context - sender context, to match reply w/ request
799 @param is_add - add the tunnel if non-zero, else delete it
800 @param name[] - tunnel name (len. 64)
801 @param src_address[] -
802 @param dst_address[] -
803 @param dst_mask_width -
804 @param inner_vrf_id -
805 @param outer_vrf_id -
806 @param flags_net_byte_order -
809 @param segs_and_tags[] -
810 @param policy_name[] - name of policy to associate this tunnel to (len. 64)
812 define sr_tunnel_add_del
823 u16 flags_net_byte_order;
830 /** \brief IPv6 segment routing tunnel add / del response
831 @param context - sender context, to match reply w/ request
832 @param retval - return value for request
834 define sr_tunnel_add_del_reply
840 /** \brief IPv6 segment routing policy add / del request
841 @param client_index - opaque cookie to identify the sender
842 @param context - sender context, to match reply w/ request
843 @param is_add - add the tunnel if non-zero, else delete it
844 @param name[] - policy name (len. 64)
845 @param tunnel_names[] -
847 define sr_policy_add_del
856 /** \brief IPv6 segment routing policy add / del response
857 @param context - sender context, to match reply w/ request
858 @param retval - return value for request
860 define sr_policy_add_del_reply
866 /** \brief IPv6 segment routing multicast map to policy add / del request
867 @param client_index - opaque cookie to identify the sender
868 @param context - sender context, to match reply w/ request
869 @param is_add - add the tunnel if non-zero, else delete it
870 @param multicast_address[] - IP6 multicast address
871 @param policy_name[] = policy name (len.64)
873 define sr_multicast_map_add_del
878 u8 multicast_address[16];
882 /** \brief IPv6 segment routing multicast map to policy add / del response
883 @param context - sender context, to match reply w/ request
884 @param retval - return value for request
886 define sr_multicast_map_add_del_reply
892 /** \brief Interface set vpath request
893 @param client_index - opaque cookie to identify the sender
894 @param context - sender context, to match reply w/ request
895 @param sw_if_index - interface used to reach neighbor
896 @param enable - if non-zero enable, else disable
898 define sw_interface_set_vpath
906 /** \brief Interface set vpath response
907 @param context - sender context, to match reply w/ request
908 @param retval - return code for the request
910 define sw_interface_set_vpath_reply
916 /** \brief Set L2 XConnect between two interfaces request
917 @param client_index - opaque cookie to identify the sender
918 @param context - sender context, to match reply w/ request
919 @param rx_sw_if_index - Receive interface index
920 @param tx_sw_if_index - Transmit interface index
921 @param enable - enable xconnect if not 0, else set to L3 mode
923 define sw_interface_set_l2_xconnect
932 /** \brief Set L2 XConnect response
933 @param context - sender context, to match reply w/ request
934 @param retval - L2 XConnect request return code
936 define sw_interface_set_l2_xconnect_reply
942 /** \brief Interface bridge mode request
943 @param client_index - opaque cookie to identify the sender
944 @param context - sender context, to match reply w/ request
945 @param rx_sw_if_index - the interface
946 @param bd_id - bridge domain id
947 @param bvi - Setup interface as a bvi, bridge mode only
948 @param shg - Shared horizon group, for bridge mode only
949 @param enable - Enable beige mode if not 0, else set to L3 mode
951 define sw_interface_set_l2_bridge
962 /** \brief Interface bridge mode response
963 @param context - sender context, to match reply w/ request
964 @param retval - Bridge mode request return code
966 define sw_interface_set_l2_bridge_reply
972 /** \brief L2 FIB add entry request
973 @param client_index - opaque cookie to identify the sender
974 @param context - sender context, to match reply w/ request
975 @param mac - the entry's mac address
976 @param bd_id - the entry's bridge domain id
977 @param sw_if_index - the interface
978 @param is_add - If non zero add the entry, else delete it
995 /** \brief L2 FIB add entry response
996 @param context - sender context, to match reply w/ request
997 @param retval - return code for the add l2fib entry request
999 define l2fib_add_del_reply
1005 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
1006 @param client_index - opaque cookie to identify the sender
1007 @param context - sender context, to match reply w/ request
1008 @param sw_if_index - interface
1009 @param is_set - if non-zero, set the bits, else clear them
1010 @param feature_bitmap - non-zero bits to set or clear
1021 /** \brief Set L2 bits response
1022 @param context - sender context, to match reply w/ request
1023 @param retval - return code for the set l2 bits request
1025 define l2_flags_reply
1029 u32 resulting_feature_bitmap;
1032 /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
1033 L2_UU_FLOOD, or L2_ARP_TERM) request
1034 @param client_index - opaque cookie to identify the sender
1035 @param context - sender context, to match reply w/ request
1036 @param bd_id - the bridge domain to set the flags for
1037 @param is_set - if non-zero, set the flags, else clear them
1038 @param feature_bitmap - bits that are non-zero to set or clear
1049 /** \brief Set bridge flags response
1050 @param context - sender context, to match reply w/ request
1051 @param retval - return code for the set bridge flags request
1052 @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
1054 define bridge_flags_reply
1058 u32 resulting_feature_bitmap;
1061 /** \brief Set bridge domain ip to mac entry request
1062 @param client_index - opaque cookie to identify the sender
1063 @param context - sender context, to match reply w/ request
1064 @param bd_id - the bridge domain to set the flags for
1065 @param is_add - if non-zero, add the entry, else clear it
1066 @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
1067 @param mac_address - MAC address
1070 define bd_ip_mac_add_del
1081 /** \brief Set bridge domain ip to mac entry response
1082 @param context - sender context, to match reply w/ request
1083 @param retval - return code for the set bridge flags request
1085 define bd_ip_mac_add_del_reply
1091 /** \brief Add/Delete classification table request
1092 @param client_index - opaque cookie to identify the sender
1093 @param context - sender context, to match reply w/ request
1094 @param is_add- if non-zero add the table, else delete it
1095 @param del_chain - if non-zero delete the whole chain of tables
1096 @param table_index - if add, reuturns index of the created table, else specifies the table to delete
1097 @param nbuckets - number of buckets when adding a table
1098 @param memory_size - memory size when adding a table
1099 @param match_n_vectors - number of match vectors
1100 @param next_table_index - index of next table
1101 @param miss_next_index - index of miss table
1102 @param current_data_flag - option to use current node's packet payload
1103 as the starting point from where packets are classified,
1104 This option is only valid for L2/L3 input ACL for now.
1105 0: by default, classify data from the buffer's start location
1106 1: classify packets from VPP node’s current data pointer
1107 @param current_data_offset - a signed value to shift the start location of
1108 the packet to be classified
1109 For example, if input IP ACL node is used, L2 header’s first byte
1110 can be accessible by configuring current_data_offset to -14
1111 if there is no vlan tag.
1112 This is valid only if current_data_flag is set to 1.
1113 @param mask[] - match mask
1115 define classify_add_del_table
1125 u32 match_n_vectors;
1126 u32 next_table_index;
1127 u32 miss_next_index;
1128 u32 current_data_flag;
1129 i32 current_data_offset;
1133 /** \brief Add/Delete classification table response
1134 @param context - sender context, to match reply w/ request
1135 @param retval - return code for the table add/del requst
1136 @param new_table_index - for add, returned index of the new table
1137 @param skip_n_vectors - for add, returned value of skip_n_vectors in table
1138 @param match_n_vectors -for add, returned value of match_n_vectors in table
1140 define classify_add_del_table_reply
1144 u32 new_table_index;
1146 u32 match_n_vectors;
1149 /** \brief Classify add / del session request
1150 @param client_index - opaque cookie to identify the sender
1151 @param context - sender context, to match reply w/ request
1152 @param is_add - add session if non-zero, else delete
1153 @param table_index - index of the table to add/del the session, required
1154 @param hit_next_index - for add, hit_next_index of new session, required
1155 @param opaque_index - for add, opaque_index of new session
1156 @param advance -for add, advance value for session
1158 0: no action (by default)
1159 metadata is not used.
1160 1: Classified IP packets will be looked up from the
1161 specified ipv4 fib table (configured by metadata as VRF id).
1162 Only valid for L3 input ACL node
1163 2: Classified IP packets will be looked up from the
1164 specified ipv6 fib table (configured by metadata as VRF id).
1165 Only valid for L3 input ACL node
1166 @param metadata - valid only if action != 0
1167 VRF id if action is 1 or 2.
1168 @param match[] - for add, match value for session, required
1170 define classify_add_del_session
1184 /** \brief Classify add / del session response
1185 @param context - sender context, to match reply w/ request
1186 @param retval - return code for the add/del session request
1188 define classify_add_del_session_reply
1194 /** \brief Set/unset the classification table for an interface request
1195 @param client_index - opaque cookie to identify the sender
1196 @param context - sender context, to match reply w/ request
1197 @param is_ipv6 - ipv6 if non-zero, else ipv4
1198 @param sw_if_index - interface to associate with the table
1199 @param table_index - index of the table, if ~0 unset the table
1201 define classify_set_interface_ip_table
1207 u32 table_index; /* ~0 => off */
1210 /** \brief Set/unset interface classification table response
1211 @param context - sender context, to match reply w/ request
1212 @param retval - return code
1214 define classify_set_interface_ip_table_reply
1220 /** \brief Set/unset l2 classification tables for an interface request
1221 @param client_index - opaque cookie to identify the sender
1222 @param context - sender context, to match reply w/ request
1223 @param sw_if_index - interface to set/unset tables for
1224 @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
1225 @param ip6_table_index - ip6 index
1226 @param other_table_index - other index
1228 define classify_set_interface_l2_tables
1234 u32 ip4_table_index;
1235 u32 ip6_table_index;
1236 u32 other_table_index;
1240 /** \brief Set/unset l2 classification tables for an interface response
1241 @param context - sender context, to match reply w/ request
1242 @param retval - return code for the request
1244 define classify_set_interface_l2_tables_reply
1250 /** \brief Get node index using name request
1251 @param client_index - opaque cookie to identify the sender
1252 @param context - sender context, to match reply w/ request
1253 @param node_name[] - name of the node
1255 define get_node_index
1262 /** \brief Get node index using name request
1263 @param context - sender context, to match reply w/ request
1264 @param retval - return code for the request
1265 @param node_index - index of the desired node if found, else ~0
1267 define get_node_index_reply
1274 /** \brief Set the next node for a given node request
1275 @param client_index - opaque cookie to identify the sender
1276 @param context - sender context, to match reply w/ request
1277 @param node_name[] - node to add the next node to
1278 @param next_name[] - node to add as the next node
1280 define add_node_next
1288 /** \brief IP Set the next node for a given node response
1289 @param context - sender context, to match reply w/ request
1290 @param retval - return code for the add next node request
1291 @param next_index - the index of the next node if success, else ~0
1293 define add_node_next_reply
1300 /** \brief DHCP Proxy config 2 add / del request
1301 @param client_index - opaque cookie to identify the sender
1302 @param context - sender context, to match reply w/ request
1303 @param rx_vrf_id - receive vrf id
1304 @param server_vrf_id - server vrf id
1305 @param if_ipv6 - ipv6 if non-zero, else ipv4
1306 @param is_add - add the config if non-zero, else delete
1307 @param insert_circuit_id - option82 suboption 1 fib number
1308 @param dhcp_server[] - server address
1309 @param dhcp_src_address[] - <fix this, need details>
1311 define dhcp_proxy_config_2
1319 u8 insert_circuit_id;
1321 u8 dhcp_src_address[16];
1324 /** \brief DHCP Proxy config 2 add / del response
1325 @param context - sender context, to match reply w/ request
1326 @param retval - return code for request
1328 define dhcp_proxy_config_2_reply
1334 /** \brief L2 fib clear table request, clear all mac entries in the l2 fib
1335 @param client_index - opaque cookie to identify the sender
1336 @param context - sender context, to match reply w/ request
1338 define l2_fib_clear_table
1344 /** \brief L2 fib clear table response
1345 @param context - sender context, to match reply w/ request
1346 @param retval - return code for the request
1348 define l2_fib_clear_table_reply
1354 /** \brief L2 interface ethernet flow point filtering enable/disable request
1355 @param client_index - opaque cookie to identify the sender
1356 @param context - sender context, to match reply w/ request
1357 @param sw_if_index - interface to enable/disable filtering on
1358 @param enable_disable - if non-zero enable filtering, else disable
1360 define l2_interface_efp_filter
1368 /** \brief L2 interface ethernet flow point filtering response
1369 @param context - sender context, to match reply w/ request
1370 @param retval - return code for the request
1372 define l2_interface_efp_filter_reply
1378 /** \brief L2 interface vlan tag rewrite configure request
1379 @param client_index - opaque cookie to identify the sender
1380 @param context - sender context, to match reply w/ request
1381 @param sw_if_index - interface the operation is applied to
1382 @param vtr_op - Choose from l2_vtr_op_t enum values
1383 @param push_dot1q - first pushed flag dot1q id set, else dot1ad
1384 @param tag1 - Needed for any push or translate vtr op
1385 @param tag2 - Needed for any push 2 or translate x-2 vtr ops
1387 define l2_interface_vlan_tag_rewrite
1393 u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
1394 u32 tag1; // first pushed tag
1395 u32 tag2; // second pushed tag
1398 /** \brief L2 interface vlan tag rewrite response
1399 @param context - sender context, to match reply w/ request
1400 @param retval - return code for the request
1402 define l2_interface_vlan_tag_rewrite_reply
1415 /* These fields map directly onto the subif template */
1419 u8 dot1ad; // 0 = dot1q, 1=dot1ad
1422 u8 outer_vlan_id_any;
1423 u8 inner_vlan_id_any;
1428 define create_subif_reply
1435 /** \brief show version
1436 @param client_index - opaque cookie to identify the sender
1437 @param context - sender context, to match reply w/ request
1445 /** \brief show version response
1446 @param context - sender context, to match reply w/ request
1447 @param retval - return code for the request
1448 @param program - name of the program (vpe)
1449 @param version - version of the program
1450 @param build_directory - root of the workspace where the program was built
1452 define show_version_reply
1459 u8 build_directory[256];
1462 /** \brief l2 fib table entry structure
1463 @param bd_id - the l2 fib / bridge domain table id
1464 @param mac - the entry's mac address
1465 @param sw_if_index - index of the interface
1466 @param static_mac - the entry is statically configured.
1467 @param filter_mac - the entry is a mac filter entry.
1468 @param bvi_mac - the mac address is a bridge virtual interface
1470 define l2_fib_table_entry
1481 /** \brief Dump l2 fib (aka bridge domain) table
1482 @param client_index - opaque cookie to identify the sender
1483 @param bd_id - the l2 fib / bridge domain table identifier
1485 define l2_fib_table_dump
1492 /** \brief add or delete locator_set
1493 @param client_index - opaque cookie to identify the sender
1494 @param context - sender context, to match reply w/ request
1495 @param is_add - add address if non-zero, else delete
1496 @param locator_set_name - locator name
1497 @param locator_num - number of locators
1498 @param locators - LISP locator records
1499 Structure of one locator record is as follows:
1507 define lisp_add_del_locator_set
1512 u8 locator_set_name[64];
1517 /** \brief Reply for locator_set add/del
1518 @param context - returned sender context, to match reply w/ request
1519 @param retval - return code
1520 @param ls_index - locator set index
1522 define lisp_add_del_locator_set_reply
1529 /** \brief add or delete locator for locator_set
1530 @param client_index - opaque cookie to identify the sender
1531 @param context - sender context, to match reply w/ request
1532 @param is_add - add address if non-zero, else delete
1533 @param locator_set_name - name of locator_set to add/del locator
1534 @param sw_if_index - index of the interface
1535 @param priority - priority of the lisp locator
1536 @param weight - weight of the lisp locator
1538 define lisp_add_del_locator
1543 u8 locator_set_name[64];
1549 /** \brief Reply for locator add/del
1550 @param context - returned sender context, to match reply w/ request
1551 @param retval - return code
1553 define lisp_add_del_locator_reply
1559 /** \brief add or delete lisp eid-table
1560 @param client_index - opaque cookie to identify the sender
1561 @param context - sender context, to match reply w/ request
1562 @param is_add - add address if non-zero, else delete
1567 @param eid - EID can be ip4, ip6 or mac
1568 @param prefix_len - prefix len
1569 @param locator_set_name - name of locator_set to add/del eid-table
1570 @param vni - virtual network instance
1575 @param key - secret key
1577 define lisp_add_del_local_eid
1585 u8 locator_set_name[64];
1591 /** \brief Reply for local_eid add/del
1592 @param context - returned sender context, to match reply w/ request
1593 @param retval - return code
1595 define lisp_add_del_local_eid_reply
1601 /** \brief add or delete lisp gpe tunnel
1602 @param client_index - opaque cookie to identify the sender
1603 @param context - sender context, to match reply w/ request
1604 @param is_add - add address if non-zero, else delete
1609 @param rmt_eid - remote eid
1610 @param lcl_eid - local eid
1611 @param rmt_len - remote prefix len
1612 @param lcl_len - local prefix len
1613 @param vni - virtual network identifier
1614 @param dp_table - vrf/bridge domain id
1615 @param loc_num - number of locators
1616 @param lcl_locs - array of local locators
1617 @param rmt_locs - array of remote locators
1618 @param action - negative action when 0 locators configured
1620 define lisp_gpe_add_del_fwd_entry
1633 u8 lcl_locs[loc_num];
1634 u8 rmt_locs[loc_num];
1638 /** \brief Reply for gpe_fwd_entry add/del
1639 @param context - returned sender context, to match reply w/ request
1640 @param retval - return code
1642 define lisp_gpe_add_del_fwd_entry_reply
1648 /** \brief Add/delete map server
1649 @param client_index - opaque cookie to identify the sender
1650 @param context - sender context, to match reply w/ request
1651 @param is_add - add address if non-zero; delete otherwise
1652 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1653 @param ip_address - map server IP address
1655 define lisp_add_del_map_server
1664 /** \brief Reply for lisp_add_del_map_server
1665 @param context - returned sender context, to match reply w/ request
1666 @param retval - return code
1668 define lisp_add_del_map_server_reply
1674 /** \brief add or delete map-resolver
1675 @param client_index - opaque cookie to identify the sender
1676 @param context - sender context, to match reply w/ request
1677 @param is_add - add address if non-zero, else delete
1678 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1679 @param ip_address - array of address bytes
1681 define lisp_add_del_map_resolver
1690 /** \brief Reply for map_resolver add/del
1691 @param context - returned sender context, to match reply w/ request
1692 @param retval - return code
1694 define lisp_add_del_map_resolver_reply
1700 /** \brief enable or disable lisp-gpe protocol
1701 @param client_index - opaque cookie to identify the sender
1702 @param context - sender context, to match reply w/ request
1703 @param is_en - enable protocol if non-zero, else disable
1705 define lisp_gpe_enable_disable
1712 /** \brief Reply for gpe enable/disable
1713 @param context - returned sender context, to match reply w/ request
1714 @param retval - return code
1716 define lisp_gpe_enable_disable_reply
1722 /** \brief enable or disable LISP feature
1723 @param client_index - opaque cookie to identify the sender
1724 @param context - sender context, to match reply w/ request
1725 @param is_en - enable protocol if non-zero, else disable
1727 define lisp_enable_disable
1734 /** \brief Reply for gpe enable/disable
1735 @param context - returned sender context, to match reply w/ request
1736 @param retval - return code
1738 define lisp_enable_disable_reply
1744 /** \brief add or delete gpe_iface
1745 @param client_index - opaque cookie to identify the sender
1746 @param context - sender context, to match reply w/ request
1747 @param is_add - add address if non-zero, else delete
1749 define lisp_gpe_add_del_iface
1759 /** \brief Reply for gpe_iface add/del
1760 @param context - returned sender context, to match reply w/ request
1761 @param retval - return code
1763 define lisp_gpe_add_del_iface_reply
1769 /** \brief configure or disable LISP PITR node
1770 @param client_index - opaque cookie to identify the sender
1771 @param context - sender context, to match reply w/ request
1772 @param ls_name - locator set name
1773 @param is_add - add locator set if non-zero, else disable pitr
1775 define lisp_pitr_set_locator_set
1783 /** \brief Reply for lisp_pitr_set_locator_set
1784 @param context - returned sender context, to match reply w/ request
1785 @param retval - return code
1787 define lisp_pitr_set_locator_set_reply
1793 /** \brief Get state of LISP RLOC probing
1794 @param client_index - opaque cookie to identify the sender
1795 @param context - sender context, to match reply w/ request
1797 define show_lisp_rloc_probe_state
1803 /** \brief Reply for show_lisp_rloc_probe_state
1804 @param context - returned sender context, to match reply w/ request
1805 @param retval - return code
1806 @param is_enabled - state of RLOC probing
1808 define show_lisp_rloc_probe_state_reply
1815 /** \brief enable/disable LISP RLOC probing
1816 @param client_index - opaque cookie to identify the sender
1817 @param context - sender context, to match reply w/ request
1818 @param is_enable - enable if non-zero; disable otherwise
1820 define lisp_rloc_probe_enable_disable
1827 /** \brief Reply for lisp_rloc_probe_enable_disable
1828 @param context - returned sender context, to match reply w/ request
1829 @param retval - return code
1831 define lisp_rloc_probe_enable_disable_reply
1837 /** \brief enable/disable LISP map-register
1838 @param client_index - opaque cookie to identify the sender
1839 @param context - sender context, to match reply w/ request
1840 @param is_enable - enable if non-zero; disable otherwise
1842 define lisp_map_register_enable_disable
1849 /** \brief Reply for lisp_map_register_enable_disable
1850 @param context - returned sender context, to match reply w/ request
1851 @param retval - return code
1853 define lisp_map_register_enable_disable_reply
1859 /** \brief Get state of LISP map-register
1860 @param client_index - opaque cookie to identify the sender
1861 @param context - sender context, to match reply w/ request
1863 define show_lisp_map_register_state
1869 /** \brief Reply for show_lisp_map_register_state
1870 @param context - returned sender context, to match reply w/ request
1871 @param retval - return code
1873 define show_lisp_map_register_state_reply
1880 /** \brief set LISP map-request mode. Based on configuration VPP will send
1881 src/dest or just normal destination map requests.
1882 @param client_index - opaque cookie to identify the sender
1883 @param context - sender context, to match reply w/ request
1884 @param mode - new map-request mode. Supported values are:
1885 0 - destination only
1886 1 - source/destaination
1888 define lisp_map_request_mode
1895 /** \brief Reply for lisp_map_request_mode
1896 @param context - returned sender context, to match reply w/ request
1897 @param retval - return code
1899 define lisp_map_request_mode_reply
1905 /** \brief Request for LISP map-request mode
1906 @param client_index - opaque cookie to identify the sender
1907 @param context - sender context, to match reply w/ request
1909 define show_lisp_map_request_mode
1915 /** \brief Reply for show_lisp_map_request_mode
1916 @param context - returned sender context, to match reply w/ request
1917 @param retval - return code
1918 @param mode - map-request mode
1920 define show_lisp_map_request_mode_reply
1927 /** \brief add or delete remote static mapping
1928 @param client_index - opaque cookie to identify the sender
1929 @param context - sender context, to match reply w/ request
1930 @param is_add - add address if non-zero, else delete
1931 @param is_src_dst - flag indicating src/dst based routing policy
1932 @param del_all - if set, delete all remote mappings
1933 @param vni - virtual network instance
1934 @param action - negative map-reply action
1939 @param deid - dst EID
1940 @param seid - src EID, valid only if is_src_dst is enabled
1941 @param rloc_num - number of remote locators
1942 @param rlocs - remote locator records
1943 Structure of remote locator:
1952 define lisp_add_del_remote_mapping
1970 /** \brief Reply for lisp_add_del_remote_mapping
1971 @param context - returned sender context, to match reply w/ request
1972 @param retval - return code
1974 define lisp_add_del_remote_mapping_reply
1980 /** \brief add or delete LISP adjacency adjacency
1981 @param client_index - opaque cookie to identify the sender
1982 @param context - sender context, to match reply w/ request
1983 @param is_add - add address if non-zero, else delete
1984 @param vni - virtual network instance
1989 @param reid - remote EID
1990 @param leid - local EID
1992 define lisp_add_del_adjacency
2005 /** \brief Reply for lisp_add_del_adjacency
2006 @param context - returned sender context, to match reply w/ request
2007 @param retval - return code
2009 define lisp_add_del_adjacency_reply
2015 /** \brief add or delete map request itr rlocs
2016 @param client_index - opaque cookie to identify the sender
2017 @param context - sender context, to match reply w/ request
2018 @param is_add - add address if non-zero, else delete
2019 @param locator_set_name - locator set name
2021 define lisp_add_del_map_request_itr_rlocs
2026 u8 locator_set_name[64];
2029 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
2030 @param context - returned sender context, to match reply w/ request
2031 @param retval - return code
2034 define lisp_add_del_map_request_itr_rlocs_reply
2040 /** \brief map/unmap vni/bd_index to vrf
2041 @param client_index - opaque cookie to identify the sender
2042 @param context - sender context, to match reply w/ request
2043 @param is_add - add or delete mapping
2044 @param dp_table - virtual network id/bridge domain index
2047 define lisp_eid_table_add_del_map
2057 /** \brief Reply for lisp_eid_table_add_del_map
2058 @param context - returned sender context, to match reply w/ request
2059 @param retval - return code
2061 define lisp_eid_table_add_del_map_reply
2067 /** \brief Request for map lisp locator status
2068 @param client_index - opaque cookie to identify the sender
2069 @param context - sender context, to match reply w/ request
2070 @param locator_set_index - index of locator_set
2071 @param ls_name - locator set name
2072 @param is_index_set - flag indicating whether ls_name or ls_index is set
2074 define lisp_locator_dump
2083 /** \brief LISP locator_set status
2084 @param local - if is set, then locator is local
2085 @param locator_set_name - name of the locator_set
2086 @param sw_if_index - sw_if_index of the locator
2087 @param priority - locator priority
2088 @param weight - locator weight
2090 define lisp_locator_details
2101 /** \brief LISP locator_set status
2102 @param context - sender context, to match reply w/ request
2103 @param ls_index - locator set index
2104 @param ls_name - name of the locator set
2106 define lisp_locator_set_details
2113 /** \brief Request for locator_set summary status
2114 @param client_index - opaque cookie to identify the sender
2115 @param context - sender context, to match reply w/ request
2116 @param filter - filter type
2119 1: local locator sets
2120 2: remote locator sets
2122 define lisp_locator_set_dump
2129 /** \brief Dump lisp eid-table
2130 @param client_index - opaque cookie to identify the sender
2131 @param context - sender context, to match reply w/ request
2132 @param locator_set_index - index of locator_set, if ~0 then the mapping
2134 @param action - negative map request action
2135 @param is_local - local if non-zero, else remote
2140 @param is_src_dst - EID is type of source/destination
2141 @param eid - EID can be ip4, ip6 or mac
2142 @param eid_prefix_len - prefix length
2143 @param seid - source EID can be ip4, ip6 or mac
2144 @param seid_prefix_len - source prefix length
2145 @param vni - virtual network instance
2146 @param ttl - time to live
2147 @param authoritative - authoritative
2152 @param key - secret key
2155 define lisp_eid_table_details
2158 u32 locator_set_index;
2174 /** \brief Request for eid table summary status
2175 @param client_index - opaque cookie to identify the sender
2176 @param context - sender context, to match reply w/ request
2177 @param eid_set - if non-zero request info about specific mapping
2178 @param vni - virtual network instance; valid only if eid_set != 0
2179 @param prefix_length - prefix length if EID is IP address;
2180 valid only if eid_set != 0
2181 @param eid_type - EID type; valid only if eid_set != 0
2185 2: EID is ethernet address
2186 @param eid - endpoint identifier
2187 @param filter - filter type;
2193 define lisp_eid_table_dump
2205 /** \brief LISP adjacency
2210 @param reid - remote EID
2211 @param leid - local EID
2212 @param reid_prefix_len - remote EID IP prefix length
2213 @param leid_prefix_len - local EID IP prefix length
2215 typeonly manual_print manual_endian define lisp_adjacency
2224 /** \brief LISP adjacency reply
2225 @param count - number of adjacencies
2226 @param adjacencies - array of adjacencies
2228 manual_endian manual_print define lisp_adjacencies_get_reply
2233 vl_api_lisp_adjacency_t adjacencies[count];
2236 /** \brief Request for LISP adjacencies
2237 @param client_index - opaque cookie to identify the sender
2238 @param context - sender context, to match reply w/ request
2239 @param vni - filter adjacencies by VNI
2241 define lisp_adjacencies_get
2248 /** \brief Shows relationship between vni and vrf/bd
2249 @param dp_table - VRF index or bridge domain index
2250 @param vni - vitual network instance
2252 define lisp_eid_table_map_details
2259 /** \brief Request for lisp_eid_table_map_details
2260 @param client_index - opaque cookie to identify the sender
2261 @param context - sender context, to match reply w/ request
2262 @param is_l2 - if set dump vni/bd mappings else vni/vrf
2264 define lisp_eid_table_map_dump
2271 /** \brief Dumps all VNIs used in mappings
2272 @param client_index - opaque cookie to identify the sender
2273 @param context - sender context, to match reply w/ request
2275 define lisp_eid_table_vni_dump
2281 /** \brief reply to lisp_eid_table_vni_dump
2282 @param client_index - opaque cookie to identify the sender
2283 @param context - sender context, to match reply w/ request
2284 @param vni - virtual network instance
2286 define lisp_eid_table_vni_details
2293 define lisp_gpe_tunnel_details
2299 u8 destination_ip[16];
2311 /** \brief Request for gpe tunnel summary status
2312 @param client_index - opaque cookie to identify the sender
2313 @param context - sender context, to match reply w/ request
2315 define lisp_gpe_tunnel_dump
2321 /** \brief LISP map resolver status
2322 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2323 @param ip_address - array of address bytes
2325 define lisp_map_resolver_details
2332 /** \brief Request for map resolver summary status
2333 @param client_index - opaque cookie to identify the sender
2334 @param context - sender context, to match reply w/ request
2336 define lisp_map_resolver_dump
2342 /** \brief LISP map server details
2343 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2344 @param ip_address - array of address bytes
2346 define lisp_map_server_details
2353 /** \brief Request for map server summary status
2354 @param client_index - opaque cookie to identify the sender
2355 @param context - sender context, to match reply w/ request
2357 define lisp_map_server_dump
2363 /** \brief Request for lisp-gpe protocol status
2364 @param client_index - opaque cookie to identify the sender
2365 @param context - sender context, to match reply w/ request
2367 define show_lisp_status
2373 /** \brief Status of lisp, enable or disable
2374 @param context - sender context, to match reply w/ request
2375 @param feature_status - lisp enable if non-zero, else disable
2376 @param gpe_status - lisp enable if non-zero, else disable
2378 define show_lisp_status_reply
2386 /** \brief Get LISP map request itr rlocs status
2387 @param context - sender context, to match reply w/ request
2388 @param locator_set_name - name of the locator_set
2390 define lisp_get_map_request_itr_rlocs
2396 /** \brief Request for map request itr rlocs summary status
2398 define lisp_get_map_request_itr_rlocs_reply
2402 u8 locator_set_name[64];
2405 /** \brief Request for lisp pitr status
2406 @param client_index - opaque cookie to identify the sender
2407 @param context - sender context, to match reply w/ request
2409 define show_lisp_pitr
2415 /** \brief Status of lisp pitr, enable or disable
2416 @param context - sender context, to match reply w/ request
2417 @param status - lisp pitr enable if non-zero, else disable
2418 @param locator_set_name - name of the locator_set
2420 define show_lisp_pitr_reply
2425 u8 locator_set_name[64];
2428 /* Gross kludge, DGMS */
2429 define interface_name_renumber
2434 u32 new_show_dev_instance;
2437 define interface_name_renumber_reply
2443 /** \brief Register for ip4 arp resolution events
2444 @param client_index - opaque cookie to identify the sender
2445 @param context - sender context, to match reply w/ request
2446 @param enable_disable - 1 => register for events, 0 => cancel registration
2447 @param pid - sender's pid
2448 @param address - the exact ip4 address of interest
2450 define want_ip4_arp_events
2459 /** \brief Reply for interface events registration
2460 @param context - returned sender context, to match reply w/ request
2461 @param retval - return code
2463 define want_ip4_arp_events_reply
2469 /** \brief Tell client about an ip4 arp resolution event
2470 @param client_index - opaque cookie to identify the sender
2471 @param context - sender context, to match reply w/ request
2472 @param address - the exact ip4 address of interest
2473 @param pid - client pid registered to receive notification
2474 @param sw_if_index - interface which received ARP packet
2475 @param new_mac - the new mac address
2476 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2478 define ip4_arp_event
2489 /** \brief Register for ip6 nd resolution events
2490 @param client_index - opaque cookie to identify the sender
2491 @param context - sender context, to match reply w/ request
2492 @param enable_disable - 1 => register for events, 0 => cancel registration
2493 @param pid - sender's pid
2494 @param address - the exact ip6 address of interest
2496 define want_ip6_nd_events
2505 /** \brief Reply for ip6 nd resolution events registration
2506 @param context - returned sender context, to match reply w/ request
2507 @param retval - return code
2509 define want_ip6_nd_events_reply
2515 /** \brief Tell client about an ip6 nd resolution or mac/ip event
2516 @param client_index - opaque cookie to identify the sender
2517 @param context - sender context, to match reply w/ request
2518 @param pid - client pid registered to receive notification
2519 @param sw_if_index - interface which received ARP packet
2520 @param address - the exact ip6 address of interest
2521 @param new_mac - the new mac address
2522 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2535 /** \brief L2 bridge domain add or delete request
2536 @param client_index - opaque cookie to identify the sender
2537 @param context - sender context, to match reply w/ request
2538 @param bd_id - the bridge domain to create
2539 @param flood - enable/disable bcast/mcast flooding in the bd
2540 @param uu_flood - enable/disable uknown unicast flood in the bd
2541 @param forward - enable/disable forwarding on all interfaces in the bd
2542 @param learn - enable/disable learning on all interfaces in the bd
2543 @param arp_term - enable/disable arp termination in the bd
2544 @param mac_age - mac aging time in min, 0 for disabled
2545 @param is_add - add or delete flag
2547 define bridge_domain_add_del
2561 /** \brief L2 bridge domain add or delete response
2562 @param context - sender context, to match reply w/ request
2563 @param retval - return code for the set bridge flags request
2565 define bridge_domain_add_del_reply
2571 /** \brief L2 bridge domain request operational state details
2572 @param client_index - opaque cookie to identify the sender
2573 @param context - sender context, to match reply w/ request
2574 @param bd_id - the bridge domain id desired or ~0 to request all bds
2576 define bridge_domain_dump
2583 /** \brief L2 bridge domain operational state response
2584 @param bd_id - the bridge domain id
2585 @param flood - bcast/mcast flooding state on all interfaces in the bd
2586 @param uu_flood - uknown unicast flooding state on all interfaces in the bd
2587 @param forward - forwarding state on all interfaces in the bd
2588 @param learn - learning state on all interfaces in the bd
2589 @param arp_term - arp termination state on all interfaces in the bd
2590 @param mac_age - mac aging time in min, 0 for disabled
2591 @param n_sw_ifs - number of sw_if_index's in the domain
2593 define bridge_domain_details
2603 u32 bvi_sw_if_index;
2607 /** \brief L2 bridge domain sw interface operational state response
2608 @param bd_id - the bridge domain id
2609 @param sw_if_index - sw_if_index in the domain
2610 @param shg - split horizon group for the interface
2612 define bridge_domain_sw_if_details
2620 /** \brief DHCP Client config add / del request
2621 @param client_index - opaque cookie to identify the sender
2622 @param context - sender context, to match reply w/ request
2623 @param sw_if_index - index of the interface for DHCP client
2624 @param hostname - hostname
2625 @param is_add - add the config if non-zero, else delete
2626 @param want_dhcp_event - DHCP event sent to the sender
2627 via dhcp_compl_event API message if non-zero
2628 @param pid - sender's pid
2630 define dhcp_client_config
2641 /** \brief DHCP Client config response
2642 @param context - sender context, to match reply w/ request
2643 @param retval - return code for the request
2645 define dhcp_client_config_reply
2651 /** \brief Set/unset input ACL interface
2652 @param client_index - opaque cookie to identify the sender
2653 @param context - sender context, to match reply w/ request
2654 @param sw_if_index - interface to set/unset input ACL
2655 @param ip4_table_index - ip4 classify table index (~0 for skip)
2656 @param ip6_table_index - ip6 classify table index (~0 for skip)
2657 @param l2_table_index - l2 classify table index (~0 for skip)
2658 @param is_add - Set input ACL if non-zero, else unset
2659 Note: User is recommeneded to use just one valid table_index per call.
2660 (ip4_table_index, ip6_table_index, or l2_table_index)
2662 define input_acl_set_interface
2667 u32 ip4_table_index;
2668 u32 ip6_table_index;
2673 /** \brief Set/unset input ACL interface response
2674 @param context - sender context, to match reply w/ request
2675 @param retval - return code for the request
2677 define input_acl_set_interface_reply
2683 /** \brief Tell client about a DHCP completion event
2684 @param client_index - opaque cookie to identify the sender
2685 @param pid - client pid registered to receive notification
2686 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2687 @param host_address - Host IP address
2688 @param router_address - Router IP address
2689 @param host_mac - Host MAC address
2691 define dhcp_compl_event
2697 u8 host_address[16];
2698 u8 router_address[16];
2702 /** \brief cop: enable/disable junk filtration features on an interface
2703 @param client_index - opaque cookie to identify the sender
2704 @param context - sender context, to match reply w/ request
2705 @param sw_if_inded - desired interface
2706 @param enable_disable - 1 => enable, 0 => disable
2709 define cop_interface_enable_disable
2717 /** \brief cop: interface enable/disable junk filtration reply
2718 @param context - returned sender context, to match reply w/ request
2719 @param retval - return code
2722 define cop_interface_enable_disable_reply
2728 /** \brief cop: enable/disable whitelist filtration features on an interface
2729 Note: the supplied fib_id must match in order to remove the feature!
2731 @param client_index - opaque cookie to identify the sender
2732 @param context - sender context, to match reply w/ request
2733 @param sw_if_index - interface handle, physical interfaces only
2734 @param fib_id - fib identifier for the whitelist / blacklist fib
2735 @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
2736 @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
2737 @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it
2740 define cop_whitelist_enable_disable
2751 /** \brief cop: interface enable/disable junk filtration reply
2752 @param context - returned sender context, to match reply w/ request
2753 @param retval - return code
2756 define cop_whitelist_enable_disable_reply
2762 /** \brief get_node_graph - get a copy of the vpp node graph
2763 including the current set of graph arcs.
2765 @param client_index - opaque cookie to identify the sender
2766 @param context - sender context, to match reply w/ request
2769 define get_node_graph
2775 /** \brief get_node_graph_reply
2776 @param context - returned sender context, to match reply w/ request
2777 @param retval - return code
2778 @param reply_in_shmem - result from vlib_node_serialize, in shared
2779 memory. Process with vlib_node_unserialize, remember to switch
2780 heaps and free the result.
2783 define get_node_graph_reply
2790 /** \brief IOAM enable : Enable in-band OAM
2791 @param id - profile id
2792 @param seqno - To enable Seqno Processing
2793 @param analyse - Enabling analysis of iOAM at decap node
2794 @param pow_enable - Proof of Work enabled or not flag
2795 @param trace_enable - iOAM Trace enabled or not flag
2809 /** \brief iOAM Trace profile add / del response
2810 @param context - sender context, to match reply w/ request
2811 @param retval - return value for request
2813 define ioam_enable_reply
2819 /** \brief iOAM disable
2820 @param client_index - opaque cookie to identify the sender
2821 @param context - sender context, to match reply w/ request
2822 @param index - MAP Domain index
2831 /** \brief iOAM disable response
2832 @param context - sender context, to match reply w/ request
2833 @param retval - return value for request
2835 define ioam_disable_reply
2841 /** \brief Add/del policer
2842 @param client_index - opaque cookie to identify the sender
2843 @param context - sender context, to match reply w/ request
2844 @param is_add - add policer if non-zero, else delete
2845 @param name - policer name
2848 @param cb - Committed Burst
2849 @param eb - Excess or Peak Burst
2850 @param rate_type - rate type
2851 @param round_type - rounding type
2852 @param type - policer algorithm
2853 @param color_aware - 0=color-blind, 1=color-aware
2854 @param conform_action_type - conform action type
2855 @param conform_dscp - DSCP for conform mar-and-transmit action
2856 @param exceed_action_type - exceed action type
2857 @param exceed_dscp - DSCP for exceed mar-and-transmit action
2858 @param violate_action_type - violate action type
2859 @param violate_dscp - DSCP for violate mar-and-transmit action
2861 define policer_add_del
2876 u8 conform_action_type;
2878 u8 exceed_action_type;
2880 u8 violate_action_type;
2884 /** \brief Add/del policer response
2885 @param context - sender context, to match reply w/ request
2886 @param retval - return value for request
2887 @param policer_index - for add, returned index of the new policer
2889 define policer_add_del_reply
2896 /** \brief Get list of policers
2897 @param client_index - opaque cookie to identify the sender
2898 @param context - sender context, to match reply w/ request
2899 @param match_name_valid - if 0 request all policers otherwise use match_name
2900 @param match_name - policer name
2907 u8 match_name_valid;
2911 /** \brief Policer operational state response.
2912 @param context - sender context, to match reply w/ request
2913 @param name - policer name
2916 @param cb - Committed Burst
2917 @param eb - Excess or Peak Burst
2918 @param rate_type - rate type
2919 @param round_type - rounding type
2920 @param type - policer algorithm
2921 @param conform_action_type - conform action type
2922 @param conform_dscp - DSCP for conform mar-and-transmit action
2923 @param exceed_action_type - exceed action type
2924 @param exceed_dscp - DSCP for exceed mar-and-transmit action
2925 @param violate_action_type - violate action type
2926 @param violate_dscp - DSCP for violate mar-and-transmit action
2927 @param single_rate - 1 = single rate policer, 0 = two rate policer
2928 @param color_aware - for hierarchical policing
2929 @param scale - power-of-2 shift amount for lower rates
2930 @param cir_tokens_per_period - number of tokens for each period
2931 @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
2932 @param current_limit - current limit
2933 @param current_bucket - current bucket
2934 @param extended_limit - extended limit
2935 @param extended_bucket - extended bucket
2936 @param last_update_time - last update time
2938 define policer_details
2950 u8 conform_action_type;
2952 u8 exceed_action_type;
2954 u8 violate_action_type;
2959 u32 cir_tokens_per_period;
2960 u32 pir_tokens_per_period;
2964 u32 extended_bucket;
2965 u64 last_update_time;
2968 /** \brief Set/unset policer classify interface
2969 @param client_index - opaque cookie to identify the sender
2970 @param context - sender context, to match reply w/ request
2971 @param sw_if_index - interface to set/unset policer classify
2972 @param ip4_table_index - ip4 classify table index (~0 for skip)
2973 @param ip6_table_index - ip6 classify table index (~0 for skip)
2974 @param l2_table_index - l2 classify table index (~0 for skip)
2975 @param is_add - Set if non-zero, else unset
2976 Note: User is recommeneded to use just one valid table_index per call.
2977 (ip4_table_index, ip6_table_index, or l2_table_index)
2979 define policer_classify_set_interface
2984 u32 ip4_table_index;
2985 u32 ip6_table_index;
2990 /** \brief Set/unset policer classify interface response
2991 @param context - sender context, to match reply w/ request
2992 @param retval - return value for request
2994 define policer_classify_set_interface_reply
3000 /** \brief Get list of policer classify interfaces and tables
3001 @param client_index - opaque cookie to identify the sender
3002 @param context - sender context, to match reply w/ request
3003 @param type - classify table type
3005 define policer_classify_dump
3012 /** \brief Policer iclassify operational state response.
3013 @param context - sender context, to match reply w/ request
3014 @param sw_if_index - software interface index
3015 @param table_index - classify table index
3017 define policer_classify_details
3024 /** \brief Classify get table IDs request
3025 @param client_index - opaque cookie to identify the sender
3026 @param context - sender context, to match reply w/ request
3028 define classify_table_ids
3034 /** \brief Reply for classify get table IDs request
3035 @param context - sender context which was passed in the request
3036 @param count - number of ids returned in response
3037 @param ids - array of classify table ids
3039 define classify_table_ids_reply
3047 /** \brief Classify table ids by interface index request
3048 @param client_index - opaque cookie to identify the sender
3049 @param context - sender context, to match reply w/ request
3050 @param sw_if_index - index of the interface
3052 define classify_table_by_interface
3059 /** \brief Reply for classify table id by interface index request
3060 @param context - sender context which was passed in the request
3061 @param count - number of ids returned in response
3062 @param sw_if_index - index of the interface
3063 @param l2_table_id - l2 classify table index
3064 @param ip4_table_id - ip4 classify table index
3065 @param ip6_table_id - ip6 classify table index
3067 define classify_table_by_interface_reply
3077 /** \brief Classify table info
3078 @param client_index - opaque cookie to identify the sender
3079 @param context - sender context, to match reply w/ request
3080 @param table_id - classify table index
3082 define classify_table_info
3089 /** \brief Reply for classify table info request
3090 @param context - sender context which was passed in the request
3091 @param count - number of ids returned in response
3092 @param table_id - classify table index
3093 @param nbuckets - number of buckets when adding a table
3094 @param match_n_vectors - number of match vectors
3095 @param skip_n_vectors - number of skip_n_vectors
3096 @param active_sessions - number of sessions (active entries)
3097 @param next_table_index - index of next table
3098 @param miss_next_index - index of miss table
3099 @param mask[] - match mask
3101 define classify_table_info_reply
3107 u32 match_n_vectors;
3109 u32 active_sessions;
3110 u32 next_table_index;
3111 u32 miss_next_index;
3113 u8 mask[mask_length];
3116 /** \brief Classify sessions dump request
3117 @param client_index - opaque cookie to identify the sender
3118 @param context - sender context, to match reply w/ request
3119 @param table_id - classify table index
3121 define classify_session_dump
3128 /** \brief Reply for classify table session dump request
3129 @param context - sender context which was passed in the request
3130 @param count - number of ids returned in response
3131 @param table_id - classify table index
3132 @param hit_next_index - hit_next_index of session
3133 @param opaque_index - for add, opaque_index of session
3134 @param advance - advance value of session
3135 @param match[] - match value for session
3137 define classify_session_details
3146 u8 match[match_length];
3149 /** \brief Configure IPFIX exporter process request
3150 @param client_index - opaque cookie to identify the sender
3151 @param context - sender context, to match reply w/ request
3152 @param collector_address - address of IPFIX collector
3153 @param collector_port - port of IPFIX collector
3154 @param src_address - address of IPFIX exporter
3155 @param vrf_id - VRF / fib table ID
3156 @param path_mtu - Path MTU between exporter and collector
3157 @param template_interval - number of seconds after which to resend template
3158 @param udp_checksum - UDP checksum calculation enable flag
3160 define set_ipfix_exporter
3164 u8 collector_address[16];
3169 u32 template_interval;
3173 /** \brief Reply to IPFIX exporter configure request
3174 @param context - sender context which was passed in the request
3176 define set_ipfix_exporter_reply
3182 /** \brief IPFIX exporter dump request
3183 @param client_index - opaque cookie to identify the sender
3184 @param context - sender context, to match reply w/ request
3186 define ipfix_exporter_dump
3192 /** \brief Reply to IPFIX exporter dump request
3193 @param context - sender context which was passed in the request
3194 @param collector_address - address of IPFIX collector
3195 @param collector_port - port of IPFIX collector
3196 @param src_address - address of IPFIX exporter
3197 @param fib_index - fib table index
3198 @param path_mtu - Path MTU between exporter and collector
3199 @param template_interval - number of seconds after which to resend template
3200 @param udp_checksum - UDP checksum calculation enable flag
3202 define ipfix_exporter_details
3205 u8 collector_address[16];
3210 u32 template_interval;
3214 /** \brief IPFIX classify stream configure request
3215 @param client_index - opaque cookie to identify the sender
3216 @param context - sender context, to match reply w/ request
3217 @param domain_id - domain ID reported in IPFIX messages for classify stream
3218 @param src_port - source port of UDP session for classify stream
3220 define set_ipfix_classify_stream {
3227 /** \brief IPFIX classify stream configure response
3228 @param context - sender context, to match reply w/ request
3229 @param retval - return value for request
3231 define set_ipfix_classify_stream_reply {
3236 /** \brief IPFIX classify stream dump request
3237 @param client_index - opaque cookie to identify the sender
3238 @param context - sender context, to match reply w/ request
3240 define ipfix_classify_stream_dump {
3245 /** \brief Reply to IPFIX classify stream dump request
3246 @param context - sender context, to match reply w/ request
3247 @param domain_id - domain ID reported in IPFIX messages for classify stream
3248 @param src_port - source port of UDP session for classify stream
3250 define ipfix_classify_stream_details {
3256 /** \brief IPFIX add or delete classifier table request
3257 @param client_index - opaque cookie to identify the sender
3258 @param context - sender context, to match reply w/ request
3259 @param table_id - classifier table ID
3260 @param ip_version - version of IP used in the classifier table
3261 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
3263 define ipfix_classify_table_add_del {
3268 u8 transport_protocol;
3272 /** \brief IPFIX add classifier table response
3273 @param context - sender context which was passed in the request
3275 define ipfix_classify_table_add_del_reply {
3280 /** \brief IPFIX classify tables dump request
3281 @param client_index - opaque cookie to identify the sender
3282 @param context - sender context, to match reply w/ request
3284 define ipfix_classify_table_dump {
3289 /** \brief Reply to IPFIX classify tables dump request
3290 @param context - sender context, to match reply w/ request
3291 @param table_id - classifier table ID
3292 @param ip_version - version of IP used in the classifier table
3293 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
3295 define ipfix_classify_table_details {
3299 u8 transport_protocol;
3302 /** \brief Set/unset flow classify interface
3303 @param client_index - opaque cookie to identify the sender
3304 @param context - sender context, to match reply w/ request
3305 @param sw_if_index - interface to set/unset flow classify
3306 @param ip4_table_index - ip4 classify table index (~0 for skip)
3307 @param ip6_table_index - ip6 classify table index (~0 for skip)
3308 @param l2_table_index - l2 classify table index (~0 for skip)
3309 @param is_add - Set if non-zero, else unset
3310 Note: User is recommeneded to use just one valid table_index per call.
3311 (ip4_table_index, ip6_table_index, or l2_table_index)
3313 define flow_classify_set_interface {
3317 u32 ip4_table_index;
3318 u32 ip6_table_index;
3322 /** \brief Set/unset flow classify interface response
3323 @param context - sender context, to match reply w/ request
3324 @param retval - return value for request
3326 define flow_classify_set_interface_reply {
3331 /** \brief Get list of flow classify interfaces and tables
3332 @param client_index - opaque cookie to identify the sender
3333 @param context - sender context, to match reply w/ request
3334 @param type - classify table type
3336 define flow_classify_dump {
3342 /** \brief Flow classify operational state response.
3343 @param context - sender context, to match reply w/ request
3344 @param sw_if_index - software interface index
3345 @param table_index - classify table index
3347 define flow_classify_details {
3353 /** \brief Query relative index via node names
3354 @param client_index - opaque cookie to identify the sender
3355 @param context - sender context, to match reply w/ request
3356 @param node_name - name of node to find relative index from
3357 @param next_name - next node from node_name to find relative index of
3359 define get_next_index
3367 /** \brief Reply for get next node index
3368 @param context - sender context which was passed in the request
3369 @param retval - return value
3370 @param next_index - index of the next_node
3372 define get_next_index_reply
3379 /** \brief PacketGenerator create interface request
3380 @param client_index - opaque cookie to identify the sender
3381 @param context - sender context, to match reply w/ request
3382 @param interface_id - interface index
3384 define pg_create_interface
3391 /** \brief PacketGenerator create interface response
3392 @param context - sender context, to match reply w/ request
3393 @param retval - return value for request
3395 define pg_create_interface_reply
3402 /** \brief PacketGenerator capture packets on given interface request
3403 @param client_index - opaque cookie to identify the sender
3404 @param context - sender context, to match reply w/ request
3405 @param interface_id - pg interface index
3406 @param is_enabled - 1 if enabling streams, 0 if disabling
3407 @param count - number of packets to be captured
3408 @param pcap_file - pacp file name to store captured packets
3417 u32 pcap_name_length;
3418 u8 pcap_file_name[pcap_name_length];
3421 /** \brief PacketGenerator capture packets response
3422 @param context - sender context, to match reply w/ request
3423 @param retval - return value for request
3425 define pg_capture_reply
3431 /** \brief Enable / disable packet generator request
3432 @param client_index - opaque cookie to identify the sender
3433 @param context - sender context, to match reply w/ request
3434 @param is_enabled - 1 if enabling streams, 0 if disabling
3435 @param stream - stream name to be enable/disabled, if not specified handle all streams
3437 define pg_enable_disable
3442 u32 stream_name_length;
3443 u8 stream_name[stream_name_length];
3446 /** \brief Reply for enable / disable packet generator
3447 @param context - returned sender context, to match reply w/ request
3448 @param retval - return code
3450 define pg_enable_disable_reply
3456 /** \brief Configure IP source and L4 port-range check
3457 @param client_index - opaque cookie to identify the sender
3458 @param context - sender context, to match reply w/ request
3459 @param is_ip6 - 1 if source address type is IPv6
3460 @param is_add - 1 if add, 0 if delete
3461 @param mask_length - mask length for address entry
3462 @param address - array of address bytes
3463 @param number_of_ranges - length of low_port and high_port arrays (must match)
3464 @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
3465 @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
3466 @param vrf_id - fib table/vrf id to associate the source and port-range check with
3467 @note To specify a single port set low_port and high_port entry the same
3469 define ip_source_and_port_range_check_add_del
3477 u8 number_of_ranges;
3483 /** \brief Configure IP source and L4 port-range check reply
3484 @param context - returned sender context, to match reply w/ request
3485 @param retval - return code
3487 define ip_source_and_port_range_check_add_del_reply
3493 /** \brief Set interface source and L4 port-range request
3494 @param client_index - opaque cookie to identify the sender
3495 @param context - sender context, to match reply w/ request
3496 @param interface_id - interface index
3497 @param tcp_vrf_id - VRF associated with source and TCP port-range check
3498 @param udp_vrf_id - VRF associated with source and TCP port-range check
3500 define ip_source_and_port_range_check_interface_add_del
3512 /** \brief Set interface source and L4 port-range response
3513 @param context - sender context, to match reply w/ request
3514 @param retval - return value for request
3516 define ip_source_and_port_range_check_interface_add_del_reply
3522 /** \brief Add / del ipsec gre tunnel request
3523 @param client_index - opaque cookie to identify the sender
3524 @param context - sender context, to match reply w/ request
3525 @param local_sa_id - local SA id
3526 @param remote_sa_id - remote SA id
3527 @param is_add - 1 if adding the tunnel, 0 if deleting
3528 @param src_address - tunnel source address
3529 @param dst_address - tunnel destination address
3531 define ipsec_gre_add_del_tunnel {
3541 /** \brief Reply for add / del ipsec gre tunnel request
3542 @param context - returned sender context, to match reply w/ request
3543 @param retval - return code
3544 @param sw_if_index - software index of the new ipsec gre tunnel
3546 define ipsec_gre_add_del_tunnel_reply {
3552 /** \brief Dump ipsec gre tunnel table
3553 @param client_index - opaque cookie to identify the sender
3554 @param context - sender context, to match reply w/ request
3555 @param tunnel_index - gre tunnel identifier or -1 in case of all tunnels
3557 define ipsec_gre_tunnel_dump {
3563 /** \brief mpls gre tunnel operational state response
3564 @param context - returned sender context, to match reply w/ request
3565 @param sw_if_index - software index of the ipsec gre tunnel
3566 @param local_sa_id - local SA id
3567 @param remote_sa_id - remote SA id
3568 @param src_address - tunnel source address
3569 @param dst_address - tunnel destination address
3571 define ipsec_gre_tunnel_details {
3580 /** \brief Delete sub interface request
3581 @param client_index - opaque cookie to identify the sender
3582 @param context - sender context, to match reply w/ request
3583 @param sw_if_index - sw index of the interface that was created by create_subif
3585 define delete_subif {
3591 /** \brief Delete sub interface response
3592 @param context - sender context, to match reply w/ request
3593 @param retval - return code for the request
3595 define delete_subif_reply {
3600 /** \brief DPDK interface HQoS pipe profile set request
3601 @param client_index - opaque cookie to identify the sender
3602 @param context - sender context, to match reply w/ request
3603 @param sw_if_index - the interface
3604 @param subport - subport ID
3605 @param pipe - pipe ID within its subport
3606 @param profile - pipe profile ID
3608 define sw_interface_set_dpdk_hqos_pipe {
3617 /** \brief DPDK interface HQoS pipe profile set reply
3618 @param context - sender context, to match reply w/ request
3619 @param retval - request return code
3621 define sw_interface_set_dpdk_hqos_pipe_reply {
3626 /** \brief DPDK interface HQoS subport parameters set request
3627 @param client_index - opaque cookie to identify the sender
3628 @param context - sender context, to match reply w/ request
3629 @param sw_if_index - the interface
3630 @param subport - subport ID
3631 @param tb_rate - subport token bucket rate (measured in bytes/second)
3632 @param tb_size - subport token bucket size (measured in credits)
3633 @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
3634 @param tc_period - enforcement period for rates (measured in milliseconds)
3636 define sw_interface_set_dpdk_hqos_subport {
3647 /** \brief DPDK interface HQoS subport parameters set reply
3648 @param context - sender context, to match reply w/ request
3649 @param retval - request return code
3651 define sw_interface_set_dpdk_hqos_subport_reply {
3656 /** \brief DPDK interface HQoS tctbl entry set request
3657 @param client_index - opaque cookie to identify the sender
3658 @param context - sender context, to match reply w/ request
3659 @param sw_if_index - the interface
3660 @param entry - entry index ID
3661 @param tc - traffic class (0 .. 3)
3662 @param queue - traffic class queue (0 .. 3)
3664 define sw_interface_set_dpdk_hqos_tctbl {
3673 /** \brief DPDK interface HQoS tctbl entry set reply
3674 @param context - sender context, to match reply w/ request
3675 @param retval - request return code
3677 define sw_interface_set_dpdk_hqos_tctbl_reply {
3682 /** \brief L2 interface pbb tag rewrite configure request
3683 @param client_index - opaque cookie to identify the sender
3684 @param context - sender context, to match reply w/ request
3685 @param sw_if_index - interface the operation is applied to
3686 @param vtr_op - Choose from l2_vtr_op_t enum values
3687 @param inner_tag - needed for translate_qinq vtr op only
3688 @param outer_tag - needed for translate_qinq vtr op only
3689 @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
3690 @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
3691 @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
3692 @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
3694 define l2_interface_pbb_tag_rewrite
3707 /** \brief L2 interface pbb tag rewrite response
3708 @param context - sender context, to match reply w/ request
3709 @param retval - return code for the request
3711 define l2_interface_pbb_tag_rewrite_reply
3717 /** \brief Punt traffic to the host
3718 @param client_index - opaque cookie to identify the sender
3719 @param context - sender context, to match reply w/ request
3720 @param is_add - add punt if non-zero, else delete
3721 @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
3722 @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
3723 @param l4_port - TCP/UDP port to be punted
3734 /** \brief Reply to the punt request
3735 @param context - sender context which was passed in the request
3736 @param retval - return code of punt request
3744 /** \brief Feature path enable/disable request
3745 @param client_index - opaque cookie to identify the sender
3746 @param context - sender context, to match reply w/ request
3747 @param sw_if_index - the interface
3748 @param enable - 1 = on, 0 = off
3750 define feature_enable_disable {
3756 u8 feature_name[64];
3759 /** \brief Reply to the eature path enable/disable request
3760 @param context - sender context which was passed in the request
3761 @param retval - return code for the request
3763 define feature_enable_disable_reply
3771 * eval: (c-set-style "gnu")