https://inbox.dpdk.org/dev/[email protected]/ introduced descriptor limit checks for TSO packets in DPDK. Unfortunately, a couple of bugs have been found in the implementation.
This patch series introduces fixes for those bugs and adds support for the tx_pkt_prepare callback to reject potentially invalid packets before they are dropped in the transmission path. Before a recently introduced patch, the GVE behavior was to stop transmitting at the first invalid packet, which would allow the application to do any necessary linearization or packet modification before attempting to transmit again. It turns out that that behavior is considered incorrect, so offer tx_pkt_prepare as an alternative. Changes in v3: - Remove extraneous Fixes tags. - Drop patch 2 allowing multi-segment HEADERS, since that conflicts with tx_pkt_prepare. Changes in v2: - Rely on tx_pkt->nb_segs for descriptor limit calculation only as a precursor, falling back to the traditional gve_tx_pkt_nb_data_descs() if that optimization fails. - Only call rte_net_intel_cksum_preapre on TSO packets that request checksum offloading. This enforces the additional requirement that headers are all in the same mbuf segment. - Introduce new patch to validate minimum header length Joshua Washington (3): net/gve: fix TSO segment offset calculation net/gve: introduce Tx packet preparation for DQO format net/gve: validate minimum header length for TSO packets drivers/net/gve/base/gve_desc_dqo.h | 1 + drivers/net/gve/gve_ethdev.h | 3 + drivers/net/gve/gve_tx_dqo.c | 86 +++++++++++++++++++++++++++-- 3 files changed, 85 insertions(+), 5 deletions(-) -- 2.56.0.385.gac671c819a-goog

