From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2727FA04F1 for ; Thu, 18 Jun 2020 10:10:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E9BFE1BEA5; Thu, 18 Jun 2020 10:10:41 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 0EA541BE83; Thu, 18 Jun 2020 10:10:38 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 05I89j4U018923; Thu, 18 Jun 2020 01:10:38 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=pfpt0818; bh=SFYnn+99dwrs6APT6JPu+sEucIJR4+4l4LqBLOO695Q=; b=b+pmBRXW2EE3/tRGipntMVOyLYzIV5x2CH8BIqvDCNs8QHATSIUNCyUg998OUWJp7HiD S+JYOTaKU9dmE3Gs/RppN4paVXTin3uL3G1ScY05n3lepbNpC2vJwInr2zvY+y5xfhx9 8Zc7Wt+G3sF67nzFUN3NLccxVkNUsphI8OTM0mbGL9cKwyYy7v9YhqTqdiY+ufMeup88 HBGw6b6u4tPuH6vfQbZjExRxBR0t7kcdSWXES0CUdFLlWsAZLnphasAvFIlota6qU1l2 5MwA+Zhd3VcIzOuaugQC7widIrLsz+Bglv5CHrL+5jrEoresBUNpShjMy85S0M4D/sYP 7Q== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 31q658s5gn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 18 Jun 2020 01:10:38 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 18 Jun 2020 01:10:36 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 18 Jun 2020 01:10:36 -0700 Received: from rahuldell720.punelab.qlogic.com (unknown [10.30.45.193]) by maili.marvell.com (Postfix) with ESMTP id 3EE8A3F703F; Thu, 18 Jun 2020 01:10:34 -0700 (PDT) From: Devendra Singh Rawat To: , , CC: , Devendra Singh Rawat , , Igor Russkikh , Rasesh Mody Date: Thu, 18 Jun 2020 13:45:55 +0530 Message-ID: <1592468155-19543-1-git-send-email-dsinghrawat@marvell.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-18_04:2020-06-17, 2020-06-18 signatures=0 Subject: [dpdk-stable] [PATCH] net/qede: fix multicast pkts drop in promisc mode X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" After enabling promiscuous mode all packets whose destination MAC address is a multicast address were being dropped. This fix configures H/W to receive all traffic in promiscuous mode. Promiscuous mode also overrides allmulticast mode on/off status. Fixes: 40e9f6fc1558 ("net/qede: enable VF-VF traffic with unmatched dest address") Cc: stable@dpdk.org Signed-off-by: Devendra Singh Rawat Signed-off-by: Igor Russkikh Signed-off-by: Rasesh Mody --- drivers/net/qede/qede_ethdev.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index c4f8f12..84d2d2c 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -625,17 +625,16 @@ int qede_enable_tpa(struct rte_eth_dev *eth_dev, bool flg) ECORE_ACCEPT_BCAST; if (type == QED_FILTER_RX_MODE_TYPE_PROMISC) { - flags.rx_accept_filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + flags.rx_accept_filter |= (ECORE_ACCEPT_UCAST_UNMATCHED | + ECORE_ACCEPT_MCAST_UNMATCHED); if (IS_VF(edev)) { - flags.tx_accept_filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - DP_INFO(edev, "Enabling Tx unmatched flag for VF\n"); + flags.tx_accept_filter |= + (ECORE_ACCEPT_UCAST_UNMATCHED | + ECORE_ACCEPT_MCAST_UNMATCHED); + DP_INFO(edev, "Enabling Tx unmatched flags for VF\n"); } } else if (type == QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC) { flags.rx_accept_filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else if (type == (QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC | - QED_FILTER_RX_MODE_TYPE_PROMISC)) { - flags.rx_accept_filter |= ECORE_ACCEPT_UCAST_UNMATCHED | - ECORE_ACCEPT_MCAST_UNMATCHED; } return ecore_filter_accept_cmd(edev, 0, flags, false, false, @@ -1502,16 +1501,13 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev) static int qede_promiscuous_enable(struct rte_eth_dev *eth_dev) { - struct qede_dev *qdev = eth_dev->data->dev_private; - struct ecore_dev *edev = &qdev->edev; - enum qed_filter_rx_mode_type type = QED_FILTER_RX_MODE_TYPE_PROMISC; enum _ecore_status_t ecore_status; + struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); + struct ecore_dev *edev = QEDE_INIT_EDEV(qdev); + enum qed_filter_rx_mode_type type = QED_FILTER_RX_MODE_TYPE_PROMISC; PMD_INIT_FUNC_TRACE(edev); - if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1) - type |= QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC; - ecore_status = qed_configure_filter_rx_mode(eth_dev, type); return ecore_status >= ECORE_SUCCESS ? 0 : -EAGAIN; @@ -1885,9 +1881,6 @@ static int qede_allmulticast_enable(struct rte_eth_dev *eth_dev) QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC; enum _ecore_status_t ecore_status; - if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) - type |= QED_FILTER_RX_MODE_TYPE_PROMISC; - ecore_status = qed_configure_filter_rx_mode(eth_dev, type); return ecore_status >= ECORE_SUCCESS ? 0 : -EAGAIN; -- 1.8.3.1