X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fapi%2Fvpe.api;h=3db34fec3d934e5b36a2d447e1d1745704970729;hb=933fcf489;hp=a9b34d1f6f31dd9360de4542633dbe50eb39d5d9;hpb=d2c97d988b2fbc28f0905d1826b428967d09348a;p=vpp.git diff --git a/src/vpp/api/vpe.api b/src/vpp/api/vpe.api index a9b34d1f6f3..3db34fec3d9 100644 --- a/src/vpp/api/vpe.api +++ b/src/vpp/api/vpe.api @@ -16,18 +16,22 @@ /** \file This file defines vpe control-plane API messages which are generally - called through a shared memory interface. + called through a shared memory interface. */ -/* +option version = "1.6.1"; + +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} * VHOST-USER APIs: see .../vnet/devices/virtio/{vhost_user.api, vhost_user_api.c} * VXLAN GPE APIs: see .../src/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c} * GRE APIs: see .../src/vnet/gre/{gre.api, gre_api.c} @@ -35,1787 +39,333 @@ * 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} * MPLS APIs: see .../src/vnet/mpls/{mpls.api, mpls_api.c} - * SR APIs: see .../src/vnet/sr/{sr.api, sr_api.c} - * DPDK APIs: see ... /src/vnet/devices/dpdk/{dpdk.api, dpdk_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/{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 -*/ -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 Proxy ARP add / del request +/** \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 - @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 */ -define proxy_arp_add_del +define control_ping { u32 client_index; u32 context; - u32 vrf_id; - u8 is_add; - u8 low_address[4]; - u8 hi_address[4]; -}; - -/** \brief Reply for proxy arp add / del request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define proxy_arp_add_del_reply -{ - u32 context; - i32 retval; }; -/** \brief Proxy ARP add / del request +/** \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 sw_if_index - Which interface to enable / disable Proxy Arp on - @param enable_disable - 1 to enable Proxy ARP on interface, 0 to disable -*/ -define proxy_arp_intfc_enable_disable -{ - u32 client_index; - u32 context; - u32 sw_if_index; - /* 1 = on, 0 = off */ - u8 enable_disable; -}; - -/** \brief Reply for Proxy ARP interface enable / disable request - @param context - returned sender context, to match reply w/ request - @param retval - return code + @param retval - return code for the request + @param vpe_pid - the pid of the vpe, returned by the server */ -define proxy_arp_intfc_enable_disable_reply +define control_ping_reply { u32 context; i32 retval; -}; - -/** \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 -*/ -define reset_vrf -{ u32 client_index; - u32 context; - u8 is_ipv6; - u32 vrf_id; -}; - -/** \brief Reply for Reset VRF request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define reset_vrf_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Is Address Reachable request - DISABLED - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param next_hop_sw_if_index - index of interface used to get to next hop - @param is_ipv6 - 1 for IPv6, 0 for IPv4 - @param is_error - address not found or does not match intf - @param address[] - Address in question -*/ -define is_address_reachable -{ - u32 client_index; /* (api_main_t *) am->my_client_index */ - u32 context; - u32 next_hop_sw_if_index; - u8 is_known; /* on reply, this is the answer */ - u8 is_ipv6; - u8 is_error; /* address not found or does not match intf */ - u8 address[16]; + u32 vpe_pid; }; -/** \brief Want Stats, register for stats updates +/** \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 - @param enable_disable - 1 = enable stats, 0 = disable - @param pid - pid of process requesting stats updates + @param cmd_in_shmem - pointer to cli command string */ -define want_stats +define cli { u32 client_index; u32 context; - u32 enable_disable; - u32 pid; -}; - -/** \brief Reply for Want Stats request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define want_stats_reply -{ - u32 context; - i32 retval; -}; - -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 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]; + u64 cmd_in_shmem; }; - -/** \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 +define cli_inband { u32 client_index; u32 context; + string cmd[]; }; -/** \brief Reply for vnet_get_summary_stats request +/** \brief vpe parser cli string response @param context - sender context, to match reply w/ request @param retval - return code for request - @param total_pkts - - @param total_bytes - - @param vector_rate - + @param reply_in_shmem - Reply string from cli processing if any */ -define vnet_summary_stats_reply +define cli_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 -*/ -define want_oam_events -{ - u32 client_index; - u32 context; - u32 enable_disable; - u32 pid; + u64 reply_in_shmem; }; - -/** \brief Want OAM events response - @param context - sender context, to match reply w/ request - @param retval - return code for the want oam stats request -*/ -define want_oam_events_reply +define cli_inband_reply { u32 context; i32 retval; + string reply[]; }; -/** \brief OAM add / del target request +/** \brief Get node index using name 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 + @param node_name[] - name of the node */ -define oam_add_del +define get_node_index { u32 client_index; u32 context; - u32 vrf_id; - u8 src_address[4]; - u8 dst_address[4]; - u8 is_add; + string node_name[64]; }; -/** \brief OAM add / del target response +/** \brief Get node index using name request @param context - sender context, to match reply w/ request - @param retval - return code of the request + @param retval - return code for the request + @param node_index - index of the desired node if found, else ~0 */ -define oam_add_del_reply +define get_node_index_reply { u32 context; i32 retval; + u32 node_index; }; -/** \brief Reset fib table request +/** \brief Set the next node for a given node 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 + @param node_name[] - node to add the next node to + @param next_name[] - node to add as the next node */ -define reset_fib +define add_node_next { u32 client_index; u32 context; - u32 vrf_id; - u8 is_ipv6; + string node_name[64]; + string next_name[64]; }; -/** \brief Reset fib response +/** \brief IP Set the next node for a given node response @param context - sender context, to match reply w/ request - @param retval - return code for the reset bfib request + @param retval - return code for the add next node request + @param next_index - the index of the next node if success, else ~0 */ -define reset_fib_reply +define add_node_next_reply { u32 context; i32 retval; + u32 next_index; }; -/** \brief DHCP Proxy config add / del request +/** \brief show version @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param vrf_id - vrf id - @param if_ipv6 - ipv6 if non-zero, else ipv4 - @param is_add - add the config if non-zero, else delete - @param insert_circuit_id - option82 suboption 1 fib number - @param dhcp_server[] - server address - @param dhcp_src_address[] - */ -define dhcp_proxy_config +define show_version { u32 client_index; u32 context; - u32 vrf_id; - u8 is_ipv6; - u8 is_add; - u8 insert_circuit_id; - u8 dhcp_server[16]; - u8 dhcp_src_address[16]; }; -/** \brief DHCP Proxy config response +/** \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 dhcp_proxy_config_reply +define show_version_reply { u32 context; i32 retval; + string program[32]; + string version[32]; + string build_date[32]; + string build_directory[256]; }; -/** \brief DHCP Proxy set / unset vss request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param tbl_id - table id - @param oui - first part of vpn id - @param fib_id - second part of vpn id - @param is_ipv6 - ip6 if non-zero, else ip4 - @param is_add - set vss if non-zero, else delete -*/ -define dhcp_proxy_set_vss -{ - u32 client_index; - u32 context; - u32 tbl_id; - u32 oui; - u32 fib_id; - u8 is_ipv6; - u8 is_add; -}; -/** \brief DHCP proxy set / unset vss response - @param context - sender context, to match reply w/ request - @param retval - return code for the request +/** \brief show_threads display the information about vpp + threads running on system along with their process id, + cpu id, physical core and cpu socket. */ -define dhcp_proxy_set_vss_reply +define show_threads { + u32 client_index; u32 context; - i32 retval; }; -/** \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 +/** \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. */ -define create_loopback +typedef thread_data { - u32 client_index; - u32 context; - u8 mac_address[6]; + u32 id; + string name[64]; + string type[64]; + u32 pid; + u32 cpu_id; + u32 core; + u32 cpu_socket; }; -/** \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 +/** \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 */ -define create_loopback_reply +define show_threads_reply { u32 context; i32 retval; - u32 sw_if_index; + u32 count; + vl_api_thread_data_t thread_data[count]; }; -/** \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 -*/ -define delete_loopback +define get_node_graph { u32 client_index; u32 context; - u32 sw_if_index; }; -/** \brief Delete loopback interface response - @param context - sender context, to match reply w/ request - @param retval - return code for the request +/** \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 delete_loopback_reply + +define get_node_graph_reply { u32 context; i32 retval; + u64 reply_in_shmem; }; -/** \brief Control ping from client to api server request +/** \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 control_ping +define get_next_index { u32 client_index; u32 context; + string node_name[64]; + string next_name[64]; }; -/** \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 +/** \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 control_ping_reply +define get_next_index_reply { u32 context; i32 retval; - u32 client_index; - u32 vpe_pid; + u32 next_index; }; -/** \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 - @param cmd_in_shmem - pointer to cli command string -*/ -define cli_request -{ - u32 client_index; - u32 context; - u64 cmd_in_shmem; -}; -define cli_inband -{ +define log_dump { u32 client_index; u32 context; - u32 length; - u8 cmd[length]; + vl_api_timestamp_t start_timestamp; }; -/** \brief vpe parser cli string response - @param context - sender context, to match reply w/ request - @param retval - return code for request - @param reply_in_shmem - Reply string from cli processing if any -*/ -define cli_reply -{ - u32 context; - i32 retval; - u64 reply_in_shmem; -}; -define cli_inband_reply -{ +define log_details { u32 context; - i32 retval; - u32 length; - u8 reply[length]; + vl_api_timestamp_t timestamp; + vl_api_log_level_t level; + string msg_class[32]; + string message[256]; }; -/** \brief Set max allowed ARP or ip6 neighbor entries 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 is_ipv6 - neighbor limit if non-zero, else ARP limit - @param arp_neighbor_limit - the new limit, defaults are ~ 50k */ -define set_arp_neighbor_limit +define show_vpe_system_time { u32 client_index; u32 context; - u8 is_ipv6; - u32 arp_neighbor_limit; }; -/** \brief Set max allowed ARP or ip6 neighbor entries response - @param context - sender context, to match reply w/ request - @param retval - return code for request +/** \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. */ -define set_arp_neighbor_limit_reply +define show_vpe_system_time_reply { u32 context; i32 retval; + vl_api_timestamp_t vpe_system_time; }; -/** \brief L2 interface patch add / del request +/** \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 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 + @param f64_one - The constant of 1.0. If you send a different value, expect an rv=VNET_API_ERROR_API_ENDIAN_FAILED. */ -define l2_patch_add_del +define get_f64_endian_value { u32 client_index; u32 context; - u32 rx_sw_if_index; - u32 tx_sw_if_index; - u8 is_add; + f64 f64_one [default=1.0]; }; -/** \brief L2 interface patch add / del response - @param context - sender context, to match reply w/ request - @param retval - return code for the request +/** \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' */ -define l2_patch_add_del_reply +define get_f64_endian_value_reply { u32 context; - i32 retval; + u32 retval; + f64 f64_one_result; }; -/** \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 +/** \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. */ -define sw_interface_set_vpath +define get_f64_increment_by_one { u32 client_index; u32 context; - u32 sw_if_index; - u8 enable; + f64 f64_value [default=1.0]; }; -/** \brief Interface set vpath response - @param context - sender context, to match reply w/ request - @param retval - return code for the request +/** \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 sw_interface_set_vpath_reply +define get_f64_increment_by_one_reply { u32 context; - i32 retval; -}; - -/** \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 -*/ -define sw_interface_set_l2_xconnect -{ - u32 client_index; - u32 context; - u32 rx_sw_if_index; - u32 tx_sw_if_index; - u8 enable; -}; - -/** \brief Set L2 XConnect response - @param context - sender context, to match reply w/ request - @param retval - L2 XConnect request return code -*/ -define sw_interface_set_l2_xconnect_reply -{ - u32 context; - i32 retval; -}; - -/** \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 -*/ -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 Interface bridge mode response - @param context - sender context, to match reply w/ request - @param retval - Bridge mode request return code -*/ -define sw_interface_set_l2_bridge_reply -{ - u32 context; - i32 retval; -}; - -/** \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 -*/ -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 bridge domain ip to mac entry response - @param context - sender context, to match reply w/ request - @param retval - return code for the set bridge flags request -*/ -define bd_ip_mac_add_del_reply -{ - u32 context; - i32 retval; -}; - -/** \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 -*/ -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 interface classification table response - @param context - sender context, to match reply w/ request - @param retval - return code -*/ -define classify_set_interface_ip_table_reply -{ - u32 context; - i32 retval; -}; - -/** \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 -*/ -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; -}; - -/** \brief Set/unset l2 classification tables for an interface response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define classify_set_interface_l2_tables_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Get node index using name request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param node_name[] - name of the node -*/ -define get_node_index -{ - u32 client_index; - u32 context; - u8 node_name[64]; -}; - -/** \brief Get node index using name request - @param context - sender context, to match reply w/ request - @param retval - return code for the request - @param node_index - index of the desired node if found, else ~0 -*/ -define get_node_index_reply -{ - u32 context; - i32 retval; - u32 node_index; -}; - -/** \brief Set the next node for a given node request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param node_name[] - node to add the next node to - @param next_name[] - node to add as the next node -*/ -define add_node_next -{ - u32 client_index; - u32 context; - u8 node_name[64]; - u8 next_name[64]; -}; - -/** \brief IP Set the next node for a given node response - @param context - sender context, to match reply w/ request - @param retval - return code for the add next node request - @param next_index - the index of the next node if success, else ~0 -*/ -define add_node_next_reply -{ - u32 context; - i32 retval; - u32 next_index; -}; - -/** \brief DHCP Proxy config 2 add / del request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param rx_vrf_id - receive vrf id - @param server_vrf_id - server vrf id - @param if_ipv6 - ipv6 if non-zero, else ipv4 - @param is_add - add the config if non-zero, else delete - @param insert_circuit_id - option82 suboption 1 fib number - @param dhcp_server[] - server address - @param dhcp_src_address[] - -*/ -define dhcp_proxy_config_2 -{ - u32 client_index; - u32 context; - u32 rx_vrf_id; - u32 server_vrf_id; - u8 is_ipv6; - u8 is_add; - u8 insert_circuit_id; - u8 dhcp_server[16]; - u8 dhcp_src_address[16]; -}; - -/** \brief DHCP Proxy config 2 add / del response - @param context - sender context, to match reply w/ request - @param retval - return code for request -*/ -define dhcp_proxy_config_2_reply -{ - u32 context; - i32 retval; -}; - -/** \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; -}; - -/** \brief L2 interface vlan tag rewrite configure request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface the operation is applied to - @param vtr_op - Choose from l2_vtr_op_t enum values - @param push_dot1q - first pushed flag dot1q id set, else dot1ad - @param tag1 - Needed for any push or translate vtr op - @param tag2 - Needed for any push 2 or translate x-2 vtr ops -*/ -define l2_interface_vlan_tag_rewrite -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u32 vtr_op; - u32 push_dot1q; // ethertype of first pushed tag is dot1q/dot1ad - u32 tag1; // first pushed tag - u32 tag2; // second pushed tag -}; - -/** \brief L2 interface vlan tag rewrite response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define l2_interface_vlan_tag_rewrite_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 DHCP Client config 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 - index of the interface for DHCP client - @param hostname - hostname - @param is_add - add the config if non-zero, else delete - @param want_dhcp_event - DHCP event sent to the sender - via dhcp_compl_event API message if non-zero - @param pid - sender's pid -*/ -define dhcp_client_config -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 hostname[64]; - u8 is_add; - u8 want_dhcp_event; - u32 pid; -}; - -/** \brief DHCP Client config response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define dhcp_client_config_reply -{ - u32 context; - i32 retval; -}; - -/** \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; -}; - -/** \brief Tell client about a DHCP completion event - @param client_index - opaque cookie to identify the sender - @param pid - client pid registered to receive notification - @param is_ipv6 - if non-zero the address is ipv6, else ipv4 - @param host_address - Host IP address - @param router_address - Router IP address - @param host_mac - Host MAC address -*/ -define dhcp_compl_event -{ - u32 client_index; - u32 pid; - u8 hostname[64]; - u8 is_ipv6; - u8 host_address[16]; - u8 router_address[16]; - u8 host_mac[6]; -}; - -/** \brief cop: enable/disable junk filtration features on an interface - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_inded - desired interface - @param enable_disable - 1 => enable, 0 => disable -*/ - -define cop_interface_enable_disable -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 enable_disable; -}; - -/** \brief cop: interface enable/disable junk filtration reply - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ - -define cop_interface_enable_disable_reply -{ - u32 context; - i32 retval; -}; - -/** \brief cop: enable/disable whitelist filtration features on an interface - Note: the supplied fib_id must match in order to remove the feature! - - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface handle, physical interfaces only - @param fib_id - fib identifier for the whitelist / blacklist fib - @param ip4 - 1 => enable ip4 filtration, 0=> disable ip4 filtration - @param ip6 - 1 => enable ip6 filtration, 0=> disable ip6 filtration - @param default_cop - 1 => enable non-ip4, non-ip6 filtration 0=> disable it -*/ - -define cop_whitelist_enable_disable -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u32 fib_id; - u8 ip4; - u8 ip6; - u8 default_cop; -}; - -/** \brief cop: interface enable/disable junk filtration reply - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ - -define cop_whitelist_enable_disable_reply -{ - u32 context; - i32 retval; -}; - -/** \brief get_node_graph - get a copy of the vpp node graph - including the current set of graph arcs. - - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request -*/ - -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 Add/del policer - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param is_add - add policer if non-zero, else delete - @param name - policer name - @param cir - CIR - @param eir - EIR - @param cb - Committed Burst - @param eb - Excess or Peak Burst - @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; - u32 context; - - u8 is_add; - u8 name[64]; - u32 cir; - u32 eir; - u64 cb; - u64 eb; - 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 client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param match_name_valid - if 0 request all policers otherwise use match_name - @param match_name - policer name -*/ -define policer_dump -{ - u32 client_index; - u32 context; - - u8 match_name_valid; - u8 match_name[64]; -}; - -/** \brief Policer operational state response. - @param context - sender context, to match reply w/ request - @param name - policer name - @param cir - CIR - @param eir - EIR - @param cb - Committed Burst - @param eb - Excess or Peak Burst - @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 cir_tokens_per_period - number of tokens for each period - @param pir_tokens_per_period - number of tokens for each period for 2-rate policer - @param current_limit - current limit - @param current_bucket - current bucket - @param extended_limit - extended limit - @param extended_bucket - extended bucket - @param last_update_time - last update time -*/ -define policer_details -{ - u32 context; - - u8 name[64]; - u32 cir; - u32 eir; - u64 cb; - u64 eb; - 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; - u32 cir_tokens_per_period; - u32 pir_tokens_per_period; - u32 current_limit; - u32 current_bucket; - u32 extended_limit; - u32 extended_bucket; - u64 last_update_time; -}; - -/** \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 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 set_ipfix_exporter -{ - 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; - u8 udp_checksum; -}; - -/** \brief Reply to IPFIX exporter configure request - @param context - sender context which was passed in the request -*/ -define set_ipfix_exporter_reply -{ - u32 context; - i32 retval; -}; - -/** \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_exporter_dump -{ - u32 client_index; - u32 context; -}; - -/** \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 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_exporter_details -{ - u32 context; - u8 collector_address[16]; - u16 collector_port; - u8 src_address[16]; - 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 - @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 L2 interface pbb tag rewrite configure request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface the operation is applied to - @param vtr_op - Choose from l2_vtr_op_t enum values - @param inner_tag - needed for translate_qinq vtr op only - @param outer_tag - needed for translate_qinq vtr op only - @param b_dmac - B-tag remote mac address, needed for any push or translate_qinq vtr op - @param b_smac - B-tag local mac address, needed for any push or translate qinq vtr op - @param b_vlanid - B-tag vlanid, needed for any push or translate qinq vtr op - @param i_sid - I-tag service id, needed for any push or translate qinq vtr op -*/ -define l2_interface_pbb_tag_rewrite -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u32 vtr_op; - u16 outer_tag; - u8 b_dmac[6]; - u8 b_smac[6]; - u16 b_vlanid; - u32 i_sid; -}; - -/** \brief L2 interface pbb tag rewrite response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define l2_interface_pbb_tag_rewrite_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; + u32 retval; + f64 f64_value; }; /*