diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2010-07-01 16:01:05 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-05 21:50:54 -0400 |
commit | 4478a9cdf007a0418755a8a4016af8352fb1c1f3 (patch) | |
tree | ca8a8ba6059ac49f780b2c9e8cb7517394481bbf /drivers/net/igb | |
parent | 39827be26b36ef9cdbc661c92a269e0484cd9ef5 (diff) |
igb: drop support for UDP hashing w/ RSS
This change removes UDP from the supported protocols for RSS hashing. The
reason for removing this protocol is because IP fragmentation was causing a
network flow to be broken into two streams, one for fragmented, and one for
non-fragmented and this in turn was causing out-of-order issues.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/igb')
-rw-r--r-- | drivers/net/igb/igb_main.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 9cb04e29ad13..94656179441d 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -2717,14 +2717,16 @@ static void igb_setup_mrqc(struct igb_adapter *adapter) | |||
2717 | } | 2717 | } |
2718 | igb_vmm_control(adapter); | 2718 | igb_vmm_control(adapter); |
2719 | 2719 | ||
2720 | mrqc |= (E1000_MRQC_RSS_FIELD_IPV4 | | 2720 | /* |
2721 | E1000_MRQC_RSS_FIELD_IPV4_TCP); | 2721 | * Generate RSS hash based on TCP port numbers and/or |
2722 | mrqc |= (E1000_MRQC_RSS_FIELD_IPV6 | | 2722 | * IPv4/v6 src and dst addresses since UDP cannot be |
2723 | E1000_MRQC_RSS_FIELD_IPV6_TCP); | 2723 | * hashed reliably due to IP fragmentation |
2724 | mrqc |= (E1000_MRQC_RSS_FIELD_IPV4_UDP | | 2724 | */ |
2725 | E1000_MRQC_RSS_FIELD_IPV6_UDP); | 2725 | mrqc |= E1000_MRQC_RSS_FIELD_IPV4 | |
2726 | mrqc |= (E1000_MRQC_RSS_FIELD_IPV6_UDP_EX | | 2726 | E1000_MRQC_RSS_FIELD_IPV4_TCP | |
2727 | E1000_MRQC_RSS_FIELD_IPV6_TCP_EX); | 2727 | E1000_MRQC_RSS_FIELD_IPV6 | |
2728 | E1000_MRQC_RSS_FIELD_IPV6_TCP | | ||
2729 | E1000_MRQC_RSS_FIELD_IPV6_TCP_EX; | ||
2728 | 2730 | ||
2729 | wr32(E1000_MRQC, mrqc); | 2731 | wr32(E1000_MRQC, mrqc); |
2730 | } | 2732 | } |