The gate-tempest-dsvm-networking-ovn-native-l3-nv job is broken due
to changes made by . DevStack now handles L3 network resource
setup (i.e. public network and router) based on the "router" and
"external-net" neutron extensions rather than relying on the q-l3
service being enabled. As a result, we can remove some of the code
copied from DevStack by .
When OVN is used for L3 routing in devstack, create the public
network, subnets, router, and also create the public bridge br-ex.
This is meant to be equivalent to what happens in devstack when the
L3 agent is enabled. I hoped to do this by creating a flag that
could be set by plugins that would trigger the devstack code that
already exists to do this, but that approach was rejected (see
https://review.openstack.org/#/c/304871/). So, the next best thing
is to copy that code from devstack into the networking-ovn devstack
plugin, which is what I did here.