@param vtr_tag1
@param vtr_tag2
*/
-manual_java define sw_interface_details {
+define sw_interface_details {
u32 context;
u32 sw_if_index;
};
/* works */
-manual_java define sw_interface_dump {
+define sw_interface_dump {
u32 client_index;
u32 context;
u8 name_filter_valid;
@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];
@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;
};
@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;
u32 first_sw_if_index;
u32 count;
- u8 data[0];
+ u8 data[count];
};
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];
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];
@param dst_address[] -
@param state
*/
-manual_java define oam_event {
+define oam_event {
u8 dst_address[4];
u8 state;
};
@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;
};
@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;
*/
define cli_reply {
u32 context;
- u32 retval;
+ i32 retval;
u64 reply_in_shmem;
};
*/
define l2_flags_reply {
u32 context;
- u32 retval;
+ i32 retval;
u32 resulting_feature_bitmap;
};
*/
define bridge_flags_reply {
u32 context;
- u32 retval;
+ i32 retval;
u32 resulting_feature_bitmap;
};
*/
define bd_ip_mac_add_del_reply {
u32 context;
- u32 retval;
+ i32 retval;
};
/** \brief Add/Delete classification table request
@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;
u64 local_cookie;
u64 remote_cookie;
u8 l2_sublayer_present;
+ u32 encap_vrf_id;
};
/** \brief l2tpv3 tunnel interface create response
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];
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];
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 {
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
@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];
@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];
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;
};
@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;
@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;
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];
@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
i32 retval;
};
-/** \brief add or delete lisp gpe maptunel
+/** \brief add or delete lisp gpe tunnel
@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 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
+ @param eid_type -
+ 0 : ipv4
+ 1 : ipv6
+ 2 : mac
+ @param rmt_eid - remote eid
+ @param lcl_eid - local eid
+ @param rmt_len - remote prefix len
+ @param lcl_len - local prefix len
+ @param vni - virtual network identifier
+ @param dp_table - vrf/bridge domain id
+ @param loc_num - number of locators
+ @param lcl_locs - array of local locators
+ @param rmt_locs - array of remote locators
*/
define lisp_gpe_add_del_fwd_entry {
u32 client_index;
u32 context;
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];
+ u8 eid_type;
+ u8 rmt_eid[16];
+ u8 lcl_eid[16];
+ u8 rmt_len;
+ u8 lcl_len;
+ u32 vni;
+ u32 dp_table;
+ u32 loc_num;
+ u8 lcl_locs[loc_num];
+ u8 rmt_locs[loc_num];
};
/** \brief Reply for gpe_fwd_entry add/del
u32 client_index;
u32 context;
u8 is_add;
- u32 table_id;
+ u8 is_l2;
+ u32 dp_table;
u32 vni;
};
@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
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
*/
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
@param context - sender context, to match reply w/ request
@param is_add - add address if non-zero, else delete
@param vni - virtual network instance
- @param action - negative mapping action
@param eid_type -
0 : ipv4
1 : ipv6
2 : mac
@param deid - destination EID
@param seid - source EID
- @param rloc_num - number of remote locators
- @param rlocs - remote locator data
*/
define lisp_add_del_adjacency {
u32 client_index;
u32 context;
u8 is_add;
u32 vni;
- u8 action;
u8 eid_type;
u8 deid[16];
u8 seid[16];
u8 deid_len;
u8 seid_len;
- u32 rloc_num;
- u8 rlocs[0];
};
/** \brief Reply for lisp_add_del_adjacency
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 {
u32 context;
u8 is_add;
u32 vni;
- u32 vrf;
+ u32 dp_table;
+ u8 is_l2;
};
/** \brief Reply for lisp_eid_table_add_del_map
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
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;
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;
u32 context;
};
-manual_java define lisp_gpe_tunnel_details {
+define lisp_gpe_tunnel_details {
u32 context;
u32 tunnels;
u8 is_ipv6;
@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];
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
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;
*/
define bridge_domain_add_del_reply {
u32 context;
- u32 retval;
+ i32 retval;
};
/** \brief L2 bridge domain request operational state details
@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;
@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;
@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;
@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];
u32 context;
};
-manual_java define map_domain_details {
+define map_domain_details {
u32 context;
u32 domain_index;
u8 ip6_prefix[16];
u32 domain_index;
};
-manual_java define map_rule_details {
+define map_rule_details {
u32 context;
u8 ip6_dst[16];
u16 psid;
@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;
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
@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
@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];
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;
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
@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;
u32 tunnel_dst;
u32 outer_fib_index;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls eth tunnel table
@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;
u8 tunnel_dst_mac[6];
u32 tx_sw_if_index;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls fib table
@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;
u32 dest;
u32 s_bit;
u32 nlabels;
- u32 labels[0];
+ u32 labels[nlabels];
};
/** \brief Dump mpls fib decap table
@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;
@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];
};
@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;
@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;
@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;
u32 match_length;
u8 match[match_length];
};
+
+/** \brief Enable and configure IPFIX exporter process request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param collector_address - address of IPFIX collector
+ @param collector_port - port of IPFIX IPFIX collector
+ @param src_address - address of IPFIX exporter
+ @param vrf_id - VRF / fib table ID
+ @param path_mtu - Path MTU between exporter and collector
+ @param template_interval - number of seconds after which to resend template
+*/
+define ipfix_enable {
+ u32 client_index;
+ u32 context;
+ u8 collector_address[16];
+ u16 collector_port;
+ u8 src_address[16];
+ u32 vrf_id;
+ u32 path_mtu;
+ u32 template_interval;
+};
+
+/** \brief Reply to IPFIX enable and configure request
+ @param context - sender context which was passed in the request
+*/
+define ipfix_enable_reply {
+ u32 context;
+ i32 retval;
+};
+
+/** \brief IPFIX dump request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
+define ipfix_dump {
+ u32 client_index;
+ u32 context;
+};
+
+/** \brief Reply to IPFIX dump request
+ @param context - sender context which was passed in the request
+ @param collector_address - address of IPFIX collector
+ @param collector_port - port of IPFIX IPFIX collector
+ @param src_address - address of IPFIX exporter
+ @param fib_index - fib table index
+ @param path_mtu - Path MTU between exporter and collector
+ @param template_interval - number of seconds after which to resend template
+*/
+define ipfix_details {
+ u32 context;
+ u8 collector_address[16];
+ u16 collector_port;
+ u8 src_address[16];
+ u32 fib_index;
+ 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 number_of_ranges - length of low_port and high_port arrays (must match)
+ @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 tcp_vrf_id - VRF associated with source and TCP port-range check
+ @param udp_vrf_id - VRF associated with source and TCP port-range check
+*/
+define ip_source_and_port_range_check_interface_add_del {
+ u32 client_index;
+ u32 context;
+ u8 is_add;
+ u32 sw_if_index;
+ u32 tcp_in_vrf_id;
+ u32 tcp_out_vrf_id;
+ u32 udp_in_vrf_id;
+ u32 udp_out_vrf_id;
+};
+
+/** \brief Set interface source and L4 port-range response
+ @param context - sender context, to match reply w/ request
+ @param retval - return value for request
+*/
+define ip_source_and_port_range_check_interface_add_del_reply {
+ u32 context;
+ i32 retval;
+};