HI > -----Original Message----- > From: Zhao1, Wei > Sent: Wednesday, February 13, 2019 3:19 PM > To: dev@dpdk.org > Cc: sta...@dpdk.org; Zhang, Qi Z <qi.z.zh...@intel.com>; Zhao1, Wei > <wei.zh...@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.zh...@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