net/iavf: fix pkt len check
Checks
Commit Message
App usually encap some bytes in mbuf headroom, for example, tunnel
header. When RTE_MBUF_F_TX_TCP_SEG is set, this check will drop packets.
Since the packet will be cut by hw soon, the out packet will not exceed
mtu.
Signed-off-by: Dexia Li <dexia.li@jaguarmicro.com>
---
drivers/net/iavf/iavf_rxtx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
Hello Dexia,
On Fri, Oct 13, 2023 at 1:42 PM Dexia Li <dexia.li@jaguarmicro.com> wrote:
>
> App usually encap some bytes in mbuf headroom, for example, tunnel
> header. When RTE_MBUF_F_TX_TCP_SEG is set, this check will drop packets.
> Since the packet will be cut by hw soon, the out packet will not exceed
> mtu.
>
> Signed-off-by: Dexia Li <dexia.li@jaguarmicro.com>
This should be fixed with series:
https://patchwork.dpdk.org/project/dpdk/list/?series=29651&state=%2A&archive=both
Applied in next-net-intel:
https://git.dpdk.org/next/dpdk-next-net-intel/commit/?id=ff67c8a679c2daba282841459d8cd4131b3a85ab
Those patches will make it to the main dpdk repo soon.
Please double check they work for you.
Thanks.
On Mon, Oct 16, 2023 at 3:37 AM Dexia Li <dexia.li@jaguarmicro.com> wrote:
>
> Thanks for your commit.
> It works for me.
>
Thanks for confirming, I marked this patch as rejected.
@@ -3641,7 +3641,7 @@ iavf_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,
/* check the data_len in mbuf */
if (m->data_len < IAVF_TX_MIN_PKT_LEN ||
- m->data_len > max_frame_size) {
+ (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG) && m->data_len > max_frame_size)) {
rte_errno = EINVAL;
PMD_DRV_LOG(ERR, "INVALID mbuf: bad data_len=[%hu]", m->data_len);
return i;