bonding: allow TSO being set on bonding master
authorEric Dumazet <edumazet@google.com>
Thu, 16 May 2013 07:34:53 +0000 (07:34 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 May 2013 22:02:01 +0000 (15:02 -0700)
commitb0ce3508b25ea6fa10ae3ca254de1d695b521702
treed5158ba0fe71d3807c563148c6cddb3757e7f348
parent3aefe2b4a8003517d6e15112f806fd4069785389
bonding: allow TSO being set on bonding master

In some situations, we need to disable TSO on bonding slaves.

bonding device automatically unset TSO in bond_fix_features(), and
performance is not good because :

1) We consume more cpu cycles.

2) GSO segmentation has some bugs leading to out of order TCP packets
if this segmentation is done before virtual device. This particular
problem will be addressed in a separate patch.

This patch allows TSO being set/unset on the bonding master,
so that GSO segmentation is done after bonding layer.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Michał Mirosław <mirqus@gmail.com>
Cc: Jay Vosburgh <fubar@us.ibm.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: Maciej Żenczykowski <maze@google.com>
Cc: Tom Herbert <therbert@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c
include/linux/netdevice.h