Fix neighbor discovery ethernet address saving

When a successful neighbor advertisement is received, the ethernet
address should be saved for later use to avoid having to redo the
neighbor discovery process.

For example, with TFTP the address should get saved into
"net_server_ethaddr".  This is being done correctly with ARP for IPv4,
but not for neighbor discovery with IPv6.

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
This commit is contained in:
Sean Edmond 2024-04-29 11:51:16 -07:00 committed by Tom Rini
parent eeee0e2b85
commit ec9263b4f1

View file

@ -460,8 +460,8 @@ int ndisc_receive(struct ethernet_hdr *et, struct ip6_hdr *ip6, int len)
ndisc_extract_enetaddr(ndisc, neigh_eth_addr);
/* save address for later use */
if (!net_nd_packet_mac)
net_nd_packet_mac = neigh_eth_addr;
if (net_nd_packet_mac)
memcpy(net_nd_packet_mac, neigh_eth_addr, 6);
/* modify header, and transmit it */
memcpy(((struct ethernet_hdr *)net_nd_tx_packet)->et_dest,