summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/vnet/ethernet/node.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c
index b699e381f91..5a811fdadbb 100755
--- a/src/vnet/ethernet/node.c
+++ b/src/vnet/ethernet/node.c
@@ -412,9 +412,11 @@ ethernet_input_inline (vlib_main_t * vm,
else
{
if (!ethernet_address_cast (e0->dst_address) &&
+ (hi->hw_address != 0) &&
!eth_mac_equal ((u8 *) e0, hi->hw_address))
error0 = ETHERNET_ERROR_L3_MAC_MISMATCH;
if (!ethernet_address_cast (e1->dst_address) &&
+ (hi->hw_address != 0) &&
!eth_mac_equal ((u8 *) e1, hi->hw_address))
error1 = ETHERNET_ERROR_L3_MAC_MISMATCH;
determine_next_node (em, variant, 0, type0, b0,
@@ -628,6 +630,7 @@ ethernet_input_inline (vlib_main_t * vm,
else
{
if (!ethernet_address_cast (e0->dst_address) &&
+ (hi->hw_address != 0) &&
!eth_mac_equal ((u8 *) e0, hi->hw_address))
error0 = ETHERNET_ERROR_L3_MAC_MISMATCH;
determine_next_node (em, variant, 0, type0, b0,