Merge pull request #451 from ecsv/batadv-2019.0
[feed/routing.git] / batman-adv / files / lib / batman-adv / config.sh
index 3d6b8849c1723bcf31d10c74ddbbda5e92288e46..952f93ea514dbcb56e7de104522f9c8956f2173c 100644 (file)
@@ -40,11 +40,27 @@ bat_config()
        [ -n "$distributed_arp_table" ] && batctl -m "$mesh" distributed_arp_table "$distributed_arp_table" 2>&-
        [ -n "$fragmentation" ] && batctl -m "$mesh" fragmentation "$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
+       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>&-