Hi Qiming,
> -----Original Message----- > From: Yang, Qiming > Sent: Wednesday, January 23, 2019 2:21 PM > To: Lu, Wenzhuo <wenzhuo...@intel.com>; dev@dpdk.org > Cc: Lu, Wenzhuo <wenzhuo...@intel.com> > Subject: RE: [dpdk-dev] [PATCH v2] net/ice: add promiscuous mode support > > Hi, wenzhuo > > -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Wenzhuo Lu > Sent: Wednesday, January 23, 2019 10:37 AM > To: dev@dpdk.org > Cc: Lu, Wenzhuo <wenzhuo...@intel.com> > Subject: [dpdk-dev] [PATCH v2] net/ice: add promiscuous mode support > > Enable the APIs for unicast and multicast promiscuous mode setting. > > Signed-off-by: Wenzhuo Lu <wenzhuo...@intel.com> > --- > doc/guides/nics/features/ice.ini | 2 + > doc/guides/nics/ice.rst | 14 ------- > drivers/net/ice/ice_ethdev.c | 86 > ++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 88 insertions(+), 14 deletions(-) > > diff --git a/doc/guides/nics/features/ice.ini > b/doc/guides/nics/features/ice.ini > index 8b1e22e..5e6cb4b 100644 > --- a/doc/guides/nics/features/ice.ini > +++ b/doc/guides/nics/features/ice.ini > @@ -14,6 +14,8 @@ MTU update = Y > Jumbo frame = Y > Scattered Rx = Y > TSO = Y > +Promiscuous mode = Y > +Allmulticast mode = Y > Unicast MAC filter = Y > Multicast MAC filter = Y > RSS hash = Y > diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst index > 466af55..3998d5e 100644 > --- a/doc/guides/nics/ice.rst > +++ b/doc/guides/nics/ice.rst > @@ -88,17 +88,3 @@ Limitations or Known issues ~~~~~~~~~~~~~~~~ > > Ice code released in 19.02 is for evaluation only. > - > - > -Promiscuous mode not supported > -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > -As promiscuous mode is not supported as this stage, a port can only receive > the -packets which destination MAC address is this port's own. > - > - > -TX anti-spoofing cannot be disabled > -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > -TX anti-spoofing is enabled by default. At this stage it's not supported to - > disable it. So any TX packet which source MAC address is not this port's own > -will be dropped by HW. It means io-fwd is not supported now. Recommand > to use -MAC-fwd for evaluation. > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index > b145d9c..b450115 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -38,6 +38,10 @@ static int ice_rss_hash_update(struct rte_eth_dev > *dev, > struct rte_eth_rss_conf *rss_conf); static int > ice_rss_hash_conf_get(struct rte_eth_dev *dev, > struct rte_eth_rss_conf *rss_conf); > +static void ice_promisc_enable(struct rte_eth_dev *dev); static void > +ice_promisc_disable(struct rte_eth_dev *dev); static void > +ice_allmulti_enable(struct rte_eth_dev *dev); static void > +ice_allmulti_disable(struct rte_eth_dev *dev); > static int ice_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, > int on); > @@ -103,6 +107,10 @@ static int ice_xstats_get_names(struct rte_eth_dev > *dev, > .reta_query = ice_rss_reta_query, > .rss_hash_update = ice_rss_hash_update, > .rss_hash_conf_get = ice_rss_hash_conf_get, > + .promiscuous_enable = ice_promisc_enable, > + .promiscuous_disable = ice_promisc_disable, > + .allmulticast_enable = ice_allmulti_enable, > + .allmulticast_disable = ice_allmulti_disable, > .rx_queue_intr_enable = ice_rx_queue_intr_enable, > .rx_queue_intr_disable = ice_rx_queue_intr_disable, > .fw_version_get = ice_fw_version_get, > @@ -1709,6 +1717,7 @@ static int ice_init_rss(struct ice_pf *pf) > struct rte_eth_dev_data *data = dev->data; > struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data- > >dev_private); > struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data- > >dev_private); > + struct ice_vsi *vsi = pf->main_vsi; > uint16_t nb_rxq = 0; > uint16_t nb_txq, i; > int ret; > @@ -1743,6 +1752,14 @@ static int ice_init_rss(struct ice_pf *pf) > if (ice_rxq_intr_setup(dev)) > return -EIO; > > + /* Enable receiving broadcast packets and transmitting packets */ > + ret = ice_set_vsi_promisc(hw, vsi->idx, > + ICE_PROMISC_BCAST_RX | > ICE_PROMISC_BCAST_TX | > + ICE_PROMISC_UCAST_TX | > ICE_PROMISC_MCAST_TX, > + 0); > + if (ret != ICE_SUCCESS) > + PMD_DRV_LOG(INFO, "fail to set vsi broadcast"); > + > ret = ice_aq_set_event_mask(hw, hw->port_info->lport, > ((u16)(ICE_AQ_LINK_EVENT_LINK_FAULT | > ICE_AQ_LINK_EVENT_PHY_TEMP_ALARM > | @@ -2556,6 +2573,75 @@ static int ice_macaddr_set(struct rte_eth_dev > *dev, > return 0; > } > > +static void > +ice_promisc_enable(struct rte_eth_dev *dev) { > > Should this '{' start on the next line? Interesting! I don't know what happened. I saw the same problem in the mail. If you check the webpage, https://patches.dpdk.org/patch/50012/. It's good and the same as the original patch. Could it be outlook that changes the context? TBH, I don't know.