[ovs-dev] OVN: configuration in Neutron DB?

Tony Liu tonyliu0592 at hotmail.com
Wed Jul 29 06:32:32 UTC 2020


Quick update. I changed the script to create 256 routers first, then set each of them as gateway.
There is no create and set back to back. It seems working fine now.

It would be good someone can clarify my questions. It seems that it's not guaranteed that the
object is ready when client get OK response of creation request. Is this expected?


Thanks!

Tony

________________________________
From: dev <ovs-dev-bounces at openvswitch.org> on behalf of Tony Liu <tonyliu0592 at hotmail.com>
Sent: July 28, 2020 10:37 PM
To: ovs-discuss at openvswitch.org <ovs-discuss at openvswitch.org>; ovs-dev at openvswitch.org <ovs-dev at openvswitch.org>
Subject: [ovs-dev] OVN: configuration in Neutron DB?

Hi,

In case of integration with OpenStack, for example, when a client requests to create a network,
is this network configuration saved in both Neutron DB and OVN DB, or OVN DB only?
Also, when a client gets a network from Neutron API, is the configuration read from Neutron DB
or OVN DB?

Other than coding, is there any doc about how Neutron OVN ML2 driver works?

I have this script to create 256 routers and set each of them as gateway.
router()
{
    local op=$1

    for c in `seq 0 1 255`; do
        echo "INFO: $op router-$c..."
        openstack router $op router-$c
        if [ "$op" == "create" ]; then
            openstack router set \
                --external-gateway public \
                --fixed-ip ip-address=10.6.33.$c \
                --disable-snat \
                router-$c
        fi
    done
}
I see lots failures from Neutron log when get/show a router. It seems like that, when setting a router,
the router is not completely ready yet. Is it possible?

After running that script, I see some logical routers in ovn-nb-db don't have gw_port_id. And there
are some duplications. Here is an example. Each of them has unique UUID.

external_ids        : {"neutron:gw_port_id"="", "neutron:revision_number"="1", "neutron:router_name"=router-255}
external_ids        : {"neutron:gw_port_id"="", "neutron:revision_number"="1", "neutron:router_name"=router-232}
external_ids        : {"neutron:gw_port_id"="", "neutron:revision_number"="0", "neutron:router_name"=router-158}
external_ids        : {"neutron:gw_port_id"="", "neutron:revision_number"="0", "neutron:router_name"=router-158}
external_ids        : {"neutron:gw_port_id"="e52dda53-c914-4ea7-840b-8632a5770680", "neutron:revision_number"="2", "neutron:router_name"=router-158}

I enabled nb-db debug logging and searched, eg. router-158, it only shows in a jsonrpc reply message
including 3 router-158, as the above.

Any clues?


Thanks!

Tony



_______________________________________________
dev mailing list
dev at openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list