From 373443540c1b4785c226afbf1ade66dfeda74f40 Mon Sep 17 00:00:00 2001 From: nikhil-agarwal-git Date: Mon, 23 Oct 2023 06:18:26 +0000 Subject: [PATCH] gomemif: Packet sent on Tx queue is received back on Rx queue of sender #164 RCA: Rx desc buffer offset was incorrectly set to Tx desc buffer offsets. Fix: Correctly set the Rx desc buffer offset to memory region after Tx desc buffers offsets --- extras/gomemif/memif/interface.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extras/gomemif/memif/interface.go b/extras/gomemif/memif/interface.go index 929d5f2d..fa3eb732 100644 --- a/extras/gomemif/memif/interface.go +++ b/extras/gomemif/memif/interface.go @@ -470,6 +470,8 @@ func (i *Interface) initializeQueues() (err error) { q.putDescBuf(slot, desc) } } + + txPacketBufOffset := uint32(uint32(i.run.NumQueuePairs) * i.run.PacketBufferSize * (1 << i.run.Log2RingSize)) for qid := 0; qid < int(i.run.NumQueuePairs); qid++ { /* RX */ q = &Queue{ @@ -497,7 +499,7 @@ func (i *Interface) initializeQueues() (err error) { for j := 0; j < q.ring.size; j++ { slot = qid*q.ring.size + j - desc.setOffset(int(i.regions[0].packetBufferOffset + uint32(slot)*i.run.PacketBufferSize)) + desc.setOffset(int(i.regions[0].packetBufferOffset + txPacketBufOffset + uint32(slot)*i.run.PacketBufferSize)) q.putDescBuf(slot, desc) } }