Bug 16183 - sch_teql no longer works post 2.6.30
Summary: sch_teql no longer works post 2.6.30
Alias: None
Product: Networking
Classification: Unclassified
Component: IPV4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Stephen Hemminger
Depends on:
Reported: 2010-06-11 15:56 UTC by Tom Hughes
Modified: 2012-07-20 12:59 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.31 through 2.6.34
Tree: Mainline
Regression: Yes

Patch to fix sch_teql (402 bytes, patch)
2010-06-11 15:56 UTC, Tom Hughes
Details | Diff

Description Tom Hughes 2010-06-11 15:56:40 UTC
Created attachment 26729 [details]
Patch to fix sch_teql

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.

The problem is that the transmit routine relies on being able to access the destination address in the skb in order to do ARP 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 release before the transmit routine for the interface is called.

The solution (implemented in the attached patch) is to clear that flag for teql interfaces.
Comment 1 Andrew Morton 2010-06-14 21:56:53 UTC
Please don't send patches via bugzilla - it causes lots of problems with
our usual patch management and review processes.

Please send this patch via email as per Documentation/SubmittingPatches. 
Suitable recipients may be found via scripts/get_maintainer.pl.  Please
also cc myself on the email.

Comment 2 Tom Hughes 2010-06-16 08:27:38 UTC
Email sent as requested.

Note You need to log in before you can comment on or make changes to this bug.