aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ethernet/ethernet.h
diff options
context:
space:
mode:
authorJohn Lo <loj@cisco.com>2016-06-04 00:02:37 -0400
committerJohn Lo <loj@cisco.com>2016-06-04 00:02:37 -0400
commit19042148849d2a71a79277f73aafbbd1b9478466 (patch)
tree82a713b4ee0a008f010fb3eacf5b60143584f01a /vnet/vnet/ethernet/ethernet.h
parent2671f1188d41313a6b54f5bd3d83973850f34934 (diff)
VPP-113: BVI shall filter unicast DMAC for L2 to L3 forwading
As BVI receive a packet with unicast DMAC from the BD, including unknown unicast flood packet, the packet should not be L3 forwarded unless its DMAC matches the MAC of the BVI. Change-Id: I46e18629c901062592c8ebe3a238c5cfdc1096b4 Signed-off-by: John Lo <loj@cisco.com>
Diffstat (limited to 'vnet/vnet/ethernet/ethernet.h')
-rw-r--r--vnet/vnet/ethernet/ethernet.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/vnet/vnet/ethernet/ethernet.h b/vnet/vnet/ethernet/ethernet.h
index f519f4f3190..97c66e7593a 100644
--- a/vnet/vnet/ethernet/ethernet.h
+++ b/vnet/vnet/ethernet/ethernet.h
@@ -472,6 +472,14 @@ eth_identify_subint (vnet_hw_interface_t * hi,
return 1;
}
+// Compare two ethernet macs. Return 1 if they are the same, 0 if different
+always_inline u32
+eth_mac_equal (u8 * mac1, u8 * mac2) {
+ return (*((u32 *)(mac1+0)) == *((u32 *)(mac2+0)) &&
+ *((u32 *)(mac1+2)) == *((u32 *)(mac2+2)));
+}
+
+
always_inline ethernet_main_t *
vnet_get_ethernet_main (void)
{