called through a shared memory interface.
*/
+option version = "1.5.0";
+
+import "vpp/api/vpe_types.api";
+
/*
* Note: API placement cleanup in progress
* If you're looking for interface APIs, please
* see .../src/vnet/{interface.api,interface_api.c}
* IP APIs: see .../src/vnet/ip/{ip.api, ip_api.c}
- * TAP APIs: see .../src/vnet/unix/{tap.api, tap_api.c}
* VXLAN APIs: see .../src/vnet/vxlan/{vxlan.api, vxlan_api.c}
+ * GENEVE APIs: see .../src/vnet/geneve/{geneve.api, geneve_api.c}
* LLDP APIs: see .../src/vnet/lldp/{lldp.api, lldp_api.c}
* AF-PACKET APIs: see ... /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
* NETMAP APIs: see ... /src/vnet/devices/netmap/{netmap.api, netmap_api.c}
* L2TP APIs: see .../src/vnet/l2tp/{l2tp.api, l2tp_api.c}
* BFD APIs: see .../src/vnet/bfd/{bfd.api, bfd_api.c}
* IPSEC APIs: see .../src/vnet/ipsec/{ipsec.api, ipsec_api.c}
- * IPSEC-GRE APIs: see .../src/vnet/ipsec-gre/{ipsec_gre.api, ipsec_gre_api.c}
* LISP APIs: see .../src/vnet/lisp/{lisp.api, lisp_api.c}
* LISP-GPE APIs: see .../src/vnet/lisp-gpe/{lisp_gpe.api, lisp_gpe_api.c}
* SESSION APIs: .../vnet/session/{session.api session_api.c}
* SR APIs: see .../src/vnet/srv6/{sr.api, sr_api.c}
* CLASSIFY APIs: see ... /src/vnet/classify/{classify.api, classify_api.c}
* FLOW APIs: see ... /src/vnet/flow/{flow.api, flow_api.c}
- * DHCP APIs: see ... /src/vnet/dhcp/{dhcpk.api, dhcp_api.c}
+ * DHCP APIs: see ... /src/vnet/dhcp/{dhcp.api, dhcp_api.c}
* COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
* POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_api.c}
+ * BIER APIs: see ... /src/vnet/policer/{bier.api, bier_api.c}
*/
-/** \brief Create a new subinterface with the given vlan id
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - software index of the new vlan's parent interface
- @param vlan_id - vlan tag of the new interface
-*/
-define create_vlan_subif
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 vlan_id;
-};
-
-/** \brief Reply for the vlan subinterface create request
- @param context - returned sender context, to match reply w/ request
- @param retval - return code
- @param sw_if_index - software index allocated for the new subinterface
-*/
-define create_vlan_subif_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \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
-*/
-autoreply define sw_interface_set_mpls_enable
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
-};
-
-/** \brief Proxy ARP add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param vrf_id - VRF / Fib table ID
- @param is_add - 1 if adding the Proxy ARP range, 0 if deleting
- @param low_address[4] - Low address of the Proxy ARP range
- @param hi_address[4] - High address of the Proxy ARP range
-*/
-autoreply define proxy_arp_add_del
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 is_add;
- u8 low_address[4];
- u8 hi_address[4];
-};
-
-/** \brief Proxy ARP add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - Which interface to enable / disable Proxy Arp on
- @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable
-*/
-autoreply define proxy_arp_intfc_enable_disable
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- /* 1 = on, 0 = off */
- u8 enable_disable;
-};
-
-/** \brief Reset VRF (remove all routes etc) request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4
- @param vrf_id - ID of th FIB table / VRF to reset
-*/
-autoreply define reset_vrf
-{
- u32 client_index;
- u32 context;
- u8 is_ipv6;
- u32 vrf_id;
-};
-
-/** \brief Want Stats, register for stats updates
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable - 1 = enable stats, 0 = disable
- @param pid - pid of process requesting stats updates
-*/
-autoreply define want_stats
-{
- u32 client_index;
- u32 context;
- u32 enable_disable;
- u32 pid;
-};
-
-typeonly manual_print manual_endian define ip4_fib_counter
-{
- u32 address;
- u8 address_length;
- u64 packets;
- u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip4_fib_counters
-{
- u32 vrf_id;
- u32 count;
- vl_api_ip4_fib_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip4_nbr_counter
-{
- u32 address;
- u8 link_type;
- u64 packets;
- u64 bytes;
-};
-
-/**
- * @brief Per-neighbour (i.e. per-adjacency) coutners
- * @param count The size of the array of counters
- * @param sw_if_index The interface the adjacency is on
- * @param begin Flag to indicate this is the first set of stats for this
- * interface. If this flag is not set the it is a continuation of
- * stats for this interface
- * @param c counters
- */
-manual_print manual_endian define vnet_ip4_nbr_counters
-{
- u32 count;
- u32 sw_if_index;
- u8 begin;
- vl_api_ip4_nbr_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip6_fib_counter
-{
- u64 address[2];
- u8 address_length;
- u64 packets;
- u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip6_fib_counters
-{
- u32 vrf_id;
- u32 count;
- vl_api_ip6_fib_counter_t c[count];
-};
-
-typeonly manual_print manual_endian define ip6_nbr_counter
-{
- u64 address[2];
- u8 link_type;
- u64 packets;
- u64 bytes;
-};
-
-manual_print manual_endian define vnet_ip6_nbr_counters
-{
- u32 count;
- u32 sw_if_index;
- u8 begin;
- vl_api_ip6_nbr_counter_t c[count];
-};
-
-/** \brief Request for a single block of summary stats
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define vnet_get_summary_stats
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply for vnet_get_summary_stats request
- @param context - sender context, to match reply w/ request
- @param retval - return code for request
- @param total_pkts -
- @param total_bytes -
- @param vector_rate -
-*/
-define vnet_get_summary_stats_reply
-{
- u32 context;
- i32 retval;
- u64 total_pkts[2];
- u64 total_bytes[2];
- f64 vector_rate;
-};
-
-/** \brief OAM event structure
- @param dst_address[] -
- @param state
-*/
-define oam_event
-{
- u8 dst_address[4];
- u8 state;
-};
-
-/** \brief Want OAM events request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param enable_disable- enable if non-zero, else disable
- @param pid - pid of the requesting process
-*/
-autoreply define want_oam_events
-{
- u32 client_index;
- u32 context;
- u32 enable_disable;
- u32 pid;
-};
-
-/** \brief OAM add / del target request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param vrf_id - vrf_id of the target
- @param src_address[] - source address to use for the updates
- @param dst_address[] - destination address of the target
- @param is_add - add target if non-zero, else delete
-*/
-autoreply define oam_add_del
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 src_address[4];
- u8 dst_address[4];
- u8 is_add;
-};
-
-/** \brief Reset fib table request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param vrf_id - vrf/table id of the fib table to reset
- @param is_ipv6 - an ipv6 fib to reset if non-zero, else ipv4
-*/
-autoreply define reset_fib
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 is_ipv6;
-};
-
-/** \brief Create loopback interface request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param mac_address - mac addr to assign to the interface if none-zero
-*/
-define create_loopback
-{
- u32 client_index;
- u32 context;
- u8 mac_address[6];
-};
-
-/** \brief Create loopback interface response
- @param context - sender context, to match reply w/ request
- @param sw_if_index - sw index of the interface that was created
- @param retval - return code for the request
-*/
-define create_loopback_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief Create loopback interface instance request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param mac_address - mac addr to assign to the interface if none-zero
- @param is_specified - if non-0, a specific user_instance is being requested
- @param user_instance - requested instance, ~0 => dynamically allocate
-*/
-define create_loopback_instance
-{
- u32 client_index;
- u32 context;
- u8 mac_address[6];
- u8 is_specified;
- u32 user_instance;
-};
-
-/** \brief Create loopback interface instance response
- @param context - sender context, to match reply w/ request
- @param sw_if_index - sw index of the interface that was created
- @param retval - return code for the request
-*/
-define create_loopback_instance_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief Delete loopback 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
-*/
-autoreply define delete_loopback
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
/** \brief Control ping from client to api server request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
{
u32 client_index;
u32 context;
- u32 length;
- u8 cmd[length];
+ string cmd;
};
/** \brief vpe parser cli string response
{
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
- @param context - sender context, to match reply w/ request
- @param is_ipv6 - neighbor limit if non-zero, else ARP limit
- @param arp_neighbor_limit - the new limit, defaults are ~ 50k
-*/
-autoreply define set_arp_neighbor_limit
-{
- u32 client_index;
- u32 context;
- u8 is_ipv6;
- u32 arp_neighbor_limit;
-};
-
-/** \brief L2 interface patch add / del request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param rx_sw_if_index - receive side interface
- @param tx_sw_if_index - transmit side interface
- @param is_add - if non-zero set up the interface patch, else remove it
-*/
-autoreply define l2_patch_add_del
-{
- u32 client_index;
- u32 context;
- u32 rx_sw_if_index;
- u32 tx_sw_if_index;
- u8 is_add;
-};
-
-/** \brief Interface set vpath request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param sw_if_index - interface used to reach neighbor
- @param enable - if non-zero enable, else disable
-*/
-autoreply define sw_interface_set_vpath
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
-};
-
-/** \brief Set L2 XConnect between two interfaces request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param rx_sw_if_index - Receive interface index
- @param tx_sw_if_index - Transmit interface index
- @param enable - enable xconnect if not 0, else set to L3 mode
-*/
-autoreply define sw_interface_set_l2_xconnect
-{
- u32 client_index;
- u32 context;
- u32 rx_sw_if_index;
- u32 tx_sw_if_index;
- u8 enable;
-};
-
-/** \brief Interface bridge mode request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param rx_sw_if_index - the interface
- @param bd_id - bridge domain id
- @param bvi - Setup interface as a bvi, bridge mode only
- @param shg - Shared horizon group, for bridge mode only
- @param enable - Enable beige mode if not 0, else set to L3 mode
-*/
-autoreply define sw_interface_set_l2_bridge
-{
- u32 client_index;
- u32 context;
- u32 rx_sw_if_index;
- u32 bd_id;
- u8 shg;
- u8 bvi;
- u8 enable;
-};
-
-/** \brief Set bridge domain ip to mac entry request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param bd_id - the bridge domain to set the flags for
- @param is_add - if non-zero, add the entry, else clear it
- @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
- @param mac_address - MAC address
- @param
-*/
-autoreply define bd_ip_mac_add_del
-{
- u32 client_index;
- u32 context;
- u32 bd_id;
- u8 is_add;
- u8 is_ipv6;
- u8 ip_address[16];
- u8 mac_address[6];
-};
-
-/** \brief Set/unset the classification table for an interface request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param is_ipv6 - ipv6 if non-zero, else ipv4
- @param sw_if_index - interface to associate with the table
- @param table_index - index of the table, if ~0 unset the table
-*/
-autoreply define classify_set_interface_ip_table
-{
- u32 client_index;
- u32 context;
- u8 is_ipv6;
- u32 sw_if_index;
- u32 table_index; /* ~0 => off */
-};
-
-/** \brief Set/unset l2 classification tables for an interface 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 set/unset tables for
- @param ip4_table_index - ip4 index, use ~0 for all 3 indexes to unset
- @param ip6_table_index - ip6 index
- @param other_table_index - other index
-*/
-autoreply define classify_set_interface_l2_tables
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- /* 3 x ~0 => off */
- u32 ip4_table_index;
- u32 ip6_table_index;
- u32 other_table_index;
- u8 is_input;
+ string reply;
};
/** \brief Get node index using name request
u32 next_index;
};
-/** \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
-*/
-autoreply define l2_interface_efp_filter
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 enable_disable;
-};
-
-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
{
u32 context;
i32 retval;
- u8 program[32];
- u8 version[32];
- u8 build_date[32];
- u8 build_directory[256];
+ string program [limit = 32];
+ string version [limit = 32];
+ string build_date [limit = 32];
+ string build_directory [limit = 256];
};
-/* Gross kludge, DGMS */
-autoreply define interface_name_renumber
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u32 new_show_dev_instance;
-};
-/** \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
+/** \brief show_threads display the information about vpp
+ threads running on system along with their process id,
+ cpu id, physical core and cpu socket.
*/
-autoreply define want_ip4_arp_events
+define show_threads
{
u32 client_index;
u32 context;
- u8 enable_disable;
- u32 pid;
- u32 address;
-};
-
-/** \brief Tell client about an ip4 arp resolution event
- @param client_index - opaque cookie to identify the sender
- @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 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
+/** \brief thread data
+ @param id - thread index
+ @param name - thread name i.e. vpp_main or vpp_wk_0
+ @param type - thread type i.e. workers or stats
+ @param pid - thread Process Id
+ @param cpu_id - thread pinned to cpu.
+ "CPUs or Logical cores are the number of physical cores times
+ the number of threads that can run on each core through
+ the use of hyperthreading." (from unix.stackexchange.com)
+ @param core - thread pinned to actual physical core.
+ @param cpu_socket - thread is running on which cpu socket.
*/
-autoreply define want_ip6_nd_events
+typeonly define thread_data
{
- u32 client_index;
- u32 context;
- u8 enable_disable;
+ u32 id;
+ u8 name[64];
+ u8 type[64];
u32 pid;
- u8 address[16];
+ u32 cpu_id;
+ u32 core;
+ u32 cpu_socket;
};
-/** \brief Tell client about an ip6 nd resolution or mac/ip event
- @param client_index - opaque cookie to identify the sender
- @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 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)
+/** \brief show_threads_reply
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+ @param count - number of threads in thread_data array
+ @param thread_data - array of thread data
*/
-autoreply define input_acl_set_interface
+define show_threads_reply
{
- u32 client_index;
u32 context;
- u32 sw_if_index;
- u32 ip4_table_index;
- u32 ip6_table_index;
- u32 l2_table_index;
- u8 is_add;
+ i32 retval;
+ u32 count;
+ vl_api_thread_data_t thread_data[count];
};
define get_node_graph
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
-*/
-autoreply 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 disable
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param index - MAP Domain index
-*/
-autoreply define ioam_disable
-{
- u32 client_index;
- u32 context;
- u16 id;
-};
-
/** \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
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
-{
+define log_dump {
u32 client_index;
u32 context;
- u32 interface_id;
+ vl_api_timestamp_t start_timestamp;
};
-/** \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
-{
+define log_details {
u32 context;
- i32 retval;
- u32 sw_if_index;
+ vl_api_timestamp_t timestamp;
+ vl_api_log_level_t level;
+ string msg_class [limit=32];
+ string message [limit=256];
};
-/** \brief PacketGenerator capture packets on given interface request
+/** \brief Show the current system timestamp.
@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
*/
-autoreply define pg_capture
+define show_vpe_system_time
{
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 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
+/** \brief Reply for show vpe system time.
+ @param context - sender context which was passed in the request
+ @param retval - return value
+ @param vpe_system_time - the time in seconds since epoch of the host system.
*/
-autoreply define pg_enable_disable
+define show_vpe_system_time_reply
{
- u32 client_index;
u32 context;
- u8 is_enabled;
- u32 stream_name_length;
- u8 stream_name[stream_name_length];
+ i32 retval;
+ vl_api_timestamp_t vpe_system_time;
};
-/** \brief Configure IP source and L4 port-range check
+/** \brief f64 types are not standardized across the wire. Sense wire format in each direction by sending the f64 value 1.0.
@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
+ @param f64_one - The constant of 1.0. If you send a different value, expect an rv=VNET_API_ERROR_API_ENDIAN_FAILED.
*/
-autoreply define ip_source_and_port_range_check_add_del
+define get_f64_endian_value
{
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;
+ f64 f64_one [default=1.0];
};
-/** \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
+/** \brief get_f64_endian_value reply message
+ @param context - sender context which was passed in the request
+ @param retval - return value - VNET_API_ERROR_API_ENDIAN_FAILED if f64_one != 1.0
+ @param f64_one_result - The value of 'f64 1.0'
*/
-autoreply define ip_source_and_port_range_check_interface_add_del
+define get_f64_endian_value_reply
{
- 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;
+ u32 retval;
+ f64 f64_one_result;
};
-/** \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
+/** \brief Verify f64 wire format by sending a value and receiving the value + 1.0
+ @param client_index - opaque cookie to identify the sender.
+ @param context - sender context, to match reply w/ request.
+ @param f64_value - The value you want to test. Default: 1.0.
*/
-autoreply define delete_subif {
+define get_f64_increment_by_one
+{
u32 client_index;
u32 context;
- u32 sw_if_index;
+ f64 f64_value [default=1.0];
};
-/** \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
-*/
-autoreply define punt {
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 ipv;
- u8 l4_protocol;
- u16 l4_port;
-};
-
-/** \brief Punt traffic to the host via socket
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param header_version - expected meta data header version (currently 1)
- @param is_ip4 - L3 protocol 1 - IPv4, 0 - IPv6
- @param l4_protocol - L4 protocol to be punted, only UDP (0x11) is supported
- @param l4_port - TCP/UDP port to be punted
+/** \brief get_f64_increment_by_one reply
+ @param client_index - opaque cookie to identify the sender.
+ @param context - sender context, to match reply w/ request.
+ @param f64_value - The input f64_value incremented by 1.0.
*/
-define punt_socket_register {
- u32 client_index;
- u32 context;
- u32 header_version;
- u8 is_ip4;
- u8 l4_protocol;
- u16 l4_port;
- u8 pathname[64];
-};
-
-define punt_socket_register_reply
+define get_f64_increment_by_one_reply
{
u32 context;
- i32 retval;
- u8 pathname[64];
-};
-
-autoreply define punt_socket_deregister {
- u32 client_index;
- u32 context;
- u8 is_ip4;
- u8 l4_protocol;
- u16 l4_port;
-};
-
-/** \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
-*/
-autoreply define feature_enable_disable {
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
- u8 arc_name[64];
- u8 feature_name[64];
+ u32 retval;
+ f64 f64_value;
};
/*