diff options
author | Benoît Ganne <bganne@cisco.com> | 2020-10-20 16:24:17 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-11-13 11:17:50 +0000 |
commit | b44c77d01dcf9ebf80d7bcab097515ad8135bc05 (patch) | |
tree | 71070f6ea6b5dc989730e1775f6c7916a07938fc /src/vnet/ip6-nd | |
parent | 41c0f45a56d4db5b2ee4ae4fff7f3f0571a23189 (diff) |
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>
Diffstat (limited to 'src/vnet/ip6-nd')
-rw-r--r-- | src/vnet/ip6-nd/ip6_nd.c | 4 | ||||
-rw-r--r-- | src/vnet/ip6-nd/ip6_ra.c | 4 | ||||
-rw-r--r-- | src/vnet/ip6-nd/rd_cp.c | 2 |
3 files changed, 5 insertions, 5 deletions
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; } |