* see .../vnet/vnet/{interface.api,interface_api.c}
* IP APIs: see .../vnet/vnet/ip/{ip.api, ip_api.c}
* TAP APIs: see .../vnet/vnet/unix/{tap.api, tap_api.c}
+ * VXLAN APIs: see .../vnet/vnet/vxlan/{vxlan.api, vxlan_api.c}
+ * AF-PACKET APIs: ... see /vnet/devices/af_packet/{af_packet.api, af_packet_api.c}
+ * NETMAP APIs: see ... /vnet/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 .../vnet/vnet/vxlan-gpe/{vxlan_gpe.api, vxlan_gpe_api.c}
+ * GRE APIs: see .../vnet/vnet/gre/{gre.api, gre_api.c}
+ * L2TP APIs: see .../vnet/vnet/l2tp/{l2tp.api, l2tp_api.c}
+ * BFD APIs: see .../vnet/vnet/bfd/{bfd.api, bfd_api.c}
*/
/** \brief Create a new subinterface with the given vlan id
u16 flags_net_byte_order;
u8 n_segments;
u8 n_tags;
- u8 segs_and_tags[0];
u8 policy_name[64];
+ u8 segs_and_tags[0];
};
/** \brief IPv6 segment routing tunnel add / del response
i32 retval;
};
-/** \brief Interface set vxlan-bypass 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 is_ipv6 - if non-zero, enable ipv6-vxlan-bypass, else ipv4-vxlan-bypass
- @param enable - if non-zero enable, else disable
-*/
-define sw_interface_set_vxlan_bypass
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 is_ipv6;
- u8 enable;
-};
-
-/** \brief Interface set vxlan-bypass response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define sw_interface_set_vxlan_bypass_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
i32 retval;
};
-/** \brief l2tpv3 tunnel interface create request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param client_address - remote client tunnel ip address
- @param client_address - local tunnel ip address
- @param is_ipv6 - ipv6 if non-zero, else ipv4
- @param local_session_id - local tunnel session id
- @param remote_session_id - remote tunnel session id
- @param local_cookie - local tunnel cookie
- @param l2_sublayer_present - l2 sublayer is present in packets if non-zero
- @param encap_vrf_id - fib identifier used for outgoing encapsulated packets
-*/
-define l2tpv3_create_tunnel
-{
- u32 client_index;
- u32 context;
- u8 client_address[16];
- u8 our_address[16];
- u8 is_ipv6;
- u32 local_session_id;
- u32 remote_session_id;
- u64 local_cookie;
- u64 remote_cookie;
- u8 l2_sublayer_present;
- u32 encap_vrf_id;
-};
-
-/** \brief l2tpv3 tunnel interface create response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
- @param sw_if_index - index of the new tunnel interface
-*/
-define l2tpv3_create_tunnel_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-define l2tpv3_set_tunnel_cookies
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u64 new_local_cookie;
- u64 new_remote_cookie;
-};
-
-/** \brief L2TP tunnel set cookies response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define l2tpv3_set_tunnel_cookies_reply
-{
- u32 context;
- i32 retval;
-};
-
-define sw_if_l2tpv3_tunnel_details
-{
- u32 context;
- u32 sw_if_index;
- u8 interface_name[64];
- u8 client_address[16];
- u8 our_address[16];
- u32 local_session_id;
- u32 remote_session_id;
- u64 local_cookie[2];
- u64 remote_cookie;
- u8 l2_sublayer_present;
-};
-
-define sw_if_l2tpv3_tunnel_dump
-{
- u32 client_index;
- u32 context;
-};
-
/** \brief L2 fib clear table request, clear all mac entries in the l2 fib
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
i32 retval;
};
-define l2tpv3_interface_enable_disable
-{
- u32 client_index;
- u32 context;
- u8 enable_disable;
- u32 sw_if_index;
-};
-
-define l2tpv3_interface_enable_disable_reply
-{
- u32 context;
- i32 retval;
-};
-
-define l2tpv3_set_lookup_key
-{
- u32 client_index;
- u32 context;
- /* 0 = ip6 src_address, 1 = ip6 dst_address, 2 = session_id */
- u8 key;
-};
-
-define l2tpv3_set_lookup_key_reply
-{
- u32 context;
- i32 retval;
-};
-
-define vxlan_add_del_tunnel
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 is_ipv6;
- u8 src_address[16];
- u8 dst_address[16];
- u32 mcast_sw_if_index;
- u32 encap_vrf_id;
- u32 decap_next_index;
- u32 vni;
-};
-
-define vxlan_add_del_tunnel_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-define vxlan_tunnel_dump
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-define vxlan_tunnel_details
-{
- u32 context;
- u32 sw_if_index;
- u8 src_address[16];
- u8 dst_address[16];
- u32 mcast_sw_if_index;
- u32 encap_vrf_id;
- u32 decap_next_index;
- u32 vni;
- u8 is_ipv6;
-};
-
-define gre_add_del_tunnel
-{
- u32 client_index;
- u32 context;
- u8 is_add;
- u8 is_ipv6;
- u8 teb;
- u8 src_address[16];
- u8 dst_address[16];
- u32 outer_fib_id;
-};
-
-define gre_add_del_tunnel_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-define gre_tunnel_dump
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-define gre_tunnel_details
-{
- u32 context;
- u32 sw_if_index;
- u8 is_ipv6;
- u8 teb;
- u8 src_address[16];
- u8 dst_address[16];
- u32 outer_fib_id;
-};
-
/** \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
i32 retval;
};
-/** \brief vhost-user interface create request
- @param client_index - opaque cookie to identify the sender
- @param is_server - our side is socket server
- @param sock_filename - unix socket filename, used to speak with frontend
- @param use_custom_mac - enable or disable the use of the provided hardware address
- @param mac_address - hardware address to use if 'use_custom_mac' is set
-*/
-define create_vhost_user_if
-{
- u32 client_index;
- u32 context;
- u8 is_server;
- u8 sock_filename[256];
- u8 renumber;
- u32 custom_dev_instance;
- u8 use_custom_mac;
- u8 mac_address[6];
- u8 tag[64];
-};
-
-/** \brief vhost-user interface create response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
- @param sw_if_index - interface the operation is applied to
-*/
-define create_vhost_user_if_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief vhost-user interface modify request
- @param client_index - opaque cookie to identify the sender
- @param is_server - our side is socket server
- @param sock_filename - unix socket filename, used to speak with frontend
-*/
-define modify_vhost_user_if
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
- u8 is_server;
- u8 sock_filename[256];
- u8 renumber;
- u32 custom_dev_instance;
-};
-
-/** \brief vhost-user interface modify response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define modify_vhost_user_if_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief vhost-user interface delete request
- @param client_index - opaque cookie to identify the sender
-*/
-define delete_vhost_user_if
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-/** \brief vhost-user interface delete response
- @param context - sender context, to match reply w/ request
- @param retval - return code for the request
-*/
-define delete_vhost_user_if_reply
-{
- u32 context;
- i32 retval;
-};
-
define create_subif
{
u32 client_index;
u8 build_directory[256];
};
-/** \brief Vhost-user interface details structure (fix this)
- @param sw_if_index - index of the interface
- @param interface_name - name of interface
- @param virtio_net_hdr_sz - net header size
- @param features - interface features
- @param is_server - vhost-user server socket
- @param sock_filename - socket filename
- @param num_regions - number of used memory regions
-*/
-define sw_interface_vhost_user_details
-{
- u32 context;
- u32 sw_if_index;
- u8 interface_name[64];
- u32 virtio_net_hdr_sz;
- u64 features;
- u8 is_server;
- u8 sock_filename[256];
- u32 num_regions;
- i32 sock_errno;
-};
-
-/* works */
-define sw_interface_vhost_user_dump
-{
- u32 client_index;
- u32 context;
-};
-
/** \brief l2 fib table entry structure
@param bd_id - the l2 fib / bridge domain table id
@param mac - the entry's mac address
u32 bd_id;
};
-define vxlan_gpe_add_del_tunnel
-{
- u32 client_index;
- u32 context;
- u8 is_ipv6;
- u8 local[16];
- u8 remote[16];
- u32 encap_vrf_id;
- u32 decap_vrf_id;
- u8 protocol;
- u32 vni;
- u8 is_add;
-};
-
-define vxlan_gpe_add_del_tunnel_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-define vxlan_gpe_tunnel_dump
-{
- u32 client_index;
- u32 context;
- u32 sw_if_index;
-};
-
-define vxlan_gpe_tunnel_details
-{
- u32 context;
- u32 sw_if_index;
- u8 local[16];
- u8 remote[16];
- u32 vni;
- u8 protocol;
- u32 encap_vrf_id;
- u32 decap_vrf_id;
- u8 is_ipv6;
-};
-
/** \brief add or delete locator_set
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param forward - enable/disable forwarding on all interfaces in the bd
@param learn - enable/disable learning on all interfaces in the bd
@param arp_term - enable/disable arp termination in the bd
+ @param mac_age - mac aging time in min, 0 for disabled
@param is_add - add or delete flag
*/
define bridge_domain_add_del
u8 forward;
u8 learn;
u8 arp_term;
+ u8 mac_age;
u8 is_add;
};
@param forward - forwarding state on all interfaces in the bd
@param learn - learning state on all interfaces in the bd
@param arp_term - arp termination state on all interfaces in the bd
+ @param mac_age - mac aging time in min, 0 for disabled
@param n_sw_ifs - number of sw_if_index's in the domain
*/
define bridge_domain_details
u8 forward;
u8 learn;
u8 arp_term;
+ u8 mac_age;
u32 bvi_sw_if_index;
u32 n_sw_ifs;
};
i32 retval;
};
-/** \brief Create host-interface
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param host_if_name - interface name
- @param hw_addr - interface MAC
- @param use_random_hw_addr - use random generated MAC
-*/
-define af_packet_create
-{
- u32 client_index;
- u32 context;
-
- u8 host_if_name[64];
- u8 hw_addr[6];
- u8 use_random_hw_addr;
-};
-
-/** \brief Create host-interface response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define af_packet_create_reply
-{
- u32 context;
- i32 retval;
- u32 sw_if_index;
-};
-
-/** \brief Delete host-interface
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param host_if_name - interface name
-*/
-define af_packet_delete
-{
- u32 client_index;
- u32 context;
-
- u8 host_if_name[64];
-};
-
-/** \brief Delete host-interface response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define af_packet_delete_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
u32 table_index;
};
-/** \brief Create netmap
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param netmap_if_name - interface name
- @param hw_addr - interface MAC
- @param use_random_hw_addr - use random generated MAC
- @param is_pipe - is pipe
- @param is_master - 0=slave, 1=master
-*/
-define netmap_create
-{
- u32 client_index;
- u32 context;
-
- u8 netmap_if_name[64];
- u8 hw_addr[6];
- u8 use_random_hw_addr;
- u8 is_pipe;
- u8 is_master;
-};
-
-/** \brief Create netmap response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define netmap_create_reply
-{
- u32 context;
- i32 retval;
-};
-
-/** \brief Delete netmap
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
- @param netmap_if_name - interface name
-*/
-define netmap_delete
-{
- u32 client_index;
- u32 context;
-
- u8 netmap_if_name[64];
-};
-
-/** \brief Delete netmap response
- @param context - sender context, to match reply w/ request
- @param retval - return value for request
-*/
-define netmap_delete_reply
-{
- u32 context;
- i32 retval;
-};
-
/** \brief Classify get table IDs request
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request