From 03afcdce237b2dc52a6c1fea72b715cf6c34bf05 Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Thu, 27 Feb 2014 13:43:22 +0100 Subject: Uniform adding and deleting of interfaces The main benefit is the possibility to use interface hooks for links that are created at runtime. --- src/lib/network | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/lib/network') diff --git a/src/lib/network b/src/lib/network index 7dfe0b5..b91b5e8 100755 --- a/src/lib/network +++ b/src/lib/network @@ -10,6 +10,27 @@ is_interface() { [[ -d "/sys/class/net/${1%%:?*}" ]] } +## Add an interface +# $1: interface type +# $2: interface name +# $3: interface link (optional) +# $4...: additional arguments +interface_add() { + local type="$1" name="$2" link="$3" + shift 3 + ip link add ${link:+link "$link"} name "$name" type "$type" "$@" + if [[ -x "$PROFILE_DIR/interfaces/$name" ]]; then + source "$PROFILE_DIR/interfaces/$name" + fi +} + +## Delete an interface +# $1: interface name +interface_delete() { + bring_interface_down "$1" + ip link delete "$1" +} + ## Check if an interface is up # $1: interface name interface_is_up() { -- cgit v1.2.3-24-g4f1b