> -----Original Message-----
> From: Xing, Beilei
> Sent: Monday, December 18, 2017 1:21 PM
> To: Zhang, Qi Z <qi.z.zh...@intel.com>
> Cc: dev@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: sta...@dpdk.org
> 
> Signed-off-by: Beilei Xing <beilei.x...@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.zh...@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

Reply via email to