From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 27E43A0548; Tue, 27 Apr 2021 12:42:06 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0D498407FF; Tue, 27 Apr 2021 12:42:06 +0200 (CEST) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2051.outbound.protection.outlook.com [40.107.101.51]) by mails.dpdk.org (Postfix) with ESMTP id 0FFB64069D for ; Tue, 27 Apr 2021 12:42:04 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A6XRB06Q0jYhy1CrFTVTDHINT+G8dvEVtTmWA9YWwBFz3XGH3aTmSK3vjzvtn/r72gE7S2ljvbkwdCUSnCwdlXXDpzCr235WzgHzSCg1Wzmj+VE78N0RNhjYzeAD5RxsH47ouZ/SWsihy4RYPpHRanrZSA9hmZaAz25DGwixLVt87J1fpZeSgmN9r3iJTNY6kSLEG2bRbs2ax981sVshkobo/H5gmW+i3DFjdxeW9MNgeAsRuyk+EmLdD60z+y0XQi3P5bmiamzjql+/oPz532YgYHq/9fW6zh9hqGHdw7lMqWhtABg1W321PqtWjwsceK9uvzwub7FCQP5OCQ3WnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0DiseTAQJDW+t3EpEoXqnPXHwy2jnE8xvvDpAGiTvzI=; b=W21m+/LIHQ4UUQdH4quRc5FejabKIH2md1nlDWMzj78QaO+pNXyd6oLVfba91nYT000rVVcjCt76QjnTBxHIcWm683iqvbCGxExGz5afNhF+S4FyJHw4nYKfyPWLkbkZaU4iLAtDLw46FQ5g2n22qPlakxImZSiRX6x0WDA3+ChpNgsdb5VPX912K0IMnn1KzsTkzJE7Iqx/Of+ZQPNOD+8IdVV1o2w4N5KuXrZ5YFOplbjk1yA9v0SuvpIlNmeW/wFYoF6qMuEk9cBfyPaYYuG434qAd0SdW1nVYUcIdWlxHc9SmO8ugGcBCeq0Tkd+yU4y3W554r+6W1co0QA5lw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=monjalon.net smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0DiseTAQJDW+t3EpEoXqnPXHwy2jnE8xvvDpAGiTvzI=; b=M94CNwvcwJMWsAMGdSkYeuJp+QNIQv3UkJlVfBV58e1vi4KcMu1aYFTMxasT+crZLD5IvlgOpwjGkRz+Y5amCVr8nCpfaFF+fz1mvJvxaDQ/h61/aWJNcVfScMHMPQDDB+bc2PUPNPGJsB1KK0IvVUi5RuxNFeJkH3VWzD+DmVIF/axz6Ci4NMytlgMRkudhhbDuGJ5aBObm2G79q00hHtbCJ5M+g8qCClB72bb69gI1cntoRIqCw/Kf1gQNltcCPlgSuwSiwSngYeZg5nEgBblgVyB3nAaH1wl2mTybVzA13mJWq/yhzveM/yF+Pr+OsQ57nNBajtinUSwUEneyjQ== Received: from BN6PR13CA0017.namprd13.prod.outlook.com (2603:10b6:404:10a::27) by BN9PR12MB5195.namprd12.prod.outlook.com (2603:10b6:408:11c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.25; Tue, 27 Apr 2021 10:42:01 +0000 Received: from BN8NAM11FT047.eop-nam11.prod.protection.outlook.com (2603:10b6:404:10a:cafe::6b) by BN6PR13CA0017.outlook.office365.com (2603:10b6:404:10a::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.19 via Frontend Transport; Tue, 27 Apr 2021 10:42:01 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT047.mail.protection.outlook.com (10.13.177.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4065.21 via Frontend Transport; Tue, 27 Apr 2021 10:42:01 +0000 Received: from nvidia.com (172.20.145.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 27 Apr 2021 10:41:56 +0000 From: Li Zhang To: , , , CC: , , , Date: Tue, 27 Apr 2021 13:41:34 +0300 Message-ID: <20210427104134.3946-2-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210427104134.3946-1-lizh@nvidia.com> References: <20210331092319.1446618-1-lizh@nvidia.com> <20210427104134.3946-1-lizh@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.20.145.6] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1e942b0-9cf3-4233-2e2f-08d909691765 X-MS-TrafficTypeDiagnostic: BN9PR12MB5195: X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3383; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pTt1I3E3S4tKBK9zbwgAB1JdNUJmHYmMfVn51m7fhDcurSYAXkaxVVew+oWnYU2mwpt8MSWt3ARB5qdyztJg+QBFt6+RCCD0CWuAQOUqM2Ushfgm7Jc+qFyp8V/4YS90SB70P2UjVazi+JK6SeEYuUcOHxMZ6vS2ifrD2eesGsY5FEQJREgGeOUR4uyRHURSmztMqdmtcib9fIMAW2cvgJbNyS6SiN5JaYkYVhsjk9HX+Wn5YolGv1svOTmqp3KhkQuW7eh2ns8Tx3JVAnE5Hh0Ul+JJwI8AqMPdGfmfGOzCXEXmtJRwtq7nWRzYG2hfopeQFitS00kVg5cvDsK1lnfF0bG8/rD4+Hm96REnojLFZZxGEPNXAkKzb5yjFwFEXMSA9lLdwAO9AupbMm7mgzYwrSLcx1ZTfPhf9UeFq5sTMbjmP/T675DJZtSmSiWAoWs30Xi+bY0JIv9nJHWKfXwHwgvLMRH18jN17U4AdYgmlF9vBgFRUPz8k/zIoWKPhAyAvYj/cM/Df84wPDBXSjB2lEgenXRXQRhdiE/E4qZR8KEwW1XHGBcB47G9UfsWw0BcDfx1eh7RJu9tb8OD7q8w/SD3LY915XHgjQrrPp9hSvNkKV9JuHxBrayIWl1eD6dYH77mmfdOpnXILpx7nmc5AQ0u+0IusZ3k3NinYDI= X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(396003)(39860400002)(346002)(376002)(136003)(36840700001)(46966006)(336012)(55016002)(36860700001)(6286002)(5660300002)(2906002)(47076005)(6666004)(82740400003)(26005)(8676002)(54906003)(186003)(6636002)(83380400001)(107886003)(36756003)(356005)(1076003)(70586007)(86362001)(7696005)(426003)(7636003)(16526019)(70206006)(4326008)(82310400003)(2616005)(36906005)(110136005)(478600001)(316002)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2021 10:42:01.6499 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a1e942b0-9cf3-4233-2e2f-08d909691765 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT047.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5195 Subject: [dpdk-dev] [PATCH v5 1/1] net/mlx5: support meter PPS profile 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" Currently meter algorithms only supports bytes units for meter profiles. Using ASO feature, the driver can support metering in per packet units. Add support for packet units in meter profiles. Signed-off-by: Li Zhang Acked-by: Matan Azrad --- doc/guides/nics/mlx5.rst | 1 + doc/guides/rel_notes/release_21_05.rst | 1 + drivers/common/mlx5/mlx5_prm.h | 8 +++ drivers/net/mlx5/mlx5_flow_aso.c | 17 +++--- drivers/net/mlx5/mlx5_flow_meter.c | 74 ++++++++++++++++++++------ 5 files changed, 78 insertions(+), 23 deletions(-) diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index b27a9a69f6..2bb4f18a08 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -416,6 +416,7 @@ Limitations - green: QUEUE, RSS, PORT_ID, JUMP, MARK and SET_TAG. - yellow: must be empty. - RED: must be DROP. + - meter profile packet mode is supported. Statistics ---------- diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst index 58d70bd19f..133a0dbbf2 100644 --- a/doc/guides/rel_notes/release_21_05.rst +++ b/doc/guides/rel_notes/release_21_05.rst @@ -164,6 +164,7 @@ New Features * Support push VLAN on ingress traffic and pop VLAN on egress traffic in E-Switch mode. * Added support for pre-defined meter policy API. * Added support for ASO (Advanced Steering Operation) meter. + * Added support for ASO metering by PPS (packet per second). * **Updated NXP DPAA driver.** diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h index c6d8060bb9..efa5ae67bf 100644 --- a/drivers/common/mlx5/mlx5_prm.h +++ b/drivers/common/mlx5/mlx5_prm.h @@ -2297,6 +2297,13 @@ struct mlx5_ifc_flow_meter_parameters_bits { #define MLX5_IFC_FLOW_METER_PARAM_MASK UINT64_C(0x80FFFFFF) #define MLX5_IFC_FLOW_METER_DISABLE_CBS_CIR_VAL 0x14BF00C8 +enum { + MLX5_METER_MODE_IP_LEN = 0x0, + MLX5_METER_MODE_L2_LEN = 0x1, + MLX5_METER_MODE_L2_IPG_LEN = 0x2, + MLX5_METER_MODE_PKT = 0x3, +}; + enum { MLX5_CQE_SIZE_64B = 0x0, MLX5_CQE_SIZE_128B = 0x1, @@ -2671,6 +2678,7 @@ struct mlx5_aso_mtr_dseg { #define ASO_DSEG_VALID_OFFSET 31 #define ASO_DSEG_BO_OFFSET 30 #define ASO_DSEG_SC_OFFSET 28 +#define ASO_DSEG_MTR_MODE 24 #define ASO_DSEG_CBS_EXP_OFFSET 24 #define ASO_DSEG_CBS_MAN_OFFSET 16 #define ASO_DSEG_CIR_EXP_MASK 0x1F diff --git a/drivers/net/mlx5/mlx5_flow_aso.c b/drivers/net/mlx5/mlx5_flow_aso.c index 20cd4fe18c..da513a600c 100644 --- a/drivers/net/mlx5/mlx5_flow_aso.c +++ b/drivers/net/mlx5/mlx5_flow_aso.c @@ -191,7 +191,6 @@ mlx5_aso_mtr_init_sq(struct mlx5_aso_sq *sq) volatile struct mlx5_aso_wqe *restrict wqe; int i; int size = 1 << sq->log_desc_n; - uint32_t idx; /* All the next fields state should stay constant. */ for (i = 0, wqe = &sq->sq_obj.aso_wqes[0]; i < size; ++i, ++wqe) { @@ -204,11 +203,6 @@ mlx5_aso_mtr_init_sq(struct mlx5_aso_sq *sq) (BYTEWISE_64BYTE << ASO_CSEG_DATA_MASK_MODE_OFFSET)); wqe->general_cseg.flags = RTE_BE32(MLX5_COMP_ALWAYS << MLX5_COMP_MODE_OFFSET); - for (idx = 0; idx < MLX5_ASO_METERS_PER_WQE; - idx++) - wqe->aso_dseg.mtrs[idx].v_bo_sc_bbog_mm = - RTE_BE32((1 << ASO_DSEG_VALID_OFFSET) | - (MLX5_FLOW_COLOR_GREEN << ASO_DSEG_SC_OFFSET)); } } @@ -664,6 +658,7 @@ mlx5_aso_mtr_sq_enqueue_single(struct mlx5_aso_sq *sq, { volatile struct mlx5_aso_wqe *wqe = NULL; struct mlx5_flow_meter_info *fm = NULL; + struct mlx5_flow_meter_profile *fmp; uint16_t size = 1 << sq->log_desc_n; uint16_t mask = size - 1; uint16_t res; @@ -704,6 +699,16 @@ mlx5_aso_mtr_sq_enqueue_single(struct mlx5_aso_sq *sq, RTE_BE32(MLX5_IFC_FLOW_METER_DISABLE_CBS_CIR_VAL); wqe->aso_dseg.mtrs[dseg_idx].ebs_eir = 0; } + fmp = fm->profile; + if (fmp->profile.packet_mode) + wqe->aso_dseg.mtrs[dseg_idx].v_bo_sc_bbog_mm = + RTE_BE32((1 << ASO_DSEG_VALID_OFFSET) | + (MLX5_FLOW_COLOR_GREEN << ASO_DSEG_SC_OFFSET) | + (MLX5_METER_MODE_PKT << ASO_DSEG_MTR_MODE)); + else + wqe->aso_dseg.mtrs[dseg_idx].v_bo_sc_bbog_mm = + RTE_BE32((1 << ASO_DSEG_VALID_OFFSET) | + (MLX5_FLOW_COLOR_GREEN << ASO_DSEG_SC_OFFSET)); sq->head++; sq->pi += 2;/* Each WQE contains 2 WQEBB's. */ rte_io_wmb(); diff --git a/drivers/net/mlx5/mlx5_flow_meter.c b/drivers/net/mlx5/mlx5_flow_meter.c index 753d4abd61..382b8bcdeb 100644 --- a/drivers/net/mlx5/mlx5_flow_meter.c +++ b/drivers/net/mlx5/mlx5_flow_meter.c @@ -144,13 +144,19 @@ mlx5_flow_meter_profile_validate(struct rte_eth_dev *dev, if (profile->alg == RTE_MTR_SRTCM_RFC2697) { if (priv->config.hca_attr.qos.flow_meter_old) { /* Verify support for flow meter parameters. */ - if (profile->srtcm_rfc2697.cir > 0 && - profile->srtcm_rfc2697.cir <= MLX5_SRTCM_CIR_MAX && - profile->srtcm_rfc2697.cbs > 0 && - profile->srtcm_rfc2697.cbs <= MLX5_SRTCM_CBS_MAX && - profile->srtcm_rfc2697.ebs <= MLX5_SRTCM_EBS_MAX) - return 0; - else + if (priv->sh->meter_aso_en && profile->packet_mode) { + if (profile->srtcm_rfc2697.cir > 0 && + (profile->srtcm_rfc2697.cir << + MLX5_MTRS_PPS_MAP_BPS_SHIFT) + <= MLX5_SRTCM_CIR_MAX && + profile->srtcm_rfc2697.cbs > 0 && + (profile->srtcm_rfc2697.cbs << + MLX5_MTRS_PPS_MAP_BPS_SHIFT) + <= MLX5_SRTCM_CBS_MAX && + (profile->srtcm_rfc2697.ebs << + MLX5_MTRS_PPS_MAP_BPS_SHIFT) + <= MLX5_SRTCM_EBS_MAX) + return 0; return -rte_mtr_error_set (error, ENOTSUP, RTE_MTR_ERROR_TYPE_MTR_PARAMS, @@ -158,6 +164,22 @@ mlx5_flow_meter_profile_validate(struct rte_eth_dev *dev, profile->srtcm_rfc2697.ebs ? "Metering value ebs must be 0." : "Invalid metering parameters."); + } + if (profile->srtcm_rfc2697.cir > 0 && + profile->srtcm_rfc2697.cir <= + MLX5_SRTCM_CIR_MAX && + profile->srtcm_rfc2697.cbs > 0 && + profile->srtcm_rfc2697.cbs <= + MLX5_SRTCM_CBS_MAX && + profile->srtcm_rfc2697.ebs <= + MLX5_SRTCM_EBS_MAX) + return 0; + return -rte_mtr_error_set(error, ENOTSUP, + RTE_MTR_ERROR_TYPE_MTR_PARAMS, + NULL, + profile->srtcm_rfc2697.ebs ? + "Metering value ebs must be 0." : + "Invalid metering parameters."); } } return -rte_mtr_error_set(error, ENOTSUP, @@ -241,20 +263,36 @@ mlx5_flow_meter_xbs_man_exp_calc(uint64_t xbs, uint8_t *man, uint8_t *exp) */ static int mlx5_flow_meter_param_fill(struct mlx5_flow_meter_profile *fmp, - struct rte_mtr_error *error) + struct mlx5_priv *priv, struct rte_mtr_error *error) { struct mlx5_flow_meter_srtcm_rfc2697_prm *srtcm = &fmp->srtcm_prm; uint8_t man, exp; uint32_t cbs_exp, cbs_man, cir_exp, cir_man; uint32_t ebs_exp, ebs_man; + uint64_t cir, cbs, ebs; if (fmp->profile.alg != RTE_MTR_SRTCM_RFC2697) return -rte_mtr_error_set(error, ENOTSUP, RTE_MTR_ERROR_TYPE_METER_PROFILE, NULL, "Metering algorithm not supported."); + if (!priv->sh->meter_aso_en && fmp->profile.packet_mode) + return -rte_mtr_error_set(error, ENOTSUP, + RTE_MTR_ERROR_TYPE_METER_PROFILE, + NULL, "Metering algorithm packet mode not supported."); + if (priv->sh->meter_aso_en && fmp->profile.packet_mode) { + cir = fmp->profile.srtcm_rfc2697.cir << + MLX5_MTRS_PPS_MAP_BPS_SHIFT; + cbs = fmp->profile.srtcm_rfc2697.cbs << + MLX5_MTRS_PPS_MAP_BPS_SHIFT; + ebs = fmp->profile.srtcm_rfc2697.ebs << + MLX5_MTRS_PPS_MAP_BPS_SHIFT; + } else { + cir = fmp->profile.srtcm_rfc2697.cir; + cbs = fmp->profile.srtcm_rfc2697.cbs; + ebs = fmp->profile.srtcm_rfc2697.ebs; + } /* cir = 8G * cir_mantissa * 1/(2^cir_exponent)) Bytes/Sec */ - mlx5_flow_meter_cir_man_exp_calc(fmp->profile.srtcm_rfc2697.cir, - &man, &exp); + mlx5_flow_meter_cir_man_exp_calc(cir, &man, &exp); /* Check if cir mantissa is too large. */ if (exp > ASO_DSEG_CIR_EXP_MASK) return -rte_mtr_error_set(error, ENOTSUP, @@ -264,8 +302,7 @@ mlx5_flow_meter_param_fill(struct mlx5_flow_meter_profile *fmp, cir_man = man; cir_exp = exp; /* cbs = cbs_mantissa * 2^cbs_exponent */ - mlx5_flow_meter_xbs_man_exp_calc(fmp->profile.srtcm_rfc2697.cbs, - &man, &exp); + mlx5_flow_meter_xbs_man_exp_calc(cbs, &man, &exp); /* Check if cbs mantissa is too large. */ if (exp > ASO_DSEG_EXP_MASK) return -rte_mtr_error_set(error, ENOTSUP, @@ -278,8 +315,7 @@ mlx5_flow_meter_param_fill(struct mlx5_flow_meter_profile *fmp, cbs_man << ASO_DSEG_CBS_MAN_OFFSET | cir_exp << ASO_DSEG_CIR_EXP_OFFSET | cir_man); - mlx5_flow_meter_xbs_man_exp_calc(fmp->profile.srtcm_rfc2697.ebs, - &man, &exp); + mlx5_flow_meter_xbs_man_exp_calc(ebs, &man, &exp); /* Check if ebs mantissa is too large. */ if (exp > ASO_DSEG_EXP_MASK) return -rte_mtr_error_set(error, ENOTSUP, @@ -319,11 +355,15 @@ mlx5_flow_mtr_cap_get(struct rte_eth_dev *dev, RTE_MTR_ERROR_TYPE_UNSPECIFIED, NULL, "Meter is not supported"); memset(cap, 0, sizeof(*cap)); - if (priv->sh->meter_aso_en) + if (priv->sh->meter_aso_en) { /* 2 meters per one ASO cache line. */ cap->n_max = 1 << (qattr->log_max_num_meter_aso + 1); - else + cap->srtcm_rfc2697_packet_mode_supported = 1; + } else { cap->n_max = 1 << qattr->log_max_flow_meter; + cap->srtcm_rfc2697_packet_mode_supported = 0; + } + cap->srtcm_rfc2697_byte_mode_supported = 1; cap->n_shared_max = cap->n_max; cap->identical = 1; cap->shared_identical = 1; @@ -384,7 +424,7 @@ mlx5_flow_meter_profile_add(struct rte_eth_dev *dev, fmp->id = meter_profile_id; fmp->profile = *profile; /* Fill the flow meter parameters for the PRM. */ - ret = mlx5_flow_meter_param_fill(fmp, error); + ret = mlx5_flow_meter_param_fill(fmp, priv, error); if (ret) goto error; /* Add to list. */ -- 2.27.0