From patchwork Mon Jul 29 05:23:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naveen Yerramneni X-Patchwork-Id: 1965829 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=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=proofpoint20171006 header.b=I/dJY8r2; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=selector1 header.b=vbPlZFoW; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) (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 4WXRbW0Nycz1yYq for ; Mon, 29 Jul 2024 15:23:34 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 8DB6B811C7; Mon, 29 Jul 2024 05:23:32 +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 qOvrNyg2Udfn; Mon, 29 Jul 2024 05:23:30 +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 smtp1.osuosl.org A8B0081184 Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=proofpoint20171006 header.b=I/dJY8r2; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=selector1 header.b=vbPlZFoW Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp1.osuosl.org (Postfix) with ESMTPS id A8B0081184; Mon, 29 Jul 2024 05:23:30 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0F0F1C002B; Mon, 29 Jul 2024 05:23:30 +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 3EBE1C002A for ; Mon, 29 Jul 2024 05:23:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 2ED2F4016D for ; Mon, 29 Jul 2024 05:23:28 +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 R6u_iVL6DBfV for ; Mon, 29 Jul 2024 05:23:27 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=148.163.155.12; helo=mx0b-002c1b01.pphosted.com; envelope-from=naveen.yerramneni@nutanix.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org B0F49400C5 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=nutanix.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org B0F49400C5 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=proofpoint20171006 header.b=I/dJY8r2; dkim=pass (2048-bit key, unprotected) header.d=nutanix.com header.i=@nutanix.com header.a=rsa-sha256 header.s=selector1 header.b=vbPlZFoW Received: from mx0b-002c1b01.pphosted.com (mx0b-002c1b01.pphosted.com [148.163.155.12]) by smtp2.osuosl.org (Postfix) with ESMTPS id B0F49400C5 for ; Mon, 29 Jul 2024 05:23:26 +0000 (UTC) Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46SNSOmB020493 for ; Sun, 28 Jul 2024 22:23:25 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=proofpoint20171006; bh=fO6OYw0adiK5K 0cLOfLw0O/xSAe7ermO5wFKCSK2TyM=; b=I/dJY8r2mntdbZ8qUf5isRn5JJE/e 2i+96dG4QDMTjApd40s4UcwgnpSOTDnsXK/xyMoAMZsL3lPUwcbO8/6pqQfBa+7q Mxvd8tpE7K7/6OdUaqmEPLNChi4K/FBs2OyurSbwj8Ti10RSc2HyOUxJNO2ZzxwB BzQXNOpcWi+zpflNN+f1S40hFNl3uyxbKPkIXRpcpaugNeq2EYF5mZIvwWRV6t0w 1ZHrSeLGNGeEOFcY2NLqYj1AJht+N5V664hBHILrNtcKldeMS4n29IMSeuuSMf+h givcHcY8JSji0hJ1f+mQMaXQkCeUJLDyuPeg7xDrhL7U/6Zh/51kUQ59w== Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazlp17011024.outbound.protection.outlook.com [40.93.13.24]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 40n07c28df-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sun, 28 Jul 2024 22:23:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bJ3UkT10jJwCo8Dxu9sEmy/iEGLZwZVirg4WZ80eYtS/pbTPpI3RqoxL6qgLInMCv5lV9FHpOvPsAPWnpa4wsAGyjlC5WZ0zlh7LfYaVMd/bx3KocmeiaOP/2sJtzO2umoj7hyou5WcxSHpeiMDYe+N7UYYebBOi964Rr9Loskzkj9eqNOfJlZILpTji8c2pkYLlmeDYy9wT2C5mvs3tSSBgT31hKjiIIXYzTzCG1f+rFV3l7R3essYMiAtbC61IDb3kaEofJcNpy9jwXCu7QU5uMlDFmGZ25cYrpUMYG5ikmbPQa2H2MaC0xm1Lq2iVeEkxJrMEiULWd7xK/pflaA== 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=fO6OYw0adiK5K0cLOfLw0O/xSAe7ermO5wFKCSK2TyM=; b=Lz4UxtU2fOK0bnF3I9cmiG4AxFTCeOWCi0c7a+lhNEP0TquufXbZl+7IrmNhd/WYq/dNpH+gMcjZ65MLnMcD9eWpQxcbauK6giCxNZ82j1XQmtKq+PWlk6ICxX+J9vu2wXLf4vrUQPGD4UhWr/45YqT6yhUmqaue00cCxKj1QL9vf97PNbJeBdQUtokO5vrNnPZZTHIl3U9qWEls2K647CHKEvRdg2CwQr6iJ8E0vV50bEZ3Hu/Ze4iYDmEf/GPnyE/PXXfs8VYSxR19SeMGm6BNBbNpMSFKByQbNzMgbIU3vD71Qb4iShICZIa715HtLAwNfvFAY4p8a9ijLbzISg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fO6OYw0adiK5K0cLOfLw0O/xSAe7ermO5wFKCSK2TyM=; b=vbPlZFoWSncG0r82w4Wb662J9RQtboxfe2SVh2jUQ3Pa+Lt7j9DS6OAg0v8kaq87PahUr3BgPzAR35oLo/XneNiccX4FVhyZlzCu6nBMBp08qjFMjfJl2PdKme6ZF0raryArOmNzCq7mSylLvQDJiluQzAZrYF8frmPCuoyFQOTh9g9nJU+yLJpoyOUVNqb4i7EbkfZ9TJagcNIvFQYKeOnK4RBjFjSKNzFevgVk7fCWFAzlB1iJixzMfyMYnhJBufOWl2YuvrEvj1IZ94nYziV3i5W/bXIrNsX4AJu5xH3UFhB5JPD76OyrgN5yHtx9T17ZU13wvgLtqZelCDfoPA== Received: from SJ0PR02MB7808.namprd02.prod.outlook.com (2603:10b6:a03:326::16) by BL3PR02MB8098.namprd02.prod.outlook.com (2603:10b6:208:35d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.27; Mon, 29 Jul 2024 05:23:23 +0000 Received: from SJ0PR02MB7808.namprd02.prod.outlook.com ([fe80::c879:5909:29d3:9770]) by SJ0PR02MB7808.namprd02.prod.outlook.com ([fe80::c879:5909:29d3:9770%4]) with mapi id 15.20.7807.026; Mon, 29 Jul 2024 05:23:23 +0000 From: Naveen Yerramneni To: dev@openvswitch.org Date: Mon, 29 Jul 2024 05:23:10 +0000 Message-Id: <20240729052310.71021-1-naveen.yerramneni@nutanix.com> X-Mailer: git-send-email 2.36.6 X-ClientProxiedBy: SJ0PR13CA0193.namprd13.prod.outlook.com (2603:10b6:a03:2c3::18) To SJ0PR02MB7808.namprd02.prod.outlook.com (2603:10b6:a03:326::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR02MB7808:EE_|BL3PR02MB8098:EE_ X-MS-Office365-Filtering-Correlation-Id: 176211f5-2122-4c43-826d-08dcaf8e90c8 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: XKbkY4pzOcI5IQfhe3qomKLt8Wd6VcqXEoSBilfDvAX+7XeeEyx5sgRoMk3uiU9zCyewliTDdHVn3Z7s24TySjHoM/dJN4CzGj8Q3+rAwkb8tp1IiE+A2n4CA34vQpSM+ICy8rQRjnhzb/tdjJrOgXh4kj0VkTAK1xOJ09s6U2fmzfNN+GgQErbuRcbBlbHNTpwoQZCubHwCBDz2ZjZpUqKSo0Zoe6VdSkLn5iQv/JBY//N0gcUqNeMC8Q06K/cdGypU0AfYjuUT4pQFEyyh+cp2dRwvjBLq/PGK+W/tXLTL7C/GVFRVYXKCOeeCavTmBQz8U0mlPT9eUw4N9h/O6JU0TpY4FckQD6j6lGqjTbtaL6y4Abl7FaU0anoC5oefRCX0Y2kcn4lJhfHN7NtYOVM+35BCBcAuVzghZfarv3VnwMbTaVpj8Fi2iZ8mt46j2CrbVB/nyaDURqsjEeaTCkRTioX8E3dg3tm0yGB139aSDOi+iLkCK3TsqOWDGVLBqf02dcwX0POcLaYLnIWb7HnUyitkZWUn4CetlQW3nOouhs1hpxSWaEcfCBRSSWsSdLSfoiYG65J76a2QErv04jT/YE/r+Zfc82qlis1/Peo3W5brJd9C9boBycYqSkxU5CgOyo5YUMu2SCIRH/yKPK97+ESYcEU/Tn3rKv58UhkTsARoabXS0wV2K+XNvfAwsrZsYpddDuKTIY6JMLVYRvxnRGqHglfAba7oveb8OednTWYHhIrZf9AtiJQMmBQ+mN4Hm4bFfS59HneEEy9JLM9wstcHa84HxlzWKtCkTwskAXBuhRPgowxvahGOlupYJjWoNG90yozHAj226yhvZR+lEYaO7l/aLTMVbxtcZ1fUwR20XeZB6BZ/czVFrLqLEn9SfOin/7BV1YnU1AW5r3ObNO7YjTrGYMPmkk7CIDpb0gXRaZhv232Ry5lrnYAxkm9t/qM9ssyJEIbWAceiliT3R9cGKkTO19cHj7CzcvfBCYAnv31E7pOzcJcyH6wdkQQYHtLjUnbwI5Og4o9stxS9/uabSNyt6e7JRmBeWV+zUMptYgHF8AJ50jZSyfUsyR9KZUiPdbim4xxdcswMhT5DdOjTF2BV9JoJxATgyLmLtIImUGvpglRRn93o0U9ZPgDpOKWH3FZGHr00L8CCvdXaYX/9rX+zOFujqJQtMlZQUpwlgU2JohZ5n7oNTKY+hGt1Ee6Xd0nz2BUay5cS6GxzMcIa7F5kfK1dI6j+jZjpudv2vOgJF9wZSbnqjRwp5gmyG27z8Mcx6JS/pY+UUxv9inOMtXuH3dsKLB7mwUAISgMj5IQqSXIJHUnYoVhYYeapl92YZqHzzpP4oIjAkM1IWAb0PgTnXdkq5I3/w0+XEaiJ7wtqn5wBDH+vLA1LUS7Z86jFYJIEqO2WyJKRyA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR02MB7808.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(52116014)(366016)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: dnk5SvPMqWXg18I0jsI2HjZbfmuFcfZCdxwFI/W3oyYblqntF8M9TFBeAd/ukRRHFitM7P/Ktzt33nh4lh/RJSTr/AA7z60aA/gYYyeLsqk+DSn3xVOm4yekOYOV8CmnNSYZ5MPRricLv0ESYZaF6Ba7lsldtEXR0kM1vhPDB+FMDHhRPEh4qkx+X1gLxWuMgCU5MLM0bTVG2M3YLBjRw5hQx2lQW9w2PBGY36XxLdI/ZG/u35EvDyEcyMXUX+4ffEZLaZuXsP+kfBq4ci6GFLHRkgh3d6OlBjKkdpcvyq4Be6KTxmq+Vuw55ke/nivMEs/U2oSgzVHRfA3VDVwYmCKGyswEot2oTQpB1N3eKDkdVpBXyX7UqagiMhtI61bte6EKrp5YdvjgTkcj7xeQMRoofWvn3XU6c7QPyr0KlR+jJWVXCmdW21PpYEGUJTU5Dgwt71otxrEtgKlpt5PH63WopJQdfhr1Q+oP8aFGY1b83VwhaxZZDFAeZ+Z1Ud6yYDISIzTG6DDkyBWw5NN0F5i3ySwHrgaCSfPHzZqIGT2KIW91NZg2Cl+UHiMyf9krbu5wH9+4NeoIoG1EikwGnNMNUiFNk0roUVZJc9bsrgVr9pMZQ6w2w/9MOD1pl0YJLNakWRIBJKK8G9JCiRQ48+LKbHqxFpgPSnIllfN9QKAGQBI3Sa3EIUvrWu97+u2h9lpkMCBS1qaS/8zsiOliqKqZBF+55b4CvlBZ4Gi+Bbrjc70wUEgWsgLUYsBQwJkcIeXWOM3HwFbMr82d5UPq9k8UydR/aiDIsinJsYGSpklXzSLZqWAHcXrcqKlIAQz3qBztxKcX2CI/KFHdikDMJB3jHdokZHgtjHL4GsZMMIJvwFVyBG9STG0gyMTeTzeOqdgt7FJ7vLfS93fedkjZ9w09g5fyZTDaQ5ogK5glEdwotVp9knkv9figzbUFzrK/IMMqvs8zVKEn/o32oWF7h9StVJG4T+K1ckgUxJappELWunowzetKBe7yRaZ51arJqr/SLBv5bnZvjyswzR1EytKe70Mr+wnIWIOughfDeMrUWTy5oBXlR4TupwIm+Q0FUIr+KRmxMfZJwdq4C85sHnrbDQreRrDNlKejZMG7iB/DvmWqYh9nmZ7bj/b44JlWw93H7WM1p/AVd3auOms/Pt+hh0+HIU6L8CFAoMVZA73+tWZOcifYxR4oZD6wMC7nG9ts7tYdlnF9AdY27aRbokmmjWj7MnNCXdBXjbY8QNY/uudA9rkaKX9Fapw3bpAD3zZnRSJqA0z6xToAzSrkwi4aYU+oRkQJd3qQiDkLY3re/9pARGbvzRlWk0gEXlfG0FekKb1BuWZr0sHSRmrrdY4iLaNZb2i8pF3JWBUvI4NC1Gf+dz7l2ByabtDb/MFcQPGUVoaRdB85R5BVtQzam8z/j4CzZiqDTX2GHmvMDOxzGzcLY+JiFl3pokLuMDF4B1i5xSLEBRBus5KF/d7HJAfYvwL6uqMdj1nv+Med0+w1l24s2ALF/wxY0Z3iukC/9qilFLEJj9e8i+bu3EGotd3fze3cw7KquSb/ako4kpJK+rjL/woQkkDF60sAdQtANSeEosSeBctvqy0SLh61zl47PWFZVYO6BTTDzQyME2s= X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 176211f5-2122-4c43-826d-08dcaf8e90c8 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR02MB7808.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2024 05:23:23.0435 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KDiiX96vFMdU7kfcvLTgAT3jGnH46b8h/66SF3/pSpksEDlubpKb/GMqtNLGG71dpG/qk41j1wvC/VziJsCTtzkbqZ+lKS6QlY6NPFeAG2U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR02MB8098 X-Proofpoint-GUID: yg4cVkj_n35Q2egZ3FVUXnQEKwnBb9Lh X-Proofpoint-ORIG-GUID: yg4cVkj_n35Q2egZ3FVUXnQEKwnBb9Lh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-29_03,2024-07-26_01,2024-05-17_01 X-Proofpoint-Spam-Reason: safe Subject: [ovs-dev] [PATCH ovn v2] tests: Add system tests for MAC_Binding. 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: , Cc: shibir.basak@nutanix.com Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" 1. Test to validate traffic that needs ARP resolution when SB is disconnected. 2. Test to validate MAC binding buffer limit when SB is disconnected. Signed-off-by: Naveen Yerramneni --- v2: - Use timeout for ping command. - Capture ovn counters file. --- tests/system-ovn.at | 224 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) diff --git a/tests/system-ovn.at b/tests/system-ovn.at index c24ede7c5..5a76f0804 100644 --- a/tests/system-ovn.at +++ b/tests/system-ovn.at @@ -13027,3 +13027,227 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/failed to query port patch-.*/d /connection dropped.*/d"]) AT_CLEANUP ]) + +OVN_FOR_EACH_NORTHD([ +AT_SETUP([SB Disconnect - MAC_Binding]) +ovn_start +OVS_TRAFFIC_VSWITCHD_START() + +ADD_BR([br-int]) +ADD_BR([br-ext]) + +SB_PATH="unix:$ovs_base/ovn-sb/ovn-sb.sock" +ovs-ofctl add-flow br-ext action=normal +# Set external-ids in br-int needed for ovn-controller +ovs-vsctl \ + -- set Open_vSwitch . external-ids:system-id=hv1 \ + -- set Open_vSwitch . external-ids:ovn-remote=$SB_PATH \ + -- set Open_vSwitch . external-ids:ovn-encap-type=geneve \ + -- set Open_vSwitch . external-ids:ovn-encap-ip=169.0.0.1 \ + -- set bridge br-int fail-mode=secure other-config:disable-in-band=true + +# Start ovn-controller +start_daemon ovn-controller + +ADD_NAMESPACES(sw01) +ADD_VETH(sw01, sw01, br-int, "192.168.1.10/24", "f0:00:00:01:02:03", \ + "192.168.1.1") +ADD_NAMESPACES(server) +ADD_VETH(s1, server, br-ext, "172.16.1.1/24", "f0:00:00:01:02:05", \ + "172.16.1.254") +NS_CHECK_EXEC([server], [ip addr add 172.16.1.2 dev s1]) +check ovn-nbctl lr-add R1 + +check ovn-nbctl ls-add sw0 +check ovn-nbctl ls-add sw-ext + +check ovn-nbctl lrp-add R1 rp-sw0 00:00:01:01:02:03 192.168.1.1/24 +check ovn-nbctl lrp-add R1 rp-ext 00:00:02:01:02:03 172.16.1.254/16 + +check ovn-nbctl lrp-set-gateway-chassis rp-ext hv1 + +check ovn-nbctl lsp-add sw0 sw0-rp -- set Logical_Switch_Port sw0-rp \ + type=router options:router-port=rp-sw0 \ + -- lsp-set-addresses sw0-rp router + +check ovn-nbctl set Logical_Switch sw0 other_config:dhcp_relay_port=sw0-rp + +check ovn-nbctl lsp-add sw-ext ext-rp -- set Logical_Switch_Port ext-rp \ + type=router options:router-port=rp-ext \ + -- lsp-set-addresses ext-rp router +check ovn-nbctl lsp-add sw-ext lnet \ + -- lsp-set-addresses lnet unknown \ + -- lsp-set-type lnet localnet \ + -- lsp-set-options lnet network_name=phynet + +check ovn-nbctl lsp-add sw0 sw01 \ + -- lsp-set-addresses sw01 "f0:00:00:01:02:03 192.168.1.10" + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext]) +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote-probe-interval=100]) + +OVN_POPULATE_ARP + +check ovn-nbctl --wait=hv sync + +AS_BOX([Verify ARP resolution is working when SB is in connected state]) + +AT_CHECK([ovn-appctl connection-status], [0], [dnl +connected +]) + +NS_CHECK_EXEC([server], [tcpdump -l -nvv -i s1 icmp > pkt.pcap 2>tcpdump_err &]) +OVS_WAIT_UNTIL([grep "listening" tcpdump_err]) +on_exit 'kill $(pidof tcpdump)' + +NS_CHECK_EXEC([sw01], [ping -q -c 2 -i 0.2 -w 2 172.16.1.1 | FORMAT_PING], +[0], [dnl +2 packets transmitted, 2 received, 0% packet loss, time 0ms +]) + +OVS_WAIT_UNTIL([ + total_pkts=$(cat pkt.pcap | wc -l) + test ${total_pkts} -ge 2 +]) + +AS_BOX([Disconnect SB and test ping that generates new ARP]) + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=tcp:127.0.0.1:1234]) + +sleep 1 +AT_CHECK([ovn-appctl connection-status], [0], [dnl +not connected +]) + +NS_CHECK_EXEC([sw01], [ping -q -c 2 -i 0.5 -w 1 172.16.1.2 | FORMAT_PING | sed 's/.* packets/n packets/'], +[0], [dnl +n packets transmitted, 0 received, 100% packet loss, time 0ms +]) + +ovn-sbctl list fdb +AS_BOX([Test traffic for which ARP entry existed in MAC_Binding table]) +NS_CHECK_EXEC([sw01], [ping -q -c 2 -i 0.2 -w 2 172.16.1.1 | FORMAT_PING], +[0], [dnl +2 packets transmitted, 2 received, 0% packet loss, time 0ms +]) + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=$SB_PATH]) +OVS_APP_EXIT_AND_WAIT([ovn-controller]) + +as ovn-sb +OVS_APP_EXIT_AND_WAIT([ovsdb-server]) + +as ovn-nb +OVS_APP_EXIT_AND_WAIT([ovsdb-server]) + +as northd +OVS_APP_EXIT_AND_WAIT([ovn-northd]) + +as +OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d +/failed to query port patch-.*/d +/.*terminating with signal 15.*/d"]) +AT_CLEANUP +]) + +OVN_FOR_EACH_NORTHD([ +AT_SETUP([SB Disconnect - MAC_Binding buffer limit]) +ovn_start +OVS_TRAFFIC_VSWITCHD_START() + +ADD_BR([br-int]) +ADD_BR([br-ext]) + +SB_PATH="unix:$ovs_base/ovn-sb/ovn-sb.sock" +ovs-ofctl add-flow br-ext action=normal +# Set external-ids in br-int needed for ovn-controller +ovs-vsctl \ + -- set Open_vSwitch . external-ids:system-id=hv1 \ + -- set Open_vSwitch . external-ids:ovn-remote=$SB_PATH \ + -- set Open_vSwitch . external-ids:ovn-encap-type=geneve \ + -- set Open_vSwitch . external-ids:ovn-encap-ip=169.0.0.1 \ + -- set bridge br-int fail-mode=secure other-config:disable-in-band=true + +# Start ovn-controller +start_daemon ovn-controller + +ADD_NAMESPACES(sw01) +ADD_VETH(sw01, sw01, br-int, "192.168.1.10/24", "f0:00:00:01:02:03", \ + "192.168.1.1") +ADD_NAMESPACES(server) +ADD_VETH(s1, server, br-ext, "172.16.1.1/24", "f0:00:00:01:02:05", \ + "172.16.1.254") + +check ovn-nbctl lr-add R1 + +check ovn-nbctl ls-add sw0 +check ovn-nbctl ls-add sw1 +check ovn-nbctl ls-add sw-ext + +check ovn-nbctl lrp-add R1 rp-sw0 00:00:01:01:02:03 192.168.1.1/24 +check ovn-nbctl lrp-add R1 rp-ext 00:00:02:01:02:03 172.16.1.254/16 + +check ovn-nbctl lrp-set-gateway-chassis rp-ext hv1 + +check ovn-nbctl lsp-add sw0 sw0-rp -- set Logical_Switch_Port sw0-rp \ + type=router options:router-port=rp-sw0 \ + -- lsp-set-addresses sw0-rp router + +check ovn-nbctl set Logical_Switch sw0 other_config:dhcp_relay_port=sw0-rp + +check ovn-nbctl lsp-add sw-ext ext-rp -- set Logical_Switch_Port ext-rp \ + type=router options:router-port=rp-ext \ + -- lsp-set-addresses ext-rp router +check ovn-nbctl lsp-add sw-ext lnet \ + -- lsp-set-addresses lnet unknown \ + -- lsp-set-type lnet localnet \ + -- lsp-set-options lnet network_name=phynet + +check ovn-nbctl lsp-add sw0 sw01 \ + -- lsp-set-addresses sw01 "f0:00:00:01:02:03 192.168.1.10" + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=phynet:br-ext]) + +OVN_POPULATE_ARP + +check ovn-nbctl --wait=hv sync + +AS_BOX([Disconnect SB and send ping to generate multiple ARPs (>1000)]) +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=tcp:127.0.0.1:1234]) +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote-probe-interval=100]) + +sleep 1 +AT_CHECK([ovn-appctl connection-status], [0], [dnl +not connected +]) + +for i in {1..11}; do + for j in {1..100}; do + NS_EXEC([sw01], [timeout 0.1 ping -q -c 1 -W 0.1 172.16.$i.$j >/dev/null 2>&1 &]) + done +done + +AS_BOX([Verify pinctrl_drop_buffered_packets_map counter]) +ovn-appctl coverage/show >ovn_counters +AT_CAPTURE_FILE([ovn_counters]) +AT_CHECK([grep -q "pinctrl_drop_buffered_packets_map" ovn_counters], [0]) + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=$SB_PATH]) + +OVS_APP_EXIT_AND_WAIT([ovn-controller]) + +as ovn-sb +OVS_APP_EXIT_AND_WAIT([ovsdb-server]) + +as ovn-nb +OVS_APP_EXIT_AND_WAIT([ovsdb-server]) + +as northd +OVS_APP_EXIT_AND_WAIT([ovn-northd]) + +as +OVS_TRAFFIC_VSWITCHD_STOP(["/.*error receiving.*/d +/failed to query port patch-.*/d +/.*terminating with signal 15.*/d"]) +AT_CLEANUP +])