- * 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}
- * 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}
- * 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}
- * COP APIs: see ... /src/vnet/cop/{cop.api, cop_api.c}
- * POLICER APIs: see ... /src/vnet/policer/{policer.api, policer_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
- @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
-{
- 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
- @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
-*/
-define proxy_arp_intfc_enable_disable_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];
-};
-
-/** \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
-*/
-define want_stats
-{
- 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 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_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
-*/
-define want_oam_events
-{
- u32 client_index;
- u32 context;
- u32 enable_disable;
- u32 pid;
-};
-
-/** \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
-{
- u32 context;
- i32 retval;
-};
-
-/** \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
-*/
-define oam_add_del
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 src_address[4];
- u8 dst_address[4];
- u8 is_add;
-};
-
-/** \brief OAM add / del target response
- @param context - sender context, to match reply w/ request
- @param retval - return code of the request
-*/
-define oam_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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
-*/
-define reset_fib
-{
- u32 client_index;
- u32 context;
- u32 vrf_id;
- u8 is_ipv6;
-};
-
-/** \brief Reset fib response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the reset bfib request
-*/
-define reset_fib_reply
-{
- 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
-*/
-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 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
-{
- 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
-*/
-define delete_loopback_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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
-*/
-define control_ping
-{
- u32 client_index;
- u32 context;
-};
-
-/** \brief Control ping from the client to the server response
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
- @param vpe_pid - the pid of the vpe, returned by the server
-*/
-define control_ping_reply
-{
- u32 context;
- i32 retval;
- u32 client_index;
- u32 vpe_pid;
-};
-
-/** \brief Process a vpe parser cli string request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param cmd_in_shmem - pointer to cli command string
-*/
-define cli_request
-{
- u32 client_index;
- u32 context;
- u64 cmd_in_shmem;
-};
-define cli_inband
-{
- u32 client_index;
- u32 context;
- u32 length;
- u8 cmd[length];
-};
-
-/** \brief vpe parser cli string response
- @param context - sender context, to match reply w/ request
- @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
-{
- 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
-*/
-define set_arp_neighbor_limit
-{
- 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
-*/
-define set_arp_neighbor_limit_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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
-*/
-define l2_patch_add_del
-{
- u32 client_index;
- u32 context;
- u32 rx_sw_if_index;
- u32 tx_sw_if_index;
- u8 is_add;
-};
-
-/** \brief L2 interface patch add / del response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2_patch_add_del_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \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
-*/
-define sw_interface_set_vpath
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 enable;
-};
-
-/** \brief Interface set vpath response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define sw_interface_set_vpath_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;
-};