> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Monday, November 28, 2016 3:03 AM
> To: dev at dpdk.org; Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>;
> Stephen Hurd <stephen.hurd at broadcom.com>; Jan Medala
> <jan at semihalf.com>; Jakub Palider <jpa at semihalf.com>; John Daley
> (johndale) <johndale at cisco.com>; Adrien Mazarguil
> <adrien.mazarguil at 6wind.com>; Alejandro Lucero
> <alejandro.lucero at netronome.com>; Harish Patil
> <harish.patil at qlogic.com>; Rasesh Mody <rasesh.mody at qlogic.com>; Jerin
> Jacob <jerin.jacob at caviumnetworks.com>; Yuanhan Liu
> <yuanhan.liu at linux.intel.com>; Yong Wang <yongwang at vmware.com>
> Cc: Tomasz Kulasek <tomaszx.kulasek at intel.com>;
> konstantin.ananyev at intel.com; olivier.matz at 6wind.com
> Subject: Re: [dpdk-dev] [PATCH v12 0/6] add Tx preparation
> We need attention of every PMD developers on this thread.
> Reminder of what Konstantin suggested:
> - if the PMD supports TX offloads AND
> - if to be able use any of these offloads the upper layer SW would have to:
> * modify the contents of the packet OR
> * obey HW specific restrictions
> then it is a PMD developer responsibility to provide tx_prep() that would
> implement expected modifications of the packet contents and restriction
> Otherwise, tx_prep() implementation is not required and can be safely set to
> I copy/paste also my previous conclusion:
> Before txprep, there is only one API: the application must prepare the
> packets checksum itself (get_psd_sum in testpmd).
> With txprep, the application have 2 choices: keep doing the job itself or call
> txprep which calls a PMD-specific function.
> The question is: does non-Intel drivers need a checksum preparation for
> Will it behave well if txprep does nothing in these drivers?
> When looking at the code, most of drivers handle the TSO flags.
> But it is hard to know whether they rely on the pseudo checksum or not.
> git grep -l 'PKT_TX_UDP_CKSUM\|PKT_TX_TCP_CKSUM\|PKT_TX_TCP_SEG'
> Please, we need a comment for each driver saying "it is OK, we do not need
> any checksum preparation for TSO"
> "yes we have to implement tx_prepare or TSO will not work in this mode"
I like the idea of tx prep since it should make for cleaner apps.
For enic, I believe the answer is " it is OK, we do not need any checksum
Prior to now, it was necessary to set IP checksum to 0 and put in a TCP/UDP
pseudo header. But there is a hardware overwrite of checksums option which
makes preparation in software unnecessary and it is testing out well so far. I
plan to enable it in 17.02. TSO is also being enabled for 17.02 and it does not
look like any prep is required. So I'm going with " txprep NULL pointer is OK
for enic", but may have to change my mind if something comes up in testing.