-/** \brief L2 interface ethernet flow point filtering enable/disable request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface to enable/disable filtering on
- @param enable_disable - if non-zero enable filtering, else disable
-*/
-define l2_interface_efp_filter
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 enable_disable;
-};
-
-/** \brief L2 interface ethernet flow point filtering response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_interface_efp_filter_reply
-{
- u32 context;
- i32 retval;
-};
-
-define create_subif
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 sub_id;
-
- /* These fields map directly onto the subif template */
- u8 no_tags;
- u8 one_tag;
- u8 two_tags;
- u8 dot1ad; // 0 = dot1q, 1=dot1ad
- u8 exact_match;
- u8 default_sub;
- u8 outer_vlan_id_any;
- u8 inner_vlan_id_any;
- u16 outer_vlan_id;
- u16 inner_vlan_id;
-};
-
-define create_subif_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief show version
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define show_version
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief show version response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
- @param program - name of the program (vpe)
- @param version - version of the program
- @param build_directory - root of the workspace where the program was built
-*/
-define show_version_reply
-{
- u32 context;
- i32 retval;
- u8 program[32];
- u8 version[32];
- u8 build_date[32];
- u8 build_directory[256];
-};
-
-/* Gross kludge, DGMS */
-define interface_name_renumber
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 new_show_dev_instance;
-};
-
-define interface_name_renumber_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Register for ip4 arp resolution events
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable - 1 => register for events, 0 => cancel registration
- @param pid - sender's pid
- @param address - the exact ip4 address of interest
-*/
-define want_ip4_arp_events
-{
- u32 client_index;
- u32 context;
- u8 enable_disable;
- u32 pid;
- u32 address;
-};
-
-/** \brief Reply for interface events registration
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
-*/
-define want_ip4_arp_events_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Tell client about an ip4 arp resolution event
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param address - the exact ip4 address of interest
- @param pid - client pid registered to receive notification
- @param sw_if_index - interface which received ARP packet
- @param new_mac - the new mac address
- @param mac_ip - 0: resolution event, 1: mac/ip binding in bd
-*/
-define ip4_arp_event
-{
- u32 client_index;
- u32 context;
- u32 address;
- 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 Set/unset input ACL interface
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface to set/unset input ACL
- @param ip4_table_index - ip4 classify table index (~0 for skip)
- @param ip6_table_index - ip6 classify table index (~0 for skip)
- @param l2_table_index - l2 classify table index (~0 for skip)
- @param is_add - Set input ACL if non-zero, else unset
- Note: User is recommeneded to use just one valid table_index per call.
- (ip4_table_index, ip6_table_index, or l2_table_index)
-*/
-define input_acl_set_interface
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 ip4_table_index;
- u32 ip6_table_index;
- u32 l2_table_index;
- u8 is_add;
-};
-
-/** \brief Set/unset input ACL interface response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define input_acl_set_interface_reply
-{
- u32 context;
- i32 retval;
-};
-
-define get_node_graph
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief get_node_graph_reply
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
- @param reply_in_shmem - result from vlib_node_serialize, in shared
- memory. Process with vlib_node_unserialize, remember to switch
- heaps and free the result.
-*/
-
-define get_node_graph_reply
-{
- u32 context;
- i32 retval;
- u64 reply_in_shmem;
-};
-
-/** \brief IOAM enable : Enable in-band OAM
- @param id - profile id
- @param seqno - To enable Seqno Processing
- @param analyse - Enabling analysis of iOAM at decap node
- @param pow_enable - Proof of Work enabled or not flag
- @param trace_enable - iOAM Trace enabled or not flag
-*/
-define ioam_enable
-{
- u32 client_index;
- u32 context;
- u16 id;
- u8 seqno;
- u8 analyse;
- u8 pot_enable;
- u8 trace_enable;
- u32 node_id;
-};
-
-/** \brief iOAM Trace profile add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define ioam_enable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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 ioam_disable
-{
- u32 client_index;
- u32 context;
- u16 id;
-};
-
-/** \brief iOAM disable response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define ioam_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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;
-};
-
-/** \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;
-};
-
-/** \brief Punt traffic to the host
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_add - add punt if non-zero, else delete
- @param ipv - L3 protocol 4 - IPv4, 6 - IPv6, ~0 - All
- @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
- @param l4_port - TCP/UDP port to be punted
-*/
-define punt {
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 ipv;
- u8 l4_protocol;
- u16 l4_port;
-};
-
-/** \brief Reply to the punt request
- @param context - sender context which was passed in the request
- @param retval - return code of punt request
-*/
-define punt_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Feature path enable/disable request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - the interface
- @param enable - 1 = on, 0 = off
-*/
-define feature_enable_disable {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
- u8 arc_name[64];
- u8 feature_name[64];
-};
-
-/** \brief Reply to the eature path enable/disable request
- @param context - sender context which was passed in the request
- @param retval - return code for the request
-*/
-define feature_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-