VPP-108 : API calls to read classify table and sessions
[vpp.git] / vpp / api / vpe.api
index 52893b5..a1ea1b2 100644 (file)
@@ -643,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 {
@@ -656,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
@@ -1145,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 -
@@ -1154,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;
@@ -1168,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
@@ -1179,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
@@ -1799,6 +1851,35 @@ manual_java define vxlan_tunnel_details {
     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
@@ -1949,35 +2030,6 @@ manual_java define show_version_reply {
    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
@@ -2058,57 +2110,41 @@ 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;
 };
 
 /** \brief add or delete locator_set
@@ -2169,6 +2205,7 @@ define lisp_add_del_locator_reply {
     @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 lisp_add_del_local_eid {
     u32 client_index;
@@ -2178,6 +2215,7 @@ define lisp_add_del_local_eid {
     u8  ip_address[16];
     u8  prefix_len;
     u8  locator_set_name[64];
+    u32 vni;
 };
 
 /** \brief Reply for local_eid add/del
@@ -2265,6 +2303,26 @@ define lisp_gpe_enable_disable_reply {
     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 {
+    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 add or delete gpe_iface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -2287,6 +2345,114 @@ define lisp_gpe_add_del_iface_reply {
     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 {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    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 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 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 lisp_add_del_remote_mapping {
+    u32 client_index;
+    u32 context;
+    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 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 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 {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u8 locator_set_name[64];
+};
+
+/** \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 lisp_add_del_map_request_itr_rlocs_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \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 is_add - add or delete mapping
+    @param vni - virtual network id
+    @param vrf - vrf
+*/
+define lisp_eid_table_add_del_map {
+    u32 client_index;
+    u32 context;
+    u8 is_add;
+    u32 vni;
+    u32 vrf;
+};
+
+/** \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 LISP locator_set status
     @param locator_set_name - name of the locator_set
     @param sw_if_index - sw_if_index of the locator
@@ -2295,8 +2461,12 @@ define lisp_gpe_add_del_iface_reply {
  */
 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;
 };
@@ -2320,6 +2490,7 @@ 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;
 };
@@ -2333,6 +2504,25 @@ define lisp_local_eid_table_dump {
     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;
@@ -2379,6 +2569,42 @@ define lisp_map_resolver_dump {
     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;
@@ -3279,3 +3505,450 @@ define trace_profile_del_reply {
     u32 context;
     i32 retval;
 };
+
+/** \brief Create 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
+    @param hw_addr - interface MAC
+    @param use_random_hw_addr - use random generated MAC
+*/
+define af_packet_create {
+    u32 client_index;
+    u32 context;
+
+    u8 host_if_name[64];
+    u8 hw_addr[6];
+    u8 use_random_hw_addr;
+};
+
+/** \brief Create host-interface response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define af_packet_create_reply {
+    u32 context;
+    i32 retval;
+    u32 sw_if_index;
+};
+
+/** \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 af_packet_delete {
+    u32 client_index;
+    u32 context;
+
+    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;
+};
+
+/** \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;
+};
+
+/** \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 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 policer_dump {
+    u32 client_index;
+    u32 context;
+
+    u8 match_name_valid;
+    u8 match_name[64];
+};
+
+/** \brief Policer operational state response.
+    @param context - sender context, to match reply w/ request
+    @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
+*/
+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;
+};
+
+/** \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];
+};