[v3,1/2] net/ixgbe: promiscuous mode enable on VF
Checks
Commit Message
There is need to enable two ops of promiscuous_enable and
promiscuous_disable on VF.
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
---
doc/guides/nics/features/ixgbe_vf.ini | 1 +
drivers/net/ixgbe/ixgbe_ethdev.c | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)
Comments
HI
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Wednesday, February 13, 2019 3:19 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Zhao1, Wei
> <wei.zhao1@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@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
Hi ,qi
New v4 has been commit, thanks.
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Friday, March 1, 2019 3:53 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>; dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: RE: [PATCH v3 1/2] net/ixgbe: promiscuous mode enable on VF
>
> HI
>
> > -----Original Message-----
> > From: Zhao1, Wei
> > Sent: Wednesday, February 13, 2019 3:19 PM
> > To: dev@dpdk.org
> > Cc: stable@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Zhao1, Wei
> > <wei.zhao1@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@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
@@ -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
@@ -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);