X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vpp%2Fvpp-api%2Fvpe.api;h=2bd3006447e4fab3f8f681cc8f8c5933b06c3cae;hb=f07dc9e236506f50a0230e6680cf1402dea6a976;hp=487ce3aa07840aec5efcced891d0732d52f4df3c;hpb=f0c90e20f7e407209ed723b0c448ea29950b747e;p=vpp.git diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api index 487ce3aa078..2bd3006447e 100644 --- a/vpp/vpp-api/vpe.api +++ b/vpp/vpp-api/vpe.api @@ -23,111 +23,14 @@ * Note: API placement cleanup in progress * If you're looking for interface APIs, please * 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} */ -/** \brief Initialize a new tap interface with the given paramters - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param use_random_mac - let the system generate a unique mac address - @param tap_name - name to associate with the new interface - @param mac_address - mac addr to assign to the interface if use_radom not set -*/ -define tap_connect -{ - u32 client_index; - u32 context; - u8 use_random_mac; - u8 tap_name[64]; - u8 mac_address[6]; - u8 renumber; - u32 custom_dev_instance; - u8 tag[64]; -}; - -/** \brief Reply for tap connect 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 tap interface -*/ -define tap_connect_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -/** \brief Modify a tap interface with the given paramters - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface index of existing tap interface - @param use_random_mac - let the system generate a unique mac address - @param tap_name - name to associate with the new interface - @param mac_address - mac addr to assign to the interface if use_radom not set -*/ -define tap_modify -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 use_random_mac; - u8 tap_name[64]; - u8 mac_address[6]; - u8 renumber; - u32 custom_dev_instance; -}; - -/** \brief Reply for tap modify request - @param context - returned sender context, to match reply w/ request - @param retval - return code - @param sw_if_index - software index if the modified tap interface -*/ -define tap_modify_reply -{ - u32 context; - i32 retval; - u32 sw_if_index; -}; - -/** \brief Delete tap interface - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - interface index of existing tap interface -*/ -define tap_delete -{ - u32 client_index; - u32 context; - u32 sw_if_index; -}; - -/** \brief Reply for tap delete request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define tap_delete_reply -{ - u32 context; - i32 retval; -}; - -/** \brief Dump tap interfaces request */ -define sw_interface_tap_dump -{ - u32 client_index; - u32 context; -}; - -/** \brief Reply for tap dump request - @param sw_if_index - software index of tap interface - @param dev_name - Linux tap device name -*/ -define sw_interface_tap_details -{ - u32 context; - u32 sw_if_index; - u8 dev_name[64]; -}; - /** \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 @@ -255,8 +158,11 @@ define mpls_fib_dump @param is_prohibit - Drop the packet and rate limit send ICMP prohibited @param afi - the afi of the next hop, IP46_TYPE_IP4=1, IP46_TYPE_IP6=2 @param next_hop[16] - the next hop address + + WARNING: this type is replicated, pending cleanup completion + */ -typeonly manual_print manual_endian define fib_path +typeonly manual_print manual_endian define fib_path2 { u32 sw_if_index; u32 weight; @@ -282,59 +188,7 @@ manual_endian manual_print define mpls_fib_details u8 eos_bit; u32 label; u32 count; - vl_api_fib_path_t path[count]; -}; - -/** \brief Dump IP6 fib table - @param client_index - opaque cookie to identify the sender -*/ -define ip6_fib_dump -{ - u32 client_index; - u32 context; -}; - -/** \brief IP6 FIB table response - @param table_id - IP6 fib table id - @address_length - mask length - @address - ip6 prefix - @param count - the number of fib_path in path - @param path - array of of fib_path structures -*/ -manual_endian manual_print define ip6_fib_details -{ - u32 context; - u32 table_id; - u8 address_length; - u8 address[16]; - u32 count; - vl_api_fib_path_t path[count]; -}; - -/** \brief Dump IP fib table - @param client_index - opaque cookie to identify the sender -*/ -define ip_fib_dump -{ - u32 client_index; - u32 context; -}; - -/** \brief IP FIB table response - @param table_id - IP fib table id - @address_length - mask length - @address - ip4 prefix - @param count - the number of fib_path in path - @param path - array of of fib_path structures -*/ -manual_endian manual_print define ip_fib_details -{ - u32 context; - u32 table_id; - u8 address_length; - u8 address[4]; - u32 count; - vl_api_fib_path_t path[count]; + vl_api_fib_path2_t path[count]; }; /** \brief Bind/Unbind an MPLS local label to an IP prefix. i.e. create @@ -452,71 +306,6 @@ define mpls_tunnel_details u32 mt_next_hop_out_labels[mt_next_hop_n_labels]; }; -/** \brief Add / del route request - @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 vrf_id - fib table /vrf associated with the route - @param lookup_in_vrf - - @param classify_table_index - - @param create_vrf_if_needed - - @param is_add - 1 if adding the route, 0 if deleting - @param is_drop - Drop the packet - @param is_unreach - Drop the packet and rate limit send ICMP unreachable - @param is_prohibit - Drop the packet and rate limit send ICMP prohibited - @param is_ipv6 - 0 if an ip4 route, else ip6 - @param is_local - - @param is_classify - - @param is_multipath - Set to 1 if this is a multipath route, else 0 - @param not_last - Is last or not last msg in group of multiple add/del msgs - @param next_hop_weight - - @param dst_address_length - - @param dst_address[16] - - @param next_hop_address[16] - - @param next_hop_n_out_labels - the number of labels in the label stack - @param next_hop_out_label_stack - the next-hop output label stack, outer most first - @param next_hop_via_label - The next-hop is a resolved via a local label -*/ -define ip_add_del_route -{ - u32 client_index; - u32 context; - u32 next_hop_sw_if_index; - u32 table_id; - u32 classify_table_index; - u32 next_hop_table_id; - u8 create_vrf_if_needed; - u8 is_add; - u8 is_drop; - u8 is_unreach; - u8 is_prohibit; - u8 is_ipv6; - u8 is_local; - u8 is_classify; - u8 is_multipath; - u8 is_resolve_host; - u8 is_resolve_attached; - /* Is last/not-last message in group of multiple add/del messages. */ - u8 not_last; - u8 next_hop_weight; - u8 dst_address_length; - u8 dst_address[16]; - u8 next_hop_address[16]; - u8 next_hop_n_out_labels; - u32 next_hop_via_label; - u32 next_hop_out_label_stack[next_hop_n_out_labels]; -}; - -/** \brief Reply for add / del route request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define ip_add_del_route_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 @@ -570,41 +359,6 @@ define proxy_arp_intfc_enable_disable_reply i32 retval; }; -/** \brief IP neighbor 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_id, only for IP4 - @param sw_if_index - interface used to reach neighbor - @param is_add - 1 to add neighbor, 0 to delete - @param is_ipv6 - 1 for IPv6 neighbor, 0 for IPv4 - @param is_static - - @param mac_address - l2 address of the neighbor - @param dst_address - ip4 or ip6 address of the neighbor -*/ -define ip_neighbor_add_del -{ - u32 client_index; - u32 context; - u32 vrf_id; /* only makes sense for ip4 */ - u32 sw_if_index; - /* 1 = add, 0 = delete */ - u8 is_add; - u8 is_ipv6; - u8 is_static; - u8 mac_address[6]; - u8 dst_address[16]; -}; - -/** \brief Reply for IP Neighbor add / delete request - @param context - returned sender context, to match reply w/ request - @param retval - return code -*/ -define ip_neighbor_add_del_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 @@ -876,181 +630,6 @@ define dhcp_proxy_set_vss_reply i32 retval; }; -/** \brief Set the ip flow hash config for a fib request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param vrf_id - vrf/fib id - @param is_ipv6 - if non-zero the fib is ip6, else ip4 - @param src - if non-zero include src in flow hash - @param dst - if non-zero include dst in flow hash - @param sport - if non-zero include sport in flow hash - @param dport - if non-zero include dport in flow hash - @param proto -if non-zero include proto in flow hash - @param reverse - if non-zero include reverse in flow hash -*/ -define set_ip_flow_hash -{ - u32 client_index; - u32 context; - u32 vrf_id; - u8 is_ipv6; - u8 src; - u8 dst; - u8 sport; - u8 dport; - u8 proto; - u8 reverse; -}; - -/** \brief Set the ip flow hash config for a fib response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define set_ip_flow_hash_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 router advertisement config request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param suppress - - @param managed - - @param other - - @param ll_option - - @param send_unicast - - @param cease - - @param is_no - - @param default_router - - @param max_interval - - @param min_interval - - @param lifetime - - @param initial_count - - @param initial_interval - -*/ -define sw_interface_ip6nd_ra_config -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 suppress; - u8 managed; - u8 other; - u8 ll_option; - u8 send_unicast; - u8 cease; - u8 is_no; - u8 default_router; - u32 max_interval; - u32 min_interval; - u32 lifetime; - u32 initial_count; - u32 initial_interval; -}; - -/** \brief IPv6 router advertisement config response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6nd_ra_config_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 router advertisement prefix config request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request - @param sw_if_index - - @param address[] - - @param address_length - - @param use_default - - @param no_advertise - - @param off_link - - @param no_autoconfig - - @param no_onlink - - @param is_no - - @param val_lifetime - - @param pref_lifetime - -*/ -define sw_interface_ip6nd_ra_prefix -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 address[16]; - u8 address_length; - u8 use_default; - u8 no_advertise; - u8 off_link; - u8 no_autoconfig; - u8 no_onlink; - u8 is_no; - u32 val_lifetime; - u32 pref_lifetime; -}; - -/** \brief IPv6 router advertisement prefix config response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6nd_ra_prefix_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 interface 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 used to reach neighbor - @param enable - if non-zero enable ip6 on interface, else disable -*/ -define sw_interface_ip6_enable_disable -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 enable; /* set to true if enable */ -}; - -/** \brief IPv6 interface enable / disable response - @param context - sender context, to match reply w/ request - @param retval - return code for the request -*/ -define sw_interface_ip6_enable_disable_reply -{ - u32 context; - i32 retval; -}; - -/** \brief IPv6 set link local address on 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 link local on - @param address[] - the new link local address - @param address_length - link local address length -*/ -define sw_interface_ip6_set_link_local_address -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 address[16]; - u8 address_length; -}; - -/** \brief IPv6 set link local address on interface response - @param context - sender context, to match reply w/ request - @param retval - error code for the request -*/ -define sw_interface_ip6_set_link_local_address_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 @@ -1239,8 +818,8 @@ define sr_tunnel_add_del 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 @@ -1329,32 +908,6 @@ define sw_interface_set_vpath_reply 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 @@ -1534,6 +1087,7 @@ define bd_ip_mac_add_del_reply @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param is_add- if non-zero add the table, else delete it + @param del_chain - if non-zero delete the whole chain of tables @param table_index - if add, reuturns index of the created table, else specifies the table to delete @param nbuckets - number of buckets when adding a table @param memory_size - memory size when adding a table @@ -1558,6 +1112,7 @@ define classify_add_del_table u32 client_index; u32 context; u8 is_add; + u8 del_chain; u32 table_index; u32 nbuckets; u32 memory_size; @@ -1921,47 +1476,6 @@ define l2tpv3_set_lookup_key_reply 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; @@ -1992,116 +1506,38 @@ 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 - @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; -}; - -/** \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; + u8 is_ipv6; + u8 teb; + u8 src_address[16]; + u8 dst_address[16]; + u32 outer_fib_id; }; -/** \brief vhost-user interface delete request +/** \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 delete_vhost_user_if +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 vhost-user interface delete response +/** \brief L2 interface vlan tag rewrite response @param context - sender context, to match reply w/ request @param retval - return code for the request */ -define delete_vhost_user_if_reply +define l2_interface_vlan_tag_rewrite_reply { u32 context; i32 retval; @@ -2161,64 +1597,6 @@ define show_version_reply 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; -}; - -define ip_address_details -{ - u32 client_index; - u32 context; - u8 ip[16]; - u8 prefix_length; -}; - -define ip_address_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_ipv6; -}; - -define ip_details -{ - u32 sw_if_index; - u32 context; -}; - -define ip_dump -{ - u32 client_index; - u32 context; - u8 is_ipv6; -}; - /** \brief l2 fib table entry structure @param bd_id - the l2 fib / bridge domain table id @param mac - the entry's mac address @@ -3342,6 +2720,7 @@ define ip6_nd_event @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 @@ -3354,6 +2733,7 @@ define bridge_domain_add_del u8 forward; u8 learn; u8 arp_term; + u8 mac_age; u8 is_add; }; @@ -3386,6 +2766,7 @@ define bridge_domain_dump @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 @@ -3397,6 +2778,7 @@ define bridge_domain_details u8 forward; u8 learn; u8 arp_term; + u8 mac_age; u32 bvi_sw_if_index; u32 n_sw_ifs; }; @@ -4016,57 +3398,6 @@ define ioam_disable_reply 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 @@ -4250,60 +3581,6 @@ define policer_classify_details 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 @@ -4633,49 +3910,6 @@ define flow_classify_details { u32 table_index; }; -/** \brief Enable/Disable span to mirror traffic from one interface to another - @param client_index - opaque cookie to identify the sender - @param context - sender context which was passed in the request - @param sw_if_index_from - interface to be mirorred - @param sw_if_index_to - interface where the traffic is mirrored - @param enable - 1 enable SPAN, 0 SPAN on given interface -*/ -define sw_interface_span_enable_disable{ - u32 client_index; - u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; - u8 enable; -}; - -/** \brief Reply to SPAN enable/disable request - @param context - sender context which was passed in the request -*/ -define sw_interface_span_enable_disable_reply { - u32 context; - i32 retval; -}; - -/** \brief SPAN dump request - @param client_index - opaque cookie to identify the sender - @param context - sender context, to match reply w/ request -*/ -define sw_interface_span_dump { - u32 client_index; - u32 context; -}; - -/** \brief Reply to SPAN dump request - @param context - sender context which was passed in the request - @param sw_if_index_from - mirorred interface - @param sw_if_index_to - interface where the traffic is mirrored -*/ -define sw_interface_span_details { - u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; -}; - /** \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 @@ -5147,35 +4381,193 @@ define feature_enable_disable_reply i32 retval; }; -/** \brief Dump IP neighboors +/** \brief Configure BFD feature @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param sw_if_index - the interface to dump neighboors - @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4] + @param slow_timer - slow timer (seconds) + @param min_tx - desired min tx interval + @param min_rx - desired min rx interval + @param detect_mult - desired detection multiplier */ -define ip_neighbor_dump -{ - u32 client_index; - u32 context; - u32 sw_if_index; - u8 is_ipv6; +define bfd_set_config { + u32 client_index; + u32 context; + u32 slow_timer; + u32 min_tx; + u32 min_rx; + u8 detect_mult; +}; + +/** \brief Configure BFD feature response + @param context - sender context, to match reply w/ request + @param retval - return code for the request +*/ +define bfd_set_config_reply { + u32 context; + i32 retval; +}; + +/** \brief Get BFD configuration +*/ +define bfd_get_config { + u32 client_index; + u32 context; +}; + +/** \brief Get BFD configuration response + @param context - sender context, to match reply w/ request + @param retval - return code for the request + @param slow_timer - slow timer (seconds) + @param min_tx - desired min tx interval + @param min_rx - desired min rx interval + @param detect_mult - desired detection multiplier +*/ +define bfd_get_config_reply { + u32 client_index; + u32 context; + u32 slow_timer; + u32 min_tx; + u32 min_rx; + u8 detect_mult; +}; + +/** \brief Add UDP BFD session on interface + @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 + @param desired_min_tx - desired min transmit interval (microseconds) + @param required_min_rx - required min receive interval (microseconds) + @param detect_mult - detect multiplier (# of packets missed between connection goes down) + @param local_addr - local address + @param peer_addr - peer address + @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4 +*/ +define bfd_udp_add { + u32 client_index; + u32 context; + u32 sw_if_index; + u32 desired_min_tx; + u32 required_min_rx; + u8 local_addr[16]; + u8 peer_addr[16]; + u8 is_ipv6; + u8 detect_mult; +}; + +/** \brief Add UDP BFD session response + @param context - sender context, to match reply w/ request + @param retval - return code for the request + @param bs_index - index of the session created +*/ +define bfd_udp_add_reply { + u32 context; + i32 retval; + u32 bs_index; }; -/** \brief IP neighboors dump response +/** \brief Delete UDP BFD session on interface + @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 + @param local_addr - local address + @param peer_addr - peer address + @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4 +*/ +define bfd_udp_del { + u32 client_index; + u32 context; + u32 sw_if_index; + u8 local_addr[16]; + u8 peer_addr[16]; + u8 is_ipv6; +}; + +/** \brief Delete UDP BFD session response + @param context - sender context, to match reply w/ request + @param retval - return code for the request +*/ +define bfd_udp_del_reply { + u32 context; + i32 retval; +}; + +/** \brief Get all BFD sessions + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define bfd_udp_session_dump { + u32 client_index; + u32 context; +}; + +/** \brief BFD session details structure + @param context - sender context, to match reply w/ request + @param bs_index - index of the session + @param sw_if_index - sw index of the interface + @param local_addr - local address + @param peer_addr - peer address + @param is_ipv6 - local_addr, peer_addr are IPv6 if non-zero, otherwise IPv4 + @param state - session state +*/ +define bfd_udp_session_details { + u32 context; + u32 bs_index; + u32 sw_if_index; + u8 local_addr[16]; + u8 peer_addr[16]; + u8 is_ipv6; + u8 state; +}; + +/** \brief Set flags of BFD session + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param bs_index - index of the bfd session to set flags on + @param admin_up_down - set the admin state, 1 = up, 0 = down +*/ +define bfd_session_set_flags { + u32 client_index; + u32 context; + u32 bs_index; + u8 admin_up_down; +}; + +/** \brief Reply to bfd_session_set_flags @param context - sender context which was passed in the request - @param is_static - [1|0] to indicate if neighbor is statically configured - @param is_ipv6 - [1|0] to indicate if address family is ipv[6|4] + @param retval - return code of the set flags request */ -define ip_neighbor_details { - u32 context; - u32 is_static; - u8 is_ipv6; - u8 mac_address[6]; - u8 ip_address[16]; +define bfd_session_set_flags_reply +{ + u32 context; + i32 retval; +}; + +/** \brief Register for BFD 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 +*/ +define want_bfd_events +{ + u32 client_index; + u32 context; + u32 enable_disable; + u32 pid; +}; + +/** \brief Reply for BFD events registration + @param context - returned sender context, to match reply w/ request + @param retval - return code +*/ +define want_bfd_events_reply +{ + u32 context; + i32 retval; }; /* * Local Variables: * eval: (c-set-style "gnu") * End: - */ \ No newline at end of file + */