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

Su, Simei simei.su at intel.com
Tue Apr 14 11:12:20 CEST 2020


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.
 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