X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fl2%2Fl2.api;h=0ff4a2d75e40495e308fefdcb74a1a4e7148dee3;hb=e23c99ec0061991cf3904122979ac755fe1b78ca;hp=ac923de4032641565c9bdac6dd7eabf9d4b6334f;hpb=50570ecef6d37b0c9d8c002f6dadb4ed0e138aa3;p=vpp.git diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api index ac923de4032..0ff4a2d75e4 100644 --- a/src/vnet/l2/l2.api +++ b/src/vnet/l2/l2.api @@ -14,6 +14,8 @@ * limitations under the License. */ +option version = "2.0.1"; + /** \brief Reply to l2_xconnect_dump @param context - sender context which was passed in the request @param rx_sw_if_index - Receive interface index @@ -48,7 +50,7 @@ define l2_fib_table_details { u32 context; u32 bd_id; - u64 mac; + u8 mac[6]; u32 sw_if_index; u8 static_mac; u8 filter_mac; @@ -124,7 +126,7 @@ autoreply define l2fib_add_del { u32 client_index; u32 context; - u64 mac; + u8 mac[6]; u32 bd_id; u32 sw_if_index; u8 is_add; @@ -156,14 +158,16 @@ autoreply define want_l2_macs_events /** \brief Entry for learned or aged MAC in L2 MAC Events @param sw_if_index - sw_if_index in the domain @param mac_addr - mac_address - @is_del - 0 => newly learned MAC, 1 => aged out MAC + @param action - 0 => newly learned MAC, 1 => MAC deleted by ager + 3 => MAC move (sw_if_index changed) + @param flags - flag bits to provide other info, not yet used */ typeonly define mac_entry { u32 sw_if_index; u8 mac_addr[6]; - u8 is_del; - u8 spare; + u8 action; + u8 flags; }; /** \brief L2 MAC event for a list of learned or aged MACs @@ -180,6 +184,11 @@ define l2_macs_event vl_api_mac_entry_t mac[n_macs]; }; +service { + rpc want_l2_macs_events returns want_l2_macs_events_reply + events l2_macs_event; +}; + /** \brief Set interface L2 flags (such as L2_LEARN, L2_FWD, L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM bits). This can be used to disable one or more of the features represented by the @@ -378,6 +387,106 @@ autoreply define l2_interface_pbb_tag_rewrite u32 i_sid; }; +/** \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 +*/ +autoreply define l2_patch_add_del +{ + u32 client_index; + u32 context; + u32 rx_sw_if_index; + u32 tx_sw_if_index; + u8 is_add; +}; + +/** \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 +*/ +autoreply define sw_interface_set_l2_xconnect +{ + u32 client_index; + u32 context; + u32 rx_sw_if_index; + u32 tx_sw_if_index; + u8 enable; +}; + +/** \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 +*/ +autoreply 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 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 +*/ +autoreply 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 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 +*/ +autoreply define l2_interface_efp_filter +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u32 enable_disable; +}; + +/** \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 +*/ +autoreply define sw_interface_set_vpath +{ + u32 client_index; + u32 context; + u32 sw_if_index; + u8 enable; +}; + /* * Local Variables: * eval: (c-set-style "gnu")