[1/2] batman-adv: mcast: fix mcast packet type counter on timeouted nodes

Message ID 20240201110110.29129-2-sw@simonwunderlich.de (mailing list archive)
State Not Applicable, archived
Delegated to: Simon Wunderlich
Headers
Series [1/2] batman-adv: mcast: fix mcast packet type counter on timeouted nodes |

Commit Message

Simon Wunderlich Feb. 1, 2024, 11:01 a.m. UTC
  From: Linus Lüssing <linus.luessing@c0d3.blue>

When a node which does not have the new batman-adv multicast packet type
capability vanishes then the according, global counter erroneously would
not be reduced in response on other nodes. Which in turn leads to the mesh
never switching back to sending with the new multicast packet type.

Fix this by reducing the according counter when such a node times out.

Fixes: 90039133221e ("batman-adv: mcast: implement multicast packet generation")
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
 net/batman-adv/multicast.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 1, 2024, 5:30 p.m. UTC | #1
Hello:

This series was applied to netdev/net.git (main)
by Simon Wunderlich <sw@simonwunderlich.de>:

On Thu,  1 Feb 2024 12:01:09 +0100 you wrote:
> From: Linus Lüssing <linus.luessing@c0d3.blue>
> 
> When a node which does not have the new batman-adv multicast packet type
> capability vanishes then the according, global counter erroneously would
> not be reduced in response on other nodes. Which in turn leads to the mesh
> never switching back to sending with the new multicast packet type.
> 
> [...]

Here is the summary with links:
  - [1/2] batman-adv: mcast: fix mcast packet type counter on timeouted nodes
    https://git.kernel.org/netdev/net/c/59f7ea703c38
  - [2/2] batman-adv: mcast: fix memory leak on deleting a batman-adv interface
    https://git.kernel.org/netdev/net/c/0a186b49bba5

You are awesome, thank you!
  

Patch

diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c
index d982daea8329..b4f8b4af1722 100644
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -2198,6 +2198,8 @@  void batadv_mcast_purge_orig(struct batadv_orig_node *orig)
 				      BATADV_MCAST_WANT_NO_RTR4);
 	batadv_mcast_want_rtr6_update(bat_priv, orig,
 				      BATADV_MCAST_WANT_NO_RTR6);
+	batadv_mcast_have_mc_ptype_update(bat_priv, orig,
+					  BATADV_MCAST_HAVE_MC_PTYPE_CAPA);
 
 	spin_unlock_bh(&orig->mcast_handler_lock);
 }