aboutsummaryrefslogtreecommitdiffstats
path: root/package/netifd/files/lib/network/config.sh
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-21 01:47:49 +0000
committerFelix Fietkau <nbd@openwrt.org>2011-10-21 01:47:49 +0000
commit55aeabae10d9429de0453d6df4271426478b406b (patch)
treecb77e67888dff2800c29051dfe2673e40c56d2eb /package/netifd/files/lib/network/config.sh
parent2ccd191b76f600d99d4b8ee15bb8fd1d0f2cf616 (diff)
downloadupstream-55aeabae10d9429de0453d6df4271426478b406b.tar.gz
upstream-55aeabae10d9429de0453d6df4271426478b406b.tar.bz2
upstream-55aeabae10d9429de0453d6df4271426478b406b.zip
add an initial (experimental) version of netifd, disabled by default
SVN-Revision: 28499
Diffstat (limited to 'package/netifd/files/lib/network/config.sh')
-rwxr-xr-xpackage/netifd/files/lib/network/config.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/package/netifd/files/lib/network/config.sh b/package/netifd/files/lib/network/config.sh
new file mode 100755
index 0000000000..778c964e7b
--- /dev/null
+++ b/package/netifd/files/lib/network/config.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Copyright (C) 2011 OpenWrt.org
+
+. /usr/share/libubox/jshn.sh
+
+find_config() {
+ return
+}
+
+unbridge() {
+ return
+}
+
+ubus_call() {
+ json_init
+ local _data="$(ubus call "$1" "$2")"
+ [ $? -ne 0 ] && return "$?"
+ json_load "$_data"
+ return 0
+}
+
+
+fixup_interface() {
+ local config="$1"
+ local ifname
+
+ config_get type "$config" type
+ config_get ifname "$config" ifname
+ [ "bridge" = "$type" ] && ifname="br-$config"
+ config_set "$config" device "$ifname"
+ ubus_call "network.interface.$config" status
+ json_get_var l3dev l3_device
+ [ -n "$l3dev" ] && ifname="$l3dev"
+ json_init
+ config_set "$config" ifname "$ifname"
+}
+
+scan_interfaces() {
+ config_load network
+ config_foreach fixup_interface interface
+}
+
+setup_interface() {
+ local iface="$1"
+ local config="$2"
+
+ [ -n "$config" ] || return 0
+ ubus call network.interface."$config" add_device "{ \"name\": \"$iface\" }"
+}
+