BIER
[vpp.git] / src / vpp / api / vpe.api
index 2d6e4f3..0807e4b 100644 (file)
@@ -19,6 +19,8 @@
     called through a shared memory interface. 
 */
 
+vl_api_version 1.0.0
+
 /* 
  * Note: API placement cleanup in progress
  * If you're looking for interface APIs, please
@@ -26,6 +28,8 @@
  * IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
  * TAP APIs: see .../src/vnet/unix/{tap.api, tap_api.c}
  * VXLAN APIs: see .../src/vnet/vxlan/{vxlan.api, vxlan_api.c}
+ * GENEVE APIs: see .../src/vnet/geneve/{geneve.api, geneve_api.c}
+ * LLDP APIs: see .../src/vnet/lldp/{lldp.api, lldp_api.c}
  * AF-PACKET APIs: see ... /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
  * NETMAP APIs: see ... /src/vnet/devices/netmap/{netmap.api, netmap_api.c}
  * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c}
  * LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
  * SESSION APIs: .../vnet/session/{session.api session_api.c}
  * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c}
- * SR APIs: see .../src/vnet/sr/{sr.api, sr_api.c}
- * DPDK APIs: see ... /src/vnet/devices/dpdk/{dpdk.api, dpdk_api.c}
+ * SR APIs: see .../src/vnet/srv6/{sr.api, sr_api.c}
  * CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
  * FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
  * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
  * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
  * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
+ * STATS APIs: see .../src/vpp/stats/{stats.api, stats.c}
+ * BIER APIs: see ... /src/vnet/policer/{bier.api, bier_api.c}
  */
 
 /** \brief Create a new subinterface with the given vlan id
@@ -81,7 +86,7 @@ define create_vlan_subif_reply
     @param sw_if_index - index of the interface
     @param enable - if non-zero enable, else disable
 */
-define sw_interface_set_mpls_enable
+autoreply define sw_interface_set_mpls_enable
 {
   u32 client_index;
   u32 context;
@@ -89,16 +94,6 @@ define sw_interface_set_mpls_enable
   u8 enable;
 };
 
-/** \brief Reply for MPLS state on an interface
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define sw_interface_set_mpls_enable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Proxy ARP add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -107,7 +102,7 @@ define sw_interface_set_mpls_enable_reply
     @param low_address[4] - Low address of the Proxy ARP range
     @param hi_address[4] - High address of the Proxy ARP range
 */
-define proxy_arp_add_del
+autoreply define proxy_arp_add_del
 {
   u32 client_index;
   u32 context;
@@ -117,23 +112,13 @@ define proxy_arp_add_del
   u8 hi_address[4];
 };
 
-/** \brief Reply for proxy arp add / del request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define proxy_arp_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Proxy ARP add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - Which interface to enable / disable Proxy Arp on
     @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
 */
-define proxy_arp_intfc_enable_disable
+autoreply define proxy_arp_intfc_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -142,23 +127,13 @@ define proxy_arp_intfc_enable_disable
   u8 enable_disable;
 };
 
-/** \brief Reply for Proxy ARP interface enable / disable request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define proxy_arp_intfc_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Reset VRF (remove all routes etc) request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
     @param vrf_id - ID of th FIB table / VRF to reset
 */
-define reset_vrf
+autoreply define reset_vrf
 {
   u32 client_index;
   u32 context;
@@ -166,156 +141,6 @@ define reset_vrf
   u32 vrf_id;
 };
 
-/** \brief Reply for Reset VRF request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define reset_vrf_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-/** \brief Is Address Reachable request - DISABLED
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param next_hop_sw_if_index - index of interface used to get to next hop
-    @param is_ipv6 - 1 for IPv6, 0 for IPv4
-    @param is_error - address not found or does not match intf
-    @param address[] - Address in question 
-*/
-define is_address_reachable
-{
-  u32 client_index;            /* (api_main_t *) am->my_client_index */
-  u32 context;
-  u32 next_hop_sw_if_index;
-  u8 is_known;                 /* on reply, this is the answer */
-  u8 is_ipv6;
-  u8 is_error;                 /* address not found or does not match intf */
-  u8 address[16];
-};
-
-/** \brief Want Stats, register for stats updates
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param enable_disable - 1 = enable stats, 0 = disable
-    @param pid - pid of process requesting stats updates
-*/
-define want_stats
-{
-  u32 client_index;
-  u32 context;
-  u32 enable_disable;
-  u32 pid;
-};
-
-/** \brief Reply for Want Stats request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_stats_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-typeonly manual_print manual_endian define ip4_fib_counter
-{
-  u32 address;
-  u8 address_length;
-  u64 packets;
-  u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip4_fib_counters
-{
-  u32 vrf_id;
-  u32 count;
-  vl_api_ip4_fib_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip4_nbr_counter
-{
-  u32 address;
-  u8  link_type;
-  u64 packets;
-  u64 bytes;
-};
-
-/**
- * @brief Per-neighbour (i.e. per-adjacency) coutners
- * @param count The size of the array of counters
- * @param sw_if_index The interface the adjacency is on
- * @param begin Flag to indicate this is the first set of stats for this
- *        interface. If this flag is not set the it is a continuation of
- *        stats for this interface
- * @param  c counters
- */
-manual_print manual_endian define vnet_ip4_nbr_counters
-{
-  u32 count;
-  u32 sw_if_index;
-  u8 begin;
-  vl_api_ip4_nbr_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip6_fib_counter
-{
-  u64 address[2];
-  u8 address_length;
-  u64 packets;
-  u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip6_fib_counters
-{
-  u32 vrf_id;
-  u32 count;
-  vl_api_ip6_fib_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip6_nbr_counter
-{
-  u64 address[2];
-  u8  link_type;
-  u64 packets;
-  u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip6_nbr_counters
-{
-  u32 count;
-  u32 sw_if_index;
-  u8 begin;
-  vl_api_ip6_nbr_counter_t c[count];
-};
-
-/** \brief Request for a single block of summary stats
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-*/
-define vnet_get_summary_stats
-{
-  u32 client_index;
-  u32 context;
-};
-
-/** \brief Reply for vnet_get_summary_stats request
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for request
-    @param total_pkts -  
-    @param total_bytes -
-    @param vector_rate - 
-*/
-define vnet_summary_stats_reply
-{
-  u32 context;
-  i32 retval;
-  u64 total_pkts[2];
-  u64 total_bytes[2];
-  f64 vector_rate;
-};
-
 /** \brief OAM event structure
     @param dst_address[] - 
     @param state
@@ -332,7 +157,7 @@ define oam_event
     @param enable_disable- enable if non-zero, else disable
     @param pid - pid of the requesting process
 */
-define want_oam_events
+autoreply define want_oam_events
 {
   u32 client_index;
   u32 context;
@@ -340,16 +165,6 @@ define want_oam_events
   u32 pid;
 };
 
-/** \brief Want OAM events response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the want oam stats request
-*/
-define want_oam_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief OAM add / del target request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -358,7 +173,7 @@ define want_oam_events_reply
     @param dst_address[] - destination address of the target
     @param is_add - add target if non-zero, else delete
 */
-define oam_add_del
+autoreply define oam_add_del
 {
   u32 client_index;
   u32 context;
@@ -368,23 +183,13 @@ define oam_add_del
   u8 is_add;
 };
 
-/** \brief OAM add / del target response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code of the request
-*/
-define oam_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Reset fib table request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param vrf_id - vrf/table id of the fib table to reset
     @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
 */
-define reset_fib
+autoreply define reset_fib
 {
   u32 client_index;
   u32 context;
@@ -392,16 +197,6 @@ define reset_fib
   u8 is_ipv6;
 };
 
-/** \brief Reset fib response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the reset bfib request
-*/
-define reset_fib_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Create loopback interface request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -426,26 +221,44 @@ define create_loopback_reply
   u32 sw_if_index;
 };
 
-/** \brief Delete loopback interface request
+/** \brief Create loopback interface instance request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param sw_if_index - sw index of the interface that was created
+    @param mac_address - mac addr to assign to the interface if none-zero
+    @param is_specified - if non-0, a specific user_instance is being requested
+    @param user_instance - requested instance, ~0 => dynamically allocate
 */
-define delete_loopback
+define create_loopback_instance
 {
   u32 client_index;
   u32 context;
-  u32 sw_if_index;
+  u8 mac_address[6];
+  u8 is_specified;
+  u32 user_instance;
 };
 
-/** \brief Delete loopback interface response
+/** \brief Create loopback interface instance response
     @param context - sender context, to match reply w/ request
+    @param sw_if_index - sw index of the interface that was created
     @param retval - return code for the request
 */
-define delete_loopback_reply
+define create_loopback_instance_reply
 {
   u32 context;
   i32 retval;
+  u32 sw_if_index;
+};
+
+/** \brief Delete loopback interface request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - sw index of the interface that was created
+*/
+autoreply define delete_loopback
+{
+  u32 client_index;
+  u32 context;
+  u32 sw_if_index;
 };
 
 /** \brief Control ping from client to api server request
@@ -477,7 +290,7 @@ define control_ping_reply
     @param context - sender context, to match reply w/ request
     @param cmd_in_shmem - pointer to cli command string
 */
-define cli_request
+define cli
 {
   u32 client_index;
   u32 context;
@@ -516,7 +329,7 @@ define cli_inband_reply
     @param is_ipv6 - neighbor limit if non-zero, else ARP limit
     @param arp_neighbor_limit - the new limit, defaults are ~ 50k
 */
-define set_arp_neighbor_limit
+autoreply define set_arp_neighbor_limit
 {
   u32 client_index;
   u32 context;
@@ -524,16 +337,6 @@ define set_arp_neighbor_limit
   u32 arp_neighbor_limit;
 };
 
-/** \brief Set max allowed ARP or ip6 neighbor entries response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for request
-*/
-define set_arp_neighbor_limit_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 interface patch add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -541,7 +344,7 @@ define set_arp_neighbor_limit_reply
     @param tx_sw_if_index - transmit side interface
     @param is_add - if non-zero set up the interface patch, else remove it
 */
-define l2_patch_add_del
+autoreply define l2_patch_add_del
 {
   u32 client_index;
   u32 context;
@@ -550,23 +353,13 @@ define l2_patch_add_del
   u8 is_add;
 };
 
-/** \brief L2 interface patch add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2_patch_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Interface set vpath request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - interface used to reach neighbor
     @param enable - if non-zero enable, else disable
 */
-define sw_interface_set_vpath
+autoreply define sw_interface_set_vpath
 {
   u32 client_index;
   u32 context;
@@ -574,16 +367,6 @@ define sw_interface_set_vpath
   u8 enable;
 };
 
-/** \brief Interface set vpath response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_set_vpath_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set L2 XConnect between two interfaces request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -591,7 +374,7 @@ define sw_interface_set_vpath_reply
     @param tx_sw_if_index - Transmit interface index
     @param enable - enable xconnect if not 0, else set to L3 mode
 */
-define sw_interface_set_l2_xconnect
+autoreply define sw_interface_set_l2_xconnect
 {
   u32 client_index;
   u32 context;
@@ -600,16 +383,6 @@ define sw_interface_set_l2_xconnect
   u8 enable;
 };
 
-/** \brief Set L2 XConnect response
-    @param context - sender context, to match reply w/ request
-    @param retval - L2 XConnect request return code
-*/
-define sw_interface_set_l2_xconnect_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Interface bridge mode request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -619,7 +392,7 @@ define sw_interface_set_l2_xconnect_reply
     @param shg - Shared horizon group, for bridge mode only
     @param enable - Enable beige mode if not 0, else set to L3 mode
 */
-define sw_interface_set_l2_bridge
+autoreply define sw_interface_set_l2_bridge
 {
   u32 client_index;
   u32 context;
@@ -630,16 +403,6 @@ define sw_interface_set_l2_bridge
   u8 enable;
 };
 
-/** \brief Interface bridge mode response
-    @param context - sender context, to match reply w/ request
-    @param retval - Bridge mode request return code
-*/
-define sw_interface_set_l2_bridge_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set bridge domain ip to mac entry request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -649,7 +412,7 @@ define sw_interface_set_l2_bridge_reply
     @param mac_address - MAC address
     @param 
 */
-define bd_ip_mac_add_del
+autoreply define bd_ip_mac_add_del
 {
   u32 client_index;
   u32 context;
@@ -660,16 +423,6 @@ define bd_ip_mac_add_del
   u8 mac_address[6];
 };
 
-/** \brief Set bridge domain ip to mac entry response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the set bridge flags request
-*/
-define bd_ip_mac_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set/unset the classification table for an interface request 
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -677,7 +430,7 @@ define bd_ip_mac_add_del_reply
     @param sw_if_index - interface to associate with the table
     @param table_index - index of the table, if ~0 unset the table
 */
-define classify_set_interface_ip_table
+autoreply define classify_set_interface_ip_table
 {
   u32 client_index;
   u32 context;
@@ -686,16 +439,6 @@ define classify_set_interface_ip_table
   u32 table_index;             /* ~0 => off */
 };
 
-/** \brief Set/unset interface classification table response 
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define classify_set_interface_ip_table_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set/unset l2 classification tables for an interface request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -704,7 +447,7 @@ define classify_set_interface_ip_table_reply
     @param ip6_table_index - ip6 index
     @param other_table_index - other index
 */
-define classify_set_interface_l2_tables
+autoreply define classify_set_interface_l2_tables
 {
   u32 client_index;
   u32 context;
@@ -716,16 +459,6 @@ define classify_set_interface_l2_tables
   u8 is_input;
 };
 
-/** \brief Set/unset l2 classification tables for an interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define classify_set_interface_l2_tables_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get node index using name request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -782,7 +515,7 @@ define add_node_next_reply
     @param sw_if_index - interface to enable/disable filtering on
     @param enable_disable - if non-zero enable filtering, else disable
 */
-define l2_interface_efp_filter
+autoreply define l2_interface_efp_filter
 {
   u32 client_index;
   u32 context;
@@ -790,16 +523,6 @@ define l2_interface_efp_filter
   u32 enable_disable;
 };
 
-/** \brief L2 interface ethernet flow point filtering response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2_interface_efp_filter_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 define create_subif
 {
   u32 client_index;
@@ -855,7 +578,7 @@ define show_version_reply
 };
 
 /* Gross kludge, DGMS */
-define interface_name_renumber
+autoreply define interface_name_renumber
 {
   u32 client_index;
   u32 context;
@@ -863,12 +586,6 @@ define interface_name_renumber
   u32 new_show_dev_instance;
 };
 
-define interface_name_renumber_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Register for ip4 arp resolution events
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -876,7 +593,7 @@ define interface_name_renumber_reply
     @param pid - sender's pid
     @param address - the exact ip4 address of interest
 */
-define want_ip4_arp_events
+autoreply define want_ip4_arp_events
 {
   u32 client_index;
   u32 context;
@@ -885,19 +602,8 @@ define want_ip4_arp_events
   u32 address;
 };
 
-/** \brief Reply for interface events registration
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_ip4_arp_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Tell client about an ip4 arp resolution event
     @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
     @param address - the exact ip4 address of interest
     @param pid - client pid registered to receive notification
     @param sw_if_index - interface which received ARP packet
@@ -907,7 +613,6 @@ define want_ip4_arp_events_reply
 define ip4_arp_event
 {
   u32 client_index;
-  u32 context;
   u32 address;
   u32 pid;
   u32 sw_if_index;
@@ -922,7 +627,7 @@ define ip4_arp_event
     @param pid - sender's pid
     @param address - the exact ip6 address of interest
 */
-define want_ip6_nd_events
+autoreply define want_ip6_nd_events
 {
   u32 client_index;
   u32 context;
@@ -931,19 +636,8 @@ define want_ip6_nd_events
   u8 address[16];
 };
 
-/** \brief Reply for ip6 nd resolution events registration
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_ip6_nd_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Tell client about an ip6 nd resolution or mac/ip event
     @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
     @param pid - client pid registered to receive notification
     @param sw_if_index - interface which received ARP packet
     @param address - the exact ip6 address of interest
@@ -953,7 +647,6 @@ define want_ip6_nd_events_reply
 define ip6_nd_event
 {
   u32 client_index;
-  u32 context;
   u32 pid;
   u32 sw_if_index;
   u8 address[16];
@@ -972,7 +665,7 @@ define ip6_nd_event
     Note: User is recommeneded to use just one valid table_index per call.
           (ip4_table_index, ip6_table_index, or l2_table_index)
 */
-define input_acl_set_interface
+autoreply define input_acl_set_interface
 {
   u32 client_index;
   u32 context;
@@ -983,16 +676,6 @@ define input_acl_set_interface
   u8 is_add;
 };
 
-/** \brief Set/unset input ACL interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define input_acl_set_interface_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 define get_node_graph
 {
   u32 client_index;
@@ -1021,7 +704,7 @@ define get_node_graph_reply
     @param pow_enable - Proof of Work enabled or not flag
     @param trace_enable - iOAM Trace enabled or not flag
 */
-define ioam_enable
+autoreply define ioam_enable
 {
   u32 client_index;
   u32 context;
@@ -1033,38 +716,18 @@ define ioam_enable
   u32 node_id;
 };
 
-/** \brief iOAM Trace profile add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define ioam_enable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief iOAM disable
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param index - MAP Domain index
 */
-define ioam_disable
+autoreply define ioam_disable
 {
   u32 client_index;
   u32 context;
   u16 id;
 };
 
-/** \brief iOAM disable response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define ioam_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Query relative index via node names
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1122,7 +785,7 @@ define pg_create_interface_reply
     @param count - number of packets to be captured
     @param pcap_file - pacp file name to store captured packets
 */
-define pg_capture
+autoreply define pg_capture
 {
   u32 client_index;
   u32 context;
@@ -1133,23 +796,13 @@ define pg_capture
   u8 pcap_file_name[pcap_name_length];
 };
 
-/** \brief PacketGenerator capture packets response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define pg_capture_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Enable / disable packet generator request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_enabled - 1 if enabling streams, 0 if disabling
     @param stream - stream name to be enable/disabled, if not specified handle all streams
 */
-define pg_enable_disable
+autoreply define pg_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -1158,16 +811,6 @@ define pg_enable_disable
   u8 stream_name[stream_name_length];
 };
 
-/** \brief Reply for enable / disable packet generator
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define pg_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Configure IP source and L4 port-range check
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1181,7 +824,7 @@ define pg_enable_disable_reply
     @param vrf_id - fib table/vrf id to associate the source and port-range check with
     @note To specify a single port set low_port and high_port entry the same
 */
-define ip_source_and_port_range_check_add_del
+autoreply define ip_source_and_port_range_check_add_del
 {
   u32 client_index;
   u32 context;
@@ -1195,16 +838,6 @@ define ip_source_and_port_range_check_add_del
   u32 vrf_id;
 };
 
-/** \brief Configure IP source and L4 port-range check reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ip_source_and_port_range_check_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set interface source and L4 port-range request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1212,7 +845,7 @@ define ip_source_and_port_range_check_add_del_reply
     @param tcp_vrf_id - VRF associated with source and TCP port-range check
     @param udp_vrf_id - VRF associated with source and TCP port-range check
 */
-define ip_source_and_port_range_check_interface_add_del
+autoreply define ip_source_and_port_range_check_interface_add_del
 {
   u32 client_index;
   u32 context;
@@ -1224,36 +857,17 @@ define ip_source_and_port_range_check_interface_add_del
   u32 udp_out_vrf_id;
 };
 
-/** \brief Set interface source and L4 port-range response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define ip_source_and_port_range_check_interface_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete sub interface request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - sw index of the interface that was created by create_subif
 */
-define delete_subif {
+autoreply define delete_subif {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief Delete sub interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define delete_subif_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Punt traffic to the host
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -1262,7 +876,7 @@ define delete_subif_reply {
     @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
     @param l4_port - TCP/UDP port to be punted
 */
-define punt {
+autoreply define punt {
     u32 client_index;
     u32 context;
     u8 is_add;
@@ -1271,14 +885,37 @@ define punt {
     u16 l4_port;
 };
 
-/** \brief Reply to the punt request
-    @param context - sender context which was passed in the request
-    @param retval - return code of punt request
+/** \brief Punt traffic to the host via socket
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param header_version - expected meta data header version (currently 1)
+    @param is_ip4 - L3 protocol 1 - IPv4, 0 - IPv6
+    @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
+    @param l4_port - TCP/UDP port to be punted
 */
-define punt_reply
+define punt_socket_register {
+    u32 client_index;
+    u32 context;
+    u32 header_version;
+    u8 is_ip4;
+    u8 l4_protocol;
+    u16 l4_port;
+    u8 pathname[108]; /* Linux sun_path defined to be 108 bytes, see unix(7) */
+};
+
+define punt_socket_register_reply
 {
+  u32 context;
+  i32 retval;
+  u8 pathname[64];
+};
+
+autoreply define punt_socket_deregister {
+    u32 client_index;
     u32 context;
-    i32 retval;
+    u8 is_ip4;
+    u8 l4_protocol;
+    u16 l4_port;
 };
 
 /** \brief Feature path enable/disable request
@@ -1287,7 +924,7 @@ define punt_reply
     @param sw_if_index - the interface
     @param enable - 1 = on, 0 = off
 */
-define feature_enable_disable {
+autoreply define feature_enable_disable {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -1296,16 +933,6 @@ define feature_enable_disable {
     u8 feature_name[64];
 };
 
-/** \brief Reply to the eature path enable/disable request
-    @param context - sender context which was passed in the request
-    @param retval - return code for the request
-*/
-define feature_enable_disable_reply
-{
-    u32 context;
-    i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")