+/** \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 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
+ @param rx_sw_if_index - the interface
+ @param bd_id - bridge domain id
+ @param port_type - port_mode, see #l2_port_type
+ @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 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 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;
+ u8 is_add;
+ 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
+ @param bd_id - bridge domain table id
+ @param is_ipv6 - if non-zero, ipv6 address, else ipv4 address
+ @param ip_address - ipv4 or ipv6 address
+ @param mac_address - MAC address
+*/
+define bd_ip_mac_details
+{
+ u32 context;
+ vl_api_bd_ip_mac_t entry;
+};
+
+/** \brief Dump bridge domain IP to MAC entries
+ @param client_index - opaque cookie to identify the sender
+ @param bd_id - bridge domain identifier
+*/
+define bd_ip_mac_dump
+{
+ u32 client_index;
+ u32 context;
+ u32 bd_id;
+};
+
+/** \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;
+ u8 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;
+};
+
+/** \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;
+};
+