mirror of
https://github.com/openwrt/routing.git
synced 2025-02-07 13:10:27 +00:00
The '-m' option to select the mesh interface or vlan interfaces was replaced with device type specific subcommand prefixes: * meshif <netdev> * vlan <vdev> * meshif <netdev> vid <vid> * hardif <netdev> This change should also be made in the proto script to allow batctl to drop the support of '-m' completely in the future. Signed-off-by: Sven Eckelmann <sven@narfation.org>
124 lines
3.6 KiB
Bash
Executable File
124 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
[ -n "$INCLUDE_ONLY" ] || {
|
|
. /lib/functions.sh
|
|
. ../netifd-proto.sh
|
|
init_proto "$@"
|
|
}
|
|
|
|
proto_batadv_init_config() {
|
|
no_device=1
|
|
available=1
|
|
|
|
proto_config_add_boolean 'aggregated_ogms:bool'
|
|
proto_config_add_boolean 'ap_isolation:bool'
|
|
proto_config_add_boolean 'bonding:bool'
|
|
proto_config_add_boolean 'bridge_loop_avoidance:bool'
|
|
proto_config_add_boolean 'distributed_arp_table:bool'
|
|
proto_config_add_boolean 'fragmentation:bool'
|
|
proto_config_add_string 'gw_bandwidth'
|
|
proto_config_add_string 'gw_mode'
|
|
proto_config_add_int 'gw_sel_class'
|
|
proto_config_add_int 'hop_penalty'
|
|
proto_config_add_string 'isolation_mark'
|
|
proto_config_add_string 'log_level'
|
|
proto_config_add_int 'multicast_fanout'
|
|
proto_config_add_boolean 'multicast_mode:bool'
|
|
proto_config_add_boolean 'network_coding:bool'
|
|
proto_config_add_int 'orig_interval'
|
|
proto_config_add_string 'routing_algo'
|
|
}
|
|
|
|
proto_batadv_setup() {
|
|
local config="$1"
|
|
local iface="$config"
|
|
|
|
local aggregated_ogms
|
|
local ap_isolation
|
|
local bonding
|
|
local bridge_loop_avoidance
|
|
local distributed_arp_table
|
|
local fragmentation
|
|
local gw_bandwidth
|
|
local gw_mode
|
|
local gw_sel_class
|
|
local hop_penalty
|
|
local isolation_mark
|
|
local log_level
|
|
local multicast_fanout
|
|
local multicast_mode
|
|
local network_coding
|
|
local orig_interval
|
|
local routing_algo
|
|
|
|
json_get_vars aggregated_ogms
|
|
json_get_vars ap_isolation
|
|
json_get_vars bonding
|
|
json_get_vars bridge_loop_avoidance
|
|
json_get_vars distributed_arp_table
|
|
json_get_vars fragmentation
|
|
json_get_vars gw_bandwidth
|
|
json_get_vars gw_mode
|
|
json_get_vars gw_sel_class
|
|
json_get_vars hop_penalty
|
|
json_get_vars isolation_mark
|
|
json_get_vars log_level
|
|
json_get_vars multicast_fanout
|
|
json_get_vars multicast_mode
|
|
json_get_vars network_coding
|
|
json_get_vars orig_interval
|
|
json_get_vars routing_algo
|
|
|
|
set_default routing_algo 'BATMAN_IV'
|
|
|
|
batctl routing_algo "$routing_algo"
|
|
batctl meshif "$iface" interface create
|
|
|
|
[ -n "$aggregated_ogms" ] && batctl meshif "$iface" aggregation "$aggregated_ogms"
|
|
[ -n "$ap_isolation" ] && batctl meshif "$iface" ap_isolation "$ap_isolation"
|
|
[ -n "$bonding" ] && batctl meshif "$iface" bonding "$bonding"
|
|
[ -n "$bridge_loop_avoidance" ] && batctl meshif "$iface" bridge_loop_avoidance "$bridge_loop_avoidance" 2>&-
|
|
[ -n "$distributed_arp_table" ] && batctl meshif "$iface" distributed_arp_table "$distributed_arp_table" 2>&-
|
|
[ -n "$fragmentation" ] && batctl meshif "$iface" fragmentation "$fragmentation"
|
|
|
|
case "$gw_mode" in
|
|
server)
|
|
if [ -n "$gw_bandwidth" ]; then
|
|
batctl meshif "$iface" gw_mode "server" "$gw_bandwidth"
|
|
else
|
|
batctl meshif "$iface" gw_mode "server"
|
|
fi
|
|
;;
|
|
client)
|
|
if [ -n "$gw_sel_class" ]; then
|
|
batctl meshif "$iface" gw_mode "client" "$gw_sel_class"
|
|
else
|
|
batctl meshif "$iface" gw_mode "client"
|
|
fi
|
|
;;
|
|
*)
|
|
batctl meshif "$iface" gw_mode "off"
|
|
;;
|
|
esac
|
|
|
|
[ -n "$hop_penalty" ] && batctl meshif "$iface" hop_penalty "$hop_penalty"
|
|
[ -n "$isolation_mark" ] && batctl meshif "$iface" isolation_mark "$isolation_mark"
|
|
[ -n "$multicast_fanout" ] && batctl meshif "$iface" multicast_fanout "$multicast_fanout"
|
|
[ -n "$multicast_mode" ] && batctl meshif "$iface" multicast_mode "$multicast_mode" 2>&-
|
|
[ -n "$network_coding" ] && batctl meshif "$iface" network_coding "$network_coding" 2>&-
|
|
[ -n "$log_level" ] && batctl meshif "$iface" loglevel "$log_level" 2>&-
|
|
[ -n "$orig_interval" ] && batctl meshif "$iface" orig_interval "$orig_interval"
|
|
|
|
proto_init_update "$iface" 1
|
|
proto_send_update "$config"
|
|
}
|
|
|
|
proto_batadv_teardown() {
|
|
local config="$1"
|
|
local iface="$config"
|
|
|
|
batctl meshif "$iface" interface destroy
|
|
}
|
|
|
|
add_protocol batadv
|