← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1568992] Re: PD adds a non-sensical check to nonpluggable IPAM

 

[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1568992

Title:
  PD adds a non-sensical check to nonpluggable IPAM

Status in neutron:
  Expired

Bug description:
  In looking through the IPAM code, I ran across this check [1] which is
  as a major difference between the pluggable and non-pluggable IPAM
  code paths.  I got to thinking about it, and I don't see a valid use
  case for this check.

  Let's say an ip_address was specified in fixed_ips and the subnet cidr
  is detected by _get_subnet_for_fixed_ip as the provisional PD prefix
  (::1/64).  That would mean that the IP address specified is contained
  in ::1/64 (i.e. ::1 or ::dead:beef:1:1) in order for check_subnet_ip
  to match it [2].  This doesn't make sense in the first place to
  specify this kind of IP address for a subnet for which the network
  address isn't even known.  We can't allocate such an IP to the port.

  Now let's look at what happens if even if you do specify such a
  nonsensical address.  This conditional is False and so it drops to the
  else clause [3].  Here it is checked if it is a router port and if it
  is an auto address subnet.  PD subnets are all auto address subnets,
  so it depends on if it is a router port.  If it is, the  subnet is
  added to the IPs to allocate *without* the ip address!  If  it isn't,
  the entire thing is ignored.  Either way, the specific IP address that
  was specified is ignored.  All auto address subnets are added to the
  list later so it doesn't even matter that it *might* have been added
  here.

  So, if I understand everything correctly, this check doesn't make
  sense.

  [1] https://github.com/openstack/neutron/blob/c5bc5bda34/neutron/db/ipam_non_pluggable_backend.py#L248-249
  [2]
  https://github.com/openstack/neutron/blob/c5bc5bda34/neutron/ipam/utils.py#L28
  [3] https://github.com/openstack/neutron/blob/c5bc5bda34/neutron/db/ipam_non_pluggable_backend.py#L268

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1568992/+subscriptions


References