From patchwork Fri Dec 15 17:01:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Bianconi X-Patchwork-Id: 1876693 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" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=eEfjJm2f; 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 4SsFrW4Cm1z23nF for ; Sat, 16 Dec 2023 04:02:19 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id A8C216F7F4; Fri, 15 Dec 2023 17:02:15 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A8C216F7F4 Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=eEfjJm2f X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OiThVRkOM1E7; Fri, 15 Dec 2023 17:02:14 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id C0F6B6107D; Fri, 15 Dec 2023 17:02:13 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org C0F6B6107D Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 79C90C0DCF; Fri, 15 Dec 2023 17:02:13 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id A5686C0DCF for ; Fri, 15 Dec 2023 17:02:10 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 808436FA1B for ; Fri, 15 Dec 2023 17:02:10 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 808436FA1B X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PqmaeAGgc-yO for ; Fri, 15 Dec 2023 17:02:09 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp3.osuosl.org (Postfix) with ESMTPS id D0EDC6107D for ; Fri, 15 Dec 2023 17:02:07 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org D0EDC6107D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702659726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vn/D+oajTuVm1E0LWPH21p1EmjsSej2RY7oOmDbXDCA=; b=eEfjJm2f8wxZo8NFudx7lCZj6nz8xgxb3nP7r5LAmyC/5Bm/9ov44yMr0W/HkrXn+eEqmD Z1A0uEdbXExqmiulKWtzZjVLG4E6tyxksP5eO8nmoem0owBUX2qH4o0FiVBrsIQxQmHzqc nmQFFslhvGD7vc/mkg+ugRhMnOuI650= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-317-VIMpm_mCPc2Cn0njjJsaYQ-1; Fri, 15 Dec 2023 12:02:05 -0500 X-MC-Unique: VIMpm_mCPc2Cn0njjJsaYQ-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-40c1d2b1559so6174385e9.3 for ; Fri, 15 Dec 2023 09:02:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702659724; x=1703264524; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Vn/D+oajTuVm1E0LWPH21p1EmjsSej2RY7oOmDbXDCA=; b=J3tz/YH7FHC1UuSJFA18HR+w3yDeCmU6zu3y+d2rt8Glg9Hi8ydAWMGVpEevIBEqA9 qftelkXSNT0RDevX3uqQXlKzPlwtfejz8ochRUQGGFuGq5dB3YuIPGmiWs20HEOIjrFy vcX0j5VxIrfZ+V4Ev7ywtvIHXq+mHIIEV1KUhObkI8EuWCSCouPsFaBiCzY7R8F3pHDv bppclYOB7PoN5tXEhrGtcr39IcFuGDR/7z/CO5RpqpBLAyX+wlL4Bp03iaafN73nqvKY /yUDHHifsI7SED4d8cZDKfM7EYOHV3Ex23RXxWocJPjoiEl9UzjoJQ3UbDd/oq5pP9OO Pxjw== X-Gm-Message-State: AOJu0Yzgv7p0wtGPOum1XR5tdhaxcXEufLyoeVTGJbRRVIq1+Qiu4klp gijQOCv3VUOCDHAIdL28I9RwX48cxdvy+3UKnw4tTteUPGmW4b/2cKcSUlNBvxewwXlycsqM4Jx PC1n1lxHc15jf3vmVDX+YWvaoBPtMMFyxu+TwWUlI99EJef4bJxLOEK784DM4542BMCcmRcJVRU FhsAP1b9WllN90 X-Received: by 2002:a05:600c:3644:b0:40b:4c39:b4e with SMTP id y4-20020a05600c364400b0040b4c390b4emr6067716wmq.1.1702659723770; Fri, 15 Dec 2023 09:02:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IEpN6vVre4OvpNd/zNIN9ZEfVRk2jwxqVm+E+f/Z4RckzojvRTgTzOncY9U7iXBGNtzvKV61w== X-Received: by 2002:a05:600c:3644:b0:40b:4c39:b4e with SMTP id y4-20020a05600c364400b0040b4c390b4emr6067699wmq.1.1702659723145; Fri, 15 Dec 2023 09:02:03 -0800 (PST) Received: from localhost (net-93-71-3-198.cust.vodafonedsl.it. [93.71.3.198]) by smtp.gmail.com with ESMTPSA id g10-20020a5d46ca000000b003364a398398sm4408028wrs.9.2023.12.15.09.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Dec 2023 09:02:02 -0800 (PST) From: Lorenzo Bianconi To: ovs-dev@openvswitch.org Date: Fri, 15 Dec 2023 18:01:43 +0100 Message-ID: <3957de4e1a47075fd8251156c01ec06cad9ba60a.1702659678.git.lorenzo.bianconi@redhat.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Cc: dceara@redhat.com Subject: [ovs-dev] [PATCH ovn] test: add dedicated test for garp-max-timeout 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Introduce a dedicated test for garp-max-timeout knob Signed-off-by: Lorenzo Bianconi --- tests/ovn.at | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/tests/ovn.at b/tests/ovn.at index 918f97a9e..25b101a7a 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -37464,3 +37464,85 @@ wait_for_ports_up OVN_CLEANUP([hv1]) AT_CLEANUP ]) + +OVN_FOR_EACH_NORTHD([ +AT_SETUP([gratuitous arp max timeout]) +AT_KEYWORDS([garp-timeout]) +AT_SKIP_IF([test $HAVE_TCPDUMP = no]) +ovn_start + +ovn-nbctl ls-add ls0 +ovn-nbctl lr-add lr0 +ovn-nbctl lrp-add lr0 lr0-ls0 f0:00:00:00:00:01 192.168.0.1/24 +ovn-nbctl lsp-add ls0 ls0-lr0 -- set Logical_Switch_Port ls0-lr0 \ + type=router options:router-port=lr0-ls0 addresses='"f0:00:00:00:00:01"' + +ovn-nbctl lsp-add ls0 ln_port +ovn-nbctl lsp-set-addresses ln_port unknown +ovn-nbctl lsp-set-type ln_port localnet +ovn-nbctl --wait=hv lsp-set-options ln_port network_name=physnet1 + +# Prepare packets +touch empty_expected +echo "fffffffffffff0000000000108060001080006040001f00000000001c0a80001000000000000c0a80001" > arp_expected + +net_add n1 +sim_add hv1 +as hv1 +ovs-vsctl \ + -- add-br br-phys \ + -- add-br br-eth0 + +ovn_attach n1 br-phys 192.168.0.10 + +AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0]) +AT_CHECK([ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap]) + +ovn-sbctl dump-flows > sbflows +AT_CAPTURE_FILE([sbflows]) + +# Wait until the patch ports are created in hv1 to connect br-int to br-eth0 +AT_CHECK([ovn-nbctl set logical_router lr0 options:chassis=hv1]) +OVN_WAIT_PATCH_PORT_FLOWS(["ln_port"], ["hv1"]) +# Temporarily remove lr0 chassis +# Wait for hv confirmation to make sure chassis is removed before we reset pcap +# Otherwise a garp might be sent after pcap have been reset but before chassis is removed +AT_CHECK([ovn-nbctl --wait=hv remove logical_router lr0 options chassis]) + +as hv1 reset_pcap_file snoopvif hv1/snoopvif +hv1_uuid=$(ovn-sbctl --bare --columns _uuid list chassis hv1) +AT_CHECK([ovn-nbctl set logical_router lr0 options:chassis=hv1]) +OVS_WAIT_UNTIL([ + ls0_lr0=$(ovn-sbctl --bare --columns chassis list port_binding ls0-lr0) + test "$ls0_lr0" = $hv1_uuid +]) + +OVN_CHECK_PACKETS_CONTAIN([hv1/snoopvif-tx.pcap], [arp_expected]) +# Temporarily remove lr0 chassis +AT_CHECK([ovn-nbctl --wait=hv remove logical_router lr0 options chassis]) + +as hv1 reset_pcap_file snoopvif hv1/snoopvif +# set garp max timeout to 2s +AT_CHECK([as hv1 ovs-vsctl set Open_vSwitch . external-ids:garp-max-timeout-sec=2]) +AT_CHECK([ovn-nbctl --wait=hv set logical_router lr0 options:chassis=hv1]) + +OVS_WAIT_UNTIL([ +n_arp=$(tcpdump -c 10 -ner hv1/snoopvif-tx.pcap arp | wc -l) +test "$n_arp" = 10 +]) + +AT_CHECK([ovn-nbctl --wait=hv remove logical_router lr0 options chassis]) +as hv1 reset_pcap_file snoopvif hv1/snoopvif +# set garp max timeout to 2s +AT_CHECK([as hv1 ovs-vsctl set Open_vSwitch . external-ids:garp-max-timeout-sec=1]) +AT_CHECK([ovn-nbctl --wait=hv set logical_router lr0 options:chassis=hv1]) + +OVS_WAIT_UNTIL([ +n_arp=$(tcpdump -c 20 -ner hv1/snoopvif-tx.pcap arp | wc -l) +test "$n_arp" = 20 +]) + +OVN_CLEANUP([hv1]) + +AT_CLEANUP +])