From patchwork Thu Nov 14 13:57:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011358 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=TxI7ucur; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (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 4Xq1vf4XDVz1xxN for ; Fri, 15 Nov 2024 00:58:22 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id DBADF407C0; Thu, 14 Nov 2024 13:58:20 +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 BpvkT3nf-DGp; Thu, 14 Nov 2024 13:58:18 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 2EB11408B2 Authentication-Results: smtp4.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=TxI7ucur Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id 2EB11408B2; Thu, 14 Nov 2024 13:58:16 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id D979AC08BF; Thu, 14 Nov 2024 13:58:14 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1364DC08B4 for ; Thu, 14 Nov 2024 13:58:09 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id E41C98456E for ; Thu, 14 Nov 2024 13:58:02 +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 ZWeP7r-ht-Cw for ; Thu, 14 Nov 2024 13:58:02 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.129.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org ECCAC845CF Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org ECCAC845CF Authentication-Results: smtp1.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=TxI7ucur Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp1.osuosl.org (Postfix) with ESMTPS id ECCAC845CF for ; Thu, 14 Nov 2024 13:58:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=33fvXnfbl07a9bmuTI/WpdPMpRAwg/LrHWfHYceacfg=; b=TxI7ucurXmGCYvtO4o3VQJuugD7PRZWgQJ0dbNd6mjKDScZevri8SSUxZoGd+0Tm66LVu4 lAEYWu8c2Q3jWSIzG3hr2wNo5M2W68BOTRtQs+VhHs9TAZCCkJpqHthNglnB3jmRfFp0a5 MprCJvHCscL8DyQt8wu/9v9mVkoPKbY= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-65-i3um4vcjNayjUJPqQF1ImA-1; Thu, 14 Nov 2024 08:57:59 -0500 X-MC-Unique: i3um4vcjNayjUJPqQF1ImA-1 X-Mimecast-MFC-AGG-ID: i3um4vcjNayjUJPqQF1ImA Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CB9F01955E77 for ; Thu, 14 Nov 2024 13:57:58 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 49F1919560A3; Thu, 14 Nov 2024 13:57:58 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:51 +0100 Message-Id: <20241114135756.1082588-2-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: eWOBZwfgFQEbHtvs5tEyQ1ugfIe9rY5rvw5TuX1Ytb4_1731592678 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 1/6] controller: Properly handle localnet flows in I+P. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Delete flows on localnet port deletion, and add localnet related flows when peer ports are added. This was properly done when recomputing, but not when doing IP. When peer ports are added, some flows such as chassis_mac flows must be added. Fixes: edc064b4c589 ("controller: Properly handle localnet flows in I+P.") Fixes: d276728a8ead ("Revert "controller: Properly handle localnet flows in I+P.".") Signed-off-by: Xavier Simonart Acked-by: Ales Musil Signed-off-by: Numan Siddique Signed-off-by: Xavier Simonart --- controller/physical.c | 10 +++++--- tests/ovn.at | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/controller/physical.c b/controller/physical.c index 3ca4e0783..8d5065098 100644 --- a/controller/physical.c +++ b/controller/physical.c @@ -699,7 +699,7 @@ put_replace_chassis_mac_flows(const struct shash *ct_zones, put_resubmit(OFTABLE_LOG_INGRESS_PIPELINE, ofpacts_p); ofctrl_add_flow(flow_table, OFTABLE_PHY_TO_LOG, 180, rport_binding->header_.uuid.parts[0], - &match, ofpacts_p, hc_uuid); + &match, ofpacts_p, &localnet_port->header_.uuid); /* Provide second search criteria, i.e localnet port's * vlan ID for conjunction flow */ @@ -707,6 +707,7 @@ put_replace_chassis_mac_flows(const struct shash *ct_zones, ofpbuf_clear(ofpacts_p); match_init_catchall(&match); + match_set_in_port(&match, ofport); if (tag) { match_set_dl_vlan(&match, htons(tag), 0); } else { @@ -719,7 +720,7 @@ put_replace_chassis_mac_flows(const struct shash *ct_zones, conj->clause = 1; ofctrl_add_flow(flow_table, OFTABLE_PHY_TO_LOG, 180, rport_binding->header_.uuid.parts[0], - &match, ofpacts_p, hc_uuid); + &match, ofpacts_p, &localnet_port->header_.uuid); } } @@ -2393,8 +2394,9 @@ physical_handle_flows_for_lport(const struct sbrec_port_binding *pb, struct local_datapath *ldp = get_local_datapath(p_ctx->local_datapaths, pb->datapath->tunnel_key); - if (!strcmp(pb->type, "external")) { - /* External lports have a dependency on the localnet port. + if (!strcmp(pb->type, "external") || + !strcmp(pb->type, "patch") || !strcmp(pb->type, "l3gateway")) { + /* Those lports have a dependency on the localnet port. * We need to remove the flows of the localnet port as well * and re-consider adding the flows for it. */ diff --git a/tests/ovn.at b/tests/ovn.at index 92e1ffadc..40b8e59f8 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -39686,3 +39686,60 @@ OVN_CLEANUP([hv1]) AT_CLEANUP ]) + +OVN_FOR_EACH_NORTHD([ +AT_SETUP([localnet port flows after deletion]) +ovn_start +net_add n1 + +check ovn-nbctl ls-add sw0 + +for i in 1 2; do + check ovn-nbctl lsp-add sw0 sw0-p${i} -- lsp-set-addresses sw0-p${i} "00:00:10:01:02:0${i} 10.0.0.${i}" + sim_add hv${i} + as hv${i} + ovs-vsctl add-br br-phys + ovn_attach n1 br-phys 192.168.0.${i} + ovs-vsctl set open . external_ids:ovn-bridge-mappings=physnet1:br-phys + ovs-vsctl add-port br-int vif${i} -- \ + set Interface vif${i} external-ids:iface-id=sw0-p${i} \ + options:tx_pcap=hv${i}/vif${i}-tx.pcap \ + options:rxq_pcap=hv${i}/vif${i}-rx.pcap +done + +check ovn-nbctl lr-add lr0 +check ovn-nbctl lrp-add lr0 lr0-sw0 00:00:00:00:ff:01 10.0.0.254/24 +check ovn-nbctl lsp-add sw0 sw0-lr0 +check ovn-nbctl lsp-set-type sw0-lr0 router +check ovn-nbctl lsp-set-addresses sw0-lr0 router +check ovn-nbctl lsp-set-options sw0-lr0 router-port=lr0-sw0 + +check ovn-nbctl --wait=hv sync +wait_for_ports_up + +# We should not have any flows in table OFTABLE_PHY_TO_LOG from in_port different from vif1 and ovn-hv2-0 +OVN_WAIT_REMOTE_INPUT_FLOWS(["hv1"],["hv2"]) +of1=$(as hv1 ovs-vsctl --bare --columns ofport find Interface name=vif1) +of2=$(as hv1 ovs-vsctl --bare --columns ofport find Interface name=ovn-hv2-0) +AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep -v NXST_FLOW | grep "in_port=" | grep -v "in_port=$of1" | grep -v "in_port=$of2" | wc -l], [0], [dnl +0 +]) + +# Add localnet port to sw0 +check ovn-nbctl lsp-add sw0 ln-sw0 -- lsp-set-addresses ln-sw0 unknown -- lsp-set-type ln-sw0 localnet +check ovn-nbctl --wait=hv lsp-set-options ln-sw0 network_name=physnet1 -- set logical_switch_port ln-sw0 tag_request=100 + +OVN_WAIT_PATCH_PORT_FLOWS(["ln-sw0"], ["hv1"]) +AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep -v NXST_FLOW | grep "in_port=" | grep -v "in_port=$of1" | grep -v "in_port=$of2" | wc -l], [0], [dnl +3 +]) + +# Remove localnet port from sw0. Peer-ports flows should be deleted. +check ovn-nbctl --wait=hv lsp-del ln-sw0 +AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep -v NXST_FLOW | grep "in_port=" | grep -v "in_port=$of1" | grep -v "in_port=$of2" | wc -l], [0], [dnl +0 +]) + +OVN_CLEANUP([hv1],[hv2]) +AT_CLEANUP +]) From patchwork Thu Nov 14 13:57:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011356 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=M/GyZvkJ; 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 4Xq1vW1Qh5z1xxN for ; Fri, 15 Nov 2024 00:58:15 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id AC61B845F2; Thu, 14 Nov 2024 13:58:12 +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 fNpGycMV5u0R; Thu, 14 Nov 2024 13:58:11 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 660FA845E7 Authentication-Results: smtp1.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=M/GyZvkJ Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 660FA845E7; Thu, 14 Nov 2024 13:58:11 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 15350C08B4; Thu, 14 Nov 2024 13:58:11 +0000 (UTC) X-Original-To: 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 1FE32C08BA for ; Thu, 14 Nov 2024 13:58:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id A2B9B60F77 for ; Thu, 14 Nov 2024 13:58:05 +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 W3WsViF0P7HW for ; Thu, 14 Nov 2024 13:58:03 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.133.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org C560960F6F Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org C560960F6F Authentication-Results: smtp3.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=M/GyZvkJ Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp3.osuosl.org (Postfix) with ESMTPS id C560960F6F for ; Thu, 14 Nov 2024 13:58:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h2EIETV3oUevDzs82GvBfGu7A6u1PjrPL0NwLfkED6k=; b=M/GyZvkJ5i9zOruYJrZKPumaLLkGoWgjvIqytuQlnLTJY0D//e2KbFM57zg6huGBcF6zLJ dws/8WilN4DnDx+uW12exGAvN3ZF5DHWPCryaIRnqlhB37CS5FFV8N84dE0lJcdMC/SBoh 1Ldv4/fj1bPEaGfPBjZ7vnVAYvMtoXg= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-332-4Eig5L45O66uQi6Z-4q7PQ-1; Thu, 14 Nov 2024 08:58:00 -0500 X-MC-Unique: 4Eig5L45O66uQi6Z-4q7PQ-1 X-Mimecast-MFC-AGG-ID: 4Eig5L45O66uQi6Z-4q7PQ Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 81AE41955F10 for ; Thu, 14 Nov 2024 13:57:59 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 09B1419560A3; Thu, 14 Nov 2024 13:57:58 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:52 +0100 Message-Id: <20241114135756.1082588-3-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yKoiIoQNwOutfv2gssIXpq3mIrhGFXCD11Bkx1Udywg_1731592679 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 2/6] controller: (nit) Avoid setting again same register. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Signed-off-by: Xavier Simonart --- controller/physical.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/controller/physical.c b/controller/physical.c index 8d5065098..6b93696fa 100644 --- a/controller/physical.c +++ b/controller/physical.c @@ -2194,15 +2194,15 @@ consider_mc_group(struct ovsdb_idl_index *sbrec_port_binding_by_name, } int zone_id = ct_zone_find_zone(ct_zones, port->logical_port); - if (zone_id) { - put_load(zone_id, MFF_LOG_CT_ZONE, 0, 16, &ofpacts); - } const char *lport_name = (port->parent_port && *port->parent_port) ? port->parent_port : port->logical_port; if (!strcmp(port->type, "patch")) { if (ldp->is_transit_switch) { + if (zone_id) { + put_load(zone_id, MFF_LOG_CT_ZONE, 0, 16, &ofpacts); + } local_output_pb(port->tunnel_key, &ofpacts); } else { remote_ramp_ports = true; @@ -2218,8 +2218,14 @@ consider_mc_group(struct ovsdb_idl_index *sbrec_port_binding_by_name, || is_additional_chassis(port, chassis)) && (local_binding_get_primary_pb(local_bindings, lport_name) || !strcmp(port->type, "l3gateway"))) { + if (zone_id) { + put_load(zone_id, MFF_LOG_CT_ZONE, 0, 16, &ofpacts); + } local_output_pb(port->tunnel_key, &ofpacts); } else if (simap_contains(patch_ofports, port->logical_port)) { + if (zone_id) { + put_load(zone_id, MFF_LOG_CT_ZONE, 0, 16, &ofpacts); + } local_output_pb(port->tunnel_key, &ofpacts); } else if (!strcmp(port->type, "chassisredirect") && port->chassis == chassis) { @@ -2231,6 +2237,9 @@ consider_mc_group(struct ovsdb_idl_index *sbrec_port_binding_by_name, distributed_port); if (distributed_binding && port->datapath == distributed_binding->datapath) { + if (zone_id) { + put_load(zone_id, MFF_LOG_CT_ZONE, 0, 16, &ofpacts); + } local_output_pb(distributed_binding->tunnel_key, &ofpacts); } } From patchwork Thu Nov 14 13:57:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011354 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=C9l7Zhqw; 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 4Xq1vR6xKHz1xxN for ; Fri, 15 Nov 2024 00:58:11 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id DBBD161085; Thu, 14 Nov 2024 13:58:09 +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 jKbgd-uC7X30; Thu, 14 Nov 2024 13:58:08 +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 16E0E60FEF 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=C9l7Zhqw Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id 16E0E60FEF; Thu, 14 Nov 2024 13:58:08 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id B2C6FC08B4; Thu, 14 Nov 2024 13:58:07 +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 84529C08A8 for ; Thu, 14 Nov 2024 13:58:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 4290B42FF3 for ; Thu, 14 Nov 2024 13:58:04 +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 BCoGiQZ0n2N2 for ; Thu, 14 Nov 2024 13:58:03 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.133.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org 6127842FF6 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6127842FF6 Authentication-Results: smtp2.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=C9l7Zhqw Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6127842FF6 for ; Thu, 14 Nov 2024 13:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592682; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XF9BhqKwOfYdXwuxQGvCRktOyizvKxNQuuLXnUKNXlc=; b=C9l7ZhqwWhywyjb0PGBI8XwN++4GjGy6IwL4s07Tq0uLFAcwEhKVpmRSz7f1KgNKaYwHlz GEt7mXzxattK+lGZIt9cAT1lGbum5iI2YMuCTZubPzgdhJWryNDGZ010BnhJjNBhE7zP51 5ExHXpO6Wok0mu8lLxRigDHC7DS3vA4= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-562-bnrI5fD6OT6K3ZWXB1jsTg-1; Thu, 14 Nov 2024 08:58:01 -0500 X-MC-Unique: bnrI5fD6OT6K3ZWXB1jsTg-1 X-Mimecast-MFC-AGG-ID: bnrI5fD6OT6K3ZWXB1jsTg Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 45A0E19560AB for ; Thu, 14 Nov 2024 13:58:00 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B557A19560A3; Thu, 14 Nov 2024 13:57:59 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:53 +0100 Message-Id: <20241114135756.1082588-4-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 4pOHKzrQKXAPjGfLV0rC3rFTSf986WGs5_zn27Qafaw_1731592680 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 3/6] controller: Fix flows not deleted when deleting peer port. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" The issue was identified by comparing flows from I+P and recomputes. It will be automatically checked when this comparison is done automatically for all tests in a subsequent patch. Signed-off-by: Xavier Simonart --- controller/physical.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/controller/physical.c b/controller/physical.c index 6b93696fa..eede87d8d 100644 --- a/controller/physical.c +++ b/controller/physical.c @@ -2420,6 +2420,13 @@ physical_handle_flows_for_lport(const struct sbrec_port_binding *pb, physical_multichassis_reprocess(pb, p_ctx, flow_table); } + if (removed && !strcmp(pb->type, "patch")) { + const struct sbrec_port_binding *peer = + get_binding_peer(p_ctx->sbrec_port_binding_by_name, pb); + if (peer) { + ofctrl_remove_flows(flow_table, &peer->header_.uuid); + } + } if (!removed) { physical_eval_port_binding(p_ctx, pb, flow_table); if (!strcmp(pb->type, "patch")) { From patchwork Thu Nov 14 13:57:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011355 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=GVpfKLzP; 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 4Xq1vT3Wt3z1xxN for ; Fri, 15 Nov 2024 00:58:13 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 4A0E24300E; Thu, 14 Nov 2024 13:58:11 +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 fFKlqSUE91Zh; Thu, 14 Nov 2024 13:58:10 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org B54B443004 Authentication-Results: smtp2.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=GVpfKLzP Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id B54B443004; Thu, 14 Nov 2024 13:58:09 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 34EB5C08B9; Thu, 14 Nov 2024 13:58:09 +0000 (UTC) X-Original-To: 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 41556C08BD for ; Thu, 14 Nov 2024 13:58:07 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id D645760F76 for ; Thu, 14 Nov 2024 13:58:04 +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 bUAA3taO5-H0 for ; Thu, 14 Nov 2024 13:58:04 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.129.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org E561660F79 Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org E561660F79 Authentication-Results: smtp3.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=GVpfKLzP 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 E561660F79 for ; Thu, 14 Nov 2024 13:58:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592682; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oWRpmaR/Mn0KWx5qTTA+BowHnYRbUQd/uXrxdetV8sI=; b=GVpfKLzPD+NwBl7eZkgqJHREnqGgqbeiYQFXY7Kb93xDAFo85jlskDMdS6I46cuzCl/bul aIXrlXck+jYlneWnXEFbErq3I95/5NJ/GMF3nC0t0XlqJtgEQfsvfgmDNwamB2TIAX4O7K T7b9D1N4vNW23dhSoNI1BcXKz09zGEs= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-609-j67zTPSlPGiEKGXowkSI2Q-1; Thu, 14 Nov 2024 08:58:01 -0500 X-MC-Unique: j67zTPSlPGiEKGXowkSI2Q-1 X-Mimecast-MFC-AGG-ID: j67zTPSlPGiEKGXowkSI2Q Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 057EE1955F3F for ; Thu, 14 Nov 2024 13:58:01 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 809BE19560A3; Thu, 14 Nov 2024 13:58:00 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:54 +0100 Message-Id: <20241114135756.1082588-5-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: eyobUTZ59eIe4Kt2xTKhYS8yy6nJBC5zA6upSLEc9Rk_1731592681 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 4/6] ovn-macros: CHECK_AFTER_RECOMPUTE improvements. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" - Add ability to ignore some specific datapath when comparing flows. This is necessary as, as of today, ovn does not properly remove datapath from list of local datapaths when some prots are removed. - Properly check ovn-nb/ovn-nb.sock when AZ is present. Signed-off-by: Xavier Simonart --- tests/ovn-macros.at | 55 ++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/tests/ovn-macros.at b/tests/ovn-macros.at index efb333a47..8f835071d 100644 --- a/tests/ovn-macros.at +++ b/tests/ovn-macros.at @@ -196,7 +196,7 @@ m4_define([DUMP_FLOWS], [ sbox=$1 output_file=$2 as $sbox - ovs-ofctl dump-flows br-int | + ovs-ofctl dump-flows br-int | grep -v "NXST_FLOW reply" | sed 's/cookie=0x[[^,]]*/cookie=xx/g' | sed 's/duration=[[^,]]*/duration=xx/g' | sed 's/idle_age=[[^,]]*/idle_age=xx/g' | @@ -230,15 +230,15 @@ m4_define([CHECK_FLOWS_AFTER_RECOMPUTE], [ as $sbox if test "$hv" != "vtep"; then # Get flows before and after recompute - DUMP_FLOWS([$sbox], [flows-$hv-1]) + DUMP_FLOWS([$sbox], [flows-$hv-before]) check ovn-appctl -t ovn-controller recompute # The recompute might cause some sb changes. Let controller catch up. if [[ -e ovn-nb/ovn-nb.sock ]] && [[ -e northd/ovn-northd.pid ]]; then check ovn-nbctl --wait=hv sync fi - DUMP_FLOWS([$sbox], [flows-$hv-2]) - diff flows-$hv-1 flows-$hv-2 > flow-diff + DUMP_FLOWS([$sbox], [flows-$hv-after]) + diff flows-$hv-before flows-$hv-after > flow-diff AT_CHECK([wc -l < flow-diff], [0], [0 ]) fi @@ -275,14 +275,18 @@ m4_define([CHECK_RELATED_PORTS_AFTER_RECOMPUTE], [ fi ]) +# CHECK_AFTER_RECOMPUTE(hv, sbox, related_ports, ignored_dp) +# Check related ports (ignoring $related_ports) and FLOWS (ignoring flows from $ignored_dp) +# by comparing IP flows and flows after recompute. m4_define([CHECK_AFTER_RECOMPUTE], [ hv=$1 sbox=$2 related_ports=$3 + ignored_dp=$4 AT_CAPTURE_FILE([related-ports-diff]) # Make sure I+P has finalized his job before getting flows and comparing them after recompte. # Some tests have northd and ovn-nb ovsdb stopped, so avoid ovn-nbctl for those. - if [[ -e ovn-nb/ovn-nb.sock ]] && [[ -e northd/ovn-northd.pid ]]; then + if [[ -e ${AZ_DIR}ovn-nb/ovn-nb.sock ]] && [[ -e ${AZ_DIR}northd/ovn-northd.pid ]]; then # Do wait twice to handle some potential race conditions check ovn-nbctl --wait=hv sync check ovn-nbctl --wait=hv sync @@ -290,25 +294,45 @@ m4_define([CHECK_AFTER_RECOMPUTE], [ as $sbox if test "$hv" != "vtep"; then - DUMP_RELATED_PORTS([$sbox], [related-ports-$hv-1]) - DUMP_FLOWS([$sbox], [flows-$hv-1]) + DUMP_RELATED_PORTS([$sbox], [related-ports-$hv-before]) + DUMP_FLOWS([$sbox], [flows-$hv-before]) check ovn-appctl -t ovn-controller recompute # The recompute might cause some sb changes. Let controller catch up. - if [[ -e ovn-nb/ovn-nb.sock ]] && [[ -e northd/ovn-northd.pid ]]; then + if [[ -e ${AZ_DIR}ovn-nb/ovn-nb.sock ]] && [[ -e ${AZ_DIR}northd/ovn-northd.pid ]]; then check ovn-nbctl --wait=hv sync fi - DUMP_RELATED_PORTS([$sbox], [related-ports-$hv-2]) - DUMP_FLOWS([$sbox], [flows-$hv-2]) - # Compare and store differences before and after recompute - comm -3 related-ports-$hv-1 related-ports-$hv-2 > related-ports-diff-$hv + DUMP_RELATED_PORTS([$sbox], [related-ports-$hv-after]) + DUMP_FLOWS([$sbox], [flows-$hv-after]) + + # Compare and store related_ports differences before and after recompute + comm -3 related-ports-$hv-before related-ports-$hv-after > related-ports-diff-$hv # Ignore some differences. echo "$related_ports" | comm -2 -3 related-ports-diff-$hv - > related-ports-diff AT_CHECK([wc -l < related-ports-diff], [0], [0 ]) - diff flows-$hv-1 flows-$hv-2 > flow-diff - AT_CHECK([wc -l < flow-diff], [0], [0 + + # Compare and store flow differences before and after recompute + IFS=$','; dps=($ignored_dp); unset IFS; + comm -3 flows-$hv-before flows-$hv-after > flow-diff-$hv + if [[ -n "$related_ports" ]]; then + tag=$(ovn-sbctl --bare --columns tag list port_binding $related_ports) + if [[ -n "$tag" ]]; then + echo "Ignoring tag $tag" + cat flow-diff-$hv | grep -v "dl_vlan=$tag" > flow-diff-$hv + fi + fi + for dp in "${dps[[@]]}" + do + if [[ -n "${dp}" ]]; then + key=$(printf '0x%x' $(ovn-sbctl --bare --columns tunnel_key list datapath $dp)) + if [[ -n "${key}" ]]; then + echo "Ignoring $dp i.e. tunnel_key $key" + cat flow-diff-$hv | grep -v "metadata=$key" | grep -v "load:${key}->OXM_OF_METADATA" > flow-diff-$hv + fi + fi + done + AT_CHECK([wc -l < flow-diff-$hv], [0], [0 ]) - diff flows-$hv-1 flows-$hv-2 > flow-diff fi ]) @@ -753,6 +777,7 @@ start_virtual_controller() { # ovn_setenv AZ ovn_setenv () { local d=$ovs_base/$1 + AS_VAR_SET([AZ_DIR], ["$d"/]); export $var AS_VAR_SET([OVN_NB_DB], [unix:"$d"/ovn-nb/ovn-nb.sock]); export $var AS_VAR_SET([OVN_SB_DB], [unix:"$d"/ovn-sb/ovn-sb.sock]); export $var } From patchwork Thu Nov 14 13:57:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011357 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=bVHQks2c; 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 4Xq1vZ5mP8z1xxN for ; Fri, 15 Nov 2024 00:58:18 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 44497610A8; Thu, 14 Nov 2024 13:58: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 MxURzrsjOrpA; Thu, 14 Nov 2024 13:58:13 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 312FC6108E 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=bVHQks2c Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 312FC6108E; Thu, 14 Nov 2024 13:58:13 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id DF076C08B4; Thu, 14 Nov 2024 13:58:12 +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 4DD1FC08AA for ; Thu, 14 Nov 2024 13:58:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 1BCA442FF2 for ; Thu, 14 Nov 2024 13:58:08 +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 y3wBXW2Jm1qV for ; Thu, 14 Nov 2024 13:58:05 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.133.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org 1A28F42FE0 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 1A28F42FE0 Authentication-Results: smtp2.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=bVHQks2c Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 1A28F42FE0 for ; Thu, 14 Nov 2024 13:58:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lQJs04/5Mh0RDTSnbOyiiXYvp8N0QAVuAaZVbo4tcC0=; b=bVHQks2c70YDJH1kGS46P/3LMOW8ivLQYC6O5/T+KKmNHa3pDcWJW8pY/rg+PFihiaKL8W Mzqljx+vYBigu601EgRf2Qy2BzELi91Db+auZSNhiIP13W84+rU0tutQOAevwYlyN9Rxsu PbDpHBUiPrR8oqy1m/CB2ZuvfLA1KpM= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-84-Ub2T-g10PHqPX5-oMwYNxA-1; Thu, 14 Nov 2024 08:58:02 -0500 X-MC-Unique: Ub2T-g10PHqPX5-oMwYNxA-1 X-Mimecast-MFC-AGG-ID: Ub2T-g10PHqPX5-oMwYNxA Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CF5AA1955BD2 for ; Thu, 14 Nov 2024 13:58:01 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 3A12919560A3; Thu, 14 Nov 2024 13:58:01 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:55 +0100 Message-Id: <20241114135756.1082588-6-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: JN5kxTp9MnUPQO8W31UUvhL34ItG23ofwUQjQnA3zOE_1731592681 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 5/6] tests: Compare I+P flows with with recompute ones. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" For all unit tests, automatically compare I+P flows with with recompute ones. IP and recompute flows show differences in the following cases: - OVN does not properly remove a datapath from the list of local datapaths when ports are removed. Hence some related_ports and/or datapath can be avoided in the comparison. Tests were updated in that sense. - ct_zone allocation differs between I+P and recompute. Tests were updated (right before cleanup) in order to avoid this situation. - Multiple peer_ports causing flows replacing chassis mac with non deterministic router port mac for east west traffic. Tests were also updated to avoid this situation. Finally, some ecmp related tests were modified in order to have ports on DR in different subnets to prevent having flows with same match but different actions Reported-at: https://issues.redhat.com/browse/FDP-152 Signed-off-by: Xavier Simonart --- tests/ovn-controller.at | 6 +- tests/ovn-ic.at | 6 +- tests/ovn-macros.at | 13 ++- tests/ovn-northd.at | 9 +- tests/ovn.at | 200 ++++++++++++++++++++++++++++++---------- 5 files changed, 178 insertions(+), 56 deletions(-) diff --git a/tests/ovn-controller.at b/tests/ovn-controller.at index a2e451880..960b1b599 100644 --- a/tests/ovn-controller.at +++ b/tests/ovn-controller.at @@ -668,8 +668,12 @@ primary lport : [[lsp1]] done check as northd ovn-appctl -t ovn-northd resume + +# Since northd is restarted, port type is back to localport, so ls is not local datapath anymore. OVN_CLEANUP([hv1 -/No distributed-port option set for chassisredirect port lsp1/d]) +/No distributed-port option set for chassisredirect port lsp1/d +ignored_dp=ls1 +]) AT_CLEANUP AT_SETUP([ovn-controller - ssl files change when using command line options]) diff --git a/tests/ovn-ic.at b/tests/ovn-ic.at index 33ad37f2e..8bb3073bd 100644 --- a/tests/ovn-ic.at +++ b/tests/ovn-ic.at @@ -402,7 +402,8 @@ switch <0> (ts1) ovn-nbctl lsp-del lsp-ts1-lr1 OVS_WAIT_WHILE([ovn_as az2 ovn-nbctl show | grep lsp-ts1-lr1]) -OVN_CLEANUP_SBOX(gw1) +# ts1 should not be local dataath since lsp-ts1-lr1 has been deleted. +OVN_CLEANUP_SBOX(gw1, [], [], [ts1,lr1]) OVN_CLEANUP_IC([az1], [az2]) AT_CLEANUP @@ -1623,7 +1624,8 @@ done OVS_WAIT_UNTIL([check_packets], [$at_diff -F'^---' expected received]) for az in `seq 1 $n_az`; do - OVN_CLEANUP_SBOX([hv$az]) + ovn_as az$az + OVN_CLEANUP_SBOX([hv$az], [], [], [ts3]) OVN_CLEANUP_SBOX([gw$az]) OVN_CLEANUP_AZ([az$az]) done diff --git a/tests/ovn-macros.at b/tests/ovn-macros.at index 8f835071d..239317ea3 100644 --- a/tests/ovn-macros.at +++ b/tests/ovn-macros.at @@ -278,6 +278,7 @@ m4_define([CHECK_RELATED_PORTS_AFTER_RECOMPUTE], [ # CHECK_AFTER_RECOMPUTE(hv, sbox, related_ports, ignored_dp) # Check related ports (ignoring $related_ports) and FLOWS (ignoring flows from $ignored_dp) # by comparing IP flows and flows after recompute. +# # We also ignore Flows from tables OFTABLE_MAC_BINDING, OFTABLE_MAC_LOOKUP, OFTABLE_MAC_CACHE_USE m4_define([CHECK_AFTER_RECOMPUTE], [ hv=$1 sbox=$2 @@ -331,6 +332,7 @@ m4_define([CHECK_AFTER_RECOMPUTE], [ fi fi done + cat flow-diff-$hv | grep -v "table=OFTABLE_MAC_BINDING" | grep -v "table=OFTABLE_MAC_LOOKUP" | grep -v "table=OFTABLE_MAC_CACHE_USE" > flow-diff-$hv AT_CHECK([wc -l < flow-diff-$hv], [0], [0 ]) fi @@ -346,8 +348,9 @@ m4_define([OVN_CLEANUP_CONTROLLER],[ hv=$1 sbox=$2 related_ports=$3 + ignored_dp=$4 - CHECK_RELATED_PORTS_AFTER_RECOMPUTE([$hv], [$sbox], [$related_ports]) + CHECK_AFTER_RECOMPUTE([$hv], [$sbox], [$related_ports], [$ignored_dp]) if test "$hv" = "vtep"; then OVS_APP_EXIT_AND_WAIT([ovn-controller-vtep]) OVS_APP_EXIT_AND_WAIT([ovs-vtep]) @@ -366,8 +369,9 @@ m4_define([OVN_CLEANUP_SBOX],[ sbox=$1 error=$2 related_ports=$3 + ignored_dp=$4 echo "$sbox: clean up sandbox" - OVN_CLEANUP_CONTROLLER([$sbox], [$sbox], [$related_ports]) + OVN_CLEANUP_CONTROLLER([$sbox], [$sbox], [$related_ports], [$ignored_dp]) OVN_CLEANUP_VSWITCH([$sbox]) # Check for errors in logs. Ignore following errors: @@ -395,8 +399,9 @@ m4_define([OVN_CLEANUP],[ m4_foreach([sbox_and_error], [$@], [ sbox=$(echo "sbox_and_error" |sed -n '1p') error=$(echo "sbox_and_error" | grep '/') - related_ports=$(echo "sbox_and_error" | sed -n '2,$p' | grep -v '/') - OVN_CLEANUP_SBOX([$sbox], [$error], [$related_ports]) + ignored_dp=$(echo "sbox_and_error" | grep 'ignored_dp' | cut -d'=' -f 2) + related_ports=$(echo "sbox_and_error" | sed -n '2,$p' | grep -v '/' | grep -v 'ignored_dp') + OVN_CLEANUP_SBOX([$sbox], [$error], [$related_ports], [$ignored_dp]) ]) echo diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at index 8477e4250..767b138d2 100644 --- a/tests/ovn-northd.at +++ b/tests/ovn-northd.at @@ -10810,7 +10810,10 @@ northd_recomp=$(as northd ovn-appctl -t ovn-northd inc-engine/show-stats northd echo northd_recomp $northd_recomp AT_CHECK([test $northd_recomp -ge 1]) -OVN_CLEANUP([hv1]) +# ls0 should not be a local datapath as all its ports got deleted. +OVN_CLEANUP([hv1 +ignored_dp=ls0 +]) AT_CLEANUP ]) @@ -10933,7 +10936,9 @@ check ovn-nbctl --wait=sb lrp-del lrp check_recompute_counter 1 1 CHECK_NO_CHANGE_AFTER_RECOMPUTE -OVN_CLEANUP([hv1]) +# lr0 is not local datapath as lrp got deleted. +OVN_CLEANUP([hv1 +ignored_dp=lr0]) AT_CLEANUP ]) diff --git a/tests/ovn.at b/tests/ovn.at index 40b8e59f8..6062e3e0e 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -8402,7 +8402,9 @@ OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up lp1` = xup]) as hv1 ovs-vsctl del-port br-int vif1 OVS_WAIT_UNTIL([test x`ovn-nbctl lsp-get-up lp1` = xdown]) -OVN_CLEANUP([hv1]) +# ls1 not local to hv1 anymore after ovs-vsctl del-port br-int vif1 +OVN_CLEANUP([hv1 +ignored_dp=ls1]) AT_CLEANUP ]) @@ -10738,7 +10740,9 @@ OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up vm1)]) OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up foo1)]) OVS_WAIT_UNTIL([test xdown = x$(ovn-nbctl lsp-get-up bar1)]) -OVN_CLEANUP([hv1],[hv2]) +# mgmt2 not local to hv1 anymore after ovs-vsctl del-port vm1 +OVN_CLEANUP([hv1 +ignored_dp=mgmt2],[hv2]) AT_CLEANUP ]) @@ -12399,7 +12403,8 @@ net_add n1 sim_add hv1 as hv1 ovs-vsctl add-br br-phys -ovn_attach n1 br-phys 192.168.0.1 +# do not use same ip for underlay and underlay networks +ovn_attach n1 br-phys 192.168.1.1 AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys]) AT_CHECK([ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap]) @@ -12407,13 +12412,13 @@ AT_CHECK([ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options: sim_add hv2 as hv2 ovs-vsctl add-br br-phys -ovn_attach n1 br-phys 192.168.0.2 +ovn_attach n1 br-phys 192.168.1.2 # Initially test with no bridge-mapping on hv2, expect to receive no packets sim_add hv3 as hv3 ovs-vsctl add-br br-phys -ovn_attach n1 br-phys 192.168.0.3 +ovn_attach n1 br-phys 192.168.1.3 # Initially test with no bridge-mapping on hv3 # Create a localnet port. @@ -14884,7 +14889,9 @@ wait_column "$hv1_uuid" Port_Binding requested_chassis logical_port=lsp0 wait_column "$hv2_uuid" Port_Binding additional_chassis logical_port=lsp0 wait_column "$hv2_uuid $hv3_uuid" Port_Binding requested_additional_chassis logical_port=lsp0 -OVN_CLEANUP([hv1],[hv2],[hv3]) +# ls0 not local to hv1 since as hv1 check ovs-vsctl -- del-port br-int lsp0 +OVN_CLEANUP([hv1 +ignored_dp=ls0],[hv2],[hv3]) AT_CLEANUP ]) @@ -15225,6 +15232,16 @@ echo $request >> hv3/third.expected check_packets +# ct_zone allocation differs between I+P and recompute: +# - In I+P an ovs interface with external-ids:iface-id set (but no +# logical_port in sb) results in no ct_zone allocated. +# - In recompute, in the same case, a ct_zone is allocated - this is +# necessary to avoid flushing ct_zone if/when controller is restarted. +# As migrrator has iface-id set on hv1 but is bound to hv2, we would hit +# some ct-zone related differences in flows before and after recompute. +# Avoid/hide this by removing iface-id on hv1. + +as hv1 check ovs-vsctl remove Interface migrator external-ids iface-id OVN_CLEANUP([hv1],[hv2],[hv3]) AT_CLEANUP @@ -15621,6 +15638,11 @@ echo $request >> hv2/n1.expected check_packets +# ct_zone allocation differs between I+P and recompute. +# As migrrator has iface-id set on hv1 but is bound to hv2, we would hit +# some ct-zone related differences in flows before and after recompute. +# Avoid/hide this by removing iface-id on hv1. +as hv1 check ovs-vsctl remove Interface migrator external-ids iface-id OVN_CLEANUP([hv1],[hv2],[hv3]) AT_CLEANUP @@ -16160,6 +16182,12 @@ check_packets check ovn-nbctl lsp-set-options migrator requested-chassis=hv2 OVS_WAIT_UNTIL([test x = x$(ovn-sbctl get Port_Binding $pb_uuid options:additional-chassis-activated)]) +# ct_zone allocation differs between I+P and recompute. +# As migrrator has iface-id set on hv1 but is bound to hv2, we would hit +# some ct-zone related differences in flows before and after recompute. +# Avoid/hide this by removing iface-id on hv1. +as hv1 check ovs-vsctl remove Interface migrator external-ids iface-id + OVN_CLEANUP([hv1],[hv2],[hv3]) AT_CLEANUP @@ -16415,7 +16443,9 @@ AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=OFTABLE_LOG_TO_PHY | grep act AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep in_port=$hv1_ofport], [1], []) AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_LOG_TO_PHY | grep output], [1], []) -OVN_CLEANUP([hv1],[hv2]) +# ls0 should nt be local to hv1 anymore since ovn-nbctl lsp-set-options lsp0 requested-chassis=hv2 +OVN_CLEANUP([hv1 +ignored_dp=ls0],[hv2]) AT_CLEANUP ]) @@ -16508,7 +16538,9 @@ wait_column '' Port_Binding chasssi logical_port=lsp0 AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep in_port=1], [1], []) AT_CHECK([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_LOG_TO_PHY | grep output], [1], []) -OVN_CLEANUP([hv1]) +# ls0 not local to hv1 since ovn-nbctl --wait=hv lsp-set-options lsp0 requested-chassis=non-existant-chassis +OVN_CLEANUP([hv1 +ignored_dp=ls0]) AT_CLEANUP ]) @@ -16772,6 +16804,7 @@ OVN_CHECK_PACKETS_CONTAIN([hv2/br-phys_n1-tx.pcap], [hv2/n1.expected]) # So public should not be a related_port. OVN_CLEANUP([hv1 public +ignored_dp=ls0 ],[hv2]) AT_CLEANUP @@ -19752,6 +19785,13 @@ OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected]) # Start ovn-controller again just so OVN_CLEANUP doesn't complain as hv2 start_daemon ovn-controller +# Stopping and restarting ovn-controller on hv2 might cause geneve to be recreated, and ofport change. +# Make sure the ofport change does not happen right before recompute, cauing potential flow differences +# between IP and recompute flows. +OVS_WAIT_UNTIL([ + test 1 = $(as hv1 ovs-vsctl --columns ofport --bare find Interface name=ovn-hv2-0 | wc -l) +]) + OVN_CLEANUP([hv1],[hv2]) AT_CLEANUP ]) @@ -24374,10 +24414,12 @@ m4_define([DVR_N_S_ARP_HANDLING], as hv4 ovs-appctl fdb/show br-phys # Expect some potential transaction errors for MAC_Binding - # Since router-to-underlay moved to hv3, ls-underlay is not local to hv1 anymore and ln3 should not be a related_port. + Since router-to-underlay moved to hv3, ls-underlay is not local to hv1 anymore + As ls-underlay is not local, ln3 should not be a related_port. OVN_CLEANUP([hv1 /transaction error/d -ln3],[hv2 +ln3 +ignored_dp=ls-underlay],[hv2 /transaction error/d ],[hv3 /transaction error/d @@ -25363,6 +25405,12 @@ as hv4 ovs-ofctl dump-flows br-int as hv4 ovs-ofctl show br-phys as hv4 ovs-appctl fdb/show br-phys +# Wait till the mac_binding flows appear in hv1 to avoid flow differences in tables OFTABLE_MAC_BINDING, OFTABLE_MAC_LOOKUP, OFTABLE_MAC_CACHE_USE. +OVS_WAIT_UNTIL([test 1 = $(as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_MAC_BINDING \ +| grep -c reg0=0xc0a80101)]) +OVS_WAIT_UNTIL([test 1 = $(as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_MAC_BINDING \ +| grep -c reg0=0xc0a80202)]) + # Expect some potential transaction errors for MAC_Binding OVN_CLEANUP([hv1 /transaction error/d @@ -25641,13 +25689,13 @@ check ovn-nbctl lsp-set-type sw0-lr0 router check ovn-nbctl lsp-set-addresses sw0-lr0 router check ovn-nbctl lsp-set-options sw0-lr0 router-port=lr0-sw0 -check ovn-nbctl lrp-add lr0 lr0-sw1 00:00:00:00:ff:02 2001::a/64 +check ovn-nbctl lrp-add lr0 lr0-sw1 00:00:00:00:ff:02 2002::a/64 check ovn-nbctl lsp-add sw1 sw1-lr0 check ovn-nbctl lsp-set-type sw1-lr0 router check ovn-nbctl lsp-set-addresses sw1-lr0 router check ovn-nbctl lsp-set-options sw1-lr0 router-port=lr0-sw1 -check ovn-nbctl lb-add lb1 [[2001::a]]:80 [[2001::3]]:80,[[2002::3]]:80 +check ovn-nbctl lb-add lb1 [[2002::a]]:80 [[2001::3]]:80,[[2002::3]]:80 OVN_LB_ID=$(ovn-nbctl --bare --column _uuid find load_balancer name=lb1) check ovn-nbctl set load_balancer ${OVN_LB_ID} selection_fields="ip_dst,ip_src,tp_dst,tp_src" # @@ -25655,7 +25703,7 @@ check ovn-nbctl --wait=sb set load_balancer . ip_port_mappings:\"[[2001::3]]\"=\ check ovn-nbctl --wait=sb set load_balancer . ip_port_mappings:\"[[2002::3]]\"=\"sw1-p1:[[2002::2]]\" AT_CHECK([ovn-nbctl --wait=sb \ - -- --id=@hc create Load_Balancer_Health_Check vip="\[\[2001\:\:a\]\]\:80" \ + -- --id=@hc create Load_Balancer_Health_Check vip="\[\[2002\:\:a\]\]\:80" \ options:failure_count=100 \ -- add Load_Balancer . health_check @hc | uuidfilt], [0], [<0> ]) @@ -25691,15 +25739,15 @@ OVS_WAIT_FOR_OUTPUT( [ovn-sbctl dump-flows > sbflows ovn-sbctl dump-flows sw0 | grep ct_lb_mark | grep priority=120 | sed 's/table=..//'], 0, [dnl - (ls_in_pre_stateful ), priority=120 , match=(reg0[[2]] == 1 && ip6.dst == 2001::a && tcp.dst == 80), action=(xxreg1 = 2001::a; reg2[[0..15]] = 80; ct_lb_mark;) - (ls_in_lb ), priority=120 , match=(ct.new && ip6.dst == 2001::a && tcp.dst == 80), action=(xxreg1 = 2001::a; reg2[[0..15]] = 80; ct_lb_mark(backends=[[2001::3]]:80,[[2002::3]]:80; hash_fields="ip_dst,ip_src,tcp_dst,tcp_src");) + (ls_in_pre_stateful ), priority=120 , match=(reg0[[2]] == 1 && ip6.dst == 2002::a && tcp.dst == 80), action=(xxreg1 = 2002::a; reg2[[0..15]] = 80; ct_lb_mark;) + (ls_in_lb ), priority=120 , match=(ct.new && ip6.dst == 2002::a && tcp.dst == 80), action=(xxreg1 = 2002::a; reg2[[0..15]] = 80; ct_lb_mark(backends=[[2001::3]]:80,[[2002::3]]:80; hash_fields="ip_dst,ip_src,tcp_dst,tcp_src");) ]) AT_CAPTURE_FILE([sbflows2]) OVS_WAIT_FOR_OUTPUT( [ovn-sbctl dump-flows > sbflows2 ovn-sbctl dump-flows lr0 | grep ct_lb_mark | grep priority=120 | sed 's/table=..//'], 0, - [ (lr_in_dnat ), priority=120 , match=(ct.new && !ct.rel && ip6 && ip6.dst == 2001::a && tcp && tcp.dst == 80 && is_chassis_resident("cr-lr0-public")), action=(ct_lb_mark(backends=[[2001::3]]:80,[[2002::3]]:80; hash_fields="ip_dst,ip_src,tcp_dst,tcp_src");) + [ (lr_in_dnat ), priority=120 , match=(ct.new && !ct.rel && ip6 && ip6.dst == 2002::a && tcp && tcp.dst == 80 && is_chassis_resident("cr-lr0-public")), action=(ct_lb_mark(backends=[[2001::3]]:80,[[2002::3]]:80; hash_fields="ip_dst,ip_src,tcp_dst,tcp_src");) ]) # get the svc monitor mac. @@ -25716,7 +25764,7 @@ OVS_WAIT_UNTIL( grep "405400000003${svc_mon_src_mac}" | wc -l`] ) -check ovn-nbctl set load_balancer_health_check [[2001::a]]:80 options:failure_count=1 +check ovn-nbctl set load_balancer_health_check [[2002::a]]:80 options:failure_count=1 wait_row_count Service_Monitor 2 status=offline OVS_WAIT_UNTIL( @@ -25732,16 +25780,16 @@ grep "405400000003${svc_mon_src_mac}" | wc -l`] AT_CAPTURE_FILE([sbflows3]) ovn-sbctl dump-flows sw0 > sbflows3 AT_CHECK( - [grep "ip6.dst == 2001::a && tcp.dst == 80" sbflows3 | grep priority=120 |\ + [grep "ip6.dst == 2002::a && tcp.dst == 80" sbflows3 | grep priority=120 |\ ovn_strip_lflows], [0], [dnl - table=??(ls_in_lb ), priority=120 , match=(ct.new && ip6.dst == 2001::a && tcp.dst == 80), action=(drop;) - table=??(ls_in_pre_stateful ), priority=120 , match=(reg0[[2]] == 1 && ip6.dst == 2001::a && tcp.dst == 80), action=(xxreg1 = 2001::a; reg2[[0..15]] = 80; ct_lb_mark;) + table=??(ls_in_lb ), priority=120 , match=(ct.new && ip6.dst == 2002::a && tcp.dst == 80), action=(drop;) + table=??(ls_in_pre_stateful ), priority=120 , match=(reg0[[2]] == 1 && ip6.dst == 2002::a && tcp.dst == 80), action=(xxreg1 = 2002::a; reg2[[0..15]] = 80; ct_lb_mark;) ]) AT_CAPTURE_FILE([sbflows4]) ovn-sbctl dump-flows lr0 > sbflows4 AT_CHECK([grep lr_in_dnat sbflows4 | grep priority=120 | sed 's/table=..//' | sort], [0], [dnl - (lr_in_dnat ), priority=120 , match=(ct.new && !ct.rel && ip6 && ip6.dst == 2001::a && tcp && tcp.dst == 80 && is_chassis_resident("cr-lr0-public")), action=(drop;) + (lr_in_dnat ), priority=120 , match=(ct.new && !ct.rel && ip6 && ip6.dst == 2002::a && tcp && tcp.dst == 80 && is_chassis_resident("cr-lr0-public")), action=(drop;) ]) # Delete sw0-p1 @@ -26739,8 +26787,10 @@ else AT_CHECK([test $hv2_rcv_n2 -eq 0], [0], []) fi -OVN_CLEANUP([hv1], [hv2]) - +#ls1, ls2 and lr1 are not local datapaths on hv1 since all ports on hv1 moved to hv2 +OVN_CLEANUP([hv1 +ignored_dp=ls1,ls2,lr1 +], [hv2]) AT_CLEANUP ]) @@ -28756,7 +28806,9 @@ reg15=0x${p1_dpkey} | grep REG13 | wc -l) -eq 0]) p1_zoneid=$(as hv1 ovs-vsctl get bridge br-int external_ids:ct-zone-sw0-p1 | sed 's/"//g') AT_CHECK([test -z $p1_zoneid]) -OVN_CLEANUP([hv1]) +# sw0 is not local to hv1 since ovn-nbctl lsp-del sw0-p1 +OVN_CLEANUP([hv1 +ignored_dp=sw0]) AT_CLEANUP ]) @@ -28802,8 +28854,13 @@ check ovn-nbctl lrp-add DR dr-ls1 00:00:01:01:02:03 10.0.0.1/24 check ovn-nbctl lsp-add ls1 ls1-dr -- set Logical_Switch_Port ls1-dr \ type=router options:router-port=dr-ls1 addresses='"00:00:01:01:02:03"' +# Ports on DR should be in different subnets to prevent having flows with same match but different actions. +# The following flows (in lr_in_ip_routing) would fight in case the same subnet is used: +# table=IP_ROUTING, priority=74,ip,metadata=0x1,nw_dst=10.0.0.0/24 actions=dec_ttl(),load:0->OXM_OF_PKT_REG4[32..47],move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[96..127],load:0xa000002->NXM_NX_XXREG0[64..95],mod_dl_src:00:00:01:01:02:04,load:0x2 +# table=IP_ROUTING, priority=74,ip,metadata=0x1,nw_dst=10.0.0.0/24 actions=dec_ttl(),load:0->OXM_OF_PKT_REG4[32..47],move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[96..127],load:0xa000002->NXM_NX_XXREG0[64..95],mod_dl_src:00:00:01:01:02:03,load:0x1 + # Connect ls2 to DR -check ovn-nbctl lrp-add DR dr-ls2 00:00:01:01:02:04 10.0.0.2/24 +check ovn-nbctl lrp-add DR dr-ls2 00:00:01:01:02:04 10.0.1.1/24 check ovn-nbctl lsp-add ls2 ls2-dr -- set Logical_Switch_Port ls2-dr \ type=router options:router-port=dr-ls2 addresses='"00:00:01:01:02:04"' @@ -28826,8 +28883,8 @@ check ovn-nbctl lr-route-add GW 10.0.0.0/24 20.0.0.1 check ovn-nbctl --policy="src-ip" lr-route-add DR 10.0.0.0/24 20.0.0.2 # Now add some ECMP routes to the GW router. -check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 10.0.0.0/24 172.16.0.2 -check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 10.0.0.0/24 172.16.0.3 +check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 10.0.0.0/16 172.16.0.2 +check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 10.0.0.0/16 172.16.0.3 wait_for_ports_up check ovn-nbctl --wait=hv sync @@ -28928,12 +28985,12 @@ check ovn-nbctl ls-add join check ovn-nbctl ls-add ext # Connect ls1 to DR -check ovn-nbctl lrp-add DR dr-ls1 00:00:01:01:02:03 1001::1/64 +check ovn-nbctl lrp-add DR dr-ls1 00:00:01:01:02:03 1001:0:0:1::1/64 check ovn-nbctl lsp-add ls1 ls1-dr -- set Logical_Switch_Port ls1-dr \ type=router options:router-port=dr-ls1 addresses='"00:00:01:01:02:03"' # Connect ls2 to DR -check ovn-nbctl lrp-add DR dr-ls2 00:00:01:01:02:04 1001::2/64 +check ovn-nbctl lrp-add DR dr-ls2 00:00:01:01:02:04 1001:0:0:2::1/64 check ovn-nbctl lsp-add ls2 ls2-dr -- set Logical_Switch_Port ls2-dr \ type=router options:router-port=dr-ls2 addresses='"00:00:01:01:02:04"' @@ -28956,8 +29013,8 @@ check ovn-nbctl lr-route-add GW 1001::/64 2001::1 check ovn-nbctl --policy="src-ip" lr-route-add DR 1001::0/64 2001::2 # Now add some ECMP routes to the GW router. -check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 1001::/64 7001::2 -check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 1001::/64 7001::3 +check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 1001::/48 7001::2 +check ovn-nbctl --ecmp-symmetric-reply --policy="src-ip" lr-route-add GW 1001::/48 7001::3 wait_for_ports_up check ovn-nbctl --wait=hv sync @@ -29248,7 +29305,9 @@ as hv1 ovn-appctl -t ovn-controller debug/resume # Make sure ovn-controller runs fine. OVS_WAIT_UNTIL([test x$(as hv1 ovn-appctl -t ovn-controller debug/status) = "xrunning"]) -OVN_CLEANUP([hv1]) +# ls is not local to hv1 since ovn-nbctl --wait=sb lsp-del lsp +OVN_CLEANUP([hv1 +ignored_dp=ls]) AT_CLEANUP ]) @@ -29897,9 +29956,26 @@ OVS_WAIT_UNTIL([ test_arp_response 000030303233 $(ip_to_hex 172 16 0 200) hv1 hv2 hv3 test_arp_response 000030303233 $(ip_to_hex 172 16 0 201) hv1 hv2 hv3 +# In OVN_CLEANUP we recompute to check whether I-P created flows are correct. +# However, if gw_router is on hv1, then public on hv1 has two peer ports. +# There is one flow (in table 0, priority 180) replacing chassis mac with router +# port mac for east west traffic. If there are two peer ports, then recompute is not +# deterministic as new src mac might be from any of the two router ports. +# Hence, move gw_router back on hv3 to avoid this issue. +# Schedule gw_router on hv3. +ovn-nbctl set logical_router gw_router options:chassis=hv3 +hv3_uuid=$(ovn-sbctl --bare --columns _uuid list chassis hv3) + +OVS_WAIT_UNTIL([ + gw_router_ch=$(ovn-sbctl --bare --columns chassis list port_binding gw_router-public) + test "$gw_router_ch" = $hv3_uuid +]) + + OVN_CLEANUP([hv1 /parse MAC binding/d /unknown logical port/d +ignored_dp=gw_router ],[hv2 /parse MAC binding/d /unknown logical port/d @@ -30161,7 +30237,9 @@ ovs-vsctl set interface hv1-vif1 external_ids:iface-id=foo OVS_WAIT_UNTIL([test 0 = `as hv1 ovs-ofctl dump-flows br-int | \ grep conjunction | wc -l`]) -OVN_CLEANUP([hv1]) +# ls1 is not local to hv1 since ovs-vsctl set interface hv1-vif1 external_ids:iface-id=foo +OVN_CLEANUP([hv1 +ignored_dp=ls1]) AT_CLEANUP ]) @@ -31292,7 +31370,9 @@ wait_column "false" Port_Binding up logical_port=lsp2 wait_column "false" Port_Binding up logical_port=lsp1 wait_column "false" nb:Logical_Switch_Port up name=lsp1 -OVN_CLEANUP([hv1]) +# ls not local to hv1 since lsp1 and lsp2 w/o iface-id +OVN_CLEANUP([hv1 +ignored_dp=ls]) AT_CLEANUP ]) @@ -32105,7 +32185,9 @@ wait_column "false" nb:Logical_Switch_Port up name=vm1 wait_column "false" nb:Logical_Switch_Port up name=vm-cont1 wait_column "false" nb:Logical_Switch_Port up name=vm-cont2 -OVN_CLEANUP([hv1]) +# ls is not local to hv1 since vm1 as a child port of some non existent lport +OVN_CLEANUP([hv1 +ignored_dp=ls]) AT_CLEANUP ]) @@ -32203,7 +32285,9 @@ AT_CHECK([kill -0 $(cat hv1/ovn-controller.pid)]) wait_column "false" nb:Logical_Switch_Port up name=vm1 -OVN_CLEANUP([hv1]) +# ls not local to hv1 since as hv1 ovs-vsctl set Interface vm1 external_ids:iface-id=foo +OVN_CLEANUP([hv1 +ignored_dp=ls]) AT_CLEANUP ]) @@ -32281,7 +32365,10 @@ check ovn-nbctl --wait=hv sync # Make sure that ovn-controller has not asserted. AT_CHECK([kill -0 $(cat hv1/ovn-controller.pid)]) -OVN_CLEANUP([hv1]) +# ls1 not local since ovn-nbctl lsp-add ls1 lsp1 +OVN_CLEANUP([hv1 +ignored_dp=ls1 +]) AT_CLEANUP ]) @@ -32599,7 +32686,9 @@ primary lport : [[sw0p2]] ---------------------------------------- ]) -OVN_CLEANUP([hv1], [hv2]) +# sw0 not local to hv1 since sw0p1 as child port of non existent lport - foo and sw0p2 is on hv2 +OVN_CLEANUP([hv1 +ignored_dp=sw0], [hv2]) AT_CLEANUP ]) @@ -33495,6 +33584,7 @@ OVN_CLEANUP([hv1 ln1 ln2 ln3 +ignored_dp=S1,S2,S3 ],[hv2],[hv3],[hv4],[hv5]) AT_CLEANUP ]) @@ -33731,7 +33821,7 @@ ovn-nbctl ls-add sw0 ovn-nbctl lsp-add sw0 sw0-port1 ovn-nbctl lsp-set-addresses sw0-port1 "50:54:00:00:00:01 10.0.0.3" check ovn-nbctl lsp-add sw0 sw0-port2 -check ovn-nbctl lsp-set-addresses sw0-port2 "50:54:00:00:00:01 10.0.0.4" +check ovn-nbctl lsp-set-addresses sw0-port2 "50:54:00:00:00:02 10.0.0.4" check ovn-nbctl lsp-set-type sw0-port2 localport ovn-nbctl lr-add lr0 @@ -34034,7 +34124,9 @@ OVS_WAIT_UNTIL([ grep -q "CMS requested plugging of lport lsp3" hv2/ovn-controller.log ]) -OVN_CLEANUP([hv1],[hv2 +# lsw0 not local as ports unplugged +OVN_CLEANUP([hv1 +ignored_dp=lsw0],[hv2 /CMS requested plugging of lport lsp3/d ]) AT_CLEANUP @@ -34583,7 +34675,9 @@ check_port_sec_offlows hv2 OFTABLE_CHK_IN_PORT_SEC check_port_sec_offlows hv2 OFTABLE_CHK_IN_PORT_SEC_ND check_port_sec_offlows hv2 OFTABLE_CHK_OUT_PORT_SEC -OVN_CLEANUP([hv1], [hv2]) +# sw0 not local to hv1 as sw0p2 and hv1-vif0 are deleted +OVN_CLEANUP([hv1 +ignored_dp=sw0], [hv2]) AT_CLEANUP ]) @@ -35135,7 +35229,8 @@ AT_CHECK([as hv1 ovn-appctl -t ovn-controller debug/dump-mac-bindings], [0], [dn Local MAC bindings: ]) -OVN_CLEANUP([hv1]) +OVN_CLEANUP([hv1 +ignored_dp=lr]) AT_CLEANUP ]) @@ -35176,7 +35271,10 @@ check ovn-nbctl --wait=hv sync check ovn-nbctl lsp-del lsp check ovn-nbctl lrp-del lrp check ovn-nbctl --wait=hv sync -OVN_CLEANUP([hv1]) + +# ro0 not local as lrp deleted +OVN_CLEANUP([hv1 +ignored_dp=ro0]) AT_CLEANUP ]) @@ -35261,7 +35359,10 @@ check ovn-nbctl --wait=hv lrp-add ro0 lrp 00:00:00:00:00:01 aef0:0:0:0:0:0:0:1/6 check ovn-nbctl --wait=hv lsp-del lsp check ovn-nbctl lrp-del lrp check ovn-nbctl --wait=hv sync -OVN_CLEANUP([hv1]) + +# ro0 not local as lrp deleted +OVN_CLEANUP([hv1 +ignored_dp=ro0]) AT_CLEANUP ]) @@ -37385,7 +37486,8 @@ wait_column "" Port_Binding chassis logical_port=lsp2 # ls1 should not be a local datapath in hv1 as vif1 iface-id has been removed. # Hence ln1 should not be a related port. OVN_CLEANUP([hv1 -ln1]) +ln1 +ignored_dp=ls1]) AT_CLEANUP ]) @@ -38561,7 +38663,9 @@ OVS_WAIT_FOR_OUTPUT([as hv1 ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG 0 ]) -OVN_CLEANUP([hv1]) +# lsw0 not local as lsp1 requested-chassis to differant chassis +OVN_CLEANUP([hv1 +ignored_dp=lsw0]) AT_CLEANUP ]) @@ -39682,7 +39786,9 @@ wait_for_ports_up multi check_column $remote_chassis Port_Binding chassis logical_port=multi check_column "[]" Port_Binding additional_chassis logical_port=multi -OVN_CLEANUP([hv1]) +# ls is not local datapaths anymore in hv1. +OVN_CLEANUP([hv1 +ignored_dp=ls]) AT_CLEANUP ]) From patchwork Thu Nov 14 13:57:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xavier Simonart X-Patchwork-Id: 2011360 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=h5L90huH; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (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 4Xq1vk72vmz1xxN for ; Fri, 15 Nov 2024 00:58:26 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 18DE0408B1; Thu, 14 Nov 2024 13:58:25 +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 KbeBLumNzHym; Thu, 14 Nov 2024 13:58:20 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org BDD6C407DA Authentication-Results: smtp4.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=h5L90huH Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id BDD6C407DA; Thu, 14 Nov 2024 13:58:17 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 5EF7AC08AA; Thu, 14 Nov 2024 13:58:16 +0000 (UTC) X-Original-To: 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 1CAD7C08B9 for ; Thu, 14 Nov 2024 13:58:10 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6D77260F77 for ; Thu, 14 Nov 2024 13:58:08 +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 AkKAdQYbn2pW for ; Thu, 14 Nov 2024 13:58:05 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=170.10.129.124; helo=us-smtp-delivery-124.mimecast.com; envelope-from=xsimonar@redhat.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org A3F6E60F79 Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=none dis=none) header.from=redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A3F6E60F79 Authentication-Results: smtp3.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=h5L90huH 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 A3F6E60F79 for ; Thu, 14 Nov 2024 13:58:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731592684; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KJUKWQK1wOYa6EaPxmZIMeji70aymFxFfLjTo+1N0BE=; b=h5L90huH3/8T+/P3jUwsYZXnWAOxH/BK0mqE9GjgWThfWpMa9AUfgwadSEi2xoIwGCfhbG nK/nfFIL6YPIntqqaVHQGfdup1M2tn95OVXY841Nv+VqtzPW7BcjTgvKOhv42lbcQAxwQl cnEnS0aW6GX2QmjfIaMEaciezPRSpmg= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-381-P4kbqWE0O_2O5X9e_4oeuA-1; Thu, 14 Nov 2024 08:58:03 -0500 X-MC-Unique: P4kbqWE0O_2O5X9e_4oeuA-1 X-Mimecast-MFC-AGG-ID: P4kbqWE0O_2O5X9e_4oeuA Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BA2F21955DA1 for ; Thu, 14 Nov 2024 13:58:02 +0000 (UTC) Received: from wsfd-netdev90.ntdv.lab.eng.bos.redhat.com (wsfd-netdev90.anl.eng.rdu2.dc.redhat.com [10.6.38.135]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0F5D2195E480; Thu, 14 Nov 2024 13:58:01 +0000 (UTC) From: Xavier Simonart To: xsimonar@redhat.com, dev@openvswitch.org Date: Thu, 14 Nov 2024 14:57:56 +0100 Message-Id: <20241114135756.1082588-7-xsimonar@redhat.com> In-Reply-To: <20241114135756.1082588-1-xsimonar@redhat.com> References: <20241114135756.1082588-1-xsimonar@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 4cUfJDmTTxxy-iB10R2rpdgxBVxQ129PYv7vCZXonUM_1731592682 X-Mimecast-Originator: redhat.com Subject: [ovs-dev] [PATCH ovn 6/6] system-tests: Compare I+P and recompute flows. 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: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Signed-off-by: Xavier Simonart --- tests/system-ovn-kmod.at | 15 ++-- tests/system-ovn.at | 185 ++++++++++++++++++++------------------- 2 files changed, 102 insertions(+), 98 deletions(-) diff --git a/tests/system-ovn-kmod.at b/tests/system-ovn-kmod.at index 45e26631d..204dd3c38 100644 --- a/tests/system-ovn-kmod.at +++ b/tests/system-ovn-kmod.at @@ -283,8 +283,7 @@ tcp,orig=(src=192.168.1.200,dst=192.168.1.2,sport=,dport=),rep ]) NS_CHECK_EXEC([foo1], [nc -z 192.168.1.100 8081]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) - +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -581,7 +580,7 @@ tcp,orig=(src=fd11::b,dst=fd11::2,sport=,dport=),reply=(src=fd ]) NS_CHECK_EXEC([foo1], [nc -z fd11::a 8081]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -723,7 +722,7 @@ test_fragmented_traffic check ovn-nbctl ls-lb-del public check ovn-nbctl lb-del lb1 -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -890,7 +889,7 @@ for type in icmp udp tcp; do test_$type done -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1009,7 +1008,7 @@ NS_CHECK_EXEC([server], [ip r get fd10::1 | grep -q "mtu 1300"]) ovn-appctl -t ovn-controller vlog/set info -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1084,7 +1083,7 @@ check cmp frag_test_srv.expected udp_frag_test_srv.rcvd check cmp frag_test_client.expected udp_frag_test_c1.recvd check cmp frag_test_client.expected udp_frag_test_c2.recvd -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1156,7 +1155,7 @@ check cmp frag_test_srv.expected udp_frag_test_srv.rcvd check cmp frag_test_client.expected udp_frag_test_c1.recvd check cmp frag_test_client.expected udp_frag_test_c2.recvd -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) diff --git a/tests/system-ovn.at b/tests/system-ovn.at index 145399ded..bdcf35828 100644 --- a/tests/system-ovn.at +++ b/tests/system-ovn.at @@ -162,7 +162,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmp,orig=(src=192.168.2.2,dst=192.168.1.2,id=,type=8,code=0),reply=(src=192.168.1.2,dst=30.0.0.1,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -342,7 +342,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmpv6,orig=(src=fd12::2,dst=fd11::2,id=,type=128,code=0),reply=(src=fd11::2,dst=fd30::1,id=,type=129,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -454,7 +454,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmp,orig=(src=192.168.1.2,dst=172.16.1.2,id=,type=8,code=0),reply=(src=172.16.1.2,dst=172.16.1.1,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -566,7 +566,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmpv6,orig=(src=fd10::2,dst=fd30::2,id=,type=128,code=0),reply=(src=fd30::2,dst=fd30::1,id=,type=129,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -788,7 +788,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmp,orig=(src=192.168.1.2,dst=172.16.1.3,id=,type=8,code=0),reply=(src=172.16.1.3,dst=30.0.0.1,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1014,7 +1014,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmpv6,orig=(src=fd11::2,dst=fd30::3,id=,type=128,code=0),reply=(src=fd30::3,dst=fd40::1,id=,type=129,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1328,7 +1328,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmpv6,orig=(src=fd11::2,dst=fd30::3,id=,type=128,code=0),reply=(src=fd30::3,dst=fd40::1,id=,type=129,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1610,7 +1610,7 @@ OVS_WAIT_UNTIL([ test "${n_reset}" = "1" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1831,7 +1831,7 @@ if [[ "$bar3_ct" == "20" ]]; then else AT_CHECK([test $bar3_ct -eq 0]) fi -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -1939,7 +1939,7 @@ tcp,orig=(src=192.168.1.2,dst=30.0.0.2,sport=,dport=),reply=(s tcp,orig=(src=192.168.1.2,dst=30.0.0.2,sport=,dport=),reply=(src=192.168.1.5,dst=192.168.1.2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2049,7 +2049,7 @@ tcp,orig=(src=fd01::2,dst=fd03::2,sport=,dport=),reply=(src=fd tcp,orig=(src=fd01::2,dst=fd03::2,sport=,dport=),reply=(src=fd01::5,dst=fd01::2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2298,7 +2298,7 @@ test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" OVS_WAIT_UNTIL([check_est_flows], [check established flows]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2393,7 +2393,7 @@ for i in $(seq 1 5); do NS_CHECK_EXEC([client], [wget 172.16.1.150 -t 5 -T 1 --retry-connrefused -v -o wget$i.log]) done -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2550,7 +2550,7 @@ tcp,orig=(src=fd72::2,dst=fd30::2,sport=,dport=),reply=(src=fd tcp,orig=(src=fd72::2,dst=fd30::2,sport=,dport=),reply=(src=fd12::2,dst=fd72::2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2721,7 +2721,7 @@ test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" ], [0], [dnl ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -2894,7 +2894,7 @@ test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" ], [0], [dnl ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3113,7 +3113,7 @@ test "x$ct1 = x$exp_ct1" && test "x$ct2 = x$exp_ct2" && test "x$ct3 = x$exp_ct3" ], [0], [dnl ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3256,7 +3256,7 @@ tcp,orig=(src=172.16.1.2,dst=172.16.1.11,sport=,dport=),reply= tcp,orig=(src=172.16.1.2,dst=172.16.1.11,sport=,dport=),reply=(src=192.168.2.2,dst=172.16.1.2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3399,7 +3399,7 @@ tcp,orig=(src=fd72::2,dst=fd72::11,sport=,dport=),reply=(src=f tcp,orig=(src=fd72::2,dst=fd72::11,sport=,dport=),reply=(src=fd02::2,dst=fd72::2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3616,7 +3616,7 @@ OVS_WAIT_UNTIL([ test "${total_pkts}" = "3" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3813,7 +3813,7 @@ test_connectivity_from_ext foo1 fd11::2 # does not have DNAT test_connectivity_from_ext bar1 fd12::2 -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -3997,7 +3997,7 @@ icmp,orig=(src=172.16.1.1,dst=192.168.2.2,id=,type=8,code=0),reply=(src icmp,orig=(src=192.168.1.3,dst=172.16.1.4,id=,type=8,code=0),reply=(src=172.16.1.4,dst=172.16.1.1,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4165,7 +4165,7 @@ icmpv6,orig=(src=fd20::1,dst=fd12::2,id=,type=128,code=0),reply=(src=fd icmpv6,orig=(src=fd20::1,dst=fd20::4,id=,type=128,code=0),reply=(src=fd12::2,dst=fd20::1,id=,type=129,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4242,7 +4242,8 @@ check ovs-vsctl clear interface ovs-p1 external_ids # check conntrack zone is flushed OVS_WAIT_WHILE([ovs-appctl dpctl/dump-conntrack zone=$zone_id | grep .]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +# ls1 should not be a local datapath anymore since ovs-p1 binding removed +OVN_CLEANUP_CONTROLLER([hv1], [], [], [ls1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4408,7 +4409,7 @@ OVS_WAIT_UNTIL([ test "${total_queries}" = "2" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4632,7 +4633,7 @@ OVS_WAIT_UNTIL([ test "${n_reset}" = "1" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4815,7 +4816,7 @@ ovs-vsctl set interface ovs-sw1-p1 external_ids:iface-id=sw1-p1 wait_row_count Service_Monitor 2 wait_row_count Service_Monitor 1 status=online -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -4917,7 +4918,7 @@ ovn-nbctl --wait=hv sync NS_CHECK_EXEC([lsp], [nc 88.88.88.88 8080 -z], [0], [ignore], [ignore]) NS_CHECK_EXEC([lsp], [nc 88.88.88.89 8080 -z], [0], [ignore], [ignore]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5014,7 +5015,7 @@ ovn-nbctl --wait=hv sync NS_CHECK_EXEC([lsp], [nc 8800::0088 8080 -z], [0], [ignore], [ignore]) NS_CHECK_EXEC([lsp], [nc 8800::0089 8080 -z], [0], [ignore], [ignore]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5247,7 +5248,7 @@ aef0::3 udp port 90" | uniq | wc -l) test $c -ge 1 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5484,7 +5485,9 @@ aef0::3 udp port 90" | uniq | wc -l) test $c -ge 1 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +kill $(pidof tcpdump) + +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5607,7 +5610,7 @@ AT_CHECK([ test $ct_est_count -eq 1 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5727,7 +5730,7 @@ NS_CHECK_EXEC([sw0-p1-lbc], [nc -z 20.0.0.4 80], [0], [ignore], [ignore]) # Send the packet to VIP. NS_CHECK_EXEC([sw0-p1-lbc], [nc -z 30.0.0.10 80], [0], [ignore], [ignore]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5836,7 +5839,7 @@ tcp,orig=(src=42.42.42.3,dst=42.42.42.2,sport=,dport=4242),reply=(s tcp,orig=(src=42.42.42.3,dst=66.66.66.66,sport=,dport=666),reply=(src=42.42.42.2,dst=42.42.42.3,sport=4242,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -5945,7 +5948,7 @@ tcp,orig=(src=4242::3,dst=4242::2,sport=,dport=4242),reply=(src=424 tcp,orig=(src=4242::3,dst=6666::1,sport=,dport=666),reply=(src=4242::2,dst=4242::3,sport=4242,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6039,7 +6042,7 @@ NS_CHECK_EXEC([sw0-p1-f], [ping -q -c 3 -i 0.3 -w 2 10.0.0.5 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6255,7 +6258,7 @@ sed -e 's/mark=[[0-9]]*/mark=/' | sort], [0], [dnl tcp,orig=(src=172.16.0.1,dst=10.0.0.2,sport=,dport=),reply=(src=10.0.0.2,dst=172.16.0.1,sport=,dport=),zone=,mark=,labels=0x401020500000000,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6487,7 +6490,7 @@ sed -e 's/mark=[[0-9]]*/mark=/' | sort], [0], [dnl tcp,orig=(src=fd07::1,dst=fd01::2,sport=,dport=),reply=(src=fd01::2,dst=fd07::1,sport=,dport=),zone=,mark=,labels=0x1001020400000000,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6536,7 +6539,7 @@ OVS_WAIT_UNTIL([test x$(ovn-nbctl lsp-get-up sw0-port1) = xup]) ovs-vsctl set interface p1 type=\"\" OVS_WAIT_UNTIL([test x$(ovn-nbctl lsp-get-up sw0-port1) = xdown]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1], [], [], [sw0]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6627,7 +6630,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl icmp,orig=(src=192.168.1.2,dst=172.16.1.100,id=,type=8,code=0),reply=(src=172.16.1.100,dst=172.16.1.20,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -6863,7 +6866,7 @@ AT_CHECK([ovn-nbctl set Logical_Switch_Port sw02 options:qos_burst=1000000]) OVS_WAIT_UNTIL([tc class show dev ovs-public | \ grep -q 'class htb .* prio 0 rate 5Gbit ceil 6Gbit burst 125000b cburst 124500b']) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7063,7 +7066,7 @@ Allowing connections from 1000::a wait_column "up" nb:bfd status logical_port=rp-public ovn-nbctl destroy bfd $uuid_v6 -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7192,7 +7195,7 @@ AT_CHECK([ovs-appctl dpctl/dump-flows | grep ct_mark | grep -v ipv6 -c], [1], [d 0 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7317,7 +7320,7 @@ NS_CHECK_EXEC([vm2], [ping -q -c 3 -i 0.3 -w 2 172.18.2.10 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7434,7 +7437,7 @@ NS_CHECK_EXEC([vm1], [ping -q -c 3 -i 0.3 -w 2 172.18.2.12 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7646,7 +7649,7 @@ EOF OVS_WAIT_UNTIL([test "1" = "$(grep -c "dl_dst=33:33:33:33:33:33" ovn-controller.log)"]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7789,7 +7792,7 @@ icmp,orig=(src=10.0.0.3,dst=10.0.0.2,id=,type=8,code=0),reply=(src=10.0 icmp,orig=(src=10.0.0.3,dst=10.0.0.2,id=,type=8,code=0),reply=(src=10.0.0.2,dst=10.0.0.3,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -7931,7 +7934,7 @@ icmp,orig=(src=10.0.0.3,dst=10.0.0.2,id=,type=8,code=0),reply=(src=10.0 icmp,orig=(src=10.0.0.3,dst=10.0.0.2,id=,type=8,code=0),reply=(src=10.0.0.2,dst=10.0.0.3,id=,type=0,code=0),zone= ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8032,7 +8035,7 @@ icmp,orig=(src=10.0.0.2,dst=10.0.0.3,id=,type=8,code=0),reply=(src=10.0 icmp,orig=(src=10.0.0.2,dst=10.0.0.3,id=,type=8,code=0),reply=(src=10.0.0.3,dst=10.0.0.2,id=,type=0,code=0),zone=,labels=0x4d3000000000000000000000000 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8133,7 +8136,7 @@ icmp,orig=(src=10.0.0.2,dst=10.0.0.3,id=,type=8,code=0),reply=(src=10.0 icmp,orig=(src=10.0.0.2,dst=10.0.0.3,id=,type=8,code=0),reply=(src=10.0.0.3,dst=10.0.0.2,id=,type=0,code=0),zone=,mark=16,labels=0x4d3000000000000000000000000 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8233,7 +8236,7 @@ check ovn-nbctl --wait=hv sync AT_CHECK([ip netns exec sw0p1 wget 20.0.0.3 -t 3 -T 1], [0], [ignore], [ignore]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8590,7 +8593,7 @@ check $PYTHON $srcdir/check_acl_log.py \ --icmp_code=0 -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8719,7 +8722,7 @@ tcp,orig=(src=192.168.2.2,dst=172.16.1.2,sport=,dport=),reply= AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8783,7 +8786,7 @@ NS_CHECK_EXEC([sw0-p1.2], [ping -q -c 3 -i 0.3 -w 2 10.0.0.3 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8880,7 +8883,7 @@ NS_CHECK_EXEC([ls1p1], [ping6 -q -c 3 -i 0.3 -w 2 1711::1 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -8989,7 +8992,7 @@ OVS_WAIT_UNTIL([ # Double check we never hit error condition AT_CHECK([grep -qE 'Too many active mcast flows' northd/ovn-northd.log], [1]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9063,7 +9066,7 @@ NS_CHECK_EXEC([vif0], [ping -q -c 3 -i 0.3 -w 1 192.168.20.1 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9261,7 +9264,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl udp,orig=(src=192.168.10.10,dst=192.168.20.20,sport=,dport=),reply=(src=192.168.20.10,dst=192.168.10.10,sport=,dport=),zone=,mark=10 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9411,7 +9414,7 @@ OVS_WAIT_UNTIL([ test "${requests}" -ge "6" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9562,7 +9565,7 @@ OVS_WAIT_UNTIL([ test "${requests}" -ge "6" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9690,7 +9693,7 @@ OVS_WAIT_UNTIL([ test "${total_icmp1_pkts}" = "3" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9841,7 +9844,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -9985,7 +9988,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10096,7 +10099,7 @@ NS_CHECK_EXEC([ns_ls1p1], [ping -q -c 3 -i 0.3 -w 2 10.89.189.1 | FORMAT_PING], 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10238,7 +10241,7 @@ NS_CHECK_EXEC([vm1], [ping -q -c 3 -i 0.3 -w 2 10.0.0.2 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10452,7 +10455,7 @@ check ovn-nbctl --wait=hv lb-del lb1 AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(30.0.0.1) | sed -e 's/zone=[[0-9]]*/zone=/'], [0], [LB1_CT_ENTRIES]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10597,7 +10600,7 @@ NS_CHECK_EXEC([ns_ext1], [ping -q -c 3 -i 0.3 -w 2 172.0.0.88 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10757,7 +10760,7 @@ OVS_WAIT_UNTIL([ test "${total_icmp1_pkts}" -gt "${total_icmp_pkts}" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -10927,7 +10930,7 @@ OVS_WAIT_UNTIL([ test "${total_pkts}" = "4" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11060,7 +11063,7 @@ OVS_WAIT_UNTIL([ test "${total_pkts}" = "3" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11553,7 +11556,9 @@ OVS_WAIT_UNTIL([ test "${n_packets}" = "3" ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +killall tcpdump + +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11695,7 +11700,7 @@ acl_test from-lport "" pg acl_test from-lport "--apply-after-lb" pg acl_test to-lport "" pg -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11784,7 +11789,7 @@ sed -e 's/zone=[[0-9]]*/zone=/'], [0], [dnl tcp,orig=(src=10.0.0.2,dst=172.16.0.1,sport=,dport=),reply=(src=192.168.0.2,dst=10.0.0.2,sport=,dport=),zone=,mark=2,protoinfo=(state=) ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11857,7 +11862,7 @@ NS_CHECK_EXEC([vif0], [ping -q -c 3 -i 0.3 -w 2 fe80::200:ff:fe00:1 | FORMAT_PIN check_row_count mac_binding 1 mac=\"00:00:00:00:00:02\" -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -11971,7 +11976,7 @@ OVS_WAIT_FOR_OUTPUT([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.151) | 1 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12184,7 +12189,7 @@ sctp,orig=(src=172.16.1.2,dst=192.168.2.2,sport=,dport=),reply OVS_WAIT_UNTIL([check_est_flows 0xa], [check established flows]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12263,7 +12268,7 @@ dnl Test the connection originating something that uses the same source port dnl as the LB VIP. NS_CHECK_EXEC([vm1], [nc -z -p 8080 42.42.42.1 80], 0, [ignore], [ignore]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12352,7 +12357,7 @@ AT_CHECK([ovs-ofctl dump-flows br-int | grep 'table=OFTABLE_CHK_LB_AFFINITY, n_p 0 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12442,7 +12447,7 @@ NS_CHECK_EXEC([sw1-p0], [ping -q -c 3 -i 0.3 -w 2 172.16.1.100 | FORMAT_PING], \ 3 packets transmitted, 3 received, 0% packet loss, time 0ms ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12556,7 +12561,7 @@ restart_ovsdb_controller_updates $TCP_PORT # Check that the MAC_Binding entries have been properly created as SB is now writable. wait_row_count MAC_Binding 1 logical_port=lr1-pub ip=172.24.4.100 -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12651,7 +12656,7 @@ zone_id=$(ovn-appctl -t ovn-controller ct-zone-list | grep lr_dnat | cut -d ' ' AT_CHECK([ovs-appctl dpctl/dump-conntrack | grep -c "zone=$zone_id"], [0], [2 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12798,7 +12803,7 @@ NS_CHECK_EXEC([sw01], [ip addr show sw01 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'], NS_CHECK_EXEC([sw11], [ip addr show sw11 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'], [0], [dnl 192.168.2.10 ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -12935,7 +12940,7 @@ check ovn-nbctl set logical_router lr options:chassis=hv1 check_snat check_dnat -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13071,7 +13076,7 @@ check ovn-nbctl set logical_router lr options:chassis=hv1 check_snat check_dnat -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13287,7 +13292,7 @@ AT_CHECK([for f in $(ls -1 nfcapd.*); do nfdump -o json -r $f; done | grep obser "observationPointID" : 3012, ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13414,7 +13419,7 @@ AT_CHECK([for f in $(ls -1 nfcapd.*); do nfdump -o json -r $f; done | grep obser "observationPointID" : 2002, ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13538,7 +13543,7 @@ AT_CHECK([for f in $(ls -1 nfcapd.*); do nfdump -o json -r $f; done | grep obser "observationPointID" : 1003, ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13660,7 +13665,7 @@ NS_CHECK_EXEC([sw01], [ping -q -c 2 -i 0.2 -w 2 172.16.1.1 | FORMAT_PING], ]) AT_CHECK([ovs-vsctl set Open_vSwitch . external-ids:ovn-remote=$SB_PATH]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -13763,7 +13768,7 @@ 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]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server]) @@ -14104,7 +14109,7 @@ AT_CHECK([ovn-nbctl get logical_router_port rp-sw0 ipv6_prefix | cut -c3-16], [0 [2001:1db8:3333] ]) -OVS_APP_EXIT_AND_WAIT([ovn-controller]) +OVN_CLEANUP_CONTROLLER([hv1]) as ovn-sb OVS_APP_EXIT_AND_WAIT([ovsdb-server])