[dpdk-dev] [PATCH] net/i40e: fix FDIR input set conflict

Zhang, Qi Z qi.z.zhang at intel.com
Tue Dec 19 14:20:56 CET 2017



> -----Original Message-----
> From: Xing, Beilei
> Sent: Monday, December 18, 2017 1:21 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: dev at dpdk.org
> Subject: [PATCH] net/i40e: fix FDIR input set conflict
> 
> The first FDIR rule for some PCTYPE will configure input set and create flow,
> the following flows must use the same input set, otherwise will cause input
> set conflict and fail to create flow.
> But if creating the first rule after flow flush, input set should be
> re-configured.
> 
> Fixes: 42044b69c67d ("net/i40e: support input set selection for FDIR")
> c: stable at dpdk.org
> 
> Signed-off-by: Beilei Xing <beilei.xing at intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index
> 7e4936e..a9e7a0d 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -4406,6 +4406,7 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
>  	struct rte_eth_dev *dev = pf->adapter->eth_dev;
>  	struct i40e_fdir_info *fdir_info = &pf->fdir;
>  	struct i40e_fdir_filter *fdir_filter;
> +	enum i40e_filter_pctype pctype;
>  	struct rte_flow *flow;
>  	void *temp;
>  	int ret;
> @@ -4427,6 +4428,10 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
>  				rte_free(flow);
>  			}
>  		}
> +
> +		for (pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
> +		     pctype <= I40E_FILTER_PCTYPE_L2_PAYLOAD; pctype++)
> +			pf->fdir.inset_flag[pctype] = 0;
>  	}
> 
>  	return ret;
> --
> 2.5.5

Acked-by: Qi Zhang <qi.z.zhang at intel.com>

BTW, do we also need a fix for flow destroy? When the last flow that use input set be destroyed, inset_flag also need to be reset?

Regards
Qi


More information about the dev mailing list