netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces
@ 2010-06-16  8:24 Tom Hughes
  2010-06-16 13:25 ` jamal
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Hughes @ 2010-06-16  8:24 UTC (permalink / raw)
  To: netdev
  Cc: akpm, Tom Hughes, Jamal Hadi Salim, David S. Miller,
	Stephen Hemminger, Patrick McHardy, Tejun Heo, linux-kernel

The sch_teql module, which can be used to load balance over a set of
underlying interfaces, stopped working after 2.6.30 and has been
broken in all kernels since then for any underlying interface which
requires the addition of link level headers.

The problem is that the transmit routine relies on being able to
access the destination address in the skb in order to do address
resolution once it has decided which underlying interface it is going
to transmit through.

In 2.6.31 the IFF_XMIT_DST_RELEASE flag was introduced, and set by
default for all interfaces, which causes the destination address to be
released before the transmit routine for the interface is called.

The solution is to clear that flag for teql interfaces.

Signed-off-by: Tom Hughes <tom@compton.nu>
---
 net/sched/sch_teql.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 3415b6c..807643b 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -449,6 +449,7 @@ static __init void teql_master_setup(struct net_device *dev)
 	dev->tx_queue_len	= 100;
 	dev->flags		= IFF_NOARP;
 	dev->hard_header_len	= LL_MAX_HEADER;
+	dev->priv_flags		&= ~IFF_XMIT_DST_RELEASE;
 }
 
 static LIST_HEAD(master_dev_list);
-- 
1.7.0.1


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

* Re: [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces
  2010-06-16  8:24 [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces Tom Hughes
@ 2010-06-16 13:25 ` jamal
  2010-06-16 14:14   ` Eric Dumazet
  0 siblings, 1 reply; 4+ messages in thread
From: jamal @ 2010-06-16 13:25 UTC (permalink / raw)
  To: Tom Hughes
  Cc: netdev, akpm, David S. Miller, Eric Dumazet, Stephen Hemminger,
	Patrick McHardy, Tejun Heo, linux-kernel

On Wed, 2010-06-16 at 09:24 +0100, Tom Hughes wrote:
> The sch_teql module, which can be used to load balance over a set of
> underlying interfaces, stopped working after 2.6.30 and has been
> broken in all kernels since then for any underlying interface which
> requires the addition of link level headers.
> 
> The problem is that the transmit routine relies on being able to
> access the destination address in the skb in order to do address
> resolution once it has decided which underlying interface it is going
> to transmit through.
> 
> In 2.6.31 the IFF_XMIT_DST_RELEASE flag was introduced, and set by
> default for all interfaces, which causes the destination address to be
> released before the transmit routine for the interface is called.
> 
> The solution is to clear that flag for teql interfaces.
> 
> Signed-off-by: Tom Hughes <tom@compton.nu>

Sounds reasonable. Lets CC Eric and get his ACK.

cheers,
jamal


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

* Re: [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces
  2010-06-16 13:25 ` jamal
@ 2010-06-16 14:14   ` Eric Dumazet
  2010-06-16 21:47     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2010-06-16 14:14 UTC (permalink / raw)
  To: hadi
  Cc: Tom Hughes, netdev, akpm, David S. Miller, Stephen Hemminger,
	Patrick McHardy, Tejun Heo, linux-kernel

Le mercredi 16 juin 2010 à 09:25 -0400, jamal a écrit :
> On Wed, 2010-06-16 at 09:24 +0100, Tom Hughes wrote:
> > The sch_teql module, which can be used to load balance over a set of
> > underlying interfaces, stopped working after 2.6.30 and has been
> > broken in all kernels since then for any underlying interface which
> > requires the addition of link level headers.
> > 
> > The problem is that the transmit routine relies on being able to
> > access the destination address in the skb in order to do address
> > resolution once it has decided which underlying interface it is going
> > to transmit through.
> > 
> > In 2.6.31 the IFF_XMIT_DST_RELEASE flag was introduced, and set by
> > default for all interfaces, which causes the destination address to be
> > released before the transmit routine for the interface is called.
> > 
> > The solution is to clear that flag for teql interfaces.
> > 
> > Signed-off-by: Tom Hughes <tom@compton.nu>
> 
> Sounds reasonable. Lets CC Eric and get his ACK.
> 
> cheers,
> jamal
> 

Sure, I already Acked in on a previous message 5 days ago (although not
a formal patch, Stephen forwarded a bugzilla entry)

http://permalink.gmane.org/gmane.linux.network/163688

Please David, could you add bugzilla entry in commit ?

https://bugzilla.kernel.org/show_bug.cgi?id=16183

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Thanks !

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

* Re: [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces
  2010-06-16 14:14   ` Eric Dumazet
@ 2010-06-16 21:47     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2010-06-16 21:47 UTC (permalink / raw)
  To: eric.dumazet; +Cc: hadi, tom, netdev, akpm, shemminger, kaber, tj, linux-kernel

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 16 Jun 2010 16:14:20 +0200

> Please David, could you add bugzilla entry in commit ?
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=16183
> 
> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Done and applied, thanks everyone.

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

end of thread, other threads:[~2010-06-16 21:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-16  8:24 [PATCH] Clear IFF_XMIT_DST_RELEASE for teql interfaces Tom Hughes
2010-06-16 13:25 ` jamal
2010-06-16 14:14   ` Eric Dumazet
2010-06-16 21:47     ` David Miller

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).