From b474380f82b75d9640f9bf6ee78c891a6794dbfb Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Wed, 5 Sep 2018 09:13:57 -0700 Subject: L2 BD: introduce a BD interface on which to send UU packets Change-Id: I21ad6b04c19c8735d057174b1f260a59f2812241 Signed-off-by: Neale Ranns --- src/vnet/l2/l2.api | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'src/vnet/l2/l2.api') diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api index fdb7db7551d..2164ca74406 100644 --- a/src/vnet/l2/l2.api +++ b/src/vnet/l2/l2.api @@ -309,17 +309,27 @@ manual_print manual_endian define bridge_domain_details u8 mac_age; u8 bd_tag[64]; u32 bvi_sw_if_index; + u32 uu_fwd_sw_if_index; u32 n_sw_ifs; vl_api_bridge_domain_sw_if_t sw_if_details[n_sw_ifs]; }; -/** \brief Set bridge flags (such as L2_LEARN, L2_FWD, L2_FLOOD, - L2_UU_FLOOD, or L2_ARP_TERM bits) request +/** \brief Flags that can be changed on a bridge domain */ +enum bd_flags +{ + 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, +}; + +/** \brief Set bridge flags 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_set - if non-zero, set the flags, else clear them - @param feature_bitmap - bits (as above) that are non-zero to set or clear + @param flags - flags that are non-zero to set or clear */ define bridge_flags { @@ -327,7 +337,7 @@ define bridge_flags u32 context; u32 bd_id; u8 is_set; - u32 feature_bitmap; + vl_api_bd_flags_t flags; }; /** \brief Set bridge flags response @@ -419,6 +429,21 @@ autoreply define sw_interface_set_l2_xconnect u8 enable; }; +/** + * @brief An enumeration of the type of ports that can be added + * to a bridge domain + */ +enum l2_port_type +{ + /* a 'normal' interface, i.e. not BVI or UU-Flood */ + L2_API_PORT_TYPE_NORMAL = 0, + /* a BVI interface in the BD */ + L2_API_PORT_TYPE_BVI = 1, + /* The interface on which to forward unknown unicast packets + * If this is not set for a BD then UU is flooded */ + L2_API_PORT_TYPE_UU_FWD = 2, +}; + /** \brief Interface bridge mode request @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -428,14 +453,15 @@ autoreply define sw_interface_set_l2_xconnect @param shg - Split 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; + vl_api_l2_port_type_t port_type; u8 shg; - u8 bvi; u8 enable; }; -- cgit 1.2.3-korg