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 9B693455C0; Mon, 8 Jul 2024 04:46:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 80D8C40E11; Mon, 8 Jul 2024 04:46:19 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2112.outbound.protection.outlook.com [40.107.243.112]) by mails.dpdk.org (Postfix) with ESMTP id E7CC140DDC for ; Mon, 8 Jul 2024 04:46:17 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KvsyCAZB9t4SR3rJhnfIqw7iDhPz2+jUEmb3lziEDuh5kxmhb9BE9reGv1IzI8iB2Foic8bdKajyHPjrzl+PkY0VVZoum043PUQWp8KoZPsXpE0SQn9MUU4BX56kCXrf9VITwoO/DZCVnyrucYmWNBQs/uB7Dt7UWw4BqbCHie7TCrzc/ipmYN6NUjaABA58p7zHFoVUs2FfJ4QoKWacVgUQD2pV+2ec+j2AYwC6rhmklZA8V8aTz7KIPSt+xo3aLBz8z6j+/YO/e5zaE/lQTW0FOtFRHIQ3Q7j3geNVuZwyYGIOBfLgsjgUNXmblXQSmGbARPKnGbBs+32D4RMIWg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZQA0KGAEuwSJpYciM+EKd77Xyrz7K9jwjMf91Hm/D5Q=; b=lOg0LOx8suTZBUZX3kYBng/uRfiV6LLoNSo2oBpHw38++WwU00iRDD9dC7iPXdeJcEXtmZ8/8CqIbHGPNW6bFOR/kTi1XWNTjVyIBEgyKC0+eS6bnrm9IpFOcWPDzdh9a4+RG6GuWIGjIWKi9opb6E8lRpLG/IFF4yJu6uOgh0uZ0ryNB8LjZ+U9bBEUx4fSearT1jCUs4vN4oKr8o3i/6XSEb4bt6W/ayeNQ8L9C1feC+E6yDrueBF8uGDl3QVG3i9wuVkhfdXy2/dZgV8/bT5wVBFhwFzl+ZdpLKP5UI7B6bBnNRUUb9TbcuH9S0CF+NKPQpY4Wy6r9IV2qt3ucw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZQA0KGAEuwSJpYciM+EKd77Xyrz7K9jwjMf91Hm/D5Q=; b=LemCceg2Gq33AvgsX0P2QK3hv0luXRcFPfYBQ0prVi49VzWVYSI/CyFZaYjYmAUr3aW+Iqcw3U3BRXUSPTvQDW0eq8uNzV+Xk2ojrizrogeKsoM95mEfFTZN2In++mNkkgMNdcst0XjmRNeGmoV/+oaab0/Gjh3fLBETb1O5cqo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by SA1PR13MB5069.namprd13.prod.outlook.com (2603:10b6:806:1a3::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Mon, 8 Jul 2024 02:46:16 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%4]) with mapi id 15.20.7741.033; Mon, 8 Jul 2024 02:46:16 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v2 6/7] net/nfp: add trace point about flow rule pattern Date: Mon, 8 Jul 2024 10:45:42 +0800 Message-Id: <20240708024543.77126-7-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240708024543.77126-1-chaoyong.he@corigine.com> References: <20240619100754.3480077-1-chaoyong.he@corigine.com> <20240708024543.77126-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SJ0PR03CA0272.namprd03.prod.outlook.com (2603:10b6:a03:39e::7) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SA1PR13MB5069:EE_ X-MS-Office365-Filtering-Correlation-Id: 405e3bc3-7afa-4bdf-3596-08dc9ef8234b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HL5ZT4Woxs9AxZIHgh3D6psib3i4vbk9P5ntdA4d5eUaasRbb7Svo8YYa62X?= =?us-ascii?Q?AxLT5p/hWmNbIKSZsCuu6MhRHDSuj9quaVTnTtnM9Pap3fDsqtdsrCgNUVYs?= =?us-ascii?Q?CsVKdvwHrf+gsGzl9eVsCwhW7wEih63KudTqJOdsV2YbZfHTPxRI6zkUtPTw?= =?us-ascii?Q?kY3dlMAQLBpp4mRYbJOA16zi9jQxKl9tqOC7K51WnOfvFkBKp/ckGxMEnK9R?= =?us-ascii?Q?tLGiilw9okowhkPJdIzO36fZQVVQKQOpl3WxWPm6ZwbbH4mwy1F8hWaLg59F?= =?us-ascii?Q?eTms3LsuQH17uIur35GXPmu8Zr8xEy2AvrdNxlyQF9Zu+DJ71v4tI8v88OuO?= =?us-ascii?Q?+Dgpf0sS9qtHl2Z14EGKOXujUootPGLiG24rHqPlwHJ46NT5GYvjFOjCIDwf?= =?us-ascii?Q?FUKp4oc4NX9h1NnJEaG5k/tR9b3qoLfsV3qvYsH66tV1St1CO4kNYjkrid/t?= =?us-ascii?Q?AEcTKRB7IcOPZ4rtzYTSh7amKccbg37YNuTQS1nsz3xJG6BtjkALZtEhH71q?= =?us-ascii?Q?MkeY5hWuGefpUrwlxcIo4GK/WmZOSJf4ci+QSpUhWVnLsLP8lx9+V6ts79Ku?= =?us-ascii?Q?KXNn5Vx5AS0q1SGSqdq5RKdm1IG7whX3EzbFik40LH5RPB9hQrLOb0gqWDUG?= =?us-ascii?Q?Hc9UJtIHQXiHbaeSV/4PxRfvlQ1nSlMrJom4PjjVf89uwDwdG+WG3FwKtk2N?= =?us-ascii?Q?vPlVErkW1erD9UuB53niXnAca3Y+OIsKjYIAKYeSZSutGg1phq8fXOfMo+uD?= =?us-ascii?Q?ddT2cSMU+Oek6BT2u168Spndnc5l28LXmv8DFGtmf1yPsAPJNTqwgB5yt+OC?= =?us-ascii?Q?pAFdHQ/rw5U7tRSBmgY6Zf3i+2XayxL9m+xlcEr8JZiUha700e5M5fW+GDIR?= =?us-ascii?Q?7Rig5TRFQ+CWiXM/MiZ+N0W7IzRo6G3yfNbomATxla9KGg3y4TrufuXN0chj?= =?us-ascii?Q?vtygdtHe5NjD7fOdK2PjuNq1sC6JJvdluAjHxVe5QySRU8jlHN5Q5d2ASqcV?= =?us-ascii?Q?n4FbLKw45pOyjbE+XPPzjEcqRlD66MnvGM5lmZZo0ZH3aLsJj/BCPSd10p3w?= =?us-ascii?Q?eMyzZveyc1IF8kyuYNilXFR23tWERm4NOXN12JkB6u+4rYSUS9W0gHFu0PHE?= =?us-ascii?Q?JYv9z8xssYqIc0KBwp6wR0SWmDj0fnZY9La5PaqX+NpLC/dusktgx5GoAj1s?= =?us-ascii?Q?GlTRUQjSzmQsfp4/zC7Ez/f9XiGFErzJykFiolDoL1Oi7JnBJNl99YdAM2g5?= =?us-ascii?Q?+/8Fp+5LWJc82BQbeS7zuAoy6DgS9/fgYelp2EPvQ6cbQ8p8xBrTUwC6TP+q?= =?us-ascii?Q?T2ETe/Ve4ej4iYA+VNgOqWP+202sTihg48AFx5cLL1r9IWBWrGRrE5zjH/ki?= =?us-ascii?Q?FFUrowHJXA6tUkCnSWHYBSsFh32LMigZCa1vIIHTmDBqSTa9ow=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(52116014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?prab7AiQhzSL67B+91UQs7uEAgsq6fffyTCYOcKJudxFXx8LxkWY5tfPp2DO?= =?us-ascii?Q?41ZWDhnlmrb4m6VN9/NTHgpKjAnx4wC+Yb29NZI7NfceQZca/ukCfN10aAUm?= =?us-ascii?Q?5/Y/DnYK53L1kwNIYdOYI7hy0rQnRiBY6wz2XXkevZ7oOuYHW/sZL/Kj4beq?= =?us-ascii?Q?gM4/ZmIeXXgKaHnQ8gP/B1mdqFdwx/hQjbbiVppG3JkG/2DZ700FIRFWE3lo?= =?us-ascii?Q?Jkor/i5EeD2UPuJdp/Qo3NOsm0mnhTKj3wltnUsOorbnn7IqJ0RwXTn3eG1i?= =?us-ascii?Q?cO0b3ZyfH/nwcirn4vAVkOWhpjUEZPudSQVvlHO0xsiZBzDsfwb70p2W2Hkj?= =?us-ascii?Q?nsHT7+jZ2aeQM5xKcKBjfW+3BfNmqG0Grzimvf/5REja+iZN5EvZd7D7JuRP?= =?us-ascii?Q?QmpcWLkfhn61TLKhn49hIl+jVq+imvAXVvrpzXacMLMxaim8G6q3fp0lTIDr?= =?us-ascii?Q?SQ5EAThtdmD78hxdYajn2hLKgc/Q+PLYwjFVANDrqS+eIaVD/tpHR0O3hksm?= =?us-ascii?Q?smHkqTuXbvx/yfoUimOLUmd63oGKNjHpd1F9gigNDUKijMKByCQld3fVn+9P?= =?us-ascii?Q?lcpJea402FLy6OW2Lnbvd7KzRTI56muvbVq9b+MpsZJUhBIdlKwUdkjXXOL4?= =?us-ascii?Q?3wuk/IYdoVhhS6dyZzZUBhqX92U1JWmh8Zh4ql5yvEBnCtCvx+sg4yhfFhR8?= =?us-ascii?Q?G4o5//gs35J58R9MUssnwV7KS2eorkb09YBW4E2Txxkr0ys87SjIMkX0BEi3?= =?us-ascii?Q?Vfzkaw19bvvdSzZRhbKPrQA3V3yofK76IQaZVP2nGXdlrD8appPySMvf+dMf?= =?us-ascii?Q?o58F2vcVbEAECPIlRCKrl35HTKPeT318aND0/Fo81WQ/TmoIH96iAghF0fjR?= =?us-ascii?Q?0CPuh+6lcVqx4M4mSFYpbkyrsl/FxjzrRREvbewxe+PLUYl+9ayPlnou9nAV?= =?us-ascii?Q?4BQIxZ9ZIkMA+x3NA4tlnTfh9umTrItJLEfCziTwBDIKuN53qzm10HU9NsDB?= =?us-ascii?Q?CWA8Q3hfWdhPQJ8oLwZnJbNTL5a8QoVDD6NXQkT5zsdrro6lR3Jctp5VcxEf?= =?us-ascii?Q?BKLLvDBIgAlnwhnle/Yy8G4eJGgJk0u2XXmlckC4W6IaS4CHLbf3CI0iI9im?= =?us-ascii?Q?dAm2dayS+viQ1pnED8FgSi4adtdSekgL44ocDc7PDrVe0TDNWBn4B/2morpd?= =?us-ascii?Q?CJ8c/e7KF/+H89PpJVgggW/bkPKLp0/hJy1XufNTmpQkBURMGyX3DjE2m6Ed?= =?us-ascii?Q?9hDorJ7V0Sx0zimnr5TCCR5ErcAyAlnLcRCOJKet2z4LsWaEyVz48WzFFdR9?= =?us-ascii?Q?6yu+j+n/Uf0ozsyQPmcVZX5cTlTbI8KiRny0M7T6lqikQF7RT6G1gElHoR1b?= =?us-ascii?Q?mhCmLuD7wU116SrMfpji7XYxGOSMgh12qa5zveul6E9aas4swbMHxMBFlm1K?= =?us-ascii?Q?OqARJgoyyaAneDPREYVWpgNKvYKAfAHN93GE2BgUvAkvCKkqpHTcyyFk39+0?= =?us-ascii?Q?cqUrX3L6Gap5z2Ax12n0VCxmXlbrYMVlX7DeZrXEQSENMtbRueV2kbNEAkWT?= =?us-ascii?Q?XzQx11woDi6KiiGiSjSo/HTU1i5nPpvP01GD7AhQMNP1gSiXrRVmP1i2QLe4?= =?us-ascii?Q?Dw=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 405e3bc3-7afa-4bdf-3596-08dc9ef8234b X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2024 02:46:16.3678 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qCIU8Fy6fSJVFEKnNFflfgJIoGu17HSc0pZBfMBkA1EXR9SOmo26nkt82OIrAO+FrSPqvvsnbRtObyMbuIe2KPagLlrUoqDGPClsEfzUXD8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB5069 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 11 trace points of control message related with flow rule pattern. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/flower/nfp_flower_cmsg.c | 152 +++++++++++++++++ drivers/net/nfp/nfp_trace.c | 33 ++++ drivers/net/nfp/nfp_trace.h | 199 +++++++++++++++++++++++ 3 files changed, 384 insertions(+) diff --git a/drivers/net/nfp/flower/nfp_flower_cmsg.c b/drivers/net/nfp/flower/nfp_flower_cmsg.c index 9035a9df4f..3b492c94ce 100644 --- a/drivers/net/nfp/flower/nfp_flower_cmsg.c +++ b/drivers/net/nfp/flower/nfp_flower_cmsg.c @@ -189,12 +189,164 @@ nfp_flower_cmsg_port_mod(struct nfp_app_fw_flower *app_fw_flower, return 0; } +static bool +nfp_flower_trace_cmsg_flow_has_tunnel(uint8_t nfp_flow_key_layer, + uint32_t nfp_flow_key_layer2) +{ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_VXLAN) != 0) + return true; + + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_EXT_META) == 0) + return false; + + if ((nfp_flow_key_layer2 & (NFP_FLOWER_LAYER2_GENEVE | NFP_FLOWER_LAYER2_GRE)) != 0) + return true; + + return false; +} + +static void +nfp_flower_trace_cmsg_flow_pattern(char *cmsg, + char *end) +{ + char *start_p = cmsg; + + if (cmsg >= end) { + PMD_DRV_LOG(ERR, "Cmsg flow pattern parameter error"); + return; + } + + struct nfp_flower_meta_tci *meta_tci = (struct nfp_flower_meta_tci *)cmsg; + uint8_t nfp_flow_key_layer = meta_tci->nfp_flow_key_layer; + uint32_t nfp_flow_key_layer2 = 0; + + rte_pmd_nfp_trace_cmsg_flow_pattern_meta_tci(start_p); + start_p += sizeof(struct nfp_flower_meta_tci); + if (start_p >= end) + goto pattern_exit; + + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_EXT_META) != 0) { + struct nfp_flower_ext_meta *ext_meta = (struct nfp_flower_ext_meta *)start_p; + nfp_flow_key_layer2 = rte_be_to_cpu_32(ext_meta->nfp_flow_key_layer2); + rte_pmd_nfp_trace_cmsg_flow_pattern_ext_meta(start_p); + start_p += sizeof(struct nfp_flower_ext_meta); + if (start_p >= end) + goto pattern_exit; + } + + rte_pmd_nfp_trace_cmsg_flow_pattern_in_port(start_p); + start_p += sizeof(struct nfp_flower_in_port); + if (start_p >= end) + goto pattern_exit; + + /* L2 layer */ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_MAC) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_mac(start_p); + start_p += sizeof(struct nfp_flower_mac_mpls); + if (start_p >= end) + goto pattern_exit; + } + + /* L4 layer comes first */ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_TP) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_tp(start_p); + start_p += sizeof(struct nfp_flower_tp_ports); + if (start_p >= end) + goto pattern_exit; + } + + /* No tunnel, then L3 layer */ + if (!nfp_flower_trace_cmsg_flow_has_tunnel(nfp_flow_key_layer, nfp_flow_key_layer2)) { + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_IPV4) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4(start_p); + start_p += sizeof(struct nfp_flower_ipv4); + if (start_p != end) + PMD_DRV_LOG(ERR, "Cmsg flow pattern IPv4 length error"); + } else { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6(start_p); + start_p += sizeof(struct nfp_flower_ipv6); + if (start_p != end) + PMD_DRV_LOG(ERR, "Cmsg flow pattern IPv6 length error"); + } + + return; + } + + /* Tunnel layer */ + if ((nfp_flow_key_layer2 & NFP_FLOWER_LAYER2_TUN_IPV6) != 0) { + if ((nfp_flow_key_layer2 & NFP_FLOWER_LAYER2_GRE) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_gre_tun(start_p); + start_p += sizeof(struct nfp_flower_ipv6_gre_tun); + if (start_p >= end) + goto pattern_exit; + } else { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_udp_tun(start_p); + start_p += sizeof(struct nfp_flower_ipv6_udp_tun); + if (start_p >= end) + goto pattern_exit; + } + } else { + if ((nfp_flow_key_layer2 & NFP_FLOWER_LAYER2_GRE) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_gre_tun(start_p); + start_p += sizeof(struct nfp_flower_ipv4_gre_tun); + if (start_p >= end) + goto pattern_exit; + } else { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_udp_tun(start_p); + start_p += sizeof(struct nfp_flower_ipv4_udp_tun); + if (start_p >= end) + goto pattern_exit; + } + } + + /* Inner L2 layer */ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_MAC) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_mac(start_p); + start_p += sizeof(struct nfp_flower_mac_mpls); + if (start_p >= end) + goto pattern_exit; + } + + /* Inner L4 layer comes first */ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_TP) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_tp(start_p); + start_p += sizeof(struct nfp_flower_tp_ports); + if (start_p >= end) + goto pattern_exit; + } + + /* Inner L3 layer */ + if ((nfp_flow_key_layer & NFP_FLOWER_LAYER_IPV4) != 0) { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4(start_p); + start_p += sizeof(struct nfp_flower_ipv4); + if (start_p != end) { + PMD_DRV_LOG(ERR, "Cmsg flow pattern IPv4 length error"); + return; + } + } else { + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6(start_p); + start_p += sizeof(struct nfp_flower_ipv6); + if (start_p != end) { + PMD_DRV_LOG(ERR, "Cmsg flow pattern IPv6 length error"); + return; + } + } + + return; + +pattern_exit: + if (start_p != end) + PMD_DRV_LOG(ERR, "Cmsg flow pattern overlap"); +} + static void nfp_flower_trace_cmsg_flow(const char *msg, struct nfp_fl_payload *payload) { rte_pmd_nfp_trace_cmsg_flow(msg); rte_pmd_nfp_trace_cmsg_flow_meta(payload->meta); + nfp_flower_trace_cmsg_flow_pattern(payload->unmasked_data, payload->mask_data); + nfp_flower_trace_cmsg_flow_pattern(payload->mask_data, payload->action_data); } int diff --git a/drivers/net/nfp/nfp_trace.c b/drivers/net/nfp/nfp_trace.c index d49fb85259..61162f7563 100644 --- a/drivers/net/nfp/nfp_trace.c +++ b/drivers/net/nfp/nfp_trace.c @@ -40,5 +40,38 @@ RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_qos_rule, RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_meta, pmd.net.nfp.cmsg.flow.meta) +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_meta_tci, + pmd.net.nfp.cmsg.flow.pattern.meta_tci) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ext_meta, + pmd.net.nfp.cmsg.flow.pattern.ext_meta) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_in_port, + pmd.net.nfp.cmsg.flow.pattern.in_port) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_mac, + pmd.net.nfp.cmsg.flow.pattern.mac) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_tp, + pmd.net.nfp.cmsg.flow.pattern.tp) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4, + pmd.net.nfp.cmsg.flow.pattern.ipv4) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6, + pmd.net.nfp.cmsg.flow.pattern.ipv6) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_gre_tun, + pmd.net.nfp.cmsg.flow.pattern.ipv4_gre_tun) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_udp_tun, + pmd.net.nfp.cmsg.flow.pattern.ipv4_udp_tun) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_gre_tun, + pmd.net.nfp.cmsg.flow.pattern.ipv6_gre_tun) + +RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_udp_tun, + pmd.net.nfp.cmsg.flow.pattern.ipv6_udp_tun) + RTE_TRACE_POINT_REGISTER(rte_pmd_nfp_trace_cmsg_flow, pmd.net.nfp.cmsg.flow) diff --git a/drivers/net/nfp/nfp_trace.h b/drivers/net/nfp/nfp_trace.h index e0b8b0cee9..a5a7cc8faf 100644 --- a/drivers/net/nfp/nfp_trace.h +++ b/drivers/net/nfp/nfp_trace.h @@ -236,6 +236,205 @@ RTE_TRACE_POINT( rte_trace_point_emit_u32(meta->shortcut); ) +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_meta_tci, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_meta_tci *msg = cmsg; + + uint8_t nfp_flow_key_layer = msg->nfp_flow_key_layer; + uint8_t mask_id = msg->mask_id; + uint16_t tci = rte_be_to_cpu_16(msg->tci); + + rte_trace_point_emit_u8(nfp_flow_key_layer); + rte_trace_point_emit_u8(mask_id); + rte_trace_point_emit_u16(tci); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ext_meta, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ext_meta *msg = cmsg; + + uint32_t nfp_flow_key_layer2 = rte_be_to_cpu_32(msg->nfp_flow_key_layer2); + + rte_trace_point_emit_u32(nfp_flow_key_layer2); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_in_port, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_in_port *msg = cmsg; + + uint32_t in_port = rte_be_to_cpu_32(msg->in_port); + + rte_trace_point_emit_u32(in_port); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_mac, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_mac_mpls *msg = cmsg; + + uint8_t mac_dst_len = RTE_ETHER_ADDR_LEN; + uint8_t mac_src_len = RTE_ETHER_ADDR_LEN; + uint8_t *mac_dst = &msg->mac_dst[0]; + uint8_t *mac_src = &msg->mac_src[0]; + uint32_t mpls_lse = rte_be_to_cpu_32(msg->mpls_lse); + + rte_trace_point_emit_blob(mac_dst, mac_dst_len); + rte_trace_point_emit_blob(mac_src, mac_src_len); + rte_trace_point_emit_u32(mpls_lse); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_tp, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_tp_ports *msg = cmsg; + + uint16_t port_src = rte_be_to_cpu_16(msg->port_src); + uint16_t port_dst = rte_be_to_cpu_16(msg->port_dst); + + rte_trace_point_emit_u16(port_src); + rte_trace_point_emit_u16(port_dst); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv4 *msg = cmsg; + + uint8_t tos = msg->ip_ext.tos; + uint8_t proto = msg->ip_ext.proto; + uint8_t ttl = msg->ip_ext.ttl; + uint8_t flags = msg->ip_ext.flags; + uint32_t ipv4_src = rte_be_to_cpu_16(msg->ipv4_src); + uint32_t ipv4_dst = rte_be_to_cpu_16(msg->ipv4_dst); + + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(proto); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u8(flags); + rte_trace_point_emit_u32(ipv4_src); + rte_trace_point_emit_u32(ipv4_dst); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv6 *msg = cmsg; + + uint8_t tos = msg->ip_ext.tos; + uint8_t proto = msg->ip_ext.proto; + uint8_t ttl = msg->ip_ext.ttl; + uint8_t flags = msg->ip_ext.flags; + uint8_t ipv6_src_len = 16; + uint8_t *ipv6_src = &msg->ipv6_src[0]; + uint8_t ipv6_dst_len = 16; + uint8_t *ipv6_dst = &msg->ipv6_dst[0]; + + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(proto); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u8(flags); + rte_trace_point_emit_blob(ipv6_src, ipv6_src_len); + rte_trace_point_emit_blob(ipv6_dst, ipv6_dst_len); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_gre_tun, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv4_gre_tun *msg = cmsg; + + uint32_t src = rte_be_to_cpu_32(msg->ipv4.src); + uint32_t dst = rte_be_to_cpu_32(msg->ipv4.dst); + uint16_t tun_flags = rte_be_to_cpu_16(msg->tun_flags); + uint8_t tos = msg->ip_ext.tos; + uint8_t ttl = msg->ip_ext.ttl; + uint16_t ethertype = rte_be_to_cpu_16(msg->ethertype); + uint32_t tun_key = rte_be_to_cpu_32(msg->tun_key); + + rte_trace_point_emit_u32(src); + rte_trace_point_emit_u32(dst); + rte_trace_point_emit_u16(tun_flags); + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u16(ethertype); + rte_trace_point_emit_u32(tun_key); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv4_udp_tun, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv4_udp_tun *msg = cmsg; + + uint32_t src = rte_be_to_cpu_32(msg->ipv4.src); + uint32_t dst = rte_be_to_cpu_32(msg->ipv4.dst); + uint8_t tos = msg->ip_ext.tos; + uint8_t ttl = msg->ip_ext.ttl; + uint32_t tun_id = rte_be_to_cpu_32(msg->tun_id); + + rte_trace_point_emit_u32(src); + rte_trace_point_emit_u32(dst); + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u32(tun_id); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_gre_tun, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv6_gre_tun *msg = cmsg; + + uint8_t ipv6_src_len = 16; + uint8_t *ipv6_src = &msg->ipv6.ipv6_src[0]; + uint8_t ipv6_dst_len = 16; + uint8_t *ipv6_dst = &msg->ipv6.ipv6_dst[0]; + uint16_t tun_flags = rte_be_to_cpu_16(msg->tun_flags); + uint8_t tos = msg->ip_ext.tos; + uint8_t ttl = msg->ip_ext.ttl; + uint16_t ethertype = rte_be_to_cpu_16(msg->ethertype); + uint32_t tun_key = rte_be_to_cpu_32(msg->tun_key); + + rte_trace_point_emit_blob(ipv6_src, ipv6_src_len); + rte_trace_point_emit_blob(ipv6_dst, ipv6_dst_len); + rte_trace_point_emit_u16(tun_flags); + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u16(ethertype); + rte_trace_point_emit_u32(tun_key); +) + +RTE_TRACE_POINT( + rte_pmd_nfp_trace_cmsg_flow_pattern_ipv6_udp_tun, + RTE_TRACE_POINT_ARGS(void *cmsg), + + struct nfp_flower_ipv6_udp_tun *msg = cmsg; + + uint8_t ipv6_src_len = 16; + uint8_t *ipv6_src = &msg->ipv6.ipv6_src[0]; + uint8_t ipv6_dst_len = 16; + uint8_t *ipv6_dst = &msg->ipv6.ipv6_dst[0]; + uint8_t tos = msg->ip_ext.tos; + uint8_t ttl = msg->ip_ext.ttl; + uint32_t tun_id = rte_be_to_cpu_32(msg->tun_id); + + rte_trace_point_emit_blob(ipv6_src, ipv6_src_len); + rte_trace_point_emit_blob(ipv6_dst, ipv6_dst_len); + rte_trace_point_emit_u8(tos); + rte_trace_point_emit_u8(ttl); + rte_trace_point_emit_u32(tun_id); +) + RTE_TRACE_POINT( rte_pmd_nfp_trace_cmsg_flow, RTE_TRACE_POINT_ARGS(const char *name), -- 2.39.1