batman-adv: use batctl for configuration

The batctl binary is currently optional for batman-adv installations. But
new configuration settings will only be exposed via generic netlink. The
batctl tool will therefore be required to modify them.

batctl must therefore no longer depend on batman-adv but batman-adv must
depend on batctl. Some already implemented settings are already moved to
batctl.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
This commit is contained in:
Sven Eckelmann 2019-01-06 13:24:21 +01:00
parent 1299868252
commit 498463cd59
5 changed files with 24 additions and 23 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=batctl PKG_NAME:=batctl
PKG_VERSION:=2018.4 PKG_VERSION:=2018.4
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_HASH:=e43827a5e868b4e134e77ca04da989fde1981463166bf1b6f2053acc3edd6257 PKG_HASH:=e43827a5e868b4e134e77ca04da989fde1981463166bf1b6f2053acc3edd6257
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@ -25,7 +25,7 @@ define Package/batctl/Default
URL:=https://www.open-mesh.org/ URL:=https://www.open-mesh.org/
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
DEPENDS:=+kmod-batman-adv +libnl-tiny +libc +librt DEPENDS:=+libnl-tiny +libc +librt
PROVIDES:=batctl PROVIDES:=batctl
MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de> MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
endef endef

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=batman-adv PKG_NAME:=batman-adv
PKG_VERSION:=2018.4 PKG_VERSION:=2018.4
PKG_RELEASE:=0 PKG_RELEASE:=1
PKG_HASH:=3500b4bc7d41ce1adef0b0684972a439d48b454ba78282e94df13ba90605484d PKG_HASH:=3500b4bc7d41ce1adef0b0684972a439d48b454ba78282e94df13ba90605484d
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@ -27,7 +27,7 @@ define KernelPackage/batman-adv
URL:=https://www.open-mesh.org/ URL:=https://www.open-mesh.org/
MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de> MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
SUBMENU:=Network Support SUBMENU:=Network Support
DEPENDS:=+BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-lib-crc32c +kmod-cfg80211 DEPENDS:=+BATMAN_ADV_BLA:kmod-lib-crc16 +kmod-lib-crc32c +kmod-cfg80211 +batctl
TITLE:=B.A.T.M.A.N. Adv TITLE:=B.A.T.M.A.N. Adv
FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX) FILES:=$(PKG_BUILD_DIR)/net/batman-adv/batman-adv.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoProbe,batman-adv) AUTOLOAD:=$(call AutoProbe,batman-adv)

View File

@ -33,19 +33,21 @@ bat_config()
[ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1 [ ! -f "/sys/class/net/$mesh/mesh/orig_interval" ] && echo "batman-adv mesh $mesh does not exist - check your interface configuration" && return 1
[ -n "$aggregated_ogms" ] && echo $aggregated_ogms > /sys/class/net/$mesh/mesh/aggregated_ogms [ -n "$aggregated_ogms" ] && batctl -m "$mesh" aggregation "$aggregated_ogms"
[ -n "$ap_isolation" ] && echo $ap_isolation > /sys/class/net/$mesh/mesh/ap_isolation [ -n "$ap_isolation" ] && batctl -m "$mesh" ap_isolation "$ap_isolation"
[ -n "$bonding" ] && echo $bonding > /sys/class/net/$mesh/mesh/bonding [ -n "$bonding" ] && batctl -m "$mesh" bonding "$bonding"
[ -n "$bridge_loop_avoidance" ] && echo $bridge_loop_avoidance > /sys/class/net/$mesh/mesh/bridge_loop_avoidance 2>&- [ -n "$bridge_loop_avoidance" ] && batctl -m "$mesh" bridge_loop_avoidance "$bridge_loop_avoidance" 2>&-
[ -n "$distributed_arp_table" ] && echo $distributed_arp_table > /sys/class/net/$mesh/mesh/distributed_arp_table 2>&- [ -n "$distributed_arp_table" ] && batctl -m "$mesh" distributed_arp_table "$distributed_arp_table" 2>&-
[ -n "$fragmentation" ] && echo $fragmentation > /sys/class/net/$mesh/mesh/fragmentation [ -n "$fragmentation" ] && batctl -m "$mesh" fragmentation "$fragmentation"
[ -n "$gw_bandwidth" ] && echo $gw_bandwidth > /sys/class/net/$mesh/mesh/gw_bandwidth [ -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_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 "$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 "$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 "$isolation_mark" ] && batctl -m "$mesh" isolation_mark "$isolation_mark"
[ -n "$network_coding" ] && echo $network_coding > /sys/class/net/$mesh/mesh/network_coding 2>&- [ -n "$multicast_mode" ] && batctl -m "$mesh" multicast_mode "$multicast_mode" 2>&-
[ -n "$log_level" ] && echo $log_level > /sys/class/net/$mesh/mesh/log_level 2>&- [ -n "$network_coding" ] && batctl -m "$mesh" network_coding "$network_coding" 2>&-
[ -n "$orig_interval" ] && echo $orig_interval > /sys/class/net/$mesh/mesh/orig_interval [ -n "$log_level" ] && batctl -m "$mesh" loglevel "$log_level" 2>&-
[ -n "$orig_interval" ] && batctl -m "$mesh" orig_interval "$orig_interval"
} }

View File

@ -17,9 +17,9 @@ proto_batadv_setup() {
json_get_vars mesh routing_algo json_get_vars mesh routing_algo
[ -n "$routing_algo" ] || routing_algo="BATMAN_IV" [ -n "$routing_algo" ] || routing_algo="BATMAN_IV"
echo "$routing_algo" > "/sys/module/batman_adv/parameters/routing_algo" batctl routing_algo "$routing_algo"
echo "$mesh" > "/sys/class/net/$iface/batman_adv/mesh_iface" batctl -m "$mesh" interface add "$iface"
proto_init_update "$iface" 1 proto_init_update "$iface" 1
proto_send_update "$config" proto_send_update "$config"
} }
@ -28,7 +28,10 @@ proto_batadv_teardown() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
echo "none" > "/sys/class/net/$iface/batman_adv/mesh_iface" || true local mesh
json_get_vars mesh
batctl -m "$mesh" interface del "$iface" || true
} }
add_protocol batadv add_protocol batadv

View File

@ -12,16 +12,12 @@ proto_batadv_vlan_setup() {
local config="$1" local config="$1"
local iface="$2" local iface="$2"
# VLAN specific variables
local device="${iface%.*}"
local vid="${iface#*.}"
# batadv_vlan options # batadv_vlan options
local ap_isolation local ap_isolation
json_get_vars ap_isolation json_get_vars ap_isolation
echo "$ap_isolation" > "/sys/class/net/${device}/mesh/vlan${vid}/ap_isolation" batctl -m "$iface" ap_isolation "$ap_isolation"
proto_init_update "$iface" 1 proto_init_update "$iface" 1
proto_send_update "$config" proto_send_update "$config"
} }