[dpdk-dev] mbuf: how to set data to NULL?

Kavanagh, Mark B mark.b.kavanagh at intel.com
Mon Feb 9 11:51:36 CET 2015


Hi Bruce,

As a follow-on to my previous question: I suppose what I'm really getting at is trying to understand the implications of removing the data pointer, and determine if it's possible to replicate behavior observed in DPDK 1.7 (which we need in our use case).

Take this situation for example:

DPDK 1.7: I want to set an mbuf's data to NULL:
  		=>		 buf.data = NULL;
	     Then, when I subsequently attempt to access the mbuf' data section, rte_pktmbuf_mtod(buf) returns NULL

DPDK 1.8: I want to set an mbuf's data to NULL:
		=>		buf.data_off = 0;  (is this correct?)
		Then, if I attempt to access the mbuf's data, instead of NULL, rte_pktmbuf_mtod(buf) returns buf_addr, not NULL.

Is it possible in DPDK 1.8 to replicate the same behavior observed in 1.7?

Btw, in our use case a data_len of 0 doesn't necessarily indicate a data value of NULL.

Thanks,
Mark


> -----Original Message-----
> From: Richardson, Bruce
> Sent: Wednesday, December 17, 2014 4:50 PM
> To: Kavanagh, Mark B
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] mbuf: how to set data to NULL?
> 
> On Wed, Dec 17, 2014 at 04:44:15PM +0000, Kavanagh, Mark B wrote:
> > Hi,
> >
> > DPDK 1.8.0 removes the data pointer from the mbuf structure, such that the start of the
> data in the segment buffer must be calculated (i.e. buf_addr + data_off = 'data').
> >
> > Given this, what is the best approach to set the mbuf data to NULL (previously mbuf.data
> = NULL)?
> >
> > As I see it, given an initialized mbuf, such that buf_addr is non-null, and data_off
> =RTE_PKTMBUF_HEADROOM, is it fair to say that the best solution is to memset to 0 from
> location (buf_addr + data_off) for a length of (data_len - data_off)?
> >
> > Thanks in advance,
> > Mark
> 
> Why not just set data_len = 0 to indicate an empty mbuf?


More information about the dev mailing list