]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix 'in6_purgeaddr: err=65, destination address delete failed' message.
authorAlexander V. Chernikov <melifaro@FreeBSD.org>
Mon, 8 Mar 2021 20:27:29 +0000 (20:27 +0000)
committerAlexander V. Chernikov <melifaro@FreeBSD.org>
Mon, 8 Mar 2021 21:28:35 +0000 (21:28 +0000)
commit7634919e15f1147b6f26d55354be375bc9b198db
tree596f88261add23f8b6629303396091eccceea88b
parentf2f8405cf6b50a9d91acc02073abf1062d9d34f4
Fix 'in6_purgeaddr: err=65, destination address delete failed' message.

P2P ifa may require 2 routes: one is the loopback route, another is
 the "prefix" route towards its destination.

Current code marks loopback routes existence with IFA_RTSELF and
 "prefix" p2p routes with IFA_ROUTE.

For historic reasons, we fill in ifa_dstaddr for loopback interfaces.
To avoid installing the same route twice, we preemptively set
 IFA_RTSELF when adding "prefix" route for loopback.
However, the teardown part doesn't have this hack, so we try to
 remove the same route twice.

Fix this by checking if ifa_dstaddr is different from the ifa_addr
 and moving this logic into a separate function.

Reviewed By: kp
Differential Revision: https://reviews.freebsd.org/D29121
MFC after: 3 days
sys/netinet6/in6.c