6964123 cannot use 'ifconfig plumb' if persistent ipadm info exists
authorVasumathi Sundaram <Vasumathi.Sundaram@oracle.COM>
Tue, 29 Jun 2010 12:42:37 -0400
changeset 12728 8cbcb3d0424a
parent 12727 b22078d749b2
child 12729 c5742d0d507e
6964123 cannot use 'ifconfig plumb' if persistent ipadm info exists
usr/src/lib/libipadm/common/ipadm_if.c
--- a/usr/src/lib/libipadm/common/ipadm_if.c	Tue Jun 29 08:46:27 2010 -0700
+++ b/usr/src/lib/libipadm/common/ipadm_if.c	Tue Jun 29 12:42:37 2010 -0400
@@ -1252,15 +1252,17 @@
 	if (ipadm_if_enabled(iph, ifname, af))
 		return (IPADM_IF_EXISTS);
 
-	status = i_ipadm_if_pexists(iph, ifname, af, &p_exists);
-	if (status != IPADM_SUCCESS)
-		return (status);
-	other_af = (af == AF_INET ? AF_INET6 : AF_INET);
-	if (p_exists) {
-		if (!ipadm_if_enabled(iph, ifname, other_af))
-			return (IPADM_OP_DISABLE_OBJ);
-		else
-			ipadm_flags &= ~IPADM_OPT_PERSIST;
+	if (!(iph->iph_flags & IPH_LEGACY)) {
+		status = i_ipadm_if_pexists(iph, ifname, af, &p_exists);
+		if (status != IPADM_SUCCESS)
+			return (status);
+		other_af = (af == AF_INET ? AF_INET6 : AF_INET);
+		if (p_exists) {
+			if (!ipadm_if_enabled(iph, ifname, other_af))
+				return (IPADM_OP_DISABLE_OBJ);
+			else
+				ipadm_flags &= ~IPADM_OPT_PERSIST;
+		}
 	}
 
 	return (i_ipadm_plumb_if(iph, ifname, af, ipadm_flags));