summaryrefslogtreecommitdiffstats
path: root/src/vnet/ethernet/ethernet.h
diff options
context:
space:
mode:
authorMatthew G Smith <mgsmith@netgate.com>2019-09-04 15:01:04 -0500
committerDamjan Marion <dmarion@me.com>2019-10-02 12:12:21 +0000
commitd459bf344e20ffb38a869c9fef2211f55d766b02 (patch)
tree18dca2c1534c5b871b180453763a2e2e7b5ef56a /src/vnet/ethernet/ethernet.h
parentdd4d8ac29202fe54e74a13ce86d1ba3f79d1555f (diff)
ethernet: dmac filter checks secondary mac addrs
Maintain a list of secondary MAC addresses on ethernet_interface_t. In ethernet-input dmac filtering, If packets do not match the primary interface hardware address, check to see if they match the other addresses. Type: feature Change-Id: Ie0edf45cae0d85c038a61086c47b3ae82d7e162d Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Diffstat (limited to 'src/vnet/ethernet/ethernet.h')
-rw-r--r--src/vnet/ethernet/ethernet.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vnet/ethernet/ethernet.h b/src/vnet/ethernet/ethernet.h
index 344705b0cc3..821a576ddf5 100644
--- a/src/vnet/ethernet/ethernet.h
+++ b/src/vnet/ethernet/ethernet.h
@@ -154,6 +154,9 @@ typedef struct ethernet_interface
/* Ethernet (MAC) address for this interface. */
u8 address[6];
+
+ /* Secondary MAC addresses for this interface */
+ mac_address_t *secondary_addrs;
} ethernet_interface_t;
extern vnet_hw_interface_class_t ethernet_hw_interface_class;
@@ -310,6 +313,10 @@ ethernet_get_type_info (ethernet_main_t * em, ethernet_type_t type)
ethernet_interface_t *ethernet_get_interface (ethernet_main_t * em,
u32 hw_if_index);
+mac_address_t *ethernet_interface_add_del_address (ethernet_main_t * em,
+ u32 hw_if_index,
+ const u8 * address,
+ u8 is_add);
clib_error_t *ethernet_register_interface (vnet_main_t * vnm,
u32 dev_class_index,