02-vlan 855 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/sh
  2. [ -x /sbin/vconfig ] || exit 0
  3. [ -d /proc/net/vlan ] || exit 0
  4. case "$IFACE" in
  5. vlan*)
  6. vconfig set_name_type VLAN_PLUS_VID_NO_PAD
  7. VLANID=`echo $IFACE|sed "s/vlan*//"`
  8. ;;
  9. eth*.*)
  10. vconfig set_name_type DEV_PLUS_VID_NO_PAD
  11. VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.*//g"`
  12. IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/"`
  13. ;;
  14. *)
  15. exit 0
  16. ;;
  17. esac
  18. if [ "$IF_VLAN_RAW_DEVICE" != "" ]; then
  19. if ! grep -q "$IF_VLAN_RAW_DEVICE" /proc/net/dev
  20. then
  21. echo "$IF_VLAN_RAW_DEVICE does not exist, unable to create $IFACE"
  22. exit 1
  23. fi
  24. ip link set up dev $IF_VLAN_RAW_DEVICE
  25. vconfig add $IF_VLAN_RAW_DEVICE $VLANID
  26. if [ "$IF_MAC_ADDRESS" != "" ]
  27. then
  28. ip link set $IF_VLAN_RAW_DEVICE.$VLANID address $IF_MAC_ADDRESS
  29. fi
  30. ip link set up dev $IF_VLAN_RAW_DEVICE.$VLANID
  31. fi
  32. exit 0