[ovs-dev] [PATCH v2] tunneling: Improving tunneling performance using DPDK Rx checksum offloading feature.

Chandran, Sugesh sugesh.chandran at intel.com
Mon Apr 18 09:12:01 UTC 2016



Regards
_Sugesh

> -----Original Message-----
> From: Jesse Gross [mailto:jesse at kernel.org]
> Sent: Friday, April 15, 2016 5:04 PM
> To: Chandran, Sugesh <sugesh.chandran at intel.com>
> Cc: pravin shelar <pshelar at ovn.org>; ovs dev <dev at openvswitch.org>
> Subject: Re: [ovs-dev] [PATCH v2] tunneling: Improving tunneling
> performance using DPDK Rx checksum offloading feature.
> 
> On Fri, Apr 15, 2016 at 3:04 AM, Chandran, Sugesh
> <sugesh.chandran at intel.com> wrote:
> >> -----Original Message-----
> >> From: pravin shelar [mailto:pshelar at ovn.org]
> >> Sent: Thursday, April 14, 2016 5:59 PM
> >> To: Chandran, Sugesh <sugesh.chandran at intel.com>
> >> Cc: ovs dev <dev at openvswitch.org>
> >> Subject: Re: [ovs-dev] [PATCH v2] tunneling: Improving tunneling
> >> performance using DPDK Rx checksum offloading feature.
> >> On Wed, Apr 13, 2016 at 7:42 AM, Sugesh Chandran
> >> <sugesh.chandran at intel.com> wrote:
> >> > +static inline bool
> >> > +is_checksum_valid(struct dp_packet *packet) { #ifdef DPDK_NETDEV
> >> > +    if (packet->mbuf.ol_flags & (PKT_RX_IP_CKSUM_BAD |
> >> > +                                 PKT_RX_L4_CKSUM_BAD)) {
> >> > +        return 0;
> >> > +    }
> >> > +    packet->md.ol_flags = NETDEV_RX_CHECKSUM_OFFLOAD;
> >> There is no need to define redundant flags for same information in
> >> dp_packet. We can just access packet->mbuf members to check the
> >> checksum flag.
> > [Sugesh] mbuf doesn’t have a flag for checksum. However  the checksum
> > Invalid flags in mbuf get set when a packet received with invalid
> > checksum on a checksum offloaded port. So a packet with a valid
> > checksum cannot say if the checksum is already validated in the
> > NIC/not. We need this information in the packet to bypass checksum
> validation in tunneling code.
> 
> What do you think the chances are of fixing this in DPDK? The current design
> doesn't make a lot of sense to me, so it would be better to address it at the
> source rather than papering over it in OVS.
[Sugesh] I feel DPDK may not have to fix this behavior due to the fact that
1) The checksum offloading can be enabled only on supported DPDK ports. The port 
Initialization reports error otherwise.
2) Any packet received on checksum offload port, always validated by NIC when
its enabled. 
3) DPDK reports error on packets having invalid checksum. Why should DPDK
reports a packet is validated/valid also , provided its implicit as its received on the offloaded
port.

Anyway I will discuss this with DPDK folks and keep you posted.





More information about the dev mailing list