i32 retval;
};
+/** \brief Enable or Disable MPLS on and interface
+ @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
+ @param enable - if non-zero enable, else disable
+*/
+define sw_interface_set_mpls_enable
+{
+ u32 client_index;
+ u32 context;
+ u32 sw_if_index;
+ u8 enable;
+};
+
+/** \brief Reply for MPLS state on an interface
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+*/
+define sw_interface_set_mpls_enable_reply
+{
+ u32 context;
+ i32 retval;
+};
+
/** \brief Initialize a new tap interface with the given paramters
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
u8 is_ipv6;
u8 is_local;
u8 is_classify;
- /* Is last/not-last message in group of multiple add/del messages. */
u8 is_multipath;
+ u8 is_resolve_host;
+ u8 is_resolve_attached;
+ /* Is last/not-last message in group of multiple add/del messages. */
u8 not_last;
u8 next_hop_weight;
u8 dst_address_length;
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;
- u32 vpe_pid;
-};
-
/** \brief Process a vpe parser cli string request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
u32 context;
u64 cmd_in_shmem;
};
+define cli_inband
+{
+ u32 client_index;
+ u32 context;
+ u32 length;
+ u8 cmd[length];
+};
/** \brief vpe parser cli string response
@param context - sender context, to match reply w/ request
i32 retval;
u64 reply_in_shmem;
};
+define cli_inband_reply
+{
+ u32 context;
+ i32 retval;
+ u32 length;
+ u8 reply[length];
+};
/** \brief Set max allowed ARP or ip6 neighbor entries request
@param client_index - opaque cookie to identify the sender
u32 ip4_table_index;
u32 ip6_table_index;
u32 other_table_index;
+ u8 is_input;
};
/** \brief Set/unset l2 classification tables for an interface response
u32 context;
u8 is_add;
u8 is_ipv6;
+ u8 teb;
u8 src_address[16];
u8 dst_address[16];
u32 outer_fib_id;
u32 context;
u32 sw_if_index;
u8 is_ipv6;
+ u8 teb;
u8 src_address[16];
u8 dst_address[16];
u32 outer_fib_id;
@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
+ @param ls_name - locator set name
+ @param is_index_set - flag indicating whether ls_name or ls_index is set
*/
define lisp_locator_dump
{
u32 client_index;
u32 context;
- u32 locator_set_index;
- u8 filter;
+ u32 ls_index;
+ u8 ls_name[64];
+ u8 is_index_set;
};
/** \brief LISP locator_set status
};
/** \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
+ @param context - sender context, to match reply w/ request
+ @param ls_index - locator set index
+ @param ls_name - name of the locator set
*/
define lisp_locator_set_details
{
u32 context;
- u8 local;
- u32 locator_set_index;
- u8 locator_set_name[64];
+ u32 ls_index;
+ u8 ls_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
+ @param filter - filter type
+ Supported values:
+ 0: all locator sets
+ 1: local locator sets
+ 2: remote locator sets
*/
define lisp_locator_set_dump
{
/** \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 locator_set_index - index of locator_set, if ~0 then the mapping
+ is negative
+ @param action - negative map request action
@param is_local - local if non-zero, else remote
@param eid_type:
0 : ipv4
1 : ipv6
2 : mac
+ @param is_src_dst - EID is type of source/destination
@param eid - EID can be ip4, ip6 or mac
- @param prefix_len - prefix len
+ @param eid_prefix_len - prefix length
+ @param seid - source EID can be ip4, ip6 or mac
+ @param seid_prefix_len - source prefix length
@param vni - virtual network instance
@param ttl - time to live
@param authoritative - authoritative
{
u32 context;
u32 locator_set_index;
+ u8 action;
u8 is_local;
u8 eid_type;
+ u8 is_src_dst;
u32 vni;
u8 eid[16];
u8 eid_prefix_len;
+ u8 seid[16];
+ u8 seid_prefix_len;
u32 ttl;
u8 authoritative;
};
u8 filter;
};
-/** \brief Shows relationship between vni and vrf
- @param vrf - VRF index
+/** \brief Shows relationship between vni and vrf/bd
+ @param dp_table - VRF index or bridge domain index
@param vni - vitual network instance
*/
define lisp_eid_table_map_details
{
u32 context;
u32 vni;
- u32 vrf;
+ u32 dp_table;
};
/** \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
+ @param is_l2 - if set dump vni/bd mappings else vni/vrf
*/
define lisp_eid_table_map_dump
{
u32 client_index;
u32 context;
+ u8 is_l2;
};
/** \brief Dumps all VNIs used in mappings
@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 mac_ip - 0: resolution event, 1: mac/ip binding in bd
*/
define ip4_arp_event
{
u32 pid;
u32 sw_if_index;
u8 new_mac[6];
+ u8 mac_ip;
};
+/** \brief Register for ip6 nd 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 ip6 address of interest
+*/
+define want_ip6_nd_events
+{
+ u32 client_index;
+ u32 context;
+ u8 enable_disable;
+ u32 pid;
+ u8 address[16];
+};
+
+/** \brief Reply for ip6 nd resolution events registration
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+*/
+define want_ip6_nd_events_reply
+{
+ u32 context;
+ i32 retval;
+};
+
+/** \brief Tell client about an ip6 nd resolution or mac/ip event
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param pid - client pid registered to receive notification
+ @param sw_if_index - interface which received ARP packet
+ @param address - the exact ip6 address of interest
+ @param new_mac - the new mac address
+ @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
+*/
+define ip6_nd_event
+{
+ u32 client_index;
+ u32 context;
+ u32 pid;
+ u32 sw_if_index;
+ u8 address[16];
+ u8 new_mac[6];
+ u8 mac_ip;
+};
+
/** \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
i32 retval;
};
-/** \brief IOAM Trace : Set TRACE profile
+/** \brief IOAM enable : Enable in-band OAM
@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
+ @param trace_enable - iOAM Trace enabled or not flag
*/
-define trace_profile_add
+define ioam_enable
{
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;
+ u8 trace_enable;
u32 node_id;
};
-/** \brief Trace profile add / del response
+/** \brief iOAM 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
+define ioam_enable_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 trace_profile_apply_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Delete Trace Profile
+/** \brief iOAM disable
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param index - MAP Domain index
*/
-define trace_profile_del
+define ioam_disable
{
u32 client_index;
u32 context;
u16 id;
};
-/** \brief Trace profile add / del response
+/** \brief iOAM disable response
@param context - sender context, to match reply w/ request
@param retval - return value for request
*/
-define trace_profile_del_reply
+define ioam_disable_reply
{
u32 context;
i32 retval;
u8 match[match_length];
};
-/** \brief Enable and configure IPFIX exporter process request
+/** \brief 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 collector_port - port of 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
+ @param udp_checksum - UDP checksum calculation enable flag
*/
-define ipfix_enable
+define set_ipfix_exporter
{
u32 client_index;
u32 context;
u32 vrf_id;
u32 path_mtu;
u32 template_interval;
+ u8 udp_checksum;
};
-/** \brief Reply to IPFIX enable and configure request
+/** \brief Reply to IPFIX exporter configure request
@param context - sender context which was passed in the request
*/
-define ipfix_enable_reply
+define set_ipfix_exporter_reply
{
u32 context;
i32 retval;
};
-/** \brief IPFIX dump request
+/** \brief IPFIX exporter dump request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/
-define ipfix_dump
+define ipfix_exporter_dump
{
u32 client_index;
u32 context;
};
-/** \brief Reply to IPFIX dump request
+/** \brief Reply to IPFIX exporter 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 collector_port - port of 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
+ @param udp_checksum - UDP checksum calculation enable flag
*/
-define ipfix_details
+define ipfix_exporter_details
{
u32 context;
u8 collector_address[16];
u16 collector_port;
u8 src_address[16];
- u32 fib_index;
+ u32 vrf_id;
u32 path_mtu;
u32 template_interval;
+ u8 udp_checksum;
+};
+
+/** \brief IPFIX classify stream configure request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param domain_id - domain ID reported in IPFIX messages for classify stream
+ @param src_port - source port of UDP session for classify stream
+*/
+define set_ipfix_classify_stream {
+ u32 client_index;
+ u32 context;
+ u32 domain_id;
+ u16 src_port;
+};
+
+/** \brief IPFIX classify stream configure response
+ @param context - sender context, to match reply w/ request
+ @param retval - return value for request
+*/
+define set_ipfix_classify_stream_reply {
+ u32 context;
+ i32 retval;
+};
+
+/** \brief IPFIX classify stream dump request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
+define ipfix_classify_stream_dump {
+ u32 client_index;
+ u32 context;
+};
+
+/** \brief Reply to IPFIX classify stream dump request
+ @param context - sender context, to match reply w/ request
+ @param domain_id - domain ID reported in IPFIX messages for classify stream
+ @param src_port - source port of UDP session for classify stream
+*/
+define ipfix_classify_stream_details {
+ u32 context;
+ u32 domain_id;
+ u16 src_port;
+};
+
+/** \brief IPFIX add or delete classifier table request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param table_id - classifier table ID
+ @param ip_version - version of IP used in the classifier table
+ @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
+*/
+define ipfix_classify_table_add_del {
+ u32 client_index;
+ u32 context;
+ u32 table_id;
+ u8 ip_version;
+ u8 transport_protocol;
+ u8 is_add;
+};
+
+/** \brief IPFIX add classifier table response
+ @param context - sender context which was passed in the request
+*/
+define ipfix_classify_table_add_del_reply {
+ u32 context;
+ i32 retval;
+};
+
+/** \brief IPFIX classify tables dump request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+*/
+define ipfix_classify_table_dump {
+ u32 client_index;
+ u32 context;
+};
+
+/** \brief Reply to IPFIX classify tables dump request
+ @param context - sender context, to match reply w/ request
+ @param table_id - classifier table ID
+ @param ip_version - version of IP used in the classifier table
+ @param transport_protocol - transport protocol used in the classifier table or 255 for unspecified
+*/
+define ipfix_classify_table_details {
+ u32 context;
+ u32 table_id;
+ u8 ip_version;
+ u8 transport_protocol;
};
/** \brief Query relative index via node names
u8 src_address[4];
u8 dst_address[4];
};
+
+/** \brief Delete sub interface request
+ @param client_index - opaque cookie to identify the sender
+ @param context - sender context, to match reply w/ request
+ @param sw_if_index - sw index of the interface that was created by create_subif
+*/
+define delete_subif {
+ u32 client_index;
+ u32 context;
+ u32 sw_if_index;
+};
+
+/** \brief Delete sub interface response
+ @param context - sender context, to match reply w/ request
+ @param retval - return code for the request
+*/
+define delete_subif_reply {
+ u32 context;
+ i32 retval;
+};