%PDF- %PDF-
Direktori : /lib/bridge-utils/ |
Current File : //lib/bridge-utils/bridge-utils.sh |
#!/bin/sh bridge_parse_ports() { while [ x"${1+set}" = xset ] do # For compatibility: the `all' option. case $1 in all) shift && set regex eth.\* em.\* 'p[0-9].*' noregex "$@" ;; esac # Primitive state machine... case $1-`uname -s` in regex-Linux) all_interfaces=`sed -n 's%^[\ ]*\([^:]*\):.*$%\1%p' < /proc/net/dev` shift ;; regex-*) echo -n "$0 needs to be ported for your `uname -s` system. " >&2 echo "Trying to continue nevertheless." >&2 shift ;; noregex-*) all_interfaces= unset all_interfaces shift ;; esac case ${all_interfaces+regex}-${1+set} in regex-set) # The following interface specification are to be parsed as regular # expressions against all interfaces the system provides. i=`egrep "^$1$" << EOAI $all_interfaces EOAI ` shift ;; *-set) # Literal interfaces. i=$1 shift ;; *) # No interface specification is following. i= ;; esac echo $i done } create_vlan_port() { # port doesn't yet exist if [ ! -e "/sys/class/net/$port" ] then dev="${port%.*}" # port is a vlan and the device exists? if [ "$port" != "$dev" ] && [ -e "/sys/class/net/$dev" ] then if [ -f /proc/sys/net/ipv6/conf/$dev/disable_ipv6 ] then echo 1 > /proc/sys/net/ipv6/conf/$dev/disable_ipv6 fi ip link set "$dev" up ip link add link "$dev" name "$port" type vlan id "${port#*.}" fi fi } destroy_vlan_port() { # port exists if [ -e "/sys/class/net/$port" ] then dev="${port%.*}" # port is a vlan if [ "$port" != "$dev" ] then ip link delete "$port" fi fi }