<div dir="ltr">Please review/accept the following fixes for drivers/net/memif. This is in regards to <a href="https://bugs.dpdk.org/show_bug.cgi?id=1609">https://bugs.dpdk.org/show_bug.cgi?id=1609</a>.<div><br></div><div>RX and TX fixes to correct linking/handling of multiple memif buffers for jumbo frames (>2KB) in mixed traffic scenarios.<br><div><div><br></div><div>From fa1f5ab578bb06aa22b356b8ce5cfbdb52dd4a48 Mon Sep 17 00:00:00 2001<br>From: Mike Bly <<a href="mailto:bly454@gmail.com">bly454@gmail.com</a>><br>Date: Thu, 2 Jan 2025 13:00:57 -0800<br>Subject: [PATCH 1/2] Moving where dst_off is set in memif_rx function Fixes:<br> aa17df86089 ("net/memif: add a Rx fast path")<br><br>---<br> drivers/net/memif/rte_eth_memif.c | 3 +--<br> 1 file changed, 1 insertion(+), 2 deletions(-)<br><br>diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c<br>index 1eb41bb471..29fd890ed1 100644<br>--- a/drivers/net/memif/rte_eth_memif.c<br>+++ b/drivers/net/memif/rte_eth_memif.c<br>@@ -414,13 +414,12 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)<br>                                goto no_free_bufs;<br>                        mbuf = mbuf_head;<br>                        mbuf->port = mq->in_port;<br>-<br>+                       dst_off = 0;<br> next_slot2:<br>                        s0 = cur_slot & mask;<br>                        d0 = &ring->desc[s0];<br> <br>                        src_len = d0->length;<br>-                       dst_off = 0;<br>                        src_off = 0;<br> <br>                        do {<br>-- <br>2.43.5<br><br><br>From eb1770036ce829e193953af9994d8ae16e75272b Mon Sep 17 00:00:00 2001<br>From: Mike Bly <<a href="mailto:bly454@gmail.com">bly454@gmail.com</a>><br>Date: Thu, 2 Jan 2025 13:20:23 -0800<br>Subject: [PATCH 2/2] Added missing initialization of memif flags field per<br> memif buffer Fixes:  09c7e63a71f ("net/memif: introduce memory interface<br> PMD")<br><br>---<br> drivers/net/memif/rte_eth_memif.c | 2 ++<br> 1 file changed, 2 insertions(+)<br><br>diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c<br>index 29fd890ed1..57216d7096 100644<br>--- a/drivers/net/memif/rte_eth_memif.c<br>+++ b/drivers/net/memif/rte_eth_memif.c<br>@@ -709,6 +709,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)<br> next_in_chain1:<br>                        d0 = &ring->desc[slot & mask];<br>                        cp_len = rte_pktmbuf_data_len(mbuf);<br>+                       d0->flags = 0;<br> <br>                        rte_memcpy((uint8_t *)memif_get_buffer(proc_private, d0),<br>                                rte_pktmbuf_mtod(mbuf, void *), cp_len);<br>@@ -744,6 +745,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)<br>                        dst_off = 0;<br>                        dst_len = (type == MEMIF_RING_C2S) ?<br>                                pmd->run.pkt_buffer_size : d0->length;<br>+                       d0->flags = 0;<br> <br> next_in_chain2:<br>                        src_off = 0;<br>-- <br>2.43.5<br><br></div><div>-Mike</div></div></div></div>