diff options
author | Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> | 2009-09-30 08:08:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-30 23:03:02 -0400 |
commit | 6ad3810b0ec9e00eb00500ec4f7a554aa8f5a577 (patch) | |
tree | e0385eb32a670752f7dff95ad4bcb09817b467f4 /drivers/net/ixgbe/ixgbe_main.c | |
parent | aad719182d9c6a785931efe87b978eb6f7742e0e (diff) |
ixgbe: Remove ATR computation for UDP traffic
ATR support for UDP on 82599 needs to be redesigned, since the
current model doesn't make much sense. The fallout from having
it in though is it causes all UDP traffic to still compute the
ATR hashes on transmit, which are useless. This removal will
return upwards of 10% of relative computational overhead in
forwarding tests.
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@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/ixgbe/ixgbe_main.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 960967399209..1cbc6a318b67 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -5091,7 +5091,6 @@ static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb, | |||
5091 | /* Right now, we support IPv4 only */ | 5091 | /* Right now, we support IPv4 only */ |
5092 | struct ixgbe_atr_input atr_input; | 5092 | struct ixgbe_atr_input atr_input; |
5093 | struct tcphdr *th; | 5093 | struct tcphdr *th; |
5094 | struct udphdr *uh; | ||
5095 | struct iphdr *iph = ip_hdr(skb); | 5094 | struct iphdr *iph = ip_hdr(skb); |
5096 | struct ethhdr *eth = (struct ethhdr *)skb->data; | 5095 | struct ethhdr *eth = (struct ethhdr *)skb->data; |
5097 | u16 vlan_id, src_port, dst_port, flex_bytes; | 5096 | u16 vlan_id, src_port, dst_port, flex_bytes; |
@@ -5105,12 +5104,6 @@ static void ixgbe_atr(struct ixgbe_adapter *adapter, struct sk_buff *skb, | |||
5105 | dst_port = th->dest; | 5104 | dst_port = th->dest; |
5106 | l4type |= IXGBE_ATR_L4TYPE_TCP; | 5105 | l4type |= IXGBE_ATR_L4TYPE_TCP; |
5107 | /* l4type IPv4 type is 0, no need to assign */ | 5106 | /* l4type IPv4 type is 0, no need to assign */ |
5108 | } else if(iph->protocol == IPPROTO_UDP) { | ||
5109 | uh = udp_hdr(skb); | ||
5110 | src_port = uh->source; | ||
5111 | dst_port = uh->dest; | ||
5112 | l4type |= IXGBE_ATR_L4TYPE_UDP; | ||
5113 | /* l4type IPv4 type is 0, no need to assign */ | ||
5114 | } else { | 5107 | } else { |
5115 | /* Unsupported L4 header, just bail here */ | 5108 | /* Unsupported L4 header, just bail here */ |
5116 | return; | 5109 | return; |