mbuf: add userdata pointer field
authorBruce Richardson <bruce.richardson@intel.com>
Tue, 23 Sep 2014 11:08:16 +0000 (12:08 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 8 Oct 2014 12:24:59 +0000 (14:24 +0200)
commit4cd917b3083c88185a9b420a8831a285b2d68d4c
tree7fa1c6bad863b5182dd4d12042f43fba44c91538
parent7f78e6770144b2e3d485389c4c40d37e75270fb4
mbuf: add userdata pointer field

While some applications may store metadata about packets in the packet
mbuf headroom, this is not a workable solution for packet metadata which
is either:
* larger than the headroom (or headroom is needed for adding pkt headers)
* needs to be shared or copied among packets

To support these use cases in applications, we reserve a general
"userdata" pointer field inside the second cache-line of the mbuf. This
is better than having the application store the pointer to the external
metadata in the packet headroom, as it saves an additional cache-line
from being used.

Apart from storing metadata, this field also provides a general 8-byte
scratch space inside the mbuf for any other application uses that are
applicable.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
lib/librte_mbuf/rte_mbuf.h