aboutsummaryrefslogtreecommitdiff
path: root/targets
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2021-02-19 21:09:17 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2021-02-19 21:17:17 +0000
commitf9e1cd6c99200846b324a8b65f7f31ded74013bd (patch)
treee1de91c2b590f2e9c4a7b0a6bceda69a8d23240e /targets
parenta78bb831a17f9ba4b3d833ae6a9c2ce4f5cb5d1e (diff)
downloadsrc-f9e1cd6c99200846b324a8b65f7f31ded74013bd.tar.gz
src-f9e1cd6c99200846b324a8b65f7f31ded74013bd.zip
Fix arp/ndp deletion broken by 2fe5a79425c7.
Changes in the 2fe5a79425c7 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. MFC after: 1 day Reviewed by: gnn Differential Revision: https://reviews.freebsd.org/D28804
Diffstat (limited to 'targets')
0 files changed, 0 insertions, 0 deletions