[dpdk-dev] [Question about 'rte_eth_tx_prepare']

Thomas Monjalon thomas at monjalon.net
Mon Feb 8 09:07:39 CET 2021

08/02/2021 07:29, Chengchang Tang:
> Hi, Thomas Monjalon and Ferruh Yigit and others.
> I have some questions about 'rte_eth_tx_prepare'.
> When I use TSO offload in bond mode, the checksum error occurs. It is
> because the bond PMD does not implement 'tx_prepare'. So, it will not
> invoke the 'tx_prepare' of each PMDs to do prepare for the PMDs. I am
> not sure whether to add the 'tx_preapre' implementation for the bond
> PMD or put the process of pseudo header in the apps.
> And we are now designing the outer UDP cksum offload for HNS3 PMD.
> I find that many PMDs process these pseudo headers in 'tx_prepare', but
> does not process the pseudo header for outer UDP checksum offload.
> Instead, it is processed in csum forward mode of testpmd. Does this mean
> that the pseudo header should be completed by the apps and the apps does
> not need to call 'tx_prepare' to avoid repeated processing? (it seems
> not transplantable) If so, it seems that PMDs need to avoid doing this
> in 'tx_prepare'.
> Here are two questions:
> 1. What functions should be included in the 'tx_prepare' for PMDs?
> 2. Whether an app must invoke 'rte_eth_tx_prepare' or under which
> conditions an app must invoke the 'rte_eth_tx_prepare'?

I would say by default the app should prepare the checksums,
except if there is an explicit offload request (DEV_TX_OFFLOAD_*).
I think the tx_prepare should only prepare the HW Tx offload
if the offload is not entirely done in HW.

More information about the dev mailing list