On Donnerstag, 6. Oktober 2016 08:41:37 CET Linus Lüssing wrote:
Hi,
Here's the second broadcast avoidance patchset (rebased on the former one).
Hopefully, those two patchsets together should be an automatic approach and replacement for the (non-upstream) no-rebroadcast flag patch and the cases it is currently used for.
All patches had conflicts when I tried to apply them. Please check if the branch ecsv/pu [1] solved the conflicts correctly.
Here are the conflicts (according to rerere diff):
Patch 1 =======
--- a/net/batman-adv/originator.c +++ b/net/batman-adv/originator.c @@ -559,11 +559,8 @@ struct batadv_orig_node *orig_node) { struct batadv_priv *bat_priv = netdev_priv(hard_iface->soft_iface); -<<<<<<< - struct batadv_hardif_neigh_node *hardif_neigh = NULL, *pre_neigh; -======= struct batadv_hardif_neigh_node *hardif_neigh; ->>>>>>> + struct batadv_hardif_neigh_node *pre_neigh;
spin_lock_bh(&hard_iface->neigh_list_lock);
Patch 2 =======
--- a/net/batman-adv/Kconfig +++ b/net/batman-adv/Kconfig @@ -17,12 +17,8 @@
config BATMAN_ADV_BATMAN_V bool "B.A.T.M.A.N. V protocol (experimental)" -<<<<<<< depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y) -======= - depends on BATMAN_ADV && CFG80211=y || (CFG80211=m && BATMAN_ADV=m) select CRYPTO_SHA512 ->>>>>>> default n help This option enables the B.A.T.M.A.N. V protocol, the successor
Patch 3 =======
--- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -1852,22 +1852,17 @@ skb_set_network_header(skb, ogm_offset); }
-<<<<<<< ret = NET_RX_SUCCESS;
free_skb: + skb_reset_network_header(skb); + if (ret == NET_RX_SUCCESS) consume_skb(skb); else kfree_skb(skb);
return ret; -======= - skb_reset_network_header(skb); - - kfree_skb(skb); - return NET_RX_SUCCESS; ->>>>>>> }
#ifdef CONFIG_BATMAN_ADV_DEBUGFS --- a/net/batman-adv/multicast.c +++ b/net/batman-adv/multicast.c @@ -1173,21 +1173,15 @@ */ void batadv_mcast_init(struct batadv_priv *bat_priv) { -<<<<<<< - batadv_tvlv_handler_register(bat_priv, batadv_mcast_tvlv_ogm_handler, - NULL, BATADV_TVLV_MCAST, 2, - BATADV_TVLV_HANDLER_OGM_CIFNOTFND); - - INIT_DELAYED_WORK(&bat_priv->mcast.work, batadv_mcast_mla_update); - batadv_mcast_start_timer(bat_priv); -======= batadv_tvlv_handler_register2(bat_priv, batadv_mcast_tvlv_ogm_handler, BATADV_IV_OGM, BATADV_TVLV_MCAST, 2, BATADV_TVLV_HANDLER_CIFNOTFND); batadv_tvlv_handler_register2(bat_priv, batadv_mcast_tvlv_ogm_handler, BATADV_OGM2, BATADV_TVLV_MCAST, 2, BATADV_TVLV_HANDLER_CIFNOTFND); ->>>>>>> + + INIT_DELAYED_WORK(&bat_priv->mcast.work, batadv_mcast_mla_update); + batadv_mcast_start_timer(bat_priv); }
#ifdef CONFIG_BATMAN_ADV_DEBUGFS
Patch 4 =======
--- a/net/batman-adv/send.c +++ b/net/batman-adv/send.c @@ -797,11 +797,6 @@ unsigned long send_time = jiffies + msecs_to_jiffies(5); bool dropped = false; u8 *neigh_addr; -<<<<<<< - u8 *orig_neigh; -======= - unsigned long send_time = jiffies + msecs_to_jiffies(5); ->>>>>>> int ret = 0;
delayed_work = to_delayed_work(work);
Kind regards, Sven
[1] https://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/ecsv/pu