[ovs-dev] FW: MPLS and VLAN QinQ patch

Jesse Gross jesse at nicira.com
Fri Jun 1 00:03:14 UTC 2012


On Thu, May 31, 2012 at 3:44 PM, ravi kerur <rkerur at gmail.com> wrote:
> Hi Jesse, Ben,
>
> I think I might have figured out performance issue with mpls/qinq and
> tcp offload mentioned earlier. The driver(intel e1000e driver) checks
> skb->protocol to be either ETH_P_IP/ETH_P_IPV6 and sets the flag in
> DMA descriptors based on layer-4. This logic is basically used in
> checksum offloading. In mpls and qinq, I used to update skb->protocol
> to respective eth_types which then confused the driver and didn't see
> flags correctly. I modified the mpls/qinq not to update
> skb->protocol(just one line change) and things look pretty good. The
> performance numbers I am getting right now are

skb->protocol must reflect the protocol contained in the packet.  By
changing it, you're implicitly assuming that the NIC can handle a
protocol that the driver says it cannot and hoping it works.  At this
point in time, MPLS packets requiring offloading should never make it
to a driver because none of them expose that capability.



More information about the dev mailing list