When Multiple slave/master Memif interfaces are created in single
process data transmission over second connection is not successful.

Issue is because of "mq->in_port" is not initialized with
"dev->data->port_id" in memif_msg_enq_add_ring() and
memif_msg_receive_add_ring() functions, and while transmitting packets
over second connection in eth_memif_tx function it refer "mq->in_port"
which is always zero, and leads to data transmission always in 0th port.

To mitigate the issue,"mq->in_port" is initialized with
"dev->data->port_id" in memif_msg_enq_add_ring() and
memif_msg_receive_add_ring() functions.

Signed-off-by: Anand Sunkad <anand.sun...@benisontech.com>
---
 drivers/net/memif/memif_socket.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/memif/memif_socket.c b/drivers/net/memif/memif_socket.c
index 0c71f6c..ef8c509 100644
--- a/drivers/net/memif/memif_socket.c
+++ b/drivers/net/memif/memif_socket.c
@@ -322,6 +322,7 @@
        mq->log2_ring_size = ar->log2_ring_size;
        mq->region = ar->region;
        mq->ring_offset = ar->offset;
+       mq->in_port = dev->data->port_id;
 
        return 0;
 }
@@ -464,6 +465,7 @@
        ar->log2_ring_size = mq->log2_ring_size;
        ar->flags = (type == MEMIF_RING_S2M) ? MEMIF_MSG_ADD_RING_FLAG_S2M : 0;
        ar->private_hdr_size = 0;
+       mq->in_port = dev->data->port_id;
 
        return 0;
 }
-- 
1.9.1

  • [dpdk-dev] [... Anand Sunkad
    • Re: [dp... Jakub Grajciar -X (jgrajcia - PANTHEON TECHNOLOGIES at Cisco)
    • [dpdk-d... Anand Sunkad
      • Re:... Jakub Grajciar -X (jgrajcia - PANTHEON TECHNOLOGIES at Cisco)
        • ... Ferruh Yigit

Reply via email to