Neutron-ovs-agent configures physical bridges that they works
in fail_mode=secure. This means that only packets which match some
OpenFlow rule in the bridge can be processed.
This may cause problem on hosts with only one physical NIC
where same bridge is used to provide control plane connectivity
like connection to rabbitmq and data plane connectivity for VM.
After e.g. host reboot bridge will still be in fail_mode=secure
but there will be no any OpenFlow rule on it thus there will be
no communication to rabbitmq.
With current order of actions in __init__ method of OVSNeutronAgent
class it first tries to establish connection to rabbitmq and later
configure physical bridges with some initial OpenFlow rules.
And in case described above it will fail as there is no connectivity
to rabbitmq through physical bridge.
So this patch changes order of actions in __init__ method that it first
setup physical bridges and than configure rpc connection.
Reviewed: https:/ /review. opendev. org/677055 /git.openstack. org/cgit/ openstack/ neutron/ commit/ ?id=f9473566d55 9bf25c1baac2fce f505b0d2609fa1
Committed: https:/
Submitter: Zuul
Branch: stable/rocky
commit f9473566d559bf2 5c1baac2fcef505 b0d2609fa1
Author: Slawek Kaplonski <email address hidden>
Date: Fri Aug 16 13:44:09 2019 +0000
Initialize phys bridges before setup_rpc
Neutron- ovs-agent configures physical bridges that they works
in fail_mode=secure. This means that only packets which match some
OpenFlow rule in the bridge can be processed.
This may cause problem on hosts with only one physical NIC
where same bridge is used to provide control plane connectivity
like connection to rabbitmq and data plane connectivity for VM.
After e.g. host reboot bridge will still be in fail_mode=secure
but there will be no any OpenFlow rule on it thus there will be
no communication to rabbitmq.
With current order of actions in __init__ method of OVSNeutronAgent
class it first tries to establish connection to rabbitmq and later
configure physical bridges with some initial OpenFlow rules.
And in case described above it will fail as there is no connectivity
to rabbitmq through physical bridge.
So this patch changes order of actions in __init__ method that it first
setup physical bridges and than configure rpc connection.
Conflicts:
neutron/ plugins/ ml2/drivers/ openvswitch/ agent/ovs_ neutron_ agent.py
Change-Id: I41c02b0164537c 5b1c766feab8117 cc88487bc77 e408c8c059b3129 9fdfe81127) e445393c7c7e7a9 793357df08)
Closes-Bug: #1840443
(cherry picked from commit d41bd58f31e259f
(cherry picked from commit 3a2842bdd8d8d59