From patchwork Wed Jan 16 19:46:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Michelson X-Patchwork-Id: 1026197 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43fzKF00nSz9sDP for ; Thu, 17 Jan 2019 07:27:28 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 842D1534A; Wed, 16 Jan 2019 20:26:36 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id BE82D4851 for ; Wed, 16 Jan 2019 19:46:33 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 98F8B821 for ; Wed, 16 Jan 2019 19:46:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 426CA89ACA for ; Wed, 16 Jan 2019 19:46:32 +0000 (UTC) Received: from monae.redhat.com (ovpn-122-44.rdu2.redhat.com [10.10.122.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id BD89A103BAB8 for ; Wed, 16 Jan 2019 19:46:31 +0000 (UTC) From: Mark Michelson To: dev@openvswitch.org Date: Wed, 16 Jan 2019 14:46:29 -0500 Message-Id: <20190116194630.21464-2-mmichels@redhat.com> In-Reply-To: <20190116194630.21464-1-mmichels@redhat.com> References: <20190116194630.21464-1-mmichels@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 16 Jan 2019 19:46:32 +0000 (UTC) X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH 1/2] v2.10 ovn: Clear dynamic_addresses when addresses are not "dynamic" X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org When a logical switch port changes to no longer use "dynamic" addresses, then the dynamic_addresses should be cleared. Reported-by: Girish Moodalbail Signed-off-by: Mark Michelson Signed-off-by: Ben Pfaff --- ovn/northd/ovn-northd.c | 2 +- tests/ovn.at | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index 404927195..fc178f2dc 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -1401,7 +1401,7 @@ build_ipam(struct hmap *datapaths, struct hmap *ports) } } - if (!nbsp->n_addresses && nbsp->dynamic_addresses) { + if (!num_dynamic_addresses && nbsp->dynamic_addresses) { nbrec_logical_switch_port_set_dynamic_addresses(nbsp, NULL); } } diff --git a/tests/ovn.at b/tests/ovn.at index ed132d06b..6612b43e9 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -11295,3 +11295,22 @@ as hv2 start_daemon ovn-controller OVN_CLEANUP([hv1],[hv2]) AT_CLEANUP + +AT_SETUP([ovn -- ipam to non-ipam]) +ovn_start + +ovn-nbctl ls-add sw0 +ovn-nbctl lsp-add sw0 p0 -- lsp-set-addresses p0 dynamic +ovn-nbctl --wait=sb add Logical-Switch sw0 other_config subnet=192.168.1.0/24 + +AT_CHECK([ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses], [0], + ["0a:00:00:00:00:01 192.168.1.2" +]) + +ovn-nbctl lsp-set-addresses p0 router + +ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses + +AT_CHECK([ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses], [0], [[[]] +]) +AT_CLEANUP From patchwork Wed Jan 16 19:46:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Michelson X-Patchwork-Id: 1026198 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43fzKp4KVZz9sDP for ; Thu, 17 Jan 2019 07:27:58 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 51AFF5350; Wed, 16 Jan 2019 20:26:37 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 9FBC14851 for ; Wed, 16 Jan 2019 19:46:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 398C8710 for ; Wed, 16 Jan 2019 19:46:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C3ABF7F6CE for ; Wed, 16 Jan 2019 19:46:32 +0000 (UTC) Received: from monae.redhat.com (ovpn-122-44.rdu2.redhat.com [10.10.122.44]) by smtp.corp.redhat.com (Postfix) with ESMTP id 66575103BAB8 for ; Wed, 16 Jan 2019 19:46:32 +0000 (UTC) From: Mark Michelson To: dev@openvswitch.org Date: Wed, 16 Jan 2019 14:46:30 -0500 Message-Id: <20190116194630.21464-3-mmichels@redhat.com> In-Reply-To: <20190116194630.21464-1-mmichels@redhat.com> References: <20190116194630.21464-1-mmichels@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 16 Jan 2019 19:46:32 +0000 (UTC) X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH 2/2] v2.10 ovn: Add port addresses to IPAM later. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org ipam_add_port_adresses() needs to be called after the peer field is set on the ovn_port structures. This way, addresses taken by peered router ports will be added to the logical switch's IPAM and therefore will be barred from assignment to other ports. Reported-by: Girish Moodalbail Signed-off-by: Mark Michelson Signed-off-by: Ben Pfaff --- ovn/northd/ovn-northd.c | 4 ++-- tests/ovn.at | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index fc178f2dc..81fc32ada 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -1614,7 +1614,6 @@ join_logical_ports(struct northd_context *ctx, } op->od = od; - ipam_add_port_addresses(od, op); tag_alloc_add_existing_tags(tag_alloc_table, nbsp); } } else { @@ -1658,7 +1657,6 @@ join_logical_ports(struct northd_context *ctx, op->lrp_networks = lrp_networks; op->od = od; - ipam_add_port_addresses(op->od, op); const char *redirect_chassis = smap_get(&op->nbrp->options, "redirect-chassis"); @@ -1760,6 +1758,8 @@ join_logical_ports(struct northd_context *ctx, } } } + + ipam_add_port_addresses(op->od, op); } } diff --git a/tests/ovn.at b/tests/ovn.at index 6612b43e9..f7f1ab5a8 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -11314,3 +11314,24 @@ ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses AT_CHECK([ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses], [0], [[[]] ]) AT_CLEANUP + +AT_SETUP([ovn -- ipam router ports]) +ovn_start + +ovn-nbctl ls-add sw +ovn-nbctl set logical_switch sw other-config:subnet=192.168.1.0/24 + +for i in 2 3 4; do + ovn-nbctl lr-add ro$i + ovn-nbctl lsp-add sw swp$i + ovn-nbctl --wait=sb lsp-set-addresses swp$i "02:00:00:00:00:0$i dynamic" + cidr=$(ovn-nbctl get logical_switch_port swp$i dynamic_addresses |cut -f2 -d' '|cut -f1 -d\") + ovn-nbctl lrp-add ro$i rop$i 02:00:00:00:00:0$i $cidr/24 -- set logical_switch_port swp$i type=router options:router-port=rop$i addresses=router; + AT_CHECK_UNQUOTED([ovn-nbctl get logical_router_port rop$i networks], [0], [[["192.168.1.$i/24"]] +]) +done + +ovn-nbctl list logical_switch_port +ovn-nbctl list logical_router_port + +AT_CLEANUP