diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2021-02-19 21:09:17 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2021-02-19 21:17:17 +0000 |
commit | f9e1cd6c99200846b324a8b65f7f31ded74013bd (patch) | |
tree | e1de91c2b590f2e9c4a7b0a6bceda69a8d23240e /targets/Makefile | |
parent | a78bb831a17f9ba4b3d833ae6a9c2ce4f5cb5d1e (diff) | |
download | src-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/Makefile')
0 files changed, 0 insertions, 0 deletions