b.a.t.m.a.n.lists.open-mesh.org archive mirror
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix)
@ 2011-09-22 18:57 Marek Lindner
  2011-09-22 18:57 ` [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only Marek Lindner
  2011-09-27 19:06 ` [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Marek Lindner @ 2011-09-22 18:57 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n

Hi David,

our testers have discovered a regression in the current linux-3.1
code base. It increases latency of payload traffic by a factor of
4-5. Therefore we propose a patch that hopefully can be included 
before linux 3.1 final has been released. We kept it as short as 
possible to avoid introducing last minute bugs.

Once you pulled the patch you will run into a merge conflict
with net-next:
++<<<<<<< HEAD
 + orig_node = transtable_search(bat_priv, ethhdr->h_source,
 +                               ethhdr->h_dest);
 + if (is_multicast_ether_addr(ethhdr->h_dest) ||
 + (orig_node && orig_node->gw_flags)) {
++=======
+ orig_node = transtable_search(bat_priv, ethhdr->h_dest);
+ do_bcast = is_multicast_ether_addr(ethhdr->h_dest);
+ if (do_bcast || (orig_node && orig_node->gw_flags)) {
++>>>>>>> batman-adv/maint

The correct merge result would be:
+======
orig_node = transtable_search(bat_priv, ethhdr->h_source,
                              ethhdr->h_dest);
do_bcast = is_multicast_ether_addr(ethhdr->h_dest);
if (do_bcast || (orig_node && orig_node->gw_flags)) {
+======

Let me know if there is a better way to address the merge conflict.

Thanks,
Marek

The following changes since commit 322a8b034003c0d46d39af85bf24fee27b902f48:

  Linux 3.1-rc1 (2011-08-07 18:23:30 -0700)

are available in the git repository at:
  git://git.open-mesh.org/linux-merge.git batman-adv/maint

Antonio Quartulli (1):
      batman-adv: do_bcast has to be true for broadcast packets only

 net/batman-adv/soft-interface.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only
  2011-09-22 18:57 [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) Marek Lindner
@ 2011-09-22 18:57 ` Marek Lindner
  2011-09-27 19:06 ` [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: Marek Lindner @ 2011-09-22 18:57 UTC (permalink / raw)
  To: davem; +Cc: netdev, b.a.t.m.a.n, Marek Lindner

From: Antonio Quartulli <ordex@autistici.org>

corrects a critical bug of the GW feature. This bug made all the unicast
packets destined to a GW to be sent as broadcast. This bug is present even if
the sender GW feature is configured as OFF. It's an urgent bug fix and should
be committed as soon as possible.

This was a regression introduced by 43676ab590c3f8686fd047d34c3e33803eef71f0

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
---
 net/batman-adv/soft-interface.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 3e2f91f..05dd351 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -565,7 +565,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	struct orig_node *orig_node = NULL;
 	int data_len = skb->len, ret;
 	short vid = -1;
-	bool do_bcast = false;
+	bool do_bcast;
 
 	if (atomic_read(&bat_priv->mesh_state) != MESH_ACTIVE)
 		goto dropped;
@@ -598,15 +598,15 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	tt_local_add(soft_iface, ethhdr->h_source);
 
 	orig_node = transtable_search(bat_priv, ethhdr->h_dest);
-	if (is_multicast_ether_addr(ethhdr->h_dest) ||
-				(orig_node && orig_node->gw_flags)) {
+	do_bcast = is_multicast_ether_addr(ethhdr->h_dest);
+	if (do_bcast ||	(orig_node && orig_node->gw_flags)) {
 		ret = gw_is_target(bat_priv, skb, orig_node);
 
 		if (ret < 0)
 			goto dropped;
 
-		if (ret == 0)
-			do_bcast = true;
+		if (ret)
+			do_bcast = false;
 	}
 
 	/* ethernet packet should be broadcasted */
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix)
  2011-09-22 18:57 [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) Marek Lindner
  2011-09-22 18:57 ` [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only Marek Lindner
@ 2011-09-27 19:06 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2011-09-27 19:06 UTC (permalink / raw)
  To: lindner_marek; +Cc: netdev, b.a.t.m.a.n

From: Marek Lindner <lindner_marek@yahoo.de>
Date: Thu, 22 Sep 2011 20:57:15 +0200

> The following changes since commit 322a8b034003c0d46d39af85bf24fee27b902f48:
> 
>   Linux 3.1-rc1 (2011-08-07 18:23:30 -0700)
> 
> are available in the git repository at:
>   git://git.open-mesh.org/linux-merge.git batman-adv/maint

Pulled, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only
@ 2011-09-21 14:06 Antonio Quartulli
  0 siblings, 0 replies; 4+ messages in thread
From: Antonio Quartulli @ 2011-09-21 14:06 UTC (permalink / raw)
  To: b.a.t.m.a.n

corrects a critical bug of the GW feature. This bug made all the unicast
packets destined to a GW to be sent as broadcast. This bug is present even if
the sender GW feature is configured as OFF. It's an urgent bug fix and should
be committed as soon as possible.

This was a regression introduced by 17852faeb269bc72f6ff542e21c0b3056fb99c48

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
---
 soft-interface.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/soft-interface.c b/soft-interface.c
index aceeabc..652fb7b 100644
--- a/soft-interface.c
+++ b/soft-interface.c
@@ -566,7 +566,7 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 	struct orig_node *orig_node = NULL;
 	int data_len = skb->len, ret;
 	short vid = -1;
-	bool do_bcast = false;
+	bool do_bcast;
 
 	if (atomic_read(&bat_priv->mesh_state) != MESH_ACTIVE)
 		goto dropped;
@@ -600,15 +600,15 @@ static int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
 
 	orig_node = transtable_search(bat_priv, ethhdr->h_source,
 				      ethhdr->h_dest);
-	if (is_multicast_ether_addr(ethhdr->h_dest) ||
-				(orig_node && orig_node->gw_flags)) {
+	do_bcast = is_multicast_ether_addr(ethhdr->h_dest);
+	if (do_bcast ||	(orig_node && orig_node->gw_flags)) {
 		ret = gw_is_target(bat_priv, skb, orig_node);
 
 		if (ret < 0)
 			goto dropped;
 
-		if (ret == 0)
-			do_bcast = true;
+		if (ret)
+			do_bcast = false;
 	}
 
 	/* ethernet packet should be broadcasted */
-- 
1.7.3.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-09-27 19:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-22 18:57 [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) Marek Lindner
2011-09-22 18:57 ` [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only Marek Lindner
2011-09-27 19:06 ` [B.A.T.M.A.N.] pull request: batman-adv 2011-09-22 (regression fix) David Miller
  -- strict thread matches above, loose matches on Subject: below --
2011-09-21 14:06 [B.A.T.M.A.N.] [PATCH] batman-adv: do_bcast has to be true for broadcast packets only Antonio Quartulli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).