From patchwork Mon Sep 27 08:21:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Kumar Kori X-Patchwork-Id: 99719 X-Patchwork-Delegate: jerinj@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6A467A0547; Mon, 27 Sep 2021 10:22:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 78801410DF; Mon, 27 Sep 2021 10:22:38 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id B64CB410DC for ; Mon, 27 Sep 2021 10:22:36 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 18QLbnwg025340; Mon, 27 Sep 2021 01:22:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=QH/3hC5/br9GdYjSOWyXLUjR/p9RKRvVlYg7BGeglyE=; b=jOGDU76RE2TMuGxSCvRWE6EWcUpMaogmwPF8L6bRdJ+pHMweNj8AfKSJE2+zmMTPPDYA 5BuCaCW+Bzd+MCuoFuUEcq4ahdGxM2BXFGmxBxB/j+tsoAD9vLwoY7Q7WwgQEn4kdFWU CPnSjG2h67rSUgdjct/wZsmM7ytpMJEtVH/dhd7fCe0QG72But+MAApNemk8KjOL/MJW VmDUqmrcjnsnk4IwuWkM0edQgcrAUX1bI3MpwWsyvmD/JLRigM+VuXOvHtVaR3kcXmYm pLkIlvgWuXedqAzjAEcFDf17fzb/vQQ1+JozG29hbdpEN2prlzLbHcb719Sk+aK4WIcZ Qw== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com with ESMTP id 3bavvuhtr7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 27 Sep 2021 01:22:34 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Mon, 27 Sep 2021 01:22:32 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Mon, 27 Sep 2021 01:22:32 -0700 Received: from localhost.localdomain (unknown [10.28.34.25]) by maili.marvell.com (Postfix) with ESMTP id 941FC3F7040; Mon, 27 Sep 2021 01:22:30 -0700 (PDT) From: To: Nithin Dabilpuram , Kiran Kumar K , Sunil Kumar Kori , Satha Rao , Ray Kinsella CC: Date: Mon, 27 Sep 2021 13:51:58 +0530 Message-ID: <20210927082223.757436-2-skori@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210927082223.757436-1-skori@marvell.com> References: <20210927082223.757436-1-skori@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 9R1EbFRjhO22Qu6Mmj5QbljTeeee--Ms X-Proofpoint-GUID: 9R1EbFRjhO22Qu6Mmj5QbljTeeee--Ms X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.391,FMLib:17.0.607.475 definitions=2021-09-27_02,2021-09-24_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v2 02/27] common/cnxk: support RoC API to get level to index X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Sunil Kumar Kori CN10K platform supports policer up to 3 level of hierarchy. Implement RoC API to get corresponding index for given level. Signed-off-by: Sunil Kumar Kori --- v2: - Rebase support on latest DPDK - Handled multilevel chaining for linear hierarchy - Review comments incorporated drivers/common/cnxk/meson.build | 1 + drivers/common/cnxk/roc_nix.h | 11 +++++++++++ drivers/common/cnxk/roc_nix_bpf.c | 22 ++++++++++++++++++++++ drivers/common/cnxk/roc_nix_priv.h | 1 + drivers/common/cnxk/version.map | 1 + 5 files changed, 36 insertions(+) create mode 100644 drivers/common/cnxk/roc_nix_bpf.c diff --git a/drivers/common/cnxk/meson.build b/drivers/common/cnxk/meson.build index 8a551d15d6..62901e66e7 100644 --- a/drivers/common/cnxk/meson.build +++ b/drivers/common/cnxk/meson.build @@ -25,6 +25,7 @@ sources = files( 'roc_mbox.c', 'roc_model.c', 'roc_nix.c', + 'roc_nix_bpf.c', 'roc_nix_debug.c', 'roc_nix_fc.c', 'roc_nix_irq.c', diff --git a/drivers/common/cnxk/roc_nix.h b/drivers/common/cnxk/roc_nix.h index b0e6fabe31..1488c24f59 100644 --- a/drivers/common/cnxk/roc_nix.h +++ b/drivers/common/cnxk/roc_nix.h @@ -6,6 +6,8 @@ #define _ROC_NIX_H_ /* Constants */ +#define ROC_NIX_BPF_LEVEL_IDX_INVALID 0xFF + enum roc_nix_rss_reta_sz { ROC_NIX_RSS_RETA_SZ_64 = 64, ROC_NIX_RSS_RETA_SZ_128 = 128, @@ -29,6 +31,12 @@ enum roc_nix_vlan_type { ROC_NIX_VLAN_TYPE_OUTER = 0x02, }; +enum roc_nix_bpf_level_flag { + ROC_NIX_BPF_LEVEL_F_LEAF = BIT(0), + ROC_NIX_BPF_LEVEL_F_MID = BIT(1), + ROC_NIX_BPF_LEVEL_F_TOP = BIT(2), +}; + struct roc_nix_vlan_config { uint32_t type; union { @@ -468,6 +476,9 @@ int __roc_api roc_nix_tm_rsrc_count(struct roc_nix *roc_nix, int __roc_api roc_nix_tm_node_name_get(struct roc_nix *roc_nix, uint32_t node_id, char *buf, size_t buflen); +/* Ingress Policer API */ +uint8_t __roc_api +roc_nix_bpf_level_to_idx(enum roc_nix_bpf_level_flag lvl_flag); /* MAC */ int __roc_api roc_nix_mac_rxtx_start_stop(struct roc_nix *roc_nix, bool start); diff --git a/drivers/common/cnxk/roc_nix_bpf.c b/drivers/common/cnxk/roc_nix_bpf.c new file mode 100644 index 0000000000..b588cc16e4 --- /dev/null +++ b/drivers/common/cnxk/roc_nix_bpf.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(C) 2021 Marvell. + */ + +#include "roc_api.h" +#include "roc_priv.h" + +uint8_t +roc_nix_bpf_level_to_idx(enum roc_nix_bpf_level_flag level_f) +{ + uint8_t idx; + + if (level_f & ROC_NIX_BPF_LEVEL_F_LEAF) + idx = 0; + else if (level_f & ROC_NIX_BPF_LEVEL_F_MID) + idx = 1; + else if (level_f & ROC_NIX_BPF_LEVEL_F_TOP) + idx = 2; + else + idx = ROC_NIX_BPF_LEVEL_IDX_INVALID; + return idx; +} diff --git a/drivers/common/cnxk/roc_nix_priv.h b/drivers/common/cnxk/roc_nix_priv.h index 9dc0c88a6f..94040fc744 100644 --- a/drivers/common/cnxk/roc_nix_priv.h +++ b/drivers/common/cnxk/roc_nix_priv.h @@ -170,6 +170,7 @@ enum nix_err_status { NIX_ERR_INVALID_RANGE, NIX_ERR_INTERNAL, NIX_ERR_OP_NOTSUP, + NIX_ERR_HW_NOTSUP, NIX_ERR_QUEUE_INVALID_RANGE, NIX_ERR_AQ_READ_FAILED, NIX_ERR_AQ_WRITE_FAILED, diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map index 5df2e56ce6..c19f74fe91 100644 --- a/drivers/common/cnxk/version.map +++ b/drivers/common/cnxk/version.map @@ -77,6 +77,7 @@ INTERNAL { roc_model; roc_se_auth_key_set; roc_se_ciph_key_set; + roc_nix_bpf_level_to_idx; roc_nix_cq_dump; roc_nix_cq_fini; roc_nix_cq_init;