diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2014-02-27 13:43:22 +0100 |
---|---|---|
committer | Jouke Witteveen <j.witteveen@gmail.com> | 2014-02-27 13:48:49 +0100 |
commit | 03afcdce237b2dc52a6c1fea72b715cf6c34bf05 (patch) | |
tree | 90f98f8f08a748dea06f479d88fa91938015b645 /src/lib/network | |
parent | bcca0a027786c0d23f3f70c9f21b3332f41786e1 (diff) | |
download | netctl-03afcdce237b2dc52a6c1fea72b715cf6c34bf05.tar.gz netctl-03afcdce237b2dc52a6c1fea72b715cf6c34bf05.tar.xz |
Uniform adding and deleting of interfaces
The main benefit is the possibility to use interface hooks for links
that are created at runtime.
Diffstat (limited to 'src/lib/network')
-rwxr-xr-x | src/lib/network | 21 |
1 files changed, 21 insertions, 0 deletions
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() { |