5 . /usr/share/libubox/jshn.sh
8 local _json_no_warning=1
19 json_select_object() {
20 local _json_no_warning=1
31 _ucidef_set_interface() {
35 json_select_object $name
36 json_add_string ifname "${iface%%.*}"
37 [ "$iface" = "${iface%%.*}" ] || json_add_boolean create_vlan 1
41 ucidef_set_interface_loopback()
47 ucidef_set_interface_lan() {
50 json_select_object network
51 _ucidef_set_interface lan $lan_if
55 ucidef_set_interfaces_lan_wan() {
59 json_select_object network
60 _ucidef_set_interface lan $lan_if
61 _ucidef_set_interface wan $wan_if
70 json_select_object switch
72 json_select_object $name
73 [ "$enable" -eq 1 ] && json_add_boolean enable 1
74 [ "$reset" -eq 1 ] && json_add_boolean reset 1
80 ucidef_add_switch_attr() {
85 json_select_object switch
87 json_select_object $name
88 json_add_string $key $val
94 ucidef_add_switch_vlan() {
106 json_select_object switch
107 json_select_object $name
108 json_select_object vlans
112 if [ ${p%t} != $p ]; then
121 [ -n "$cpu_port" ] && json_add_int cpu_port $cpu_port
126 ucidef_set_interface_macaddr() {
130 json_select_object network
138 json_add_string macaddr $macaddr
144 ucidef_set_led_netdev() {
150 json_select_object led
152 json_select_object $1
153 json_add_string name $name
154 json_add_string type netdev
155 json_add_string sysfs $sysfs
156 json_add_string device $dev
162 ucidef_set_led_interface() {
166 json_select_object led
168 json_select_object $1
169 json_add_string name $name
170 json_add_string type interface
171 json_add_string sysfs $sysfs
172 json_add_string interface $name
178 ucidef_set_led_usbdev() {
184 json_select_object led
186 json_select_object $1
187 json_add_string name $name
188 json_add_string type usb
189 json_add_string sysfs $sysfs
190 json_add_string device $dev
196 ucidef_set_led_wlan() {
202 json_select_object led
204 json_select_object $1
205 json_add_string name $name
206 json_add_string type trigger
207 json_add_string sysfs $sysfs
208 json_add_string trigger $trigger
214 ucidef_set_led_switch() {
221 json_select_object led
223 json_select_object $1
224 json_add_string name $name
225 json_add_string type switch
226 json_add_string sysfs $sysfs
227 json_add_string trigger $trigger
228 json_add_string port_mask $port_mask
234 ucidef_set_led_default() {
240 json_select_object led
242 json_select_object $1
243 json_add_string name $name
244 json_add_string sysfs $sysfs
245 json_add_string default $default
251 ucidef_set_led_rssi() {
261 json_select_object led
263 json_select_object rssi
264 json_select_object $1
265 json_add_string name $name
266 json_add_string sysfs $sysfs
267 json_add_string minq $minq
268 json_add_string maxq $maxq
269 json_add_string offset $offset
270 json_add_string factor $factor
277 ucidef_set_rssimon() {
282 json_select_object led
284 json_select_object rssi
285 json_add_string type rssi
286 json_add_string dev $dev
287 json_add_string threshold $threshold
294 board_config_update() {
296 [ -f ${CFG} ] && json_load "$(cat ${CFG})"
299 board_config_flush() {
300 json_dump -i > /tmp/.board.json
301 mv /tmp/.board.json ${CFG}