net/i40e: keep promisc on if allmulticast is enabled

Message ID 20181019094521.7069-1-huaibin.wang@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/i40e: keep promisc on if allmulticast is enabled |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Huaibin Wang Oct. 19, 2018, 9:45 a.m. UTC
  From: huaibin Wang <huaibin.wang@6wind.com>

Promisc should not be disabled if the all multicast mode is enabled.
Patch keeps the promiscuous on if all multicast mode is on, this
behavior is also consistent with the implementation done on ixgbe
pmd.

Signed-off-by: huaibin Wang <huaibin.wang@6wind.com>
Signed-off-by: Laurent Hardy <laurent.hardy@6wind.com>
---
Cc: Beilei Xing <beilei.xing@intel.com>
Cc: Qi Zhang <qi.z.zhang@intel.com>

 drivers/net/i40e/i40e_ethdev.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Qi Zhang Oct. 19, 2018, 6:16 p.m. UTC | #1
> -----Original Message-----
> From: Huaibin Wang [mailto:huaibin.wang@6wind.com]
> Sent: Friday, October 19, 2018 2:45 AM
> To: dev@dpdk.org
> Cc: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> huaibin Wang <huaibin.wang@6wind.com>; Laurent Hardy
> <laurent.hardy@6wind.com>
> Subject: [PATCH] net/i40e: keep promisc on if allmulticast is enabled
> 
> From: huaibin Wang <huaibin.wang@6wind.com>
> 
> Promisc should not be disabled if the all multicast mode is enabled.
> Patch keeps the promiscuous on if all multicast mode is on, this behavior is
> also consistent with the implementation done on ixgbe pmd.
> 
> Signed-off-by: huaibin Wang <huaibin.wang@6wind.com>
> Signed-off-by: Laurent Hardy <laurent.hardy@6wind.com>

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

Applied to dpdk-next-net-intel.
Cc: stable@dpdk.org is added.

Thanks
Qi

> ---
> Cc: Beilei Xing <beilei.xing@intel.com>
> Cc: Qi Zhang <qi.z.zhang@intel.com>
> 
>  drivers/net/i40e/i40e_ethdev.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index f7a685c8c..6c503debc 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -2587,6 +2587,10 @@ i40e_dev_promiscuous_disable(struct
> rte_eth_dev *dev)
>  	if (status != I40E_SUCCESS)
>  		PMD_DRV_LOG(ERR, "Failed to disable unicast promiscuous");
> 
> +	/* must remain in all_multicast mode */
> +	if (dev->data->all_multicast == 1)
> +		return;
> +
>  	status = i40e_aq_set_vsi_multicast_promiscuous(hw, vsi->seid,
>  							false, NULL);
>  	if (status != I40E_SUCCESS)
> --
> 2.11.0
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index f7a685c8c..6c503debc 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2587,6 +2587,10 @@  i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
 	if (status != I40E_SUCCESS)
 		PMD_DRV_LOG(ERR, "Failed to disable unicast promiscuous");
 
+	/* must remain in all_multicast mode */
+	if (dev->data->all_multicast == 1)
+		return;
+
 	status = i40e_aq_set_vsi_multicast_promiscuous(hw, vsi->seid,
 							false, NULL);
 	if (status != I40E_SUCCESS)