[dpdk-users] Ring PMD - Should mbufs be copied instead of just being added to the ring?

Take Ceara dumitru.ceara at gmail.com
Mon Jul 18 17:25:58 CEST 2016


Hi,

I noticed that the Ring PMD directly enqueues the mbufs transmitted
with rte_eth_tx_burst (eth_ring_tx).

I understand that this is the fastest way however, in some cases, the
receive side might rewrite part of the packet payload (e.g., change
some of the L2-3 headers). If the sender is still using the original
packet (e.g., having it cloned) the packet will be essentially
corrupted.

I really like the fact that the Ring based interfaces are mostly
transparent to the applications as they can just use the general
rte_eth_tx_burst/rx_burst but in the rewriting case we need to handle
sending (or receiving) in a special way and manually create an mbuf
chain copy of the original.

Would it be an option to add a flag argument to rte_eth_from_rings to
specify whether the Ring PMD driver should enqueue the original or
actually send a copy of the original packet?

Thanks,
Dumitru Ceara


More information about the users mailing list