[dpdk-dev] RTE_PIPELINE_ACTION_PORT_META doesn't work properly

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Feb 20 21:47:04 CET 2015


2015-02-20 19:26, Dumitrescu, Cristian:
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of ?????? ????????
> > Sent: Friday, February 20, 2015 4:25 PM
> > To: dev at dpdk.org
> > Subject: [dpdk-dev] RTE_PIPELINE_ACTION_PORT_META doesn't work
> > properly
> > 
> >  Hi, list!
> > 
> > RTE_PIPELINE_ACTION_PORT_META option in rte_pipeline library doesn't
> > work for non-default table entries. Is this bug or correct behaviour?
> > 
> > This is my patch, that changes this behaviour:
> > 
> > --- a/lib/librte_pipeline/rte_pipeline.c
> > +++ b/lib/librte_pipeline/rte_pipeline.c
> > @@ -999,8 +999,10 @@ rte_pipeline_compute_masks(struct rte_pipeline
> > *p, uint64_t pkts_mask)
> >  {
> >         p->action_mask1[RTE_PIPELINE_ACTION_DROP] = 0;
> >         p->action_mask1[RTE_PIPELINE_ACTION_PORT] = 0;
> > +    p->action_mask1[RTE_PIPELINE_ACTION_PORT_META] = 0;
> >         p->action_mask1[RTE_PIPELINE_ACTION_TABLE] = 0;
> > 
> > +
> >         if ((pkts_mask & (pkts_mask + 1)) == 0) {
> >                 uint64_t n_pkts = __builtin_popcountll(pkts_mask);
> >                 uint32_t i;
> > @@ -1224,6 +1226,7 @@ rte_pipeline_run(struct rte_pipeline *p)
> >                 pkts_mask = RTE_LEN2MASK(n_pkts, uint64_t);
> >                 p->action_mask0[RTE_PIPELINE_ACTION_DROP] = 0;
> >                 p->action_mask0[RTE_PIPELINE_ACTION_PORT] = 0;
> > +        p->action_mask0[RTE_PIPELINE_ACTION_PORT_META] = 0;
> >                 p->action_mask0[RTE_PIPELINE_ACTION_TABLE] = 0;
> > 
> >                 /* Input port user actions */
> > @@ -1300,6 +1303,9 @@ rte_pipeline_run(struct rte_pipeline *p)
> >                                 p->action_mask0[RTE_PIPELINE_ACTION_PORT] |=
> >                                         p->action_mask1[
> >                                                 RTE_PIPELINE_ACTION_PORT];
> > +                p->action_mask0[RTE_PIPELINE_ACTION_PORT_META] |=
> > +                    p->action_mask1[
> > +                        RTE_PIPELINE_ACTION_PORT_META];
> >                                 p->action_mask0[RTE_PIPELINE_ACTION_TABLE] |=
> >                                         p->action_mask1[
> >                                                 RTE_PIPELINE_ACTION_TABLE];
> > 
> > 
> > 
> > 
> > 
> > Thanks, Ildar
> 
> Acked by: Cristian Dumitrescu <cristian.dumitrescu at intel.com>

No Cristian, you cannot ack this patch, even if it fixes the problem.
The format is not OK: indent is wrong and it's not signed.
Please Ildar, check http://dpdk.org/dev#send to know how to submit a patch.

> Thank you, Ildar!



More information about the dev mailing list