Hi Harish, > > > >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" > > > > qede PMD doesn?t currently support TSO yet, it only supports Tx TCP/UDP/IP > csum offloads. > So Tx preparation isn?t applicable. So as of now - > "it is OK, we do not need any checksum preparation for TSO"
Thanks for the answer. Though please note that it not only for TSO. This is for any TX offload for which the upper layer SW would have to modify the contents of the packet. Though as I can see for qede neither PKT_TX_IP_CKSUM or PKT_TX_TCP_CKSUM exhibits any extra requirements for the user. Is that correct? Konstantin > > > Thanks, > Harish