From patchwork Mon Nov 4 11:04:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Huettner X-Patchwork-Id: 2006184 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=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=tWakI3k/; dkim=fail reason="signature verification failed" (2048-bit key) header.d=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=tWakI3k/; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (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 4XhpZr4Ck4z1xwF for ; Mon, 4 Nov 2024 22:07:03 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id E093C40EE6; Mon, 4 Nov 2024 11:06:59 +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 zJrqDxssPP4h; Mon, 4 Nov 2024 11:06:56 +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 smtp2.osuosl.org DEDDB40F29 Authentication-Results: smtp2.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=tWakI3k/; dkim=fail reason="signature verification failed" (2048-bit key) header.d=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=tWakI3k/ Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id DEDDB40F29; Mon, 4 Nov 2024 11:06:40 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A5778C08A8; Mon, 4 Nov 2024 11:06:40 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1B6A1C08AA for ; Mon, 4 Nov 2024 11:06:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 69A83405D1 for ; Mon, 4 Nov 2024 11:05:06 +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 MAWKZwrcnQCL for ; Mon, 4 Nov 2024 11:05:04 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:2614::601; helo=eur05-db8-obe.outbound.protection.outlook.com; envelope-from=felix.huettner@stackit.cloud; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org 0249240966 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=reject dis=none) header.from=stackit.cloud DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 0249240966 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2614::601]) by smtp2.osuosl.org (Postfix) with ESMTPS id 0249240966 for ; Mon, 4 Nov 2024 11:04:54 +0000 (UTC) ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=wVwP4QrsOQ0OHlX9A6LGyIJJgKNA7aKdn9MkokchfByGU7T4os8/72ioPX/cpmE19glTUto/u6MD8Nn7CU+n2VN1SauRBlCu92A6q+4grangNFRmEStkOFRNUTUtMuEB9oLMneC+zV7yc/qZaN2YgL+YmQSUnXSxISmiKLgKyjLy3jyu3jRkqSZCvf3mIpDx3B1dojH8sg3ImibkRFn4bZzXWF1amNQhZHxouH9OMo0zNwOcuWD/r5TRCCK7X6yx5VqKPrMnVPi7O3YZiJ5+4eY/8zFY/LlMNCMiy7+M3pJUmwGWxmLSnP3LokJQ9xt7EE+Vf22ZgFfncBED0GYCWQ== ARC-Message-Signature: i=2; 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=9etHSVvf6WInE/vKxvUFFfcO9SobKyEENdjYgBQjXw8=; b=Q6CcCxNOJsiQFD+fbFYb6Q/zgzTvMRk85LJQeFW/Xy2ZIGS4hKnoLc7sK0ez8NVut+1Yl5AlDYkypXHUDjDlcr3kFOs2SX5/ZkSsFGoCWZ+8XwDVvrlehNEzqNNOc9TdtpqjSGB3W5FbgcjUIGoiPDIIX0/1579Ow9QlzOrMLlNn7wwm+HkryddypTopdFmBq4uqV71M2QH9/bHRRtLS3PETrU4QRHnd60g1kPlxAiSjEecQXHE8DKSsAhHsJ5CJljwznXtmC1XAXr9vbtLYfBg26yI3UQrK/3g2pKqODDPCJ8IErxMS7pxTnpp4MpxhE5cI2Dze0OEQK+nb8r+Fhg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=fail (sender ip is 52.169.0.179) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=stackit.cloud; dmarc=pass (p=reject sp=none pct=100) action=none header.from=stackit.cloud; dkim=pass (signature was verified) header.d=stackit.cloud; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=stackit.cloud] dkim=[1,1,header.d=stackit.cloud] dmarc=[1,1,header.from=stackit.cloud]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stackit.cloud; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9etHSVvf6WInE/vKxvUFFfcO9SobKyEENdjYgBQjXw8=; b=tWakI3k/Fd11fEc1kA4gLO8N0MLeRmuFpwGp6AZc9wWZW9BObdz6n2sCFQ8Kh/iX850c/BYebyeWFgnkewuIS/d7AyDaD9mggxtiOZrwVBSHRUPDCGVj/hnMucqIo+ogtoGOXFutrR843A/ogOWZKTpCeBEClVMQfIwMohsoVFzDp35ub34daBQp8mcpNlmkq1jQ6sqCvjx0oE1yi+r7MtzXjWzKolyChxpTr4xDUNIUTBvtZwjSUxXcpzR6LW4VZUrrxDBYgMOS48fYUvbKYT4dUuth+f6jcDXovcFObQGDctpEr+V7tFgq++p5bxJVD4R9BmSbwUuDiSzGellAwg== Received: from AM0PR02CA0185.eurprd02.prod.outlook.com (2603:10a6:20b:28e::22) by GV1PR10MB6684.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:86::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.17; Mon, 4 Nov 2024 11:04:49 +0000 Received: from AM3PEPF00009B9F.eurprd04.prod.outlook.com (2603:10a6:20b:28e:cafe::d9) by AM0PR02CA0185.outlook.office365.com (2603:10a6:20b:28e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.29 via Frontend Transport; Mon, 4 Nov 2024 11:04:49 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 52.169.0.179) smtp.mailfrom=stackit.cloud; dkim=pass (signature was verified) header.d=stackit.cloud;dmarc=pass action=none header.from=stackit.cloud; Received-SPF: Fail (protection.outlook.com: domain of stackit.cloud does not designate 52.169.0.179 as permitted sender) receiver=protection.outlook.com; client-ip=52.169.0.179; helo=eu2.smtp.exclaimer.net; Received: from eu2.smtp.exclaimer.net (52.169.0.179) by AM3PEPF00009B9F.mail.protection.outlook.com (10.167.16.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.17 via Frontend Transport; Mon, 4 Nov 2024 11:04:49 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (104.47.18.110) by eu2.smtp.exclaimer.net (52.169.0.179) with Exclaimer Signature Manager ESMTP Proxy eu2.smtp.exclaimer.net (tlsversion=TLS12, tlscipher=TLS_DIFFIEHELLMAN_WITH_AES256_NONE); Mon, 4 Nov 2024 11:04:49 +0000 X-ExclaimerHostedSignatures-MessageProcessed: true X-ExclaimerProxyLatency: 5814931 X-ExclaimerImprintLatency: 2034487 X-ExclaimerImprintAction: 07bb9e304a074b2ea36e0bb0840cd7d4 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HuIiDNGR8IxeSDAv2arQ5nagldYg6lwes8O/3hQks6xZH3+EDJHDCFRaw20EiG9w1fwdMVF/C6/qax35QVZW6CtsQvDvaoxzIW9z9XoXamu164hZ9jc2Ta4Y/0Ul6+SGl/oxzM4kW2a8VTYt/e6qkzN7tZ/2xWT5dL9u5dfGlJWbiMeaH/RINv5ZrTp0HyTc2qevArkf0p9tYU+HPn8DvuyzfrkDF0y+KtMwk8BPz3/hfJlgKW5CFcavLnUj0/quvCk1QPquK/nnz/TU0D+7EfUNbDsnDge0v9d4bnpooWiXZfDU+wwPcHxPMRLAKpcMdcfpc2eqZu3Jw9rP+/tsIw== 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=9etHSVvf6WInE/vKxvUFFfcO9SobKyEENdjYgBQjXw8=; b=viw5e1RbAJz2AEyo9u0JW+1sbZrb+7r6Q+g/l48Cn6gNNuOFSR5yoHpbbF7yFLw4d6ZR8d+OXwzs6SGhlYNfNA2H8RQxGLzA9NZtw57d2onoOiBIHiK3dWd6AMxf6Bl6fG74q/aLJzrzSMC8tGRtbVk0AKg++ZrgWcbYvCI84SiG9iEjktaCj4IEwIHVHXf8dZN2qH9YtyQclS8yypXmSJQNCh8i/tgvqW22tuYCXgnFqGqRoU2YWXIfkHyU5LZsAt/sXxShDpmb3BpUUbObLn+JPsvNCqH8jP5fIGhcVM0LxPyw9e5pQUsRYvZTSf1VxwRYqmdug2ZS4ITfnAII+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=stackit.cloud; dmarc=pass action=none header.from=stackit.cloud; dkim=pass header.d=stackit.cloud; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stackit.cloud; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9etHSVvf6WInE/vKxvUFFfcO9SobKyEENdjYgBQjXw8=; b=tWakI3k/Fd11fEc1kA4gLO8N0MLeRmuFpwGp6AZc9wWZW9BObdz6n2sCFQ8Kh/iX850c/BYebyeWFgnkewuIS/d7AyDaD9mggxtiOZrwVBSHRUPDCGVj/hnMucqIo+ogtoGOXFutrR843A/ogOWZKTpCeBEClVMQfIwMohsoVFzDp35ub34daBQp8mcpNlmkq1jQ6sqCvjx0oE1yi+r7MtzXjWzKolyChxpTr4xDUNIUTBvtZwjSUxXcpzR6LW4VZUrrxDBYgMOS48fYUvbKYT4dUuth+f6jcDXovcFObQGDctpEr+V7tFgq++p5bxJVD4R9BmSbwUuDiSzGellAwg== Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=stackit.cloud; Received: from PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:30d::9) by PA2PR10MB8449.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:425::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.16; Mon, 4 Nov 2024 11:04:47 +0000 Received: from PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM ([fe80::f00d:feeb:e45e:54f8]) by PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM ([fe80::f00d:feeb:e45e:54f8%7]) with mapi id 15.20.8137.013; Mon, 4 Nov 2024 11:04:47 +0000 Date: Mon, 4 Nov 2024 12:04:45 +0100 To: dev@openvswitch.org Message-ID: Mail-Followup-To: dev@openvswitch.org References: Content-Disposition: inline In-Reply-To: X-please-dont-add-a-signature: thanks X-ClientProxiedBy: FR3P281CA0120.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::18) To PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:30d::9) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: PAVPR10MB6914:EE_|PA2PR10MB8449:EE_|AM3PEPF00009B9F:EE_|GV1PR10MB6684:EE_ X-MS-Office365-Filtering-Correlation-Id: 06424e84-5aba-45ac-ae61-08dcfcc08019 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info-Original: u56OSLT+kJxjphJEMMgcl+ilwOgJTg6p8e15jBXM6SzG5bl4QxUU/aAG6pXRtHZe3qU8hoOeUx8ylBk7z/a4sZOfZinAg/TF03WZgUxHx0COMcI7u6Y3IZz81GqHQBrbAGj9syW2j7vj/Z2vEPSUOIO+OB37azlJzujT+sJyCVGY+c5O2AluBeYFwkWIpjJ6PeAGbOVKXYcwZpLbwDT5ExDmyNVNMdnTBFXW6Xkf91ptfY2RleKQyUcFShhTv9Ii+xW24EcksIG8ljQz6Ywn8FPkRLolZW7ig/wU2PrqjN/hrWO10WcWRQ26jexbB0o2ypICZxpAlnsmL+K1TP8lPV4n0XbHjx3R8jXnZ+zmvkw+CUo8mLpl/uCkH+lJRE3BvVGTAp/ttla4de55EwTkXn7bIlNhSOwFZUFOnizqgWz9PbXAgclPcRpC/RHCs6+DlqaA5otcqzTWldX7s341fZbOQE6OccpZO9foQekK4a4Pt2dtk2IYUrt63W/kYS9tkyjxpvi8H82LQJvmomEZncVnCCW/TAR6ABxiR8J3lZo52b8Mj97WMSU3bOOz5+AG8t/iPGKrD8MquDkluQnaPL9jvz2VpDIlA8D+gBAgFMcLqzmMC21v8AC2Yvd31A8CnCDlHgGbimlTOa+OmlNA15wCpKPqFUxeGmf6e4+QGrYnUUh+/PqRm7FgtJ40wVKh8VTnUzzeTSYkUTbIC1YFRID0gaC9ayoqm2zo6OrycMVmankYwHsiXjGUMtcL7tp+qBnvx4Tke2KfOdgEFtJN6ux36IWrEty61I0exDRZ/3rYbwc1xC4V2bppzySRXEyd/248DJE22gXgn1ITJ7GS1HojKyCAgYwXusXYMcPpc3u1cg0CxPDUs2srBfFIX1MGHocIJJRGdfs0908zN9ySm0xE+hi2sFymh8AClS3Uj7aOChQ9G2QYEIMevu58xCJTIQsay+zpPPZEcTFv7OJGoAzboS1T6TY2n+Cokil2ljelqrRhYw5rmU3AZQnVB7u9P0fcQrURYcFLbL5R0YbbLAxEiRf+pNNMDoiyO9GuGs5/mqq1nX8FkpQhVL3z/qTrH9mr/S6HNHjntBoIN4AxQ8QWi6UNIrp/jnuPxz/wBv0CtoxSsXVJgL5XZMOAiUR0z7MylbwLPSWLJqY4mHwFSy5el2GWSp4gtoZxLj7d/GJgaRfrON4sA2SIVZUoFYMb2CAAPRkYE/fIclTKjJNQQDKTszWIwrPMHKwhf/boy34PxxWW586ynrOjjRQ0QIetefjoNr+9l1HUqT2mj7/TDZiDs6cE/6CWqwmvTEo/nBMC5xe73/fIWcdHH39Txa2Y X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA2PR10MB8449 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF00009B9F.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a374e4c6-649e-4ce3-dfc7-08dcfcc07ef7 X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|82310400026|36860700013|376014|35042699022|1800799024; X-Microsoft-Antispam-Message-Info: H+9RI5MaK01tt0E/Tu/KPUExwyB9yynf0pJOPcm5a7aO4H85iTu1FjBncdE8Ty7aIsse0fBJC5NPQvgp8hKWg2+RhFdPlEIMcMetdsUG8rZD08tSFj5ktYkeApW3JnKTWVX+YT6jjQFVBFOwMO0FTrPWZd6SCDoydD/vEGQOxqe5jIppDcsDnhsKDJw83GJBOaklaTbPMASoGB6lEvgDtcOJdxoF3VzSQxZ4ekSpKmx3swLaN51leVQVXlg1qSfYU4ejcFz0OMie3TyNRZQDtFFjoD8TFKbzvNR8cnHzU+SkSFnAjQQ8lq358DNATYybrYcj33WHoly5ofkWis2RZmbjdMXB7RWxaMCmrXpan7PYrpNTuTM8qa+3BKf5dvumBKMeWmn8t+HojMapx8u1NYvqrlyDT1iQ3vo9LDGkEYI1jiIxh1Mk4H5RvliW+zG9UgUZPZ4s232+C9amch6UYHhoSe52ngJb1BFWvd3mou+L301j3vhZCDciD+RZHSaOQmWogHF5ruZPtyvQ55S6WJB6Yr9aCqE1hcUEWDu4OWk5B6bfS3WAseUwLX0DGSRu3vmMQsgjH5v6EKlqL4/nuGc6vcwma3iUHkCOxTaMyy4nlvmtpdi8xe959UpOXYi8NM9UFKMy4Ziy9itutVZa/n+ja4Rx2qh5xdJWe2X2LpjMizoP3CJORXnNzUXhvqtN0zLKVPTFzj8t+8qxPbsWaf4XQ2N9Lp4EssYAQn8+gUBoDIuUzSY9EAw/mz4criduGaXTvEDhBTpNlLfeJxK2Jqx0GznTLBNJd3bCBOHIz/BcdRrcQIH5g/PuGD4YbkDDVrBIummvBy1aArQ95LEGRhmaVRBtD8GciOaYFlpPzoPA+rBaU1szEdlCGrLTOnnkhW2WXA4mdeSqURoJtYe1bqs2wQjIO3JWKNQD7ttRZekGQRcWxk6KyHtZzbyoJyXqZPQs3+lnv/bZLhGpHk4RP8CgPXy20xMAigpnuNcthUHsXCruOHsvopnXcXScYDEDd5/FL9y5aSBv3XD4hEEUIrJC1E5ahiUtSDoxxFsNTkbTlu3u+mkNiujZUe030PFtc/0pobEe/HTQ9pN1YnIS0oOFOK6Osf5aeUVXPM43EXrXlMGJ8bosPWUbfEHx6hsXWIx1WLFdkvPWqI4XiuR7vfZ2kLkFY41AV1uz7d7J9FvGmms+I0wglLCrPiybUm1rmjUEgd72o+zpp/ZaCa6CMRSHzJ2do1neByAYJtlBaQdbhKr6eCv92drdaZlZWAgyHNisRcKVQNG4lraRwgClWnjV/ZtF+yY3AUJJ9NFMjxrEntPQ11zwuRXbWgs39WvezGdwTEW9pJBUCssInuywZ61XCXZSguOgZ0qznKwf8j4ZZWjvNxR6Y3uRoYI9jmfZPL31TePDwiakcZmc2rqjAg== X-Forefront-Antispam-Report: CIP:52.169.0.179; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:eu2.smtp.exclaimer.net; PTR:eu2.smtp.exclaimer.net; CAT:NONE; SFS:(13230040)(14060799003)(82310400026)(36860700013)(376014)(35042699022)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: stackit.cloud X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 11:04:49.0042 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 06424e84-5aba-45ac-ae61-08dcfcc08019 X-MS-Exchange-CrossTenant-Id: d04f4717-5a6e-4b98-b3f9-6918e0385f4c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=d04f4717-5a6e-4b98-b3f9-6918e0385f4c; Ip=[52.169.0.179]; Helo=[eu2.smtp.exclaimer.net] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF00009B9F.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR10MB6684 Subject: [ovs-dev] [PATCH ovn v2 25/32] controller: Allow network namespaces for routes. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Felix Huettner via dev From: Felix Huettner Reply-To: Felix Huettner Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" instead of using VRFs to announce routes we can now also use network namespaces. This can be usefull if the network namespaces is used to also run the routing protocol agent (e.g. frr). The network namespace could then also have a vif port based on the routing-protocol-redirect feature. Signed-off-by: Felix Huettner --- controller/route-exchange-netlink.c | 43 +++++++++++++++++++---------- controller/route-exchange-netlink.h | 14 ++++++---- controller/route-exchange.c | 4 +-- northd/northd.c | 3 ++ 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/controller/route-exchange-netlink.c b/controller/route-exchange-netlink.c index 1d6e1a58e..f2d72c3a7 100644 --- a/controller/route-exchange-netlink.c +++ b/controller/route-exchange-netlink.c @@ -38,7 +38,6 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); #define TABLE_ID_VALID(table_id) (table_id != RT_TABLE_UNSPEC && \ table_id != RT_TABLE_COMPAT && \ table_id != RT_TABLE_DEFAULT && \ - table_id != RT_TABLE_MAIN && \ table_id != RT_TABLE_LOCAL && \ table_id != RT_TABLE_MAX) @@ -101,8 +100,8 @@ re_nl_delete_vrf(const char *ifname) } static int -modify_route(uint32_t type, uint32_t flags_arg, uint32_t table_id, - const struct in6_addr *dst, unsigned int plen, +modify_route(const char *netns, uint32_t type, uint32_t flags_arg, + uint32_t table_id, const struct in6_addr *dst, unsigned int plen, unsigned int priority) { uint32_t flags = NLM_F_REQUEST | NLM_F_ACK; @@ -137,15 +136,16 @@ modify_route(uint32_t type, uint32_t flags_arg, uint32_t table_id, nl_msg_put_in6_addr(&request, RTA_DST, dst); } - err = nl_transact(NULL, NETLINK_ROUTE, &request, NULL); + err = nl_transact(netns, NETLINK_ROUTE, &request, NULL); ofpbuf_uninit(&request); return err; } int -re_nl_add_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen, unsigned int priority) +re_nl_add_route(const char *netns, uint32_t table_id, + const struct in6_addr *dst, unsigned int plen, + unsigned int priority) { uint32_t flags = NLM_F_CREATE | NLM_F_EXCL; uint32_t type = RTM_NEWROUTE; @@ -157,12 +157,13 @@ re_nl_add_route(uint32_t table_id, const struct in6_addr *dst, return EINVAL; } - return modify_route(type, flags, table_id, dst, plen, priority); + return modify_route(netns, type, flags, table_id, dst, plen, priority); } int -re_nl_delete_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen, unsigned int priority) +re_nl_delete_route(const char * netns, uint32_t table_id, + const struct in6_addr *dst, unsigned int plen, + unsigned int priority) { if (!TABLE_ID_VALID(table_id)) { VLOG_WARN_RL(&rl, @@ -171,7 +172,7 @@ re_nl_delete_route(uint32_t table_id, const struct in6_addr *dst, return EINVAL; } - return modify_route(RTM_DELROUTE, 0, table_id, dst, plen, priority); + return modify_route(netns, RTM_DELROUTE, 0, table_id, dst, plen, priority); } static uint32_t @@ -195,6 +196,7 @@ re_nl_received_routes_destroy(struct hmap *host_routes) struct route_msg_handle_data { const struct hmap *routes; struct hmap *learned_routes; + const char *netns; }; static void @@ -236,7 +238,8 @@ handle_route_msg_delete_routes(const struct route_table_msg *msg, void *data) } } - err = re_nl_delete_route(rd->rta_table_id, &rd->rta_dst, + err = re_nl_delete_route(handle_data->netns, + rd->rta_table_id, &rd->rta_dst, rd->plen, rd->rta_priority); if (err) { char addr_s[INET6_ADDRSTRLEN + 1]; @@ -251,8 +254,16 @@ handle_route_msg_delete_routes(const struct route_table_msg *msg, void *data) void re_nl_sync_routes(uint32_t table_id, - const struct hmap *routes, struct hmap *learned_routes) + const struct hmap *routes, struct hmap *learned_routes, + bool use_netns) { + + char * netns = NULL; + if (use_netns) { + netns = xasprintf("ovnns%d", table_id); + table_id = RT_TABLE_MAIN; + } + struct advertise_route_entry *ar; HMAP_FOR_EACH (ar, node, routes) { ar->installed = false; @@ -264,8 +275,9 @@ re_nl_sync_routes(uint32_t table_id, struct route_msg_handle_data data = { .routes = routes, .learned_routes = learned_routes, + .netns = netns, }; - route_table_dump_one_table(NULL, table_id, handle_route_msg_delete_routes, + route_table_dump_one_table(netns, table_id, handle_route_msg_delete_routes, &data); /* Add any remaining routes in the host_routes hmap to the system routing @@ -274,8 +286,8 @@ re_nl_sync_routes(uint32_t table_id, if (ar->installed) { continue; } - int err = re_nl_add_route(table_id, &ar->addr, ar->plen, - ar->priority); + int err = re_nl_add_route(netns, table_id, &ar->addr, + ar->plen, ar->priority); if (err) { char addr_s[INET6_ADDRSTRLEN + 1]; VLOG_WARN_RL(&rl, "Add route table_id=%"PRIu32" dst=%s " @@ -287,4 +299,5 @@ re_nl_sync_routes(uint32_t table_id, ovs_strerror(err)); } } + free(netns); } diff --git a/controller/route-exchange-netlink.h b/controller/route-exchange-netlink.h index 4c0f37a98..11f989cf6 100644 --- a/controller/route-exchange-netlink.h +++ b/controller/route-exchange-netlink.h @@ -15,6 +15,7 @@ #ifndef ROUTE_EXCHANGE_NETLINK_H #define ROUTE_EXCHANGE_NETLINK_H 1 +#include #include #include "openvswitch/hmap.h" #include @@ -36,16 +37,19 @@ struct re_nl_received_route_node { int re_nl_create_vrf(const char *ifname, uint32_t table_id); int re_nl_delete_vrf(const char *ifname); -int re_nl_add_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen, unsigned int priority); -int re_nl_delete_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen, unsigned int priority); +int re_nl_add_route(const char *netns, uint32_t table_id, + const struct in6_addr *dst, unsigned int plen, + unsigned int priority); +int re_nl_delete_route(const char *netns, uint32_t table_id, + const struct in6_addr *dst, unsigned int plen, + unsigned int priority); void re_nl_dump(uint32_t table_id); void re_nl_received_routes_destroy(struct hmap *); void re_nl_sync_routes(uint32_t table_id, const struct hmap *host_routes, - struct hmap *learned_routes); + struct hmap *learned_routes, + bool use_netns); #endif /* route-exchange-netlink.h */ diff --git a/controller/route-exchange.c b/controller/route-exchange.c index 41fea6398..a5a5afee5 100644 --- a/controller/route-exchange.c +++ b/controller/route-exchange.c @@ -195,8 +195,8 @@ route_exchange_run(struct route_exchange_ctx_in *r_ctx_in, sset_add(&_maintained_vrfs, vrf_name); } - re_nl_sync_routes(ad->key, &ad->routes, - &received_routes); + re_nl_sync_routes(ad->key, + &ad->routes, &received_routes, ad->use_netns); sb_sync_learned_routes(ad->db, &received_routes, &ad->bound_ports, diff --git a/northd/northd.c b/northd/northd.c index 46e209fa4..69d86f1c7 100644 --- a/northd/northd.c +++ b/northd/northd.c @@ -4118,6 +4118,9 @@ sync_pb_for_lrp(struct ovn_port *op, if (smap_get_bool(&op->nbrp->options, "maintain-vrf", false)) { smap_add(&new, "maintain-vrf", "true"); } + if (smap_get_bool(&op->nbrp->options, "use-netns", false)) { + smap_add(&new, "use-netns", "true"); + } if (smap_get_bool(&op->od->nbr->options, "dynamic-routing", false)) { smap_add(&new, "dynamic-routing", "true"); }