On Fri, Jan 11, 2019 at 02:33:16PM +0000, Dumitrescu, Cristian wrote: > > > > -----Original Message----- > > From: Van Haaren, Harry > > Sent: Friday, January 11, 2019 11:33 AM > > To: dev@dpdk.org > > Cc: Van Haaren, Harry <harry.van.haa...@intel.com>; Pattan, Reshma > > <reshma.pat...@intel.com>; Dumitrescu, Cristian > > <cristian.dumitre...@intel.com>; olivier.m...@6wind.com; > > tho...@monjalon.net; step...@networkplumber.org; > > gavin...@arm.com; honnappa.nagaraha...@arm.com > > Subject: [PATCH v3] mbuf: fix compile by making sched struct visible > > > > Although C compilation works with the struct rte_mbuf_sched > > declared inside the struct rte_mbuf namespace, C++ fails to > > compile. This fix moves the rte_mbuf_sched struct up to the > > global namespace, instead of declaring it inside the struct > > mbuf namespace. > > > > The struct rte_mbuf_sched is being used on the stack in > > rte_mbuf_sched_get() and as a cast in _set(). For this > > reason, it must be exposed as an available type. > > > > Fixes: 5d3f72100904 ("mbuf: implement generic format for sched field") > > > > Signed-off-by: Harry van Haaren <harry.van.haa...@intel.com> > > > > --- > > > > v3: > > - Update comment in mbuf to state size of struct sched (Crisitian) > > > > v2: > > - Different solution, not applicable, v3 based on v1 (ML discussion) > > > > Cc: reshma.pat...@intel.com > > Cc: cristian.dumitre...@intel.com > > Cc: olivier.m...@6wind.com > > Cc: tho...@monjalon.net > > Cc: step...@networkplumber.org > > Cc: gavin...@arm.com > > Cc: honnappa.nagaraha...@arm.com > > --- > > lib/librte_mbuf/rte_mbuf.h | 23 +++++++++++++---------- > > 1 file changed, 13 insertions(+), 10 deletions(-) > > > > diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h > > index bc562dc8a..d53b68253 100644 > > --- a/lib/librte_mbuf/rte_mbuf.h > > +++ b/lib/librte_mbuf/rte_mbuf.h > > @@ -468,6 +468,17 @@ __extension__ > > typedef uint64_t MARKER64[0]; /**< marker that allows us to overwrite 8 > > bytes > > * with a single assignment */ > > > > +struct rte_mbuf_sched { > > + uint32_t queue_id; /**< Queue ID. */ > > + uint8_t traffic_class; > > + /**< Traffic class ID. Traffic class 0 > > + * is the highest priority traffic class. > > + */ > > + uint8_t color; > > + /**< Color. @see enum rte_color.*/ > > + uint16_t reserved; /**< Reserved. */ > > +}; /**< Hierarchical scheduler */ > > + > > /** > > * The generic rte_mbuf, containing a packet mbuf. > > */ > > @@ -574,16 +585,8 @@ struct rte_mbuf { > > * on PKT_RX_FDIR_* flag in ol_flags. > > */ > > } fdir; /**< Filter identifier if FDIR enabled */ > > - struct rte_mbuf_sched { > > - uint32_t queue_id; /**< Queue ID. */ > > - uint8_t traffic_class; > > - /**< Traffic class ID. Traffic class 0 > > - * is the highest priority traffic class. > > - */ > > - uint8_t color; > > - /**< Color. @see enum rte_color.*/ > > - uint16_t reserved; /**< Reserved. */ > > - } sched; /**< Hierarchical scheduler */ > > + struct rte_mbuf_sched sched; > > + /**< Hierarchical scheduler : 8 bytes */ > > struct { > > uint32_t reserved1; > > uint16_t reserved2; > > -- > > 2.17.1 > > Acked-by: Cristian Dumitrescu <cristian.dumitre...@intel.com> > > Of course, final say belongs to Olivier, so Olivier please let un know your > vote.
Acked-by: Olivier Matz <olivier.m...@6wind.com>