Message ID | 1259961156.4198.163.camel@gshetty |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, Dec 4, 2009 at 13:12, Gurucharan Shetty <gshetty@riverbed.com> wrote: > ixgbe: allow tx of pre-formatted vlan tagged packets > > When the 82598 is fed 802.1q packets, it chokes with > an error of the form: > > ixgbe: eth0: ixgbe_tx_csum: partial checksum but proto=81! > > As the logic there was not smart enough to look into > the vlan header to pick out the encapsulated protocol. > > There are times when we'd like to send these packets > out without having to configure a vlan on the interface. > Here we check for the vlan tag and allow the packet to > go out with the correct hardware checksum. > > This patch is a clone of a previously submitted patch by > Arthur Jones <ajones@riverbed.com> for igb (Commit - > fa4a7ef36ec834fee1719636b30d2f28f4cb0166). > > Signed-off-by: Gurucharan Shetty <gshetty@riverbed.com> > Signed-off-by: Arthur Jones <ajones@riverbed.com> > Thanks, I have added the patch to my queue for testing. After successful testing, I will push to Dave/netdev.
On Fri, 2009-12-04 at 13:45 -0800, Jeff Kirsher wrote: > On Fri, Dec 4, 2009 at 13:12, Gurucharan Shetty <gshetty@riverbed.com> wrote: > > ixgbe: allow tx of pre-formatted vlan tagged packets > > > > When the 82598 is fed 802.1q packets, it chokes with > > an error of the form: > > > > ixgbe: eth0: ixgbe_tx_csum: partial checksum but proto=81! > > > > As the logic there was not smart enough to look into > > the vlan header to pick out the encapsulated protocol. > > > > There are times when we'd like to send these packets > > out without having to configure a vlan on the interface. > > Here we check for the vlan tag and allow the packet to > > go out with the correct hardware checksum. > > > > This patch is a clone of a previously submitted patch by > > Arthur Jones <ajones@riverbed.com> for igb (Commit - > > fa4a7ef36ec834fee1719636b30d2f28f4cb0166). > > > > Signed-off-by: Gurucharan Shetty <gshetty@riverbed.com> > > Signed-off-by: Arthur Jones <ajones@riverbed.com> > > > > Thanks, I have added the patch to my queue for testing. After > successful testing, I will push to Dave/netdev. > Oops. I messed up with the patch that I sent. It missed a line. I am re-sending the patch in the next message. Sorry for the inconvenience. Thanks, Gurucharan Shetty -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 77b0381..69157e4 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ -4810,6 +4810,17 @@ static bool ixgbe_tx_csum(struct ixgbe_adapter *adapter, IXGBE_ADVTXD_DTYP_CTXT); if (skb->ip_summed == CHECKSUM_PARTIAL) { + __be16 protocol; + + if (skb->protocol == cpu_to_be16(ETH_P_8021Q)) { + const struct vlan_ethhdr *vhdr = + (const struct vlan_ethhdr *)skb->data; + + protocol = vhdr->h_vlan_encapsulated_proto; + } else { + protocol = skb->protocol; + } + switch (skb->protocol) { case cpu_to_be16(ETH_P_IP): type_tucmd_mlhl |= IXGBE_ADVTXD_TUCMD_IPV4;