summaryrefslogtreecommitdiffstats
path: root/src/lib/network
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/network')
-rwxr-xr-xsrc/lib/network21
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() {