DPDK usage discussions
 help / color / mirror / Atom feed
* Accessing packet data from different lcores
@ 2021-12-23 19:50 Ramin.Taraz
  0 siblings, 0 replies; only message in thread
From: Ramin.Taraz @ 2021-12-23 19:50 UTC (permalink / raw)
  To: users

[-- Attachment #1: Type: text/plain, Size: 1476 bytes --]

Hi all.
Newbie question here.

I have been playing with dpdk 21.11 for a week or two and run into something that has me scratching my head a bit.

I'm looking at packet_reorder example.  I'm running this sample with 3 cores: 1 RX, 1 Worker, and 1 TX.

dpdk-packet_ordering  -l 0-3  --  -p 3 --disable-reorder

In this example:
RX thread reads the packets from receive queue and puts them in a rx_to_workers ring
Worker thread reads from the rx_to_workers ring, changes the port number and queues to workers_to_tx ring
Tx thread reads from workers_to_tx ring and calls rte_eth_tx_buffer

What I like to do is access the packet content in the worker thread and print out a few bytes from it.

What I'm finding is that mbuf_addr value, for the same mbuf, read from RX thread is different than if read in the Worker or TX thread.

For example, when printing out the address of mbuf, and mbuf_addr values, in the three threads, I get:

mbuf      = 100e30000
mbuf_addr = 100e30080

mbuf      = 100e30000
mbuf_addr = 100000000

mbuf      = 100e30000
mbuf_addr = 100000000

So although mbuf is the same, the mbuf_addr is different.   The packet content is obviously (?) different if read in RX, vs if read in Worker or TX thread.

Is this what is supposed to happen?

Basically: how do I get access to the actual ethernet packet, for reading or modifying, on different lcores; in this case the worker thread.

[-- Attachment #2: Type: text/html, Size: 4502 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-12-23 19:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-23 19:50 Accessing packet data from different lcores Ramin.Taraz

DPDK usage discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/users/0 users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 users users/ http://inbox.dpdk.org/users \
	public-inbox-index users

Example config snippet for mirrors.
Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git