batman-adv: Use safer default config for optional features
authorSven Eckelmann <sven@narfation.org>
Wed, 18 Feb 2015 17:20:24 +0000 (18:20 +0100)
committerAntonio Quartulli <antonio@meshcoding.com>
Fri, 29 May 2015 08:13:36 +0000 (10:13 +0200)
The current default settings for optional features in batman-adv seems to
be based around the idea that the user only compiles what he requires. They
will automatically enabled when they are compiled in. For example the
network coding part of batman-adv is by default disabled in the out-of-tree
module but will be enabled when the code is compiled during the module
build.

But distributions like Debian just enable all features of the batman-adv
kernel module and hope that more experimental features or features with
possible negative effects have to be enabled using some runtime
configuration interface.

The network_coding feature can help in specific setups but also has
drawbacks and is not disabled by default in the out-of-tree module.
Disabling by default in the runtime config seems to be also quite sane.

The bridge_loop_avoidance is the only feature which is disabled by default
but may be necessary even in simple setups. Packet loops may even be
created during the initial node setup when this is not enabled. This is
different than STP on bridges because mesh is usually used on Adhoc WiFi.
Having two nodes (by accident) in the same LAN segment and in the same mesh
network is rather common in this situation.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Acked-by: Martin Hundebøll <martin@hundeboll.net>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
net/batman-adv/network-coding.c
net/batman-adv/soft-interface.c

index 89e1d4772cffbb83f511bba05e78748b4bfbc777..4cb70bb4c3e8ef395c2064bf953cf0b2ffc09360 100644 (file)
@@ -155,7 +155,7 @@ err:
  */
 void batadv_nc_init_bat_priv(struct batadv_priv *bat_priv)
 {
-       atomic_set(&bat_priv->network_coding, 1);
+       atomic_set(&bat_priv->network_coding, 0);
        bat_priv->nc.min_tq = 200;
        bat_priv->nc.max_fwd_delay = 10;
        bat_priv->nc.max_buffer_time = 200;
index d85a45c24f626d89313bcc1de2c8b7eb4490bccd..9426b83caab6917912dd66963f8c819e5edf75d4 100644 (file)
@@ -732,7 +732,7 @@ static int batadv_softif_init_late(struct net_device *dev)
        atomic_set(&bat_priv->aggregated_ogms, 1);
        atomic_set(&bat_priv->bonding, 0);
 #ifdef CONFIG_BATMAN_ADV_BLA
-       atomic_set(&bat_priv->bridge_loop_avoidance, 0);
+       atomic_set(&bat_priv->bridge_loop_avoidance, 1);
 #endif
 #ifdef CONFIG_BATMAN_ADV_DAT
        atomic_set(&bat_priv->distributed_arp_table, 1);