From 8d7b67dcc1e0f49d11bb98614dc1aad30ddfb4a1 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 29 Dec 2009 22:25:14 +0100 Subject: make vlan configuration work with ifup/ifdown --- .../extra/etc/network/if-pre-up.d/02-vlan | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 package/base-files/extra/etc/network/if-pre-up.d/02-vlan (limited to 'package/base-files/extra/etc/network/if-pre-up.d/02-vlan') diff --git a/package/base-files/extra/etc/network/if-pre-up.d/02-vlan b/package/base-files/extra/etc/network/if-pre-up.d/02-vlan new file mode 100755 index 000000000..09b9cf0da --- /dev/null +++ b/package/base-files/extra/etc/network/if-pre-up.d/02-vlan @@ -0,0 +1,35 @@ +#!/bin/sh + +[ -x /sbin/vconfig ] || 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 -- cgit v1.2.3