API support for src/dst based routing policy in LISP
[vpp.git] / vpp / vpp-api / vpe.api
index 63ca847..3e4b933 100644 (file)
@@ -66,7 +66,7 @@ define want_interface_events_reply {
     @param vtr_tag1
     @param vtr_tag2
 */
-manual_java define sw_interface_details {
+define sw_interface_details {
     u32 context;
     u32 sw_if_index;
 
@@ -144,7 +144,7 @@ define sw_interface_set_flags_reply {
 };
 
 /* works */
-manual_java define sw_interface_dump {
+define sw_interface_dump {
     u32 client_index;
     u32 context;
     u8 name_filter_valid;
@@ -293,7 +293,7 @@ define sw_interface_tap_dump {
     @param sw_if_index - software index of tap interface
     @param dev_name - Linux tap device name
 */
-manual_java define sw_interface_tap_details {
+define sw_interface_tap_details {
     u32 context;
     u32 sw_if_index;
     u8 dev_name[64];
@@ -612,7 +612,7 @@ define want_stats {
     @param context - returned sender context, to match reply w/ request
     @param retval - return code
 */
-manual_java define want_stats_reply {
+define want_stats_reply {
     u32 context;
     i32 retval;
 };
@@ -624,7 +624,7 @@ manual_java define want_stats_reply {
     @param count - number of interfaces this stats block includes counters for
     @param data - contiguous block of vlib_counter_t structures 
 */
-manual_java define vnet_interface_counters {
+define vnet_interface_counters {
     /* enums - plural - in vnet/interface.h */
     u8 vnet_counter_type;
     u8 is_combined;
@@ -640,7 +640,7 @@ typeonly manual_print manual_endian define ip4_fib_counter {
     u64 bytes;
 };
 
-manual_java manual_print manual_endian define vnet_ip4_fib_counters {
+manual_print manual_endian define vnet_ip4_fib_counters {
     u32 vrf_id;
     u32 count;
     vl_api_ip4_fib_counter_t c[count];
@@ -653,7 +653,7 @@ typeonly manual_print manual_endian define ip6_fib_counter {
     u64 bytes;
 };
 
-manual_java manual_print manual_endian define vnet_ip6_fib_counters {
+manual_print manual_endian define vnet_ip6_fib_counters {
     u32 vrf_id;
     u32 count;
     vl_api_ip6_fib_counter_t c[count];
@@ -687,7 +687,7 @@ define vnet_summary_stats_reply {
     @param dst_address[] - 
     @param state
 */
-manual_java define oam_event {
+define oam_event {
     u8 dst_address[4];
     u8 state;
 };
@@ -1055,7 +1055,7 @@ define delete_loopback_reply {
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
 */
-manual_java define control_ping {
+define control_ping {
     u32 client_index;
     u32 context;
 };
@@ -1066,7 +1066,29 @@ manual_java define control_ping {
     @param retval - return code for the request
     @param vpe_pid - the pid of the vpe, returned by the server
 */
-manual_java define control_ping_reply {
+define control_ping_reply {
+    u32 context;
+    i32 retval;
+    u32 client_index;
+    u32 vpe_pid;
+};
+
+/** \brief Control ping from client to api server request, no print json output
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+define noprint_control_ping {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Control ping from the client to the server response
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param retval - return code for the request
+    @param vpe_pid - the pid of the vpe, returned by the server
+*/
+define noprint_control_ping_reply {
     u32 context;
     i32 retval;
     u32 client_index;
@@ -1091,7 +1113,7 @@ define cli_request {
 */
 define cli_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
     u64 reply_in_shmem;
 };
 
@@ -1425,7 +1447,7 @@ define l2_flags {
 */
 define l2_flags_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
     u32 resulting_feature_bitmap;
 };
 
@@ -1452,7 +1474,7 @@ define bridge_flags {
 */
 define bridge_flags_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
     u32 resulting_feature_bitmap;
 };
 
@@ -1481,7 +1503,7 @@ define bd_ip_mac_add_del {
 */
 define bd_ip_mac_add_del_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
 };
 
 /** \brief Add/Delete classification table request
@@ -1694,6 +1716,7 @@ define dhcp_proxy_config_2_reply {
     @param remote_session_id - remote tunnel session id
     @param local_cookie - local tunnel cookie
     @param l2_sublayer_present - l2 sublayer is present in packets if non-zero
+    @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
 */
 define l2tpv3_create_tunnel {
     u32 client_index;
@@ -1706,6 +1729,7 @@ define l2tpv3_create_tunnel {
     u64 local_cookie;
     u64 remote_cookie;
     u8 l2_sublayer_present;
+    u32 encap_vrf_id;
 };
 
 /** \brief l2tpv3 tunnel interface create response
@@ -1736,7 +1760,7 @@ define l2tpv3_set_tunnel_cookies_reply {
     i32 retval;
 };
 
-manual_java define sw_if_l2tpv3_tunnel_details {
+define sw_if_l2tpv3_tunnel_details {
     u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
@@ -1836,13 +1860,13 @@ define vxlan_add_del_tunnel_reply {
     u32 sw_if_index;
 };
 
-manual_java define vxlan_tunnel_dump {
+define vxlan_tunnel_dump {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
 };
 
-manual_java define vxlan_tunnel_details {
+define vxlan_tunnel_details {
     u32 context;
     u32 sw_if_index;
     u8 src_address[16];
@@ -1857,9 +1881,10 @@ define gre_add_del_tunnel {
     u32 client_index;
     u32 context;
     u8 is_add;
-    u32 src_address;
-    u32 dst_address;
-    u32 outer_table_id;
+    u8 is_ipv6;
+    u8 src_address[16];
+    u8 dst_address[16];
+    u32 outer_fib_id;
 };
 
 define gre_add_del_tunnel_reply {
@@ -1868,18 +1893,19 @@ define gre_add_del_tunnel_reply {
     u32 sw_if_index;
 };
 
-manual_java define gre_tunnel_dump {
+define gre_tunnel_dump {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
 };
 
-manual_java define gre_tunnel_details {
+define gre_tunnel_details {
     u32 context;
     u32 sw_if_index;
-    u32 src_address;
-    u32 dst_address;
-    u32 outer_table_id;
+    u8 is_ipv6;
+    u8 src_address[16];
+    u8 dst_address[16];
+    u32 outer_fib_id;
 };
   
 /** \brief L2 interface vlan tag rewrite configure request
@@ -2022,7 +2048,7 @@ define show_version {
     @param version  - version of the program
     @param build_directory - root of the workspace where the program was built
 */
-manual_java define show_version_reply {
+define show_version_reply {
    u32 context;
    i32 retval;
    u8 program[32];
@@ -2040,7 +2066,7 @@ manual_java define show_version_reply {
     @param sock_filename - socket filename
     @param num_regions - number of used memory regions
 */
-manual_java define sw_interface_vhost_user_details {
+define sw_interface_vhost_user_details {
     u32 context;
     u32 sw_if_index;
     u8 interface_name[64];
@@ -2058,21 +2084,21 @@ define sw_interface_vhost_user_dump {
     u32 context;
 };
 
-manual_java define ip_address_details {
+define ip_address_details {
     u32 client_index;
     u32 context;
     u8 ip[16];
     u8 prefix_length;
 };
 
-manual_java define ip_address_dump {
+define ip_address_dump {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
     u8 is_ipv6;
 };
 
-manual_java define ip_details {
+define ip_details {
     u32 sw_if_index;
     u32 context;
 };
@@ -2091,7 +2117,7 @@ define ip_dump {
     @param filter_mac - the entry is a mac filter entry.
     @param bvi_mac - the mac address is a bridge virtual interface
 */
-manual_java define l2_fib_table_entry {
+define l2_fib_table_entry {
     u32 context;
     u32 bd_id;
     u64 mac;
@@ -2105,7 +2131,7 @@ manual_java define l2_fib_table_entry {
     @param client_index - opaque cookie to identify the sender
     @param bd_id - the l2 fib / bridge domain table identifier
 */
-manual_java define l2_fib_table_dump {
+define l2_fib_table_dump {
     u32 client_index;
     u32 context;
     u32 bd_id;
@@ -2130,13 +2156,13 @@ define vxlan_gpe_add_del_tunnel_reply {
     u32 sw_if_index;
 };
 
-manual_java define vxlan_gpe_tunnel_dump {
+define vxlan_gpe_tunnel_dump {
     u32 client_index;
     u32 context;
     u32 sw_if_index;
 };
 
-manual_java define vxlan_gpe_tunnel_details {
+define vxlan_gpe_tunnel_details {
     u32 context;
     u32 sw_if_index;
     u8 local[16];
@@ -2153,12 +2179,16 @@ manual_java define vxlan_gpe_tunnel_details {
     @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
+    @param locator_num - number of locators
+    @param locators - Lisp locator data
 */
 define lisp_add_del_locator_set {
     u32 client_index;
     u32 context;
     u8  is_add;
     u8  locator_set_name[64];
+    u32 locator_num;
+    u8  locators[locator_num];
 };
 
 /** \brief Reply for locator_set add/del
@@ -2375,6 +2405,7 @@ define lisp_pitr_set_locator_set_reply {
     @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 is_src_dst - flag indicating src/dst based routing policy
     @param del_all - if set, delete all remote mappings
     @param vni - virtual network instance
     @param action - negative map-reply action
@@ -2382,8 +2413,8 @@ define lisp_pitr_set_locator_set_reply {
       0 : ipv4
       1 : ipv6
       2 : mac
-    @param deid - destination EID
-    @param seid - source EID
+    @param deid - dst EID
+    @param seid - src EID, valid only if is_src_dst is enabled
     @param rloc_num - number of remote locators
     @param rlocs - remote locator data
 */
@@ -2391,16 +2422,17 @@ define lisp_add_del_remote_mapping {
     u32 client_index;
     u32 context;
     u8  is_add;
+    u8 is_src_dst;
     u8 del_all;
     u32 vni;
     u8 action;
     u8 eid_type;
-    u8 deid[16];
+    u8 eid[16];
+    u8 eid_len;
     u8 seid[16];
-    u8 deid_len;
     u8 seid_len;
     u32 rloc_num;
-    u8 rlocs[0];
+    u8 rlocs[rloc_num];
 };
 
 /** \brief Reply for lisp_add_del_remote_mapping
@@ -2468,11 +2500,11 @@ define lisp_add_del_map_request_itr_rlocs_reply {
     i32 retval;
 };
 
-/** \brief map/unmap vni to vrf
+/** \brief map/unmap vni/bd_index to vrf
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add or delete mapping
-    @param vni - virtual network id
+    @param dp_table - virtual network id/bridge domain index
     @param vrf - vrf
 */
 define lisp_eid_table_add_del_map {
@@ -2480,7 +2512,8 @@ define lisp_eid_table_add_del_map {
     u32 context;
     u8 is_add;
     u32 vni;
-    u32 vrf;
+    u32 dp_table;
+    u8 is_l2;
 };
 
 /** \brief Reply for lisp_eid_table_add_del_map
@@ -2492,49 +2525,97 @@ define lisp_eid_table_add_del_map_reply {
     i32 retval;
 };
 
+/** \brief Request for map lisp locator status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param locator_set_index - index of locator_set
+    @param filter - filter type;
+      Support value:
+        0: all locator
+        1: local locator
+        2: remote locator
+ */
+define lisp_locator_dump {
+    u32 client_index;
+    u32 context;
+    u32 locator_set_index;
+    u8  filter;
+};
+
 /** \brief LISP locator_set status
+    @param local - if is set, then locator is local
     @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 {
 */
+define lisp_locator_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 LISP locator_set status
+    @param locator_set_name - name of the locator_set
+    @param local - if is set, then locator_set is local
+    @param locator_count - number of locator this stats block includes
+    @param locator - locator data
+ */
+define lisp_locator_set_details {
+    u32 context;
+    u8  local;
+    u32 locator_set_index;
+    u8  locator_set_name[64];
+};
+
 /** \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 filter - filter type;
+      Support value:
+        0: all locator_set
+        1: local locator_set
+        2: remote locator_set
  */
 define lisp_locator_set_dump {
     u32 client_index;
     u32 context;
+    u8  filter;
 };
 
-/** \brief LISP local eid table status
-    @param locator_set_name - name of the locator_set
-    @param eid_type - ip4, ip6 or l2 mac address
-    @param eid - array of address bytes
-    @param eid_prefix_len - prefix len
- */
-manual_java define lisp_local_eid_table_details {
+/** \brief Dump lisp eid-table
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param locator_set_index - index of locator_set
+    @param is_local - local if non-zero, else remote
+    @param eid_type:
+      0 : ipv4
+      1 : ipv6
+      2 : mac
+    @param eid - EID can be ip4, ip6 or mac
+    @param prefix_len - prefix len
+    @param vni - virtual network instance
+    @param ttl - time to live
+    @param authoritative - authoritative
+*/
+
+define lisp_eid_table_details {
     u32 context;
-    u8  locator_set_name[64];
+    u32 locator_set_index;
+    u8  is_local;
     u8  eid_type;
     u32 vni;
     u8  eid[16];
     u8  eid_prefix_len;
+    u32 ttl;
+    u8  authoritative;
 };
 
-/** \brief Request for local eid table summary status
+/** \brief Request for eid table summary status
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param eid_set - if non-zero request info about specific mapping
@@ -2547,8 +2628,13 @@ manual_java define lisp_local_eid_table_details {
         1: EID is IPv6
         2: EID is ethernet address
     @param eid - endpoint identifier
+    @param filter - filter type;
+      Support values:
+        0: all eid
+        1: local eid
+        2: remote eid
  */
-define lisp_local_eid_table_dump {
+define lisp_eid_table_dump {
     u32 client_index;
     u32 context;
     u8  eid_set;
@@ -2556,13 +2642,14 @@ define lisp_local_eid_table_dump {
     u32 vni;
     u8  eid_type;
     u8  eid[16];
+    u8  filter;
 };
 
 /** \brief Shows relationship between vni and vrf
     @param vrf - VRF index
     @param vni - vitual network instance
   */
-manual_java define lisp_eid_table_map_details {
+define lisp_eid_table_map_details {
     u32 context;
     u32 vni;
     u32 vrf;
@@ -2577,7 +2664,7 @@ define lisp_eid_table_map_dump {
     u32 context;
 };
 
-manual_java define lisp_gpe_tunnel_details {
+define lisp_gpe_tunnel_details {
     u32 context;
     u32 tunnels;
     u8  is_ipv6;
@@ -2608,7 +2695,7 @@ define lisp_gpe_tunnel_dump {
     @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 {
+define lisp_map_resolver_details {
     u32 context;
     u8  is_ipv6;
     u8  ip_address[16];
@@ -2623,23 +2710,25 @@ define lisp_map_resolver_dump {
     u32 context;
 };
 
-/** \brief Status of lisp-gpe protocol, enable or disable
+/** \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
-    @param is_en - enable protocol if non-zero, else disable
 */
-manual_java define lisp_enable_disable_status_details {
+define show_lisp_status{
+    u32 client_index;
     u32 context;
-    u8 feature_status;
-    u8 gpe_status;
 };
 
-/** \brief Request for lisp-gpe protocol status
-    @param client_index - opaque cookie to identify the sender
+/** \brief Status of lisp, enable or disable
     @param context - sender context, to match reply w/ request
+    @param feature_status - lisp enable if non-zero, else disable
+    @param gpe_status - lisp enable if non-zero, else disable
 */
-define lisp_enable_disable_status_dump {
-    u32 client_index;
+define show_lisp_status_reply{
     u32 context;
+    i32 retval;
+    u8 feature_status;
+    u8 gpe_status;
 };
 
 /** \brief Get LISP map request itr rlocs status
@@ -2659,6 +2748,27 @@ define lisp_get_map_request_itr_rlocs_reply {
     u8 locator_set_name[64];
 };
 
+/** \brief Request for lisp pitr status
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+define show_lisp_pitr {
+    u32 client_index;
+    u32 context;
+};
+
+/** \brief Status of lisp pitr, enable or disable
+    @param context - sender context, to match reply w/ request
+    @param status - lisp pitr enable if non-zero, else disable
+    @param locator_set_name -  name of the locator_set
+*/
+define show_lisp_pitr_reply {
+    u32 context;
+    i32 retval;
+    u8  status;
+    u8  locator_set_name[64];
+};
+
 /* Gross kludge, DGMS */
 define interface_name_renumber {
     u32 client_index;
@@ -2742,7 +2852,7 @@ define bridge_domain_add_del {
 */
 define bridge_domain_add_del_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
 };
 
 /** \brief L2 bridge domain request operational state details
@@ -2750,7 +2860,7 @@ define bridge_domain_add_del_reply {
     @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 {
+define bridge_domain_dump {
     u32 client_index;
     u32 context;
     u32 bd_id;
@@ -2765,7 +2875,7 @@ manual_java define bridge_domain_dump {
     @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 {
+define bridge_domain_details {
     u32 context;
     u32 bd_id;
     u8 flood;
@@ -2782,7 +2892,7 @@ manual_java define bridge_domain_details {
     @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 {
+define bridge_domain_sw_if_details {
     u32 context;
     u32 bd_id;
     u32 sw_if_index;
@@ -3217,7 +3327,7 @@ define ikev2_set_local_key_reply {
     @param router_address - Router IP address
     @param host_mac - Host MAC address
 */
-manual_java define dhcp_compl_event {
+define dhcp_compl_event {
     u32 client_index;
     u32 pid;
     u8 hostname[64];
@@ -3322,7 +3432,7 @@ define map_domain_dump {
   u32 context;
 };
 
-manual_java define map_domain_details {
+define map_domain_details {
   u32 context;
   u32 domain_index;
   u8 ip6_prefix[16];
@@ -3345,7 +3455,7 @@ define map_rule_dump {
   u32 domain_index;
 };
 
-manual_java define map_rule_details {
+define map_rule_details {
   u32 context;
   u8 ip6_dst[16];
   u16 psid;
@@ -3619,6 +3729,13 @@ define af_packet_delete_reply {
     @param rate_type - rate type
     @param round_type - rounding type
     @param type - policer algorithm
+    @param color_aware - 0=color-blind, 1=color-aware
+    @param conform_action_type - conform action type
+    @param conform_dscp - DSCP for conform mar-and-transmit action
+    @param exceed_action_type - exceed action type
+    @param exceed_dscp - DSCP for exceed mar-and-transmit action
+    @param violate_action_type - violate action type
+    @param violate_dscp - DSCP for violate mar-and-transmit action
 */
 define policer_add_del {
     u32 client_index;
@@ -3633,15 +3750,24 @@ define policer_add_del {
     u8 rate_type;
     u8 round_type;
     u8 type;
+    u8 color_aware;
+    u8 conform_action_type;
+    u8 conform_dscp;
+    u8 exceed_action_type;
+    u8 exceed_dscp;
+    u8 violate_action_type;
+    u8 violate_dscp;
 };
 
 /** \brief Add/del policer response
     @param context - sender context, to match reply w/ request
     @param retval - return value for request
+    @param policer_index - for add, returned index of the new policer
 */
 define policer_add_del_reply {
     u32 context;
     i32 retval;
+    u32 policer_index;
 };
 
 /** \brief Get list of policers
@@ -3668,6 +3794,12 @@ define policer_dump {
     @param rate_type - rate type
     @param round_type - rounding type
     @param type - policer algorithm
+    @param conform_action_type - conform action type
+    @param conform_dscp - DSCP for conform mar-and-transmit action
+    @param exceed_action_type - exceed action type
+    @param exceed_dscp - DSCP for exceed mar-and-transmit action
+    @param violate_action_type - violate action type
+    @param violate_dscp - DSCP for violate mar-and-transmit action
     @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
@@ -3679,7 +3811,7 @@ define policer_dump {
     @param extended_bucket - extended bucket
     @param last_update_time - last update time
 */
-manual_java define policer_details {
+define policer_details {
     u32 context;
 
     u8 name[64];
@@ -3690,6 +3822,12 @@ manual_java define policer_details {
     u8 rate_type;
     u8 round_type;
     u8 type;
+    u8 conform_action_type;
+    u8 conform_dscp;
+    u8 exceed_action_type;
+    u8 exceed_dscp;
+    u8 violate_action_type;
+    u8 violate_dscp;
     u8 single_rate;
     u8 color_aware;
     u32 scale;
@@ -3702,6 +3840,58 @@ manual_java define policer_details {
     u64 last_update_time;
 };
 
+/** \brief Set/unset policer classify 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 policer classify
+    @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 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 policer_classify_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 policer classify interface response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define policer_classify_set_interface_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief Get list of policer classify interfaces and tables
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param type - classify table type
+*/
+define policer_classify_dump {
+    u32 client_index;
+    u32 context;
+    u8 type;
+};
+
+/** \brief Policer iclassify operational state response.
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - software interface index
+    @param table_index - classify table index
+*/
+define policer_classify_details {
+    u32 context;
+    u32 sw_if_index;
+    u32 table_index;
+};
+
 /** \brief Create netmap
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -3775,7 +3965,7 @@ define mpls_gre_tunnel_dump {
     @param nlabels - number of resolved labels
     @param labels - resolved labels
 */
-manual_java define mpls_gre_tunnel_details {
+define mpls_gre_tunnel_details {
     u32 context;
     u32 tunnel_index;
 
@@ -3814,7 +4004,7 @@ define mpls_eth_tunnel_dump {
     @param nlabels - number of resolved labels
     @param labels - resolved labels
 */
-manual_java define mpls_eth_tunnel_details {
+define mpls_eth_tunnel_details {
     u32 context;
     u32 tunnel_index;
 
@@ -3847,7 +4037,7 @@ define mpls_fib_encap_dump {
     @param nlabels - number of resolved labels
     @param labels - resolved labels
 */
-manual_java define mpls_fib_encap_details {
+define mpls_fib_encap_details {
     u32 context;
 
     u32 fib_index;
@@ -3877,7 +4067,7 @@ define mpls_fib_decap_dump {
     @param tx_table_id - tx fib id
     @param swif_tag -
 */
-manual_java define mpls_fib_decap_details {
+define mpls_fib_decap_details {
     u32 context;
 
     u32 fib_index;
@@ -3904,9 +4094,9 @@ define classify_table_ids {
     @param count - number of ids returned in response
     @param ids - array of classify table ids
 */
-manual_java define classify_table_ids_reply {
+define classify_table_ids_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
     u32 count;
     u32 ids[count];
 };
@@ -3930,9 +4120,9 @@ define classify_table_by_interface {
     @param ip4_table_id - ip4 classify table index
     @param ip6_table_id - ip6 classify table index
 */
-manual_java define classify_table_by_interface_reply {
+define classify_table_by_interface_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
     u32 sw_if_index;
     u32 l2_table_id;
     u32 ip4_table_id;
@@ -3962,7 +4152,7 @@ define classify_table_info {
     @param miss_next_index - index of miss table
     @param mask[] - match mask
 */
-manual_java define classify_table_info_reply {
+define classify_table_info_reply {
     u32 context;
     i32 retval;
     u32 table_id;
@@ -3996,7 +4186,7 @@ define classify_session_dump {
     @param advance - advance value of session
     @param match[] - match value for session
 */ 
-manual_java define classify_session_details {
+define classify_session_details {
     u32 context;
     i32 retval;
     u32 table_id;
@@ -4033,7 +4223,7 @@ define ipfix_enable {
 */
 define ipfix_enable_reply {
     u32 context;
-    u32 retval;
+    i32 retval;
 };
 
 /** \brief IPFIX dump request
@@ -4054,7 +4244,7 @@ define ipfix_dump {
     @param path_mtu - Path MTU between exporter and collector
     @param template_interval - number of seconds after which to resend template
 */
-manual_java define ipfix_details {
+define ipfix_details {
     u32 context;
     u8 collector_address[16];
     u16 collector_port;
@@ -4063,3 +4253,155 @@ manual_java define ipfix_details {
     u32 path_mtu;
     u32 template_interval;
 };
+
+/** \brief Query relative index via node names
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param node_name - name of node to find relative index from
+    @param next_name - next node from node_name to find relative index of
+*/
+define get_next_index {
+    u32 client_index;
+    u32 context;
+    u8 node_name[64];
+    u8 next_name[64];
+};
+
+/** \brief Reply for get next node index
+    @param context - sender context which was passed in the request
+    @param retval - return value
+    @param next_index - index of the next_node
+*/
+define get_next_index_reply {
+    u32 context;
+    i32 retval;
+    u32 next_index;
+};
+
+/** \brief PacketGenerator create interface request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param interface_id - interface index
+*/
+define pg_create_interface {
+    u32 client_index;
+    u32 context;
+    u32 interface_id;
+};
+
+/** \brief PacketGenerator create interface response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define pg_create_interface_reply {
+    u32 context;
+    i32 retval;
+    u32 sw_if_index;
+};
+
+/** \brief PacketGenerator capture packets on given interface request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param interface_id - pg interface index
+    @param is_enabled - 1 if enabling streams, 0 if disabling
+    @param count - number of packets to be captured
+    @param pcap_file - pacp file name to store captured packets
+*/
+define pg_capture {
+    u32 client_index;
+    u32 context;
+    u32 interface_id;
+    u8  is_enabled;
+    u32 count;
+    u32 pcap_name_length;
+    u8  pcap_file_name[pcap_name_length];
+};
+
+/** \brief PacketGenerator capture packets response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define pg_capture_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief Enable / disable packet generator request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_enabled - 1 if enabling streams, 0 if disabling
+    @param stream - stream name to be enable/disabled, if not specified handle all streams 
+*/
+define pg_enable_disable {
+    u32 client_index;
+    u32 context;
+    u8  is_enabled;
+    u32 stream_name_length;
+    u8  stream_name[stream_name_length];
+};
+
+/** \brief Reply for enable / disable packet generator
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define pg_enable_disable_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief Configure IP source and L4 port-range check
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param is_ip6 - 1 if source address type is IPv6
+    @param is_add - 1 if add, 0 if delete
+    @param mask_length - mask length for address entry
+    @param address - array of address bytes
+    @param low_ports[32] - up to 32 low end of port range entries (must have corresponding high_ports entry)
+    @param high_ports[32] - up to 32 high end of port range entries (must have corresponding low_ports entry)
+    @param vrf_id - fib table/vrf id to associate the source and port-range check with
+    @note To specify a single port set low_port and high_port entry the same
+*/
+define ip_source_and_port_range_check_add_del {
+    u32 client_index;
+    u32 context;
+    u8  is_ipv6;
+    u8  is_add;
+    u8  mask_length;
+    u8  address[16];
+    u8  number_of_ranges;
+    u16 low_ports[32];
+    u16 high_ports[32];
+    u32 vrf_id;
+};
+
+/** \brief Configure IP source and L4 port-range check reply
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+*/
+define ip_source_and_port_range_check_add_del_reply {
+    u32 context;
+    i32 retval;
+};
+
+/** \brief Set interface source and L4 port-range request
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param interface_id - interface index
+    @param vrf_id - VRF associated with source and L4 port-range check
+*/
+define ip_source_and_port_range_check_interface_add_del {
+    u32 client_index;
+    u32 context;
+    u8  is_add;
+    u32 sw_if_index;
+    u32 vrf_id;
+};
+
+/** \brief Set interface source and L4 port-range response
+    @param context - sender context, to match reply w/ request
+    @param retval - return value for request
+*/
+define ip_source_and_port_range_check_interface_add_del_reply {
+    u32 context;
+    i32 retval;
+};