|
|
@@ -52,6 +52,14 @@ ucidef_set_interface_lan() {
|
|
|
json_select ..
|
|
|
}
|
|
|
|
|
|
+ucidef_set_interface_wan() {
|
|
|
+ local wan_if=$1
|
|
|
+
|
|
|
+ json_select_object network
|
|
|
+ _ucidef_set_interface wan $wan_if
|
|
|
+ json_select ..
|
|
|
+}
|
|
|
+
|
|
|
ucidef_set_interfaces_lan_wan() {
|
|
|
local lan_if=$1
|
|
|
local wan_if=$2
|
|
|
@@ -91,6 +99,48 @@ ucidef_add_switch_attr() {
|
|
|
json_select ..
|
|
|
}
|
|
|
|
|
|
+ucidef_add_switch_ports() {
|
|
|
+ local name="$1"; shift
|
|
|
+ local port num role dev idx
|
|
|
+
|
|
|
+ json_select_object switch
|
|
|
+ json_select_object "$name"
|
|
|
+ json_select_array ports
|
|
|
+
|
|
|
+ for port in "$@"; do
|
|
|
+ case "$port" in
|
|
|
+ [0-9]*@*)
|
|
|
+ num="${port%%@*}"
|
|
|
+ dev="${port##*@}"
|
|
|
+ ;;
|
|
|
+ [0-9]*:*:[0-9]*)
|
|
|
+ num="${port%%:*}"
|
|
|
+ idx="${port##*:}"
|
|
|
+ role="${port#[0-9]*:}"; role="${role%:*}"
|
|
|
+ ;;
|
|
|
+ [0-9]*:*)
|
|
|
+ num="${port%%:*}"
|
|
|
+ role="${port##*:}"
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ if [ -n "$num" ] && [ -n "$dev$role" ]; then
|
|
|
+ json_add_object
|
|
|
+ json_add_int num "$num"
|
|
|
+ [ -n "$dev" ] && json_add_string device "$dev"
|
|
|
+ [ -n "$role" ] && json_add_string role "$role"
|
|
|
+ [ -n "$idx" ] && json_add_int index "$idx"
|
|
|
+ json_close_object
|
|
|
+ fi
|
|
|
+
|
|
|
+ unset num dev role idx
|
|
|
+ done
|
|
|
+
|
|
|
+ json_select ..
|
|
|
+ json_select ..
|
|
|
+ json_select ..
|
|
|
+}
|
|
|
+
|
|
|
ucidef_add_switch_vlan() {
|
|
|
local name=$1
|
|
|
local vlan=$2
|