diff options
author | ae <ae@FreeBSD.org> | 2015-04-22 20:42:17 +0000 |
---|---|---|
committer | ae <ae@FreeBSD.org> | 2015-04-22 20:42:17 +0000 |
commit | a09a1acc0194e0c31432edea821d303e914c34e4 (patch) | |
tree | dd13c7f5aecc8e9c01e5c3a0a3d7dbc9aed5f2a9 /sys/netinet6 | |
parent | 1350ebc78fafc01a0fce25107b7a62c2cd21d797 (diff) | |
download | FreeBSD-src-a09a1acc0194e0c31432edea821d303e914c34e4.zip FreeBSD-src-a09a1acc0194e0c31432edea821d303e914c34e4.tar.gz |
MFC r274988 (with modification):
Skip L2 addresses lookups for tunneling interfaces.
PR: 197286
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6.c | 2 | ||||
-rw-r--r-- | sys/netinet6/nd6.c | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 6a8a155..609efa7 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -155,6 +155,8 @@ in6_ifaddloop(struct ifaddr *ifa) ia = ifa2ia6(ifa); ifp = ifa->ifa_ifp; + if (nd6_need_cache(ifp) == 0) + return; IF_AFDATA_LOCK(ifp); ifa->ifa_rtrequest = nd6_rtrequest; ln = lla_lookup(LLTABLE6(ifp), (LLE_CREATE | LLE_IFADDR | diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index fb3c995..1db6809 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -2185,9 +2185,6 @@ nd6_need_cache(struct ifnet *ifp) case IFT_IEEE80211: #endif case IFT_INFINIBAND: - case IFT_GIF: /* XXX need more cases? */ - case IFT_PPP: - case IFT_TUNNEL: case IFT_BRIDGE: case IFT_PROPVIRTUAL: return (1); |