So I think the bug is the skipped pattern don't pass to the next function. -----Original Message----- From: Wang, Ying A Sent: Thursday, July 18, 2019 10:40 AM To: Yang, Qiming <qiming.y...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com> Cc: dev@dpdk.org; sta...@dpdk.org Subject: RE: [PATCH 1/3] net/ice: fix flow get inputset check
> -----Original Message----- > From: Yang, Qiming > Sent: Thursday, July 18, 2019 10:33 AM > To: Wang, Ying A <ying.a.w...@intel.com>; Zhang, Qi Z > <qi.z.zh...@intel.com> > Cc: dev@dpdk.org; sta...@dpdk.org > Subject: RE: [PATCH 1/3] net/ice: fix flow get inputset check > > It's no need to add RTE_FLOW_ITEM_TYPE_VOID because we have skipped > all the VOID items. But actually, we passed the original pattern to this function, not the one skipped all the VOID items. > > -----Original Message----- > From: Wang, Ying A > Sent: Thursday, July 18, 2019 9:39 AM > To: Zhang, Qi Z <qi.z.zh...@intel.com> > Cc: Yang, Qiming <qiming.y...@intel.com>; dev@dpdk.org; Wang, Ying A > <ying.a.w...@intel.com>; sta...@dpdk.org > Subject: [PATCH 1/3] net/ice: fix flow get inputset check > > ice_get_flow_field should not set error if item->type is > RTE_FLOW_ITEM_TYPE_VOID. > This patch fixes this issue. > > Fixes: d76116a4678f ("net/ice: add generic flow API") > Cc: sta...@dpdk.org > > Signed-off-by: Wang Ying A <ying.a.w...@intel.com> > --- > drivers/net/ice/ice_generic_flow.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ice/ice_generic_flow.c > b/drivers/net/ice/ice_generic_flow.c > index c2931a1..464f6ec 100644 > --- a/drivers/net/ice/ice_generic_flow.c > +++ b/drivers/net/ice/ice_generic_flow.c > @@ -465,7 +465,7 @@ static uint64_t ice_get_flow_field(const struct > rte_flow_item pattern[], > case RTE_FLOW_ITEM_TYPE_NVGRE: > nvgre_spec = item->spec; > nvgre_mask = item->mask; > - /* Check if VXLAN item is used to describe protocol. > + /* Check if NVGRE item is used to describe protocol. > * If yes, both spec and mask should be NULL. > * If no, both spec and mask shouldn't be NULL. > */ > @@ -480,6 +480,8 @@ static uint64_t ice_get_flow_field(const struct > rte_flow_item pattern[], > is_tunnel = 1; > > break; > + case RTE_FLOW_ITEM_TYPE_VOID: > + break; > default: > rte_flow_error_set(error, EINVAL, > RTE_FLOW_ERROR_TYPE_ITEM, > -- > 1.8.3.1