From b44c77d01dcf9ebf80d7bcab097515ad8135bc05 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Tue, 20 Oct 2020 16:24:17 +0200 Subject: ethernet: mac must support 64-bits loads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/vnet/ip6-nd/ip6_nd.c | 4 ++-- src/vnet/ip6-nd/ip6_ra.c | 4 ++-- src/vnet/ip6-nd/rd_cp.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/vnet/ip6-nd') diff --git a/src/vnet/ip6-nd/ip6_nd.c b/src/vnet/ip6-nd/ip6_nd.c index a8f7f15aa94..da4966657c7 100644 --- a/src/vnet/ip6-nd/ip6_nd.c +++ b/src/vnet/ip6-nd/ip6_nd.c @@ -263,7 +263,7 @@ icmp6_neighbor_solicitation_or_advertisement (vlib_main_t * vm, ethernet_get_interface (ðernet_main, sw_if0->hw_if_index); if (eth_if0 && o0) { - clib_memcpy (o0->ethernet_address, eth_if0->address, 6); + clib_memcpy (o0->ethernet_address, ð_if0->address, 6); o0->header.type = ICMP6_NEIGHBOR_DISCOVERY_OPTION_target_link_layer_address; } @@ -284,7 +284,7 @@ icmp6_neighbor_solicitation_or_advertisement (vlib_main_t * vm, eth0 = vlib_buffer_get_current (p0); clib_memcpy (eth0->dst_address, eth0->src_address, 6); if (eth_if0) - clib_memcpy (eth0->src_address, eth_if0->address, 6); + clib_memcpy (eth0->src_address, ð_if0->address, 6); /* Setup input and output sw_if_index for packet */ ASSERT (vnet_buffer (p0)->sw_if_index[VLIB_RX] == sw_if_index0); diff --git a/src/vnet/ip6-nd/ip6_ra.c b/src/vnet/ip6-nd/ip6_ra.c index 5605939c092..2bfa4251480 100644 --- a/src/vnet/ip6-nd/ip6_ra.c +++ b/src/vnet/ip6-nd/ip6_ra.c @@ -477,7 +477,7 @@ icmp6_router_solicitation (vlib_main_t * vm, /* copy ll address */ clib_memcpy (&h.ethernet_address[0], - eth_if0->address, 6); + ð_if0->address, 6); if (vlib_buffer_add_data (vm, &bi0, (void *) &h, @@ -633,7 +633,7 @@ icmp6_router_solicitation (vlib_main_t * vm, eth0 = vlib_buffer_get_current (p0); clib_memcpy (eth0->dst_address, eth0->src_address, 6); - clib_memcpy (eth0->src_address, eth_if0->address, + clib_memcpy (eth0->src_address, ð_if0->address, 6); next0 = is_dropped ? next0 : diff --git a/src/vnet/ip6-nd/rd_cp.c b/src/vnet/ip6-nd/rd_cp.c index 9c5d2b9aaf0..bab1b6520a4 100644 --- a/src/vnet/ip6-nd/rd_cp.c +++ b/src/vnet/ip6-nd/rd_cp.c @@ -211,7 +211,7 @@ get_interface_mac_address (u32 sw_if_index, u8 mac[]) return 1; } - clib_memcpy_fast (mac, eth_if->address, 6); + clib_memcpy_fast (mac, ð_if->address, 6); return 0; } -- cgit 1.2.3-korg