Hi Yongseok, On Tue, Apr 24, 2018 at 06:02:44PM +0200, Olivier Matz wrote: > > > @@ -688,14 +704,33 @@ rte_mbuf_to_baddr(struct rte_mbuf *md) > > > } > > > /** > > > + * Returns TRUE if given mbuf is cloned by mbuf indirection, or FALSE > > > + * otherwise. > > > + * > > > + * If a mbuf has its data in another mbuf and references it by mbuf > > > + * indirection, this mbuf can be defined as a cloned mbuf. > > > + */ > > > +#define RTE_MBUF_CLONED(mb) ((mb)->ol_flags & IND_ATTACHED_MBUF) > > > + > > > +/** > > > * Returns TRUE if given mbuf is indirect, or FALSE otherwise. > > > */ > > > -#define RTE_MBUF_INDIRECT(mb) ((mb)->ol_flags & IND_ATTACHED_MBUF) > > > +#define RTE_MBUF_INDIRECT(mb) RTE_MBUF_CLONED(mb) > > > > It is still confusing that INDIRECT != !DIRECT. > > May be we have no good options right now, but I'd suggest to at least > > deprecate > > RTE_MBUF_INDIRECT() and completely remove it in the next release. > > Agree. I may have missed something, but is my previous suggestion > not doable? > > - direct = embeds its own data (and indirect = !direct) > - clone (or another name) = data is another mbuf > - extbuf = data is in an external buffer
Any comment about this option?