aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/igb_main.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2010-07-01 16:01:05 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-05 21:50:54 -0400
commit4478a9cdf007a0418755a8a4016af8352fb1c1f3 (patch)
treeca8a8ba6059ac49f780b2c9e8cb7517394481bbf /drivers/net/igb/igb_main.c
parent39827be26b36ef9cdbc661c92a269e0484cd9ef5 (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/igb_main.c')
-rw-r--r--drivers/net/igb/igb_main.c18
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}