summaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorEric Dumazet2013-04-15 19:03:24 +0200
committerDavid S. Miller2013-04-18 21:07:29 +0200
commit4394542ca4ec9f28c3c8405063d200b1e7c347d7 (patch)
treec9a7a3b404ca74bafb3cf45bbfd3de4ceb7bb7e8 /net/ipv4/tcp_input.c
parentbnx2x: Fix status blocks configuration (diff)
downloadkernel-qcow2-linux-4394542ca4ec9f28c3c8405063d200b1e7c347d7.tar.gz
kernel-qcow2-linux-4394542ca4ec9f28c3c8405063d200b1e7c347d7.tar.xz
kernel-qcow2-linux-4394542ca4ec9f28c3c8405063d200b1e7c347d7.zip
bonding: fix l23 and l34 load balancing in forwarding path
Since commit 6b923cb7188d46 (bonding: support for IPv6 transmit hashing) bonding doesn't properly hash traffic in forwarding setups. Vitaly V. Bursov diagnosed that skb_network_header_len() returned 0 in this case. More generally, the transport header might not be in the skb head. Use pskb_may_pull() & skb_header_pointer() to get it right, and use proto_ports_offset() in bond_xmit_hash_policy_l34() to get support for more protocols than TCP and UDP. Reported-by: Vitaly V. Bursov <vitalyb@telenet.dn.ua> Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Jay Vosburgh <fubar@us.ibm.com> Cc: Andy Gospodarek <andy@greyhouse.net> Cc: John Eaglesham <linux@8192.net> Tested-by: Vitaly V. Bursov <vitalyb@telenet.dn.ua> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
0 files changed, 0 insertions, 0 deletions