Replicate r328271 from legacy IP to IPv6 using a single macro
to clear L2 and L3 route caches. Also mark one function argument as __unused. Reviewed by: karels, ae Approved by: re (rgrimes) Differential Revision: https://reviews.freebsd.org/D17007
This commit is contained in:
parent
f6aeb1eee5
commit
ec86402ecd
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=338450
@ -846,13 +846,10 @@ in6_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifnet *ifp)
|
||||
* (by a redirect), time to try a default gateway again.
|
||||
*/
|
||||
void
|
||||
in6_losing(struct inpcb *in6p)
|
||||
in6_losing(struct inpcb *inp)
|
||||
{
|
||||
|
||||
RO_RTFREE(&in6p->inp_route6);
|
||||
if (in6p->inp_route6.ro_lle)
|
||||
LLE_FREE(in6p->inp_route6.ro_lle); /* zeros ro_lle */
|
||||
return;
|
||||
RO_INVALIDATE_CACHE(&inp->inp_route6);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -860,12 +857,10 @@ in6_losing(struct inpcb *in6p)
|
||||
* and allocate a (hopefully) better one.
|
||||
*/
|
||||
struct inpcb *
|
||||
in6_rtchange(struct inpcb *inp, int errno)
|
||||
in6_rtchange(struct inpcb *inp, int errno __unused)
|
||||
{
|
||||
|
||||
RO_RTFREE(&in6p->inp_route6);
|
||||
if (inp->inp_route6.ro_lle)
|
||||
LLE_FREE(inp->inp_route6.ro_lle); /* zeros ro_lle */
|
||||
RO_INVALIDATE_CACHE(&inp->inp_route6);
|
||||
return inp;
|
||||
}
|
||||
|
||||
|
@ -804,22 +804,16 @@ ip6_output(struct mbuf *m0, struct ip6_pktopts *opt,
|
||||
error = netisr_queue(NETISR_IPV6, m);
|
||||
goto done;
|
||||
} else {
|
||||
RO_RTFREE(ro);
|
||||
RO_INVALIDATE_CACHE(ro);
|
||||
needfiblookup = 1; /* Redo the routing table lookup. */
|
||||
if (ro->ro_lle)
|
||||
LLE_FREE(ro->ro_lle); /* zeros ro_lle */
|
||||
ro->ro_lle = NULL;
|
||||
}
|
||||
}
|
||||
/* See if fib was changed by packet filter. */
|
||||
if (fibnum != M_GETFIB(m)) {
|
||||
m->m_flags |= M_SKIP_FIREWALL;
|
||||
fibnum = M_GETFIB(m);
|
||||
RO_RTFREE(ro);
|
||||
RO_INVALIDATE_CACHE(ro);
|
||||
needfiblookup = 1;
|
||||
if (ro->ro_lle)
|
||||
LLE_FREE(ro->ro_lle); /* zeros ro_lle */
|
||||
ro->ro_lle = NULL;
|
||||
}
|
||||
if (needfiblookup)
|
||||
goto again;
|
||||
|
Loading…
Reference in New Issue
Block a user