[v2,6/7] batman-adv: bugfix for dat optimiziation patch

Message ID 1456492768-29861-1-git-send-email-apape@phoenixcontact.com
State Superseded, archived
Delegated to: Marek Lindner
Headers

Commit Message

Andreas Pape Feb. 26, 2016, 1:19 p.m. UTC
  Make sure that claiming of devices due to dat handling is only done
for non-local mac addresses. As dat is handled after the normal bla
code this does not break the roaming client scenario for bla.

Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
---
 net/batman-adv/bridge_loop_avoidance.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

--
1.7.0.4



..................................................................
PHOENIX CONTACT ELECTRONICS GmbH

Sitz der Gesellschaft / registered office of the company: 31812 Bad Pyrmont
USt-Id-Nr.: DE811742156
Amtsgericht Hannover HRB 100528 / district court Hannover HRB 100528
Geschäftsführer / Executive Board: Roland Bent, Dr. Martin Heubeck
  

Comments

Sven Eckelmann Feb. 26, 2016, 4:10 p.m. UTC | #1
On Friday 26 February 2016 14:19:28 Andreas Pape wrote:
> Make sure that claiming of devices due to dat handling is only done
> for non-local mac addresses. As dat is handled after the normal bla
> code this does not break the roaming client scenario for bla.
> 
> Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
> ---
>  net/batman-adv/bridge_loop_avoidance.c |   18 ++++++++++++------
>  1 files changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
> index 739f80f..32a6168 100644
> --- a/net/batman-adv/bridge_loop_avoidance.c
> +++ b/net/batman-adv/bridge_loop_avoidance.c
> @@ -1959,13 +1959,19 @@ bool batadv_bla_handle_local_claim(struct batadv_priv *bat_priv,
>  					primary_if->net_dev->dev_addr))
>  			ret = false;
>  	} else {
> -		/* If there is no claim, claim the device */
> -		batadv_dbg(BATADV_DBG_BLA, bat_priv,
> -			   "Handle claim locally for currently not claimed mac %pM.\n",
> -			   search_claim.addr);
> +		/* If there is no claim, claim the device
> +		 * but only if this isn't a mac address
> +		 * out of the local tt
> +		 */
> +		if (!batadv_is_my_client(bat_priv, addr, vid)) {
> +			batadv_dbg(BATADV_DBG_BLA, bat_priv,
> +				   "bla_handle_local_claim(): Handle claim locally for currently not claimed mac %pM.\n",
> +				   search_claim.addr);
> 
> -		batadv_handle_claim(bat_priv, primary_if,
> -				    primary_if->net_dev->dev_addr, addr, vid);
> +			batadv_handle_claim(bat_priv, primary_if,
> +					    primary_if->net_dev->dev_addr,
> +					    addr, vid);
> +		}
>  	}

What do you think about inverting the check and as jump to out when
batadv_is_my_client(bat_priv, addr, vid) is true?

The debug output change looks like it should be in patch 5/7.

Kind regards,
	Sven
  
Simon Wunderlich March 10, 2016, 2:58 p.m. UTC | #2
On Friday 26 February 2016 14:19:28 Andreas Pape wrote:
> Make sure that claiming of devices due to dat handling is only done
> for non-local mac addresses. As dat is handled after the normal bla
> code this does not break the roaming client scenario for bla.
> 
> Signed-off-by: Andreas Pape <apape@phoenixcontact.com>

I believe this should actually be squashed into your PATCH 1/7? 

But this change is under discussion anyway ...

For future patches, please don't send bugfixes for your own patches within the 
same series separately but squash them in the right patches. :)

Thanks,
     Simon
  

Patch

diff --git a/net/batman-adv/bridge_loop_avoidance.c b/net/batman-adv/bridge_loop_avoidance.c
index 739f80f..32a6168 100644
--- a/net/batman-adv/bridge_loop_avoidance.c
+++ b/net/batman-adv/bridge_loop_avoidance.c
@@ -1959,13 +1959,19 @@  bool batadv_bla_handle_local_claim(struct batadv_priv *bat_priv,
 					primary_if->net_dev->dev_addr))
 			ret = false;
 	} else {
-		/* If there is no claim, claim the device */
-		batadv_dbg(BATADV_DBG_BLA, bat_priv,
-			   "Handle claim locally for currently not claimed mac %pM.\n",
-			   search_claim.addr);
+		/* If there is no claim, claim the device
+		 * but only if this isn't a mac address
+		 * out of the local tt
+		 */
+		if (!batadv_is_my_client(bat_priv, addr, vid)) {
+			batadv_dbg(BATADV_DBG_BLA, bat_priv,
+				   "bla_handle_local_claim(): Handle claim locally for currently not claimed mac %pM.\n",
+				   search_claim.addr);

-		batadv_handle_claim(bat_priv, primary_if,
-				    primary_if->net_dev->dev_addr, addr, vid);
+			batadv_handle_claim(bat_priv, primary_if,
+					    primary_if->net_dev->dev_addr,
+					    addr, vid);
+		}
 	}

 out: