batman-adv: Add support for hardif settings
authorSven Eckelmann <sven@narfation.org>
Sat, 15 Jun 2019 07:25:05 +0000 (09:25 +0200)
committerSven Eckelmann <sven@narfation.org>
Sat, 15 Jun 2019 07:53:55 +0000 (09:53 +0200)
B.A.T.M.A.N. V support additional settings which are hardif specific. The
batadv_hardif proto has to expose them to allow automatic configuration.
The default configuration would be:

  config interface 'bat0_hardif_eth0'
   option proto 'batadv_hardif'
   option master 'bat0'
   option ifname 'eth0'
   option mtu '1536'
   option 'elp_interval' 500
   # string like '1mbit' is accepted instead of kbit for override
   option 'throughput_override' '0'

Signed-off-by: Sven Eckelmann <sven@narfation.org>
batman-adv/Makefile
batman-adv/files/lib/netifd/proto/batadv_hardif.sh

index 0505fdfb3b3fa7f385f1ebdf76c4039236b8c91a..84f22748c1ea4fb49c894af535e2d347323398cb 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=batman-adv
 
 PKG_VERSION:=2019.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_HASH:=70c3f6a6cf88d2b25681a76768a52ed92d9fe992ba8e358368b6a8088757adc8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
index 9283d2bed1dcf73b18dba72887da4e7993cd7cb5..76ccd8199e44f5dc3f485f343f7ee91495631b67 100755 (executable)
@@ -7,21 +7,30 @@
 }
 
 proto_batadv_hardif_init_config() {
+       proto_config_add_int 'elp_interval'
        proto_config_add_string "master"
+       proto_config_add_string 'throughput_override'
 }
 
 proto_batadv_hardif_setup() {
        local config="$1"
        local iface="$2"
 
+       local elp_interval
        local master
+       local throughput_override
 
+       json_get_vars elp_interval
        json_get_vars master
+       json_get_vars throughput_override
 
        ( proto_add_host_dependency "$config" '' "$master" )
 
        batctl -m "$master" interface -M add "$iface"
 
+       [ -n "$elp_interval" ] && batctl -m "$master" hardif "$iface" elp_interval "$elp_interval"
+       [ -n "$throughput_override" ] && batctl -m "$master" hardif "$iface" throughput_override "$throughput_override"
+
        proto_init_update "$iface" 1
        proto_send_update "$config"
 }