[ovs-dev] [PATCH v2.12] ovn: Prevent erroneous duplicate IP address messages.

Ben Pfaff blp at ovn.org
Wed Nov 20 23:49:46 UTC 2019


I applied it to both branches.  Thank you for asking for backports.

On Tue, Nov 12, 2019 at 12:01:42PM -0500, Mark Michelson wrote:
> In addition to applying this to 2.12, I am requesting a backport to 2.11 as
> well. Thank you.
> 
> On 11/12/19 11:59 AM, Mark Michelson wrote:
> > This is a backport to OVS 2.12 of OVN master commit 21c29d5b0c.
> > 
> > When using dynamic address assignment for logical switches, OVN reserves
> > the first address in the subnet for the attached router port to use.
> > 
> > In commit 488d153ee87841c042af05bc0eb8b5481aaa98cf, the IPAM code was
> > modified to add assigned router port addresses to IPAM. The use case for
> > this was when a switch was joined to multiple routers, and all router
> > addresses were dynamically assigned.
> > 
> > However, that commit also made it so that when a router rightly claimed
> > the first address in the subnet, ovn-northd would issue a warning about
> > a duplicate IP address being set. This change fixes the issue by adding
> > a special case so that we don't add the router's IP address to IPAM if
> > it is the first address in the subnet. This prevents the warning message
> > from appearing.
> > 
> > Signed-off-by: Mark Michelson <mmichels at redhat.com>
> > Acked-by: Numan Siddique <nusiddiq at redhat.com>
> > Acked-by: Han ZHou <hzhou8 at ebay.com>
> > ---
> >   ovn/northd/ovn-northd.c | 9 ++++++++-
> >   1 file changed, 8 insertions(+), 1 deletion(-)
> > 
> > diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
> > index 6c6de2afd..1c9164924 100644
> > --- a/ovn/northd/ovn-northd.c
> > +++ b/ovn/northd/ovn-northd.c
> > @@ -1194,7 +1194,14 @@ ipam_add_port_addresses(struct ovn_datapath *od, struct ovn_port *op)
> >           for (size_t i = 0; i < lrp_networks.n_ipv4_addrs; i++) {
> >               uint32_t ip = ntohl(lrp_networks.ipv4_addrs[i].addr);
> > -            ipam_insert_ip(op->peer->od, ip);
> > +            /* If the router has the first IP address of the subnet, don't add
> > +             * it to IPAM. We already added this when we initialized IPAM for
> > +             * the datapath. This will just result in an erroneous message
> > +             * about a duplicate IP address.
> > +             */
> > +            if (ip != op->peer->od->ipam_info.start_ipv4) {
> > +                ipam_insert_ip(op->peer->od, ip);
> > +            }
> >           }
> >           destroy_lport_addresses(&lrp_networks);
> > 
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list