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 .../src/vnet/{interface.api,interface_api.c}
26 * IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
27 * TAP APIs: see .../src/vnet/unix/{tap.api, tap_api.c}
28 * VXLAN APIs: see .../src/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 ... /src/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 .../src/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
33 * GRE APIs: see .../src/vnet/gre/{gre.api, gre_api.c}
34 * L2 APIs: see .../src/vnet/l2/{l2.api, l2_api.c}
35 * L2TP APIs: see .../src/vnet/l2tp/{l2tp.api, l2tp_api.c}
36 * BFD APIs: see .../src/vnet/bfd/{bfd.api, bfd_api.c}
37 * IPSEC APIs: see .../src/vnet/ipsec/{ipsec.api, ipsec_api.c}
38 * IPSEC-GRE APIs: see .../src/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
39 * LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
40 * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
41 * SESSION APIs: .../vnet/session/{session.api session_api.c}
42 * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
43 * SR APIs: see .../src/vnet/sr/{sr.api, sr_api.c}
44 * DPDK APIs: see ... /src/vnet/devices/dpdk/{dpdk.api, dpdk_api.c}
45 * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
46 * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
47 * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
48 * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
49 * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
52 /** \brief Create a new subinterface with the given vlan id
53 @param client_index - opaque cookie to identify the sender
54 @param context - sender context, to match reply w/ request
55 @param sw_if_index - software index of the new vlan's parent interface
56 @param vlan_id - vlan tag of the new interface
58 define create_vlan_subif
66 /** \brief Reply for the vlan subinterface create request
67 @param context - returned sender context, to match reply w/ request
68 @param retval - return code
69 @param sw_if_index - software index allocated for the new subinterface
71 define create_vlan_subif_reply
78 /** \brief Enable or Disable MPLS on and interface
79 @param client_index - opaque cookie to identify the sender
80 @param context - sender context, to match reply w/ request
81 @param sw_if_index - index of the interface
82 @param enable - if non-zero enable, else disable
84 define sw_interface_set_mpls_enable
92 /** \brief Reply for MPLS state on an interface
93 @param context - returned sender context, to match reply w/ request
94 @param retval - return code
96 define sw_interface_set_mpls_enable_reply
102 /** \brief Proxy ARP add / del request
103 @param client_index - opaque cookie to identify the sender
104 @param context - sender context, to match reply w/ request
105 @param vrf_id - VRF / Fib table ID
106 @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
107 @param low_address[4] - Low address of the Proxy ARP range
108 @param hi_address[4] - High address of the Proxy ARP range
110 define proxy_arp_add_del
120 /** \brief Reply for proxy arp add / del request
121 @param context - returned sender context, to match reply w/ request
122 @param retval - return code
124 define proxy_arp_add_del_reply
130 /** \brief Proxy ARP add / del request
131 @param client_index - opaque cookie to identify the sender
132 @param context - sender context, to match reply w/ request
133 @param sw_if_index - Which interface to enable / disable Proxy Arp on
134 @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
136 define proxy_arp_intfc_enable_disable
141 /* 1 = on, 0 = off */
145 /** \brief Reply for Proxy ARP interface enable / disable request
146 @param context - returned sender context, to match reply w/ request
147 @param retval - return code
149 define proxy_arp_intfc_enable_disable_reply
155 /** \brief Reset VRF (remove all routes etc) request
156 @param client_index - opaque cookie to identify the sender
157 @param context - sender context, to match reply w/ request
158 @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
159 @param vrf_id - ID of th FIB table / VRF to reset
169 /** \brief Reply for Reset VRF request
170 @param context - returned sender context, to match reply w/ request
171 @param retval - return code
173 define reset_vrf_reply
179 /** \brief Is Address Reachable request - DISABLED
180 @param client_index - opaque cookie to identify the sender
181 @param context - sender context, to match reply w/ request
182 @param next_hop_sw_if_index - index of interface used to get to next hop
183 @param is_ipv6 - 1 for IPv6, 0 for IPv4
184 @param is_error - address not found or does not match intf
185 @param address[] - Address in question
187 define is_address_reachable
189 u32 client_index; /* (api_main_t *) am->my_client_index */
191 u32 next_hop_sw_if_index;
192 u8 is_known; /* on reply, this is the answer */
194 u8 is_error; /* address not found or does not match intf */
198 /** \brief Want Stats, register for stats updates
199 @param client_index - opaque cookie to identify the sender
200 @param context - sender context, to match reply w/ request
201 @param enable_disable - 1 = enable stats, 0 = disable
202 @param pid - pid of process requesting stats updates
212 /** \brief Reply for Want Stats request
213 @param context - returned sender context, to match reply w/ request
214 @param retval - return code
216 define want_stats_reply
222 typeonly manual_print manual_endian define ip4_fib_counter
230 manual_print manual_endian define vnet_ip4_fib_counters
234 vl_api_ip4_fib_counter_t c[count];
237 typeonly manual_print manual_endian define ip4_nbr_counter
246 * @brief Per-neighbour (i.e. per-adjacency) coutners
247 * @param count The size of the array of counters
248 * @param sw_if_index The interface the adjacency is on
249 * @param begin Flag to indicate this is the first set of stats for this
250 * interface. If this flag is not set the it is a continuation of
251 * stats for this interface
254 manual_print manual_endian define vnet_ip4_nbr_counters
259 vl_api_ip4_nbr_counter_t c[count];
262 typeonly manual_print manual_endian define ip6_fib_counter
270 manual_print manual_endian define vnet_ip6_fib_counters
274 vl_api_ip6_fib_counter_t c[count];
277 typeonly manual_print manual_endian define ip6_nbr_counter
285 manual_print manual_endian define vnet_ip6_nbr_counters
290 vl_api_ip6_nbr_counter_t c[count];
293 /** \brief Request for a single block of summary stats
294 @param client_index - opaque cookie to identify the sender
295 @param context - sender context, to match reply w/ request
297 define vnet_get_summary_stats
303 /** \brief Reply for vnet_get_summary_stats request
304 @param context - sender context, to match reply w/ request
305 @param retval - return code for request
310 define vnet_summary_stats_reply
319 /** \brief OAM event structure
320 @param dst_address[] -
329 /** \brief Want OAM events request
330 @param client_index - opaque cookie to identify the sender
331 @param context - sender context, to match reply w/ request
332 @param enable_disable- enable if non-zero, else disable
333 @param pid - pid of the requesting process
335 define want_oam_events
343 /** \brief Want OAM events response
344 @param context - sender context, to match reply w/ request
345 @param retval - return code for the want oam stats request
347 define want_oam_events_reply
353 /** \brief OAM add / del target request
354 @param client_index - opaque cookie to identify the sender
355 @param context - sender context, to match reply w/ request
356 @param vrf_id - vrf_id of the target
357 @param src_address[] - source address to use for the updates
358 @param dst_address[] - destination address of the target
359 @param is_add - add target if non-zero, else delete
371 /** \brief OAM add / del target response
372 @param context - sender context, to match reply w/ request
373 @param retval - return code of the request
375 define oam_add_del_reply
381 /** \brief Reset fib table request
382 @param client_index - opaque cookie to identify the sender
383 @param context - sender context, to match reply w/ request
384 @param vrf_id - vrf/table id of the fib table to reset
385 @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
395 /** \brief Reset fib response
396 @param context - sender context, to match reply w/ request
397 @param retval - return code for the reset bfib request
399 define reset_fib_reply
405 /** \brief Create loopback interface request
406 @param client_index - opaque cookie to identify the sender
407 @param context - sender context, to match reply w/ request
408 @param mac_address - mac addr to assign to the interface if none-zero
410 define create_loopback
417 /** \brief Create loopback interface response
418 @param context - sender context, to match reply w/ request
419 @param sw_if_index - sw index of the interface that was created
420 @param retval - return code for the request
422 define create_loopback_reply
429 /** \brief Delete loopback interface request
430 @param client_index - opaque cookie to identify the sender
431 @param context - sender context, to match reply w/ request
432 @param sw_if_index - sw index of the interface that was created
434 define delete_loopback
441 /** \brief Delete loopback interface response
442 @param context - sender context, to match reply w/ request
443 @param retval - return code for the request
445 define delete_loopback_reply
451 /** \brief Control ping from client to api server request
452 @param client_index - opaque cookie to identify the sender
453 @param context - sender context, to match reply w/ request
461 /** \brief Control ping from the client to the server response
462 @param client_index - opaque cookie to identify the sender
463 @param context - sender context, to match reply w/ request
464 @param retval - return code for the request
465 @param vpe_pid - the pid of the vpe, returned by the server
467 define control_ping_reply
475 /** \brief Process a vpe parser cli string request
476 @param client_index - opaque cookie to identify the sender
477 @param context - sender context, to match reply w/ request
478 @param cmd_in_shmem - pointer to cli command string
494 /** \brief vpe parser cli string response
495 @param context - sender context, to match reply w/ request
496 @param retval - return code for request
497 @param reply_in_shmem - Reply string from cli processing if any
505 define cli_inband_reply
513 /** \brief Set max allowed ARP or ip6 neighbor entries request
514 @param client_index - opaque cookie to identify the sender
515 @param context - sender context, to match reply w/ request
516 @param is_ipv6 - neighbor limit if non-zero, else ARP limit
517 @param arp_neighbor_limit - the new limit, defaults are ~ 50k
519 define set_arp_neighbor_limit
524 u32 arp_neighbor_limit;
527 /** \brief Set max allowed ARP or ip6 neighbor entries response
528 @param context - sender context, to match reply w/ request
529 @param retval - return code for request
531 define set_arp_neighbor_limit_reply
537 /** \brief L2 interface patch add / del request
538 @param client_index - opaque cookie to identify the sender
539 @param context - sender context, to match reply w/ request
540 @param rx_sw_if_index - receive side interface
541 @param tx_sw_if_index - transmit side interface
542 @param is_add - if non-zero set up the interface patch, else remove it
544 define l2_patch_add_del
553 /** \brief L2 interface patch add / del response
554 @param context - sender context, to match reply w/ request
555 @param retval - return code for the request
557 define l2_patch_add_del_reply
563 /** \brief Interface set vpath request
564 @param client_index - opaque cookie to identify the sender
565 @param context - sender context, to match reply w/ request
566 @param sw_if_index - interface used to reach neighbor
567 @param enable - if non-zero enable, else disable
569 define sw_interface_set_vpath
577 /** \brief Interface set vpath response
578 @param context - sender context, to match reply w/ request
579 @param retval - return code for the request
581 define sw_interface_set_vpath_reply
587 /** \brief Set L2 XConnect between two interfaces request
588 @param client_index - opaque cookie to identify the sender
589 @param context - sender context, to match reply w/ request
590 @param rx_sw_if_index - Receive interface index
591 @param tx_sw_if_index - Transmit interface index
592 @param enable - enable xconnect if not 0, else set to L3 mode
594 define sw_interface_set_l2_xconnect
603 /** \brief Set L2 XConnect response
604 @param context - sender context, to match reply w/ request
605 @param retval - L2 XConnect request return code
607 define sw_interface_set_l2_xconnect_reply
613 /** \brief Interface bridge mode request
614 @param client_index - opaque cookie to identify the sender
615 @param context - sender context, to match reply w/ request
616 @param rx_sw_if_index - the interface
617 @param bd_id - bridge domain id
618 @param bvi - Setup interface as a bvi, bridge mode only
619 @param shg - Shared horizon group, for bridge mode only
620 @param enable - Enable beige mode if not 0, else set to L3 mode
622 define sw_interface_set_l2_bridge
633 /** \brief Interface bridge mode response
634 @param context - sender context, to match reply w/ request
635 @param retval - Bridge mode request return code
637 define sw_interface_set_l2_bridge_reply
643 /** \brief Set bridge domain ip to mac entry request
644 @param client_index - opaque cookie to identify the sender
645 @param context - sender context, to match reply w/ request
646 @param bd_id - the bridge domain to set the flags for
647 @param is_add - if non-zero, add the entry, else clear it
648 @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
649 @param mac_address - MAC address
652 define bd_ip_mac_add_del
663 /** \brief Set bridge domain ip to mac entry response
664 @param context - sender context, to match reply w/ request
665 @param retval - return code for the set bridge flags request
667 define bd_ip_mac_add_del_reply
673 /** \brief Set/unset the classification table for an interface request
674 @param client_index - opaque cookie to identify the sender
675 @param context - sender context, to match reply w/ request
676 @param is_ipv6 - ipv6 if non-zero, else ipv4
677 @param sw_if_index - interface to associate with the table
678 @param table_index - index of the table, if ~0 unset the table
680 define classify_set_interface_ip_table
686 u32 table_index; /* ~0 => off */
689 /** \brief Set/unset interface classification table response
690 @param context - sender context, to match reply w/ request
691 @param retval - return code
693 define classify_set_interface_ip_table_reply
699 /** \brief Set/unset l2 classification tables for an interface request
700 @param client_index - opaque cookie to identify the sender
701 @param context - sender context, to match reply w/ request
702 @param sw_if_index - interface to set/unset tables for
703 @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
704 @param ip6_table_index - ip6 index
705 @param other_table_index - other index
707 define classify_set_interface_l2_tables
715 u32 other_table_index;
719 /** \brief Set/unset l2 classification tables for an interface response
720 @param context - sender context, to match reply w/ request
721 @param retval - return code for the request
723 define classify_set_interface_l2_tables_reply
729 /** \brief Get node index using name request
730 @param client_index - opaque cookie to identify the sender
731 @param context - sender context, to match reply w/ request
732 @param node_name[] - name of the node
734 define get_node_index
741 /** \brief Get node index using name request
742 @param context - sender context, to match reply w/ request
743 @param retval - return code for the request
744 @param node_index - index of the desired node if found, else ~0
746 define get_node_index_reply
753 /** \brief Set the next node for a given node request
754 @param client_index - opaque cookie to identify the sender
755 @param context - sender context, to match reply w/ request
756 @param node_name[] - node to add the next node to
757 @param next_name[] - node to add as the next node
767 /** \brief IP Set the next node for a given node response
768 @param context - sender context, to match reply w/ request
769 @param retval - return code for the add next node request
770 @param next_index - the index of the next node if success, else ~0
772 define add_node_next_reply
779 /** \brief L2 interface ethernet flow point filtering enable/disable request
780 @param client_index - opaque cookie to identify the sender
781 @param context - sender context, to match reply w/ request
782 @param sw_if_index - interface to enable/disable filtering on
783 @param enable_disable - if non-zero enable filtering, else disable
785 define l2_interface_efp_filter
793 /** \brief L2 interface ethernet flow point filtering response
794 @param context - sender context, to match reply w/ request
795 @param retval - return code for the request
797 define l2_interface_efp_filter_reply
810 /* These fields map directly onto the subif template */
814 u8 dot1ad; // 0 = dot1q, 1=dot1ad
817 u8 outer_vlan_id_any;
818 u8 inner_vlan_id_any;
823 define create_subif_reply
830 /** \brief show version
831 @param client_index - opaque cookie to identify the sender
832 @param context - sender context, to match reply w/ request
840 /** \brief show version response
841 @param context - sender context, to match reply w/ request
842 @param retval - return code for the request
843 @param program - name of the program (vpe)
844 @param version - version of the program
845 @param build_directory - root of the workspace where the program was built
847 define show_version_reply
854 u8 build_directory[256];
857 /* Gross kludge, DGMS */
858 define interface_name_renumber
863 u32 new_show_dev_instance;
866 define interface_name_renumber_reply
872 /** \brief Register for ip4 arp resolution events
873 @param client_index - opaque cookie to identify the sender
874 @param context - sender context, to match reply w/ request
875 @param enable_disable - 1 => register for events, 0 => cancel registration
876 @param pid - sender's pid
877 @param address - the exact ip4 address of interest
879 define want_ip4_arp_events
888 /** \brief Reply for interface events registration
889 @param context - returned sender context, to match reply w/ request
890 @param retval - return code
892 define want_ip4_arp_events_reply
898 /** \brief Tell client about an ip4 arp resolution event
899 @param client_index - opaque cookie to identify the sender
900 @param context - sender context, to match reply w/ request
901 @param address - the exact ip4 address of interest
902 @param pid - client pid registered to receive notification
903 @param sw_if_index - interface which received ARP packet
904 @param new_mac - the new mac address
905 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
918 /** \brief Register for ip6 nd resolution events
919 @param client_index - opaque cookie to identify the sender
920 @param context - sender context, to match reply w/ request
921 @param enable_disable - 1 => register for events, 0 => cancel registration
922 @param pid - sender's pid
923 @param address - the exact ip6 address of interest
925 define want_ip6_nd_events
934 /** \brief Reply for ip6 nd resolution events registration
935 @param context - returned sender context, to match reply w/ request
936 @param retval - return code
938 define want_ip6_nd_events_reply
944 /** \brief Tell client about an ip6 nd resolution or mac/ip event
945 @param client_index - opaque cookie to identify the sender
946 @param context - sender context, to match reply w/ request
947 @param pid - client pid registered to receive notification
948 @param sw_if_index - interface which received ARP packet
949 @param address - the exact ip6 address of interest
950 @param new_mac - the new mac address
951 @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
964 /** \brief Set/unset input ACL interface
965 @param client_index - opaque cookie to identify the sender
966 @param context - sender context, to match reply w/ request
967 @param sw_if_index - interface to set/unset input ACL
968 @param ip4_table_index - ip4 classify table index (~0 for skip)
969 @param ip6_table_index - ip6 classify table index (~0 for skip)
970 @param l2_table_index - l2 classify table index (~0 for skip)
971 @param is_add - Set input ACL if non-zero, else unset
972 Note: User is recommeneded to use just one valid table_index per call.
973 (ip4_table_index, ip6_table_index, or l2_table_index)
975 define input_acl_set_interface
986 /** \brief Set/unset input ACL interface response
987 @param context - sender context, to match reply w/ request
988 @param retval - return code for the request
990 define input_acl_set_interface_reply
996 define get_node_graph
1002 /** \brief get_node_graph_reply
1003 @param context - returned sender context, to match reply w/ request
1004 @param retval - return code
1005 @param reply_in_shmem - result from vlib_node_serialize, in shared
1006 memory. Process with vlib_node_unserialize, remember to switch
1007 heaps and free the result.
1010 define get_node_graph_reply
1017 /** \brief IOAM enable : Enable in-band OAM
1018 @param id - profile id
1019 @param seqno - To enable Seqno Processing
1020 @param analyse - Enabling analysis of iOAM at decap node
1021 @param pow_enable - Proof of Work enabled or not flag
1022 @param trace_enable - iOAM Trace enabled or not flag
1036 /** \brief iOAM Trace profile add / del response
1037 @param context - sender context, to match reply w/ request
1038 @param retval - return value for request
1040 define ioam_enable_reply
1046 /** \brief iOAM disable
1047 @param client_index - opaque cookie to identify the sender
1048 @param context - sender context, to match reply w/ request
1049 @param index - MAP Domain index
1058 /** \brief iOAM disable response
1059 @param context - sender context, to match reply w/ request
1060 @param retval - return value for request
1062 define ioam_disable_reply
1068 /** \brief Query relative index via node names
1069 @param client_index - opaque cookie to identify the sender
1070 @param context - sender context, to match reply w/ request
1071 @param node_name - name of node to find relative index from
1072 @param next_name - next node from node_name to find relative index of
1074 define get_next_index
1082 /** \brief Reply for get next node index
1083 @param context - sender context which was passed in the request
1084 @param retval - return value
1085 @param next_index - index of the next_node
1087 define get_next_index_reply
1094 /** \brief PacketGenerator create interface request
1095 @param client_index - opaque cookie to identify the sender
1096 @param context - sender context, to match reply w/ request
1097 @param interface_id - interface index
1099 define pg_create_interface
1106 /** \brief PacketGenerator create interface response
1107 @param context - sender context, to match reply w/ request
1108 @param retval - return value for request
1110 define pg_create_interface_reply
1117 /** \brief PacketGenerator capture packets on given interface request
1118 @param client_index - opaque cookie to identify the sender
1119 @param context - sender context, to match reply w/ request
1120 @param interface_id - pg interface index
1121 @param is_enabled - 1 if enabling streams, 0 if disabling
1122 @param count - number of packets to be captured
1123 @param pcap_file - pacp file name to store captured packets
1132 u32 pcap_name_length;
1133 u8 pcap_file_name[pcap_name_length];
1136 /** \brief PacketGenerator capture packets response
1137 @param context - sender context, to match reply w/ request
1138 @param retval - return value for request
1140 define pg_capture_reply
1146 /** \brief Enable / disable packet generator request
1147 @param client_index - opaque cookie to identify the sender
1148 @param context - sender context, to match reply w/ request
1149 @param is_enabled - 1 if enabling streams, 0 if disabling
1150 @param stream - stream name to be enable/disabled, if not specified handle all streams
1152 define pg_enable_disable
1157 u32 stream_name_length;
1158 u8 stream_name[stream_name_length];
1161 /** \brief Reply for enable / disable packet generator
1162 @param context - returned sender context, to match reply w/ request
1163 @param retval - return code
1165 define pg_enable_disable_reply
1171 /** \brief Configure IP source and L4 port-range check
1172 @param client_index - opaque cookie to identify the sender
1173 @param context - sender context, to match reply w/ request
1174 @param is_ip6 - 1 if source address type is IPv6
1175 @param is_add - 1 if add, 0 if delete
1176 @param mask_length - mask length for address entry
1177 @param address - array of address bytes
1178 @param number_of_ranges - length of low_port and high_port arrays (must match)
1179 @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
1180 @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
1181 @param vrf_id - fib table/vrf id to associate the source and port-range check with
1182 @note To specify a single port set low_port and high_port entry the same
1184 define ip_source_and_port_range_check_add_del
1192 u8 number_of_ranges;
1198 /** \brief Configure IP source and L4 port-range check reply
1199 @param context - returned sender context, to match reply w/ request
1200 @param retval - return code
1202 define ip_source_and_port_range_check_add_del_reply
1208 /** \brief Set interface source and L4 port-range request
1209 @param client_index - opaque cookie to identify the sender
1210 @param context - sender context, to match reply w/ request
1211 @param interface_id - interface index
1212 @param tcp_vrf_id - VRF associated with source and TCP port-range check
1213 @param udp_vrf_id - VRF associated with source and TCP port-range check
1215 define ip_source_and_port_range_check_interface_add_del
1227 /** \brief Set interface source and L4 port-range response
1228 @param context - sender context, to match reply w/ request
1229 @param retval - return value for request
1231 define ip_source_and_port_range_check_interface_add_del_reply
1237 /** \brief Delete sub interface request
1238 @param client_index - opaque cookie to identify the sender
1239 @param context - sender context, to match reply w/ request
1240 @param sw_if_index - sw index of the interface that was created by create_subif
1242 define delete_subif {
1248 /** \brief Delete sub interface response
1249 @param context - sender context, to match reply w/ request
1250 @param retval - return code for the request
1252 define delete_subif_reply {
1257 /** \brief Punt traffic to the host
1258 @param client_index - opaque cookie to identify the sender
1259 @param context - sender context, to match reply w/ request
1260 @param is_add - add punt if non-zero, else delete
1261 @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
1262 @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
1263 @param l4_port - TCP/UDP port to be punted
1274 /** \brief Reply to the punt request
1275 @param context - sender context which was passed in the request
1276 @param retval - return code of punt request
1284 /** \brief Feature path enable/disable request
1285 @param client_index - opaque cookie to identify the sender
1286 @param context - sender context, to match reply w/ request
1287 @param sw_if_index - the interface
1288 @param enable - 1 = on, 0 = off
1290 define feature_enable_disable {
1296 u8 feature_name[64];
1299 /** \brief Reply to the eature path enable/disable request
1300 @param context - sender context which was passed in the request
1301 @param retval - return code for the request
1303 define feature_enable_disable_reply
1311 * eval: (c-set-style "gnu")