Print this page
NEX-7823 ipmgmtd can't properly remove interface from the old ipadm.conf format
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
@@ -17,17 +17,18 @@
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
+
#
+# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
+# All rights reserved.
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
# Copyright 2012 Milan Jurik. All rights reserved.
+# Copyright 2016 Nexenta Systems, Inc.
#
-# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
-# All rights reserved.
-#
. /lib/svc/share/smf_include.sh
. /lib/svc/share/net_include.sh
#
@@ -305,10 +306,25 @@
done
[ -n "$ipmp6_failed" ] && warn_failed_ifs "create IPv6 IPMP" \
"$ipmp6_failed"
fi
+#
+# Upgrade ipadm.conf.
+#
+if /usr/bin/grep -q _family /etc/ipadm/ipadm.conf; then
+ oldifs=$(/usr/bin/sed -En \
+ 's/^_ifname=([a-z0-9]+);_family=[0-9]+;$/\1/p' \
+ /etc/ipadm/ipadm.conf | /usr/bin/sort -u)
+ /usr/bin/sed -i '/_family/d' /etc/ipadm/ipadm.conf
+ for oldif in $oldifs; do
+ /usr/bin/printf \
+ "_ifname=%s;_ifclass=0;_families=2,26;\n" \
+ $oldif >> /etc/ipadm/ipadm.conf
+ done
+fi
+
#
# Finally configure interfaces set up with ipadm. Any /etc/hostname*.intf
# files take precedence over ipadm defined configurations except when
# we are in a non-global zone and Layer-3 protection of IP addresses is
# enforced on the interface by the global zone.