X-Git-Url: http://git.openwrt.org/?p=feed%2Frouting.git;a=blobdiff_plain;f=batman-adv%2Ffiles%2Flib%2Fbatman-adv%2Fconfig.sh;h=952f93ea514dbcb56e7de104522f9c8956f2173c;hp=1429a43a9053f3f6c96a5747144b1c31265b3917;hb=5882b6049dd44647f3b59f130bf0c5bd2a58e3ac;hpb=f5205d7d24342f78a5526d23b5437af2de44d91e diff --git a/batman-adv/files/lib/batman-adv/config.sh b/batman-adv/files/lib/batman-adv/config.sh index 1429a43..952f93e 100644 --- a/batman-adv/files/lib/batman-adv/config.sh +++ b/batman-adv/files/lib/batman-adv/config.sh @@ -13,7 +13,7 @@ bat_config() local mesh="$1" local aggregated_ogms ap_isolation bonding bridge_loop_avoidance distributed_arp_table fragmentation local gw_bandwidth gw_mode gw_sel_class isolation_mark hop_penalty multicast_mode network_coding log_level - local orig_interval vis_mode + local orig_interval config_get aggregated_ogms "$mesh" aggregated_ogms config_get ap_isolation "$mesh" ap_isolation @@ -30,24 +30,40 @@ bat_config() config_get network_coding "$mesh" network_coding config_get log_level "$mesh" log_level config_get orig_interval "$mesh" orig_interval - config_get vis_mode "$mesh" vis_mode [ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1 - [ -n "$aggregate_ogms" ] && echo $aggregate_ogms > /sys/class/net/$mesh/mesh/aggregate_ogms - [ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation - [ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding - [ -n "$bridge_loop_avoidance" ] && echo $bridge_loop_avoidance > /sys/class/net/$mesh/mesh/bridge_loop_avoidance 2>&- - [ -n "$distributed_arp_table" ] && echo $distributed_arp_table > /sys/class/net/$mesh/mesh/distributed_arp_table 2>&- - [ -n "$fragmentation" ] && echo $fragmentation > /sys/class/net/$mesh/mesh/fragmentation - [ -n "$gw_bandwidth" ] && echo $gw_bandwidth > /sys/class/net/$mesh/mesh/gw_bandwidth - [ -n "$gw_mode" ] && echo $gw_mode > /sys/class/net/$mesh/mesh/gw_mode - [ -n "$gw_sel_class" ] && echo $gw_sel_class > /sys/class/net/$mesh/mesh/gw_sel_class - [ -n "$hop_penalty" ] && echo $hop_penalty > /sys/class/net/$mesh/mesh/hop_penalty - [ -n "$isolation_mark" ] && echo $isolation_mark > /sys/class/net/$mesh/mesh/isolation_mark - [ -n "$multicast_mode" ] && echo $multicast_mode > /sys/class/net/$mesh/mesh/multicast_mode 2>&- - [ -n "$network_coding" ] && echo $network_coding > /sys/class/net/$mesh/mesh/network_coding 2>&- - [ -n "$log_level" ] && echo $log_level > /sys/class/net/$mesh/mesh/log_level 2>&- - [ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval - [ -n "$vis_mode" ] && echo $vis_mode > /sys/class/net/$mesh/mesh/vis_mode + [ -n "$aggregated_ogms" ] && batctl -m "$mesh" aggregation "$aggregated_ogms" + [ -n "$ap_isolation" ] && batctl -m "$mesh" ap_isolation "$ap_isolation" + [ -n "$bonding" ] && batctl -m "$mesh" bonding "$bonding" + [ -n "$bridge_loop_avoidance" ] && batctl -m "$mesh" bridge_loop_avoidance "$bridge_loop_avoidance" 2>&- + [ -n "$distributed_arp_table" ] && batctl -m "$mesh" distributed_arp_table "$distributed_arp_table" 2>&- + [ -n "$fragmentation" ] && batctl -m "$mesh" fragmentation "$fragmentation" + + case "$gw_mode" in + server) + if [ -n "$gw_bandwidth" ]; then + batctl -m "$mesh" gw_mode "server" "$gw_bandwidth" + else + batctl -m "$mesh" gw_mode "server" + fi + ;; + client) + if [ -n "$gw_sel_class" ]; then + batctl -m "$mesh" gw_mode "client" "$gw_sel_class" + else + batctl -m "$mesh" gw_mode "client" + fi + ;; + *) + batctl -m "$mesh" gw_mode "off" + ;; + esac + + [ -n "$hop_penalty" ] && batctl -m "$mesh" hop_penalty "$hop_penalty" + [ -n "$isolation_mark" ] && batctl -m "$mesh" isolation_mark "$isolation_mark" + [ -n "$multicast_mode" ] && batctl -m "$mesh" multicast_mode "$multicast_mode" 2>&- + [ -n "$network_coding" ] && batctl -m "$mesh" network_coding "$network_coding" 2>&- + [ -n "$log_level" ] && batctl -m "$mesh" loglevel "$log_level" 2>&- + [ -n "$orig_interval" ] && batctl -m "$mesh" orig_interval "$orig_interval" }