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 C9AB845D7F; Fri, 22 Nov 2024 23:49:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 16EB640668; Fri, 22 Nov 2024 23:49:30 +0100 (CET) Received: from egress-ip11a.ess.de.barracuda.com (egress-ip11a.ess.de.barracuda.com [18.184.203.234]) by mails.dpdk.org (Postfix) with ESMTP id 54FF2402DA for ; Fri, 22 Nov 2024 23:49:28 +0100 (CET) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03lp2173.outbound.protection.outlook.com [104.47.51.173]) by mx-outbound11-137.eu-central-1a.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 22 Nov 2024 22:49:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y2H+5bmibDObx+cXKGHiuXoo/E9xM2Cq7M6E+SUMzZ9KuLAz1SK9Bcq6CLyWUF620n8gwru8bKW5h1NyV/dqn0CbNDMVqyA0j7+NNasyL10GEk5DpE2xxuK8YjBDTINPTHM0gUZijstAOh4GAV4A9qASRfijNSP0U9sdhplPLPZ8rQwPre/7zMRHJ+oSqPKmpQ1/s0VEuA4sNtHSeMIFrxdXLqM3jrUv4q36XQGaiotAdA1pvhcYXmBOUMVLGsb411WIbmcQHJIAgwcUGcqkuV0TuAmPONxp0n1Ai2kVUY+XzyOL71Ym6rqmrSctYKr2hnE6jhITs3Jq3v8kQA2iIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ri3sZgbdymMXuzQrcdNrDMApcrIK5zSx1PY7wu6pdE0=; b=t7nUYirTZz8ebB/qx3cll+yXsqoZVuYt4QOY9Ia5iGGMreGNbFEUXaeoAVNdcnnQOq5Quyo3OFgRLoxrdnHoeANvSpXnqHLhJVMd3T3VmUxcaSzylOInkmPma0pMrs6PgEfoB5f4nDHgDE7wGgHtiyFmAQvoEBFTSb3SVdTd2B1cHawU0x/6iwB5qmNxtBtAS7qQOxJ/Bpfb4bF20Z6abkuX2FR13X6k0V3sdLAekIpV0FBLcSgauwA3naJnhMom8wJ5LXmeweNQiYa3Vpu9p7HY+7Eur6R+CYOQwyWoRY4dy+DtFDjPMXzO7Wclxi53eay7t9EGKNye52KMJsAEMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 178.72.21.4) smtp.rcpttodomain=dpdk.org smtp.mailfrom=napatech.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=napatech.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=napatech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ri3sZgbdymMXuzQrcdNrDMApcrIK5zSx1PY7wu6pdE0=; b=ZTFQrREVeoKqywJcq0ZAJ7jiXCfqnPHRChED5prYncRrbngp5K5P+WJL2Wo1KX5E6uqeQFVzU6W5KMmUkbxYNnvBxVxEUH71+HKN7IEAZnqiIM/+Dp3UinDgUcLjw02cy26aOEg9LYRDEfe5NH0lVSkWAZBk33yb36ooBrxBO9s= Received: from DU6P191CA0069.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:53e::22) by GV1P190MB2134.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:1c6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Fri, 22 Nov 2024 22:49:20 +0000 Received: from DB1PEPF000509FC.eurprd03.prod.outlook.com (2603:10a6:10:53e:cafe::21) by DU6P191CA0069.outlook.office365.com (2603:10a6:10:53e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8182.16 via Frontend Transport; Fri, 22 Nov 2024 22:49:20 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 178.72.21.4) smtp.mailfrom=napatech.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=napatech.com; Received-SPF: Fail (protection.outlook.com: domain of napatech.com does not designate 178.72.21.4 as permitted sender) receiver=protection.outlook.com; client-ip=178.72.21.4; helo=localhost.localdomain; Received: from localhost.localdomain (178.72.21.4) by DB1PEPF000509FC.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server id 15.20.8182.16 via Frontend Transport; Fri, 22 Nov 2024 22:49:20 +0000 From: Serhii Iliushyk To: dev@dpdk.org Cc: mko-plv@napatech.com, sil-plv@napatech.com, ckm@napatech.com, andrew.rybchenko@oktetlabs.ru, ferruh.yigit@amd.com, stephen@networkplumber.org Subject: [PATCH v2 1/2] net/ntnic: fix incorrect error message Date: Fri, 22 Nov 2024 23:49:14 +0100 Message-ID: <20241122224916.432217-2-sil-plv@napatech.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20241122224916.432217-1-sil-plv@napatech.com> References: <20241122224916.432217-1-sil-plv@napatech.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB1PEPF000509FC:EE_|GV1P190MB2134:EE_ Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: cf638a10-db3a-440e-86fd-08dd0b47e73b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VE5IxueaHj95ykJooEsfcZrbCk0ahJELiAMX1aV497OiGoShwqgoJegwTBEH?= =?us-ascii?Q?9FDQKGrEX4IpfMMlzz9xzbZK047rPAHeVpSLX5YD8tLfY7TR5S4Du+XeuqgB?= =?us-ascii?Q?EKQoMtH4NFkEUahm0HOUxcM2gK7rkqnWPgq+aYvisUHAG5S3SGAJeM8n40cT?= =?us-ascii?Q?bmSU1xI1qESDpON7O3yOfQSmX4Dn1R8tBnNy6qJ+nWq/0V162ciiqVE4d4uq?= =?us-ascii?Q?dRm5XHhcq5c3OhLtm1NraYRCbh2gkXZaYjy5IHF9d7jjtNd2xhk9beEU9Xh6?= =?us-ascii?Q?zxLIGJX5BhpuMmBm/z8IXqu+WGvtyIBrdBfXVZbySYdcS5Z8wnlBIM1V/YB8?= =?us-ascii?Q?w9tRMsPWgX1MbRaRVu1qUrc6GixFYNc4Dn90fuWgRs7YMXNewiBblvezhDW/?= =?us-ascii?Q?dKIB8GnLNWPSBYS+V5dHAWXGBAUXADVXwtxnuEzgZSJwN3xC1gotSYMXZMMc?= =?us-ascii?Q?CoEaCAfbCsy6sqRfbP4VLFqByGHUpbS5wPkSuKaQxa9hRtAWc+zxSVbjZvKQ?= =?us-ascii?Q?Cq8MpMYDj9HCQ2CvVfejtS0l7AcI3FuaWotz8Abo3lq4Z/GKUIN65iF6h/KU?= =?us-ascii?Q?60lIlgs4MgoNzOG3fBeeNidIv7cCmryZrWfUt1ViNx6vJWGcQNjCh574voAE?= =?us-ascii?Q?VUafEHE6HC3EeKB7kyQKasRUnj/5NGAkbJ32k8rrgRNFYvZMPagYUFKUEsCJ?= =?us-ascii?Q?W8QATc47p0U7oGwwEEHUHFR9PcLorMNkUMxrm3QHZz6v28wqMlv1QZ8FiiQh?= =?us-ascii?Q?+i5v41futnuaLKCpWixAVqa2fekQiyyrdHhFVXb0AYP6VvoYO3UPTHQwvf3F?= =?us-ascii?Q?2JWoVcqVSyAPNdw7cYYvjN2PzPO11yYnwJLFqZ978T5GilNBJn7Lo0jfIxpX?= =?us-ascii?Q?URTNqyZJQFyUjrBPUBmGQ89JePyFxCYaDuEF7/4DtTtec8+39QGiiABidNaI?= =?us-ascii?Q?WfSO0782TzOVGB0Gp9kSocRrbXzntQVtGIYZemhVHTV1ZBzLM8KNJfme0NUt?= =?us-ascii?Q?jFlGuputT0TUJfdSq15xjdyXesUAtlE8dTxL/fn8NujCJywn4oMCFs04zEWl?= =?us-ascii?Q?KyLfrxqdFqUqXbfyo43S5C/SswpPlN3MlgQ+Jawhw9gax94WByUuD2tjNuGI?= =?us-ascii?Q?APMLW2iH2w3lPj67BkKjFj+qIJb6LrhZSgVgHdkmZdlrda9InSn7+VQBTBO/?= =?us-ascii?Q?ytAMHEEIBFmlke4SUdYv4+m3l9KpV6eUDFkDPdCgThZpO8wWBduNmGD510Ok?= =?us-ascii?Q?UUL/5sDmgL1LnGB+47cKbWK3uLQ1abiBksH7OPgP5RobQCySYPD196Z7nMuX?= =?us-ascii?Q?7rr8fDvG5vZ5We44pMZ7cgEdMcuwmpCv7bL1zEbBawqem7/DkwPUc75LoIRz?= =?us-ascii?Q?R+E+tAKe3qvjHUHk2/e6vWU/MyAEYye8yWxODwfEYyc9jwGS1bZzD3fAQ7mC?= =?us-ascii?Q?alv09xLbyrnyyqXELYQunmn8oOC1yTDO?= X-Forefront-Antispam-Report: CIP:178.72.21.4; CTRY:DK; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:localhost.localdomain; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: orcvFJL+HwEJsTsQWyz8VdO5hmL2QkLLLxY6Nqhc8DjAFfquvwMAvL47yQ5qhQvg7gkav2GEflYW0N6Cdkl38KyNZF4kyHyR+QCwn19v1ZHMh7GMnh9IbDMxVTgdtBZIcfnno2nHYbdlJwx9jyKZ2UVU/e955UokJxdNQWF9m8QDUo27go8DekdoiCjYxSCIAkkpJsWtvrAowLJdubAcjHYCUm0Ai3Vq1TDotQY+DpFw9cv2xMt069aF/BNkuHMvwLbXGjvyiAWjEjBLHCnfXo9JbxGDSIHMG8ehaGU4lGu0d9V+7CsDF+TMGyGaz/bNdj4wiHwFcxMAtTi/Az8Mqmg+Qf8TEtY82TO5Ar+qiMPvoElL57MtctkJLdw0l0JGI7bz9JP3k2mWMs4siXtwK4U7FS6SIKnWUmJ8jn3pZwp/TrN5qfPDEFzoJoYTD8fBozOped27PjoSG2w8+QE5bTM+HnYDXIJ1tLI4IEhD4vXLedsTDky9Mjt7UrPaVlln9wcnF20g6jTj4I/EeFHeJuUoaVMqjgGt1LskdWRLloBjgBa0f0s53kPYtD5/GIajLh/A0NHKJk8m4SI8913xuSdRmHFhQenb4AgpETfv5oX42GbGF/KAZeM/tGJ6yi8+wtiRPehiy7UapRh7aZESYAlPqSJvkE+ewwZwY0l7MXY= X-OriginatorOrg: napatech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2024 22:49:20.3843 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cf638a10-db3a-440e-86fd-08dd0b47e73b X-MS-Exchange-CrossTenant-Id: c4540d0b-728a-4233-9da5-9ea30c7ec3ed X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c4540d0b-728a-4233-9da5-9ea30c7ec3ed; Ip=[178.72.21.4]; Helo=[localhost.localdomain] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509FC.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1P190MB2134 X-BESS-ID: 1732315764-302953-13361-56540-1 X-BESS-VER: 2019.1_20241121.1615 X-BESS-Apparent-Source-IP: 104.47.51.173 X-BESS-Parts: H4sIAAAAAAACA4uuVkqtKFGyUioBkjpK+cVKVpamRqZAVgZQ0DjVxNTY1MLU0D IlzcDMJNEyMSnVMs3c0szYIjk5xThNqTYWACvH9hNBAAAA X-BESS-Outbound-Spam-Score: 0.50 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.260611 [from cloudscan9-193.eu-central-1a.ess.aws.cudaops.com] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.50 BSF_SC1_TG070 META: Custom Rule TG070 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.50 using account:ESS113687 scores of KILL_LEVEL=7.0 tests=BSF_SC1_TG070, BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 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 Add missed error messages to the list to avoid incorrect logs. Change order base initializers to index base initializers. Add static assertions to control the completeness of the list of messages. Fixes: 11ea97805ba1 ("net/ntnic: add minimal flow inline profile") Signed-off-by: Serhii Iliushyk --- v2 * Change order base initializers to index base initializers * Add static assertions to control the completeness of the list of messages. --- drivers/net/ntnic/include/flow_api.h | 3 +- drivers/net/ntnic/include/flow_api_engine.h | 3 +- drivers/net/ntnic/nthw/flow_api/flow_api.c | 164 ++++++++++++++------ 3 files changed, 118 insertions(+), 52 deletions(-) diff --git a/drivers/net/ntnic/include/flow_api.h b/drivers/net/ntnic/include/flow_api.h index d5382669da..dcad7f6839 100644 --- a/drivers/net/ntnic/include/flow_api.h +++ b/drivers/net/ntnic/include/flow_api.h @@ -168,7 +168,8 @@ enum flow_nic_err_msg_e { ERR_ACTION_MULTIPLE_PORT_ID_UNSUPPORTED = 40, ERR_RSS_TOO_LONG_KEY = 41, ERR_ACTION_AGE_UNSUPPORTED_GROUP_0 = 42, - ERR_MSG_NO_MSG + ERR_MSG_NO_MSG = 43, + ERR_MSG_END, }; void flow_nic_set_error(enum flow_nic_err_msg_e msg, struct rte_flow_error *error); diff --git a/drivers/net/ntnic/include/flow_api_engine.h b/drivers/net/ntnic/include/flow_api_engine.h index 5eace2614f..636c53b260 100644 --- a/drivers/net/ntnic/include/flow_api_engine.h +++ b/drivers/net/ntnic/include/flow_api_engine.h @@ -44,7 +44,8 @@ enum res_type_e { RES_TPE_RPL, RES_SCRUB_RCP, RES_COUNT, - RES_INVALID + RES_INVALID, + RES_END }; /* diff --git a/drivers/net/ntnic/nthw/flow_api/flow_api.c b/drivers/net/ntnic/nthw/flow_api/flow_api.c index d4993eb58a..842b0075ed 100644 --- a/drivers/net/ntnic/nthw/flow_api/flow_api.c +++ b/drivers/net/ntnic/nthw/flow_api/flow_api.c @@ -19,28 +19,31 @@ } const char *dbg_res_descr[] = { - /* RES_QUEUE */ "RES_QUEUE", - /* RES_CAT_CFN */ "RES_CAT_CFN", - /* RES_CAT_COT */ "RES_CAT_COT", - /* RES_CAT_EXO */ "RES_CAT_EXO", - /* RES_CAT_LEN */ "RES_CAT_LEN", - /* RES_KM_FLOW_TYPE */ "RES_KM_FLOW_TYPE", - /* RES_KM_CATEGORY */ "RES_KM_CATEGORY", - /* RES_HSH_RCP */ "RES_HSH_RCP", - /* RES_PDB_RCP */ "RES_PDB_RCP", - /* RES_QSL_RCP */ "RES_QSL_RCP", - /* RES_QSL_LTX */ "RES_QSL_LTX", - /* RES_QSL_QST */ "RES_QSL_QST", - /* RES_SLC_LR_RCP */ "RES_SLC_LR_RCP", - /* RES_FLM_FLOW_TYPE */ "RES_FLM_FLOW_TYPE", - /* RES_FLM_RCP */ "RES_FLM_RCP", - /* RES_TPE_RCP */ "RES_TPE_RCP", - /* RES_TPE_EXT */ "RES_TPE_EXT", - /* RES_TPE_RPL */ "RES_TPE_RPL", - /* RES_COUNT */ "RES_COUNT", - /* RES_INVALID */ "RES_INVALID" + [RES_QUEUE] = "RES_QUEUE", + [RES_CAT_CFN] = "RES_CAT_CFN", + [RES_CAT_COT] = "RES_CAT_COT", + [RES_CAT_EXO] = "RES_CAT_EXO", + [RES_CAT_LEN] = "RES_CAT_LEN", + [RES_KM_FLOW_TYPE] = "RES_KM_FLOW_TYPE", + [RES_KM_CATEGORY] = "RES_KM_CATEGORY", + [RES_HSH_RCP] = "RES_HSH_RCP", + [RES_PDB_RCP] = "RES_PDB_RCP", + [RES_QSL_RCP] = "RES_QSL_RCP", + [RES_QSL_QST] = "RES_QSL_QST", + [RES_SLC_LR_RCP] = "RES_SLC_LR_RCP", + [RES_FLM_FLOW_TYPE] = "RES_FLM_FLOW_TYPE", + [RES_FLM_RCP] = "RES_FLM_RCP", + [RES_TPE_RCP] = "RES_TPE_RCP", + [RES_TPE_EXT] = "RES_TPE_EXT", + [RES_TPE_RPL] = "RES_TPE_RPL", + [RES_SCRUB_RCP] = "RES_SCRUB_RCP", + [RES_COUNT] = "RES_COUNT", + [RES_INVALID] = "RES_INVALID" }; +static_assert(RTE_DIM(dbg_res_descr) == RES_END, + "The list of debug descriptions is not fully completed"); + static struct flow_nic_dev *dev_base; static rte_spinlock_t base_mtx = RTE_SPINLOCK_INITIALIZER; @@ -51,38 +54,99 @@ static rte_spinlock_t base_mtx = RTE_SPINLOCK_INITIALIZER; static const struct { const char *message; } err_msg[] = { - /* 00 */ { "Operation successfully completed" }, - /* 01 */ { "Operation failed" }, - /* 02 */ { "Memory allocation failed" }, - /* 03 */ { "Too many output destinations" }, - /* 04 */ { "Too many output queues for RSS" }, - /* 05 */ { "The VLAN TPID specified is not supported" }, - /* 06 */ { "The VxLan Push header specified is not accepted" }, - /* 07 */ { "While interpreting VxLan Pop action, could not find a destination port" }, - /* 08 */ { "Failed in creating a HW-internal VTEP port" }, - /* 09 */ { "Too many VLAN tag matches" }, - /* 10 */ { "IPv6 invalid header specified" }, - /* 11 */ { "Too many tunnel ports. HW limit reached" }, - /* 12 */ { "Unknown or unsupported flow match element received" }, - /* 13 */ { "Match failed because of HW limitations" }, - /* 14 */ { "Match failed because of HW resource limitations" }, - /* 15 */ { "Match failed because of too complex element definitions" }, - /* 16 */ { "Action failed. To too many output destinations" }, - /* 17 */ { "Action Output failed, due to HW resource exhaustion" }, - /* 18 */ { "Push Tunnel Header action cannot output to multiple destination queues" }, - /* 19 */ { "Inline action HW resource exhaustion" }, - /* 20 */ { "Action retransmit/recirculate HW resource exhaustion" }, - /* 21 */ { "Flow counter HW resource exhaustion" }, - /* 22 */ { "Internal HW resource exhaustion to handle Actions" }, - /* 23 */ { "Internal HW QSL compare failed" }, - /* 24 */ { "Internal CAT CFN reuse failed" }, - /* 25 */ { "Match variations too complex" }, - /* 26 */ { "Match failed because of CAM/TCAM full" }, - /* 27 */ { "Internal creation of a tunnel end point port failed" }, - /* 28 */ { "Unknown or unsupported flow action received" }, - /* 29 */ { "Removing flow failed" }, + [ERR_SUCCESS] = { + "Operation successfully completed" }, + [ERR_FAILED] = { + "Operation failed" }, + [ERR_MEMORY] = { + "Memory allocation failed" }, + [ERR_OUTPUT_TOO_MANY] = { + "Too many output destinations" }, + [ERR_RSS_TOO_MANY_QUEUES] = { + "Too many output queues for RSS" }, + [ERR_VLAN_TYPE_NOT_SUPPORTED] = { + "The VLAN TPID specified is not supported" }, + [ERR_VXLAN_HEADER_NOT_ACCEPTED] = { + "The VxLan Push header specified is not accepted" }, + [ERR_VXLAN_POP_INVALID_RECIRC_PORT] = { + "While interpreting VxLan Pop action, could not find a destination port" }, + [ERR_VXLAN_POP_FAILED_CREATING_VTEP] = { + "Failed in creating a HW-internal VTEP port" }, + [ERR_MATCH_VLAN_TOO_MANY] = { + "Too many VLAN tag matches" }, + [ERR_MATCH_INVALID_IPV6_HDR] = { + "IPv6 invalid header specified" }, + [ERR_MATCH_TOO_MANY_TUNNEL_PORTS] = { + "Too many tunnel ports. HW limit reached" }, + [ERR_MATCH_INVALID_OR_UNSUPPORTED_ELEM] = { + "Unknown or unsupported flow match element received" }, + [ERR_MATCH_FAILED_BY_HW_LIMITS] = { + "Match failed because of HW limitations" }, + [ERR_MATCH_RESOURCE_EXHAUSTION] = { + "Match failed because of HW resource limitations" }, + [ERR_MATCH_FAILED_TOO_COMPLEX] = { + "Match failed because of too complex element definitions" }, + [ERR_ACTION_REPLICATION_FAILED] = { + "Action failed. To too many output destinations" }, + [ERR_ACTION_OUTPUT_RESOURCE_EXHAUSTION] = { + "Action Output failed, due to HW resource exhaustion" }, + [ERR_ACTION_TUNNEL_HEADER_PUSH_OUTPUT_LIMIT] = { + "Push Tunnel Header action cannot output to multiple destination queues" }, + [ERR_ACTION_INLINE_MOD_RESOURCE_EXHAUSTION] = { + "Inline action HW resource exhaustion" }, + [ERR_ACTION_RETRANSMIT_RESOURCE_EXHAUSTION] = { + "Action retransmit/recirculate HW resource exhaustion" }, + [ERR_ACTION_FLOW_COUNTER_EXHAUSTION] = { + "Flow counter HW resource exhaustion" }, + [ERR_ACTION_INTERNAL_RESOURCE_EXHAUSTION] = { + "Internal HW resource exhaustion to handle Actions" }, + [ERR_INTERNAL_QSL_COMPARE_FAILED] = { + "Internal HW QSL compare failed" }, + [ERR_INTERNAL_CAT_FUNC_REUSE_FAILED] = { + "Internal CAT CFN reuse failed" }, + [ERR_MATCH_ENTROPHY_FAILED] = { + "Match variations too complex" }, + [ERR_MATCH_CAM_EXHAUSTED] = { + "Match failed because of CAM/TCAM full" }, + [ERR_INTERNAL_VIRTUAL_PORT_CREATION_FAILED] = { + "Internal creation of a tunnel end point port failed" }, + [ERR_ACTION_UNSUPPORTED] = { + "Unknown or unsupported flow action received" }, + [ERR_REMOVE_FLOW_FAILED] = { + "Removing flow failed" }, + [ERR_ACTION_NO_OUTPUT_DEFINED_USE_DEFAULT] = { + "No output queue specified. Ignore this flow offload and uses default queue"}, + [ERR_ACTION_NO_OUTPUT_QUEUE_FOUND] = { + "No output queue found"}, + [ERR_MATCH_UNSUPPORTED_ETHER_TYPE] = { + "Unsupported EtherType or rejected caused by offload policy"}, + [ERR_OUTPUT_INVALID] = { + "Destination port specified is invalid or not reachable from this NIC"}, + [ERR_MATCH_PARTIAL_OFFLOAD_NOT_SUPPORTED] = { + "Partial offload is not supported in this configuration"}, + [ERR_MATCH_CAT_CAM_EXHAUSTED] = { + "Match failed because of CAT CAM exhausted"}, + [ERR_MATCH_KCC_KEY_CLASH] = { + "Match failed because of CAT CAM Key clashed with an existing KCC Key"}, + [ERR_MATCH_CAT_CAM_FAILED] = { + "Match failed because of CAT CAM write failed"}, + [ERR_PARTIAL_FLOW_MARK_TOO_BIG] = { + "Partial flow mark too big for device"}, + [ERR_FLOW_PRIORITY_VALUE_INVALID] = { + "Invalid priority value"}, + [ERR_ACTION_MULTIPLE_PORT_ID_UNSUPPORTED] = { + "Multiple port_id actions for one flow is not supported"}, + [ERR_RSS_TOO_LONG_KEY] = { + "Too long hash key for RSS"}, + [ERR_ACTION_AGE_UNSUPPORTED_GROUP_0] = { + "Action AGE is not supported for flow in group 0"}, + [ERR_MSG_NO_MSG] = { + "Unknown error"}, }; +static_assert(RTE_DIM(err_msg) == ERR_MSG_END, + "The list of error messages is not fully completed."); + void flow_nic_set_error(enum flow_nic_err_msg_e msg, struct rte_flow_error *error) { assert(msg < ERR_MSG_NO_MSG); -- 2.45.0