From bcca0a027786c0d23f3f70c9f21b3332f41786e1 Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Thu, 27 Feb 2014 12:48:12 +0100 Subject: Add option to bypass Duplicate Address Detection After several requests, here is SkipDAD to bypass Duplicate Address Detection. --- src/lib/ip | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/lib/ip') diff --git a/src/lib/ip b/src/lib/ip index a93eaee..4698595 100644 --- a/src/lib/ip +++ b/src/lib/ip @@ -117,7 +117,7 @@ ip_set() { ;; stateless|static) for addr in "${Address6[@]}"; do - if ! do_debug ip -6 addr add $addr dev "$Interface"; then + if ! do_debug ip -6 addr add $addr $(is_yes "${SkipDAD:-no}" && printf nodad) dev "$Interface"; then report_error "Could not add address '$addr' to interface '$Interface'" fi done @@ -125,10 +125,12 @@ ip_set() { esac if [[ $IP6 ]]; then - # Wait for Duplicate Address Detection to finish - if ! timeout_wait "${TimeoutDAD:-3}" '[[ -z "$(ip -6 addr show dev "$Interface" tentative)" ]]'; then - report_error "Duplicate Address Detection is taking too long on interface '$Interface'" - return 1 + if ! is_yes "${SkipDAD:-no}"; then + # Wait for Duplicate Address Detection to finish + if ! timeout_wait "${TimeoutDAD:-3}" '[[ -z "$(ip -6 addr show dev "$Interface" tentative)" ]]'; then + report_error "Duplicate Address Detection is taking too long on interface '$Interface'" + return 1 + fi fi # Add static IPv6 routes after DAD has finished -- cgit v1.2.3-24-g4f1b