Hi Mark, On Thu, 2 Aug 2018 08:18:12 -0400 Mark Michelson <mmich...@redhat.com> wrote:
> OVN offers a method of IP address management that allows for an IPv4 > subnet or IPv6 prefix to be specified on a logical switch. Then by > specifying a switch port's address as "dynamic" or "<mac address> > dynamic", OVN will automatically assign addresses to the switch port. > > While this works great for initial assignment of addresses, addresses > do not automatically adjust when changes are made to the switch's > configuration. For instance: > * If the subnet, ipv6_prefix, or exclude_ips for a logical switch > changes, the affected switch ports are not updated. > * If a switch port with a static IP address is added to the switch, > and that address conflicts with a dynamically assigned IP address, the > dynamic address is not updated. > * If a MAC address switched from being statically assigned to > dynamically assigned, the MAC address would not be updated. > * If a statically assigned MAC address changed, then the IPv6 address > would not be updated. > > This patch solves all of the above issues by changing the algorithm > for IPAM assignment. There are essentially three steps. > 1) While joining logical ports, all statically-assigned addresses > (i.e. any ports without "dynamic" addresses) have their addresses > registered to IPAM. This gives them top priority. > 2) All logical ports with dynamic addresses are inspected. Any changes > that must be made to the addresses are collected to be made later. Any > addresses that do not require change are registered to IPAM. This > allows for previously assigned dynamic addresses to be kept. > 3) All gathered changes are enacted. > > The change contains new tests that ensure that dynamic addresses are > updated when appropriate. > > This patch also alters some existing IPAM tests. Those tests assumed > that dynamic addresses would not be updated automatically, so those > tests either had to be altered or removed. > > Signed-off-by: Mark Michelson <mmich...@redhat.com> > Acked-by: Jakub Sitnicki <j...@redhat.com> > --- > v5->v6: > * Rebased > > v4->v5: > Cleanups suggested by Jakub Sitnicki + rebase > * Add some convenience pointers for shortened code. > * Separate checking of updates of dynamic addresses and registration > of unchanged addresses. > * Use OVS_NOT_REACHED() instead of ovs_assert(0) > > v3->v4: > Print warning when multiple dynamic addresses are configured on a > switch port. Ensure that dynamic addresses beyond the first on a > switch port are ignored. Found by Ben Pfaff. > > v2->v3: > Fixed a checkpatch problem (line too long) > > v1->v2: > Rebased > --- Recent fix pushed to master, 4d0214a365ae ("ovn: Fix typos in "ovn -- Address Set generation... test."), will cause the following test to fail with this patch applied: 2578: ovn -- Address Set generation from Port Groups (dynamic addressing) To fix the test you need to revert the mentioned commit and squash the diff with your changes. Thanks, Jakub _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev