1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00
freebsd/usr.sbin/ndp
Alexander V. Chernikov 22f24233ba Fix arp/ndp deletion broken by 2fe5a79425.
Changes in the 2fe5a79425 moved dst sockaddr masking from the
 routing control plane to the rtsock code.

It broke arp/ndp deletion.
It turns out, arp/ndp perform RTM_GET request first to get an
 interface index necessary for the deletion.
Then they simply stamp the reply with RTF_LLDATA and set the
 command to RTM_DELETE.
As a result, kernel receives request with non-empty RTA_NETMASK
 and clears RTA_DST host bits before passing the message to the
 lla code.

De facto, the only needed bits are RTA_DST, RTA_GATEWAY and the
 subset of rtm_flags.

With that in mind, fix the interace by clearing RTA_NETMASK
 for every messages with RTF_LLDATA.

While here, cleanup arp/ndp code a bit.

Reviewed by:	gnn
Differential Revision:	https://reviews.freebsd.org/D28804

(cherry picked from commit f9e1cd6c99)
2021-03-10 21:48:24 +00:00
..
Makefile
Makefile.depend
ndp.8
ndp.c Fix arp/ndp deletion broken by 2fe5a79425. 2021-03-10 21:48:24 +00:00