X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fl2%2Fl2.api;h=06663595cf73cad5afb86a773b2f1b5bcdf370a5;hb=cbe25aab3be72154f2c706c39eeba6a77f34450f;hp=ea24a71feb55acc2a4f65763a56be7750145b083;hpb=8006c6aa425126529b4017768a9201e4f03964ad;p=vpp.git diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api index ea24a71feb5..06663595cf7 100644 --- a/src/vnet/l2/l2.api +++ b/src/vnet/l2/l2.api @@ -14,10 +14,11 @@ * limitations under the License. */ -option version = "2.1.1"; +option version = "2.2.2"; import "vnet/ip/ip_types.api"; import "vnet/ethernet/ethernet_types.api"; +import "vnet/interface_types.api"; /** \brief Reply to l2_xconnect_dump @param context - sender context which was passed in the request @@ -154,7 +155,7 @@ autoreply define want_l2_macs_events u32 learn_limit; u8 scan_delay; u8 max_macs_in_event; - u8 enable_disable; + bool enable_disable; u32 pid; }; @@ -165,7 +166,7 @@ autoreply define want_l2_macs_events 3 => MAC move (sw_if_index changed) @param flags - flag bits to provide other info, not yet used */ -typeonly define mac_entry +typedef mac_entry { u32 sw_if_index; u8 mac_addr[6]; @@ -247,6 +248,7 @@ autoreply define bridge_domain_set_mac_age @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 arp_ufwd - enable/disable arp unicast forwarding in the bd @param mac_age - mac aging time in min, 0 for disabled @param is_add - add or delete flag */ @@ -260,6 +262,7 @@ autoreply define bridge_domain_add_del u8 forward; u8 learn; u8 arp_term; + u8 arp_ufwd; u8 mac_age; u8 bd_tag[64]; u8 is_add; @@ -282,7 +285,7 @@ define bridge_domain_dump @param sw_if_index - sw_if_index in the domain @param shg - split horizon group for the interface */ -typeonly manual_print manual_endian define bridge_domain_sw_if +typedef bridge_domain_sw_if { u32 context; u32 sw_if_index; @@ -296,6 +299,7 @@ typeonly manual_print manual_endian define bridge_domain_sw_if @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 arp_ufwd - arp unicast forwarding state on all interfaces in the bd @param mac_age - mac aging time in min, 0 for disabled @param bd_tag - optional textual tag for the bridge domain @param n_sw_ifs - number of sw_if_index's in the domain @@ -309,6 +313,7 @@ manual_print manual_endian define bridge_domain_details u8 forward; u8 learn; u8 arp_term; + u8 arp_ufwd; u8 mac_age; u8 bd_tag[64]; u32 bvi_sw_if_index; @@ -320,11 +325,13 @@ manual_print manual_endian define bridge_domain_details /** \brief Flags that can be changed on a bridge domain */ enum bd_flags { + BRIDGE_API_FLAG_NONE = 0x0, BRIDGE_API_FLAG_LEARN = 0x1, BRIDGE_API_FLAG_FWD = 0x2, BRIDGE_API_FLAG_FLOOD = 0x4, BRIDGE_API_FLAG_UU_FLOOD = 0x8, BRIDGE_API_FLAG_ARP_TERM = 0x10, + BRIDGE_API_FLAG_ARP_UFWD = 0x20, }; /** \brief Set bridge flags request @@ -473,18 +480,34 @@ autoreply define sw_interface_set_l2_bridge @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 + @param ip - ipv4 or ipv6 address + @param mac - MAC address */ + +typedef bd_ip_mac +{ + u32 bd_id; + vl_api_address_t ip; + vl_api_mac_address_t mac; +}; + autoreply define bd_ip_mac_add_del { u32 client_index; u32 context; - u32 bd_id; u8 is_add; - vl_api_address_t ip; - vl_api_mac_address_t mac; + vl_api_bd_ip_mac_t entry; +}; + +/** \brief Flush bridge domain IP to MAC entries + @param client_index - opaque cookie to identify the sender + @param bd_id - bridge domain identifier +*/ +autoreply define bd_ip_mac_flush +{ + u32 client_index; + u32 context; + u32 bd_id; }; /** \brief bridge domain IP to MAC entry details structure @@ -496,10 +519,7 @@ autoreply define bd_ip_mac_add_del define bd_ip_mac_details { u32 context; - u32 bd_id; - u8 is_ipv6; - u8 ip_address[16]; - vl_api_mac_address_t mac_address; + vl_api_bd_ip_mac_t entry; }; /** \brief Dump bridge domain IP to MAC entries @@ -541,6 +561,81 @@ autoreply define sw_interface_set_vpath u8 enable; }; +/** \brief Create BVI interface instance request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param mac_address - mac addr to assign to the interface if none-zero + @param user_instance - requested instance, ~0 => dynamically allocate +*/ +define bvi_create +{ + u32 client_index; + u32 context; + vl_api_mac_address_t mac; + u32 user_instance; +}; + +/** \brief Create BVI interface instance response + @param context - sender context, to match reply w/ request + @param sw_if_index - sw index of the interface that was created + @param retval - return code for the request +*/ +define bvi_create_reply +{ + u32 context; + i32 retval; + u32 sw_if_index; +}; + +/** \brief Delete BVI interface request + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param sw_if_index - sw index of the interface that was created +*/ +autoreply define bvi_delete +{ + u32 client_index; + u32 context; + u32 sw_if_index; +}; + +/** \brief Register for IP4 ARP resolution event on receing ARP reply or + MAC/IP info from ARP requests in L2 BDs + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable - 1 => register for events, 0 => cancel registration + @param pid - sender's pid +*/ +autoreply define want_l2_arp_term_events +{ + u32 client_index; + u32 context; + bool enable; + u32 pid; +}; + +/** \brief Tell client about an IP4 ARP resolution event or + MAC/IP info from ARP requests in L2 BDs + @param client_index - opaque cookie to identify the sender + @param pid - client pid registered to receive notification + @param ip - IP address of new ARP term entry + @param sw_if_index - interface of new ARP term entry + @param mac - MAC address of new ARP term entry +*/ +define l2_arp_term_event +{ + u32 client_index; + u32 pid; + vl_api_address_t ip; + vl_api_interface_index_t sw_if_index; + vl_api_mac_address_t mac; +}; + +service { + rpc want_l2_arp_term_events returns want_l2_arp_term_events_reply + events l2_arp_term_event; +}; + /* * Local Variables: * eval: (c-set-style "gnu")