[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <41548ebb1a774750a56899282d8e9363@BY2PR03MB299.namprd03.prod.outlook.com>
Date: Tue, 22 Apr 2014 19:07:16 +0000
From: KY Srinivasan <kys@...rosoft.com>
To: Ben Hutchings <ben@...adent.org.uk>
CC: "davem@...emloft.net" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"olaf@...fle.de" <olaf@...fle.de>,
"jasowang@...hat.com" <jasowang@...hat.com>
Subject: RE: Drivers: net: Hyperv
> -----Original Message-----
> From: Ben Hutchings [mailto:ben@...adent.org.uk]
> Sent: Tuesday, April 22, 2014 11:22 AM
> To: KY Srinivasan
> Cc: davem@...emloft.net; netdev@...r.kernel.org; olaf@...fle.de;
> jasowang@...hat.com
> Subject: Re: Drivers: net: Hyperv
>
> On Tue, 2014-04-22 at 11:22 -0700, K. Y. Srinivasan wrote:
> > I am trying to port the various offloads (checksum, TSO etc.) that I
> > recently implemented for the Hyper-V network driver to a 2.6.32 kernel
> > and while this code works on the upstream bits, TCP checksum offload
> > does not seem to work on the 2.6.32 kernel. Would you know if there is
> > a different way to turn on checksum offload on 2.6.32 kernels? I am setting
> the relevant feature flags:
> >
> >
> > net->features = NETIF_F_SG | NETIF_F_RXCSUM |
> > NETIF_F_IP_CSUM | NETIF_F_TSO;
>
> There is no NETIF_F_RXCSUM in 2.6.32, but otherwise this should work.
>
> I notice that NETIF_F_HIGHDMA is not there, and it seems like you could add
> it as netvsc_start_xmit() doesn't assume page fragments are in lowmem.
Ben,
Thank you for the prompt response. I added the HIGHDMA feature
and yet I see the same behavior.
>
> > What I am observing is that when the skb is presented to the driver
> > for transmission, The ip_summed field in the skb is set to 0.
>
> Maybe you tested on a 32-bit system and the packet had to be copied to
> lowmem? The allocation behaviour may have changed since 2.6.32.
I am testing on a 64 bit VM.
>
> > On the kernel tip, I see this value set to CHECKSUM_PARTIAL and the
> > offloads work correctly on the kernel tip. The other difference I see
> > is that on entry into the driver, the eth_hdr state is not correctly set in the
> skb.
> > I need to invoke skb_reset_mac_header() to get this state correctly set.
> > Any help would be greatly appreciated.
>
> I don't recall that problem.
Regards,
K. Y
Powered by blists - more mailing lists