From patchwork Sun May 5 06:42:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roi Dayan X-Patchwork-Id: 1931476 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=S+17fHUb; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VXFNn2ddPz1xnS for ; Sun, 5 May 2024 16:43:19 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6B64660717; Sun, 5 May 2024 06:43:16 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 53lVrhB41Rxf; Sun, 5 May 2024 06:43:15 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 2C70C605C0 Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=S+17fHUb Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id 2C70C605C0; Sun, 5 May 2024 06:43:15 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id DA8B1C007C; Sun, 5 May 2024 06:43:14 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id A3142C0037 for ; Sun, 5 May 2024 06:43:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 813A640639 for ; Sun, 5 May 2024 06:43:13 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 2WXQVSgHzriU for ; Sun, 5 May 2024 06:43:12 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:2009::600; helo=nam10-bn7-obe.outbound.protection.outlook.com; envelope-from=roid@nvidia.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org 20BFC4056E Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 20BFC4056E Authentication-Results: smtp4.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=S+17fHUb Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on20600.outbound.protection.outlook.com [IPv6:2a01:111:f403:2009::600]) by smtp4.osuosl.org (Postfix) with ESMTPS id 20BFC4056E for ; Sun, 5 May 2024 06:43:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HuYLI3p2kWbgW0jX6oRn0HB5Cu4rqBxP8SNQKLANKy+9EljJBHpIfgLVhJtszxhD8kEI47VOCdZ+k1ckA+zYxF+XoUidJvrCbJYHxEYaiYz/2m+E6GX/DqLPQouBwuosV/IS+fnc5sOIiZGQOKrLVMA0l0x0fkoizecLP96a+l0HFJcBtIeU6bM966BNZ+hJbylLQPPicLAZFcgcofa0Zv7suAYnyAoz5I4JFM4b+s2yDuBYAotGf9M5BzBylfZGqpWJ0NRhN3EDs9TPc5Eu6T5AHnH2C8mhpICFyk/9Q7mhlGumu5dwwx8Esze2Gu+G3//bxRm65MkdjAvbM/UW1Q== 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=YOdz/tDlTTDdNE4yCR+dYQiBMYFWx7XbSlUWeCfEWpE=; b=ckOKZAfR7Gsrfmov2pzCSVM1Ry3oYnCZ1rSqs9uJuyjq47thc2FHzvaCwfVknZ8l+9xT/mMglMXWUVnbUi6Ry5Q//DeeJe8M6841pU3tV+0PJ1yz87UiKLemHbGemzk4bDJynK5WzTS/RHzw7fwK+dmJCTnVbeJhKQo4Tv48bRXFSbWWKOj1KmSbjXpS26twBzuxefJdTjtMksCyMnyzcFeLQJoIrvYwDoCjtZ5iU4U1nN1Xu4AoBAAbNVWk9HD1tOMho/KDi7Umaxow+/stA1SQbj7puxwyNwCtQOr8BBOFqQgc4nVPIdJPed/fOwQLGVHUMCjjkGka5WIpdsCByQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=YOdz/tDlTTDdNE4yCR+dYQiBMYFWx7XbSlUWeCfEWpE=; b=S+17fHUbri5tWb0Rb8sCP9Djtfg9smmymO7hxUb+B5040MbagV5I2w3Mq5DPsVBDg3xBecgPDUrMjN3z3sGgoL0LDosjO2Hf5iwTHGcPVXYSBKEknyiLsnVXEfQPlR/tBYhUxmZ/Kbj6xAdzfvAT1k+dLhMGdLcBwCv5fVStEYTjDR4h8C0f/kzDSdKGsp/Hxm7tay1Hd1Z87V1LRByU0feNToT1i+/f/lar+gGJqOWx4Z86w4x1c2UAUo0llGRHpAEj0E0LRjs/HOes/mslRuBrXehih27mFmX7p85C1FessWFaNFcGj/XgdqNDtCwNvMH7pxoqJz1eds3OM+K1Cg== Received: from BY5PR20CA0024.namprd20.prod.outlook.com (2603:10b6:a03:1f4::37) by DS0PR12MB8317.namprd12.prod.outlook.com (2603:10b6:8:f4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.39; Sun, 5 May 2024 06:43:07 +0000 Received: from SJ1PEPF00001CE3.namprd05.prod.outlook.com (2603:10b6:a03:1f4:cafe::c5) by BY5PR20CA0024.outlook.office365.com (2603:10b6:a03:1f4::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.39 via Frontend Transport; Sun, 5 May 2024 06:43:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SJ1PEPF00001CE3.mail.protection.outlook.com (10.167.242.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.18 via Frontend Transport; Sun, 5 May 2024 06:43:05 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sat, 4 May 2024 23:43:00 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sat, 4 May 2024 23:42:59 -0700 Received: from mtr-vdi-198.wap.labs.mlnx (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Sat, 4 May 2024 23:42:58 -0700 To: Date: Sun, 5 May 2024 09:42:08 +0300 Message-ID: <20240505064209.2866336-1-roid@nvidia.com> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE3:EE_|DS0PR12MB8317:EE_ X-MS-Office365-Filtering-Correlation-Id: 30974a41-0b3a-4de8-656d-08dc6cce9e8e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|82310400017|36860700004|1800799015|376005; X-Microsoft-Antispam-Message-Info: Exn9whBLoiE443fWlA/N3xxa2POBda+TAY3u2kVJcLY2unHVNPUtJe056NMg6iemsST0gD891LIf9YhEHCnJmqP/wPTu9mXm15kt/b8ayK2fpO+g1NZsiQuy+qQldQxlNmFZ9rn0DRp44qOXuZAqV6S7U3pNULZPtoUCk5+pIvOERgSyp5dXKjDEOLdfO4Ap8ELoGqoXOcbSbKUjC1JSmxIHm996OEZzkqVwbBGr6y3k0y22cr8k3ODzKWq6zoLB55nsBcOh1pFND4T3tOE1E+N1m88dHJm3LefwA3/Tv/iFsigTuxnOjWVSU4htu05SnigB1w2w4jQxJV9vA/mEvYLFF0bbkikjE9hxN9tLo/cFOutNQScN+NRoMJs9SzyliBqhClnCU0ribIzQHxKwRBbLDg4AvBCzk9AIgcx6KWgnVHbPZ6/UzEvraO2nfKNGh0DMwPulMEBghX7keP0jUmojC/oIaa+4U4ui8L6MWv0M4ZCjS/D1ZSkOe3Td14S51jZtCIH+bOlnPEIylBkhyeRJGSjmq7AzePaFFii8Z1LY5b83f+J3ND4tYaeS3l3Mnrb9CzAJmelX8xhcKP7iuEcQyE/xVh+E4R4qZUWL8c7VA1yVn1LZY6FvoxvZVymjkJMoV0w1J+ZDM5+QIzj8uGSVx13hiSzsCGHh1oYdtn2Ts7qSgxqdtg2brhhnsJdV5N2xfGyeE93ZTCPZfRm/jmleWMqIL8qEgzqZxs/I8Nj7X0eT5GD3kXkuSMqYWxARnlylEgsnqlgxjufguKLsO05gcI+tfv0EhJD0zL7MjYCoN6qoscy17KHAEILowAWux84DKr0MKNAzXJzkvdn235lTzy0NsBSlEBv9fBPSnXuFuOIPnTVWySeCf7NBqMoRrJeHUIroh79vpOyXNNt8voTBF2+DUsCk8t/mwzKxgpUKjt55kHWLeuJl6rjRdZxO5t2fOS8rYXBtya9H5xZJCNVcg0oV7BiKdN+kWxqo9wV49rKLoA3rpk2u4CNU3+Q3lpp1dWrjOt8cDBxYqZKSUyYlmtWxq8pEpGEh/WUH38WV/R9wsdBNgnwKCsMWtGWWx3iErrioKgCsdt5PTR4x2lSY4AINLrUw4dg96CQ8/GVJOVe72O4TczP21pckNx60gAz8vbhCOHoOR2/gGMaFFcyerdwQnxBLu8QxOBRajv1j3gu/AZT03lTJstqP2OybfGBpCTpkwQKU2vBbHbwMrZOBJmZHf7w1M03uyHZlt6ClPsvc5KDTlE6Ms0AlB5c+LppQF9o8Ld6Sn8Q8W4qNtfeyu140R2woUvIDK8OIuy2IZ9OMVqeHMHpyy4lSpSnqrwZq403FDTVYHeQXlT9BGtNnFTRLDdeJkZS071gnjSEBgxGlxZoabn/tBq7o4R09 X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(82310400017)(36860700004)(1800799015)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2024 06:43:05.8806 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 30974a41-0b3a-4de8-656d-08dc6cce9e8e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8317 Cc: Eli Britstein , Maor Dickman Subject: [ovs-dev] [PATCH 1/2] flow: Return value from miniflow_extract() X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Roi Dayan via dev From: Roi Dayan Reply-To: Roi Dayan Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Eli Britstein Parsing of the packet has some validity checks. Return it as a return value. Signed-off-by: Eli Britstein Acked-by: Roi Dayan --- lib/flow.c | 6 +++++- lib/flow.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/flow.c b/lib/flow.c index 8e3402388cbc..417e0a63acd0 100644 --- a/lib/flow.c +++ b/lib/flow.c @@ -785,7 +785,7 @@ dump_invalid_packet(struct dp_packet *packet, const char *reason) * present and the packet has at least the content used for the fields * of interest for the flow, otherwise UINT16_MAX. */ -void +bool miniflow_extract(struct dp_packet *packet, struct miniflow *dst) { /* Add code to this function (or its callees) to extract new fields. */ @@ -803,6 +803,7 @@ miniflow_extract(struct dp_packet *packet, struct miniflow *dst) uint8_t nw_frag, nw_tos, nw_ttl, nw_proto; uint8_t *ct_nw_proto_p = NULL; ovs_be16 ct_tp_src = 0, ct_tp_dst = 0; + bool rv = false; /* Metadata. */ if (flow_tnl_dst_is_set(&md->tunnel)) { @@ -1027,6 +1028,7 @@ miniflow_extract(struct dp_packet *packet, struct miniflow *dst) sizeof(uint64_t)); } } + rv = true; goto out; } @@ -1166,8 +1168,10 @@ miniflow_extract(struct dp_packet *packet, struct miniflow *dst) } } } + rv = true; out: dst->map = mf.map; + return rv; } static ovs_be16 diff --git a/lib/flow.h b/lib/flow.h index 75a9be3c19d3..f91e074e2279 100644 --- a/lib/flow.h +++ b/lib/flow.h @@ -541,7 +541,7 @@ struct pkt_metadata; /* The 'dst' must follow with buffer space for FLOW_U64S 64-bit units. * 'dst->map' is ignored on input and set on output to indicate which fields * were extracted. */ -void miniflow_extract(struct dp_packet *packet, struct miniflow *dst); +bool miniflow_extract(struct dp_packet *packet, struct miniflow *dst); void miniflow_map_init(struct miniflow *, const struct flow *); void flow_wc_map(const struct flow *, struct flowmap *); size_t miniflow_alloc(struct miniflow *dsts[], size_t n, From patchwork Sun May 5 06:42:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roi Dayan X-Patchwork-Id: 1931477 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=XIn3Kfjg; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VXFNq5xJDz1xnS for ; Sun, 5 May 2024 16:43:23 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 705AD60743; Sun, 5 May 2024 06:43:19 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id zvSz0TKACglR; Sun, 5 May 2024 06:43:18 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org E0AE86070E Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=XIn3Kfjg Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id E0AE86070E; Sun, 5 May 2024 06:43:17 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id B4932C007C; Sun, 5 May 2024 06:43:17 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 9D9C1C0037 for ; Sun, 5 May 2024 06:43:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 802AA4032A for ; Sun, 5 May 2024 06:43:14 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id sSPylgQBWRUM for ; Sun, 5 May 2024 06:43:13 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:2415::600; helo=nam11-dm6-obe.outbound.protection.outlook.com; envelope-from=roid@nvidia.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org DB6FE402E6 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org DB6FE402E6 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=XIn3Kfjg Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on20600.outbound.protection.outlook.com [IPv6:2a01:111:f403:2415::600]) by smtp2.osuosl.org (Postfix) with ESMTPS id DB6FE402E6 for ; Sun, 5 May 2024 06:43:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bq+eXKELRvKX5Qj1AOeFCyKwHpD6Z/gmAz9DZku1rWaFGqQxxHQbgRYsKtA1TXvD4OKkH1Eve2aQ8cyPVwLu/rEGG25xnOmud2RuDgM0/Hs3PdSukQ4KzKQf0xiC0dOEi0QYNybUibBPE/9ym3j+fJnmswGPfpVujTM69Ya1ubXjseQARuYmdcWWDoZpskesog9DIpZIc0NOFN6K72Img+GbaN1WZDbUzUS0gtj+WKvHeJuKh7jPJhYy++C6+fl+ty68o3RmbgTROWLdAwCkx1QR4dz3vYRWp3rgg5So5buaybiOOCDjzDNCd07X0QARloVO78Pd3Cw9XBaa/NUoRg== 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=VHYVnC25LQC5G4f5VF2s7W8CQIXBNUNcVd0SK91vIF0=; b=a5rAPlpuIwKKfpBnEBEYRMDrK5lONqHGtLEQgeO0Kciq4coXtyEcnS+Q3NhcKUqdTk64FjXpWIHBj++G+XctW7jSbzPDhakf3zBUuWXbFX0/lJaFeyqRD4+FU9x6Dnu9Y+f88EdXEJuMAEjQgveC/Rk0N+LEINomsopdntkg7OMh95tgx+X+EC0+o+4OMrXL1dEpya4a8jDjpSzP+vhecfxJPuuC9Vet/emVZtCE3Y9nFfLuZfIvilkiSaRM97MBpEMUaAb0bKviPwcEg9BOQ4HXipC3kSrNBQtMMQzEwAdx9OG6/kbGIuzjF8xYhhwxvP1OU1FobYBIFPbShpZfIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=VHYVnC25LQC5G4f5VF2s7W8CQIXBNUNcVd0SK91vIF0=; b=XIn3Kfjgs6hhbT5sT2Owp5Q2Kxo+UxjWahmRxj1dVmDjdM1BjmvYHkleO1PuHpwONA3jhw+bZN2j3vOUvm/D1tF1pS4SBGdg3o1D5tceELAr31eVF1ZRyTAB1/DUahLyG+Rn1VIh+pAnw8J9Zm89zzfRqa9ZdZSzIxZwcUDjzh6OZMmopfsZXsxd1QQQzvH/SN70z6tI1Q8c+N0mUKaVzzJLEzfmKmPfIYPtemrh0jzK+w7W+/29JcnUXX3c+7c6ZgP4vTZon8QZ2XBsIdWz7VhxNDZRXOHNT5gGr8OXnApmaOo0/88HvZk1xfcMX5hzjF7bvpKjfj5ZZJ0a0J/1/A== Received: from SN6PR08CA0032.namprd08.prod.outlook.com (2603:10b6:805:66::45) by SJ2PR12MB8183.namprd12.prod.outlook.com (2603:10b6:a03:4f4::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.39; Sun, 5 May 2024 06:43:08 +0000 Received: from SN1PEPF0002BA4C.namprd03.prod.outlook.com (2603:10b6:805:66:cafe::77) by SN6PR08CA0032.outlook.office365.com (2603:10b6:805:66::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.39 via Frontend Transport; Sun, 5 May 2024 06:43:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SN1PEPF0002BA4C.mail.protection.outlook.com (10.167.242.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.18 via Frontend Transport; Sun, 5 May 2024 06:43:07 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sat, 4 May 2024 23:43:02 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Sat, 4 May 2024 23:43:01 -0700 Received: from mtr-vdi-198.wap.labs.mlnx (10.127.8.13) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Sat, 4 May 2024 23:43:00 -0700 To: Date: Sun, 5 May 2024 09:42:09 +0300 Message-ID: <20240505064209.2866336-2-roid@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240505064209.2866336-1-roid@nvidia.com> References: <20240505064209.2866336-1-roid@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002BA4C:EE_|SJ2PR12MB8183:EE_ X-MS-Office365-Filtering-Correlation-Id: fa899f70-49ef-458f-2fca-08dc6cce9fdd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|376005|36860700004|82310400017|1800799015; X-Microsoft-Antispam-Message-Info: u4wsuQ2SEM00oX5rxgFKyIEcqwYE+4Ntc2gSU0EFjp9j8H9XuBpA32kVE6BUtiNhvGvuOwfL6llVYlzN5dFGxHLOEEI2P26uXDtkBRpS2iCREwoN5KhE7yyQUi0A4IpuDnpmxQrkZmlWLzZzRap4Z/pRdO78J2KtHCIk+jX6cp/bfhFZaVtl3psbxC7xmxQ3qpNKwPGfamP9vXtazDVSbBjhwKi9TnaowMkSWSwtTHxcGmzirXPUaYpgoHklIkzt9NWHlZ1kC4vP2w0AhrVoeg0SYEe9UAza8vpiAW74on4gTYzZpTjshThLjfsVz6bPCxVOIK8op8M/le5hqrotjsPz41geGTIFp0HFp52CHYcG27k77jq8oXKMeNM6jIQ8Rop6P6QTSx3UmSd1yL1KIc+eE4mCG5KNl3oWgho9IBEoLZEy0ySzNr1HIsnTrdusCRK32CYuzvaBLR66mMoAvCYugwmX1CuVFu6UACI9UJUh/9rOURF1s4gx5BeEakLGGtY/zx2vVOz6CdHExfR/HVbAdJg5IdcijUMsKtLRgjQvWuH+8fs8qV8CD/qHf9ZPwMziToHLvQHdJBaPAQgPhcAlV6EM3ae3+nt1EfvA7Bvqezia9B4/ZDX/xS4cgPQrqMtPgMZhLoUka1LEmQ2ZHndqRKIZMUefbm2pDGgtnRe22wsAJ/KxsKMCIHvg+jAVABZND2QX5vDG25g6QRN23GF+ecYrKtRVvwp5uMwBbvs3eYA5wtgVlCan4v+CYg0yC/H4ZN66TiAN+0+6nSPsJyDFz8iHl8XSwTYisg7k08iSrK67ejsf/Kev5WnsXWqeeIpBtgG7VXCdbswRPeiQUjgcMhacIklD/1mmhgWn+JMejIW8z19NODNbyRLV9cikZXNls95qwkI8yyqgA8Nh600B8kxwPWV7c4DsguSEdbMHtCu2yP2a2QJkMcUS7/iEojTWWGozf/JGVrIZOzzuTymGDt7wFlDkrp5d8yfMeMOe2hG2vSt20uGLzq8kKeMQ7uaMXw7gxY/EjHwh+627SYDrH0A/PJ7PAGjsvQd+v6V7gdaWi5tUUrwmkhkhCpY7dWD5A2pE560BsP8ctCHrhNW47Q3m28VCvcIHPqCSgrBy1jI0qKhFRr84nDfO370tcYMacpBaabn4cImQ8lhho/WGx9zIHSd4c/qBiqWwmA1B8UWsWUOsjs8P2ufUQxBkhQk+BISMN60B8SdVRYdVIdWFzDZKy5a8xbVdKGvPZlQ3zJS5Fbze1d3uKikgmd18b7VgFd/17o3p9vsiFM6Gse5Vp1Sow6QcoanacSdrebV9O2GQmBgdlU3qYmqVjrNEpofzYqMdrr4Uw0LOhwLDMltoDid88JKsP9rfoa1Irbx8DgMIS8Dau/Xn+ZX+pwyw X-Forefront-Antispam-Report: CIP:216.228.118.233; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge2.nvidia.com; CAT:NONE; SFS:(13230031)(376005)(36860700004)(82310400017)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2024 06:43:07.9497 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa899f70-49ef-458f-2fca-08dc6cce9fdd X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.233]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002BA4C.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8183 Cc: Eli Britstein , Maor Dickman Subject: [ovs-dev] [PATCH 2/2] dpif-netdev: Drop invalid parsed packets X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Roi Dayan via dev From: Roi Dayan Reply-To: Roi Dayan Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Eli Britstein In case of a malformed packet, its parsing fails. Instead of continuing and possible form a wrong flow, drop the packet. Relevant tests changed to send valid packets. Signed-off-by: Eli Britstein Acked-by: Roi Dayan --- lib/dpif-netdev.c | 7 ++++++- tests/mpls-xlate.at | 4 ++-- tests/ofproto-dpif.at | 6 +++--- tests/ofproto.at | 6 +++--- tests/tunnel-push-pop.at | 2 +- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index c7f9e149025e..cf27d2631a94 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -8588,7 +8588,12 @@ dfc_processing(struct dp_netdev_pmd_thread *pmd, } } - miniflow_extract(packet, &key->mf); + if (OVS_UNLIKELY(!miniflow_extract(packet, &key->mf))) { + dp_packet_delete(packet); + COVERAGE_INC(datapath_drop_rx_invalid_packet); + continue; + } + key->len = 0; /* Not computed yet. */ key->hash = (md_is_valid == false) diff --git a/tests/mpls-xlate.at b/tests/mpls-xlate.at index 7474becc8914..c0f33715dc82 100644 --- a/tests/mpls-xlate.at +++ b/tests/mpls-xlate.at @@ -72,13 +72,13 @@ AT_CHECK([tail -1 stdout], [0], ]) for d in 0 1 2 3; do - pkt="in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=22,tc=0,ttl=64,bos=1)" + pkt="f8bc124658e0f8bc124434b6884700016140450000180001000040007ae6000000000000000000000000" AT_CHECK([ovs-appctl netdev-dummy/receive p0 $pkt]) done AT_CHECK([ovs-appctl dpctl/dump-flows | sed 's/packets.*actions:1/actions:1/' | strip_used | strip_ufid | sort], [0], [dnl flow-dump from the main thread: -recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8847),mpls(label=22/0xfffff,tc=0/0,ttl=64/0x0,bos=1/1), packets:3, bytes:54, used:0.0s, actions:pop_mpls(eth_type=0x800),recirc(0x3) +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8847),mpls(label=22/0xfffff,tc=0/0,ttl=64/0x0,bos=1/1), packets:3, bytes:126, used:0.0s, actions:pop_mpls(eth_type=0x800),recirc(0x3) recirc_id(0x3),in_port(1),packet_type(ns=0,id=0),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=0.0.0.0,dst=0.0.0.0,proto=0,frag=no), actions:100 ]) diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index 0b23fd6c5ea6..65c94a59abae 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -7477,10 +7477,10 @@ AT_CHECK([tail -1 stdout], [0], ]) dnl An 170 byte packet -AT_CHECK([ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f']) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000800004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f']) AT_CHECK([ovs-ofctl parse-pcap p1.pcap], [0], [dnl -icmp,in_port=ANY,vlan_tci=0x0000,dl_src=00:50:56:c0:00:08,dl_dst=00:0c:29:c8:a0:a4,nw_src=192.168.218.1,nw_dst=192.168.218.100,nw_tos=0,nw_ecn=0,nw_ttl=64,nw_frag=no,icmp_type=8,icmp_code=0 +in_port=ANY,vlan_tci=0x0000,dl_src=00:50:56:c0:00:08,dl_dst=00:0c:29:c8:a0:a4,dl_type=0x05ff ]) AT_CHECK([ovs-appctl revalidator/purge], [0]) @@ -7509,7 +7509,7 @@ AT_CHECK([tail -1 stdout], [0], ]) dnl An 170 byte packet -AT_CHECK([ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f']) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000800004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f']) AT_CHECK([ovs-appctl revalidator/purge], [0]) dnl packet size: 64 + 128 + 170 = 362 diff --git a/tests/ofproto.at b/tests/ofproto.at index 2889f81fb171..435f0f45762c 100644 --- a/tests/ofproto.at +++ b/tests/ofproto.at @@ -6627,11 +6627,11 @@ AT_CHECK([ovs-ofctl del-flows br0]) AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) dnl send a proto 0 packet to try and poison the DP flow path -AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x86dd),ipv6(src=2001:db8::1,dst=111:db8::3,proto=0,tclass=0,hlimit=64,frag=no)']) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 '50540000000c50540000000b86dd600000000024004020010db800000000000000000000000101110db80000000000000000000000033a000502000001008f00321b0000000103000000ff020000000000000000000000010003']) AT_CHECK([ovs-appctl dpctl/dump-flows], [0], [dnl flow-dump from the main thread: -recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::3,proto=0,hlimit=0,frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=2,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535)) +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::3,proto=58,hlimit=64,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(hlimit=63)),2 ]) dnl Send ICMP for mod nw_src and mod nw_dst @@ -6655,8 +6655,8 @@ AT_CHECK([ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00: AT_CHECK([ovs-appctl dpctl/dump-flows | sort], [0], [dnl flow-dump from the main thread: -recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::3,proto=0,hlimit=0,frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=2,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535)) recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::3,proto=1,hlimit=64,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(hlimit=63)),2 +recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::3,proto=58,hlimit=64,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(hlimit=63)),2 recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::4,proto=1,hlimit=64,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(hlimit=8)),2 recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::5,proto=1,tclass=0/0x3,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(tclass=0x2/0x3)),2 recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(dst=111:db8::6,proto=1,tclass=0/0xfc,frag=no), packets:0, bytes:0, used:never, actions:set(ipv6(tclass=0x40/0xfc)),2 diff --git a/tests/tunnel-push-pop.at b/tests/tunnel-push-pop.at index 508737c53ec6..37ae520b8e2e 100644 --- a/tests/tunnel-push-pop.at +++ b/tests/tunnel-push-pop.at @@ -557,7 +557,7 @@ ovs-appctl coverage/read-counter drop_action_congestion dnl Check GREL3 only accepts non-fragmented packets? -AT_CHECK([ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820000800000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) +AT_CHECK([ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820000800000001c84e710062724fbeb6f4e14217080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637']) ovs-appctl time/warp 1000 ovs-appctl time/warp 1000