(if it is buggy then the bugs should be fixed -- it's been applied in pld ac for ages)
svn-id: @9102
{
# detect network device type (ie. dummy, eth for dummy0, eth0 ..)
if [ -z "$DEVICETYPE" ]; then
- DEVICETYPE=$(echo $DEVICE | awk ' { gsub(/[0-9]*\.?[0-9]*$/,NUL); print $0 } ')
+ DEVICETYPE=$(echo $DEVICE | awk ' { gsub(/[\.:]?[0-9]*[\.:]?[0-9]*$/,NUL); print $0 } ')
fi
# Setup DEVICETYPE for special cases.
fi
# real name of device (ie. is eth0 for eth0,eth0:1,eth0:alias)
+ SUBDEVICE=$(echo "$DEVICE" | egrep "([0-9]+:[0-9]+)" )
DEVICE=$(echo $DEVICE | awk ' { gsub(/:.*$/,NUL); print $0 } ')
eval IP4ADDR="\$IPADDR${IP4_PRIM_IF:-}"
ip link set ${DEVICE} down
fi
else
- ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
- ip link set ${DEVICE} down
+ if [ -n "${SUBDEVICE}" ]; then
+ ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE}
+ else
+ ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
+ ip link set ${DEVICE} down
+ fi
fi
if [ "$HANDLING" = "4" ]; then
IP4ADDROPT="brd + ${IP4ADDROPT}"
fi
+ if [ -n "${SUBDEVICE}" ]; then
+ ALIAS="label ${SUBDEVICE}"
+ fi
+
if [ -n "$REMIP" ]; then
- ip addr add ${IP4ADDR} peer ${REMIP} dev ${DEVICE} ${IP4ADDROPT}
+ ip addr add ${IP4ADDR} peer ${REMIP} ${ALIAS} dev ${DEVICE} ${IP4ADDROPT}
else
- ip addr add ${IP4ADDR} dev ${DEVICE} ${IP4ADDROPT}
+ ip addr add ${IP4ADDR} ${ALIAS} dev ${DEVICE} ${IP4ADDROPT}
fi
fi