batman-adv: hotplug script fixes
[feed/routing.git] / files / lib / batman-adv / config.sh
1 #!/bin/sh
2
3 bat_config(){
4 local mesh="$1"
5 local aggregated_ogms bonding fragmentation gw_bandwidth gw_mode gw_sel_class log_level orig_interval hop_penalty vis_mode
6
7 config_get aggregated_ogms "$mesh" aggregated_ogms
8 config_get bonding "$mesh" bonding
9 config_get fragmentation "$mesh" fragmentation
10 config_get gw_bandwidth "$mesh" gw_bandwidth
11 config_get gw_mode "$mesh" gw_mode
12 config_get gw_sel_class "$mesh" gw_sel_class
13 config_get log_level "$mesh" log_level
14 config_get orig_interval "$mesh" orig_interval
15 config_get hop_penalty "$mesh" hop_penalty
16 config_get vis_mode "$mesh" vis_mode
17 config_get ap_isolation "$mesh" ap_isolation
18
19 [ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval
20 [ -n "$hop_penalty" ] && echo $hop_penalty > /sys/class/net/$mesh/mesh/hop_penalty
21 [ -n "$log_level" ] && echo $log_level > /sys/class/net/$mesh/mesh/log_level 2>&-
22 [ -n "$aggregate_ogms" ] && echo $aggregate_ogms > /sys/class/net/$mesh/mesh/aggregate_ogms
23 [ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding
24 [ -n "$fragmentation" ] && echo $fragmentation > /sys/class/net/$mesh/mesh/fragmentation
25 [ -n "$gw_bandwidth" ] && echo $gw_bandwidth > /sys/class/net/$mesh/mesh/gw_bandwidth
26 [ -n "$gw_mode" ] && echo $gw_mode > /sys/class/net/$mesh/mesh/gw_mode
27 [ -n "$gw_sel_class" ] && echo $gw_sel_class > /sys/class/net/$mesh/mesh/gw_sel_class
28 [ -n "$vis_mode" ] && echo $vis_mode > /sys/class/net/$mesh/mesh/vis_mode
29 [ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation
30
31 }
32
33 bat_add_interface(){
34 local mesh="$1"
35 local interface="$2"
36 local interfaces
37
38 sleep 3s # some device (ath) is very lazy to start
39 config_get interfaces $mesh interfaces
40 for iface in $interfaces; do
41 [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || {
42 iface=$(uci -q -P/var/state get network.$iface.ifname)
43 [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || continue
44 }
45
46 [ "$iface" = "$interface" ] && echo $mesh > /sys/class/net/$iface/batman_adv/mesh_iface
47 done
48 }
49
50 bat_del_interface(){
51 local mesh="$1"
52 local interface="$2"
53 local interfaces
54
55 config_get interfaces $mesh interfaces
56 for iface in $interfaces; do
57 [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || {
58 iface=$(uci -q -P/var/state get network.$iface.ifname)
59 [ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || continue
60 }
61
62 [ "$iface" = "$interface" ] && echo none > /sys/class/net/$iface/batman_adv/mesh_iface
63 done
64 }