OSDN Git Service

tcp: reflect SYN queue_mapping into SYNACK packets
authorEric Dumazet <edumazet@google.com>
Fri, 1 Jun 2012 01:47:50 +0000 (01:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Jun 2012 18:22:11 +0000 (14:22 -0400)
commitfff3269907897ee91406ece125795f53e722677e
tree6c22d2afaea6bc6fd2b34311db9c80b5418b94d1
parent7433819a1eefd4e74711fffd6d54e30a644ef240
tcp: reflect SYN queue_mapping into SYNACK packets

While testing how linux behaves on SYNFLOOD attack on multiqueue device
(ixgbe), I found that SYNACK messages were dropped at Qdisc level
because we send them all on a single queue.

Obvious choice is to reflect incoming SYN packet @queue_mapping to
SYNACK packet.

Under stress, my machine could only send 25.000 SYNACK per second (for
200.000 incoming SYN per second). NIC : ixgbe with 16 rx/tx queues.

After patch, not a single SYNACK is dropped.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Hans Schillstrom <hans.schillstrom@ericsson.com>
Cc: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c