aboutsummaryrefslogtreecommitdiff
path: root/net.Linux/vlan.sh
diff options
context:
space:
mode:
Diffstat (limited to 'net.Linux/vlan.sh')
-rw-r--r--net.Linux/vlan.sh118
1 files changed, 0 insertions, 118 deletions
diff --git a/net.Linux/vlan.sh b/net.Linux/vlan.sh
deleted file mode 100644
index 7d77aae8..00000000
--- a/net.Linux/vlan.sh
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 2007-2008 Roy Marples <roy@marples.name>
-# All rights reserved. Released under the 2-clause BSD license.
-
-vlan_depend()
-{
- program /sbin/vconfig
- after interface
- before dhcp
-}
-
-_config_vars="$_config_vars vlans"
-
-_is_vlan()
-{
- [ ! -d /proc/net/vlan ] && return 1
- [ -e /proc/net/vlan/"${IFACE}" ] && return 0
- grep -Eq "^${IFACE}[[:space:]]+" /proc/net/vlan/config
-}
-
-_get_vlans()
-{
- [ -e /proc/net/vlan/config ] || return 1
- sed -n -e 's/^\(.*[0-9]\) \(.* \) .*'"${IFACE}"'$/\1/p' /proc/net/vlan/config
-}
-
-_check_vlan()
-{
- if [ ! -d /proc/net/vlan ]; then
- modprobe 8021q
- if [ ! -d /proc/net/vlan ]; then
- eerror "VLAN (802.1q) support is not present in this kernel"
- return 1
- fi
- fi
-}
-
-vlan_pre_start()
-{
- local vc="$(_get_array "vconfig_${IFVAR}")"
- [ -z "${vc}" ] && return 0
-
- _check_vlan || return 1
- _exists || return 1
-
- local v= x= e=
- local IFS="$__IFS"
- for v in ${vc}; do
- unset IFS
- case "${v}" in
- set_name_type" "*) x=${v};;
- *)
- set -- ${v}
- x="$1 ${IFACE}"
- shift
- x="${x} $@"
- ;;
- esac
-
- e="$(vconfig ${x} 2>&1 1>/dev/null)"
- [ -z "${e}" ] && continue
- eerror "${e}"
- return 1
- done
-}
-
-vlan_post_start()
-{
- local vlans=
- eval vlans=\$vlans_${IFACE}
- [ -z "${vlans}" ] && return 0
-
- _check_vlan || return 1
- _exists || return 1
-
- local vlan= e= s=
- for vlan in ${vlans}; do
- einfo "Adding VLAN ${vlan} to ${IFACE}"
- e="$(vconfig add "${IFACE}" "${vlan}" 2>&1 1>/dev/null)"
- if [ -n "${e}" ]; then
- eend 1 "${e}"
- continue
- fi
-
- # We may not want to start the vlan ourselves
- eval s=\$vlan_start_${IFVAR}
- yesno ${s:-yes} || continue
-
- # We need to work out the interface name of our new vlan id
- local ifname="$( \
- sed -n -e 's/^\([^[:space:]]*\) *| '"${vlan}"' *| .*'"${iface}"'$/\1/p' \
- /proc/net/vlan/config )"
- mark_service_started "net.${ifname}"
- (
- export RC_SVCNAME="net.${ifname}"
- start
- ) || mark_service_stopped "net.${ifname}"
- done
-
- return 0
-}
-
-vlan_post_stop()
-{
- local vlan=
-
- for vlan in $(_get_vlans); do
- einfo "Removing VLAN ${vlan##*.} from ${IFACE}"
- (
- export RC_SVCNAME="net.${vlan}"
- stop
- ) && {
- mark_service_stopped "net.${vlan}"
- vconfig rem "${vlan}" >/dev/null
- }
- done
-
- return 0
-}