Ideally a rule with "TO VSI LIST" action should not be deleted when one of the VF reset happens. The correct action by kernel PF driver is to remove the VSI of a reset VF from the VSI list, but this is not implemented in kernel PF yet, so workaround is the DCF to prevent a rule with "To VSI List" action happens. Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> --- drivers/net/ice/base/ice_switch.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c index 08999d336..b9fa516b0 100644 --- a/drivers/net/ice/base/ice_switch.c +++ b/drivers/net/ice/base/ice_switch.c @@ -6438,6 +6438,13 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw, cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI_LIST)) return ICE_ERR_NOT_IMPL; + /* Workaround fix for unexpected rule deletion by kernel PF + * during VF reset. + */ + if (new_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI && + cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI) + return ICE_ERR_NOT_IMPL; + if (m_entry->vsi_count < 2 && !m_entry->vsi_list_info) { /* Only one entry existed in the mapping and it was not already * a part of a VSI list. So, create a VSI list with the old and -- 2.13.6
It will be delete after fix in kernel to re-enable vf list feature.
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Qi Zhang
> Sent: Thursday, April 23, 2020 12:22 PM
> To: Yang, Qiming <qiming.yang@intel.com>
> Cc: Ye, Xiaolong <xiaolong.ye@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Zhang, Xiao <xiao.zhang@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: [dpdk-dev] [PATCH] net/ice/base: workaround for unexpected rule
> deletion
>
> Ideally a rule with "TO VSI LIST" action should not be deleted when one of the
> VF reset happens. The correct action by kernel PF driver is to remove the VSI of
> a reset VF from the VSI list, but this is not implemented in kernel PF yet, so
> workaround is the DCF to prevent a rule with "To VSI List" action happens.
>
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> drivers/net/ice/base/ice_switch.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/net/ice/base/ice_switch.c
> b/drivers/net/ice/base/ice_switch.c
> index 08999d336..b9fa516b0 100644
> --- a/drivers/net/ice/base/ice_switch.c
> +++ b/drivers/net/ice/base/ice_switch.c
> @@ -6438,6 +6438,13 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw,
> cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI_LIST))
> return ICE_ERR_NOT_IMPL;
>
> + /* Workaround fix for unexpected rule deletion by kernel PF
> + * during VF reset.
> + */
> + if (new_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI &&
> + cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI)
> + return ICE_ERR_NOT_IMPL;
> +
> if (m_entry->vsi_count < 2 && !m_entry->vsi_list_info) {
> /* Only one entry existed in the mapping and it was not already
> * a part of a VSI list. So, create a VSI list with the old and
> --
> 2.13.6
On 04/24, Zhao1, Wei wrote:
>It will be delete after fix in kernel to re-enable vf list feature.
>
>Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Qi Zhang
>> Sent: Thursday, April 23, 2020 12:22 PM
>> To: Yang, Qiming <qiming.yang@intel.com>
>> Cc: Ye, Xiaolong <xiaolong.ye@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
>> Zhang, Xiao <xiao.zhang@intel.com>; dev@dpdk.org; Zhang, Qi Z
>> <qi.z.zhang@intel.com>
>> Subject: [dpdk-dev] [PATCH] net/ice/base: workaround for unexpected rule
>> deletion
>>
>> Ideally a rule with "TO VSI LIST" action should not be deleted when one of the
>> VF reset happens. The correct action by kernel PF driver is to remove the VSI of
>> a reset VF from the VSI list, but this is not implemented in kernel PF yet, so
>> workaround is the DCF to prevent a rule with "To VSI List" action happens.
>>
>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>> ---
>> drivers/net/ice/base/ice_switch.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/net/ice/base/ice_switch.c
>> b/drivers/net/ice/base/ice_switch.c
>> index 08999d336..b9fa516b0 100644
>> --- a/drivers/net/ice/base/ice_switch.c
>> +++ b/drivers/net/ice/base/ice_switch.c
>> @@ -6438,6 +6438,13 @@ ice_adv_add_update_vsi_list(struct ice_hw *hw,
>> cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI_LIST))
>> return ICE_ERR_NOT_IMPL;
>>
>> +/* Workaround fix for unexpected rule deletion by kernel PF
>> + * during VF reset.
>> + */
>> +if (new_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI &&
>> + cur_fltr->sw_act.fltr_act == ICE_FWD_TO_VSI)
>> +return ICE_ERR_NOT_IMPL;
>> +
>> if (m_entry->vsi_count < 2 && !m_entry->vsi_list_info) {
>> /* Only one entry existed in the mapping and it was not already
>> * a part of a VSI list. So, create a VSI list with the old and
>> --
>> 2.13.6
>
Applied to dpdk-next-net-intel, Thanks.