[dpdk-dev] [PATCH] net/ice: support mark only action for FDIR

Su, Simei simei.su at intel.com
Tue Apr 14 16:30:28 CEST 2020



> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang at intel.com>
> Sent: Tuesday, April 14, 2020 8:51 PM
> To: Su, Simei <simei.su at intel.com>; Ye, Xiaolong <xiaolong.ye at intel.com>
> Cc: dev at dpdk.org; Cao, Yahui <yahui.cao at intel.com>; stable at dpdk.org
> Subject: RE: [PATCH] net/ice: support mark only action for FDIR
> 
> 
> 
> > -----Original Message-----
> > From: Su, Simei <simei.su at intel.com>
> > Sent: Tuesday, April 14, 2020 5:12 PM
> > To: Zhang, Qi Z <qi.z.zhang at intel.com>; Ye, Xiaolong
> > <xiaolong.ye at intel.com>
> > Cc: dev at dpdk.org; Cao, Yahui <yahui.cao at intel.com>; stable at dpdk.org
> > Subject: RE: [PATCH] net/ice: support mark only action for FDIR
> >
> > Hi, Qi
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z <qi.z.zhang at intel.com>
> > > Sent: Tuesday, April 14, 2020 3:49 PM
> > > To: Su, Simei <simei.su at intel.com>; Ye, Xiaolong
> > > <xiaolong.ye at intel.com>
> > > Cc: dev at dpdk.org; Cao, Yahui <yahui.cao at intel.com>; stable at dpdk.org
> > > Subject: RE: [PATCH] net/ice: support mark only action for FDIR
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Su, Simei <simei.su at intel.com>
> > > > Sent: Thursday, April 2, 2020 2:56 PM
> > > > To: Zhang, Qi Z <qi.z.zhang at intel.com>; Ye, Xiaolong
> > > > <xiaolong.ye at intel.com>
> > > > Cc: dev at dpdk.org; Cao, Yahui <yahui.cao at intel.com>; Su, Simei
> > > > <simei.su at intel.com>; stable at dpdk.org
> > > > Subject: [PATCH] net/ice: support mark only action for FDIR
> > > >
> > > > This patch fixes issue that doesn't support mark only case.
> > > > Mark only action is equal to mark + passthru action.
> > > >
> > > > Fixes: f5cafa961fae ("net/ice: add flow director create and
> > > > destroy")
> > > > Cc: stable at dpdk.org
> > > >
> > > > Signed-off-by: Simei Su <simei.su at intel.com>
> > > > ---
> > > >  drivers/net/ice/ice_fdir_filter.c | 13 ++++++++++++-
> > > >  1 file changed, 12 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/net/ice/ice_fdir_filter.c
> > > > b/drivers/net/ice/ice_fdir_filter.c
> > > > index a082a13..8acdb1a 100644
> > > > --- a/drivers/net/ice/ice_fdir_filter.c
> > > > +++ b/drivers/net/ice/ice_fdir_filter.c
> > > > @@ -1469,6 +1469,10 @@
> > > >  uint32_t counter_num = 0;
> > > >  int ret;
> > > >
> > > > +/* set default action to PASSTHRU mode, in the case of MARK only.
> > > > +*/
> > > > +filter->input.dest_ctl =
> > > > +ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER;
> > >
> > > Should we also consider the case "Count only", I will suggest move
> > > above code to after all the action has been iterated and all
> > > criteria check has passed Then only set destination to PASSTHROUGH
> > > for no
> > destination case.
> >
> >  I don't know whether the case "Count only" should fail or means
> > passthru + count.
> 
> It is the case that user may just want to count a number of the packets that
> match a specific pattern and don't care which destination it reached., Though
> I don't know if this could be a real usage, but I didn't think its necessary to
> reject this configure, and allow "count only" keep it consistent with "mark
> only" make the code easy to understand.
> 

  Ok, got your idea. Thanks, Qi.

Br
Simei

> >  In my code, I return error when in the case "count only":
> >     if (dest_num + mark_num == 0) {
> >     rte_flow_error_set(error, EINVAL,
> >    RTE_FLOW_ERROR_TYPE_ACTION, actions,
> >    "Emtpy action");
> >     return -rte_errno;
> >         }
> >
> >  So I want to confirm how to define "count only" case here, your
> > suggestion code seems "count only" means "count + passthru" ?
> 
> 
> >
> > Thanks
> > Simei
> >
> > >
> > >  If (dest_num == 0)
> > > filter->input.dest_ctl =
> > > ICE_FLTR_PRGM_DESC_DEST_DIRECT_PKT_OTHER;
> > >
> > > > +
> > > >  for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
> > > > switch (actions->type) {  case RTE_FLOW_ACTION_TYPE_VOID:
> > > > @@ -1533,7 +1537,7 @@
> > > >  }
> > > >  }
> > > >
> > > > -if (dest_num == 0 || dest_num >= 2) {
> > > > +if (dest_num >= 2) {
> > > >  rte_flow_error_set(error, EINVAL,
> > > >     RTE_FLOW_ERROR_TYPE_ACTION, actions,
> > > >     "Unsupported action combination"); @@ -1554,6 +1558,13
> > > @@
> > > >  return -rte_errno;
> > > >  }
> > > >
> > > > +if (dest_num + mark_num == 0) {
> > > > +rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION,
> > > > +actions, "Emtpy action"); return -rte_errno; }
> > > > +
> > > >  return 0;
> > > >  }
> > > >
> > > > --
> > > > 1.8.3.1
> > >
> >
> 



More information about the dev mailing list