[PATCH] net/tap: do not include l2 header in gso size when compared with mtu

Harold Huang baymaxhuang at gmail.com
Tue Mar 8 15:35:18 CET 2022


On Mon, Feb 28, 2022 at 4:27 PM Harold Huang <baymaxhuang at gmail.com> wrote:
>
> The gso size is calculated with all of the headers and payload. As a
> result, the l2 header should not be included when comparing gso size
> with mtu.
>
> Fixes: 050316a88313 ("net/tap: support TSO (TCP Segment Offload)")
> Cc: stable at dpdk.org
> Signed-off-by: Harold Huang <baymaxhuang at gmail.com>
> ---
>  drivers/net/tap/rte_eth_tap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
> index f1b48cae82..2b561d232c 100644
> --- a/drivers/net/tap/rte_eth_tap.c
> +++ b/drivers/net/tap/rte_eth_tap.c
> @@ -731,7 +731,7 @@ pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
>                                         mbuf_in->l4_len;
>                         tso_segsz = mbuf_in->tso_segsz + hdrs_len;
>                         if (unlikely(tso_segsz == hdrs_len) ||
> -                               tso_segsz > *txq->mtu) {
> +                               tso_segsz > *txq->mtu + mbuf_in->l2_len) {
>                                 txq->stats.errs++;
>                                 break;
>                         }
> --
> 2.27.0
>

Hi, Jiayu,

This is the only example in the driver to use GSO. I think it is
important for us to calculate a correct GSO size. I see you are the
GSO lib maintainer, could you please help review this patch?


More information about the stable mailing list