summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2015-04-22 20:42:17 +0000
committerae <ae@FreeBSD.org>2015-04-22 20:42:17 +0000
commita09a1acc0194e0c31432edea821d303e914c34e4 (patch)
treedd13c7f5aecc8e9c01e5c3a0a3d7dbc9aed5f2a9 /sys/netinet6
parent1350ebc78fafc01a0fce25107b7a62c2cd21d797 (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/netinet6/nd6.c3
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);
OpenPOWER on IntegriCloud