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_interface_wan
() {
58 json_select_object network
59 _ucidef_set_interface wan
$wan_if
63 ucidef_set_interfaces_lan_wan
() {
67 json_select_object network
68 _ucidef_set_interface lan
$lan_if
69 _ucidef_set_interface wan
$wan_if
78 json_select_object switch
80 json_select_object
$name
81 json_add_boolean
enable $enable
82 json_add_boolean
reset $reset
88 ucidef_add_switch_attr
() {
93 json_select_object switch
94 json_select_object
$name
97 [0-9]) json_add_int
"$key" "$val" ;;
98 *) json_add_string
"$key" "$val" ;;
105 ucidef_add_switch_ports
() {
106 local name
="$1"; shift
107 local port num role dev idx
109 json_select_object switch
110 json_select_object
"$name"
111 json_select_array ports
122 role
="${port#[0-9]*:}"; role
="${role%:*}"
130 if [ -n "$num" ] && [ -n "$dev$role" ]; then
132 json_add_int num
"$num"
133 [ -n "$dev" ] && json_add_string device
"$dev"
134 [ -n "$role" ] && json_add_string role
"$role"
135 [ -n "$idx" ] && json_add_int index
"$idx"
139 unset num dev role idx
147 ucidef_add_switch_port_attr
() {
154 json_select_object switch
155 json_select_object
$name
157 json_get_keys ports ports
158 json_select_array ports
164 if [ -n "$num" ] && [ $num -eq $port ]; then
165 json_select_object attr
168 [0-9]) json_add_int
"$key" "$val" ;;
169 *) json_add_string
"$key" "$val" ;;
183 ucidef_add_switch_vlan
() {
195 json_select_object switch
196 json_select_object
$name
197 json_select_object vlans
201 if [ ${p%t} != $p ]; then
210 [ -n "$cpu_port" ] && json_add_int cpu_port
$cpu_port
215 ucidef_set_interface_macaddr
() {
219 json_select_object network
227 json_add_string macaddr
$macaddr
233 ucidef_set_led_netdev
() {
239 json_select_object led
241 json_select_object
$1
242 json_add_string name
$name
243 json_add_string
type netdev
244 json_add_string sysfs
$sysfs
245 json_add_string device
$dev
251 ucidef_set_led_interface
() {
255 json_select_object led
257 json_select_object
$1
258 json_add_string name
$name
259 json_add_string
type interface
260 json_add_string sysfs
$sysfs
261 json_add_string interface
$name
267 ucidef_set_led_usbdev
() {
273 json_select_object led
275 json_select_object
$1
276 json_add_string name
$name
277 json_add_string
type usb
278 json_add_string sysfs
$sysfs
279 json_add_string device
$dev
285 ucidef_set_led_wlan
() {
291 json_select_object led
293 json_select_object
$1
294 json_add_string name
$name
295 json_add_string
type trigger
296 json_add_string sysfs
$sysfs
297 json_add_string trigger
$trigger
303 ucidef_set_led_switch
() {
310 json_select_object led
312 json_select_object
$1
313 json_add_string name
$name
314 json_add_string
type switch
315 json_add_string sysfs
$sysfs
316 json_add_string trigger
$trigger
317 json_add_string port_mask
$port_mask
323 ucidef_set_led_default
() {
329 json_select_object led
331 json_select_object
$1
332 json_add_string name
$name
333 json_add_string sysfs
$sysfs
334 json_add_string default
$default
340 ucidef_set_led_rssi
() {
350 json_select_object led
352 json_select_object rssi
353 json_select_object
$1
354 json_add_string name
$name
355 json_add_string sysfs
$sysfs
356 json_add_string minq
$minq
357 json_add_string maxq
$maxq
358 json_add_string offset
$offset
359 json_add_string
factor $factor
366 ucidef_set_rssimon
() {
371 json_select_object led
373 json_select_object rssi
374 json_add_string
type rssi
375 json_add_string dev
$dev
376 json_add_string threshold
$threshold
383 board_config_update
() {
385 [ -f ${CFG} ] && json_load
"$(cat ${CFG})"
388 board_config_flush
() {
389 json_dump
-i > /tmp
/.board.json
390 mv /tmp
/.board.json
${CFG}