diff usr/src/uts/common/inet/ip/ip6_if.c @ 12016:0248e987199b

PSARC 2009/306 Brussels II - ipadm and libipadm PSARC 2010/080 Brussels II addendum 6827318 Brussels Phase II aka ipadm(1m) 6731945 need BSD getifaddrs() API 6909065 explicitly disallow non-contiguous netmasks in the next minor release 6853922 ifconfig dumps core when ether address is non-hexadecimal. 6815806 ipReasmTimeout value should be variable 6567083 nd_getset has some dead and confusing code. 6884466 remove unused tcp/sctp ndd tunables 6928813 Comments at odds with default value of tcp_time_wait_interval 6236982 ifconfig usesrc lets adapter use itself as source address 6936855 modifying the ip6_strict_src_multihoming to non-zero value will unbind V4 IREs
author Girish Moodalbail <Girish.Moodalbail@Sun.COM>
date Fri, 26 Mar 2010 17:53:11 -0400
parents 96cf4782fa0f
children 40c62600acd3
line wrap: on
line diff
--- a/usr/src/uts/common/inet/ip/ip6_if.c	Fri Mar 26 14:31:08 2010 -0700
+++ b/usr/src/uts/common/inet/ip/ip6_if.c	Fri Mar 26 17:53:11 2010 -0400
@@ -56,6 +56,7 @@
 
 #include <inet/common.h>
 #include <inet/nd.h>
+#include <inet/tunables.h>
 #include <inet/mib2.h>
 #include <inet/ip.h>
 #include <inet/ip6.h>
@@ -1153,6 +1154,14 @@
 	ASSERT(IAM_WRITER_ILL(ill));
 
 	/*
+	 * If the interface was created with no link-local address
+	 * on it and the flag ILLF_NOLINKLOCAL was set, then we
+	 * dont want to update the link-local.
+	 */
+	if ((ill->ill_flags & ILLF_NOLINKLOCAL) &&
+	    IN6_IS_ADDR_UNSPECIFIED(&ipif->ipif_v6lcl_addr))
+		return;
+	/*
 	 * ill_manual_linklocal is set when the link-local address was
 	 * manually configured.
 	 */