(struct vnet_hw_interface_t * hi,
const u8 * old_address, const u8 * new_address);
+/* Interface add/del additional mac address callback */
+typedef clib_error_t *(vnet_interface_add_del_mac_address_function_t)
+ (struct vnet_hw_interface_t * hi, const u8 * address, u8 is_add);
+
/* Interface set rx mode callback. */
typedef clib_error_t *(vnet_interface_set_rx_mode_function_t)
(struct vnet_main_t * vnm, u32 if_index, u32 queue_id,
/* Function to set mac address. */
vnet_interface_set_mac_address_function_t *mac_addr_change_function;
+
+ /* Function to add/delete additional MAC addresses */
+ vnet_interface_add_del_mac_address_function_t *mac_addr_add_del_function;
} vnet_device_class_t;
#ifndef CLIB_MARCH_VARIANT
/* Function to call when link MAC changes. */
vnet_interface_set_mac_address_function_t *mac_addr_change_function;
+ /* Function to add/delete additional MAC addresses */
+ vnet_interface_add_del_mac_address_function_t *mac_addr_add_del_function;
+
/* Format function to display interface name. */
format_function_t *format_interface_name;
that packets flow over. */
typedef struct vnet_hw_interface_t
{
+ CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
/* Interface name. */
u8 *name;
/* numa node that hardware device connects to */
u8 numa_node;
- u8 padding[3];
+ /* trace */
+ i32 n_trace;
+
+ u32 trace_classify_table_index;
} vnet_hw_interface_t;
extern vnet_device_class_t vnet_local_interface_device_class;