Hello Lajos, I just double-checked on a fresh devstack installation (single node stand). I'm running devstack on CentOS-Stream-GenericCloud-9, but looks like it's not so important. My devstack local.conf: [root@devstack0 ~]# cat ~cloud-user/devstack/local.conf [[local|localrc]] ADMIN_PASSWORD= DATABASE_PASSWORD=${ADMIN_PASSWORD} RABBIT_PASSWORD=${ADMIN_PASSWORD} SERVICE_PASSWORD=${ADMIN_PASSWORD} ENABLED_SERVICES=key ENABLED_SERVICES+=,n-api,n-cond,n-sch,n-api-meta,n-cpu ENABLED_SERVICES+=,placement-api,placement-client ENABLED_SERVICES+=,q-svc,q-agt,q-l3,q-meta,q-dhcp ENABLED_SERVICES+=,c-sch,c-api,c-vol ENABLED_SERVICES+=,g-api ENABLED_SERVICES+=,rabbit,mysql Q_DVR_MODE=dvr_snat Q_ML2_TENANT_NETWORK_TYPE=vxlan Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch Q_AGENT=openvswitch PUBLIC_INTERFACE=eth1 NEUTRON_CREATE_INITIAL_NETWORKS=False LOGFILE=${DEST}/logs/stack.sh.log [root@devstack0 ~]# Then, to avoid guessing at what point to remove the router, I made a delay at this point: [root@devstack0 ~]# cd /opt/stack/neutron; git log --oneline | head -1; git diff; cd - e6eeb700c8 Merge "Honor debug mode in keepalived-state-change script logs" diff --git a/neutron/agent/l3/dvr_local_router.py b/neutron/agent/l3/dvr_local_router.py index e12cc1a0ab..822d9d6a86 100644 --- a/neutron/agent/l3/dvr_local_router.py +++ b/neutron/agent/l3/dvr_local_router.py @@ -836,6 +836,8 @@ class DvrLocalRouter(dvr_router_base.DvrRouterBase): self.agent.context, ex_gw_port['network_id']) LOG.debug("FloatingIP agent gateway port received from the " "plugin: %s", fip_agent_port) + import time + time.sleep(5) self.fip_ns.create_or_update_gateway_port(fip_agent_port) def update_routing_table(self, operation, route): /root [root@devstack0 ~]# systemctl restart