[dpdk-dev] [PATCH v3 1/2] net/ixgbe: promiscuous mode enable on VF

Zhang, Qi Z qi.z.zhang at intel.com
Fri Mar 1 08:53:14 CET 2019


HI

> -----Original Message-----
> From: Zhao1, Wei
> Sent: Wednesday, February 13, 2019 3:19 PM
> To: dev at dpdk.org
> Cc: stable at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>; Zhao1, Wei
> <wei.zhao1 at intel.com>
> Subject: [PATCH v3 1/2] net/ixgbe: promiscuous mode enable on VF
> 
> There is need to enable two ops of promiscuous_enable and
> promiscuous_disable on VF.

Should we add something to the release note? This looks like a common feature enabling for a wildly used device, users may need to be notified for this features.

Thanks
Qi

> 
> Signed-off-by: Wei Zhao <wei.zhao1 at intel.com>
> ---
>  doc/guides/nics/features/ixgbe_vf.ini |  1 +
>  drivers/net/ixgbe/ixgbe_ethdev.c      | 20 ++++++++++++++++++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/doc/guides/nics/features/ixgbe_vf.ini
> b/doc/guides/nics/features/ixgbe_vf.ini
> index 0a15500..1614190 100644
> --- a/doc/guides/nics/features/ixgbe_vf.ini
> +++ b/doc/guides/nics/features/ixgbe_vf.ini
> @@ -11,6 +11,7 @@ Jumbo frame          = Y
>  Scattered Rx         = Y
>  LRO                  = Y
>  TSO                  = Y
> +Promiscuous mode     = Y
>  Allmulticast mode    = Y
>  Unicast MAC filter   = Y
>  RSS hash             = Y
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 7493110..f36064d 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -260,6 +260,8 @@ static int ixgbevf_dev_rx_queue_intr_disable(struct
> rte_eth_dev *dev,  static void ixgbevf_set_ivar_map(struct ixgbe_hw *hw,
> int8_t direction,
>  				 uint8_t queue, uint8_t msix_vector);  static void
> ixgbevf_configure_msix(struct rte_eth_dev *dev);
> +static void ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev);
> +static void ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev);
>  static void ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev);  static
> void ixgbevf_dev_allmulticast_disable(struct rte_eth_dev *dev);
> 
> @@ -596,6 +598,8 @@ static const struct eth_dev_ops ixgbevf_eth_dev_ops = {
>  	.xstats_get_names     = ixgbevf_dev_xstats_get_names,
>  	.dev_close            = ixgbevf_dev_close,
>  	.dev_reset	      = ixgbevf_dev_reset,
> +	.promiscuous_enable   = ixgbevf_dev_promiscuous_enable,
> +	.promiscuous_disable  = ixgbevf_dev_promiscuous_disable,
>  	.allmulticast_enable  = ixgbevf_dev_allmulticast_enable,
>  	.allmulticast_disable = ixgbevf_dev_allmulticast_disable,
>  	.dev_infos_get        = ixgbevf_dev_info_get,
> @@ -8301,6 +8305,22 @@ ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev
> *dev,  }
> 
>  static void
> +ixgbevf_dev_promiscuous_enable(struct rte_eth_dev *dev) {
> +	struct ixgbe_hw *hw =
> IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +
> +	hw->mac.ops.update_xcast_mode(hw,
> IXGBEVF_XCAST_MODE_PROMISC); }
> +
> +static void
> +ixgbevf_dev_promiscuous_disable(struct rte_eth_dev *dev) {
> +	struct ixgbe_hw *hw =
> IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +
> +	hw->mac.ops.update_xcast_mode(hw, IXGBEVF_XCAST_MODE_NONE); }
> +
> +static void
>  ixgbevf_dev_allmulticast_enable(struct rte_eth_dev *dev)  {
>  	struct ixgbe_hw *hw =
> IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> --
> 2.7.5



More information about the dev mailing list