From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <stephen.hurd@broadcom.com>
Received: from mail-gw3-out.broadcom.com (mail-gw3-out.broadcom.com
 [216.31.210.64]) by dpdk.org (Postfix) with ESMTP id 1BE3FC48A
 for <dev@dpdk.org>; Wed, 15 Jun 2016 23:24:31 +0200 (CEST)
X-IronPort-AV: E=Sophos;i="5.26,477,1459839600"; d="scan'208";a="97177461"
Received: from mail-irv-18.broadcom.com ([10.15.198.37])
 by mail-gw3-out.broadcom.com with ESMTP; 15 Jun 2016 14:44:54 -0700
Received: from mail-irva-12.broadcom.com (mail-irva-12.broadcom.com
 [10.11.16.101])
 by mail-irv-18.broadcom.com (Postfix) with ESMTP id 17DF382033;
 Wed, 15 Jun 2016 14:24:31 -0700 (PDT)
Received: from DPDK-C1.broadcom.com (dhcp-10-13-115-104.irv.broadcom.com
 [10.13.115.104])
 by mail-irva-12.broadcom.com (Postfix) with ESMTP id 1C639A628A;
 Wed, 15 Jun 2016 14:24:30 -0700 (PDT)
From: Stephen Hurd <stephen.hurd@broadcom.com>
To: dev@dpdk.org,
	ajit.khaparde@broadcom.com,
	bruce.richardson@intel.com
Date: Wed, 15 Jun 2016 14:23:27 -0700
Message-Id: <1466025818-124223-28-git-send-email-stephen.hurd@broadcom.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1466025818-124223-1-git-send-email-stephen.hurd@broadcom.com>
References: <1465944971-113413-1-git-send-email-stephen.hurd@broadcom.com>
 <1466025818-124223-1-git-send-email-stephen.hurd@broadcom.com>
Subject: [dpdk-dev] [PATCH v6 27/38] bnxt: add HWRM API to set and clear
	filters
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Jun 2016 21:24:32 -0000

From: Ajit Khaparde <ajit.khaparde@broadcom.com>

New HWRM call:
bnxt_clear_hwrm_vnic_filters
	This patch adds code to set and clear L2 filters from the
	corresponding VNIC. These filters will determine the Rx flows

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
Reviewed-by: David Christensen <david.christensen@broadcom.com>

--
v4:
Separated this code from the previous patch as it had nothing to
do with freeing of statistics context.

v5:
Reorder the footer.
---
 drivers/net/bnxt/bnxt_hwrm.c | 26 ++++++++++++++++++++++++++
 drivers/net/bnxt/bnxt_hwrm.h |  3 +++
 2 files changed, 29 insertions(+)

diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index cb30109..13f9e1c 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1059,6 +1059,32 @@ int bnxt_alloc_hwrm_resources(struct bnxt *bp)
 	return 0;
 }
 
+int bnxt_clear_hwrm_vnic_filters(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+{
+	struct bnxt_filter_info *filter;
+	int rc = 0;
+
+	STAILQ_FOREACH(filter, &vnic->filter, next) {
+		rc = bnxt_hwrm_clear_filter(bp, filter);
+		if (rc)
+			break;
+	}
+	return rc;
+}
+
+int bnxt_set_hwrm_vnic_filters(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+{
+	struct bnxt_filter_info *filter;
+	int rc = 0;
+
+	STAILQ_FOREACH(filter, &vnic->filter, next) {
+		rc = bnxt_hwrm_set_filter(bp, vnic, filter);
+		if (rc)
+			break;
+	}
+	return rc;
+}
+
 static uint16_t bnxt_parse_eth_link_duplex(uint32_t conf_link_speed)
 {
 	uint8_t hw_link_duplex = HWRM_PORT_PHY_CFG_INPUT_AUTO_DUPLEX_BOTH;
diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h
index ffb45b1..9c26118 100644
--- a/drivers/net/bnxt/bnxt_hwrm.h
+++ b/drivers/net/bnxt/bnxt_hwrm.h
@@ -92,6 +92,9 @@ int bnxt_clear_all_hwrm_stat_ctxs(struct bnxt *bp);
 int bnxt_free_all_hwrm_stat_ctxs(struct bnxt *bp);
 int bnxt_free_all_hwrm_ring_grps(struct bnxt *bp);
 int bnxt_alloc_all_hwrm_ring_grps(struct bnxt *bp);
+int bnxt_set_hwrm_vnic_filters(struct bnxt *bp, struct bnxt_vnic_info *vnic);
+int bnxt_clear_hwrm_vnic_filters(struct bnxt *bp, struct bnxt_vnic_info *vnic);
+void bnxt_free_all_hwrm_resources(struct bnxt *bp);
 void bnxt_free_hwrm_resources(struct bnxt *bp);
 int bnxt_alloc_hwrm_resources(struct bnxt *bp);
 int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up);
-- 
1.9.1