neutron-ovs-cleanup deletes flows on br-ex it doesn't own
So when my neutron l3 agent node boots, it calls neutron-ovs-cleanup. This in turn deletes the flows on br-int and br-ex.
But the problem is, its deleting the 'default' flow on br-ex. For me, I have an external port 'p3p1' in the bridge br-ex:
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex p3p1
now I can ping the world etc. The output of:
# ovs-ofctl -O Openflow13 dump-flows br-ex
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0xbdab986b5f5e98ef, duration=135.117s, table=0, n_packets=27, n_bytes=2070, priority=2,in_port=2 actions=drop
cookie=0xbdab986b5f5e98ef, duration=135.481s, table=0, n_packets=14860, n_bytes=2385256, priority=0 actions=NORMAL
But, when i reboot, neutron-ovs-cleanup comes along, and after it says "Cleaning bridge: br-ex", I lose internet connectivity. And the reason is that the default flow is removed from br-ex (e.g. ovs-ofctl -O Openflow13 dump-flows br-ex now shows nothing).
What am I doing wrong? I have
bridge_mappings = physnet1:br-ex
ovsdb_interface = true
of_interface = native
integration_bridge = br_int
What am I doing wrong? If i now delete the bridge and add it back again, and add the external port, all is good again until next reboot.