123456789101112131415161718192021222324252627282930313233343536 |
- #!/bin/sh
- [ -x /sbin/vconfig ] || exit 0
- [ -d /proc/net/vlan ] || exit 0
- case "$IFACE" in
- vlan*)
- vconfig set_name_type VLAN_PLUS_VID_NO_PAD
- VLANID=`echo $IFACE|sed "s/vlan*//"`
- ;;
- eth*.*)
- vconfig set_name_type DEV_PLUS_VID_NO_PAD
- VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.*//g"`
- IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/"`
- ;;
- *)
- exit 0
- ;;
- esac
- if [ "$IF_VLAN_RAW_DEVICE" != "" ]; then
- if ! grep -q "$IF_VLAN_RAW_DEVICE" /proc/net/dev
- then
- echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE"
- exit 1
- fi
- ip link set up dev $IF_VLAN_RAW_DEVICE
- vconfig add $IF_VLAN_RAW_DEVICE $VLANID
- if [ "$IF_MAC_ADDRESS" != "" ]
- then
- ip link set $IF_VLAN_RAW_DEVICE.$VLANID address $IF_MAC_ADDRESS
- fi
- ip link set up dev $IF_VLAN_RAW_DEVICE.$VLANID
- fi
- exit 0
|