Hi Bruce, I figured as much, thanks for confirming.
We'll probably go with a flag. Thanks again, Mark > -----Original Message----- > From: Richardson, Bruce > Sent: Monday, February 9, 2015 12:59 PM > To: Kavanagh, Mark B > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] mbuf: how to set data to NULL? > > On Mon, Feb 09, 2015 at 10:51:36AM +0000, Kavanagh, Mark B wrote: > > 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 > > > > I don't think there is any way to replicate this behaviour exactly with the > new mbuf > structure. Memsetting zero may do what you want, but depending upon what the > meaning of an mbuf with NULL data is there may still be better ways to > indicate > such a thing e.g. a flag value in another field, or setting data_len to -1? > > /Bruce > > > > > > -----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?