[v1,4/5] net/ice: add outer input set mask check

Message ID 20201221065150.1600719-5-zhirun.yan@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series Refactor FDIR pattern parser |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Yan, Zhirun Dec. 21, 2020, 6:51 a.m. UTC
  Distinguish input set mask for inner/outer. Add outer input set
mask check.

Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
---
 drivers/net/ice/ice_fdir_filter.c  | 3 ++-
 drivers/net/ice/ice_generic_flow.c | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)
  

Comments

Cao, Yahui Dec. 25, 2020, 5:28 a.m. UTC | #1
I suggest that you can merge this commit into the Patch 3/5, since they  are all about input set mask changes.

> -----Original Message-----
> From: Yan, Zhirun <zhirun.yan@intel.com>
> Sent: Monday, December 21, 2020 2:52 PM
> To: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Cao, Yahui <yahui.cao@intel.com>; Wang, Xiao W <xiao.w.wang@intel.com>;
> Guo, Junfeng <junfeng.guo@intel.com>
> Cc: Su, Simei <simei.su@intel.com>; Xu, Ting <ting.xu@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>; Yan, Zhirun
> <zhirun.yan@intel.com>
> Subject: [PATCH v1 4/5] net/ice: add outer input set mask check
> 
> Distinguish input set mask for inner/outer. Add outer input set
> mask check.
> 
> Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
> ---
>  drivers/net/ice/ice_fdir_filter.c  | 3 ++-
>  drivers/net/ice/ice_generic_flow.c | 2 ++
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c
> index 76e0a8df38..2d2b261368 100644
> --- a/drivers/net/ice/ice_fdir_filter.c
> +++ b/drivers/net/ice/ice_fdir_filter.c
> @@ -2020,7 +2020,8 @@ ice_fdir_parse(struct ice_adapter *ad,
>  	if (ret)
>  		goto error;
>  	input_set = filter->input_set | filter->outer_input_set;
> -	if (!input_set || input_set & ~item->input_set_mask) {
> +	if (!input_set || filter->input_set & ~item->input_set_mask ||
> +	    filter->outer_input_set & ~item->input_set_mask_f) {
>  		rte_flow_error_set(error, EINVAL,
>  				   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
>  				   pattern,
> diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
> index 1429cbc3b6..6c20b070c7 100644
> --- a/drivers/net/ice/ice_generic_flow.c
> +++ b/drivers/net/ice/ice_generic_flow.c
> @@ -2088,6 +2088,8 @@ ice_search_pattern_match_item(const struct rte_flow_item pattern[],
>  					items)) {
>  			pattern_match_item->input_set_mask =
>  				array[i].input_set_mask;
> +			pattern_match_item->input_set_mask_f =
> +				array[i].input_set_mask_f;
>  			pattern_match_item->pattern_list =
>  				array[i].pattern_list;
>  			pattern_match_item->meta = array[i].meta;
> --
> 2.25.1
  
Yan, Zhirun Jan. 7, 2021, 3:14 a.m. UTC | #2
> -----Original Message-----
> From: Cao, Yahui
> Sent: Friday, December 25, 2020 1:29 PM
> To: Yan, Zhirun <zhirun.yan@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Wang, Xiao W <xiao.w.wang@intel.com>; Guo,
> Junfeng <junfeng.guo@intel.com>
> Cc: Su, Simei <simei.su@intel.com>; Xu, Ting <ting.xu@intel.com>; Zhang,
> Yuying <yuying.zhang@intel.com>
> Subject: RE: [PATCH v1 4/5] net/ice: add outer input set mask check
> 
> I suggest that you can merge this commit into the Patch 3/5, since they  are
> all about input set mask changes.
> 
Yes. I will meld into previous commit. Thanks.

> > -----Original Message-----
> > From: Yan, Zhirun <zhirun.yan@intel.com>
> > Sent: Monday, December 21, 2020 2:52 PM
> > To: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Cao, Yahui
> > <yahui.cao@intel.com>; Wang, Xiao W <xiao.w.wang@intel.com>; Guo,
> > Junfeng <junfeng.guo@intel.com>
> > Cc: Su, Simei <simei.su@intel.com>; Xu, Ting <ting.xu@intel.com>;
> > Zhang, Yuying <yuying.zhang@intel.com>; Yan, Zhirun
> > <zhirun.yan@intel.com>
> > Subject: [PATCH v1 4/5] net/ice: add outer input set mask check
> >
> > Distinguish input set mask for inner/outer. Add outer input set mask
> > check.
> >
> > Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
> > ---
> >  drivers/net/ice/ice_fdir_filter.c  | 3 ++-
> > drivers/net/ice/ice_generic_flow.c | 2 ++
> >  2 files changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ice/ice_fdir_filter.c
> > b/drivers/net/ice/ice_fdir_filter.c
> > index 76e0a8df38..2d2b261368 100644
> > --- a/drivers/net/ice/ice_fdir_filter.c
> > +++ b/drivers/net/ice/ice_fdir_filter.c
> > @@ -2020,7 +2020,8 @@ ice_fdir_parse(struct ice_adapter *ad,
> >  	if (ret)
> >  		goto error;
> >  	input_set = filter->input_set | filter->outer_input_set;
> > -	if (!input_set || input_set & ~item->input_set_mask) {
> > +	if (!input_set || filter->input_set & ~item->input_set_mask ||
> > +	    filter->outer_input_set & ~item->input_set_mask_f) {
> >  		rte_flow_error_set(error, EINVAL,
> >  				   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
> >  				   pattern,
> > diff --git a/drivers/net/ice/ice_generic_flow.c
> > b/drivers/net/ice/ice_generic_flow.c
> > index 1429cbc3b6..6c20b070c7 100644
> > --- a/drivers/net/ice/ice_generic_flow.c
> > +++ b/drivers/net/ice/ice_generic_flow.c
> > @@ -2088,6 +2088,8 @@ ice_search_pattern_match_item(const struct
> rte_flow_item pattern[],
> >  					items)) {
> >  			pattern_match_item->input_set_mask =
> >  				array[i].input_set_mask;
> > +			pattern_match_item->input_set_mask_f =
> > +				array[i].input_set_mask_f;
> >  			pattern_match_item->pattern_list =
> >  				array[i].pattern_list;
> >  			pattern_match_item->meta = array[i].meta;
> > --
> > 2.25.1
  

Patch

diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c
index 76e0a8df38..2d2b261368 100644
--- a/drivers/net/ice/ice_fdir_filter.c
+++ b/drivers/net/ice/ice_fdir_filter.c
@@ -2020,7 +2020,8 @@  ice_fdir_parse(struct ice_adapter *ad,
 	if (ret)
 		goto error;
 	input_set = filter->input_set | filter->outer_input_set;
-	if (!input_set || input_set & ~item->input_set_mask) {
+	if (!input_set || filter->input_set & ~item->input_set_mask ||
+	    filter->outer_input_set & ~item->input_set_mask_f) {
 		rte_flow_error_set(error, EINVAL,
 				   RTE_FLOW_ERROR_TYPE_ITEM_SPEC,
 				   pattern,
diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c
index 1429cbc3b6..6c20b070c7 100644
--- a/drivers/net/ice/ice_generic_flow.c
+++ b/drivers/net/ice/ice_generic_flow.c
@@ -2088,6 +2088,8 @@  ice_search_pattern_match_item(const struct rte_flow_item pattern[],
 					items)) {
 			pattern_match_item->input_set_mask =
 				array[i].input_set_mask;
+			pattern_match_item->input_set_mask_f =
+				array[i].input_set_mask_f;
 			pattern_match_item->pattern_list =
 				array[i].pattern_list;
 			pattern_match_item->meta = array[i].meta;