+
+ //Neutron removes the DHCP port's IP before deleting it. As such,
+ //when it comes time to delete the port, the ARP rule can not
+ //be removed because we simply don't know the IP. To mitigate this,
+ //we cache the dhcp ports IPs (BUG 5408).
+ String owner = neutronPort.getDeviceOwner();
+ boolean isDhcpPort = owner != null && owner.equals(DHCP_DEVICE_OWNER);
+ List<Neutron_IPs> fixedIps = neutronPort.getFixedIPs();
+ if((null == fixedIps || fixedIps.isEmpty())
+ && actionToPerform == Action.DELETE && isDhcpPort){
+ fixedIps = dhcpPortIpCache.get(neutronPort.getPortUUID());
+ if(fixedIps == null) {
+ return;
+ }
+ }
+