diff options
-rwxr-xr-x | src/vnet/ethernet/node.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/ethernet/node.c b/src/vnet/ethernet/node.c index 5305012f26d..13474a43ad0 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, |