From patchwork Mon Nov 4 11:04:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felix Huettner X-Patchwork-Id: 2006183 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=g8gsVlc6; 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=g8gsVlc6; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::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 4XhpZF0jklz1xyH for ; Mon, 4 Nov 2024 22:06:45 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id C4D1360DEF; Mon, 4 Nov 2024 11:06:41 +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 WjLb0SLsjCTW; Mon, 4 Nov 2024 11:06:38 +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 BA11460A94 Authentication-Results: smtp3.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=g8gsVlc6; 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=g8gsVlc6 Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id BA11460A94; Mon, 4 Nov 2024 11:06:15 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 81966C08A3; Mon, 4 Nov 2024 11:06:15 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 112B1C08A6 for ; Mon, 4 Nov 2024 11:06:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id A2623810D5 for ; Mon, 4 Nov 2024 11:05:04 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id PeCPxznhHsuE for ; Mon, 4 Nov 2024 11:04:58 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:2608::60e; helo=eur02-db5-obe.outbound.protection.outlook.com; envelope-from=felix.huettner@stackit.cloud; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 08810810C3 Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=reject dis=none) header.from=stackit.cloud DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 08810810C3 Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=g8gsVlc6; dkim=pass (2048-bit key) header.d=stackit.cloud header.i=@stackit.cloud header.a=rsa-sha256 header.s=selector1 header.b=g8gsVlc6 Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2060e.outbound.protection.outlook.com [IPv6:2a01:111:f403:2608::60e]) by smtp1.osuosl.org (Postfix) with ESMTPS id 08810810C3 for ; Mon, 4 Nov 2024 11:04:50 +0000 (UTC) ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=fXxT5EkttORc0RLnIYsAnzwPjSYzDIoWG3j9HlB9w5qdErBdA+Pr+/tZr2Sbf2DcgixN1+TDmZh28anbgxb665P0yOsTROL21ZKcJdjxN64Mqls2Kicyq9VITi5WGthmxicTet+atrtH3ZM0b+skBd2cU+Lqw+9dW/Er2dsQV828RtEMdpT84kOKBj70ZPl4jkZTjGg6ql6Sk3PEqdyaetLI+poBdmAk9ZJd9NKvrIgUzfLmwuGd5v9L2lziNFusV/futwzvJVPnM5hXJCtAaA4a7hlPIyHroNyaqUmidARPlJc6dNJZB7nip3hpqfYAw0ZE+JR1S2SNeEIDEsxnAQ== 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=YzwthZ2URD5qjRFudtQbW0QnOiCjOJyM7RynUVYyySw=; b=n/clnT2/fnH87kmECcxKr2Gv1v3LtNhQd8n1cP+MouAkBRXoZRm0e4X9tXXyr/ZDRSASPceA8LIlIoQyeDgWq1WsVgptB1Hu5E2f/d+7gl8bpSM94qTr0LCrrggvp+YijJJwSOvgGUIdfqs17zI32zXSgne1Jsx4VoCvPnSstNZKlTZZiZeAa889JRBU0uBoI1dbYUJFpFjScybVZin92182aXbtHd8EJ1rtgcvAZodPu17KplrBUmvB3bIO1KM4yh+CstSXfRcVoRBW3z+NDjBhwtQ0KyZLIFVzM8ecPev3AyqbZJTVtNeaQp4AKTyQEhgWkaDWAxCgiAkZAuuiNg== 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=YzwthZ2URD5qjRFudtQbW0QnOiCjOJyM7RynUVYyySw=; b=g8gsVlc6nsB/rVQM6z/mzKN9AmLld9KV1L865uKhEiD6B+Uv70iVrRKNvRZyiUUxE3bN63B0sLug+Qsq+7R1RlXRgBWUgn4n9I/O6tNdkiqqsRkBtTiQsOumJAn8G+Gx07xfM50o8OlmtGe/PzGg1ErY6kzaiI//UIGOOORyHqOAGaFHXg9T9+jEvl610vczaPcpvIj1kvtBDomBgWtq1bh5dQXws+oSkacEiec++qnafTCEkCLKyfhJKf8hYgQudX/ShiST3LGANsvd7RxXbV4Ry4rV25aJ2dI0LVaNgqjC+wa/TVk65/aCRDWh5TychETIo9+8m0SBWkuQ6iKUTg== Received: from DU7PR01CA0022.eurprd01.prod.exchangelabs.com (2603:10a6:10:50f::10) by GV1PR10MB8805.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:1cc::22) 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:47 +0000 Received: from DU6PEPF0000A7E3.eurprd02.prod.outlook.com (2603:10a6:10:50f:cafe::30) by DU7PR01CA0022.outlook.office365.com (2603:10a6:10:50f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.31 via Frontend Transport; Mon, 4 Nov 2024 11:04:47 +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 DU6PEPF0000A7E3.mail.protection.outlook.com (10.167.8.41) 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:46 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (104.47.17.111) 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:47 +0000 X-ExclaimerHostedSignatures-MessageProcessed: true X-ExclaimerProxyLatency: 3248924 X-ExclaimerImprintLatency: 1617932 X-ExclaimerImprintAction: ac7c73e0dba64cfd93f391534d34025f ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vKE2MpNsY7kPXwZqwGEXbnYOSNkAvVCF/TzWa52jGZizJ/NhAKzsa3Et01G0kEE5GBC+AoJZ7ESBHdeNBwwROlc7QqtNDVfR2JO27skmypiT2PKmNuADdhFzLjmF3ZtRC7096KM2SricB0KzLGFBI4xnb9KJ5wAjgLl5sLx4qMQY5P4DQj6YKwoXjK6m9+lh/rbAluFaPDiy1Vvu9gvFT/MMci4mD2WeLwH3gQy7vcmakMjkyCmH5yhhPl5SnbdNcxfpioHULZtlxDdIuAG5YNSwm2roe82fxGB7YU9wfHCxbZKysmw0ryyzon5Wq94w+4181ndyhM+sVPiIfyTxsA== 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=YzwthZ2URD5qjRFudtQbW0QnOiCjOJyM7RynUVYyySw=; b=Rh8OZthQYu7Gg/h6NYlZDMDpxKv2GMj3OAQtGByIHh15wV74a4qeHzwBEB1E5DCAVg33mkFW+EGHqpLNhmISXLyLsaopvCxzPmaYXWr35sstJYBW3Ka8oIwKG9nRO0z2LH/hPfaUW20p8NjMPG9OQ2dowgFQwHs6ypxrRMC5KcOKV7Vp+j4uOreCeClsY/IU5vMSoGhLwADosvpAU9f0wbXl4Okbt0u3HHYiT7qAtM6bzpo2KDwgjQL8zwxeJHR1otjAQerOom1oZ2GaPH4x8xE+gLOw7uzWZV20IdUKyZAYPk/USQedqM7OJ0qlohXj5MpnJRaveCfKVkpci9Rjgw== 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=YzwthZ2URD5qjRFudtQbW0QnOiCjOJyM7RynUVYyySw=; b=g8gsVlc6nsB/rVQM6z/mzKN9AmLld9KV1L865uKhEiD6B+Uv70iVrRKNvRZyiUUxE3bN63B0sLug+Qsq+7R1RlXRgBWUgn4n9I/O6tNdkiqqsRkBtTiQsOumJAn8G+Gx07xfM50o8OlmtGe/PzGg1ErY6kzaiI//UIGOOORyHqOAGaFHXg9T9+jEvl610vczaPcpvIj1kvtBDomBgWtq1bh5dQXws+oSkacEiec++qnafTCEkCLKyfhJKf8hYgQudX/ShiST3LGANsvd7RxXbV4Ry4rV25aJ2dI0LVaNgqjC+wa/TVk65/aCRDWh5TychETIo9+8m0SBWkuQ6iKUTg== 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:45 +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:45 +0000 Date: Mon, 4 Nov 2024 12:04:43 +0100 To: dev@openvswitch.org Message-ID: <8c7a994a1de7c308a3acc1236f99c35536777f6d.1730713432.git.felix.huettner@stackit.cloud> Mail-Followup-To: dev@openvswitch.org References: Content-Disposition: inline In-Reply-To: X-please-dont-add-a-signature: thanks X-ClientProxiedBy: FR3P281CA0117.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::8) To PAVPR10MB6914.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:30d::9) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: PAVPR10MB6914:EE_|PA2PR10MB8449:EE_|DU6PEPF0000A7E3:EE_|GV1PR10MB8805:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e359fa3-f1d1-45d4-db81-08dcfcc07ec7 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: KO8viq1wrTgcJm8th/w6vqNEJRvOozrjNoFEzLhyJ2hV7TqXb/OhrFaHiHQiLG5h/rUZESskiiWct0gMhHAZjWHmfFroZssT0OEFqwcIGrTEhbYEQmC90xtcyyro1EgyoEZYVC/RchPYBbLHEZF3loGEEde0xQqWZFMfrFTljfpMbHUuXXRSgPjyuda3p3Uk9MgQlEsYnZ9YI9Rc+aocVnGrcYZJMgkJwqJYW+xgg0E0V7AgeFdCPTocl2rXF1S5rvHbbvMKPwyzvV50SNnHyRTHpVDhqFpZ1TPT/opUFBpkfb2aHjYx6C8UTHz4+JmiPUDmS5AnRT/hJECqW4Mp0N0pEGxwqQlyUdIRNthhukWjkCWXb4g0rxTn/SVg/ZblgkXMjMun38GX82B0Mh5rBVDwUFw6pInERry1qJBmg9uAJps0k1in9NZp2EXyI7dreQaKKtpOfdqD8bEZO3eDGRyal5miOJmJsV6zUKHmBpq3s02y5ZjHOpQ4aGoAVbIeOo29ZaPdSGNOimqI2/w7xYDgYlPzC7Iztfzt1q6qekwsz5vejBmrnTLNvYgXo5S0ScR4cukkM5U4ZVbX1aWpYU3sluGAKVeWpWk/wUgDPS85bLecyoBPjK+BMYo31e79/oEwsK018wf+yMaL2noKK2LnLcV5eO88unydE5jQnLynO+f3Q463gFVA0l51wL/rf3kYb8ehBuXi2eCvBpA8Baeddh2NLRo40OS33NLvz0//m0TaGtP0J/4SsRPrSLEq5t7hgJnmoAXNF9vHe869rbiMP5tyK0AyQP1bkiR+xvMiQTwNfaJcN4XgBacDIEPgawZlVvypwCmvXvky/fj57veWhOUaQgjSFZWfZSEZDHDDl3XQ+eZlf3SkzFw6YnqNj4JSYvEufC6hVhpna7b/guWYCq41xBB5NNh5B5reO3AO1mTNaQRlRYmF9O9vNuagrFqXV4SlcMb5goWliHCAWgIHRwcHfRMLw7uUOyZULy702LxCQgee78xHMqztZ9DqO290/Rv5AxxpyJlnY2br2+0FpHKz3b246Oo0XsVTzpnc32beFgc4rDlouliAkQBpIFLhP02a7Cyeqb18SegDHDtXDOjeIZp/EH2bDabJ6Pl5YBIbooICtusEhjhDc07qgFnPpLpSF9QC894AnqLPdGBkHcSbVaZjrB1U8n7UmOcQWi2+dxEWFxZVA/YYIylmjhm43xc7i1ld+zOwzafOpkz3l8jHXe9hn0P++rK0FDoOfKKoA8HexpF/7rnbDtIE7AuqS0/+qeoXh81SomQPB3gYfQhfV6Zm1P3UvWhz1bbWnuCyTe/1dpQXAkk6GJ4d 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: DU6PEPF0000A7E3.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8398a253-6ce9-413c-667e-08dcfcc07dca X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024|35042699022|14060799003; X-Microsoft-Antispam-Message-Info: aM+e/XP9F7gaQY3O1IXUbrpTsFYq/WLvqKrOaxstnKU8LWRLli67dPMxOayY5cArmZXCFLgqKXOLi2eH1bnrXPEv9tV2pCcf1SFpu/0D7a8V2L5HNNIxncXrfv1InhfjVQizyON33PIAkm4BxAiO4dwcVOcNNpeVVPue86nOump2iOndg+9OMUi9hzlAohioRFTN1OkaCqndNNF0yixDc5cg/35CiWCZqHtQ5k1ofsHSiX+qPsMND1ekIsgA0G66HgHkJWX6r9IOTrcYplhHGboLSNqjza9emkYnHfcWTIBHwebZqRLEnz2YNjfxkBFVk9yofAtBtxa4qaeeN/rhz0A1urregN37pJZT07eHYbZHt1D++6mGaAHL72RpMWkOiyshLfPiS9+hTQ/YLBpNgnX9ly8zYkzCLB1E4rc+yrbBYCROq+uz8Loft9h6zgMQX5Uuf/fv0n+9aBlUi9uvBDAndw3jLLTH6WXydNtU8/VOYipFoppCJdjXsMGsFrxJJb5+dRHG/WeAOHIGpuiP4f4WisKwhaNmJjhOzDDb2jaB3+kH7jY4EQV+T+TBmyFPWVUIjAS1+Ha3UwPrLBYSFd6Ns5OPVpOY8ea26d24i6TiTQNX3WynyBiNogzqE8xtJ5k9IaVlfSQdVlaNVZ8tPR86nTr4UUfKVp2z0btBJBCWD++cwxtZiAHUHDZ92ierlzkp7UkMca3p8JrsmCt3GjNSbFsC9M9mMf96grh9AUoARwH+jJFfUS9BtLHI0XEB1hkz8Zta6GiI77O83AJVIfgXwTpwtlaGj+yWBlurxwnb8RuWpSCuRfS9P8ek96DwKV6j2S7eBk8O0ANAyUUgUzqaMWIutcvJfg09pPP/wax5ceLeup/eHj3u48amXDYuajHUVXhJTuCEJSjZ6Vy35T2KvQPgqvE3AkAV8lJVOVcHsGpOH5xLtTHD0jXmZ8joakNWWF99xvTMuVLLZACpLpsqX2Bo0eYwmw1Anpq9bsrd8JjusmSIZJkHY8xxuADaRt6qrlPTDpFm8uTQHIG6t9SCv3YiVxFpWyrP+ZN8k2GWQ0Qp1edMwC1F3wI3wJ5uQ4ad5X2vZ75QoqAh9TWvYzjOM7lRLA7nmY9VlqScgPqmvnFnZyf9M1GswTRgzRszkax8gjH0BeoTd2ZNV2nFQDXBP4P0of3HEj6aIG3VineSmES82oLkK95+vQAgh+grcJ5Wv5Y9Y1MkD0SSyXw1P4czpEOfl7IfLWDZry7y5QCnKy6/+ea1JCag4ViOWk+obwFLxv7ais0EbK9pDpf/cs6dOSKMOOZiUoAaFhgN8qby8o5Pl7azAh3x+kRSe+8NhLNnYISZ66Ln+gu6NsB2eWBMKQZjzWExXjBp7Qne7TADh4ogziDFaBzpd150qx3FsXnvxR/CQZmyZbEF+sZdOg== 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)(36860700013)(376014)(82310400026)(1800799024)(35042699022)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: stackit.cloud X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2024 11:04:46.8684 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e359fa3-f1d1-45d4-db81-08dcfcc07ec7 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: DU6PEPF0000A7E3.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR10MB8805 Subject: [ovs-dev] [PATCH ovn v2 24/32] controller: Prioritize host 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" northd allows us to announce host routes instead of connected routes of LRs. For the host routes we also know the LSP that host the address. We can then check if this LSP is pointing to a LRP that is also local to the current chassis, so if a LR is chained behind an LR and both use chassisredirect ports. In this case we can announce the route with a more preferable priority than otherwise. This helps in the following case: * the backend router is bound on only a single chassis * the frontend router is bound to multiple chassis (with multiple LRPs) * one of the chassis of the frontend router matches the backend router In this case it would be preferable if the network fabric sends the traffic to the chassis that hosts both the frontend and backend router. Other chassis would work as well, but then OVN would redirect the traffic from one chassis to the other. So this allows us to skip tunneling traffic in one case. Signed-off-by: Felix Huettner --- controller/route-exchange-netlink.c | 20 ++++++++++++-------- controller/route-exchange-netlink.h | 4 ++-- controller/route.c | 29 +++++++++++++++++++++++++++++ controller/route.h | 1 + 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/controller/route-exchange-netlink.c b/controller/route-exchange-netlink.c index ee33d08d2..1d6e1a58e 100644 --- a/controller/route-exchange-netlink.c +++ b/controller/route-exchange-netlink.c @@ -102,7 +102,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) + const struct in6_addr *dst, unsigned int plen, + unsigned int priority) { uint32_t flags = NLM_F_REQUEST | NLM_F_ACK; bool is_ipv4 = IN6_IS_ADDR_V4MAPPED(dst); @@ -128,6 +129,7 @@ modify_route(uint32_t type, uint32_t flags_arg, uint32_t table_id, rt->rtm_dst_len = plen; nl_msg_put_u32(&request, RTA_TABLE, table_id); + nl_msg_put_u32(&request, RTA_PRIORITY, priority); if (is_ipv4) { nl_msg_put_be32(&request, RTA_DST, in6_addr_get_mapped_ipv4(dst)); @@ -143,7 +145,7 @@ modify_route(uint32_t type, uint32_t flags_arg, uint32_t table_id, int re_nl_add_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen) + unsigned int plen, unsigned int priority) { uint32_t flags = NLM_F_CREATE | NLM_F_EXCL; uint32_t type = RTM_NEWROUTE; @@ -155,12 +157,12 @@ re_nl_add_route(uint32_t table_id, const struct in6_addr *dst, return EINVAL; } - return modify_route(type, flags, table_id, dst, plen); + return modify_route(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 plen, unsigned int priority) { if (!TABLE_ID_VALID(table_id)) { VLOG_WARN_RL(&rl, @@ -169,7 +171,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); + return modify_route(RTM_DELROUTE, 0, table_id, dst, plen, priority); } static uint32_t @@ -228,13 +230,14 @@ handle_route_msg_delete_routes(const struct route_table_msg *msg, void *data) uint32_t arhash = advertise_route_hash(&rd->rta_dst, rd->plen); HMAP_FOR_EACH_WITH_HASH (ar, node, arhash, routes) { if (ipv6_addr_equals(&ar->addr, &rd->rta_dst) - && ar->plen == rd->plen) { + && ar->plen == rd->plen && ar->priority == rd->rta_priority) { ar->installed = true; return; } } + err = re_nl_delete_route(rd->rta_table_id, &rd->rta_dst, - rd->plen); + rd->plen, rd->rta_priority); if (err) { char addr_s[INET6_ADDRSTRLEN + 1]; VLOG_WARN_RL(&rl, "Delete route table_id=%"PRIu32" dst=%s plen=%d: %s", @@ -271,7 +274,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); + int err = re_nl_add_route(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 " diff --git a/controller/route-exchange-netlink.h b/controller/route-exchange-netlink.h index 566b38fde..4c0f37a98 100644 --- a/controller/route-exchange-netlink.h +++ b/controller/route-exchange-netlink.h @@ -37,9 +37,9 @@ 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 plen, unsigned int priority); int re_nl_delete_route(uint32_t table_id, const struct in6_addr *dst, - unsigned int plen); + unsigned int plen, unsigned int priority); void re_nl_dump(uint32_t table_id); diff --git a/controller/route.c b/controller/route.c index 6aaabe576..3af7b8859 100644 --- a/controller/route.c +++ b/controller/route.c @@ -33,6 +33,9 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); * in the corresponding VRF interface name. */ #define MAX_TABLE_ID 1000000000 +#define PRIORITY_DEFAULT 1000 +#define PRIORITY_LOCAL_BOUND 100 + bool route_exchange_relevant_port(const struct sbrec_port_binding *pb) { @@ -66,6 +69,19 @@ find_local_crp(struct ovsdb_idl_index *sbrec_port_binding_by_name, return lport_lookup_by_name(sbrec_port_binding_by_name, crp); } +static const struct sbrec_port_binding* +find_local_crp_by_name(struct ovsdb_idl_index *sbrec_port_binding_by_name, + const struct sbrec_chassis *chassis, + const struct sset *active_tunnels, + const char *port_name) +{ + const struct sbrec_port_binding *pb = lport_lookup_by_name( + sbrec_port_binding_by_name, port_name); + + return find_local_crp(sbrec_port_binding_by_name, chassis, active_tunnels, + pb); +} + static void advertise_datapath_cleanup(struct advertise_datapath_entry *ad) { @@ -162,11 +178,24 @@ route_run(struct route_ctx_in *r_ctx_in, continue; } + unsigned int priority = PRIORITY_DEFAULT; + + if (route->tracked_port) { + if (find_local_crp_by_name( + r_ctx_in->sbrec_port_binding_by_name, + r_ctx_in->chassis, + r_ctx_in->active_tunnels, + route->tracked_port)) { + priority = PRIORITY_LOCAL_BOUND; + } + } + struct advertise_route_entry *ar = xzalloc(sizeof(*ar)); hmap_insert(&ad->routes, &ar->node, advertise_route_hash(&prefix, plen)); ar->addr = prefix; ar->plen = plen; + ar->priority = priority; } sbrec_route_index_destroy_row(route_filter); diff --git a/controller/route.h b/controller/route.h index ca309c7be..b5aab50cb 100644 --- a/controller/route.h +++ b/controller/route.h @@ -59,6 +59,7 @@ struct advertise_route_entry { struct hmap_node node; struct in6_addr addr; unsigned int plen; + unsigned int priority; /* used by the route-exchange module to determine if the route is * already installed */ bool installed;