On Tue, 2016-04-26 at 13:43 -0400, Neil Horman wrote: > This was recently reported to me, and reproduced on the latest net kernel, > when > attempting to run netperf from a host that had a netem qdisc attached to the > egress interface:
.. > The problem occurs because netem is not prepared to handle GSO packets (as it > uses skb_checksum_help in its enqueue path, which cannot manipulate these > frames). > > The solution I think is to simply segment the skb in a simmilar fashion to the > way we do in __dev_queue_xmit (via validate_xmit_skb), except here we always > segment, instead of only when the interface needs us to do it. This allows > netem to properly drop/mangle/pass/etc the correct percentages of frames as > per > its qdisc configuration, and avoid failing its checksum operations > > tested successfully by myself on the latest net kernel, to whcih this applies > > Signed-off-by: Neil Horman <nhor...@tuxdriver.com> > CC: Jamal Hadi Salim <j...@mojatatu.com> > CC: "David S. Miller" <da...@davemloft.net> > CC: ne...@lists.linux-foundation.org > --- > net/sched/sch_netem.c | 34 +++++++++++++++++++++++++++++++++- > 1 file changed, 33 insertions(+), 1 deletion(-) This is not correct. I want my TSO packets being still TSO after netem traversal. Some of us use netem at 40Gbit speed ;)