[ovs-dev] [RFC PATCHv6] netdev-dpdk: Enable Rx checksum offloading feature on DPDK physical ports.

Chandran, Sugesh sugesh.chandran at intel.com
Sat Aug 27 22:53:03 UTC 2016



Regards
_Sugesh


> -----Original Message-----
> From: Jesse Gross [mailto:jesse at kernel.org]
> Sent: Saturday, August 27, 2016 10:21 PM
> To: Chandran, Sugesh <sugesh.chandran at intel.com>
> Cc: ovs dev <dev at openvswitch.org>
> Subject: Re: [RFC PATCHv6] netdev-dpdk: Enable Rx checksum offloading
> feature on DPDK physical ports.
> 
> On Sat, Aug 27, 2016 at 8:13 AM, Sugesh Chandran
> <sugesh.chandran at intel.com> wrote:
> > Add Rx checksum offloading feature support on DPDK physical ports. By
> > default, the Rx checksum offloading is enabled if NIC supports.
> > However, the checksum offloading can be turned OFF either while adding
> > a new DPDK physical port to OVS or at runtime.
> >
> > The rx checksum offloading can be turned off by setting the parameter
> > to 'false'. For eg: To disable the rx checksum offloading when adding
> > a port,
> >
> >  'ovs-vsctl add-port br0 dpdk0 -- \
> >   set Interface dpdk0 type=dpdk options:rx-checksum-offload=false'
> >
> > OR (to disable at run time after port is being added to OVS)
> >
> > 'ovs-vsctl set Interface dpdk0 options:rx-checksum-offload=false'
> >
> > Similarly to turn ON rx checksum offloading at run time,
> >
> > 'ovs-vsctl set Interface dpdk0 options:rx-checksum-offload=true'
> >
> > This is a RFC patch as the new checksum offload flags
> 'PKT_RX_L4_CKSUM_GOOD'
> > and 'PKT_RX_IP_CKSUM_GOOD' will be available only in DPDK 16.11
> > release. OVS must compile with DPDK 16.11 release to use the checksum
> offloading feature.
> >
> > The Tx checksum offloading support is not implemented due to the
> > following reasons.
> >
> > 1) Checksum offloading and vectorization are mutually exclusive in
> > DPDK poll mode driver. Vector packet processing is turned OFF when
> > checksum offloading is enabled which causes significant performance drop
> at Tx side.
> >
> > 2) Normally, OVS generates checksum for tunnel packets in software at
> > the 'tunnel push' operation, where the tunnel headers are created.
> > However enabling Tx checksum offloading involves,
> >
> >   *) Mark every packets for tx checksum offloading at 'tunnel_push' and
> >   recirculate.
> >   *) At the time of xmit, validate the same flag and instruct the NIC to do
> the
> >   checksum calculation.  In case NIC doesnt support Tx checksum offloading,
> >   the checksum calculation has to be done in software before sending out
> the
> >   packets.
> >
> > No significant performance improvement noticed with Tx checksum
> > offloading due to the e overhead of additional validations + non vector
> packet processing.
> > In some test scenarios, it introduces performance drop too.
> >
> > Rx checksum offloading still offers 8-9% of improvement on VxLAN
> > tunneling decapsulation even though the SSE vector Rx function is
> > disabled in DPDK poll mode driver.
> >
> > Signed-off-by: Sugesh Chandran <sugesh.chandran at intel.com>
> 
> Thanks for all of the revisions! This one looks good to me. I'll look forward to
> seeing it again when the underlying DPDK support is available.
> 
> If you want, you can include this on the patch when you send it out again
> later:
> Acked-by: Jesse Gross <jesse at kernel.org>
[Sugesh] Thanks Jesse. I will send out the patch with your ACK
when DPDK support is available. 


More information about the dev mailing list