VPP-108 : API calls to read classify table and sessions
[vpp.git] / vpp / api / vpe.api
index 4301f54..a1ea1b2 100644 (file)
@@ -51,6 +51,7 @@ define want_interface_events_reply {
     @param interface_name - name of the interface
     @param link_duplex - 1 if half duplex, 2 if full duplex
     @param link_speed - 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G
+    @param link_MTU - max. transmittion unit 
     @param sub_if_id - A number 0-N to uniquely identify this subif on super if
     @param sub_dot1ad -  0 = dot1q, 1=dot1ad
     @param sub_number_of_tags - Number of tags (0 - 2)
@@ -66,6 +67,7 @@ define want_interface_events_reply {
     @param vtr_tag2
 */
 manual_java define sw_interface_details {
+    u32 context;
     u32 sw_if_index;
 
     /* index of sup interface (e.g. hw interface).
@@ -88,6 +90,9 @@ manual_java define sw_interface_details {
 
     /* 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G */
     u8 link_speed;
+    
+    /* MTU */
+    u16 link_mtu;
 
     /* Subinterface ID. A number 0-N to uniquely identify this subinterface under the super interface*/
     u32 sub_id;
@@ -638,7 +643,7 @@ typeonly manual_print manual_endian define ip4_fib_counter {
 manual_java manual_print manual_endian define vnet_ip4_fib_counters {
     u32 vrf_id;
     u32 count;
-    vl_api_ip4_fib_counter_t c[0];
+    vl_api_ip4_fib_counter_t c[count];
 };
 
 typeonly manual_print manual_endian define ip6_fib_counter {
@@ -651,7 +656,7 @@ typeonly manual_print manual_endian define ip6_fib_counter {
 manual_java manual_print manual_endian define vnet_ip6_fib_counters {
     u32 vrf_id;
     u32 count;
-    vl_api_ip6_fib_counter_t c[0];
+    vl_api_ip6_fib_counter_t c[count];
 };
 
 /** \brief Request for a single block of summary stats
@@ -815,85 +820,6 @@ define dhcp_proxy_set_vss_reply {
     i32 retval;
 };
 
-/* 
- * These messages bounce off the dataplane and are not otherwise
- * interpreted; each has its own publish / subscribe API.
- * If the dataplane receives one of these and doesn't have an 
- * active subscription for it, the message will be silently freed.
- */
-
-define from_netconf_server {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_from_netconf_server {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_from_netconf_server_reply {
-    u32 context;
-    i32 retval;
-};
-
-define to_netconf_server {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_to_netconf_server {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_to_netconf_server_reply {
-    u32 context;
-    i32 retval;
-};
-
-define from_netconf_client {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_from_netconf_client {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_from_netconf_client_reply {
-    u32 context;
-    i32 retval;
-};
-
-define to_netconf_client {
-    u32 client_index;
-    u32 context;
-    u8 data[0];
-};
-
-define want_to_netconf_client {
-    u32 client_index;
-    u32 context;
-    u32 enable_disable;
-    u32 pid;
-};
-
-define want_to_netconf_client_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
@@ -1219,6 +1145,7 @@ define l2_patch_add_del_reply {
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add the tunnel if non-zero, else delete it
+    @param name[] - tunnel name (len. 64)
     @param src_address[] -
     @param dst_address[] -
     @param dst_mask_width -
@@ -1228,11 +1155,13 @@ define l2_patch_add_del_reply {
     @param n_segments -
     @param n_tags -
     @param segs_and_tags[] -
+    @param policy_name[] - name of policy to associate this tunnel to (len. 64)
 */
 define sr_tunnel_add_del {
     u32 client_index;
     u32 context;
     u8 is_add;
+    u8 name[64];
     u8 src_address[16];
     u8 dst_address[16];
     u8 dst_mask_width;
@@ -1242,6 +1171,7 @@ define sr_tunnel_add_del {
     u8 n_segments;
     u8 n_tags;
     u8 segs_and_tags[0];
+    u8 policy_name[64];
 };
 
 /** \brief IPv6 segment routing tunnel add / del response
@@ -1253,6 +1183,54 @@ define sr_tunnel_add_del_reply {
     i32 retval;
 };
 
+/** \brief IPv6 segment routing policy add / del request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add the tunnel if non-zero, else delete it
+    @param name[] - policy name (len. 64)
+    @param tunnel_names[] -
+*/
+define sr_policy_add_del {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u8 name[64];
+    u8 tunnel_names[0];
+};
+
+/** \brief IPv6 segment routing policy add / del response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define sr_policy_add_del_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief IPv6 segment routing multicast map to policy add / del request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add the tunnel if non-zero, else delete it
+    @param multicast_address[] - IP6 multicast address
+    @param policy_name[] = policy name (len.64)
+*/
+define sr_multicast_map_add_del {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u8 multicast_address[16];
+    u8 policy_name[64];
+};
+
+/** \brief IPv6 segment routing multicast map to policy add / del response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define sr_multicast_map_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
@@ -1758,6 +1736,7 @@ define l2tpv3_set_tunnel_cookies_reply {
 };
 
 manual_java define sw_if_l2tpv3_tunnel_details {
+    u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
     u8 client_address [16];
@@ -1842,8 +1821,9 @@ define vxlan_add_del_tunnel {
     u32 client_index;
     u32 context;
     u8 is_add;
-    u32 src_address;
-    u32 dst_address;
+    u8 is_ipv6;
+    u8 src_address[16];
+    u8 dst_address[16];
     u32 encap_vrf_id;
     u32 decap_next_index;
     u32 vni;
@@ -1854,6 +1834,52 @@ define vxlan_add_del_tunnel_reply {
     i32 retval;
     u32 sw_if_index;
 };
+
+manual_java define vxlan_tunnel_dump {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+};
+
+manual_java define vxlan_tunnel_details {
+    u32 context;
+    u32 sw_if_index;
+    u8 src_address[16];
+    u8 dst_address[16];
+    u32 encap_vrf_id;
+    u32 decap_next_index;
+    u32 vni;
+    u8 is_ipv6;
+};
+
+define gre_add_del_tunnel {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u32 src_address;
+    u32 dst_address;
+    u32 outer_table_id;
+};
+
+define gre_add_del_tunnel_reply {
+    u32 context;
+    i32 retval;
+    u32 sw_if_index;
+};
+
+manual_java define gre_tunnel_dump {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+};
+
+manual_java define gre_tunnel_details {
+    u32 context;
+    u32 sw_if_index;
+    u32 src_address;
+    u32 dst_address;
+    u32 outer_table_id;
+};
   
 /** \brief L2 interface vlan tag rewrite configure request
     @param client_index - opaque cookie to identify the sender
@@ -1887,6 +1913,8 @@ define l2_interface_vlan_tag_rewrite_reply {
     @param client_index - opaque cookie to identify the sender
     @param is_server - our side is socket server
     @param sock_filename - unix socket filename, used to speak with frontend
+    @param use_custom_mac - enable or disable the use of the provided hardware address
+    @param mac_address - hardware address to use if 'use_custom_mac' is set
 */
 define create_vhost_user_if {
    u32 client_index;
@@ -1895,6 +1923,8 @@ define create_vhost_user_if {
    u8 sock_filename[256];
    u8 renumber;
    u32 custom_dev_instance;
+   u8 use_custom_mac;
+   u8 mac_address[6];
 };
 
 /** \brief vhost-user interface create response
@@ -1988,47 +2018,18 @@ define show_version {
     @param context - sender context, to match reply w/ request
     @param retval - return code for the request
     @param program - name of the program (vpe)
+    @param version  - version of the program
     @param build_directory - root of the workspace where the program was built
-    @param git_branch - the git branch for the workspace
 */
 manual_java define show_version_reply {
    u32 context;
    i32 retval;
    u8 program[32];
-   u8 git_branch[32];
+   u8 version[32];
    u8 build_date[32];
    u8 build_directory[256];
 };
 
-define nsh_gre_add_del_tunnel {
-    u32 client_index;
-    u32 context;
-    u32 src;
-    u32 dst;
-    u32 encap_vrf_id;
-    u32 decap_vrf_id;
-    u32 decap_next_index;
-    u8 tlv_len_in_words;
-    u8 is_add;
-    u8 ver_o_c;
-    u8 length;
-    u8 md_type;
-    u8 next_protocol;
-    /* in network byte order */
-    u32 spi_si;
-    u32 c1;
-    u32 c2;
-    u32 c3;
-    u32 c4;
-    u32 tlvs[0];
-};
-
-define nsh_gre_add_del_tunnel_reply {
-    u32 context;
-    i32 retval;
-    u32 sw_if_index;
-};
-
 /** \brief Vhost-user interface details structure (fix this)
     @param sw_if_index - index of the interface
     @param interface_name - name of interface
@@ -2039,6 +2040,7 @@ define nsh_gre_add_del_tunnel_reply {
     @param num_regions - number of used memory regions
 */
 manual_java define sw_interface_vhost_user_details {
+    u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
     u32 virtio_net_hdr_sz;
@@ -2062,7 +2064,7 @@ manual_java define ip_address_details {
     u8 prefix_length;
 };
 
-define ip_address_dump {
+manual_java define ip_address_dump {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
@@ -2089,6 +2091,7 @@ define ip_dump {
     @param bvi_mac - the mac address is a bridge virtual interface
 */
 manual_java define l2_fib_table_entry {
+    u32 context;
     u32 bd_id;
     u64 mac;
     u32 sw_if_index;
@@ -2107,496 +2110,1078 @@ manual_java define l2_fib_table_dump {
     u32 bd_id;
 };
 
-define nsh_vxlan_gpe_add_del_tunnel {
+define vxlan_gpe_add_del_tunnel {
     u32 client_index;
     u32 context;
-    u32 src;
-    u32 dst;
+    u8 is_ipv6;
+    u8 local[16];
+    u8 remote[16];
     u32 encap_vrf_id;
     u32 decap_vrf_id;
-    u32 decap_next_index;
+    u8 protocol;
     u32 vni;
-    u8 tlv_len_in_words;
     u8 is_add;
-    u8 ver_o_c;
-    u8 length;
-    u8 md_type;
-    u8 next_protocol;
-    /* in network byte order */
-    u32 spi_si;
-    u32 c1;
-    u32 c2;
-    u32 c3;
-    u32 c4;
-    u32 tlvs[0];
 };
 
-define nsh_vxlan_gpe_add_del_tunnel_reply {
+define vxlan_gpe_add_del_tunnel_reply {
     u32 context;
     i32 retval;
     u32 sw_if_index;
 };
 
-define lisp_gpe_add_del_tunnel {
+manual_java define vxlan_gpe_tunnel_dump {
     u32 client_index;
     u32 context;
-    u32 src;
-    u32 dst;
-    u32 encap_vrf_id;
-    u32 decap_vrf_id;
-    u32 decap_next_index;
-    u8 is_add;
-    u8 flags;
-    u8 ver_res;
-    u8 res;
-    u8 next_protocol;
-    /* in network byte order */
-    u32 iid;
+    u32 sw_if_index;
 };
 
-define lisp_gpe_add_del_tunnel_reply {
+manual_java define vxlan_gpe_tunnel_details {
     u32 context;
-    i32 retval;
     u32 sw_if_index;
+    u8 local[16];
+    u8 remote[16];
+    u32 vni;
+    u8 protocol;
+    u32 encap_vrf_id;
+    u32 decap_vrf_id;
+    u8 is_ipv6;
 };
 
-/* Gross kludge, DGMS */
-define interface_name_renumber {
+/** \brief add or delete locator_set
+    @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 name
+*/
+define lisp_add_del_locator_set {
     u32 client_index;
     u32 context;
-    u32 sw_if_index;
-    u32 new_show_dev_instance;
+    u8  is_add;
+    u8  locator_set_name[64];
 };
 
-define interface_name_renumber_reply {
+/** \brief Reply for locator_set add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define lisp_add_del_locator_set_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief Register for ip4 arp resolution events
+/** \brief add or delete locator for locator_set
     @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
-    @param address - the exact ip4 address of interest
+    @param is_add - add address if non-zero, else delete
+    @param locator_set_name - name of locator_set to add/del locator
+    @param sw_if_index - index of the interface
+    @param priority - priority of the lisp locator
+    @param weight - weight of the lisp locator
 */
-define want_ip4_arp_events {
+define lisp_add_del_locator {
     u32 client_index;
     u32 context;
-    u8 enable_disable;
-    u32 pid;
-    u32 address;
+    u8  is_add;
+    u8  locator_set_name[64];
+    u32 sw_if_index;
+    u8  priority;
+    u8  weight;
 };
 
-/** \brief Reply for interface events registration
+/** \brief Reply for locator add/del
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
-define want_ip4_arp_events_reply {
+define lisp_add_del_locator_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief Tell client about an ip4 arp resolution event
+/** \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
-    @param address - the exact ip4 address of interest
-    @param pid - client pid registered to receive notification
-    @param sw_if_index - interface which received ARP packet
-    @param new_mac - the new mac address 
+    @param is_add - add address if non-zero, else delete
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
+    @param prefix_len - prefix len
+    @param locator_set_name - name of locator_set to add/del eid-table
+    @param vni - vitual network instance
 */
-define ip4_arp_event {
+define lisp_add_del_local_eid {
     u32 client_index;
     u32 context;
-    u32 address;
-    u32 pid;
-    u32 sw_if_index;
-    u8 new_mac[6];
+    u8  is_add;
+    u8  is_ipv6;
+    u8  ip_address[16];
+    u8  prefix_len;
+    u8  locator_set_name[64];
+    u32 vni;
 };
-    
-/** \brief L2 bridge domain add or delete request
+
+/** \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 or delete lisp gpe maptunel
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param bd_id - the bridge domain to create
-    @param flood - enable/disable bcast/mcast flooding in the bd
-    @param uu_flood - enable/disable uknown unicast flood in the bd
-    @param forward - enable/disable forwarding on all interfaces in the bd
-    @param learn - enable/disable learning on all interfaces in the bd
-    @param arp_term - enable/disable arp termination in the bd
-    @param is_add - add or delete flag
+    @param is_add - add address if non-zero, else delete
+    @param eid_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param eid_ip_address - array of address bytes
+    @param eid_prefix_len - prefix len
+    @param address_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param source_ip_address - array of address bytes
+    @param destination_ip_address - array of address bytes
 */
-define bridge_domain_add_del {
+define lisp_gpe_add_del_fwd_entry {
     u32 client_index;
     u32 context;
-    u32 bd_id;
-    u8 flood;
-    u8 uu_flood;
-    u8 forward;
-    u8 learn;
-    u8 arp_term;
-    u8 is_add;
+    u8  is_add;
+    u8  eid_is_ipv6;
+    u8  eid_ip_address[16];
+    u8  eid_prefix_len;
+    u8  address_is_ipv6;
+    u8  source_ip_address[16];
+    u8  destination_ip_address[16];
 };
 
-/** \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
+/** \brief Reply for gpe_fwd_entry add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
 */
-define bridge_domain_add_del_reply {
+define lisp_gpe_add_del_fwd_entry_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
 };
 
-/** \brief L2 bridge domain request operational state details
+/** \brief add or delete map-resolver
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param bd_id - the bridge domain id desired or ~0 to request all bds
+    @param is_add - add address if non-zero, else delete
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
 */
-manual_java define bridge_domain_dump {
+define lisp_add_del_map_resolver {
     u32 client_index;
     u32 context;
-    u32 bd_id;
+    u8  is_add;
+    u8  is_ipv6;
+    u8  ip_address[16];
 };
 
-/** \brief L2 bridge domain operational state response
-    @param bd_id - the bridge domain id
-    @param flood - bcast/mcast flooding state on all interfaces in the bd
-    @param uu_flood - uknown unicast flooding state on all interfaces in the bd
-    @param forward - forwarding state on all interfaces in the bd
-    @param learn - learning state on all interfaces in the bd
-    @param arp_term - arp termination state on all interfaces in the bd
-    @param n_sw_ifs - number of sw_if_index's in the domain
-*/
-manual_java define bridge_domain_details {
-    u32 context;
-    u32 bd_id;
-    u8 flood;
-    u8 uu_flood;
-    u8 forward;
-    u8 learn;
-    u8 arp_term;
-    u32 bvi_sw_if_index;
-    u32 n_sw_ifs;
-};
-
-/** \brief L2 bridge domain sw interface operational state response
-    @param bd_id - the bridge domain id
-    @param sw_if_index - sw_if_index in the domain
-    @param shg - split horizon group for the interface
+/** \brief Reply for map_resolver add/del
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
 */
-manual_java define bridge_domain_sw_if_details {
+define lisp_add_del_map_resolver_reply {
     u32 context;
-    u32 bd_id;
-    u32 sw_if_index;
-    u8 shg;
+    i32 retval;
 };
 
-/** \brief DHCP Client config add / del request
+/** \brief enable or disable lisp-gpe protocol
     @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 for DHCP client
-    @param hostname - hostname
-    @param is_add - add the config if non-zero, else delete
-    @param want_dhcp_event - DHCP event sent to the sender
-           via dhcp_compl_event API message if non-zero
-    @param pid - sender's pid
+    @param is_en - enable protocol if non-zero, else disable
 */
-define dhcp_client_config {
+define lisp_gpe_enable_disable {
     u32 client_index;
     u32 context;
-    u32 sw_if_index;
-    u8 hostname[64];
-    u8 is_add;
-    u8 want_dhcp_event;
-    u32 pid;
+    u8  is_en;
 };
 
-/** \brief DHCP Client config response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
+/** \brief Reply for gpe enable/disable
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
 */
-define dhcp_client_config_reply {
+define lisp_gpe_enable_disable_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief Set/unset input ACL interface
+/** \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 sw_if_index - interface to set/unset input ACL
-    @param ip4_table_index - ip4 classify table index (~0 for skip)
-    @param ip6_table_index - ip6 classify table index (~0 for skip)
-    @param l2_table_index  -  l2 classify table index (~0 for skip)
-    @param is_add - Set input ACL if non-zero, else unset
-    Note: User is recommeneded to use just one valid table_index per call.
-          (ip4_table_index, ip6_table_index, or l2_table_index)
+    @param is_en - enable protocol if non-zero, else disable
 */
-define input_acl_set_interface {
+define lisp_enable_disable {
     u32 client_index;
     u32 context;
-    u32 sw_if_index;
-    u32 ip4_table_index;
-    u32 ip6_table_index;
-    u32 l2_table_index;
-    u8  is_add;
+    u8  is_en;
 };
 
-/** \brief Set/unset input ACL interface response
-    @param context - sender context, to match reply w/ request
-    @param retval - return code for the request
+/** \brief Reply for gpe enable/disable
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
 */
-define input_acl_set_interface_reply {
+define lisp_enable_disable_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief IPsec: Add/delete Security Policy Database
+/** \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 SPD if non-zero, else delete
-    @param spd_id - SPD instance id (control plane allocated)
+    @param is_add - add address if non-zero, else delete
 */
-
-define ipsec_spd_add_del {
+define lisp_gpe_add_del_iface {
     u32 client_index;
     u32 context;
-    u8 is_add;
-    u32 spd_id;
+    u8  is_add;
+    u32 table_id;
+    u32 vni;
 };
 
-/** \brief Reply for IPsec: Add/delete Security Policy Database entry
+/** \brief Reply for gpe_iface add/del
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
-
-define ipsec_spd_add_del_reply {
+define lisp_gpe_add_del_iface_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief IPsec: Add/delete SPD from interface
-
+/** \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 is_add - add security mode if non-zero, else delete
-    @param sw_if_index - index of the interface
-    @param spd_id - SPD instance id to use for lookups
+    @param ls_name - locator set name
+    @param is_add - add locator set if non-zero, else disable pitr
 */
-
-
-define ipsec_interface_add_del_spd {
+define lisp_pitr_set_locator_set {
     u32 client_index;
     u32 context;
-
     u8 is_add;
-    u32 sw_if_index;
-    u32 spd_id;
+    u8 ls_name[64];
 };
 
-/** \brief Reply for IPsec: Add/delete SPD from interface
+/** \brief Reply for lisp_pitr_set_locator_set
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
-
-define ipsec_interface_add_del_spd_reply {
+define lisp_pitr_set_locator_set_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
-
+/** \brief add or delete remote static mapping
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param is_add - add SPD if non-zero, else delete
-    @param spd_id - SPD instance id (control plane allocated)
-    @param priority - priority of SPD entry (non-unique value).  Used to order SPD matching - higher priorities match before lower
-    @param is_outbound - entry applies to outbound traffic if non-zero, otherwise applies to inbound traffic
-    @param is_ipv6 - remote/local address are IPv6 if non-zero, else IPv4
-    @param remote_address_start - start of remote address range to match
-    @param remote_address_stop - end of remote address range to match
-    @param local_address_start - start of local address range to match
-    @param local_address_stop - end of local address range to match
-    @param protocol - protocol type to match [0 means any]
-    @param remote_port_start - start of remote port range to match ...
-    @param remote_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
-    @param local_port_start - start of local port range to match ...
-    @param local_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
-    @param policy - 0 = bypass (no IPsec processing), 1 = discard (discard packet with ICMP processing), 2 = resolve (send request to control plane for SA resolving, and discard without ICMP processing), 3 = protect (apply IPsec policy using following parameters)
-    @param sa_id - SAD instance id (control plane allocated)
-
+    @param is_add - add address if non-zero, else delete
+    @param del_all - if set, delete all remote mappings
+    @param vni - virtual network instance
+    @param action - negative map-reply action
+    @param eid_is_ip4 - ipv4/6 of source and destination EIDs
+    @param deid - destination EID
+    @param seid - source EID
+    @param rloc_num - number of remote locators
+    @param rlocs - remote locator data
 */
-
-define ipsec_spd_add_del_entry {
+define lisp_add_del_remote_mapping {
     u32 client_index;
     u32 context;
-    u8 is_add;
-
-    u32 spd_id;
-    i32 priority;
-    u8 is_outbound;
-
-    // Selector
-    u8 is_ipv6;
-    u8 is_ip_any;
-    u8 remote_address_start[16];
-    u8 remote_address_stop[16];
-    u8 local_address_start[16];
-    u8 local_address_stop[16];
-
-    u8 protocol;
-
-    u16 remote_port_start;
-    u16 remote_port_stop;
-    u16 local_port_start;
-    u16 local_port_stop;
-
-    // Policy
-    u8 policy;
-    u32 sa_id;
+    u8  is_add;
+    u8 del_all;
+    u32 vni;
+    u8 action;
+    u8 eid_is_ip4;
+    u8 deid[16];
+    u8 seid[16];
+    u8 deid_len;
+    u8 seid_len;
+    u32 rloc_num;
+    u8 rlocs[0];
 };
 
-/** \brief Reply for IPsec: Add/delete Security Policy Database entry
+/** \brief Reply for lisp_add_del_remote_mapping
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
 
-define ipsec_spd_add_del_entry_reply {
+define lisp_add_del_remote_mapping_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief IPsec: Add/delete Security Association Database entry
+/** \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 SAD entry if non-zero, else delete
-
-    @param sad_id - sad id
-
-    @param spi - security parameter index
-
-    @param protocol - 0 = AH, 1 = ESP
-
-    @param crypto_algorithm - 0 = Null, 1 = AES-CBC-128, 2 = AES-CBC-192, 3 = AES-CBC-256, 4 = 3DES-CBC
-    @param crypto_key_length - length of crypto_key in bytes
-    @param crypto_key - crypto keying material
-
-    @param integrity_algorithm - 0 = None, 1 = MD5-96, 2 = SHA1-96, 3 = SHA-256, 4 = SHA-384, 5=SHA-512
-    @param integrity_key_length - length of integrity_key in bytes
-    @param integrity_key - integrity keying material
-
-    @param use_extended_sequence_number - use ESN when non-zero
-
-    @param is_tunnel - IPsec tunnel mode if non-zero, else transport mode
-    @param is_tunnel_ipv6 - IPsec tunnel mode is IPv6 if non-zero, else IPv4 tunnel only valid if is_tunnel is non-zero
-    @param tunnel_src_address - IPsec tunnel source address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
-    @param tunnel_dst_address - IPsec tunnel destination address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
-
-    To be added:
-     Anti-replay
-     IPsec tunnel address copy mode (to support GDOI)
- */
-
-define ipsec_sad_add_del_entry {
+    @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 {
     u32 client_index;
     u32 context;
     u8 is_add;
-
-    u32 sad_id;
-
-    u32 spi;
-
-    u8 protocol;
-
-    u8 crypto_algorithm;
-    u8 crypto_key_length;
-    u8 crypto_key[128];
-
-    u8 integrity_algorithm;
-    u8 integrity_key_length;
-    u8 integrity_key[128];
-
-    u8 use_extended_sequence_number;
-
-    u8 is_tunnel;
-    u8 is_tunnel_ipv6;
-    u8 tunnel_src_address[16];
-    u8 tunnel_dst_address[16];
+    u8 locator_set_name[64];
 };
 
-/** \brief Reply for IPsec: Add/delete Security Association Database entry
+/** \brief Reply for lisp_add_del_map_request_itr_rlocs
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
 
-define ipsec_sad_add_del_entry_reply {
+define lisp_add_del_map_request_itr_rlocs_reply {
     u32 context;
     i32 retval;
 };
 
-/** \brief IPsec: Update Security Association keys
+/** \brief map/unmap vni to vrf
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-
-    @param sa_id - sa id
-
-    @param crypto_key_length - length of crypto_key in bytes
-    @param crypto_key - crypto keying material
-
-    @param integrity_key_length - length of integrity_key in bytes
-    @param integrity_key - integrity keying material
+    @param is_add - add or delete mapping
+    @param vni - virtual network id
+    @param vrf - vrf
 */
-
-define ipsec_sa_set_key {
+define lisp_eid_table_add_del_map {
     u32 client_index;
     u32 context;
-
-    u32 sa_id;
-
-    u8 crypto_key_length;
-    u8 crypto_key[128];
-
-    u8 integrity_key_length;
-    u8 integrity_key[128];
+    u8 is_add;
+    u32 vni;
+    u32 vrf;
 };
 
-/** \brief Reply for IPsec: Update Security Association keys
+/** \brief Reply for lisp_eid_table_add_del_map
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
-
-define ipsec_sa_set_key_reply {
+define lisp_eid_table_add_del_map_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
-    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
-    @param host_address - Host IP address
-    @param router_address - Router IP address
-    @param host_mac - Host MAC address
-*/
-manual_java define dhcp_compl_event {
-    u32 client_index;
-    u32 pid;
-    u8 hostname[64];
-    u8 is_ipv6;
-    u8 host_address[16];
-    u8 router_address[16];
-    u8 host_mac[6];
+/** \brief LISP locator_set status
+    @param locator_set_name - name of the locator_set
+    @param sw_if_index - sw_if_index of the locator
+    @param priority - locator priority
+    @param weight - locator weight
+ */
+manual_java define lisp_locator_set_details {
+    u32 context;
+    u8  local;
+    u8  locator_set_name[64];
+    u32 sw_if_index;
+    u8  is_ipv6;
+    u8  ip_address[16];
+    u8  prefix_len;
+    u8  priority;
+    u8  weight;
 };
 
-/** \brief Add MAP domains
+/** \brief Request for locator_set summary status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param ip6_prefix - Rule IPv6 prefix
-    @param ip4_prefix - Rule IPv4 prefix
-    @param ip6_src - MAP domain IPv6 BR address / Tunnel source
-    @param ip6_prefix_len - Rule IPv6 prefix length
-    @param ip4_prefix_len - Rule IPv4 prefix length
-    @param ea_bits_len - Embedded Address bits length
+ */
+define lisp_locator_set_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief LISP local eid table status
+    @param locator_set_name - name of the locator_set
+    @param eid_is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param eid_ip_address - array of address bytes
+    @param eid_prefix_len - prefix len
+ */
+manual_java define lisp_local_eid_table_details {
+    u32 context;
+    u8  locator_set_name[64];
+    u8  eid_is_ipv6;
+    u32 vni;
+    u8  eid_ip_address[16];
+    u8  eid_prefix_len;
+};
+
+/** \brief Request for local eid table summary status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+ */
+define lisp_local_eid_table_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Shows relationship between vni and vrf
+    @param vrf - VRF index
+    @param vni - vitual network instance
+  */
+manual_java define lisp_eid_table_map_details {
+    u32 context;
+    u32 vni;
+    u32 vrf;
+};
+
+/** \brief Request for lisp_eid_table_map_details
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+ */
+define lisp_eid_table_map_dump {
+    u32 client_index;
+    u32 context;
+};
+
+manual_java define lisp_gpe_tunnel_details {
+    u32 context;
+    u32 tunnels;
+    u8  is_ipv6;
+    u8  source_ip[16];
+    u8  destination_ip[16];
+    u32 encap_fib_id;
+    u32 decap_fib_id;
+    u32 dcap_next;
+    u8  lisp_ver;
+    u8  next_protocol;
+    u8  flags;
+    u8  ver_res;
+    u8  res;
+    u32 iid;
+};
+
+/** \brief Request for gpe tunnel summary status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+ */
+define lisp_gpe_tunnel_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief LISP map resolver status
+    @param locator_set_name - name of the locator_set
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param ip_address - array of address bytes
+ */
+manual_java define lisp_map_resolver_details {
+    u32 context;
+    u8  is_ipv6;
+    u8  ip_address[16];
+};
+
+/** \brief Request for map resolver summary status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+ */
+define lisp_map_resolver_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Status of lisp-gpe protocol, enable or disable
+    @param context - sender context, to match reply w/ request
+    @param is_en - enable protocol if non-zero, else disable
+*/
+manual_java define lisp_enable_disable_status_details {
+    u32 context;
+    u8 feature_status;
+    u8 gpe_status;
+};
+
+/** \brief Request for lisp-gpe protocol status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+define lisp_enable_disable_status_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Get LISP map request itr rlocs status
+    @param context - sender context, to match reply w/ request
+    @param locator_set_name - name of the locator_set
+ */
+define lisp_get_map_request_itr_rlocs {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Request for map request itr rlocs summary status
+ */
+define lisp_get_map_request_itr_rlocs_reply {
+    u32 context;
+    i32 retval;
+    u8 locator_set_name[64];
+};
+
+/* Gross kludge, DGMS */
+define interface_name_renumber {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+    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
+    @param enable_disable - 1 => register for events, 0 => cancel registration
+    @param pid - sender's pid
+    @param address - the exact ip4 address of interest
+*/
+define want_ip4_arp_events {
+    u32 client_index;
+    u32 context;
+    u8 enable_disable;
+    u32 pid;
+    u32 address;
+};
+
+/** \brief Reply for interface events registration
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define want_ip4_arp_events_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief Tell client about an ip4 arp resolution event
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param address - the exact ip4 address of interest
+    @param pid - client pid registered to receive notification
+    @param sw_if_index - interface which received ARP packet
+    @param new_mac - the new mac address 
+*/
+define ip4_arp_event {
+    u32 client_index;
+    u32 context;
+    u32 address;
+    u32 pid;
+    u32 sw_if_index;
+    u8 new_mac[6];
+};
+    
+/** \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
+    @param bd_id - the bridge domain to create
+    @param flood - enable/disable bcast/mcast flooding in the bd
+    @param uu_flood - enable/disable uknown unicast flood in the bd
+    @param forward - enable/disable forwarding on all interfaces in the bd
+    @param learn - enable/disable learning on all interfaces in the bd
+    @param arp_term - enable/disable arp termination in the bd
+    @param is_add - add or delete flag
+*/
+define bridge_domain_add_del {
+    u32 client_index;
+    u32 context;
+    u32 bd_id;
+    u8 flood;
+    u8 uu_flood;
+    u8 forward;
+    u8 learn;
+    u8 arp_term;
+    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;
+    u32 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
+    @param bd_id - the bridge domain id desired or ~0 to request all bds
+*/
+manual_java define bridge_domain_dump {
+    u32 client_index;
+    u32 context;
+    u32 bd_id;
+};
+
+/** \brief L2 bridge domain operational state response
+    @param bd_id - the bridge domain id
+    @param flood - bcast/mcast flooding state on all interfaces in the bd
+    @param uu_flood - uknown unicast flooding state on all interfaces in the bd
+    @param forward - forwarding state on all interfaces in the bd
+    @param learn - learning state on all interfaces in the bd
+    @param arp_term - arp termination state on all interfaces in the bd
+    @param n_sw_ifs - number of sw_if_index's in the domain
+*/
+manual_java define bridge_domain_details {
+    u32 context;
+    u32 bd_id;
+    u8 flood;
+    u8 uu_flood;
+    u8 forward;
+    u8 learn;
+    u8 arp_term;
+    u32 bvi_sw_if_index;
+    u32 n_sw_ifs;
+};
+
+/** \brief L2 bridge domain sw interface operational state response
+    @param bd_id - the bridge domain id
+    @param sw_if_index - sw_if_index in the domain
+    @param shg - split horizon group for the interface
+*/
+manual_java define bridge_domain_sw_if_details {
+    u32 context;
+    u32 bd_id;
+    u32 sw_if_index;
+    u8 shg;
+};
+
+/** \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
+    @param sw_if_index - index of the interface for DHCP client
+    @param hostname - hostname
+    @param is_add - add the config if non-zero, else delete
+    @param want_dhcp_event - DHCP event sent to the sender
+           via dhcp_compl_event API message if non-zero
+    @param pid - sender's pid
+*/
+define dhcp_client_config {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+    u8 hostname[64];
+    u8 is_add;
+    u8 want_dhcp_event;
+    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 Set/unset input ACL interface
+    @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/unset input ACL
+    @param ip4_table_index - ip4 classify table index (~0 for skip)
+    @param ip6_table_index - ip6 classify table index (~0 for skip)
+    @param l2_table_index  -  l2 classify table index (~0 for skip)
+    @param is_add - Set input ACL if non-zero, else unset
+    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 {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+    u32 ip4_table_index;
+    u32 ip6_table_index;
+    u32 l2_table_index;
+    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;
+};
+
+/** \brief IPsec: Add/delete Security Policy Database
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add SPD if non-zero, else delete
+    @param spd_id - SPD instance id (control plane allocated)
+*/
+
+define ipsec_spd_add_del {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    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
+    @param context - sender context, to match reply w/ request
+    @param is_add - add security mode if non-zero, else delete
+    @param sw_if_index - index of the interface
+    @param spd_id - SPD instance id to use for lookups
+*/
+
+
+define ipsec_interface_add_del_spd {
+    u32 client_index;
+    u32 context;
+
+    u8 is_add;
+    u32 sw_if_index;
+    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
+
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add SPD if non-zero, else delete
+    @param spd_id - SPD instance id (control plane allocated)
+    @param priority - priority of SPD entry (non-unique value).  Used to order SPD matching - higher priorities match before lower
+    @param is_outbound - entry applies to outbound traffic if non-zero, otherwise applies to inbound traffic
+    @param is_ipv6 - remote/local address are IPv6 if non-zero, else IPv4
+    @param remote_address_start - start of remote address range to match
+    @param remote_address_stop - end of remote address range to match
+    @param local_address_start - start of local address range to match
+    @param local_address_stop - end of local address range to match
+    @param protocol - protocol type to match [0 means any]
+    @param remote_port_start - start of remote port range to match ...
+    @param remote_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
+    @param local_port_start - start of local port range to match ...
+    @param local_port_stop - end of remote port range to match [0 to 65535 means ANY, 65535 to 0 means OPAQUE]
+    @param policy - 0 = bypass (no IPsec processing), 1 = discard (discard packet with ICMP processing), 2 = resolve (send request to control plane for SA resolving, and discard without ICMP processing), 3 = protect (apply IPsec policy using following parameters)
+    @param sa_id - SAD instance id (control plane allocated)
+
+*/
+
+define ipsec_spd_add_del_entry {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+
+    u32 spd_id;
+    i32 priority;
+    u8 is_outbound;
+
+    // Selector
+    u8 is_ipv6;
+    u8 is_ip_any;
+    u8 remote_address_start[16];
+    u8 remote_address_stop[16];
+    u8 local_address_start[16];
+    u8 local_address_stop[16];
+
+    u8 protocol;
+
+    u16 remote_port_start;
+    u16 remote_port_stop;
+    u16 local_port_start;
+    u16 local_port_stop;
+
+    // Policy
+    u8 policy;
+    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
+    @param is_add - add SAD entry if non-zero, else delete
+
+    @param sad_id - sad id
+
+    @param spi - security parameter index
+
+    @param protocol - 0 = AH, 1 = ESP
+
+    @param crypto_algorithm - 0 = Null, 1 = AES-CBC-128, 2 = AES-CBC-192, 3 = AES-CBC-256, 4 = 3DES-CBC
+    @param crypto_key_length - length of crypto_key in bytes
+    @param crypto_key - crypto keying material
+
+    @param integrity_algorithm - 0 = None, 1 = MD5-96, 2 = SHA1-96, 3 = SHA-256, 4 = SHA-384, 5=SHA-512
+    @param integrity_key_length - length of integrity_key in bytes
+    @param integrity_key - integrity keying material
+
+    @param use_extended_sequence_number - use ESN when non-zero
+
+    @param is_tunnel - IPsec tunnel mode if non-zero, else transport mode
+    @param is_tunnel_ipv6 - IPsec tunnel mode is IPv6 if non-zero, else IPv4 tunnel only valid if is_tunnel is non-zero
+    @param tunnel_src_address - IPsec tunnel source address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
+    @param tunnel_dst_address - IPsec tunnel destination address IPv6 if is_tunnel_ipv6 is non-zero, else IPv4. Only valid if is_tunnel is non-zero
+
+    To be added:
+     Anti-replay
+     IPsec tunnel address copy mode (to support GDOI)
+ */
+
+define ipsec_sad_add_del_entry {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+
+    u32 sad_id;
+
+    u32 spi;
+
+    u8 protocol;
+
+    u8 crypto_algorithm;
+    u8 crypto_key_length;
+    u8 crypto_key[128];
+
+    u8 integrity_algorithm;
+    u8 integrity_key_length;
+    u8 integrity_key[128];
+
+    u8 use_extended_sequence_number;
+
+    u8 is_tunnel;
+    u8 is_tunnel_ipv6;
+    u8 tunnel_src_address[16];
+    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
+
+    @param sa_id - sa id
+
+    @param crypto_key_length - length of crypto_key in bytes
+    @param crypto_key - crypto keying material
+
+    @param integrity_key_length - length of integrity_key in bytes
+    @param integrity_key - integrity keying material
+*/
+
+define ipsec_sa_set_key {
+    u32 client_index;
+    u32 context;
+
+    u32 sa_id;
+
+    u8 crypto_key_length;
+    u8 crypto_key[128];
+
+    u8 integrity_key_length;
+    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
+
+    @param name - IKEv2 profile name
+    @param is_add - Add IKEv2 profile if non-zero, else delete
+*/
+define ikev2_profile_add_del {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    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
+
+    @param name - IKEv2 profile name
+    @param auth_method - IKEv2 authentication method (shared-key-mic/rsa-sig)
+    @param is_hex - Authentication data in hex format if non-zero, else string
+    @param data_len - Authentication data length
+    @param data - Authentication data (for rsa-sig cert file path)
+*/
+define ikev2_profile_set_auth {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 auth_method;
+    u8 is_hex;
+    u32 data_len;
+    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
+
+    @param name - IKEv2 profile name
+    @param is_local - Identification is local if non-zero, else remote
+    @param id_type - Identification type
+    @param data_len - Identification data length
+    @param data - Identification data
+*/
+define ikev2_profile_set_id {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 is_local;
+    u8 id_type;
+    u32 data_len;
+    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
+
+    @param name - IKEv2 profile name
+    @param is_local - Traffic selector is local if non-zero, else remote
+    @param proto - Traffic selector IP protocol (if zero not relevant)
+    @param start_port - The smallest port number allowed by traffic selector
+    @param end_port - The largest port number allowed by traffic selector
+    @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 {
+    u32 client_index;
+    u32 context;
+
+    u8 name[64];
+    u8 is_local;
+    u8 proto;
+    u16 start_port;
+    u16 end_port;
+    u32 start_addr;
+    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 {
+    u32 client_index;
+    u32 context;
+
+    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 Tell client about a DHCP completion event
+    @param client_index - opaque cookie to identify the sender
+    @param pid - client pid registered to receive notification
+    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param host_address - Host IP address
+    @param router_address - Router IP address
+    @param host_mac - Host MAC address
+*/
+manual_java define dhcp_compl_event {
+    u32 client_index;
+    u32 pid;
+    u8 hostname[64];
+    u8 is_ipv6;
+    u8 host_address[16];
+    u8 router_address[16];
+    u8 host_mac[6];
+};
+
+/** \brief Add MAP domains
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param ip6_prefix - Rule IPv6 prefix
+    @param ip4_prefix - Rule IPv4 prefix
+    @param ip6_src - MAP domain IPv6 BR address / Tunnel source
+    @param ip6_prefix_len - Rule IPv6 prefix length
+    @param ip4_prefix_len - Rule IPv4 prefix length
+    @param ea_bits_len - Embedded Address bits length
     @param psid_offset - Port Set Identifider (PSID) offset
     @param psid_length - PSID length
     @param is_translation - MAP-E / MAP-T
@@ -2618,121 +3203,752 @@ define map_add_domain {
   u16 mtu;
 };
 
-/** \brief Reply for MAP domain add
-    @param context - returned sender context, to match reply w/ request
-    @param index - MAP domain index
-    @param retval - return code
+/** \brief Reply for MAP domain add
+    @param context - returned sender context, to match reply w/ request
+    @param index - MAP domain index
+    @param retval - return code
+*/
+define map_add_domain_reply {
+  u32 context;
+  u32 index;
+  i32 retval;
+};
+
+/** \brief Delete MAP domain
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param index - MAP Domain index
+*/
+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
+    @param context - sender context, to match reply w/ request
+    @param index - MAP Domain index
+    @param is_add - If 1 add rule, if 0 delete rule
+    @param ip6_dst - MAP CE IPv6 address
+    @param psid - Rule PSID
+*/
+define map_add_del_rule {
+  u32 client_index;
+  u32 context;
+  u32 index;
+  u32 is_add;
+  u8 ip6_dst[16];
+  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
+*/
+define map_domain_dump {
+  u32 client_index;
+  u32 context;
+};
+
+manual_java define map_domain_details {
+  u32 context;
+  u32 domain_index;
+  u8 ip6_prefix[16];
+  u8 ip4_prefix[4];
+  u8 ip6_src[16];
+  u8 ip6_prefix_len;
+  u8 ip4_prefix_len;
+  u8 ip6_src_len;
+  u8 ea_bits_len;
+  u8 psid_offset;
+  u8 psid_length;
+  u8 flags;
+  u16 mtu;
+  u8 is_translation;
+};
+
+define map_rule_dump {
+  u32 client_index;
+  u32 context;
+  u32 domain_index;
+};
+
+manual_java define map_rule_details {
+  u32 context;
+  u8 ip6_dst[16];
+  u16 psid;
+};
+
+/** \brief Request for a single block of summary stats
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+define map_summary_stats {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Reply for map_summary_stats request
+    @param context - sender context, to match reply w/ request
+    @param retval - return code for request
+    @param total_bindings -  
+    @param total_pkts -  
+    @param total_ip4_fragments -
+    @param total_security_check - 
+*/
+define map_summary_stats_reply {
+    u32 context;
+    i32 retval;
+    u64 total_bindings;
+    u64 total_pkts[2];
+    u64 total_bytes[2];
+    u64 total_ip4_fragments;
+    u64 total_security_check[2];
+};
+
+/** \brief cop: enable/disable junk filtration features on an interface
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_inded - desired interface
+    @param enable_disable - 1 => enable, 0 => disable
+*/
+
+define cop_interface_enable_disable {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+    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!
+    
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - interface handle, physical interfaces only
+    @param fib_id - fib identifier for the whitelist / blacklist fib
+    @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration
+    @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration
+    @param default_cop -  1 => enable non-ip4, non-ip6 filtration 0=> disable it
+*/
+
+define cop_whitelist_enable_disable {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+    u32 fib_id;
+    u8 ip4;
+    u8 ip6;
+    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.
+
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+
+define get_node_graph {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief get_node_graph_reply
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+    @param reply_in_shmem - result from vlib_node_serialize, in shared
+    memory. Process with vlib_node_unserialize, remember to switch
+    heaps and free the result.
+*/
+
+define get_node_graph_reply {
+    u32 context;
+    i32 retval;
+    u64 reply_in_shmem;
+};
+
+/** \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 {
+    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 IOAM Trace : Set TRACE profile
+    @param id - profile id
+    @param trace_type - Trace type
+    @param trace_num_elt - Number of nodes in trace path
+    @param trace_ppc - Trace PPC (none/encap/decap)
+    @param trace_tsp - Trace timestamp precision (0-sec,1-ms,2-us,3-ns)
+    @param trace_app_data - Trace application data, can be any 4 bytes
+    @param pow_enable - Proof of Work enabled or not flag
+    @param node_id - Id of this node
+*/
+define trace_profile_add {
+  u32 client_index;
+  u32 context;
+  u16 id;
+  u8  trace_type;
+  u8  trace_num_elt;
+  u8  trace_ppc;
+  u8  trace_tsp;
+  u32 trace_app_data;
+  u8  pow_enable;
+  u32 node_id;
+};
+
+/** \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 IOAM Trace enable trace profile for a flow
+    @param id - id of the trace profile to be applied
+    @param dest_ipv6 - Destination IPv6 address
+    @param prefix_length - prefix mask
+    @param vrf_id - VRF ID
+    @param trace_op - Trace operation (add/mod/del)
+    @param enable - apply/remove the trace profile for the flow
+*/
+define trace_profile_apply {
+  u32 client_index;
+  u32 context;
+  u16 id;
+  u8 dest_ipv6[16];
+  u32 prefix_length;
+  u32 vrf_id;
+  u8 trace_op;
+  u8 enable;
+};
+
+/** \brief Trace profile apply response
+    @param context - sender context, to match reply w/ request   
+    @param retval - return value for request
 */
-define map_add_domain_reply {
+define trace_profile_apply_reply {
   u32 context;
-  u32 index;
   i32 retval;
 };
 
-/** \brief Delete MAP domain
+/** \brief Delete Trace Profile 
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param index - MAP Domain index
 */
-define map_del_domain {
+define trace_profile_del {
   u32 client_index;
   u32 context;
-  u32 index;
+  u16 id;
 };
 
-/** \brief Reply for MAP domain del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
+/** \brief Trace profile add / del response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
 */
-define map_del_domain_reply {
-  u32 context;
-  i32 retval;
+define trace_profile_del_reply {
+    u32 context;
+    i32 retval;
 };
 
-/** \brief Add or Delete MAP rule from a domain (Only used for shared IPv4 per subscriber)
+/** \brief Create host-interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
-    @param index - MAP Domain index
-    @param is_add - If 1 add rule, if 0 delete rule
-    @param ip6_dst - MAP CE IPv6 address
-    @param psid - Rule PSID
+    @param host_if_name - interface name
+    @param hw_addr - interface MAC
+    @param use_random_hw_addr - use random generated MAC
 */
-define map_add_del_rule {
-  u32 client_index;
-  u32 context;
-  u32 index;
-  u32 is_add;
-  u8 ip6_dst[16];
-  u16 psid;
+define af_packet_create {
+    u32 client_index;
+    u32 context;
+
+    u8 host_if_name[64];
+    u8 hw_addr[6];
+    u8 use_random_hw_addr;
 };
 
-/** \brief Reply for MAP rule add/del
-    @param context - returned sender context, to match reply w/ request
-    @param retval - return code
+/** \brief Create host-interface response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
 */
-define map_add_del_rule_reply {
-  u32 context;
-  i32 retval;
+define af_packet_create_reply {
+    u32 context;
+    i32 retval;
+    u32 sw_if_index;
 };
 
-/** \brief Get list of map domains
+/** \brief Delete host-interface
     @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param host_if_name - interface name
 */
-define map_domain_dump {
-  u32 client_index;
-  u32 context;
+define af_packet_delete {
+    u32 client_index;
+    u32 context;
+
+    u8 host_if_name[64];
 };
 
-manual_java define map_domain_details {
-  u32 domain_index;
-  u8 ip6_prefix[16];
-  u8 ip4_prefix[4];
-  u8 ip6_src[16];
-  u8 ip6_prefix_len;
-  u8 ip4_prefix_len;
-  u8 ip6_src_len;
-  u8 ea_bits_len;
-  u8 psid_offset;
-  u8 psid_length;
-  u8 flags;
-  u16 mtu;
-  u8 is_translation;
+/** \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;
 };
 
-define map_rule_dump {
-  u32 client_index;
-  u32 context;
-  u32 domain_index;
+/** \brief Add/del policer
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_add - add policer if non-zero, else delete
+    @param name - policer name
+    @param cir - CIR
+    @param eir - EIR
+    @param cb - Committed Burst
+    @param eb - Excess or Peak Burst
+    @param rate_type - rate type
+    @param round_type - rounding type
+    @param type - policer algorithm
+*/
+define policer_add_del {
+    u32 client_index;
+    u32 context;
+
+    u8 is_add;
+    u8 name[64];
+    u32 cir;
+    u32 eir;
+    u64 cb;
+    u64 eb;
+    u8 rate_type;
+    u8 round_type;
+    u8 type;
 };
 
-manual_java define map_rule_details {
-  u8 ip6_dst[16];
-  u16 psid;
+/** \brief Add/del policer response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define policer_add_del_reply {
+    u32 context;
+    i32 retval;
 };
 
-/** \brief Request for a single block of summary stats
+/** \brief Get list of policers
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
+    @param match_name_valid - if 0 request all policers otherwise use match_name
+    @param match_name - policer name
 */
-define map_summary_stats {
+define policer_dump {
     u32 client_index;
     u32 context;
+
+    u8 match_name_valid;
+    u8 match_name[64];
 };
 
-/** \brief Reply for map_summary_stats request
+/** \brief Policer operational state response.
     @param context - sender context, to match reply w/ request
-    @param retval - return code for request
-    @param total_bindings -  
-    @param total_pkts -  
-    @param total_ip4_fragments -
-    @param total_security_check - 
+    @param name - policer name
+    @param cir - CIR
+    @param eir - EIR
+    @param cb - Committed Burst
+    @param eb - Excess or Peak Burst
+    @param rate_type - rate type
+    @param round_type - rounding type
+    @param type - policer algorithm
+    @param single_rate - 1 = single rate policer, 0 = two rate policer
+    @param color_aware - for hierarchical policing
+    @param scale - power-of-2 shift amount for lower rates
+    @param cir_tokens_per_period - number of tokens for each period
+    @param pir_tokens_per_period - number of tokens for each period for 2-rate policer
+    @param current_limit - current limit
+    @param current_bucket - current bucket
+    @param extended_limit - extended limit
+    @param extended_bucket - extended bucket
+    @param last_update_time - last update time
 */
-define map_summary_stats_reply {
+manual_java define policer_details {
+    u32 context;
+
+    u8 name[64];
+    u32 cir;
+    u32 eir;
+    u64 cb;
+    u64 eb;
+    u8 rate_type;
+    u8 round_type;
+    u8 type;
+    u8 single_rate;
+    u8 color_aware;
+    u32 scale;
+    u32 cir_tokens_per_period;
+    u32 pir_tokens_per_period;
+    u32 current_limit;
+    u32 current_bucket;
+    u32 extended_limit;
+    u32 extended_bucket;
+    u64 last_update_time;
+};
+
+/** \brief Create 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
+    @param hw_addr - interface MAC
+    @param use_random_hw_addr - use random generated MAC
+    @param is_pipe - is pipe
+    @param is_master - 0=slave, 1=master
+*/
+define netmap_create {
+    u32 client_index;
+    u32 context;
+
+    u8 netmap_if_name[64];
+    u8 hw_addr[6];
+    u8 use_random_hw_addr;
+    u8 is_pipe;
+    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;
-    u64 total_bindings;
-    u64 total_pkts[2];
-    u64 total_bytes[2];
-    u64 total_ip4_fragments;
-    u64 total_security_check[2];
+};
+
+/** \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 {
+    u32 client_index;
+    u32 context;
+
+    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;
+};
+
+/** \brief Dump mpls gre tunnel table
+    @param client_index - opaque cookie to identify the sender
+    @param tunnel_index - gre tunnel identifier or -1 in case of all tunnels
+*/
+define mpls_gre_tunnel_dump {
+    u32 client_index;
+    u32 context;
+    i32 tunnel_index;
+};
+
+/** \brief mpls gre tunnel operational state response
+    @param tunnel_index - gre tunnel identifier
+    @param intfc_address - interface ipv4 addr
+    @param mask_width - interface ipv4 addr mask
+    @param hw_if_index - interface id
+    @param l2_only -
+    @param tunnel_src - tunnel source ipv4 addr
+    @param tunnel_dst - tunnel destination ipv4 addr
+    @param outer_fib_index - gre tunnel identifier
+    @param encap_index - reference to mpls label table
+    @param nlabels - number of resolved labels
+    @param labels - resolved labels
+*/
+manual_java define mpls_gre_tunnel_details {
+    u32 context;
+    u32 tunnel_index;
+
+    u32 intfc_address;
+    u32 inner_fib_index;
+    u32 mask_width;
+    u32 encap_index;
+    u32 hw_if_index;
+    u8  l2_only;
+    u32 tunnel_src;
+    u32 tunnel_dst;
+    u32 outer_fib_index;
+    u32 nlabels;
+    u32 labels[0];
+};
+
+/** \brief Dump mpls eth tunnel table
+    @param client_index - opaque cookie to identify the sender
+    @param tunnel_index - eth tunnel identifier or -1 in case of all tunnels
+*/
+define mpls_eth_tunnel_dump {
+    u32 client_index;
+    u32 context;
+    i32 tunnel_index;
+};
+
+/** \brief mpls eth tunnel operational state response
+    @param tunnel_index - eth tunnel identifier
+    @param intfc_address - interface ipv4 addr
+    @param mask_width - interface ipv4 addr mask
+    @param hw_if_index - interface id
+    @param l2_only -
+    @param tunnel_dst_mac -
+    @param tx_sw_if_index -
+    @param encap_index - reference to mpls label table
+    @param nlabels - number of resolved labels
+    @param labels - resolved labels
+*/
+manual_java define mpls_eth_tunnel_details {
+    u32 context;
+    u32 tunnel_index;
+
+    u32 intfc_address;
+    u32 inner_fib_index;
+    u32 mask_width;
+    u32 encap_index;
+    u32 hw_if_index;
+    u8  l2_only;
+    u8  tunnel_dst_mac[6];
+    u32 tx_sw_if_index;
+    u32 nlabels;
+    u32 labels[0];
+};
+
+/** \brief Dump mpls fib table
+    @param client_index - opaque cookie to identify the sender
+    @param fib_index    - mpls fib entry identifier or -1 in case of all entries
+*/
+define mpls_fib_encap_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief mpls fib encap table response
+    @param fib_index - fib table id
+    @param dest - destination ipv4 addr
+    @param s_bit -
+    @param entry_index - reference to mpls label table
+    @param nlabels - number of resolved labels
+    @param labels - resolved labels
+*/
+manual_java define mpls_fib_encap_details {
+    u32 context;
+
+    u32 fib_index;
+    u32 entry_index;
+    u32 dest;
+    u32 s_bit;
+    u32 nlabels;
+    u32 labels[0];
+};
+
+/** \brief Dump mpls fib decap table
+    @param client_index - opaque cookie to identify the sender
+    @param fib_index    - mpls fib entry identifier or -1 in case of all entries
+*/
+define mpls_fib_decap_dump {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief mpls fib decap table response
+    @param fib_index - fib table id
+    @param entry_index - reference to mpls label table
+    @param dest - destination ipv4 addr
+    @param s_bit -
+    @param label - mpls labels
+    @param rx_table_id - rx fib id
+    @param tx_table_id - tx fib id
+    @param swif_tag -
+*/
+manual_java define mpls_fib_decap_details {
+    u32 context;
+
+    u32 fib_index;
+    u32 entry_index;
+    u32 dest;
+    u32 s_bit;
+    u32 label;
+    u32 rx_table_id;
+    u32 tx_table_id;
+    u8  swif_tag[8];
+};
+
+/** \brief Classify get table IDs request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+define classify_table_ids {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Reply for classify get table IDs request
+    @param context - sender context which was passed in the request
+    @param count - number of ids returned in response
+    @param ids - array of classify table ids
+*/
+manual_java define classify_table_ids_reply {
+    u32 context;
+    u32 retval;
+    u32 count;
+    u32 ids[0];
+};
+
+/** \brief Classify table ids by interface index request
+    @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
+*/
+define classify_table_by_interface {
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+};
+
+/** \brief Reply for classify table id by interface index request
+    @param context - sender context which was passed in the request
+    @param count - number of ids returned in response
+    @param sw_if_index - index of the interface
+    @param l2_table_id - l2 classify table index
+    @param ip4_table_id - ip4 classify table index
+    @param ip6_table_id - ip6 classify table index
+*/
+manual_java define classify_table_by_interface_reply {
+    u32 context;
+    u32 retval;
+    u32 sw_if_index;
+    u32 l2_table_id;
+    u32 ip4_table_id;
+    u32 ip6_table_id;
+};
+
+/** \brief Classify table info
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param table_id - classify table index
+*/
+define classify_table_info {
+    u32 client_index;
+    u32 context;
+    u32 table_id;
+};
+
+/** \brief Reply for classify table info request
+    @param context - sender context which was passed in the request
+    @param count - number of ids returned in response
+    @param table_id - classify table index
+    @param nbuckets - number of buckets when adding a table
+    @param match_n_vectors - number of match vectors
+    @param skip_n_vectors - number of skip_n_vectors
+    @param active_sessions - number of sessions (active entries)
+    @param next_table_index - index of next table
+    @param miss_next_index - index of miss table
+    @param mask[] - match mask
+*/
+manual_java define classify_table_info_reply {
+    u32 context;
+    i32 retval;
+    u32 table_id;
+    u32 nbuckets;
+    u32 match_n_vectors;
+    u32 skip_n_vectors;
+    u32 active_sessions;
+    u32 next_table_index;
+    u32 miss_next_index;
+    u32 mask_length;
+    u8  mask[0];
+};
+
+/** \brief Classify sessions dump request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param table_id - classify table index
+*/
+define classify_session_dump {
+    u32 client_index;
+    u32 context;
+    u32 table_id;
+};
+
+/** \brief Reply for classify table session dump request
+    @param context - sender context which was passed in the request
+    @param count - number of ids returned in response
+    @param table_id - classify table index
+    @param hit_next_index - hit_next_index of session
+    @param opaque_index - for add, opaque_index of session
+    @param advance - advance value of session
+    @param match[] - match value for session
+*/ 
+manual_java define classify_session_details {
+    u32 context;
+    i32 retval;
+    u32 table_id;
+    u32 hit_next_index;
+    i32 advance;
+    u32 opaque_index;
+    u32 match_length;
+    u8 match[0];
 };