From 94de0377ab158849ffeb7338106a95b32a538d34 Mon Sep 17 00:00:00 2001 From: hrs Date: Thu, 23 Jul 2015 19:58:56 +0000 Subject: [PATCH] MFC r282805: - Remove ND6_IFF_IGNORELOOP. This functionality was useless in practice because a link where looped back NS messages are permanently observed does not work with either NDP or ARP for IPv4. - draft-ietf-6man-enhanced-dad is now RFC 7527. Approved by: re (gjb) git-svn-id: svn://svn.freebsd.org/base/stable/10@285825 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sbin/ifconfig/af_inet6.c | 2 -- sbin/ifconfig/ifconfig.8 | 11 +---------- sys/netinet6/nd6.h | 3 +-- sys/netinet6/nd6_nbr.c | 17 +++-------------- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index 321bf5b8b..845aa6671 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -485,8 +485,6 @@ static struct cmd inet6_cmds[] = { DEF_CMD("-no_prefer_iface",-ND6_IFF_NO_PREFER_IFACE,setnd6flags), DEF_CMD("no_dad", ND6_IFF_NO_DAD, setnd6flags), DEF_CMD("-no_dad", -ND6_IFF_NO_DAD, setnd6flags), - DEF_CMD("ignoreloop", ND6_IFF_IGNORELOOP, setnd6flags), - DEF_CMD("-ignoreloop", -ND6_IFF_IGNORELOOP, setnd6flags), DEF_CMD_ARG("pltime", setip6pltime), DEF_CMD_ARG("vltime", setip6vltime), DEF_CMD("eui64", 0, setip6eui64), diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index b24b6a042..6152e39cd 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd May 15, 2015 +.Dd July 24, 2015 .Dt IFCONFIG 8 .Os .Sh NAME @@ -749,15 +749,6 @@ Set a flag to disable Duplicate Address Detection. .It Cm -no_dad Clear a flag .Cm no_dad . -.It Cm ignoreloop -Set a flag to disable loopback detection in Enhanced Duplicate Address -Detection Algorithm. -When this flag is set, -Duplicate Address Detection will stop in a finite number of probings -even if a loopback configuration is detected. -.It Cm -ignoreloop -Clear a flag -.Cm ignoreloop . .El .Pp The following parameters are specific for IPv6 addresses. diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h index d664a94f9..7a8368157 100644 --- a/sys/netinet6/nd6.h +++ b/sys/netinet6/nd6.h @@ -87,8 +87,7 @@ struct nd_ifinfo { #define ND6_IFF_AUTO_LINKLOCAL 0x20 #define ND6_IFF_NO_RADR 0x40 #define ND6_IFF_NO_PREFER_IFACE 0x80 /* XXX: not related to ND. */ -#define ND6_IFF_IGNORELOOP 0x100 -#define ND6_IFF_NO_DAD 0x200 +#define ND6_IFF_NO_DAD 0x100 #define ND6_CREATE LLE_CREATE #define ND6_EXCLUSIVE LLE_EXCLUSIVE diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index d5f40f9ca..2272cd094 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -1450,10 +1450,9 @@ nd6_dad_timer(struct dadq *dp) dp->dad_ns_lcount > 0 && dp->dad_ns_lcount > dp->dad_loopbackprobe) { /* - * A looped back probe is detected, - * Sec. 4.1 in draft-ietf-6man-enhanced-dad-13 - * requires transmission of additional probes until - * the loopback condition becomes clear. + * Sec. 4.1 in RFC 7527 requires transmission of + * additional probes until the loopback condition + * becomes clear when a looped back probe is detected. */ log(LOG_ERR, "%s: a looped back NS message is " "detected during DAD for %s. " @@ -1461,16 +1460,6 @@ nd6_dad_timer(struct dadq *dp) if_name(ifa->ifa_ifp), ip6_sprintf(ip6buf, IFA_IN6(ifa))); dp->dad_loopbackprobe = dp->dad_ns_lcount; - /* - * An interface with IGNORELOOP is one which a - * loopback is permanently expected while regular - * traffic works. In that case, stop DAD after - * MAX_MULTICAST_SOLICIT number of NS messages - * regardless of the number of received loopback NS - * by increasing dad_loopbackprobe in advance. - */ - if (ND_IFINFO(ifa->ifa_ifp)->flags & ND6_IFF_IGNORELOOP) - dp->dad_loopbackprobe += V_nd6_mmaxtries; /* * Send an NS immediately and increase dad_count by * V_nd6_mmaxtries - 1. -- 2.45.0