summaryrefslogtreecommitdiff
path: root/package/netifd/files/lib/network
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-10-21 01:47:49 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-10-21 01:47:49 +0000
commitf85eb6d428598db0d0c0e4b9e94d8d0bcab0f512 (patch)
tree23e29d8252f2ea52ba54d8cd62dbc73ee883af37 /package/netifd/files/lib/network
parent799c0920c5e6dafbd5803c124523614fe6a637b0 (diff)
add an initial (experimental) version of netifd, disabled by default
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28499 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/netifd/files/lib/network')
-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\" }"
+}
+