"autoreply" flag: autogenerate standard xxx_reply_t messages

Change-Id: I72298aaae7d172082ece3a8edea4217c11b28d79
Signed-off-by: Dave Barach <dave@barachs.net>
diff --git a/src/examples/sample-plugin/sample/sample.api b/src/examples/sample-plugin/sample/sample.api
index f99cdb3..d565c0b 100644
--- a/src/examples/sample-plugin/sample/sample.api
+++ b/src/examples/sample-plugin/sample/sample.api
@@ -16,7 +16,7 @@
 
 /* Define a simple binary API to control the feature */
 
-define sample_macswap_enable_disable {
+autoreply define sample_macswap_enable_disable {
     /* Client identifier, set from api_main.my_client_index */
     u32 client_index;
 
@@ -29,11 +29,3 @@
     /* Interface handle */
     u32 sw_if_index;
 };
-
-define sample_macswap_enable_disable_reply {
-    /* From the request */
-    u32 context;
-
-    /* Return value, zero means all OK */
-    i32 retval;
-};
diff --git a/src/plugins/acl/acl.api b/src/plugins/acl/acl.api
index d981338..3b33411 100644
--- a/src/plugins/acl/acl.api
+++ b/src/plugins/acl/acl.api
@@ -161,24 +161,13 @@
     @param acl_index - ACL index to delete
 */
 
-manual_print define acl_del
+autoreply manual_print define acl_del
 {
   u32 client_index;
   u32 context;
   u32 acl_index;
 };
 
-/** \brief Reply to delete the ACL
-    @param context - returned sender context, to match reply w/ request
-    @param retval 0 - no error
-*/
-
-define acl_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /* acl_interface_add_del(_reply) to be deprecated in lieu of acl_interface_set_acl_list */
 /** \brief Use acl_interface_set_acl_list instead
     Append/remove an ACL index to/from the list of ACLs checked for an interface
@@ -190,7 +179,7 @@
     @param acl_index - index of ACL for the operation
 */
 
-manual_print define acl_interface_add_del
+autoreply manual_print define acl_interface_add_del
 {
   u32 client_index;
   u32 context;
@@ -204,17 +193,6 @@
   u32 acl_index;
 };
 
-/** \brief Reply to alter the ACL list
-    @param context - returned sender context, to match reply w/ request
-    @param retval 0 - no error
-*/
-
-define acl_interface_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set the vector of input/output ACLs checked for an interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -224,7 +202,7 @@
     @param acls - vector of ACL indices
 */
 
-manual_print define acl_interface_set_acl_list
+autoreply manual_print define acl_interface_set_acl_list
 {
   u32 client_index;
   u32 context;
@@ -239,12 +217,6 @@
     @param retval 0 - no error
 */
 
-define acl_interface_set_acl_list_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump the specific ACL contents or all of the ACLs' contents
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -341,24 +313,13 @@
     @param acl_index - MACIP ACL index to delete
 */
 
-manual_print define macip_acl_del
+autoreply manual_print define macip_acl_del
 {
   u32 client_index;
   u32 context;
   u32 acl_index;
 };
 
-/** \brief Reply to delete the MACIP ACL
-    @param context - returned sender context, to match reply w/ request
-    @param retval 0 - no error
-*/
-
-define macip_acl_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add or delete a MACIP ACL to/from interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -367,7 +328,7 @@
     @param acl_index - MACIP ACL index
 */
 
-manual_print define macip_acl_interface_add_del
+autoreply manual_print define macip_acl_interface_add_del
 {
   u32 client_index;
   u32 context;
@@ -377,17 +338,6 @@
   u32 acl_index;
 };
 
-/** \brief Reply to apply/unapply  the MACIP ACL
-    @param context - returned sender context, to match reply w/ request
-    @param retval 0 - no error
-*/
-
-define macip_acl_interface_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump one or all defined MACIP ACLs
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/plugins/dpdk/api/dpdk.api b/src/plugins/dpdk/api/dpdk.api
index 21215d4..d43f8a3 100644
--- a/src/plugins/dpdk/api/dpdk.api
+++ b/src/plugins/dpdk/api/dpdk.api
@@ -21,7 +21,7 @@
     @param pipe - pipe ID within its subport
     @param profile - pipe profile ID
 */
-define sw_interface_set_dpdk_hqos_pipe {
+autoreply define sw_interface_set_dpdk_hqos_pipe {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -30,15 +30,6 @@
     u32 profile;
 };
 
-/** \brief DPDK interface HQoS pipe profile set reply
-    @param context - sender context, to match reply w/ request
-    @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_pipe_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief DPDK interface HQoS subport parameters set request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -49,7 +40,7 @@
     @param tc_rate - subport traffic class 0 .. 3 rates (measured in bytes/second)
     @param tc_period - enforcement period for rates (measured in milliseconds)
 */
-define sw_interface_set_dpdk_hqos_subport {
+autoreply define sw_interface_set_dpdk_hqos_subport {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -60,15 +51,6 @@
     u32 tc_period;
 };
 
-/** \brief DPDK interface HQoS subport parameters set reply
-    @param context - sender context, to match reply w/ request
-    @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_subport_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief DPDK interface HQoS tctbl entry set request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -77,7 +59,7 @@
     @param tc - traffic class (0 .. 3)
     @param queue - traffic class queue (0 .. 3)
 */
-define sw_interface_set_dpdk_hqos_tctbl {
+autoreply define sw_interface_set_dpdk_hqos_tctbl {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -86,18 +68,9 @@
     u32 queue;
 };
 
-/** \brief DPDK interface HQoS tctbl entry set reply
-    @param context - sender context, to match reply w/ request
-    @param retval - request return code
-*/
-define sw_interface_set_dpdk_hqos_tctbl_reply {
-    u32 context;
-    i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
  * End:
  */
- 
\ No newline at end of file
+ 
diff --git a/src/plugins/flowperpkt/flowperpkt.api b/src/plugins/flowperpkt/flowperpkt.api
index 1cf62c5..3ff92dc 100644
--- a/src/plugins/flowperpkt/flowperpkt.api
+++ b/src/plugins/flowperpkt/flowperpkt.api
@@ -12,7 +12,7 @@
     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
     @param sw_if_index - index of the interface
 */
-manual_print define flowperpkt_tx_interface_add_del
+autoreply manual_print define flowperpkt_tx_interface_add_del
 {
   /* Client identifier, set from api_main.my_client_index */
   u32 client_index;
@@ -28,20 +28,7 @@
   u32 sw_if_index;
 };
 
-/** \brief Reply to enable/disable per-packet IPFIX recording messages
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define flowperpkt_tx_interface_add_del_reply
-{
-  /* From the request */
-  u32 context;
-
-  /* Return value, zero means all OK */
-  i32 retval;
-};
-
-define flowperpkt_params
+autoreply define flowperpkt_params
 {
   u32 client_index;
   u32 context;
@@ -51,9 +38,3 @@
   u32 active_timer;  /* ~0 is off, 0 is default */
   u32 passive_timer; /* ~0 is off, 0 is default */
 };
-
-define flowperpkt_params_reply
-{
-  u32 context;
-  i32 retval;
-};
diff --git a/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api b/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api
index 7b17c3f..caa97e6 100644
--- a/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api
+++ b/src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api
@@ -16,7 +16,7 @@
 
 /* Define a simple binary API to control the feature */
 
-define vxlan_gpe_ioam_export_enable_disable {
+autoreply define vxlan_gpe_ioam_export_enable_disable {
     /* Client identifier, set from api_main.my_client_index */
     u32 client_index;
 
@@ -32,11 +32,3 @@
 
     /* Src ip address */
 };
-
-define vxlan_gpe_ioam_export_enable_disable_reply {
-    /* From the request */
-    u32 context;
-
-    /* Return value, zero means all OK */
-    i32 retval;
-};
\ No newline at end of file
diff --git a/src/plugins/ioam/export/ioam_export.api b/src/plugins/ioam/export/ioam_export.api
index f22d9fc..bb83056 100644
--- a/src/plugins/ioam/export/ioam_export.api
+++ b/src/plugins/ioam/export/ioam_export.api
@@ -16,7 +16,7 @@
 
 /* Define a simple binary API to control the feature */
 
-define ioam_export_ip6_enable_disable {
+autoreply define ioam_export_ip6_enable_disable {
     /* Client identifier, set from api_main.my_client_index */
     u32 client_index;
 
@@ -32,11 +32,3 @@
 
     /* Src ip address */
 };
-
-define ioam_export_ip6_enable_disable_reply {
-    /* From the request */
-    u32 context;
-
-    /* Return value, zero means all OK */
-    i32 retval;
-};
diff --git a/src/plugins/ioam/ip6/ioam_cache.api b/src/plugins/ioam/ip6/ioam_cache.api
index de50d57..dd9c018 100644
--- a/src/plugins/ioam/ip6/ioam_cache.api
+++ b/src/plugins/ioam/ip6/ioam_cache.api
@@ -16,7 +16,7 @@
 
 /*  API to control ioam caching */
 
-define ioam_cache_ip6_enable_disable {
+autoreply define ioam_cache_ip6_enable_disable {
     /* Client identifier, set from api_main.my_client_index */
     u32 client_index;
 
@@ -27,11 +27,3 @@
     u8 is_disable;
 
 };
-
-define ioam_cache_ip6_enable_disable_reply {
-    /* From the request */
-    u32 context;
-
-    /* Return value, zero means all OK */
-    i32 retval;
-};
diff --git a/src/plugins/ioam/lib-pot/pot.api b/src/plugins/ioam/lib-pot/pot.api
index fa2fc12..c377cde 100644
--- a/src/plugins/ioam/lib-pot/pot.api
+++ b/src/plugins/ioam/lib-pot/pot.api
@@ -27,7 +27,7 @@
     @param list_name_len - length of the name of this profile list
     @param list_name - name of this profile list
 */
-define pot_profile_add {
+autoreply define pot_profile_add {
   u32 client_index;
   u32 context;
   u8 id;
@@ -42,22 +42,12 @@
   u8 list_name[0];
 };
 
-/** \brief Proof of Transit profile add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define pot_profile_add_reply {
-    u32 context;
-    i32 retval;
-};
-
-
 /** \brief Proof of Transit(POT): Activate POT profile in the list
     @param id - id of the profile 
     @param list_name_len - length of the name of this profile list
     @param list_name - name of this profile list
 */
-define pot_profile_activate {
+autoreply define pot_profile_activate {
   u32 client_index;
   u32 context;
   u8 id;
@@ -65,37 +55,19 @@
   u8 list_name[0];
 };
 
-/** \brief Proof of Transit profile activate response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request 
-*/
-define pot_profile_activate_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete POT Profile 
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param list_name_len - length of the name of the profile list
     @param list_name - name of profile list to delete
 */
-define pot_profile_del {
+autoreply define pot_profile_del {
   u32 client_index;
   u32 context;
   u8 list_name_len;
   u8 list_name[0];
 };
 
-/** \brief Proof of Transit profile add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define pot_profile_del_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Show POT Profiles
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/plugins/ioam/lib-trace/trace.api b/src/plugins/ioam/lib-trace/trace.api
index cb95832..2f45c6e 100644
--- a/src/plugins/ioam/lib-trace/trace.api
+++ b/src/plugins/ioam/lib-trace/trace.api
@@ -22,7 +22,7 @@
     @param trace_tsp- Timestamp resolution
     @param app_data - Application specific opaque
 */
-define trace_profile_add {
+autoreply define trace_profile_add {
   u32 client_index;
   u32 context;
   u8 trace_type;
@@ -32,37 +32,15 @@
   u32 app_data;
 };
 
-/** \brief Trace profile add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define trace_profile_add_reply {
-    u32 context;
-    i32 retval;
-};
-
-
-
 /** \brief Delete trace Profile
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
-define trace_profile_del {
+autoreply define trace_profile_del {
   u32 client_index;
   u32 context;
 };
 
-/** \brief Trace profile add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define trace_profile_del_reply {
-    u32 context;
-    i32 retval;
-};
-
-
-
 /** \brief Show trace Profile
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api b/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api
index 056529a..a6761f0 100644
--- a/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api
+++ b/src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api
@@ -24,7 +24,7 @@
     @param trace_enable - iOAM Trace enabled or not flag
 
 */
-define vxlan_gpe_ioam_enable {
+autoreply define vxlan_gpe_ioam_enable {
   u32 client_index;
   u32 context;
   u16 id;
@@ -33,38 +33,18 @@
   u8 trace_enable;
 };
 
-/** \brief iOAM Over VxLAN-GPE - Set iOAM transport for VXLAN-GPE reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define vxlan_gpe_ioam_enable_reply {
-    u32 context;
-    i32 retval;
-};
-
-
 /** \brief iOAM for VxLAN-GPE disable
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param id - profile id
 */
-define vxlan_gpe_ioam_disable
+autoreply define vxlan_gpe_ioam_disable
 {
   u32 client_index;
   u32 context;
   u16 id;
 };
 
-/** \brief vxlan_gpe_ioam disable response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define vxlan_gpe_ioam_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Enable iOAM for a VNI (VXLAN-GPE)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -73,7 +53,7 @@
     @param remote - IPv4/6 Address of the remote VTEP
 
 */
-define vxlan_gpe_ioam_vni_enable {
+autoreply define vxlan_gpe_ioam_vni_enable {
   u32 client_index;
   u32 context;
   u32 vni;
@@ -82,18 +62,6 @@
   u8  is_ipv6;
 };
 
-/** \brief Reply to enable iOAM for a VNI (VXLAN-GPE)
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-
-*/
-define vxlan_gpe_ioam_vni_enable_reply {
-  u32 client_index;
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Disable iOAM for a VNI (VXLAN-GPE)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -102,7 +70,7 @@
     @param remote - IPv4/6 Address of the remote VTEP
 
 */
-define vxlan_gpe_ioam_vni_disable {
+autoreply define vxlan_gpe_ioam_vni_disable {
   u32 client_index;
   u32 context;
   u32 vni;
@@ -111,19 +79,6 @@
   u8  is_ipv6;
 };
 
-/** \brief Reply to disable iOAM for a VNI (VXLAN-GPE)
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-
-*/
-define vxlan_gpe_ioam_vni_disable_reply {
-  u32 client_index;
-  u32 context;
-  i32 retval;
-};
-
-
 /** \brief Enable iOAM for a VXLAN-GPE transit
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -131,7 +86,7 @@
     @param outer_fib_index- FIB index
 
 */
-define vxlan_gpe_ioam_transit_enable {
+autoreply define vxlan_gpe_ioam_transit_enable {
   u32 client_index;
   u32 context;
   u32 outer_fib_index;
@@ -139,18 +94,6 @@
   u8  is_ipv6;
 };
 
-/** \brief Reply to enable iOAM for VXLAN-GPE transit
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-
-*/
-define vxlan_gpe_ioam_transit_enable_reply {
-  u32 client_index;
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Disable iOAM for VXLAN-GPE transit
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -158,7 +101,7 @@
     @param outer_fib_index- FIB index
 
 */
-define vxlan_gpe_ioam_transit_disable {
+autoreply define vxlan_gpe_ioam_transit_disable {
   u32 client_index;
   u32 context;
   u32 outer_fib_index;
@@ -166,16 +109,3 @@
   u8  is_ipv6;
 };
 
-/** \brief Reply to disable iOAM for VXLAN-GPE transit
-    @param client_index - opaque cookie to identify the sender
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-
-*/
-define vxlan_gpe_ioam_transit_disable_reply {
-  u32 client_index;
-  u32 context;
-  i32 retval;
-};
-
-
diff --git a/src/plugins/lb/lb.api b/src/plugins/lb/lb.api
index 39ee3c8..32cc669 100644
--- a/src/plugins/lb/lb.api
+++ b/src/plugins/lb/lb.api
@@ -8,7 +8,7 @@
     @param flow_timeout - Time in seconds after which, if no packet is received
            for a given flow, the flow is removed from the established flow table.
 */
-define lb_conf
+autoreply define lb_conf
 {
   u32 client_index;
   u32 context;
@@ -18,11 +18,6 @@
   u32 flow_timeout;
 };
 
-define lb_conf_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add a virtual address (or prefix)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -33,7 +28,7 @@
            for this VIP (must be power of 2).
     @param is_del - The VIP should be removed.
 */
-define lb_add_del_vip {
+autoreply define lb_add_del_vip {
   u32 client_index;
   u32 context;
   u8 ip_prefix[16];
@@ -43,11 +38,6 @@
   u8 is_del;
 };
 
-define lb_add_del_vip_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add an application server for a given VIP
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -56,7 +46,7 @@
     @param as_address - The application server address (IPv4 in lower order 32 bits).
     @param is_del - The AS should be removed.
 */
-define lb_add_del_as {
+autoreply define lb_add_del_as {
   u32 client_index;
   u32 context;
   u8 vip_ip_prefix[16];
@@ -64,8 +54,3 @@
   u8 as_address[16];
   u8 is_del;
 };
-
-define lb_add_del_as_reply {
-  u32 context;
-  i32 retval;
-};
diff --git a/src/plugins/memif/memif.api b/src/plugins/memif/memif.api
index 6f94642..95e016c 100644
--- a/src/plugins/memif/memif.api
+++ b/src/plugins/memif/memif.api
@@ -57,7 +57,7 @@
     @param context - sender context, to match reply w/ request
     @param sw_if_index - software index of the interface to delete
 */
-define memif_delete
+autoreply define memif_delete
 {
   u32 client_index;
   u32 context;
@@ -65,16 +65,6 @@
   u32 sw_if_index;
 };
 
-/** \brief Delete host-interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define memif_delete_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Memory interface details structure
     @param context - sender context, to match reply w/ request (memif_dump)
     @param sw_if_index - index of the interface
diff --git a/src/plugins/snat/snat.api b/src/plugins/snat/snat.api
index 9689f5f..573b675 100644
--- a/src/plugins/snat/snat.api
+++ b/src/plugins/snat/snat.api
@@ -29,7 +29,7 @@
     @param vrf_id - VRF id of tenant, ~0 means independent of VRF
     @param is_add - 1 if add, 0 if delete
 */
-define snat_add_address_range {
+autoreply define snat_add_address_range {
   u32 client_index;
   u32 context;
   u8 is_ip4;
@@ -39,15 +39,6 @@
   u8 is_add;
 };
 
-/** \brief Add S-NAT address range reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_add_address_range_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump S-NAT addresses
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -77,7 +68,7 @@
     @param is_inside - 1 if inside, 0 if outside
     @param sw_if_index - software index of the interface
 */
-define snat_interface_add_del_feature {
+autoreply define snat_interface_add_del_feature {
   u32 client_index;
   u32 context;
   u8 is_add;
@@ -85,15 +76,6 @@
   u32 sw_if_index;
 };
 
-/** \brief Enable/disable S-NAT feature on the interface reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_interface_add_del_feature_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump interfaces with S-NAT feature
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -130,7 +112,7 @@
                                   used)
     @param vfr_id - VRF ID
 */
-define snat_add_static_mapping {
+autoreply define snat_add_static_mapping {
   u32 client_index;
   u32 context;
   u8 is_add;
@@ -145,15 +127,6 @@
   u32 vrf_id;
 };
 
-/** \brief Add/delete S-NAT static mapping reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_add_static_mapping_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump S-NAT static mappings
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -257,21 +230,12 @@
     @param context - sender context, to match reply w/ request
     @param worker_mask - S-NAT workers mask
 */
-define snat_set_workers {
+autoreply define snat_set_workers {
   u32 client_index;
   u32 context;
   u64 worker_mask;
 };
 
-/** \brief Set S-NAT workers reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_set_workers_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump S-NAT workers
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -300,7 +264,7 @@
     @param is_add - 1 if add, 0 if delete
     @param sw_if_index - software index of the interface
 */
-define snat_add_del_interface_addr {
+autoreply define snat_add_del_interface_addr {
   u32 client_index;
   u32 context;
   u8 is_add;
@@ -308,15 +272,6 @@
   u32 sw_if_index;
 };
 
-/** \brief Add/delete S-NAT pool address from specific interfce reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_add_del_interface_addr_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump S-NAT pool addresses interfaces
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -342,7 +297,7 @@
     @param src_port - source port number
     @param enable - 1 if enable, 0 if disable
 */
-define snat_ipfix_enable_disable {
+autoreply define snat_ipfix_enable_disable {
   u32 client_index;
   u32 context;
   u32 domain_id;
@@ -350,15 +305,6 @@
   u8 enable;
 };
 
-/** \brief Enable/disable S-NAT IPFIX logging reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_ipfix_enable_disable_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump S-NAT users
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -437,7 +383,7 @@
     @param out_addr - outside IP address
     @param out_addr - outside IP address prefix length
 */
-define snat_add_det_map {
+autoreply define snat_add_det_map {
   u32 client_index;
   u32 context;
   u8 is_add;
@@ -449,15 +395,6 @@
   u8 out_plen;
 };
 
-/** \brief Add/delete S-NAT deterministic mapping reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_add_det_map_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get outside address and port range from inside address
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -556,7 +493,7 @@
     @param tcp_transitory - TCP transitory timeout (default 240sec)
     @param icmp - ICMP timeout (default 60sec)
 */
-define snat_det_set_timeouts {
+autoreply define snat_det_set_timeouts {
   u32 client_index;
   u32 context;
   u32 udp;
@@ -565,15 +502,6 @@
   u32 icmp;
 };
 
-/** \brief Set values of timeouts for deterministic NAT reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code
-*/
-define snat_det_set_timeouts_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get values of timeouts for deterministic NAT (seconds)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/tools/vppapigen/gram.y b/src/tools/vppapigen/gram.y
index de26af8..9cea602 100644
--- a/src/tools/vppapigen/gram.y
+++ b/src/tools/vppapigen/gram.y
@@ -38,7 +38,7 @@
 %token NAME RPAR LPAR SEMI LBRACK RBRACK NUMBER PRIMTYPE BARF
 %token TPACKED DEFINE LCURLY RCURLY STRING UNION
 %token HELPER_STRING COMMA 
-%token NOVERSION MANUAL_PRINT MANUAL_ENDIAN TYPEONLY DONT_TRACE
+%token NOVERSION MANUAL_PRINT MANUAL_ENDIAN TYPEONLY DONT_TRACE AUTOREPLY
 
 %%
 
@@ -64,6 +64,7 @@
         | MANUAL_ENDIAN         {$$ = $1;}
         | DONT_TRACE            {$$ = $1;}
         | TYPEONLY              {$$ = $1;}
+        | AUTOREPLY             {$$ = $1;}
           ;
 
 defn:     DEFINE NAME LCURLY defbody RCURLY SEMI 
diff --git a/src/tools/vppapigen/lex.c b/src/tools/vppapigen/lex.c
index 733942a..e635814 100644
--- a/src/tools/vppapigen/lex.c
+++ b/src/tools/vppapigen/lex.c
@@ -27,6 +27,9 @@
 #include "lex.h"
 #include "node.h"
 #include "tools/vppapigen/gram.h"
+#include <vppinfra/clib.h>
+#include <vppinfra/fifo.h>
+#include <vppinfra/format.h>
 
 FILE *ifp, *ofp, *pythonfp, *jsonfp;
 char *vlib_app_name = "vpp";
@@ -38,6 +41,9 @@
 unsigned long input_crc;
 unsigned long message_crc;
 int yydebug;
+char *push_input_fifo;
+char saved_ungetc_char;
+char have_ungetc_char;
 
 /*
  * lexer variable definitions 
@@ -469,9 +475,50 @@
 static inline char
 getc_char (FILE *ifp)
 {
+    char rv;
+
+    if (have_ungetc_char) {
+        have_ungetc_char = 0;
+        return saved_ungetc_char;
+    }
+        
+    if (clib_fifo_elts (push_input_fifo)) {
+        clib_fifo_sub1(push_input_fifo, rv);
+        return (rv & 0x7f);
+    }
     return ((char)(getc(ifp) & 0x7f));
 }
 
+u32 fe (char *fifo)
+{
+    return clib_fifo_elts (fifo);
+}
+
+static inline void
+ungetc_char (char c, FILE *ifp)
+{
+    saved_ungetc_char = c;
+    have_ungetc_char = 1;
+}
+
+void autoreply (void *np_arg)
+{
+    static u8 *s;
+    node_t *np = (node_t *)np_arg;
+    int i;
+
+    vec_reset_length (s);
+
+    s = format (0, " define %s_reply\n", (char *)(np->data[0]));
+    s = format (s, "{\n");
+    s = format (s, "    u32 context;\n");
+    s = format (s, "    i32 retval;\n");
+    s = format (s, "};\n");
+
+    for (i = 0; i < vec_len (s); i++)
+        clib_fifo_add1 (push_input_fifo, s[i]);
+}
+
 /*
  * yylex (well, yylex_1: The real yylex below does crc-hackery)
  */
@@ -595,7 +642,7 @@
             return (EOF);
         
         if (!isalnum (c) && c != '_') {
-            ungetc (c, ifp);
+            ungetc_char (c, ifp);
             namebuf [nameidx] = 0;
             the_lexer_state = START_STATE;
             return (name_check (namebuf, &yylval));
@@ -616,7 +663,7 @@
             return (EOF);
         
         if (!isdigit (c)) {
-            ungetc (c, ifp);
+            ungetc_char (c, ifp);
             namebuf [nameidx] = 0;
             the_lexer_state = START_STATE;
             yylval = (void *) atol(namebuf);
@@ -889,6 +936,7 @@
     case MANUAL_ENDIAN:      code = 276; break;
     case TYPEONLY:           code = 278; break;
     case DONT_TRACE:         code = 279; break;
+    case AUTOREPLY:          code = 280; break;
         
     case EOF: code = ~0; break; /* hysterical compatibility */
 
@@ -929,6 +977,7 @@
 } keytab [] = 
 /* Keep the table sorted, binary search used below! */
 {
+    {"autoreply",       NODE_AUTOREPLY},
     {"define",          NODE_DEFINE},  
     {"dont_trace",      NODE_DONT_TRACE},
     {"f64",             NODE_F64},
@@ -1005,6 +1054,10 @@
                 *token_value = (YYSTYPE) NODE_FLAG_DONT_TRACE;
                 return(DONT_TRACE);
 
+            case NODE_AUTOREPLY:
+                *token_value = (YYSTYPE) NODE_FLAG_AUTOREPLY;
+                return(AUTOREPLY);
+
             case NODE_NOVERSION:
                 return(NOVERSION);
 
diff --git a/src/tools/vppapigen/lex.h b/src/tools/vppapigen/lex.h
index a0fdc73..275cf68 100644
--- a/src/tools/vppapigen/lex.h
+++ b/src/tools/vppapigen/lex.h
@@ -24,6 +24,7 @@
 extern int yylex (void);
 extern void yyerror (char *);
 extern int yyparse (void);
+extern void autoreply (void *);
 
 #ifndef YYSTYPE
 #define YYSTYPE void *
diff --git a/src/tools/vppapigen/node.c b/src/tools/vppapigen/node.c
index 359ac9c..9f23403 100644
--- a/src/tools/vppapigen/node.c
+++ b/src/tools/vppapigen/node.c
@@ -1050,6 +1050,11 @@
     flags = (int)(uword) a1;
 
     np->flags |= flags;
+
+    /* Generate a foo_reply_t right here */
+    if (flags & NODE_FLAG_AUTOREPLY) 
+        autoreply(np);
+
     return (a2);
 }
 /*
diff --git a/src/tools/vppapigen/node.h b/src/tools/vppapigen/node.h
index 297d603..65bd5d1 100644
--- a/src/tools/vppapigen/node.h
+++ b/src/tools/vppapigen/node.h
@@ -53,6 +53,7 @@
     NODE_MANUAL_PRINT,
     NODE_MANUAL_ENDIAN,
     NODE_DONT_TRACE,
+    NODE_AUTOREPLY,
 };
 
 enum passid {
@@ -84,6 +85,7 @@
 #define NODE_FLAG_MANUAL_ENDIAN (1<<1)
 #define NODE_FLAG_TYPEONLY (1<<3)
 #define NODE_FLAG_DONT_TRACE (1<<4)
+#define NODE_FLAG_AUTOREPLY (1<<5)
 
 typedef struct node_vft_ {
     void (*print)(struct node_ *);
diff --git a/src/vlibmemory/memclnt.api b/src/vlibmemory/memclnt.api
index c38b483..32e5140 100644
--- a/src/vlibmemory/memclnt.api
+++ b/src/vlibmemory/memclnt.api
@@ -72,7 +72,7 @@
 /*
  * RPC
  */
-define rpc_call {
+autoreply define rpc_call {
     u32 client_index;
     u32 context;
     u64 function;
@@ -82,11 +82,6 @@
     u8 data[0];
 };
 
-define rpc_reply {
-    i32 retval;
-    u32 context;
-};
-
 /*
  * Lookup message-ID base by name
  */
diff --git a/src/vlibmemory/memory_vlib.c b/src/vlibmemory/memory_vlib.c
index 7a536ee..43574de 100644
--- a/src/vlibmemory/memory_vlib.c
+++ b/src/vlibmemory/memory_vlib.c
@@ -1275,7 +1275,7 @@
 static void
 vl_api_rpc_call_t_handler (vl_api_rpc_call_t * mp)
 {
-  vl_api_rpc_reply_t *rmp;
+  vl_api_rpc_call_reply_t *rmp;
   int (*fp) (void *);
   i32 rv = 0;
   vlib_main_t *vm = vlib_get_main ();
@@ -1305,7 +1305,7 @@
       if (q)
 	{
 	  rmp = vl_msg_api_alloc_as_if_client (sizeof (*rmp));
-	  rmp->_vl_msg_id = ntohs (VL_API_RPC_REPLY);
+	  rmp->_vl_msg_id = ntohs (VL_API_RPC_CALL_REPLY);
 	  rmp->context = mp->context;
 	  rmp->retval = rv;
 	  vl_msg_api_send_shmem (q, (u8 *) & rmp);
@@ -1318,7 +1318,7 @@
 }
 
 static void
-vl_api_rpc_reply_t_handler (vl_api_rpc_reply_t * mp)
+vl_api_rpc_call_reply_t_handler (vl_api_rpc_call_reply_t * mp)
 {
   clib_warning ("unimplemented");
 }
@@ -1415,7 +1415,7 @@
 
 #define foreach_rpc_api_msg                     \
 _(RPC_CALL,rpc_call)                            \
-_(RPC_REPLY,rpc_reply)
+_(RPC_CALL_REPLY,rpc_call_reply)
 
 #define foreach_plugin_trace_msg		\
 _(TRACE_PLUGIN_MSG_IDS,trace_plugin_msg_ids)
diff --git a/src/vnet/bfd/bfd.api b/src/vnet/bfd/bfd.api
index 2cdcfad..7bcaa4c 100644
--- a/src/vnet/bfd/bfd.api
+++ b/src/vnet/bfd/bfd.api
@@ -18,43 +18,23 @@
     @param context - sender context, to match reply w/ request
     @param sw_if_index - interface to use as echo source
 */
-define bfd_udp_set_echo_source
+autoreply define bfd_udp_set_echo_source
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief Set BFD feature response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_set_echo_source_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete BFD echo source
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
-define bfd_udp_del_echo_source
+autoreply define bfd_udp_del_echo_source
 {
   u32 client_index;
   u32 context;
 };
 
-/** \brief Delete BFD echo source response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_del_echo_source_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add UDP BFD session on interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -69,7 +49,7 @@
     @param bfd_key_id - key id sent out in BFD packets (if is_authenticated)
     @param conf_key_id - id of already configured key (if is_authenticated)
 */
-define bfd_udp_add
+autoreply define bfd_udp_add
 {
   u32 client_index;
   u32 context;
@@ -85,16 +65,6 @@
   u32 conf_key_id;
 };
 
-/** \brief Add UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_add_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Modify UDP BFD session on interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -106,7 +76,7 @@
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
     @param detect_mult - detect multiplier (# of packets missed before connection goes down)
 */
-define bfd_udp_mod
+autoreply define bfd_udp_mod
 {
   u32 client_index;
   u32 context;
@@ -119,16 +89,6 @@
   u8 detect_mult;
 };
 
-/** \brief Modify UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_mod_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete UDP BFD session on interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -137,7 +97,7 @@
     @param peer_addr - peer address
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
 */
-define bfd_udp_del
+autoreply define bfd_udp_del
 {
   u32 client_index;
   u32 context;
@@ -147,16 +107,6 @@
   u8 is_ipv6;
 };
 
-/** \brief Delete UDP BFD session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bfd_udp_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get all BFD sessions
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -206,7 +156,7 @@
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
     @param admin_up_down - set the admin state, 1 = up, 0 = down
 */
-define bfd_udp_session_set_flags
+autoreply define bfd_udp_session_set_flags
 {
   u32 client_index;
   u32 context;
@@ -217,23 +167,13 @@
   u8 admin_up_down;
 };
 
-/** \brief Reply to bfd_udp_session_set_flags
-    @param context - sender context which was passed in the request
-    @param retval - return code of the set flags request
-*/
-define bfd_udp_session_set_flags_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Register for BFD events
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param enable_disable - 1 => register for events, 0 => cancel registration
     @param pid - sender's pid
 */
-define want_bfd_events
+autoreply define want_bfd_events
 {
   u32 client_index;
   u32 context;
@@ -241,16 +181,6 @@
   u32 pid;
 };
 
-/** \brief Reply for BFD events registration
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_bfd_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - add/replace key to configuration
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -259,7 +189,7 @@
     @param auth_type - authentication type (RFC 5880/4.1/Auth Type)
     @param key - key data
 */
-define bfd_auth_set_key
+autoreply define bfd_auth_set_key
 {
   u32 client_index;
   u32 context;
@@ -269,16 +199,6 @@
   u8 key[20];
 };
 
-/** \brief BFD UDP - add/replace key reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_auth_set_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - delete key from configuration
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -286,23 +206,13 @@
     @param key_len - length of key (must be non-zero)
     @param key - key data
 */
-define bfd_auth_del_key
+autoreply define bfd_auth_del_key
 {
   u32 client_index;
   u32 context;
   u32 conf_key_id;
 };
 
-/** \brief BFD UDP - delete key reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_auth_del_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get a list of configured authentication keys
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -338,7 +248,7 @@
     @param bfd_key_id - key id sent out in BFD packets
     @param conf_key_id - id of already configured key
 */
-define bfd_udp_auth_activate
+autoreply define bfd_udp_auth_activate
 {
   u32 client_index;
   u32 context;
@@ -351,16 +261,6 @@
   u32 conf_key_id;
 };
 
-/** \brief BFD UDP - activate/change authentication reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_udp_auth_activate_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief BFD UDP - deactivate authentication
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -370,7 +270,7 @@
     @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4
     @param is_delayed - change is applied once peer applies the change (on first received non-authenticated packet)
 */
-define bfd_udp_auth_deactivate
+autoreply define bfd_udp_auth_deactivate
 {
   u32 client_index;
   u32 context;
@@ -381,16 +281,6 @@
   u8 is_delayed;
 };
 
-/** \brief BFD UDP - deactivate authentication reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define bfd_udp_auth_deactivate_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/classify/classify.api b/src/vnet/classify/classify.api
index 51ebd6c..cacb9be 100644
--- a/src/vnet/classify/classify.api
+++ b/src/vnet/classify/classify.api
@@ -92,7 +92,7 @@
            VRF id if action is 1 or 2.
     @param match[] - for add, match value for session, required
 */
-define classify_add_del_session
+autoreply define classify_add_del_session
 {
   u32 client_index;
   u32 context;
@@ -106,16 +106,6 @@
   u8 match[0];
 };
 
-/** \brief Classify add / del session response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the add/del session request
-*/
-define classify_add_del_session_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set/unset policer classify interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -127,7 +117,7 @@
     Note: User is recommeneded to use just one valid table_index per call.
           (ip4_table_index, ip6_table_index, or l2_table_index)
 */
-define policer_classify_set_interface
+autoreply define policer_classify_set_interface
 {
   u32 client_index;
   u32 context;
@@ -138,16 +128,6 @@
   u8 is_add;
 };
 
-/** \brief Set/unset policer classify interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define policer_classify_set_interface_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get list of policer classify interfaces and tables
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -308,7 +288,7 @@
     Note: User is recommeneded to use just one valid table_index per call.
           (ip4_table_index, ip6_table_index, or l2_table_index)
 */
-define flow_classify_set_interface {
+autoreply define flow_classify_set_interface {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -317,15 +297,6 @@
     u8  is_add;
 };
 
-/** \brief Set/unset flow classify interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define flow_classify_set_interface_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Get list of flow classify interfaces and tables
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -353,4 +324,4 @@
  * eval: (c-set-style "gnu")
  * End:
  */
- 
\ No newline at end of file
+ 
diff --git a/src/vnet/cop/cop.api b/src/vnet/cop/cop.api
index b34dae8..6931600 100644
--- a/src/vnet/cop/cop.api
+++ b/src/vnet/cop/cop.api
@@ -20,7 +20,7 @@
     @param enable_disable - 1 => enable, 0 => disable
 */
 
-define cop_interface_enable_disable
+autoreply define cop_interface_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -28,17 +28,6 @@
   u8 enable_disable;
 };
 
-/** \brief cop: interface enable/disable junk filtration reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define cop_interface_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief cop: enable/disable whitelist filtration features on an interface
     Note: the supplied fib_id must match in order to remove the feature!
     
@@ -51,7 +40,7 @@
     @param default_cop -  1 => enable non-ip4, non-ip6 filtration 0=> disable it
 */
 
-define cop_whitelist_enable_disable
+autoreply define cop_whitelist_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -62,17 +51,6 @@
   u8 default_cop;
 };
 
-/** \brief cop: interface enable/disable junk filtration reply
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define cop_whitelist_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief get_node_graph - get a copy of the vpp node graph
     including the current set of graph arcs.
 
@@ -85,4 +63,4 @@
  * eval: (c-set-style "gnu")
  * End:
  */
- 
\ No newline at end of file
+ 
diff --git a/src/vnet/devices/af_packet/af_packet.api b/src/vnet/devices/af_packet/af_packet.api
index 9fb2a20..8d40ad6 100644
--- a/src/vnet/devices/af_packet/af_packet.api
+++ b/src/vnet/devices/af_packet/af_packet.api
@@ -46,7 +46,7 @@
     @param context - sender context, to match reply w/ request
     @param host_if_name - interface name
 */
-define af_packet_delete
+autoreply define af_packet_delete
 {
   u32 client_index;
   u32 context;
@@ -54,16 +54,6 @@
   u8 host_if_name[64];
 };
 
-/** \brief Delete host-interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define af_packet_delete_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/devices/netmap/netmap.api b/src/vnet/devices/netmap/netmap.api
index 377ccff..8dc698b 100644
--- a/src/vnet/devices/netmap/netmap.api
+++ b/src/vnet/devices/netmap/netmap.api
@@ -22,7 +22,7 @@
     @param is_pipe - is pipe
     @param is_master - 0=slave, 1=master
 */
-define netmap_create
+autoreply define netmap_create
 {
   u32 client_index;
   u32 context;
@@ -34,22 +34,12 @@
   u8 is_master;
 };
 
-/** \brief Create netmap response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define netmap_create_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Delete netmap
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param netmap_if_name - interface name
 */
-define netmap_delete
+autoreply define netmap_delete
 {
   u32 client_index;
   u32 context;
@@ -57,16 +47,6 @@
   u8 netmap_if_name[64];
 };
 
-/** \brief Delete netmap response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define netmap_delete_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/devices/virtio/vhost_user.api b/src/vnet/devices/virtio/vhost_user.api
index 4f604e4..df7ce7a 100644
--- a/src/vnet/devices/virtio/vhost_user.api
+++ b/src/vnet/devices/virtio/vhost_user.api
@@ -53,7 +53,7 @@
     @param sock_filename - unix socket filename, used to speak with frontend
     @param operation_mode - polling=0, interrupt=1, or adaptive=2
 */
-define modify_vhost_user_if
+autoreply define modify_vhost_user_if
 {
   u32 client_index;
   u32 context;
@@ -65,36 +65,16 @@
   u8 operation_mode;
 };
 
-/** \brief vhost-user interface modify response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define modify_vhost_user_if_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief vhost-user interface delete request
     @param client_index - opaque cookie to identify the sender
 */
-define delete_vhost_user_if
+autoreply define delete_vhost_user_if
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief vhost-user interface delete response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define delete_vhost_user_if_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Vhost-user interface details structure (fix this)
     @param sw_if_index - index of the interface
     @param interface_name - name of interface
diff --git a/src/vnet/dhcp/dhcp.api b/src/vnet/dhcp/dhcp.api
index 2db85a7..eb0b070 100644
--- a/src/vnet/dhcp/dhcp.api
+++ b/src/vnet/dhcp/dhcp.api
@@ -24,7 +24,7 @@
     @param dhcp_server[] - server address
     @param dhcp_src_address[] - <fix this, need details>
 */
-define dhcp_proxy_config
+autoreply define dhcp_proxy_config
 {
   u32 client_index;
   u32 context;
@@ -36,16 +36,6 @@
   u8 dhcp_src_address[16];
 };
 
-/** \brief DHCP Proxy config response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define dhcp_proxy_config_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief DHCP Proxy set / unset vss request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -55,7 +45,7 @@
     @param is_ipv6 - ip6 if non-zero, else ip4
     @param is_add - set vss if non-zero, else delete
 */
-define dhcp_proxy_set_vss
+autoreply define dhcp_proxy_set_vss
 {
   u32 client_index;
   u32 context;
@@ -66,16 +56,6 @@
   u8 is_add;
 };
 
-/** \brief DHCP proxy set / unset vss response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define dhcp_proxy_set_vss_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief DHCP Client config add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -86,7 +66,7 @@
            via dhcp_compl_event API message if non-zero
     @param pid - sender's pid
 */
-define dhcp_client_config
+autoreply define dhcp_client_config
 {
   u32 client_index;
   u32 context;
@@ -97,16 +77,6 @@
   u32 pid;
 };
 
-/** \brief DHCP Client config response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define dhcp_client_config_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Tell client about a DHCP completion event
     @param client_index - opaque cookie to identify the sender
     @param pid - client pid registered to receive notification
@@ -162,4 +132,4 @@
  * Local Variables:
  * eval: (c-set-style "gnu")
  * End:
- */
\ No newline at end of file
+ */
diff --git a/src/vnet/flow/flow.api b/src/vnet/flow/flow.api
index 0e0f99b..1c5e8c5 100644
--- a/src/vnet/flow/flow.api
+++ b/src/vnet/flow/flow.api
@@ -24,7 +24,7 @@
     @param template_interval - number of seconds after which to resend template
     @param udp_checksum - UDP checksum calculation enable flag
 */
-define set_ipfix_exporter
+autoreply define set_ipfix_exporter
 {
   u32 client_index;
   u32 context;
@@ -37,15 +37,6 @@
   u8 udp_checksum;
 };
 
-/** \brief Reply to IPFIX exporter configure request
-    @param context - sender context which was passed in the request
-*/
-define set_ipfix_exporter_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPFIX exporter dump request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -84,22 +75,13 @@
     @param domain_id - domain ID reported in IPFIX messages for classify stream
     @param src_port - source port of UDP session for classify stream
 */
-define set_ipfix_classify_stream {
+autoreply define set_ipfix_classify_stream {
     u32 client_index;
     u32 context;
     u32 domain_id;
     u16 src_port;
 };
 
-/** \brief IPFIX classify stream configure response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define set_ipfix_classify_stream_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief IPFIX classify stream dump request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -127,7 +109,7 @@
     @param ip_version - version of IP used in the classifier table
     @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
 */
-define ipfix_classify_table_add_del {
+autoreply define ipfix_classify_table_add_del {
     u32 client_index;
     u32 context;
     u32 table_id;
@@ -136,14 +118,6 @@
     u8 is_add;
 };
 
-/** \brief IPFIX add classifier table response
-    @param context - sender context which was passed in the request
-*/
-define ipfix_classify_table_add_del_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief IPFIX classify tables dump request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/interface.api b/src/vnet/interface.api
index 85fd73f..9df63f1 100644
--- a/src/vnet/interface.api
+++ b/src/vnet/interface.api
@@ -6,7 +6,7 @@
     @param link_up_down - Oper state sent on change event, not used in config.
     @param deleted - interface was deleted
 */
-define sw_interface_set_flags
+autoreply define sw_interface_set_flags
 {
   u32 client_index;
   u32 context;
@@ -17,23 +17,13 @@
   u8 deleted;
 };
 
-/** \brief Reply to sw_interface_set_flags 
-    @param context - sender context which was passed in the request
-    @param retval - return code of the set flags request
-*/
-define sw_interface_set_flags_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set interface MTU
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - index of the interface to set MTU on
     @param mtu - MTU
 */
-define sw_interface_set_mtu
+autoreply define sw_interface_set_mtu
 {
   u32 client_index;
   u32 context;
@@ -41,23 +31,13 @@
   u16 mtu;
 };
 
-/** \brief Reply to sw_interface_set_mtu
-    @param context - sender context which was passed in the request
-    @param retval - return code of the set flags request
-*/
-define sw_interface_set_mtu_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Register for interface events
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param enable_disable - 1 => register for events, 0 => cancel registration
     @param pid - sender's pid
 */
-define want_interface_events
+autoreply define want_interface_events
 {
   u32 client_index;
   u32 context;
@@ -65,16 +45,6 @@
   u32 pid;
 };
 
-/** \brief Reply for interface events registration
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define want_interface_events_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Interface details structure (fix this) 
     @param sw_if_index - index of the interface
     @param sup_sw_if_index - index of parent interface if any, else same as sw_if_index  
@@ -184,7 +154,7 @@
     @param address_length - address length in bytes, 4 for ip4, 16 for ip6
     @param address - array of address bytes
 */
-define sw_interface_add_del_address
+autoreply define sw_interface_add_del_address
 {
   u32 client_index;
   u32 context;
@@ -196,16 +166,6 @@
   u8 address[16];
 };
 
-/** \brief Reply to sw_interface_add_del_address
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define sw_interface_add_del_address_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Associate the specified interface with a fib table
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -213,7 +173,7 @@
     @param is_ipv6 - if non-zero ipv6, else ipv4
     @param vrf_id - fib table/vrd id to associate the interface with
 */
-define sw_interface_set_table
+autoreply define sw_interface_set_table
 {
   u32 client_index;
   u32 context;
@@ -222,16 +182,6 @@
   u32 vrf_id;
 };
 
-/** \brief Reply to sw_interface_set_table
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define sw_interface_set_table_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get VRF id assigned to interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -280,7 +230,7 @@
     @param unnumbered_sw_if_index - interface which will use the address
     @param is_add - if non-zero set the association, else unset it
 */
-define sw_interface_set_unnumbered
+autoreply define sw_interface_set_unnumbered
 {
   u32 client_index;
   u32 context;
@@ -289,38 +239,18 @@
   u8 is_add;
 };
 
-/** \brief Set unnumbered interface add / del response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_set_unnumbered_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Clear interface statistics
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - index of the interface to clear statistics
 */
-define sw_interface_clear_stats
+autoreply define sw_interface_clear_stats
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief Reply to sw_interface_clear_stats 
-    @param context - sender context which was passed in the request
-    @param retval - return code of the set flags request
-*/
-define sw_interface_clear_stats_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set / clear software interface tag
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -328,7 +258,7 @@
     @param add_del - 1 = add, 0 = delete
     @param tag - an ascii tag
 */
-define sw_interface_tag_add_del 
+autoreply define sw_interface_tag_add_del 
 {
     u32 client_index;
     u32 context;
@@ -337,23 +267,13 @@
     u8 tag[64];
 };
 
-/** \brief Reply to set / clear software interface tag
-    @param context - sender context which was passed in the request
-    @param retval - return code for the request
-*/
-define sw_interface_tag_add_del_reply
-{
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Set an interface's MAC address
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - the interface whose MAC will be set
     @param mac_addr - the new MAC address
 */
-define sw_interface_set_mac_address
+autoreply define sw_interface_set_mac_address
 {
     u32 client_index;
     u32 context;
@@ -361,16 +281,6 @@
     u8 mac_address[6];
 };
 
-/** \brief Reply to setting an interface MAC address request
-    @param context - sender context which was passed in the request
-    @param retval - return code for the request
-*/
-define sw_interface_set_mac_address_reply
-{
-    u32 context;
-    i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api
index 6af1714..7097a13 100644
--- a/src/vnet/ip/ip.api
+++ b/src/vnet/ip/ip.api
@@ -136,7 +136,7 @@
     @param mac_address - l2 address of the neighbor
     @param dst_address - ip4 or ip6 address of the neighbor
 */
-define ip_neighbor_add_del
+autoreply define ip_neighbor_add_del
 {
   u32 client_index;
   u32 context;
@@ -150,16 +150,6 @@
   u8 dst_address[16];
 };
 
-/** \brief Reply for IP Neighbor add / delete request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ip_neighbor_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set the ip flow hash config for a fib request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -172,7 +162,7 @@
     @param proto -if non-zero include proto in flow hash
     @param reverse - if non-zero include reverse in flow hash
 */
-define set_ip_flow_hash
+autoreply define set_ip_flow_hash
 {
   u32 client_index;
   u32 context;
@@ -186,16 +176,6 @@
   u8 reverse;
 };
 
-/** \brief Set the ip flow hash config for a fib response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define set_ip_flow_hash_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 router advertisement config request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -213,7 +193,7 @@
     @param initial_count -
     @param initial_interval -
 */
-define sw_interface_ip6nd_ra_config
+autoreply define sw_interface_ip6nd_ra_config
 {
   u32 client_index;
   u32 context;
@@ -233,16 +213,6 @@
   u32 initial_interval;
 };
 
-/** \brief IPv6 router advertisement config response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_ip6nd_ra_config_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 router advertisement prefix config request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -272,7 +242,7 @@
                      preferred [ADDRCONF].  A value of all one bits
                      (0xffffffff) represents infinity.
 */
-define sw_interface_ip6nd_ra_prefix
+autoreply define sw_interface_ip6nd_ra_prefix
 {
   u32 client_index;
   u32 context;
@@ -289,16 +259,6 @@
   u32 pref_lifetime;
 };
 
-/** \brief IPv6 router advertisement prefix config response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_ip6nd_ra_prefix_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 ND proxy config
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -306,7 +266,7 @@
     @param address - The address of the host for which to proxy for
     @param is_add - Adding or deleting
 */
-define ip6nd_proxy_add_del
+autoreply define ip6nd_proxy_add_del
 {
   u32 client_index;
   u32 context;
@@ -315,16 +275,6 @@
   u8 address[16];
 };
 
-/** \brief IPv6 ND proxy response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define ip6nd_proxy_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 ND proxy details returned after request
     @param context - sender context, to match reply w/ request
     @param retval - return code for the request
@@ -355,7 +305,7 @@
     @param sw_if_index - interface used to reach neighbor
     @param enable - if non-zero enable ip6 on interface, else disable
 */
-define sw_interface_ip6_enable_disable
+autoreply define sw_interface_ip6_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -363,23 +313,13 @@
   u8 enable;			/* set to true if enable */
 };
 
-/** \brief IPv6 interface enable / disable response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_ip6_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 set link local address on interface request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param sw_if_index - interface to set link local on
     @param address[] - the new link local address
 */
-define sw_interface_ip6_set_link_local_address
+autoreply define sw_interface_ip6_set_link_local_address
 {
   u32 client_index;
   u32 context;
@@ -387,16 +327,6 @@
   u8 address[16];
 };
 
-/** \brief IPv6 set link local address on interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - error code for the request
-*/
-define sw_interface_ip6_set_link_local_address_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add / del route request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -422,7 +352,7 @@
     @param next_hop_out_label_stack - the next-hop output label stack, outer most first
     @param next_hop_via_label - The next-hop is a resolved via a local label
 */
-define ip_add_del_route
+autoreply define ip_add_del_route
 {
   u32 client_index;
   u32 context;
@@ -452,16 +382,6 @@
   u32 next_hop_out_label_stack[next_hop_n_out_labels];
 };
 
-/** \brief Reply for add / del route request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ip_add_del_route_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add / del route request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -470,7 +390,7 @@
 
     FIXME
 */
-define ip_mroute_add_del
+autoreply define ip_mroute_add_del
 {
   u32 client_index;
   u32 context;
@@ -488,16 +408,6 @@
   u8 src_address[16];
 };
 
-/** \brief Reply for add / del mroute request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ip_mroute_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump IP multicast fib table
     @param client_index - opaque cookie to identify the sender
 */
diff --git a/src/vnet/ipsec/ipsec.api b/src/vnet/ipsec/ipsec.api
index ef090f8..203c527 100644
--- a/src/vnet/ipsec/ipsec.api
+++ b/src/vnet/ipsec/ipsec.api
@@ -20,7 +20,7 @@
     @param spd_id - SPD instance id (control plane allocated)
 */
 
-define ipsec_spd_add_del
+autoreply define ipsec_spd_add_del
 {
   u32 client_index;
   u32 context;
@@ -28,17 +28,6 @@
   u32 spd_id;
 };
 
-/** \brief Reply for IPsec: Add/delete Security Policy Database entry
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define ipsec_spd_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPsec: Add/delete SPD from interface
 
     @param client_index - opaque cookie to identify the sender
@@ -49,7 +38,7 @@
 */
 
 
-define ipsec_interface_add_del_spd
+autoreply define ipsec_interface_add_del_spd
 {
   u32 client_index;
   u32 context;
@@ -59,17 +48,6 @@
   u32 spd_id;
 };
 
-/** \brief Reply for IPsec: Add/delete SPD from interface
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define ipsec_interface_add_del_spd_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPsec: Add/delete Security Policy Database entry
 
     See RFC 4301, 4.4.1.1 on how to match packet to selectors
@@ -95,7 +73,7 @@
 
 */
 
-define ipsec_spd_add_del_entry
+autoreply define ipsec_spd_add_del_entry
 {
   u32 client_index;
   u32 context;
@@ -125,17 +103,6 @@
   u32 sa_id;
 };
 
-/** \brief Reply for IPsec: Add/delete Security Policy Database entry
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define ipsec_spd_add_del_entry_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPsec: Add/delete Security Association Database entry
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -167,7 +134,7 @@
      IPsec tunnel address copy mode (to support GDOI)
  */
 
-define ipsec_sad_add_del_entry
+autoreply define ipsec_sad_add_del_entry
 {
   u32 client_index;
   u32 context;
@@ -195,17 +162,6 @@
   u8 tunnel_dst_address[16];
 };
 
-/** \brief Reply for IPsec: Add/delete Security Association Database entry
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define ipsec_sad_add_del_entry_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPsec: Update Security Association keys
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -219,7 +175,7 @@
     @param integrity_key - integrity keying material
 */
 
-define ipsec_sa_set_key
+autoreply define ipsec_sa_set_key
 {
   u32 client_index;
   u32 context;
@@ -233,17 +189,6 @@
   u8 integrity_key[128];
 };
 
-/** \brief Reply for IPsec: Update Security Association keys
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define ipsec_sa_set_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Add/delete profile
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -251,7 +196,7 @@
     @param name - IKEv2 profile name
     @param is_add - Add IKEv2 profile if non-zero, else delete
 */
-define ikev2_profile_add_del
+autoreply define ikev2_profile_add_del
 {
   u32 client_index;
   u32 context;
@@ -260,16 +205,6 @@
   u8 is_add;
 };
 
-/** \brief Reply for IKEv2: Add/delete profile
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_profile_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 profile authentication method
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -280,7 +215,7 @@
     @param data_len - Authentication data length
     @param data - Authentication data (for rsa-sig cert file path)
 */
-define ikev2_profile_set_auth
+autoreply define ikev2_profile_set_auth
 {
   u32 client_index;
   u32 context;
@@ -292,16 +227,6 @@
   u8 data[0];
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 profile authentication method
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_profile_set_auth_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 profile local/remote identification
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -312,7 +237,7 @@
     @param data_len - Identification data length
     @param data - Identification data
 */
-define ikev2_profile_set_id
+autoreply define ikev2_profile_set_id
 {
   u32 client_index;
   u32 context;
@@ -324,16 +249,6 @@
   u8 data[0];
 };
 
-/** \brief Reply for IKEv2:
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_profile_set_id_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 profile traffic selector parameters
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -346,7 +261,7 @@
     @param start_addr - The smallest address included in traffic selector
     @param end_addr - The largest address included in traffic selector
 */
-define ikev2_profile_set_ts
+autoreply define ikev2_profile_set_ts
 {
   u32 client_index;
   u32 context;
@@ -360,23 +275,13 @@
   u32 end_addr;
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 profile traffic selector parameters
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_profile_set_ts_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 local RSA private key
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 
     @param key_file - Key file absolute path
 */
-define ikev2_set_local_key
+autoreply define ikev2_set_local_key
 {
   u32 client_index;
   u32 context;
@@ -384,16 +289,6 @@
   u8 key_file[256];
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 local key
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_set_local_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 responder interface and IP address
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -402,7 +297,7 @@
     @param sw_if_index - interface index
     @param address - interface address
 */
-define ikev2_set_responder
+autoreply define ikev2_set_responder
 {
   u32 client_index;
   u32 context;
@@ -412,17 +307,6 @@
   u8 address[4];
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 responder interface and IP address
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_set_responder_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-
 /** \brief IKEv2: Set IKEv2 IKE transforms in SA_INIT proposal (RFC 7296)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -434,7 +318,7 @@
     @param dh_group - Diffie-Hellman group
     
 */
-define ikev2_set_ike_transforms
+autoreply define ikev2_set_ike_transforms
 {
   u32 client_index;
   u32 context;
@@ -446,16 +330,6 @@
   u32 dh_group;
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 IKE transforms
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_set_ike_transforms_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set IKEv2 ESP transforms in SA_INIT proposal (RFC 7296)
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -467,7 +341,7 @@
     @param dh_group - Diffie-Hellman group
     
 */
-define ikev2_set_esp_transforms
+autoreply define ikev2_set_esp_transforms
 {
   u32 client_index;
   u32 context;
@@ -479,16 +353,6 @@
   u32 dh_group;
 };
 
-/** \brief Reply for IKEv2: Set IKEv2 ESP transforms
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_set_esp_transforms_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Set Child SA lifetime, limited by time and/or data
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -500,7 +364,7 @@
     @param lifetime_maxdata - SA maximum life time in bytes (0 to disable)
     
 */
-define ikev2_set_sa_lifetime
+autoreply define ikev2_set_sa_lifetime
 {
   u32 client_index;
   u32 context;
@@ -512,16 +376,6 @@
   u64 lifetime_maxdata;
 };
 
-/** \brief Reply for IKEv2: Set Child SA lifetime
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_set_sa_lifetime_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Initiate the SA_INIT exchange
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -529,7 +383,7 @@
     @param name - IKEv2 profile name
     
 */
-define ikev2_initiate_sa_init
+autoreply define ikev2_initiate_sa_init
 {
   u32 client_index;
   u32 context;
@@ -537,16 +391,6 @@
   u8 name[64];
 };
 
-/** \brief Reply for IKEv2: Initiate the SA_INIT exchange
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_initiate_sa_init_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Initiate the delete IKE SA exchange
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -554,7 +398,7 @@
     @param ispi - IKE SA initiator SPI
     
 */
-define ikev2_initiate_del_ike_sa
+autoreply define ikev2_initiate_del_ike_sa
 {
   u32 client_index;
   u32 context;
@@ -562,16 +406,6 @@
   u64 ispi;
 };
 
-/** \brief Reply for IKEv2: Initiate the delete IKE SA exchange
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_initiate_del_ike_sa_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Initiate the delete Child SA exchange
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -579,7 +413,7 @@
     @param ispi - Child SA initiator SPI
     
 */
-define ikev2_initiate_del_child_sa
+autoreply define ikev2_initiate_del_child_sa
 {
   u32 client_index;
   u32 context;
@@ -587,16 +421,6 @@
   u32 ispi;
 };
 
-/** \brief Reply for IKEv2: Initiate the delete Child SA exchange
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_initiate_del_child_sa_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IKEv2: Initiate the rekey Child SA exchange
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -604,7 +428,7 @@
     @param ispi - Child SA initiator SPI
     
 */
-define ikev2_initiate_rekey_child_sa
+autoreply define ikev2_initiate_rekey_child_sa
 {
   u32 client_index;
   u32 context;
@@ -612,16 +436,6 @@
   u32 ispi;
 };
 
-/** \brief Reply for IKEv2: Initiate the rekey Child SA exchange
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define ikev2_initiate_rekey_child_sa_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump ipsec policy database data
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -682,4 +496,4 @@
  * eval: (c-set-style "gnu")
  * End:
  */
- 
\ No newline at end of file
+ 
diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api
index c23eebe..db42d63 100644
--- a/src/vnet/l2/l2.api
+++ b/src/vnet/l2/l2.api
@@ -70,66 +70,36 @@
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
-define l2_fib_clear_table
+autoreply define l2_fib_clear_table
 {
   u32 client_index;
   u32 context;
 };
 
-/** \brief L2 fib clear table response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2_fib_clear_table_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 FIB flush bridge domain entries
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param bd_id - the entry's bridge domain id
 */
-define l2fib_flush_bd
+autoreply define l2fib_flush_bd
 {
   u32 client_index;
   u32 context;
   u32 bd_id;
 };
 
-/** \brief L2 FIB flush bridge domain entries response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2fib_flush_bd_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 FIB flush interface entries
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param bd_id - the entry's bridge domain id
 */
-define l2fib_flush_int
+autoreply define l2fib_flush_int
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief L2 FIB flush interface entries response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2fib_flush_int_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 FIB add entry request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -140,7 +110,7 @@
     @param static_mac - 
     @param filter_mac -
 */
-define l2fib_add_del
+autoreply define l2fib_add_del
 {
   u32 client_index;
   u32 context;
@@ -153,16 +123,6 @@
   u8 bvi_mac;
 };
 
-/** \brief L2 FIB add entry response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the add l2fib entry request
-*/
-define l2fib_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Set L2 flags request !!! TODO - need more info, feature bits in l2_input.h
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -196,7 +156,7 @@
     @param bd_id - the bridge domain to create
     @param mac_age - mac aging time in min, 0 for disabled
 */
-define bridge_domain_set_mac_age
+autoreply define bridge_domain_set_mac_age
 {
   u32 client_index;
   u32 context;
@@ -204,16 +164,6 @@
   u8 mac_age;
 };
 
-/** \brief Set bridge domain response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the set l2 bits request
-*/
-define bridge_domain_set_mac_age_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 bridge domain add or delete request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -226,7 +176,7 @@
     @param mac_age - mac aging time in min, 0 for disabled
     @param is_add - add or delete flag
 */
-define bridge_domain_add_del
+autoreply define bridge_domain_add_del
 {
   u32 client_index;
   u32 context;
@@ -240,16 +190,6 @@
   u8 is_add;
 };
 
-/** \brief L2 bridge domain add or delete response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the set bridge flags request
-*/
-define bridge_domain_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 bridge domain request operational state details
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -337,7 +277,7 @@
     @param tag1 - Needed for any push or translate vtr op
     @param tag2 - Needed for any push 2 or translate x-2 vtr ops
 */
-define l2_interface_vlan_tag_rewrite
+autoreply define l2_interface_vlan_tag_rewrite
 {
   u32 client_index;
   u32 context;
@@ -348,16 +288,6 @@
   u32 tag2;			// second pushed tag
 };
 
-/** \brief L2 interface vlan tag rewrite response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2_interface_vlan_tag_rewrite_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief L2 interface pbb tag rewrite configure request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -370,7 +300,7 @@
     @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op
     @param i_sid - I-tag service id, needed for any push or translate qinq vtr op
 */
-define l2_interface_pbb_tag_rewrite
+autoreply define l2_interface_pbb_tag_rewrite
 {
   u32 client_index;
   u32 context;
@@ -383,16 +313,6 @@
   u32 i_sid;
 };
 
-/** \brief L2 interface pbb tag rewrite response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2_interface_pbb_tag_rewrite_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/l2tp/l2tp.api b/src/vnet/l2tp/l2tp.api
index 5a5a5a4..4587a80 100644
--- a/src/vnet/l2tp/l2tp.api
+++ b/src/vnet/l2tp/l2tp.api
@@ -52,7 +52,7 @@
   u32 sw_if_index;
 };
 
-define l2tpv3_set_tunnel_cookies
+autoreply define l2tpv3_set_tunnel_cookies
 {
   u32 client_index;
   u32 context;
@@ -61,16 +61,6 @@
   u64 new_remote_cookie;
 };
 
-/** \brief L2TP tunnel set cookies response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define l2tpv3_set_tunnel_cookies_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 define sw_if_l2tpv3_tunnel_details
 {
   u32 context;
@@ -91,7 +81,7 @@
   u32 context;
 };
 
-define l2tpv3_interface_enable_disable
+autoreply define l2tpv3_interface_enable_disable
 {
   u32 client_index;
   u32 context;
@@ -99,13 +89,7 @@
   u32 sw_if_index;
 };
 
-define l2tpv3_interface_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-define l2tpv3_set_lookup_key
+autoreply define l2tpv3_set_lookup_key
 {
   u32 client_index;
   u32 context;
@@ -113,12 +97,6 @@
   u8 key;
 };
 
-define l2tpv3_set_lookup_key_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
diff --git a/src/vnet/lisp-cp/lisp.api b/src/vnet/lisp-cp/lisp.api
index a50a5cc..8bed71b 100644
--- a/src/vnet/lisp-cp/lisp.api
+++ b/src/vnet/lisp-cp/lisp.api
@@ -59,7 +59,7 @@
     @param priority - priority of the lisp locator
     @param weight - weight of the lisp locator
 */
-define lisp_add_del_locator
+autoreply define lisp_add_del_locator
 {
   u32 client_index;
   u32 context;
@@ -70,16 +70,6 @@
   u8 weight;
 };
 
-/** \brief Reply for locator add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_locator_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete lisp eid-table
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -98,7 +88,7 @@
       HMAC_SHA_256_128      2
     @param key - secret key
 */
-define lisp_add_del_local_eid
+autoreply define lisp_add_del_local_eid
 {
   u32 client_index;
   u32 context;
@@ -112,16 +102,6 @@
   u8 key[64];
 };
 
-/** \brief Reply for local_eid add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_local_eid_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add/delete map server
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -129,7 +109,7 @@
     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
     @param ip_address - map server IP address
 */
-define lisp_add_del_map_server
+autoreply define lisp_add_del_map_server
 {
   u32 client_index;
   u32 context;
@@ -138,16 +118,6 @@
   u8 ip_address[16];
 };
 
-/** \brief Reply for lisp_add_del_map_server
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_map_server_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete map-resolver
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -155,7 +125,7 @@
     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
     @param ip_address - array of address bytes
 */
-define lisp_add_del_map_resolver
+autoreply define lisp_add_del_map_resolver
 {
   u32 client_index;
   u32 context;
@@ -164,45 +134,25 @@
   u8 ip_address[16];
 };
 
-/** \brief Reply for map_resolver add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_map_resolver_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief enable or disable LISP feature
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_en - enable protocol if non-zero, else disable
 */
-define lisp_enable_disable
+autoreply define lisp_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_en;
 };
 
-/** \brief Reply for gpe enable/disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief configure or disable LISP PITR node
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param ls_name - locator set name
     @param is_add - add locator set if non-zero, else disable pitr
 */
-define lisp_pitr_set_locator_set
+autoreply define lisp_pitr_set_locator_set
 {
   u32 client_index;
   u32 context;
@@ -210,16 +160,6 @@
   u8 ls_name[64];
 };
 
-/** \brief Reply for lisp_pitr_set_locator_set
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_pitr_set_locator_set_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief configure or disable use of PETR
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -227,7 +167,7 @@
     @param address - PETR IP address
     @param is_add - add locator set if non-zero, else disable pitr
 */
-define lisp_use_petr
+autoreply define lisp_use_petr
 {
   u32 client_index;
   u32 context;
@@ -236,16 +176,6 @@
   u8 is_add;
 };
 
-/** \brief Reply for lisp_pitr_set_locator_set
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_use_petr_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for LISP PETR status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -298,45 +228,25 @@
     @param context - sender context, to match reply w/ request
     @param is_enable - enable if non-zero; disable otherwise
 */
-define lisp_rloc_probe_enable_disable
+autoreply define lisp_rloc_probe_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_enabled;
 };
 
-/** \brief Reply for lisp_rloc_probe_enable_disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_rloc_probe_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief enable/disable LISP map-register
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_enable - enable if non-zero; disable otherwise
 */
-define lisp_map_register_enable_disable
+autoreply define lisp_map_register_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_enabled;
 };
 
-/** \brief Reply for lisp_map_register_enable_disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_map_register_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get state of LISP map-register
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -366,23 +276,13 @@
       0 - destination only
       1 - source/destaination
 */
-define lisp_map_request_mode
+autoreply define lisp_map_request_mode
 {
   u32 client_index;
   u32 context;
   u8 mode;
 };
 
-/** \brief Reply for lisp_map_request_mode
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_map_request_mode_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for LISP map-request mode
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -430,7 +330,7 @@
     @param rloc_num - number of remote locators
     @param rlocs - remote locator records
 */
-manual_print manual_endian define lisp_add_del_remote_mapping
+autoreply manual_print manual_endian define lisp_add_del_remote_mapping
 {
   u32 client_index;
   u32 context;
@@ -448,16 +348,6 @@
   vl_api_remote_locator_t rlocs[rloc_num];
 };
 
-/** \brief Reply for lisp_add_del_remote_mapping
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_remote_mapping_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete LISP adjacency adjacency
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -470,7 +360,7 @@
     @param reid - remote EID
     @param leid - local EID
 */
-define lisp_add_del_adjacency
+autoreply define lisp_add_del_adjacency
 {
   u32 client_index;
   u32 context;
@@ -483,23 +373,13 @@
   u8 leid_len;
 };
 
-/** \brief Reply for lisp_add_del_adjacency
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_add_del_adjacency_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete map request itr rlocs
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add address if non-zero, else delete
     @param locator_set_name - locator set name
 */
-define lisp_add_del_map_request_itr_rlocs
+autoreply define lisp_add_del_map_request_itr_rlocs
 {
   u32 client_index;
   u32 context;
@@ -512,12 +392,6 @@
     @param retval - return code
 */
 
-define lisp_add_del_map_request_itr_rlocs_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief map/unmap vni/bd_index to vrf
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -525,7 +399,7 @@
     @param dp_table - virtual network id/bridge domain index
     @param vrf - vrf
 */
-define lisp_eid_table_add_del_map
+autoreply define lisp_eid_table_add_del_map
 {
   u32 client_index;
   u32 context;
@@ -535,16 +409,6 @@
   u8 is_l2;
 };
 
-/** \brief Reply for lisp_eid_table_add_del_map
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define lisp_eid_table_add_del_map_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for map lisp locator status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/lisp-cp/one.api b/src/vnet/lisp-cp/one.api
index ca82f69..2fa1edf 100644
--- a/src/vnet/lisp-cp/one.api
+++ b/src/vnet/lisp-cp/one.api
@@ -59,7 +59,7 @@
     @param priority - priority of the locator
     @param weight - weight of the locator
 */
-define one_add_del_locator
+autoreply define one_add_del_locator
 {
   u32 client_index;
   u32 context;
@@ -70,16 +70,6 @@
   u8 weight;
 };
 
-/** \brief Reply for locator add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_locator_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete ONE eid-table
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -98,7 +88,7 @@
       HMAC_SHA_256_128      2
     @param key - secret key
 */
-define one_add_del_local_eid
+autoreply define one_add_del_local_eid
 {
   u32 client_index;
   u32 context;
@@ -112,16 +102,6 @@
   u8 key[64];
 };
 
-/** \brief Reply for local_eid add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_local_eid_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Add/delete map server
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -129,7 +109,7 @@
     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
     @param ip_address - map server IP address
 */
-define one_add_del_map_server
+autoreply define one_add_del_map_server
 {
   u32 client_index;
   u32 context;
@@ -138,16 +118,6 @@
   u8 ip_address[16];
 };
 
-/** \brief Reply for one_add_del_map_server
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_map_server_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete map-resolver
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -155,7 +125,7 @@
     @param is_ipv6 - if non-zero the address is ipv6, else ipv4
     @param ip_address - array of address bytes
 */
-define one_add_del_map_resolver
+autoreply define one_add_del_map_resolver
 {
   u32 client_index;
   u32 context;
@@ -164,45 +134,25 @@
   u8 ip_address[16];
 };
 
-/** \brief Reply for map_resolver add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_map_resolver_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief enable or disable ONE feature
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_en - enable protocol if non-zero, else disable
 */
-define one_enable_disable
+autoreply define one_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_en;
 };
 
-/** \brief Reply for gpe enable/disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief configure or disable ONE PITR node
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param ls_name - locator set name
     @param is_add - add locator set if non-zero, else disable pitr
 */
-define one_pitr_set_locator_set
+autoreply define one_pitr_set_locator_set
 {
   u32 client_index;
   u32 context;
@@ -210,16 +160,6 @@
   u8 ls_name[64];
 };
 
-/** \brief Reply for one_pitr_set_locator_set
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_pitr_set_locator_set_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief configure or disable use of PETR
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -227,7 +167,7 @@
     @param address - PETR IP address
     @param is_add - add locator set if non-zero, else disable PETR
 */
-define one_use_petr
+autoreply define one_use_petr
 {
   u32 client_index;
   u32 context;
@@ -236,16 +176,6 @@
   u8 is_add;
 };
 
-/** \brief Reply for one_use_petr
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_use_petr_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for ONE PETR status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -298,45 +228,25 @@
     @param context - sender context, to match reply w/ request
     @param is_enable - enable if non-zero; disable otherwise
 */
-define one_rloc_probe_enable_disable
+autoreply define one_rloc_probe_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_enabled;
 };
 
-/** \brief Reply for one_rloc_probe_enable_disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_rloc_probe_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief enable/disable ONE map-register
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_enable - enable if non-zero; disable otherwise
 */
-define one_map_register_enable_disable
+autoreply define one_map_register_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_enabled;
 };
 
-/** \brief Reply for one_map_register_enable_disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_map_register_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Get state of ONE map-register
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -366,23 +276,13 @@
       0 - destination only
       1 - source/destaination
 */
-define one_map_request_mode
+autoreply define one_map_request_mode
 {
   u32 client_index;
   u32 context;
   u8 mode;
 };
 
-/** \brief Reply for one_map_request_mode
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_map_request_mode_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for ONE map-request mode
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -430,7 +330,7 @@
     @param rloc_num - number of remote locators
     @param rlocs - remote locator records
 */
-manual_print manual_endian define one_add_del_remote_mapping
+autoreply manual_print manual_endian define one_add_del_remote_mapping
 {
   u32 client_index;
   u32 context;
@@ -448,16 +348,6 @@
   vl_api_one_remote_locator_t rlocs[rloc_num];
 };
 
-/** \brief Reply for one_add_del_remote_mapping
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_remote_mapping_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete ONE adjacency adjacency
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -470,7 +360,7 @@
     @param reid - remote EID
     @param leid - local EID
 */
-define one_add_del_adjacency
+autoreply define one_add_del_adjacency
 {
   u32 client_index;
   u32 context;
@@ -483,23 +373,13 @@
   u8 leid_len;
 };
 
-/** \brief Reply for one_add_del_adjacency
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_add_del_adjacency_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete map request itr rlocs
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add address if non-zero, else delete
     @param locator_set_name - locator set name
 */
-define one_add_del_map_request_itr_rlocs
+autoreply define one_add_del_map_request_itr_rlocs
 {
   u32 client_index;
   u32 context;
@@ -507,17 +387,6 @@
   u8 locator_set_name[64];
 };
 
-/** \brief Reply for one_add_del_map_request_itr_rlocs
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-
-define one_add_del_map_request_itr_rlocs_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief map/unmap vni/bd_index to vrf
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -525,7 +394,7 @@
     @param dp_table - virtual network id/bridge domain index
     @param vrf - vrf
 */
-define one_eid_table_add_del_map
+autoreply define one_eid_table_add_del_map
 {
   u32 client_index;
   u32 context;
@@ -535,16 +404,6 @@
   u8 is_l2;
 };
 
-/** \brief Reply for one_eid_table_add_del_map
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define one_eid_table_add_del_map_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Request for map one locator status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -901,31 +760,19 @@
   u32 bytes;
 };
 
-define one_stats_flush
+autoreply define one_stats_flush
 {
   u32 client_index;
   u32 context;
 };
 
-define one_stats_flush_reply
-{
-  u32 context;
-  i32 retval;
-};
-
-define one_stats_enable_disable
+autoreply define one_stats_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_en;
 };
 
-define one_stats_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 define show_one_stats_enable_disable
 {
   u32 client_index;
diff --git a/src/vnet/lisp-gpe/lisp_gpe.api b/src/vnet/lisp-gpe/lisp_gpe.api
index 43a6a6c..f79d18c 100644
--- a/src/vnet/lisp-gpe/lisp_gpe.api
+++ b/src/vnet/lisp-gpe/lisp_gpe.api
@@ -43,7 +43,7 @@
     @param loc_num - number of locators
     @param locs - array of remote locators
 */
-manual_print manual_endian define gpe_add_del_fwd_entry
+autoreply manual_print manual_endian define gpe_add_del_fwd_entry
 {
   u32 client_index;
   u32 context;
@@ -60,44 +60,24 @@
   vl_api_gpe_locator_t locs[loc_num];
 };
 
-/** \brief Reply for gpe_fwd_entry add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define gpe_add_del_fwd_entry_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief enable or disable gpe protocol
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_en - enable protocol if non-zero, else disable
 */
-define gpe_enable_disable
+autoreply define gpe_enable_disable
 {
   u32 client_index;
   u32 context;
   u8 is_en;
 };
 
-/** \brief Reply for gpe enable/disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define gpe_enable_disable_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief add or delete gpe_iface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add address if non-zero, else delete
 */
-define gpe_add_del_iface
+autoreply define gpe_add_del_iface
 {
   u32 client_index;
   u32 context;
@@ -107,16 +87,6 @@
   u32 vni;
 };
 
-/** \brief Reply for gpe_iface add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define gpe_add_del_iface_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 define gpe_fwd_entries_get
 {
   u32 client_index;
@@ -163,23 +133,13 @@
     @param context - sender context, to match reply w/ request
     @param mode - LISP (value 0) or VXLAN (value 1)
 */
-define gpe_set_encap_mode
+autoreply define gpe_set_encap_mode
 {
   u32 client_index;
   u32 context;
   u8 mode;
 };
 
-/** \brief Reply for set_encap_mode
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define gpe_set_encap_mode_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief get GPE encapsulation mode
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/map/map.api b/src/vnet/map/map.api
index 4e4be85..d68f13f 100644
--- a/src/vnet/map/map.api
+++ b/src/vnet/map/map.api
@@ -62,22 +62,13 @@
     @param context - sender context, to match reply w/ request
     @param index - MAP Domain index
 */
-define map_del_domain
+autoreply define map_del_domain
 {
   u32 client_index;
   u32 context;
   u32 index;
 };
 
-/** \brief Reply for MAP domain del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define map_del_domain_reply
-{
-  u32 context;
-  i32 retval;
-};
 
 /** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber)
     @param client_index - opaque cookie to identify the sender
@@ -87,7 +78,7 @@
     @param ip6_dst - MAP CE IPv6 address
     @param psid - Rule PSID
 */
-define map_add_del_rule
+autoreply define map_add_del_rule
 {
   u32 client_index;
   u32 context;
@@ -97,15 +88,6 @@
   u16 psid;
 };
 
-/** \brief Reply for MAP rule add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define map_add_del_rule_reply
-{
-  u32 context;
-  i32 retval;
-};
 
 /** \brief Get list of map domains
     @param client_index - opaque cookie to identify the sender
diff --git a/src/vnet/mpls/mpls.api b/src/vnet/mpls/mpls.api
index a1e1270..c8a3ffb 100644
--- a/src/vnet/mpls/mpls.api
+++ b/src/vnet/mpls/mpls.api
@@ -26,7 +26,7 @@
     @param mb_address_length - Length of IP prefix
     @param mb_address[16] - IP prefix/
 */
-define mpls_ip_bind_unbind
+autoreply define mpls_ip_bind_unbind
 {
   u32 client_index;
   u32 context;
@@ -40,16 +40,6 @@
   u8 mb_address[16];
 };
 
-/** \brief Reply for MPLS IP bind/unbind request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define mpls_ip_bind_unbind_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief MPLS tunnel Add / del route
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -172,7 +162,7 @@
     @param mr_next_hop_out_label_stack - the next-hop output label stack, outer most first
     @param next_hop_via_label - The next-hop is a resolved via a local label
 */
-define mpls_route_add_del
+autoreply define mpls_route_add_del
 {
   u32 client_index;
   u32 context;
@@ -199,16 +189,6 @@
   u32 mr_next_hop_out_label_stack[mr_next_hop_n_out_labels];
 };
 
-/** \brief Reply for MPLS route add / del request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define mpls_route_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump MPLS fib table
     @param client_index - opaque cookie to identify the sender
 */
@@ -240,4 +220,4 @@
  * eval: (c-set-style "gnu")
  * End:
  */
- 
\ No newline at end of file
+ 
diff --git a/src/vnet/session/session.api b/src/vnet/session/session.api
index e207e46..4aef09d 100644
--- a/src/vnet/session/session.api
+++ b/src/vnet/session/session.api
@@ -49,26 +49,17 @@
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
- define application_detach {
+autoreply define application_detach {
     u32 client_index;
     u32 context;
  };
  
- /** \brief detach reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define application_detach_reply {
-    u32 context;
-    i32 retval;
-};
- 
 /** \brief vpp->client, please map an additional shared memory segment
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param segment_name - 
 */
-define map_another_segment {
+autoreply define map_another_segment {
     u32 client_index;
     u32 context;
     u32 segment_size;
@@ -83,7 +74,7 @@
                  "tcp://::/0/80" [ipv6] etc.
     @param options - socket options, fifo sizes, etc.
 */
-define bind_uri {
+autoreply define bind_uri {
   u32 client_index;
   u32 context;
   u32 accept_cookie;
@@ -97,7 +88,7 @@
                  "tcp://::/0/80" [ipv6], etc.
     @param options - socket options, fifo sizes, etc.
 */
-define unbind_uri {
+autoreply define unbind_uri {
   u32 client_index;
   u32 context;
   u8 uri[128];
@@ -122,24 +113,6 @@
   u64 options[16];
 };
 
-/** \brief Bind reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define bind_uri_reply {
-    u32 context;
-    i32 retval;
-};
-
-/** \brief unbind reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define unbind_uri_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief vpp->client, connect reply
     @param context - sender context, to match reply w/ request
     @param retval - return code for the request
@@ -165,15 +138,6 @@
   u8 segment_name[128];
 };
 
-/** \brief client->vpp
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define map_another_segment_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief vpp->client, accept this session
     @param context - sender context, to match reply w/ request
     @param listener_handle - tells client which listener this pertains to
@@ -290,7 +254,7 @@
     @param context - sender context, to match reply w/ request
     @param handle - bind handle obtained from bind reply
 */
-define unbind_sock {
+autoreply define unbind_sock {
   u32 client_index;
   u32 context;
   u64 handle;
@@ -339,15 +303,6 @@
   u8 segment_name[128];
 };
 
-/** \brief unbind reply
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define unbind_sock_reply {
-  u32 context;
-  i32 retval;
-};
-
 /** \brief vpp/server->client, connect reply
     @param context - sender context, to match reply w/ request
     @param retval - return code for the request
@@ -378,23 +333,14 @@
     @param context - sender context, to match reply w/ request
     @param is_enable - disable session layer if 0, enable otherwise
 */
-define session_enable_disable {
+autoreply define session_enable_disable {
   u32 client_index;
   u32 context;
   u8 is_enable;
 };
 
-/** \brief Reply for session enable/disable
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define session_enable_disable_reply {
-  u32 context;
-  i32 retval;
-};
-
 /*
  * Local Variables:
  * eval: (c-set-style "gnu")
  * End:
- */
\ No newline at end of file
+ */
diff --git a/src/vnet/span/span.api b/src/vnet/span/span.api
index 4babdd8..914fd8d 100644
--- a/src/vnet/span/span.api
+++ b/src/vnet/span/span.api
@@ -21,7 +21,7 @@
     @param sw_if_index_to - interface where the traffic is mirrored
     @param state - 0 = disabled, 1 = rx enabled, 2 = tx enabled, 3 tx & rx enabled
 */
-define sw_interface_span_enable_disable {
+autoreply define sw_interface_span_enable_disable {
     u32 client_index;
     u32 context;
     u32 sw_if_index_from;
@@ -29,14 +29,6 @@
     u8  state;
 };
 
-/** \brief Reply to SPAN enable/disable request
-    @param context - sender context which was passed in the request
-*/
-define sw_interface_span_enable_disable_reply {
-    u32 context;
-    i32 retval;
-};
-
 /** \brief SPAN dump request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/sr/sr.api b/src/vnet/sr/sr.api
index 5feadcb..9e90074 100644
--- a/src/vnet/sr/sr.api
+++ b/src/vnet/sr/sr.api
@@ -25,7 +25,7 @@
     @param fib_table  FIB table in which we should install the localsid entry
     @param nh_addr Next Hop IPv4/IPv6 address. Only for L2/L3 xconnect.
 */
-define sr_localsid_add_del
+autoreply define sr_localsid_add_del
 {
   u32 client_index;
   u32 context;
@@ -39,16 +39,6 @@
   u8 nh_addr[16];
 };
 
-/** \brief IPv6 SR LocalSID add/del request response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define sr_localsid_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 SR policy add
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -59,7 +49,7 @@
     @param fib_table is the VRF where to install the FIB entry for the BSID
     @param segments is a vector of IPv6 address composing the segment list
 */
-define sr_policy_add
+autoreply define sr_policy_add
 {
   u32 client_index;
   u32 context;
@@ -72,16 +62,6 @@
   u8 segments[0];
 };
 
-/** \brief IPv6 SR Policy add request response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define sr_policy_add_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 SR policy modification
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -94,7 +74,7 @@
     @param weight is the weight of the sid list. optional.
     @param is_encap Mode. Encapsulation or SRH insertion.
 */
-define sr_policy_mod
+autoreply define sr_policy_mod
 {
   u32 client_index;
   u32 context;
@@ -108,23 +88,13 @@
   u8 segments[0];
 };
 
-/** \brief IPv6 SR Policy modification request response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define sr_policy_mod_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 SR policy deletion
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param bsid is the bindingSID of the SR Policy
     @param index is the index of the SR policy
 */
-define sr_policy_del
+autoreply define sr_policy_del
 {
   u32 client_index;
   u32 context;
@@ -132,16 +102,6 @@
   u32 sr_policy_index;
 };
 
-/** \brief IPv6 SR Policy deletion request response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define sr_policy_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief IPv6 SR steering add/del
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -154,7 +114,7 @@
     @param sw_if_index is the incoming interface for L2 traffic
     @param traffic_type describes the type of traffic
 */
-define sr_steering_add_del
+autoreply define sr_steering_add_del
 {
   u32 client_index;
   u32 context;
@@ -168,16 +128,6 @@
   u8 traffic_type;
 };
 
-/** \brief IPv6 SR steering add/del request response
-    @param context - sender context, to match reply w/ request
-    @param retval - return value for request
-*/
-define sr_steering_add_del_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump the list of SR LocalSIDs
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/unix/tap.api b/src/vnet/unix/tap.api
index 1fd0bb0..d9fba37 100644
--- a/src/vnet/unix/tap.api
+++ b/src/vnet/unix/tap.api
@@ -93,23 +93,13 @@
     @param context - sender context, to match reply w/ request
     @param sw_if_index - interface index of existing tap interface
 */
-define tap_delete
+autoreply define tap_delete
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief Reply for tap delete request
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
-*/
-define tap_delete_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Dump tap interfaces request */
 define sw_interface_tap_dump
 {
diff --git a/src/vnet/vxlan/vxlan.api b/src/vnet/vxlan/vxlan.api
index 048220f..6c331a5 100644
--- a/src/vnet/vxlan/vxlan.api
+++ b/src/vnet/vxlan/vxlan.api
@@ -61,7 +61,7 @@
     @param is_ipv6 - if non-zero, enable ipv6-vxlan-bypass, else ipv4-vxlan-bypass
     @param enable - if non-zero enable, else disable
 */
-define sw_interface_set_vxlan_bypass
+autoreply define sw_interface_set_vxlan_bypass
 {
   u32 client_index;
   u32 context;
@@ -69,13 +69,3 @@
   u8 is_ipv6;
   u8 enable;
 };
-
-/** \brief Interface set vxlan-bypass response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define sw_interface_set_vxlan_bypass_reply
-{
-  u32 context;
-  i32 retval;
-};
\ No newline at end of file
diff --git a/src/vpp/api/vpe.api b/src/vpp/api/vpe.api
index a4ba180..7c07c82 100644
--- a/src/vpp/api/vpe.api
+++ b/src/vpp/api/vpe.api
@@ -80,7 +80,7 @@
     @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;
@@ -88,16 +88,6 @@
   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
@@ -106,7 +96,7 @@
     @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;
@@ -116,23 +106,13 @@
   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;
@@ -141,23 +121,13 @@
   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;
@@ -165,16 +135,6 @@
   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
@@ -200,7 +160,7 @@
     @param enable_disable - 1 = enable stats, 0 = disable
     @param pid - pid of process requesting stats updates
 */
-define want_stats
+autoreply define want_stats
 {
   u32 client_index;
   u32 context;
@@ -208,16 +168,6 @@
   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;
@@ -331,7 +281,7 @@
     @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;
@@ -339,16 +289,6 @@
   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
@@ -357,7 +297,7 @@
     @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;
@@ -367,23 +307,13 @@
   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;
@@ -391,16 +321,6 @@
   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
@@ -458,23 +378,13 @@
     @param context - sender context, to match reply w/ request
     @param sw_if_index - sw index of the interface that was created
 */
-define delete_loopback
+autoreply define delete_loopback
 {
   u32 client_index;
   u32 context;
   u32 sw_if_index;
 };
 
-/** \brief Delete loopback interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
-*/
-define delete_loopback_reply
-{
-  u32 context;
-  i32 retval;
-};
-
 /** \brief Control ping from client to api server request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -543,7 +453,7 @@
     @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;
@@ -551,16 +461,6 @@
   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
@@ -568,7 +468,7 @@
     @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;
@@ -577,23 +477,13 @@
   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;
@@ -601,16 +491,6 @@
   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
@@ -618,7 +498,7 @@
     @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;
@@ -627,16 +507,6 @@
   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
@@ -646,7 +516,7 @@
     @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;
@@ -657,16 +527,6 @@
   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
@@ -676,7 +536,7 @@
     @param mac_address - MAC address
     @param 
 */
-define bd_ip_mac_add_del
+autoreply define bd_ip_mac_add_del
 {
   u32 client_index;
   u32 context;
@@ -687,16 +547,6 @@
   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
@@ -704,7 +554,7 @@
     @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;
@@ -713,16 +563,6 @@
   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
@@ -731,7 +571,7 @@
     @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;
@@ -743,16 +583,6 @@
   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
@@ -809,7 +639,7 @@
     @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;
@@ -817,16 +647,6 @@
   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;
@@ -882,7 +702,7 @@
 };
 
 /* Gross kludge, DGMS */
-define interface_name_renumber
+autoreply define interface_name_renumber
 {
   u32 client_index;
   u32 context;
@@ -890,12 +710,6 @@
   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
@@ -903,7 +717,7 @@
     @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;
@@ -912,16 +726,6 @@
   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
@@ -949,7 +753,7 @@
     @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;
@@ -958,16 +762,6 @@
   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
@@ -999,7 +793,7 @@
     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;
@@ -1010,16 +804,6 @@
   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;
@@ -1048,7 +832,7 @@
     @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;
@@ -1060,38 +844,18 @@
   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
@@ -1149,7 +913,7 @@
     @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;
@@ -1160,23 +924,13 @@
   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;
@@ -1185,16 +939,6 @@
   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
@@ -1208,7 +952,7 @@
     @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;
@@ -1222,16 +966,6 @@
   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
@@ -1239,7 +973,7 @@
     @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;
@@ -1251,36 +985,17 @@
   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
@@ -1289,7 +1004,7 @@
     @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;
@@ -1298,23 +1013,13 @@
     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
-*/
-define punt_reply
-{
-    u32 context;
-    i32 retval;
-};
-
 /** \brief Feature path enable/disable request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @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;
@@ -1323,16 +1028,6 @@
     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")