Hi John, > > Hi, > -john > > > -----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 > > checks. > > Otherwise, tx_prep() implementation is not required and can be safely set to > > NULL. > > " > > > > 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 > > TSO? > > 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' > > drivers/net/ > > > > drivers/net/bnxt/bnxt_txr.c > > drivers/net/cxgbe/sge.c > > drivers/net/e1000/em_rxtx.c > > drivers/net/e1000/igb_rxtx.c > > drivers/net/ena/ena_ethdev.c > > drivers/net/enic/enic_rxtx.c > > drivers/net/fm10k/fm10k_rxtx.c > > drivers/net/i40e/i40e_rxtx.c > > drivers/net/ixgbe/ixgbe_rxtx.c > > drivers/net/mlx4/mlx4.c > > drivers/net/mlx5/mlx5_rxtx.c > > drivers/net/nfp/nfp_net.c > > drivers/net/qede/qede_rxtx.c > > drivers/net/thunderx/nicvf_rxtx.c > > drivers/net/virtio/virtio_rxtx.c > > drivers/net/vmxnet3/vmxnet3_rxtx.c > > > > Please, we need a comment for each driver saying "it is OK, we do not need > > any checksum preparation for TSO" > > or > > "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 > preparation". > > 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.
That's great thanks. Other non-Intel PMD maintainers, please any feedback? Konstantin > > -john