aboutsummaryrefslogtreecommitdiff
path: root/net.Linux/iproute2.sh
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-26 14:18:01 +0000
committerRoy Marples <roy@marples.name>2008-03-26 14:18:01 +0000
commitccf238f852fd0463e68d33b91f0dd55000c325e3 (patch)
treee104640ae7b25be54520c22712b34385b1c030c4 /net.Linux/iproute2.sh
parent55858eca2ec678fce14b21df33d08f5aaac94bcf (diff)
Merge net.OS into net
Diffstat (limited to 'net.Linux/iproute2.sh')
-rw-r--r--net.Linux/iproute2.sh241
1 files changed, 0 insertions, 241 deletions
diff --git a/net.Linux/iproute2.sh b/net.Linux/iproute2.sh
deleted file mode 100644
index de765378..00000000
--- a/net.Linux/iproute2.sh
+++ /dev/null
@@ -1,241 +0,0 @@
-# Copyright 2007-2008 Roy Marples <roy@marples.name>
-# All rights reserved. Released under the 2-clause BSD license.
-
-iproute2_depend()
-{
- program /sbin/ip
- provide interface
- after ifconfig
-}
-
-_up()
-{
- ip link set up dev "${IFACE}"
-}
-
-_down()
-{
- ip link set down dev "${IFACE}"
-}
-
-_exists()
-{
- grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/dev
-}
-
-_ifindex()
-{
- local line= i=-2
- while read line; do
- i=$((${i} + 1))
- [ ${i} -lt 1 ] && continue
- case "${line}" in
- "${IFACE}:"*) echo "${i}"; return 0;;
- esac
- done < /proc/net/dev
-
- # Return the next available index
- i=$((${i} + 1))
- echo "${i}"
- return 1
-}
-
-_is_wireless()
-{
- # Support new sysfs layout
- [ -d /sys/class/net/"${IFACE}"/wireless ] && return 0
-
- [ ! -e /proc/net/wireless ] && return 1
- grep -Eq "^[[:space:]]*${IFACE}:" /proc/net/wireless
-}
-
-_set_flag()
-{
- local flag=$1 opt="on"
- if [ "${flag#-}" != "${flag}" ]; then
- flag=${flag#-}
- opt="off"
- fi
- ip link set "${IFACE}" "${flag}" "${opt}"
-}
-
-_get_mac_address()
-{
- local mac=$(LC_ALL=C ip link show "${IFACE}" | sed -n \
- -e 'y/abcdef/ABCDEF/' \
- -e '/link\// s/^.*\<\(..:..:..:..:..:..\)\>.*/\1/p')
-
- case "${mac}" in
- 00:00:00:00:00:00);;
- 44:44:44:44:44:44);;
- FF:FF:FF:FF:FF:FF);;
- "");;
- *) echo "${mac}"; return 0;;
- esac
-
- return 1
-}
-
-_set_mac_address()
-{
- ip link set address "$1" dev "${IFACE}"
-}
-
-_get_inet_addresses()
-{
- LC_ALL=C ip -family inet addr show "${IFACE}" | \
- sed -n -e 's/.*inet \([^ ]*\).*/\1/p'
-}
-
-_get_inet_address()
-{
- set -- $(_get_inet_addresses)
- [ $# = "0" ] && return 1
- echo "$1"
-}
-
-_add_address()
-{
- if [ "$1" = "127.0.0.1/8" -a "${IFACE}" = "lo" ]; then
- ip addr add "$@" dev "${IFACE}" 2>/dev/null
- return 0
- fi
-
- # Convert an ifconfig line to iproute2
- if [ "$2" = "netmask" ]; then
- local one="$1" three="$3"
- shift; shift; shift
- set -- "${one}/$(_netmask2cidr "${three}")" "$@"
- fi
-
- #config=( "${config[@]//pointopoint/peer}" )
-
- # Always scope lo addresses as host unless specified otherwise
- if [ "${IFACE}" = "lo" ]; then
- set -- "$@" "scope" "host"
- fi
-
- # IPv4 specifics
- case "$1" in
- *.*.*.*)
- case "$@" in
- *" brd "*);;
- *" broadcast "*);;
- *) set -- "$@" brd +;;
- esac
- ;;
- esac
-
- ip addr add dev "${IFACE}" "$@"
-}
-
-_add_route()
-{
- if [ $# -eq 3 ]; then
- set -- "$1" "$2" via "$3"
- elif [ "$3" = "gw" ]; then
- local one=$1 two=$2
- shift; shift; shift
- set -- "${one}" "${two}" via "$@"
- fi
-
- local cmd= have_metric=false
- while [ -n "$1" ]; do
- case "$1" in
- metric) cmd="${cmd} $1"; have_metric=true;;
- netmask) cmd="${cmd}/$(_netmask2cidr "$2")"; shift;;
- -host|-net);;
- -A) [ "$2" = "inet6" ] && shift;;
- *) cmd="${cmd} $1";;
- esac
- shift
- done
-
- if ! ${have_metric} && [ -n "${metric}" ]; then
- cmd="${cmd} metric ${metric}"
- fi
-
- ip route append ${cmd} dev "${IFACE}"
- eend $?
-}
-
-_delete_addresses()
-{
- ip addr flush dev "${IFACE}" scope global 2>/dev/null
- ip addr flush dev "${IFACE}" scope site 2>/dev/null
- if [ "${IFACE}" != "lo" ]; then
- ip addr flush dev "${IFACE}" scope host 2>/dev/null
- fi
- return 0
-}
-
-_has_carrier()
-{
- return 0
-}
-
-_tunnel()
-{
- ip tunnel "$@"
-}
-
-iproute2_pre_start()
-{
- # MTU support
- local mtu=
- eval mtu=\$mtu_${IFVAR}
- [ -n "${mtu}" ] && ip link set mtu "${mtu}" dev "${IFACE}"
-
- # TX Queue Length support
- local len=
- eval len=\$txqueuelen_${IFVAR}
- [ -n "${len}" ] && ip link set txqueuelen "${len}" dev "${IFACE}"
-
- local tunnel=
- eval tunnel=\$iptunnel_${IFVAR}
- if [ -n "${tunnel}" ]; then
- # Set our base metric to 1000
- metric=1000
-
- ebegin "Creating tunnel ${IFVAR}"
- ip tunnel add ${tunnel} name "${IFACE}"
- eend $? || return 1
- _up
- fi
-
- return 0
-}
-
-_iproute2_ipv6_tentative()
-{
- LC_ALL=C ip addr show dev "${IFACE}" | \
- grep -q "^[[:space:]]*inet6 .* tentative"
-}
-
-iproute2_post_start()
-{
- # Kernel may not have IP built in
- if [ -e /proc/net/route ]; then
- ip route flush table cache dev "${IFACE}"
- fi
-
- if _iproute2_ipv6_tentative; then
- ebegin "Waiting for IPv6 addresses"
- while true; do
- _iproute2_ipv6_tentative || break
- done
- eend 0
- fi
-}
-
-iproute2_post_stop()
-{
- # Don't delete sit0 as it's a special tunnel
- if [ "${IFACE}" != "sit0" ]; then
- if [ -n "$(ip tunnel show "${IFACE}" 2>/dev/null)" ]; then
- ebegin "Destroying tunnel ${IFACE}"
- ip tunnel del "${IFACE}"
- eend $?
- fi
- fi
-}