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}
37 * IPSEC-GRE APIs: see .../vnet/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
40 /** \brief Create a new subinterface with the given vlan id
41 @param client_index - opaque cookie to identify the sender
42 @param context - sender context, to match reply w/ request
43 @param sw_if_index - software index of the new vlan's parent interface
44 @param vlan_id - vlan tag of the new interface
46 define create_vlan_subif
54 /** \brief Reply for the vlan subinterface create request
55 @param context - returned sender context, to match reply w/ request
56 @param retval - return code
57 @param sw_if_index - software index allocated for the new subinterface
59 define create_vlan_subif_reply
66 /** \brief Enable or Disable MPLS on and interface
67 @param client_index - opaque cookie to identify the sender
68 @param context - sender context, to match reply w/ request
69 @param sw_if_index - index of the interface
70 @param enable - if non-zero enable, else disable
72 define sw_interface_set_mpls_enable
80 /** \brief Reply for MPLS state on an interface
81 @param context - returned sender context, to match reply w/ request
82 @param retval - return code
84 define sw_interface_set_mpls_enable_reply
90 /** \brief MPLS Route Add / del route
91 @param client_index - opaque cookie to identify the sender
92 @param context - sender context, to match reply w/ request
93 @param mr_label - The MPLS label value
94 @param mr_eos - The End of stack bit
95 @param mr_table_id - The MPLS table-id the route is added in
96 @param mr_classify_table_index - If this is a classify route,
97 this is the classify table index
98 @param mr_create_table_if_needed - If the MPLS or IP tables do not exist,
100 @param mr_is_add - Is this a route add or delete
101 @param mr_is_classify - Is this route result a classify
102 @param mr_is_multipath - Is this route update a multipath - i.e. is this
103 a path addition to an existing route
104 @param mr_is_resolve_host - Recurse resolution constraint via a host prefix
105 @param mr_is_resolve_attached - Recurse resolution constraint via attached prefix
106 @param mr_next_hop_proto_is_ip4 - The next-hop is IPV4
107 @param mr_next_hop_weight - The weight, for UCMP
108 @param mr_next_hop[16] - the nextop address
109 @param mr_next_hop_sw_if_index - the next-hop SW interface
110 @param mr_next_hop_table_id - the next-hop table-id (if appropriate)
111 @param mr_next_hop_n_out_labels - the number of labels in the label stack
112 @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first
113 @param next_hop_via_label - The next-hop is a resolved via a local label
115 define mpls_route_add_del
122 u32 mr_classify_table_index;
123 u8 mr_create_table_if_needed;
127 u8 mr_is_resolve_host;
128 u8 mr_is_resolve_attached;
129 u8 mr_next_hop_proto_is_ip4;
130 u8 mr_next_hop_weight;
132 u8 mr_next_hop_n_out_labels;
133 u32 mr_next_hop_sw_if_index;
134 u32 mr_next_hop_table_id;
135 u32 mr_next_hop_via_label;
136 u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
139 /** \brief Reply for MPLS route add / del request
140 @param context - returned sender context, to match reply w/ request
141 @param retval - return code
143 define mpls_route_add_del_reply
149 /** \brief Dump MPLS fib table
150 @param client_index - opaque cookie to identify the sender
159 @param sw_if_index - index of the interface
160 @param weight - The weight, for UCMP
161 @param is_local - local if non-zero, else remote
162 @param is_drop - Drop the packet
163 @param is_unreach - Drop the packet and rate limit send ICMP unreachable
164 @param is_prohibit - Drop the packet and rate limit send ICMP prohibited
165 @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2
166 @param next_hop[16] - the next hop address
168 WARNING: this type is replicated, pending cleanup completion
171 typeonly manual_print manual_endian define fib_path2
183 /** \brief mpls FIB table response
184 @param table_id - MPLS fib table id
185 @param s_bit - End-of-stack bit
186 @param label - MPLS label value
187 @param count - the number of fib_path in path
188 @param path - array of of fib_path structures
190 manual_endian manual_print define mpls_fib_details
197 vl_api_fib_path2_t path[count];
200 /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create
201 a per-prefix label entry.
202 @param client_index - opaque cookie to identify the sender
203 @param context - sender context, to match reply w/ request
204 @param mb_mpls_table_id - The MPLS table-id the MPLS entry will be added in
205 @param mb_label - The MPLS label value to bind
206 @param mb_ip_table_id - The IP table-id of the IP prefix to bind to.
207 @param mb_create_table_if_needed - Create either/both tables if required.
208 @param mb_is_bind - Bind or unbind
209 @param mb_is_ip4 - The prefix to bind to is IPv4
210 @param mb_address_length - Length of IP prefix
211 @param mb_address[16] - IP prefix/
213 define mpls_ip_bind_unbind
217 u32 mb_mpls_table_id;
220 u8 mb_create_table_if_needed;
223 u8 mb_address_length;
227 /** \brief Reply for MPLS IP bind/unbind request
228 @param context - returned sender context, to match reply w/ request
229 @param retval - return code
231 define mpls_ip_bind_unbind_reply
237 /** \brief MPLS tunnel Add / del route
238 @param client_index - opaque cookie to identify the sender
239 @param context - sender context, to match reply w/ request
240 @param mt_is_add - Is this a route add or delete
241 @param mt_sw_if_index - The SW interface index of the tunnel to delete
242 @param mt_next_hop_proto_is_ip4 - The next-hop is IPV4
243 @param mt_next_hop_weight - The weight, for UCMP
244 @param mt_next_hop[16] - the nextop address
245 @param mt_next_hop_sw_if_index - the next-hop SW interface
246 @param mt_next_hop_table_id - the next-hop table-id (if appropriate)
247 @param mt_next_hop_n_out_labels - the number of next-hop output labels
248 @param mt_next_hop_out_label_stack - the next-hop output label stack, outer most first
250 define mpls_tunnel_add_del
257 u8 mt_next_hop_proto_is_ip4;
258 u8 mt_next_hop_weight;
260 u8 mt_next_hop_n_out_labels;
261 u32 mt_next_hop_sw_if_index;
262 u32 mt_next_hop_table_id;
263 u32 mt_next_hop_out_label_stack[mt_next_hop_n_out_labels];
266 /** \brief Reply for MPLS tunnel add / del request
267 @param context - returned sender context, to match reply w/ request
268 @param retval - return code
269 @param sw_if_index - SW interface index of the tunnel created
271 define mpls_tunnel_add_del_reply
278 /** \brief Dump mpls eth tunnel table
279 @param client_index - opaque cookie to identify the sender
280 @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels
282 define mpls_tunnel_dump
289 /** \brief mpls eth tunnel operational state response
290 @param tunnel_index - eth tunnel identifier
291 @param intfc_address - interface ipv4 addr
292 @param mask_width - interface ipv4 addr mask
293 @param hw_if_index - interface id
295 @param tunnel_dst_mac -
296 @param tx_sw_if_index -
297 @param encap_index - reference to mpls label table
298 @param nlabels - number of resolved labels
299 @param labels - resolved labels
301 define mpls_tunnel_details
307 u8 mt_next_hop_proto_is_ip4;
309 u32 mt_next_hop_sw_if_index;
310 u32 mt_next_hop_table_id;
311 u32 mt_next_hop_n_labels;
312 u32 mt_next_hop_out_labels[mt_next_hop_n_labels];
315 /** \brief Proxy ARP add / del request
316 @param client_index - opaque cookie to identify the sender
317 @param context - sender context, to match reply w/ request
318 @param vrf_id - VRF / Fib table ID
319 @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
320 @param low_address[4] - Low address of the Proxy ARP range
321 @param hi_address[4] - High address of the Proxy ARP range
323 define proxy_arp_add_del
333 /** \brief Reply for proxy arp add / del request
334 @param context - returned sender context, to match reply w/ request
335 @param retval - return code
337 define proxy_arp_add_del_reply
343 /** \brief Proxy ARP add / del request
344 @param client_index - opaque cookie to identify the sender
345 @param context - sender context, to match reply w/ request
346 @param sw_if_index - Which interface to enable / disable Proxy Arp on
347 @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
349 define proxy_arp_intfc_enable_disable
354 /* 1 = on, 0 = off */
358 /** \brief Reply for Proxy ARP interface enable / disable request
359 @param context - returned sender context, to match reply w/ request
360 @param retval - return code
362 define proxy_arp_intfc_enable_disable_reply
368 /** \brief Reset VRF (remove all routes etc) request
369 @param client_index - opaque cookie to identify the sender
370 @param context - sender context, to match reply w/ request
371 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
372 @param vrf_id - ID of th FIB table / VRF to reset
382 /** \brief Reply for Reset VRF request
383 @param context - returned sender context, to match reply w/ request
384 @param retval - return code
386 define reset_vrf_reply
392 /** \brief Is Address Reachable request - DISABLED
393 @param client_index - opaque cookie to identify the sender
394 @param context - sender context, to match reply w/ request
395 @param next_hop_sw_if_index - index of interface used to get to next hop
396 @param is_ipv6 - 1 for IPv6, 0 for IPv4
397 @param is_error - address not found or does not match intf
398 @param address[] - Address in question
400 define is_address_reachable
402 u32 client_index; /* (api_main_t *) am->my_client_index */
404 u32 next_hop_sw_if_index;
405 u8 is_known; /* on reply, this is the answer */
407 u8 is_error; /* address not found or does not match intf */
411 /** \brief Want Stats, register for stats updates
412 @param client_index - opaque cookie to identify the sender
413 @param context - sender context, to match reply w/ request
414 @param enable_disable - 1 = enable stats, 0 = disable
415 @param pid - pid of process requesting stats updates
425 /** \brief Reply for Want Stats request
426 @param context - returned sender context, to match reply w/ request
427 @param retval - return code
429 define want_stats_reply
435 typeonly manual_print manual_endian define ip4_fib_counter
443 manual_print manual_endian define vnet_ip4_fib_counters
447 vl_api_ip4_fib_counter_t c[count];
450 typeonly manual_print manual_endian define ip6_fib_counter
458 manual_print manual_endian define vnet_ip6_fib_counters
462 vl_api_ip6_fib_counter_t c[count];
465 /** \brief Request for a single block of summary stats
466 @param client_index - opaque cookie to identify the sender
467 @param context - sender context, to match reply w/ request
469 define vnet_get_summary_stats
475 /** \brief Reply for vnet_get_summary_stats request
476 @param context - sender context, to match reply w/ request
477 @param retval - return code for request
482 define vnet_summary_stats_reply
491 /** \brief OAM event structure
492 @param dst_address[] -
501 /** \brief Want OAM events request
502 @param client_index - opaque cookie to identify the sender
503 @param context - sender context, to match reply w/ request
504 @param enable_disable- enable if non-zero, else disable
505 @param pid - pid of the requesting process
507 define want_oam_events
515 /** \brief Want OAM events response
516 @param context - sender context, to match reply w/ request
517 @param retval - return code for the want oam stats request
519 define want_oam_events_reply
525 /** \brief OAM add / del target request
526 @param client_index - opaque cookie to identify the sender
527 @param context - sender context, to match reply w/ request
528 @param vrf_id - vrf_id of the target
529 @param src_address[] - source address to use for the updates
530 @param dst_address[] - destination address of the target
531 @param is_add - add target if non-zero, else delete
543 /** \brief OAM add / del target response
544 @param context - sender context, to match reply w/ request
545 @param retval - return code of the request
547 define oam_add_del_reply
553 /** \brief Reset fib table request
554 @param client_index - opaque cookie to identify the sender
555 @param context - sender context, to match reply w/ request
556 @param vrf_id - vrf/table id of the fib table to reset
557 @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
567 /** \brief Reset fib response
568 @param context - sender context, to match reply w/ request
569 @param retval - return code for the reset bfib request
571 define reset_fib_reply
577 /** \brief DHCP Proxy config add / del request
578 @param client_index - opaque cookie to identify the sender
579 @param context - sender context, to match reply w/ request
580 @param vrf_id - vrf id
581 @param if_ipv6 - ipv6 if non-zero, else ipv4
582 @param is_add - add the config if non-zero, else delete
583 @param insert_circuit_id - option82 suboption 1 fib number
584 @param dhcp_server[] - server address
585 @param dhcp_src_address[] - <fix this, need details>
587 define dhcp_proxy_config
594 u8 insert_circuit_id;
596 u8 dhcp_src_address[16];
599 /** \brief DHCP Proxy config response
600 @param context - sender context, to match reply w/ request
601 @param retval - return code for the request
603 define dhcp_proxy_config_reply
609 /** \brief DHCP Proxy set / unset vss request
610 @param client_index - opaque cookie to identify the sender
611 @param context - sender context, to match reply w/ request
612 @param tbl_id - table id
613 @param oui - first part of vpn id
614 @param fib_id - second part of vpn id
615 @param is_ipv6 - ip6 if non-zero, else ip4
616 @param is_add - set vss if non-zero, else delete
618 define dhcp_proxy_set_vss
629 /** \brief DHCP proxy set / unset vss response
630 @param context - sender context, to match reply w/ request
631 @param retval - return code for the request
633 define dhcp_proxy_set_vss_reply
639 /** \brief Create loopback interface request
640 @param client_index - opaque cookie to identify the sender
641 @param context - sender context, to match reply w/ request
642 @param mac_address - mac addr to assign to the interface if none-zero
644 define create_loopback
651 /** \brief Create loopback interface response
652 @param context - sender context, to match reply w/ request
653 @param sw_if_index - sw index of the interface that was created
654 @param retval - return code for the request
656 define create_loopback_reply
663 /** \brief Delete loopback interface request
664 @param client_index - opaque cookie to identify the sender
665 @param context - sender context, to match reply w/ request
666 @param sw_if_index - sw index of the interface that was created
668 define delete_loopback
675 /** \brief Delete loopback interface response
676 @param context - sender context, to match reply w/ request
677 @param retval - return code for the request
679 define delete_loopback_reply
685 /** \brief Control ping from client to api server request
686 @param client_index - opaque cookie to identify the sender
687 @param context - sender context, to match reply w/ request
695 /** \brief Control ping from the client to the server response
696 @param client_index - opaque cookie to identify the sender
697 @param context - sender context, to match reply w/ request
698 @param retval - return code for the request
699 @param vpe_pid - the pid of the vpe, returned by the server
701 define control_ping_reply
709 /** \brief Process a vpe parser cli string request
710 @param client_index - opaque cookie to identify the sender
711 @param context - sender context, to match reply w/ request
712 @param cmd_in_shmem - pointer to cli command string
728 /** \brief vpe parser cli string response
729 @param context - sender context, to match reply w/ request
730 @param retval - return code for request
731 @param reply_in_shmem - Reply string from cli processing if any
739 define cli_inband_reply
747 /** \brief Set max allowed ARP or ip6 neighbor entries request
748 @param client_index - opaque cookie to identify the sender
749 @param context - sender context, to match reply w/ request
750 @param is_ipv6 - neighbor limit if non-zero, else ARP limit
751 @param arp_neighbor_limit - the new limit, defaults are ~ 50k
753 define set_arp_neighbor_limit
758 u32 arp_neighbor_limit;
761 /** \brief Set max allowed ARP or ip6 neighbor entries response
762 @param context - sender context, to match reply w/ request
763 @param retval - return code for request
765 define set_arp_neighbor_limit_reply
771 /** \brief L2 interface patch add / del request
772 @param client_index - opaque cookie to identify the sender
773 @param context - sender context, to match reply w/ request
774 @param rx_sw_if_index - receive side interface
775 @param tx_sw_if_index - transmit side interface
776 @param is_add - if non-zero set up the interface patch, else remove it
778 define l2_patch_add_del
787 /** \brief L2 interface patch add / del response
788 @param context - sender context, to match reply w/ request
789 @param retval - return code for the request
791 define l2_patch_add_del_reply
797 /** \brief IPv6 segment routing tunnel add / del request
798 @param client_index - opaque cookie to identify the sender
799 @param context - sender context, to match reply w/ request
800 @param is_add - add the tunnel if non-zero, else delete it
801 @param name[] - tunnel name (len. 64)
802 @param src_address[] -
803 @param dst_address[] -
804 @param dst_mask_width -
805 @param inner_vrf_id -
806 @param outer_vrf_id -
807 @param flags_net_byte_order -
810 @param segs_and_tags[] -
811 @param policy_name[] - name of policy to associate this tunnel to (len. 64)
813 define sr_tunnel_add_del
824 u16 flags_net_byte_order;
831 /** \brief IPv6 segment routing tunnel add / del response
832 @param context - sender context, to match reply w/ request
833 @param retval - return value for request
835 define sr_tunnel_add_del_reply
841 /** \brief IPv6 segment routing policy add / del request
842 @param client_index - opaque cookie to identify the sender
843 @param context - sender context, to match reply w/ request
844 @param is_add - add the tunnel if non-zero, else delete it
845 @param name[] - policy name (len. 64)
846 @param tunnel_names[] -
848 define sr_policy_add_del
857 /** \brief IPv6 segment routing policy add / del response
858 @param context - sender context, to match reply w/ request
859 @param retval - return value for request
861 define sr_policy_add_del_reply
867 /** \brief IPv6 segment routing multicast map to policy add / del request
868 @param client_index - opaque cookie to identify the sender
869 @param context - sender context, to match reply w/ request
870 @param is_add - add the tunnel if non-zero, else delete it
871 @param multicast_address[] - IP6 multicast address
872 @param policy_name[] = policy name (len.64)
874 define sr_multicast_map_add_del
879 u8 multicast_address[16];
883 /** \brief IPv6 segment routing multicast map to policy add / del response
884 @param context - sender context, to match reply w/ request
885 @param retval - return value for request
887 define sr_multicast_map_add_del_reply
893 /** \brief Interface set vpath request
894 @param client_index - opaque cookie to identify the sender
895 @param context - sender context, to match reply w/ request
896 @param sw_if_index - interface used to reach neighbor
897 @param enable - if non-zero enable, else disable
899 define sw_interface_set_vpath
907 /** \brief Interface set vpath response
908 @param context - sender context, to match reply w/ request
909 @param retval - return code for the request
911 define sw_interface_set_vpath_reply
917 /** \brief Set L2 XConnect between two interfaces request
918 @param client_index - opaque cookie to identify the sender
919 @param context - sender context, to match reply w/ request
920 @param rx_sw_if_index - Receive interface index
921 @param tx_sw_if_index - Transmit interface index
922 @param enable - enable xconnect if not 0, else set to L3 mode
924 define sw_interface_set_l2_xconnect
933 /** \brief Set L2 XConnect response
934 @param context - sender context, to match reply w/ request
935 @param retval - L2 XConnect request return code
937 define sw_interface_set_l2_xconnect_reply
943 /** \brief Interface bridge mode request
944 @param client_index - opaque cookie to identify the sender
945 @param context - sender context, to match reply w/ request
946 @param rx_sw_if_index - the interface
947 @param bd_id - bridge domain id
948 @param bvi - Setup interface as a bvi, bridge mode only
949 @param shg - Shared horizon group, for bridge mode only
950 @param enable - Enable beige mode if not 0, else set to L3 mode
952 define sw_interface_set_l2_bridge
963 /** \brief Interface bridge mode response
964 @param context - sender context, to match reply w/ request
965 @param retval - Bridge mode request return code
967 define sw_interface_set_l2_bridge_reply
973 /** \brief L2 FIB add entry request
974 @param client_index - opaque cookie to identify the sender
975 @param context - sender context, to match reply w/ request
976 @param mac - the entry's mac address
977 @param bd_id - the entry's bridge domain id
978 @param sw_if_index - the interface
979 @param is_add - If non zero add the entry, else delete it
996 /** \brief L2 FIB add entry response
997 @param context - sender context, to match reply w/ request
998 @param retval - return code for the add l2fib entry request
1000 define l2fib_add_del_reply
1006 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
1007 @param client_index - opaque cookie to identify the sender
1008 @param context - sender context, to match reply w/ request
1009 @param sw_if_index - interface
1010 @param is_set - if non-zero, set the bits, else clear them
1011 @param feature_bitmap - non-zero bits to set or clear
1022 /** \brief Set L2 bits response
1023 @param context - sender context, to match reply w/ request
1024 @param retval - return code for the set l2 bits request
1026 define l2_flags_reply
1030 u32 resulting_feature_bitmap;
1033 /** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD,
1034 L2_UU_FLOOD, or L2_ARP_TERM) request
1035 @param client_index - opaque cookie to identify the sender
1036 @param context - sender context, to match reply w/ request
1037 @param bd_id - the bridge domain to set the flags for
1038 @param is_set - if non-zero, set the flags, else clear them
1039 @param feature_bitmap - bits that are non-zero to set or clear
1050 /** \brief Set bridge flags response
1051 @param context - sender context, to match reply w/ request
1052 @param retval - return code for the set bridge flags request
1053 @param resulting_feature_bitmap - the feature bitmap value after the request is implemented
1055 define bridge_flags_reply
1059 u32 resulting_feature_bitmap;
1062 /** \brief Set bridge domain ip to mac entry request
1063 @param client_index - opaque cookie to identify the sender
1064 @param context - sender context, to match reply w/ request
1065 @param bd_id - the bridge domain to set the flags for
1066 @param is_add - if non-zero, add the entry, else clear it
1067 @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
1068 @param mac_address - MAC address
1071 define bd_ip_mac_add_del
1082 /** \brief Set bridge domain ip to mac entry response
1083 @param context - sender context, to match reply w/ request
1084 @param retval - return code for the set bridge flags request
1086 define bd_ip_mac_add_del_reply
1092 /** \brief Add/Delete classification table request
1093 @param client_index - opaque cookie to identify the sender
1094 @param context - sender context, to match reply w/ request
1095 @param is_add- if non-zero add the table, else delete it
1096 @param del_chain - if non-zero delete the whole chain of tables
1097 @param table_index - if add, reuturns index of the created table, else specifies the table to delete
1098 @param nbuckets - number of buckets when adding a table
1099 @param memory_size - memory size when adding a table
1100 @param match_n_vectors - number of match vectors
1101 @param next_table_index - index of next table
1102 @param miss_next_index - index of miss table
1103 @param current_data_flag - option to use current node's packet payload
1104 as the starting point from where packets are classified,
1105 This option is only valid for L2/L3 input ACL for now.
1106 0: by default, classify data from the buffer's start location
1107 1: classify packets from VPP node’s current data pointer
1108 @param current_data_offset - a signed value to shift the start location of
1109 the packet to be classified
1110 For example, if input IP ACL node is used, L2 header’s first byte
1111 can be accessible by configuring current_data_offset to -14
1112 if there is no vlan tag.
1113 This is valid only if current_data_flag is set to 1.
1114 @param mask[] - match mask
1116 define classify_add_del_table
1126 u32 match_n_vectors;
1127 u32 next_table_index;
1128 u32 miss_next_index;
1129 u32 current_data_flag;
1130 i32 current_data_offset;
1134 /** \brief Add/Delete classification table response
1135 @param context - sender context, to match reply w/ request
1136 @param retval - return code for the table add/del requst
1137 @param new_table_index - for add, returned index of the new table
1138 @param skip_n_vectors - for add, returned value of skip_n_vectors in table
1139 @param match_n_vectors -for add, returned value of match_n_vectors in table
1141 define classify_add_del_table_reply
1145 u32 new_table_index;
1147 u32 match_n_vectors;
1150 /** \brief Classify add / del session request
1151 @param client_index - opaque cookie to identify the sender
1152 @param context - sender context, to match reply w/ request
1153 @param is_add - add session if non-zero, else delete
1154 @param table_index - index of the table to add/del the session, required
1155 @param hit_next_index - for add, hit_next_index of new session, required
1156 @param opaque_index - for add, opaque_index of new session
1157 @param advance -for add, advance value for session
1159 0: no action (by default)
1160 metadata is not used.
1161 1: Classified IP packets will be looked up from the
1162 specified ipv4 fib table (configured by metadata as VRF id).
1163 Only valid for L3 input ACL node
1164 2: Classified IP packets will be looked up from the
1165 specified ipv6 fib table (configured by metadata as VRF id).
1166 Only valid for L3 input ACL node
1167 @param metadata - valid only if action != 0
1168 VRF id if action is 1 or 2.
1169 @param match[] - for add, match value for session, required
1171 define classify_add_del_session
1185 /** \brief Classify add / del session response
1186 @param context - sender context, to match reply w/ request
1187 @param retval - return code for the add/del session request
1189 define classify_add_del_session_reply
1195 /** \brief Set/unset the classification table for an interface request
1196 @param client_index - opaque cookie to identify the sender
1197 @param context - sender context, to match reply w/ request
1198 @param is_ipv6 - ipv6 if non-zero, else ipv4
1199 @param sw_if_index - interface to associate with the table
1200 @param table_index - index of the table, if ~0 unset the table
1202 define classify_set_interface_ip_table
1208 u32 table_index; /* ~0 => off */
1211 /** \brief Set/unset interface classification table response
1212 @param context - sender context, to match reply w/ request
1213 @param retval - return code
1215 define classify_set_interface_ip_table_reply
1221 /** \brief Set/unset l2 classification tables for an interface request
1222 @param client_index - opaque cookie to identify the sender
1223 @param context - sender context, to match reply w/ request
1224 @param sw_if_index - interface to set/unset tables for
1225 @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
1226 @param ip6_table_index - ip6 index
1227 @param other_table_index - other index
1229 define classify_set_interface_l2_tables
1235 u32 ip4_table_index;
1236 u32 ip6_table_index;
1237 u32 other_table_index;
1241 /** \brief Set/unset l2 classification tables for an interface response
1242 @param context - sender context, to match reply w/ request
1243 @param retval - return code for the request
1245 define classify_set_interface_l2_tables_reply
1251 /** \brief Get node index using name request
1252 @param client_index - opaque cookie to identify the sender
1253 @param context - sender context, to match reply w/ request
1254 @param node_name[] - name of the node
1256 define get_node_index
1263 /** \brief Get node index using name request
1264 @param context - sender context, to match reply w/ request
1265 @param retval - return code for the request
1266 @param node_index - index of the desired node if found, else ~0
1268 define get_node_index_reply
1275 /** \brief Set the next node for a given node request
1276 @param client_index - opaque cookie to identify the sender
1277 @param context - sender context, to match reply w/ request
1278 @param node_name[] - node to add the next node to
1279 @param next_name[] - node to add as the next node
1281 define add_node_next
1289 /** \brief IP Set the next node for a given node response
1290 @param context - sender context, to match reply w/ request
1291 @param retval - return code for the add next node request
1292 @param next_index - the index of the next node if success, else ~0
1294 define add_node_next_reply
1301 /** \brief DHCP Proxy config 2 add / del request
1302 @param client_index - opaque cookie to identify the sender
1303 @param context - sender context, to match reply w/ request
1304 @param rx_vrf_id - receive vrf id
1305 @param server_vrf_id - server vrf id
1306 @param if_ipv6 - ipv6 if non-zero, else ipv4
1307 @param is_add - add the config if non-zero, else delete
1308 @param insert_circuit_id - option82 suboption 1 fib number
1309 @param dhcp_server[] - server address
1310 @param dhcp_src_address[] - <fix this, need details>
1312 define dhcp_proxy_config_2
1320 u8 insert_circuit_id;
1322 u8 dhcp_src_address[16];
1325 /** \brief DHCP Proxy config 2 add / del response
1326 @param context - sender context, to match reply w/ request
1327 @param retval - return code for request
1329 define dhcp_proxy_config_2_reply
1335 /** \brief L2 fib clear table request, clear all mac entries in the l2 fib
1336 @param client_index - opaque cookie to identify the sender
1337 @param context - sender context, to match reply w/ request
1339 define l2_fib_clear_table
1345 /** \brief L2 fib clear table response
1346 @param context - sender context, to match reply w/ request
1347 @param retval - return code for the request
1349 define l2_fib_clear_table_reply
1355 /** \brief L2 interface ethernet flow point filtering enable/disable request
1356 @param client_index - opaque cookie to identify the sender
1357 @param context - sender context, to match reply w/ request
1358 @param sw_if_index - interface to enable/disable filtering on
1359 @param enable_disable - if non-zero enable filtering, else disable
1361 define l2_interface_efp_filter
1369 /** \brief L2 interface ethernet flow point filtering response
1370 @param context - sender context, to match reply w/ request
1371 @param retval - return code for the request
1373 define l2_interface_efp_filter_reply
1379 /** \brief L2 interface vlan tag rewrite configure request
1380 @param client_index - opaque cookie to identify the sender
1381 @param context - sender context, to match reply w/ request
1382 @param sw_if_index - interface the operation is applied to
1383 @param vtr_op - Choose from l2_vtr_op_t enum values
1384 @param push_dot1q - first pushed flag dot1q id set, else dot1ad
1385 @param tag1 - Needed for any push or translate vtr op
1386 @param tag2 - Needed for any push 2 or translate x-2 vtr ops
1388 define l2_interface_vlan_tag_rewrite
1394 u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad
1395 u32 tag1; // first pushed tag
1396 u32 tag2; // second pushed tag
1399 /** \brief L2 interface vlan tag rewrite response
1400 @param context - sender context, to match reply w/ request
1401 @param retval - return code for the request
1403 define l2_interface_vlan_tag_rewrite_reply
1416 /* These fields map directly onto the subif template */
1420 u8 dot1ad; // 0 = dot1q, 1=dot1ad
1423 u8 outer_vlan_id_any;
1424 u8 inner_vlan_id_any;
1429 define create_subif_reply
1436 /** \brief show version
1437 @param client_index - opaque cookie to identify the sender
1438 @param context - sender context, to match reply w/ request
1446 /** \brief show version response
1447 @param context - sender context, to match reply w/ request
1448 @param retval - return code for the request
1449 @param program - name of the program (vpe)
1450 @param version - version of the program
1451 @param build_directory - root of the workspace where the program was built
1453 define show_version_reply
1460 u8 build_directory[256];
1463 /** \brief l2 fib table entry structure
1464 @param bd_id - the l2 fib / bridge domain table id
1465 @param mac - the entry's mac address
1466 @param sw_if_index - index of the interface
1467 @param static_mac - the entry is statically configured.
1468 @param filter_mac - the entry is a mac filter entry.
1469 @param bvi_mac - the mac address is a bridge virtual interface
1471 define l2_fib_table_entry
1482 /** \brief Dump l2 fib (aka bridge domain) table
1483 @param client_index - opaque cookie to identify the sender
1484 @param bd_id - the l2 fib / bridge domain table identifier
1486 define l2_fib_table_dump
1493 /** \brief add or delete locator_set
1494 @param client_index - opaque cookie to identify the sender
1495 @param context - sender context, to match reply w/ request
1496 @param is_add - add address if non-zero, else delete
1497 @param locator_set_name - locator name
1498 @param locator_num - number of locators
1499 @param locators - LISP locator records
1500 Structure of one locator record is as follows:
1508 define lisp_add_del_locator_set
1513 u8 locator_set_name[64];
1518 /** \brief Reply for locator_set add/del
1519 @param context - returned sender context, to match reply w/ request
1520 @param retval - return code
1521 @param ls_index - locator set index
1523 define lisp_add_del_locator_set_reply
1530 /** \brief add or delete locator for locator_set
1531 @param client_index - opaque cookie to identify the sender
1532 @param context - sender context, to match reply w/ request
1533 @param is_add - add address if non-zero, else delete
1534 @param locator_set_name - name of locator_set to add/del locator
1535 @param sw_if_index - index of the interface
1536 @param priority - priority of the lisp locator
1537 @param weight - weight of the lisp locator
1539 define lisp_add_del_locator
1544 u8 locator_set_name[64];
1550 /** \brief Reply for locator add/del
1551 @param context - returned sender context, to match reply w/ request
1552 @param retval - return code
1554 define lisp_add_del_locator_reply
1560 /** \brief add or delete lisp eid-table
1561 @param client_index - opaque cookie to identify the sender
1562 @param context - sender context, to match reply w/ request
1563 @param is_add - add address if non-zero, else delete
1568 @param eid - EID can be ip4, ip6 or mac
1569 @param prefix_len - prefix len
1570 @param locator_set_name - name of locator_set to add/del eid-table
1571 @param vni - virtual network instance
1576 @param key - secret key
1578 define lisp_add_del_local_eid
1586 u8 locator_set_name[64];
1592 /** \brief Reply for local_eid add/del
1593 @param context - returned sender context, to match reply w/ request
1594 @param retval - return code
1596 define lisp_add_del_local_eid_reply
1602 /** \brief add or delete lisp gpe tunnel
1603 @param client_index - opaque cookie to identify the sender
1604 @param context - sender context, to match reply w/ request
1605 @param is_add - add address if non-zero, else delete
1610 @param rmt_eid - remote eid
1611 @param lcl_eid - local eid
1612 @param rmt_len - remote prefix len
1613 @param lcl_len - local prefix len
1614 @param vni - virtual network identifier
1615 @param dp_table - vrf/bridge domain id
1616 @param loc_num - number of locators
1617 @param lcl_locs - array of local locators
1618 @param rmt_locs - array of remote locators
1619 @param action - negative action when 0 locators configured
1621 define lisp_gpe_add_del_fwd_entry
1634 u8 lcl_locs[loc_num];
1635 u8 rmt_locs[loc_num];
1639 /** \brief Reply for gpe_fwd_entry add/del
1640 @param context - returned sender context, to match reply w/ request
1641 @param retval - return code
1643 define lisp_gpe_add_del_fwd_entry_reply
1649 /** \brief Add/delete map server
1650 @param client_index - opaque cookie to identify the sender
1651 @param context - sender context, to match reply w/ request
1652 @param is_add - add address if non-zero; delete otherwise
1653 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1654 @param ip_address - map server IP address
1656 define lisp_add_del_map_server
1665 /** \brief Reply for lisp_add_del_map_server
1666 @param context - returned sender context, to match reply w/ request
1667 @param retval - return code
1669 define lisp_add_del_map_server_reply
1675 /** \brief add or delete map-resolver
1676 @param client_index - opaque cookie to identify the sender
1677 @param context - sender context, to match reply w/ request
1678 @param is_add - add address if non-zero, else delete
1679 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
1680 @param ip_address - array of address bytes
1682 define lisp_add_del_map_resolver
1691 /** \brief Reply for map_resolver add/del
1692 @param context - returned sender context, to match reply w/ request
1693 @param retval - return code
1695 define lisp_add_del_map_resolver_reply
1701 /** \brief enable or disable lisp-gpe protocol
1702 @param client_index - opaque cookie to identify the sender
1703 @param context - sender context, to match reply w/ request
1704 @param is_en - enable protocol if non-zero, else disable
1706 define lisp_gpe_enable_disable
1713 /** \brief Reply for gpe enable/disable
1714 @param context - returned sender context, to match reply w/ request
1715 @param retval - return code
1717 define lisp_gpe_enable_disable_reply
1723 /** \brief enable or disable LISP feature
1724 @param client_index - opaque cookie to identify the sender
1725 @param context - sender context, to match reply w/ request
1726 @param is_en - enable protocol if non-zero, else disable
1728 define lisp_enable_disable
1735 /** \brief Reply for gpe enable/disable
1736 @param context - returned sender context, to match reply w/ request
1737 @param retval - return code
1739 define lisp_enable_disable_reply
1745 /** \brief add or delete gpe_iface
1746 @param client_index - opaque cookie to identify the sender
1747 @param context - sender context, to match reply w/ request
1748 @param is_add - add address if non-zero, else delete
1750 define lisp_gpe_add_del_iface
1760 /** \brief Reply for gpe_iface add/del
1761 @param context - returned sender context, to match reply w/ request
1762 @param retval - return code
1764 define lisp_gpe_add_del_iface_reply
1770 /** \brief configure or disable LISP PITR node
1771 @param client_index - opaque cookie to identify the sender
1772 @param context - sender context, to match reply w/ request
1773 @param ls_name - locator set name
1774 @param is_add - add locator set if non-zero, else disable pitr
1776 define lisp_pitr_set_locator_set
1784 /** \brief Reply for lisp_pitr_set_locator_set
1785 @param context - returned sender context, to match reply w/ request
1786 @param retval - return code
1788 define lisp_pitr_set_locator_set_reply
1794 /** \brief Get state of LISP RLOC probing
1795 @param client_index - opaque cookie to identify the sender
1796 @param context - sender context, to match reply w/ request
1798 define show_lisp_rloc_probe_state
1804 /** \brief Reply for show_lisp_rloc_probe_state
1805 @param context - returned sender context, to match reply w/ request
1806 @param retval - return code
1807 @param is_enabled - state of RLOC probing
1809 define show_lisp_rloc_probe_state_reply
1816 /** \brief enable/disable LISP RLOC probing
1817 @param client_index - opaque cookie to identify the sender
1818 @param context - sender context, to match reply w/ request
1819 @param is_enable - enable if non-zero; disable otherwise
1821 define lisp_rloc_probe_enable_disable
1828 /** \brief Reply for lisp_rloc_probe_enable_disable
1829 @param context - returned sender context, to match reply w/ request
1830 @param retval - return code
1832 define lisp_rloc_probe_enable_disable_reply
1838 /** \brief enable/disable LISP map-register
1839 @param client_index - opaque cookie to identify the sender
1840 @param context - sender context, to match reply w/ request
1841 @param is_enable - enable if non-zero; disable otherwise
1843 define lisp_map_register_enable_disable
1850 /** \brief Reply for lisp_map_register_enable_disable
1851 @param context - returned sender context, to match reply w/ request
1852 @param retval - return code
1854 define lisp_map_register_enable_disable_reply
1860 /** \brief Get state of LISP map-register
1861 @param client_index - opaque cookie to identify the sender
1862 @param context - sender context, to match reply w/ request
1864 define show_lisp_map_register_state
1870 /** \brief Reply for show_lisp_map_register_state
1871 @param context - returned sender context, to match reply w/ request
1872 @param retval - return code
1874 define show_lisp_map_register_state_reply
1881 /** \brief set LISP map-request mode. Based on configuration VPP will send
1882 src/dest or just normal destination map requests.
1883 @param client_index - opaque cookie to identify the sender
1884 @param context - sender context, to match reply w/ request
1885 @param mode - new map-request mode. Supported values are:
1886 0 - destination only
1887 1 - source/destaination
1889 define lisp_map_request_mode
1896 /** \brief Reply for lisp_map_request_mode
1897 @param context - returned sender context, to match reply w/ request
1898 @param retval - return code
1900 define lisp_map_request_mode_reply
1906 /** \brief Request for LISP map-request mode
1907 @param client_index - opaque cookie to identify the sender
1908 @param context - sender context, to match reply w/ request
1910 define show_lisp_map_request_mode
1916 /** \brief Reply for show_lisp_map_request_mode
1917 @param context - returned sender context, to match reply w/ request
1918 @param retval - return code
1919 @param mode - map-request mode
1921 define show_lisp_map_request_mode_reply
1928 /** \brief add or delete remote static mapping
1929 @param client_index - opaque cookie to identify the sender
1930 @param context - sender context, to match reply w/ request
1931 @param is_add - add address if non-zero, else delete
1932 @param is_src_dst - flag indicating src/dst based routing policy
1933 @param del_all - if set, delete all remote mappings
1934 @param vni - virtual network instance
1935 @param action - negative map-reply action
1940 @param deid - dst EID
1941 @param seid - src EID, valid only if is_src_dst is enabled
1942 @param rloc_num - number of remote locators
1943 @param rlocs - remote locator records
1944 Structure of remote locator:
1953 define lisp_add_del_remote_mapping
1971 /** \brief Reply for lisp_add_del_remote_mapping
1972 @param context - returned sender context, to match reply w/ request
1973 @param retval - return code
1975 define lisp_add_del_remote_mapping_reply
1981 /** \brief add or delete LISP adjacency adjacency
1982 @param client_index - opaque cookie to identify the sender
1983 @param context - sender context, to match reply w/ request
1984 @param is_add - add address if non-zero, else delete
1985 @param vni - virtual network instance
1990 @param reid - remote EID
1991 @param leid - local EID
1993 define lisp_add_del_adjacency
2006 /** \brief Reply for lisp_add_del_adjacency
2007 @param context - returned sender context, to match reply w/ request
2008 @param retval - return code
2010 define lisp_add_del_adjacency_reply
2016 /** \brief add or delete map request itr rlocs
2017 @param client_index - opaque cookie to identify the sender
2018 @param context - sender context, to match reply w/ request
2019 @param is_add - add address if non-zero, else delete
2020 @param locator_set_name - locator set name
2022 define lisp_add_del_map_request_itr_rlocs
2027 u8 locator_set_name[64];
2030 /** \brief Reply for lisp_add_del_map_request_itr_rlocs
2031 @param context - returned sender context, to match reply w/ request
2032 @param retval - return code
2035 define lisp_add_del_map_request_itr_rlocs_reply
2041 /** \brief map/unmap vni/bd_index to vrf
2042 @param client_index - opaque cookie to identify the sender
2043 @param context - sender context, to match reply w/ request
2044 @param is_add - add or delete mapping
2045 @param dp_table - virtual network id/bridge domain index
2048 define lisp_eid_table_add_del_map
2058 /** \brief Reply for lisp_eid_table_add_del_map
2059 @param context - returned sender context, to match reply w/ request
2060 @param retval - return code
2062 define lisp_eid_table_add_del_map_reply
2068 /** \brief Request for map lisp locator status
2069 @param client_index - opaque cookie to identify the sender
2070 @param context - sender context, to match reply w/ request
2071 @param locator_set_index - index of locator_set
2072 @param ls_name - locator set name
2073 @param is_index_set - flag indicating whether ls_name or ls_index is set
2075 define lisp_locator_dump
2084 /** \brief LISP locator_set status
2085 @param local - if is set, then locator is local
2086 @param locator_set_name - name of the locator_set
2087 @param sw_if_index - sw_if_index of the locator
2088 @param priority - locator priority
2089 @param weight - locator weight
2091 define lisp_locator_details
2102 /** \brief LISP locator_set status
2103 @param context - sender context, to match reply w/ request
2104 @param ls_index - locator set index
2105 @param ls_name - name of the locator set
2107 define lisp_locator_set_details
2114 /** \brief Request for locator_set summary status
2115 @param client_index - opaque cookie to identify the sender
2116 @param context - sender context, to match reply w/ request
2117 @param filter - filter type
2120 1: local locator sets
2121 2: remote locator sets
2123 define lisp_locator_set_dump
2130 /** \brief Dump lisp eid-table
2131 @param client_index - opaque cookie to identify the sender
2132 @param context - sender context, to match reply w/ request
2133 @param locator_set_index - index of locator_set, if ~0 then the mapping
2135 @param action - negative map request action
2136 @param is_local - local if non-zero, else remote
2141 @param is_src_dst - EID is type of source/destination
2142 @param eid - EID can be ip4, ip6 or mac
2143 @param eid_prefix_len - prefix length
2144 @param seid - source EID can be ip4, ip6 or mac
2145 @param seid_prefix_len - source prefix length
2146 @param vni - virtual network instance
2147 @param ttl - time to live
2148 @param authoritative - authoritative
2153 @param key - secret key
2156 define lisp_eid_table_details
2159 u32 locator_set_index;
2175 /** \brief Request for eid table summary status
2176 @param client_index - opaque cookie to identify the sender
2177 @param context - sender context, to match reply w/ request
2178 @param eid_set - if non-zero request info about specific mapping
2179 @param vni - virtual network instance; valid only if eid_set != 0
2180 @param prefix_length - prefix length if EID is IP address;
2181 valid only if eid_set != 0
2182 @param eid_type - EID type; valid only if eid_set != 0
2186 2: EID is ethernet address
2187 @param eid - endpoint identifier
2188 @param filter - filter type;
2194 define lisp_eid_table_dump
2206 /** \brief LISP adjacency
2211 @param reid - remote EID
2212 @param leid - local EID
2213 @param reid_prefix_len - remote EID IP prefix length
2214 @param leid_prefix_len - local EID IP prefix length
2216 typeonly manual_print manual_endian define lisp_adjacency
2225 /** \brief LISP adjacency reply
2226 @param count - number of adjacencies
2227 @param adjacencies - array of adjacencies
2229 manual_endian manual_print define lisp_adjacencies_get_reply
2234 vl_api_lisp_adjacency_t adjacencies[count];
2237 /** \brief Request for LISP adjacencies
2238 @param client_index - opaque cookie to identify the sender
2239 @param context - sender context, to match reply w/ request
2240 @param vni - filter adjacencies by VNI
2242 define lisp_adjacencies_get
2249 /** \brief Shows relationship between vni and vrf/bd
2250 @param dp_table - VRF index or bridge domain index
2251 @param vni - vitual network instance
2253 define lisp_eid_table_map_details
2260 /** \brief Request for lisp_eid_table_map_details
2261 @param client_index - opaque cookie to identify the sender
2262 @param context - sender context, to match reply w/ request
2263 @param is_l2 - if set dump vni/bd mappings else vni/vrf
2265 define lisp_eid_table_map_dump
2272 /** \brief Dumps all VNIs used in mappings
2273 @param client_index - opaque cookie to identify the sender
2274 @param context - sender context, to match reply w/ request
2276 define lisp_eid_table_vni_dump
2282 /** \brief reply to lisp_eid_table_vni_dump
2283 @param client_index - opaque cookie to identify the sender
2284 @param context - sender context, to match reply w/ request
2285 @param vni - virtual network instance
2287 define lisp_eid_table_vni_details
2294 define lisp_gpe_tunnel_details
2300 u8 destination_ip[16];
2312 /** \brief Request for gpe tunnel summary status
2313 @param client_index - opaque cookie to identify the sender
2314 @param context - sender context, to match reply w/ request
2316 define lisp_gpe_tunnel_dump
2322 /** \brief LISP map resolver status
2323 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2324 @param ip_address - array of address bytes
2326 define lisp_map_resolver_details
2333 /** \brief Request for map resolver summary status
2334 @param client_index - opaque cookie to identify the sender
2335 @param context - sender context, to match reply w/ request
2337 define lisp_map_resolver_dump
2343 /** \brief LISP map server details
2344 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2345 @param ip_address - array of address bytes
2347 define lisp_map_server_details
2354 /** \brief Request for map server summary status
2355 @param client_index - opaque cookie to identify the sender
2356 @param context - sender context, to match reply w/ request
2358 define lisp_map_server_dump
2364 /** \brief Request for lisp-gpe protocol status
2365 @param client_index - opaque cookie to identify the sender
2366 @param context - sender context, to match reply w/ request
2368 define show_lisp_status
2374 /** \brief Status of lisp, enable or disable
2375 @param context - sender context, to match reply w/ request
2376 @param feature_status - lisp enable if non-zero, else disable
2377 @param gpe_status - lisp enable if non-zero, else disable
2379 define show_lisp_status_reply
2387 /** \brief Get LISP map request itr rlocs status
2388 @param context - sender context, to match reply w/ request
2389 @param locator_set_name - name of the locator_set
2391 define lisp_get_map_request_itr_rlocs
2397 /** \brief Request for map request itr rlocs summary status
2399 define lisp_get_map_request_itr_rlocs_reply
2403 u8 locator_set_name[64];
2406 /** \brief Request for lisp pitr status
2407 @param client_index - opaque cookie to identify the sender
2408 @param context - sender context, to match reply w/ request
2410 define show_lisp_pitr
2416 /** \brief Status of lisp pitr, enable or disable
2417 @param context - sender context, to match reply w/ request
2418 @param status - lisp pitr enable if non-zero, else disable
2419 @param locator_set_name - name of the locator_set
2421 define show_lisp_pitr_reply
2426 u8 locator_set_name[64];
2429 /* Gross kludge, DGMS */
2430 define interface_name_renumber
2435 u32 new_show_dev_instance;
2438 define interface_name_renumber_reply
2444 /** \brief Register for ip4 arp resolution events
2445 @param client_index - opaque cookie to identify the sender
2446 @param context - sender context, to match reply w/ request
2447 @param enable_disable - 1 => register for events, 0 => cancel registration
2448 @param pid - sender's pid
2449 @param address - the exact ip4 address of interest
2451 define want_ip4_arp_events
2460 /** \brief Reply for interface events registration
2461 @param context - returned sender context, to match reply w/ request
2462 @param retval - return code
2464 define want_ip4_arp_events_reply
2470 /** \brief Tell client about an ip4 arp resolution event
2471 @param client_index - opaque cookie to identify the sender
2472 @param context - sender context, to match reply w/ request
2473 @param address - the exact ip4 address of interest
2474 @param pid - client pid registered to receive notification
2475 @param sw_if_index - interface which received ARP packet
2476 @param new_mac - the new mac address
2477 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2479 define ip4_arp_event
2490 /** \brief Register for ip6 nd resolution events
2491 @param client_index - opaque cookie to identify the sender
2492 @param context - sender context, to match reply w/ request
2493 @param enable_disable - 1 => register for events, 0 => cancel registration
2494 @param pid - sender's pid
2495 @param address - the exact ip6 address of interest
2497 define want_ip6_nd_events
2506 /** \brief Reply for ip6 nd resolution events registration
2507 @param context - returned sender context, to match reply w/ request
2508 @param retval - return code
2510 define want_ip6_nd_events_reply
2516 /** \brief Tell client about an ip6 nd resolution or mac/ip event
2517 @param client_index - opaque cookie to identify the sender
2518 @param context - sender context, to match reply w/ request
2519 @param pid - client pid registered to receive notification
2520 @param sw_if_index - interface which received ARP packet
2521 @param address - the exact ip6 address of interest
2522 @param new_mac - the new mac address
2523 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
2536 /** \brief L2 bridge domain add or delete request
2537 @param client_index - opaque cookie to identify the sender
2538 @param context - sender context, to match reply w/ request
2539 @param bd_id - the bridge domain to create
2540 @param flood - enable/disable bcast/mcast flooding in the bd
2541 @param uu_flood - enable/disable uknown unicast flood in the bd
2542 @param forward - enable/disable forwarding on all interfaces in the bd
2543 @param learn - enable/disable learning on all interfaces in the bd
2544 @param arp_term - enable/disable arp termination in the bd
2545 @param mac_age - mac aging time in min, 0 for disabled
2546 @param is_add - add or delete flag
2548 define bridge_domain_add_del
2562 /** \brief L2 bridge domain add or delete response
2563 @param context - sender context, to match reply w/ request
2564 @param retval - return code for the set bridge flags request
2566 define bridge_domain_add_del_reply
2572 /** \brief L2 bridge domain request operational state details
2573 @param client_index - opaque cookie to identify the sender
2574 @param context - sender context, to match reply w/ request
2575 @param bd_id - the bridge domain id desired or ~0 to request all bds
2577 define bridge_domain_dump
2584 /** \brief L2 bridge domain operational state response
2585 @param bd_id - the bridge domain id
2586 @param flood - bcast/mcast flooding state on all interfaces in the bd
2587 @param uu_flood - uknown unicast flooding state on all interfaces in the bd
2588 @param forward - forwarding state on all interfaces in the bd
2589 @param learn - learning state on all interfaces in the bd
2590 @param arp_term - arp termination state on all interfaces in the bd
2591 @param mac_age - mac aging time in min, 0 for disabled
2592 @param n_sw_ifs - number of sw_if_index's in the domain
2594 define bridge_domain_details
2604 u32 bvi_sw_if_index;
2608 /** \brief L2 bridge domain sw interface operational state response
2609 @param bd_id - the bridge domain id
2610 @param sw_if_index - sw_if_index in the domain
2611 @param shg - split horizon group for the interface
2613 define bridge_domain_sw_if_details
2621 /** \brief DHCP Client config add / del request
2622 @param client_index - opaque cookie to identify the sender
2623 @param context - sender context, to match reply w/ request
2624 @param sw_if_index - index of the interface for DHCP client
2625 @param hostname - hostname
2626 @param is_add - add the config if non-zero, else delete
2627 @param want_dhcp_event - DHCP event sent to the sender
2628 via dhcp_compl_event API message if non-zero
2629 @param pid - sender's pid
2631 define dhcp_client_config
2642 /** \brief DHCP Client config response
2643 @param context - sender context, to match reply w/ request
2644 @param retval - return code for the request
2646 define dhcp_client_config_reply
2652 /** \brief Set/unset input ACL interface
2653 @param client_index - opaque cookie to identify the sender
2654 @param context - sender context, to match reply w/ request
2655 @param sw_if_index - interface to set/unset input ACL
2656 @param ip4_table_index - ip4 classify table index (~0 for skip)
2657 @param ip6_table_index - ip6 classify table index (~0 for skip)
2658 @param l2_table_index - l2 classify table index (~0 for skip)
2659 @param is_add - Set input ACL if non-zero, else unset
2660 Note: User is recommeneded to use just one valid table_index per call.
2661 (ip4_table_index, ip6_table_index, or l2_table_index)
2663 define input_acl_set_interface
2668 u32 ip4_table_index;
2669 u32 ip6_table_index;
2674 /** \brief Set/unset input ACL interface response
2675 @param context - sender context, to match reply w/ request
2676 @param retval - return code for the request
2678 define input_acl_set_interface_reply
2684 /** \brief Tell client about a DHCP completion event
2685 @param client_index - opaque cookie to identify the sender
2686 @param pid - client pid registered to receive notification
2687 @param is_ipv6 - if non-zero the address is ipv6, else ipv4
2688 @param host_address - Host IP address
2689 @param router_address - Router IP address
2690 @param host_mac - Host MAC address
2692 define dhcp_compl_event
2698 u8 host_address[16];
2699 u8 router_address[16];
2703 /** \brief cop: enable/disable junk filtration features on an interface
2704 @param client_index - opaque cookie to identify the sender
2705 @param context - sender context, to match reply w/ request
2706 @param sw_if_inded - desired interface
2707 @param enable_disable - 1 => enable, 0 => disable
2710 define cop_interface_enable_disable
2718 /** \brief cop: interface enable/disable junk filtration reply
2719 @param context - returned sender context, to match reply w/ request
2720 @param retval - return code
2723 define cop_interface_enable_disable_reply
2729 /** \brief cop: enable/disable whitelist filtration features on an interface
2730 Note: the supplied fib_id must match in order to remove the feature!
2732 @param client_index - opaque cookie to identify the sender
2733 @param context - sender context, to match reply w/ request
2734 @param sw_if_index - interface handle, physical interfaces only
2735 @param fib_id - fib identifier for the whitelist / blacklist fib
2736 @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
2737 @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
2738 @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it
2741 define cop_whitelist_enable_disable
2752 /** \brief cop: interface enable/disable junk filtration reply
2753 @param context - returned sender context, to match reply w/ request
2754 @param retval - return code
2757 define cop_whitelist_enable_disable_reply
2763 /** \brief get_node_graph - get a copy of the vpp node graph
2764 including the current set of graph arcs.
2766 @param client_index - opaque cookie to identify the sender
2767 @param context - sender context, to match reply w/ request
2770 define get_node_graph
2776 /** \brief get_node_graph_reply
2777 @param context - returned sender context, to match reply w/ request
2778 @param retval - return code
2779 @param reply_in_shmem - result from vlib_node_serialize, in shared
2780 memory. Process with vlib_node_unserialize, remember to switch
2781 heaps and free the result.
2784 define get_node_graph_reply
2791 /** \brief IOAM enable : Enable in-band OAM
2792 @param id - profile id
2793 @param seqno - To enable Seqno Processing
2794 @param analyse - Enabling analysis of iOAM at decap node
2795 @param pow_enable - Proof of Work enabled or not flag
2796 @param trace_enable - iOAM Trace enabled or not flag
2810 /** \brief iOAM Trace profile add / del response
2811 @param context - sender context, to match reply w/ request
2812 @param retval - return value for request
2814 define ioam_enable_reply
2820 /** \brief iOAM disable
2821 @param client_index - opaque cookie to identify the sender
2822 @param context - sender context, to match reply w/ request
2823 @param index - MAP Domain index
2832 /** \brief iOAM disable response
2833 @param context - sender context, to match reply w/ request
2834 @param retval - return value for request
2836 define ioam_disable_reply
2842 /** \brief Add/del policer
2843 @param client_index - opaque cookie to identify the sender
2844 @param context - sender context, to match reply w/ request
2845 @param is_add - add policer if non-zero, else delete
2846 @param name - policer name
2849 @param cb - Committed Burst
2850 @param eb - Excess or Peak Burst
2851 @param rate_type - rate type
2852 @param round_type - rounding type
2853 @param type - policer algorithm
2854 @param color_aware - 0=color-blind, 1=color-aware
2855 @param conform_action_type - conform action type
2856 @param conform_dscp - DSCP for conform mar-and-transmit action
2857 @param exceed_action_type - exceed action type
2858 @param exceed_dscp - DSCP for exceed mar-and-transmit action
2859 @param violate_action_type - violate action type
2860 @param violate_dscp - DSCP for violate mar-and-transmit action
2862 define policer_add_del
2877 u8 conform_action_type;
2879 u8 exceed_action_type;
2881 u8 violate_action_type;
2885 /** \brief Add/del policer response
2886 @param context - sender context, to match reply w/ request
2887 @param retval - return value for request
2888 @param policer_index - for add, returned index of the new policer
2890 define policer_add_del_reply
2897 /** \brief Get list of policers
2898 @param client_index - opaque cookie to identify the sender
2899 @param context - sender context, to match reply w/ request
2900 @param match_name_valid - if 0 request all policers otherwise use match_name
2901 @param match_name - policer name
2908 u8 match_name_valid;
2912 /** \brief Policer operational state response.
2913 @param context - sender context, to match reply w/ request
2914 @param name - policer name
2917 @param cb - Committed Burst
2918 @param eb - Excess or Peak Burst
2919 @param rate_type - rate type
2920 @param round_type - rounding type
2921 @param type - policer algorithm
2922 @param conform_action_type - conform action type
2923 @param conform_dscp - DSCP for conform mar-and-transmit action
2924 @param exceed_action_type - exceed action type
2925 @param exceed_dscp - DSCP for exceed mar-and-transmit action
2926 @param violate_action_type - violate action type
2927 @param violate_dscp - DSCP for violate mar-and-transmit action
2928 @param single_rate - 1 = single rate policer, 0 = two rate policer
2929 @param color_aware - for hierarchical policing
2930 @param scale - power-of-2 shift amount for lower rates
2931 @param cir_tokens_per_period - number of tokens for each period
2932 @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
2933 @param current_limit - current limit
2934 @param current_bucket - current bucket
2935 @param extended_limit - extended limit
2936 @param extended_bucket - extended bucket
2937 @param last_update_time - last update time
2939 define policer_details
2951 u8 conform_action_type;
2953 u8 exceed_action_type;
2955 u8 violate_action_type;
2960 u32 cir_tokens_per_period;
2961 u32 pir_tokens_per_period;
2965 u32 extended_bucket;
2966 u64 last_update_time;
2969 /** \brief Set/unset policer classify interface
2970 @param client_index - opaque cookie to identify the sender
2971 @param context - sender context, to match reply w/ request
2972 @param sw_if_index - interface to set/unset policer classify
2973 @param ip4_table_index - ip4 classify table index (~0 for skip)
2974 @param ip6_table_index - ip6 classify table index (~0 for skip)
2975 @param l2_table_index - l2 classify table index (~0 for skip)
2976 @param is_add - Set if non-zero, else unset
2977 Note: User is recommeneded to use just one valid table_index per call.
2978 (ip4_table_index, ip6_table_index, or l2_table_index)
2980 define policer_classify_set_interface
2985 u32 ip4_table_index;
2986 u32 ip6_table_index;
2991 /** \brief Set/unset policer classify interface response
2992 @param context - sender context, to match reply w/ request
2993 @param retval - return value for request
2995 define policer_classify_set_interface_reply
3001 /** \brief Get list of policer classify interfaces and tables
3002 @param client_index - opaque cookie to identify the sender
3003 @param context - sender context, to match reply w/ request
3004 @param type - classify table type
3006 define policer_classify_dump
3013 /** \brief Policer iclassify operational state response.
3014 @param context - sender context, to match reply w/ request
3015 @param sw_if_index - software interface index
3016 @param table_index - classify table index
3018 define policer_classify_details
3025 /** \brief Classify get table IDs request
3026 @param client_index - opaque cookie to identify the sender
3027 @param context - sender context, to match reply w/ request
3029 define classify_table_ids
3035 /** \brief Reply for classify get table IDs request
3036 @param context - sender context which was passed in the request
3037 @param count - number of ids returned in response
3038 @param ids - array of classify table ids
3040 define classify_table_ids_reply
3048 /** \brief Classify table ids by interface index request
3049 @param client_index - opaque cookie to identify the sender
3050 @param context - sender context, to match reply w/ request
3051 @param sw_if_index - index of the interface
3053 define classify_table_by_interface
3060 /** \brief Reply for classify table id by interface index request
3061 @param context - sender context which was passed in the request
3062 @param count - number of ids returned in response
3063 @param sw_if_index - index of the interface
3064 @param l2_table_id - l2 classify table index
3065 @param ip4_table_id - ip4 classify table index
3066 @param ip6_table_id - ip6 classify table index
3068 define classify_table_by_interface_reply
3078 /** \brief Classify table info
3079 @param client_index - opaque cookie to identify the sender
3080 @param context - sender context, to match reply w/ request
3081 @param table_id - classify table index
3083 define classify_table_info
3090 /** \brief Reply for classify table info request
3091 @param context - sender context which was passed in the request
3092 @param count - number of ids returned in response
3093 @param table_id - classify table index
3094 @param nbuckets - number of buckets when adding a table
3095 @param match_n_vectors - number of match vectors
3096 @param skip_n_vectors - number of skip_n_vectors
3097 @param active_sessions - number of sessions (active entries)
3098 @param next_table_index - index of next table
3099 @param miss_next_index - index of miss table
3100 @param mask[] - match mask
3102 define classify_table_info_reply
3108 u32 match_n_vectors;
3110 u32 active_sessions;
3111 u32 next_table_index;
3112 u32 miss_next_index;
3114 u8 mask[mask_length];
3117 /** \brief Classify sessions dump request
3118 @param client_index - opaque cookie to identify the sender
3119 @param context - sender context, to match reply w/ request
3120 @param table_id - classify table index
3122 define classify_session_dump
3129 /** \brief Reply for classify table session dump request
3130 @param context - sender context which was passed in the request
3131 @param count - number of ids returned in response
3132 @param table_id - classify table index
3133 @param hit_next_index - hit_next_index of session
3134 @param opaque_index - for add, opaque_index of session
3135 @param advance - advance value of session
3136 @param match[] - match value for session
3138 define classify_session_details
3147 u8 match[match_length];
3150 /** \brief Configure IPFIX exporter process request
3151 @param client_index - opaque cookie to identify the sender
3152 @param context - sender context, to match reply w/ request
3153 @param collector_address - address of IPFIX collector
3154 @param collector_port - port of IPFIX collector
3155 @param src_address - address of IPFIX exporter
3156 @param vrf_id - VRF / fib table ID
3157 @param path_mtu - Path MTU between exporter and collector
3158 @param template_interval - number of seconds after which to resend template
3159 @param udp_checksum - UDP checksum calculation enable flag
3161 define set_ipfix_exporter
3165 u8 collector_address[16];
3170 u32 template_interval;
3174 /** \brief Reply to IPFIX exporter configure request
3175 @param context - sender context which was passed in the request
3177 define set_ipfix_exporter_reply
3183 /** \brief IPFIX exporter dump request
3184 @param client_index - opaque cookie to identify the sender
3185 @param context - sender context, to match reply w/ request
3187 define ipfix_exporter_dump
3193 /** \brief Reply to IPFIX exporter dump request
3194 @param context - sender context which was passed in the request
3195 @param collector_address - address of IPFIX collector
3196 @param collector_port - port of IPFIX collector
3197 @param src_address - address of IPFIX exporter
3198 @param fib_index - fib table index
3199 @param path_mtu - Path MTU between exporter and collector
3200 @param template_interval - number of seconds after which to resend template
3201 @param udp_checksum - UDP checksum calculation enable flag
3203 define ipfix_exporter_details
3206 u8 collector_address[16];
3211 u32 template_interval;
3215 /** \brief IPFIX classify stream configure request
3216 @param client_index - opaque cookie to identify the sender
3217 @param context - sender context, to match reply w/ request
3218 @param domain_id - domain ID reported in IPFIX messages for classify stream
3219 @param src_port - source port of UDP session for classify stream
3221 define set_ipfix_classify_stream {
3228 /** \brief IPFIX classify stream configure response
3229 @param context - sender context, to match reply w/ request
3230 @param retval - return value for request
3232 define set_ipfix_classify_stream_reply {
3237 /** \brief IPFIX classify stream dump request
3238 @param client_index - opaque cookie to identify the sender
3239 @param context - sender context, to match reply w/ request
3241 define ipfix_classify_stream_dump {
3246 /** \brief Reply to IPFIX classify stream dump request
3247 @param context - sender context, to match reply w/ request
3248 @param domain_id - domain ID reported in IPFIX messages for classify stream
3249 @param src_port - source port of UDP session for classify stream
3251 define ipfix_classify_stream_details {
3257 /** \brief IPFIX add or delete classifier table request
3258 @param client_index - opaque cookie to identify the sender
3259 @param context - sender context, to match reply w/ request
3260 @param table_id - classifier table ID
3261 @param ip_version - version of IP used in the classifier table
3262 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
3264 define ipfix_classify_table_add_del {
3269 u8 transport_protocol;
3273 /** \brief IPFIX add classifier table response
3274 @param context - sender context which was passed in the request
3276 define ipfix_classify_table_add_del_reply {
3281 /** \brief IPFIX classify tables dump request
3282 @param client_index - opaque cookie to identify the sender
3283 @param context - sender context, to match reply w/ request
3285 define ipfix_classify_table_dump {
3290 /** \brief Reply to IPFIX classify tables dump request
3291 @param context - sender context, to match reply w/ request
3292 @param table_id - classifier table ID
3293 @param ip_version - version of IP used in the classifier table
3294 @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
3296 define ipfix_classify_table_details {
3300 u8 transport_protocol;
3303 /** \brief Set/unset flow classify interface
3304 @param client_index - opaque cookie to identify the sender
3305 @param context - sender context, to match reply w/ request
3306 @param sw_if_index - interface to set/unset flow classify
3307 @param ip4_table_index - ip4 classify table index (~0 for skip)
3308 @param ip6_table_index - ip6 classify table index (~0 for skip)
3309 @param l2_table_index - l2 classify table index (~0 for skip)
3310 @param is_add - Set if non-zero, else unset
3311 Note: User is recommeneded to use just one valid table_index per call.
3312 (ip4_table_index, ip6_table_index, or l2_table_index)
3314 define flow_classify_set_interface {
3318 u32 ip4_table_index;
3319 u32 ip6_table_index;
3323 /** \brief Set/unset flow classify interface response
3324 @param context - sender context, to match reply w/ request
3325 @param retval - return value for request
3327 define flow_classify_set_interface_reply {
3332 /** \brief Get list of flow classify interfaces and tables
3333 @param client_index - opaque cookie to identify the sender
3334 @param context - sender context, to match reply w/ request
3335 @param type - classify table type
3337 define flow_classify_dump {
3343 /** \brief Flow classify operational state response.
3344 @param context - sender context, to match reply w/ request
3345 @param sw_if_index - software interface index
3346 @param table_index - classify table index
3348 define flow_classify_details {
3354 /** \brief Query relative index via node names
3355 @param client_index - opaque cookie to identify the sender
3356 @param context - sender context, to match reply w/ request
3357 @param node_name - name of node to find relative index from
3358 @param next_name - next node from node_name to find relative index of
3360 define get_next_index
3368 /** \brief Reply for get next node index
3369 @param context - sender context which was passed in the request
3370 @param retval - return value
3371 @param next_index - index of the next_node
3373 define get_next_index_reply
3380 /** \brief PacketGenerator create interface request
3381 @param client_index - opaque cookie to identify the sender
3382 @param context - sender context, to match reply w/ request
3383 @param interface_id - interface index
3385 define pg_create_interface
3392 /** \brief PacketGenerator create interface response
3393 @param context - sender context, to match reply w/ request
3394 @param retval - return value for request
3396 define pg_create_interface_reply
3403 /** \brief PacketGenerator capture packets on given interface request
3404 @param client_index - opaque cookie to identify the sender
3405 @param context - sender context, to match reply w/ request
3406 @param interface_id - pg interface index
3407 @param is_enabled - 1 if enabling streams, 0 if disabling
3408 @param count - number of packets to be captured
3409 @param pcap_file - pacp file name to store captured packets
3418 u32 pcap_name_length;
3419 u8 pcap_file_name[pcap_name_length];
3422 /** \brief PacketGenerator capture packets response
3423 @param context - sender context, to match reply w/ request
3424 @param retval - return value for request
3426 define pg_capture_reply
3432 /** \brief Enable / disable packet generator request
3433 @param client_index - opaque cookie to identify the sender
3434 @param context - sender context, to match reply w/ request
3435 @param is_enabled - 1 if enabling streams, 0 if disabling
3436 @param stream - stream name to be enable/disabled, if not specified handle all streams
3438 define pg_enable_disable
3443 u32 stream_name_length;
3444 u8 stream_name[stream_name_length];
3447 /** \brief Reply for enable / disable packet generator
3448 @param context - returned sender context, to match reply w/ request
3449 @param retval - return code
3451 define pg_enable_disable_reply
3457 /** \brief Configure IP source and L4 port-range check
3458 @param client_index - opaque cookie to identify the sender
3459 @param context - sender context, to match reply w/ request
3460 @param is_ip6 - 1 if source address type is IPv6
3461 @param is_add - 1 if add, 0 if delete
3462 @param mask_length - mask length for address entry
3463 @param address - array of address bytes
3464 @param number_of_ranges - length of low_port and high_port arrays (must match)
3465 @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
3466 @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
3467 @param vrf_id - fib table/vrf id to associate the source and port-range check with
3468 @note To specify a single port set low_port and high_port entry the same
3470 define ip_source_and_port_range_check_add_del
3478 u8 number_of_ranges;
3484 /** \brief Configure IP source and L4 port-range check reply
3485 @param context - returned sender context, to match reply w/ request
3486 @param retval - return code
3488 define ip_source_and_port_range_check_add_del_reply
3494 /** \brief Set interface source and L4 port-range request
3495 @param client_index - opaque cookie to identify the sender
3496 @param context - sender context, to match reply w/ request
3497 @param interface_id - interface index
3498 @param tcp_vrf_id - VRF associated with source and TCP port-range check
3499 @param udp_vrf_id - VRF associated with source and TCP port-range check
3501 define ip_source_and_port_range_check_interface_add_del
3513 /** \brief Set interface source and L4 port-range response
3514 @param context - sender context, to match reply w/ request
3515 @param retval - return value for request
3517 define ip_source_and_port_range_check_interface_add_del_reply
3523 /** \brief Delete sub interface request
3524 @param client_index - opaque cookie to identify the sender
3525 @param context - sender context, to match reply w/ request
3526 @param sw_if_index - sw index of the interface that was created by create_subif
3528 define delete_subif {
3534 /** \brief Delete sub interface response
3535 @param context - sender context, to match reply w/ request
3536 @param retval - return code for the request
3538 define delete_subif_reply {
3543 /** \brief DPDK interface HQoS pipe profile set request
3544 @param client_index - opaque cookie to identify the sender
3545 @param context - sender context, to match reply w/ request
3546 @param sw_if_index - the interface
3547 @param subport - subport ID
3548 @param pipe - pipe ID within its subport
3549 @param profile - pipe profile ID
3551 define sw_interface_set_dpdk_hqos_pipe {
3560 /** \brief DPDK interface HQoS pipe profile set reply
3561 @param context - sender context, to match reply w/ request
3562 @param retval - request return code
3564 define sw_interface_set_dpdk_hqos_pipe_reply {
3569 /** \brief DPDK interface HQoS subport parameters set request
3570 @param client_index - opaque cookie to identify the sender
3571 @param context - sender context, to match reply w/ request
3572 @param sw_if_index - the interface
3573 @param subport - subport ID
3574 @param tb_rate - subport token bucket rate (measured in bytes/second)
3575 @param tb_size - subport token bucket size (measured in credits)
3576 @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
3577 @param tc_period - enforcement period for rates (measured in milliseconds)
3579 define sw_interface_set_dpdk_hqos_subport {
3590 /** \brief DPDK interface HQoS subport parameters set reply
3591 @param context - sender context, to match reply w/ request
3592 @param retval - request return code
3594 define sw_interface_set_dpdk_hqos_subport_reply {
3599 /** \brief DPDK interface HQoS tctbl entry set request
3600 @param client_index - opaque cookie to identify the sender
3601 @param context - sender context, to match reply w/ request
3602 @param sw_if_index - the interface
3603 @param entry - entry index ID
3604 @param tc - traffic class (0 .. 3)
3605 @param queue - traffic class queue (0 .. 3)
3607 define sw_interface_set_dpdk_hqos_tctbl {
3616 /** \brief DPDK interface HQoS tctbl entry set reply
3617 @param context - sender context, to match reply w/ request
3618 @param retval - request return code
3620 define sw_interface_set_dpdk_hqos_tctbl_reply {
3625 /** \brief L2 interface pbb tag rewrite configure request
3626 @param client_index - opaque cookie to identify the sender
3627 @param context - sender context, to match reply w/ request
3628 @param sw_if_index - interface the operation is applied to
3629 @param vtr_op - Choose from l2_vtr_op_t enum values
3630 @param inner_tag - needed for translate_qinq vtr op only
3631 @param outer_tag - needed for translate_qinq vtr op only
3632 @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op
3633 @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op
3634 @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
3635 @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
3637 define l2_interface_pbb_tag_rewrite
3650 /** \brief L2 interface pbb tag rewrite response
3651 @param context - sender context, to match reply w/ request
3652 @param retval - return code for the request
3654 define l2_interface_pbb_tag_rewrite_reply
3660 /** \brief Punt traffic to the host
3661 @param client_index - opaque cookie to identify the sender
3662 @param context - sender context, to match reply w/ request
3663 @param is_add - add punt if non-zero, else delete
3664 @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
3665 @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
3666 @param l4_port - TCP/UDP port to be punted
3677 /** \brief Reply to the punt request
3678 @param context - sender context which was passed in the request
3679 @param retval - return code of punt request
3687 /** \brief Feature path enable/disable request
3688 @param client_index - opaque cookie to identify the sender
3689 @param context - sender context, to match reply w/ request
3690 @param sw_if_index - the interface
3691 @param enable - 1 = on, 0 = off
3693 define feature_enable_disable {
3699 u8 feature_name[64];
3702 /** \brief Reply to the eature path enable/disable request
3703 @param context - sender context which was passed in the request
3704 @param retval - return code for the request
3706 define feature_enable_disable_reply
3714 * eval: (c-set-style "gnu")