ethernet: mac must support 64-bits loads
ethernet dataplane loads MAC addresses as 64-bits loads for efficiency. We must make sure it is valid, especially for the vector of secondary MACs. Type: fix Change-Id: I851e319b8a973c154e85ff9f05f3b8e385939788 Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
41c0f45a56
commit
b44c77d01d
@@ -738,8 +738,8 @@ dhcp_proxy_to_client_input (vlib_main_t * vm,
|
||||
|
||||
hi0 = vnet_get_sup_hw_interface (vnm, original_sw_if_index);
|
||||
ei0 = pool_elt_at_index (em->interfaces, hi0->hw_instance);
|
||||
clib_memcpy (mac0->src_address, ei0->address,
|
||||
sizeof (ei0->address));
|
||||
clib_memcpy (mac0->src_address, &ei0->address,
|
||||
sizeof (mac0->src_address));
|
||||
clib_memset (mac0->dst_address, 0xff, sizeof (mac0->dst_address));
|
||||
|
||||
if (si0->type == VNET_SW_INTERFACE_TYPE_SUB
|
||||
|
@@ -71,7 +71,7 @@ generate_client_duid (void)
|
||||
/* *INDENT-ON* */
|
||||
|
||||
if (eth_if)
|
||||
clib_memcpy (client_duid.lla, eth_if->address, 6);
|
||||
clib_memcpy (client_duid.lla, ð_if->address, 6);
|
||||
else
|
||||
{
|
||||
clib_warning ("Failed to find any Ethernet interface, "
|
||||
|
@@ -784,7 +784,8 @@ dhcpv6_proxy_to_client_input (vlib_main_t * vm,
|
||||
|
||||
hi0 = vnet_get_sup_hw_interface (vnm, original_sw_if_index);
|
||||
ei0 = pool_elt_at_index (em->interfaces, hi0->hw_instance);
|
||||
clib_memcpy (mac0->src_address, ei0->address, sizeof (ei0->address));
|
||||
clib_memcpy (mac0->src_address, &ei0->address,
|
||||
sizeof (mac0->src_address));
|
||||
clib_memset (&mac0->dst_address, 0xff, sizeof (mac0->dst_address));
|
||||
|
||||
if (si0->type == VNET_SW_INTERFACE_TYPE_SUB && outer_vlan != (u32) ~ 0)
|
||||
|
Reference in New Issue
Block a user