OpenDaylight OpenStack Integration rui.zang@intel.com isaku.yamahata@intel.com
OpenStack Neutron Stadium Neutron Stadium Advanced Services Third party Solutions Neutron-lib https://governance.openstack.org/tc/reference/projects/neutron.html
OpenStack and OpenDaylight Integration Network/Control Node Controller node Neutron OpenDaylight* ML2 Plugin Networking-odl ML2 DB Neutron Northbound ovsdb/netvirt Yang Model Management Network Data Network Public Network Compute Node VM VM OVS Networking Node DHCP Agent OVS Internet Router
Networking-ODL and ODL Neutron Northbound Key components of the integration OpenStack networking-odl https://launchpad.net/networking-odl OpenStack Neutron Stadium Project Basically follows openstack rule, but a bit more flexible ODL Neutron Northbound https://wiki.opendaylight.org/view/neutronnorthbound:main Work in tandem Each has its own project governance
Release: OpenStack vs OpenDaylight Oct, 2017 2017 Q3-4 focus Mitaka Newton Ocata Pike Queens R (future) Beryllium Boron(Stable): LTS Carbon Nitrogen Oxygen(future) https://releases.openstack.org/ https://wiki.opendaylight.org/view/release_plan May, 2017
New Driver Framework in Networking-odl Network/Control Node Controller node Neutron OpenDaylight* ML2 Plugin Networking-odl ML2 DB Neutron Northbound ovsdb/netvirt Yang Model Management Network Data Network Public Network Compute Node VM VM OVS Networking Node DHCP Agent OVS Internet Router
V1 Driver Recap Management Network Data Network Public Network Network/Control Node Neutron ML2 Plugin Networking-odl 2 ML2 DB 3 Controller node OpenDaylight* Neutron Northbound ovsdb/netvirt 1 Create Network Internet Router
Synch on next Neutron Event - Repeat Errors Courtesy: https://wiki.opendaylight.org/images/8/8d/experiences_with_neutron.pdf 8
DB Neutron Neutron Neutron Networking-ODL Networking-ODL Networking-ODL Journal Table Journal Thread Journal Thread Journal Thread LoadBalancer(HAProxy) OpenDaylight* OpenDaylight* OpenDaylight* MD-SAL Neutron Northbound Neutron Northbound Neutron Northbound OpenStack* Service Provider OpenStack* Service Provider OpenStack* Service Provider Enhanced component New component Openflow* OVSDB Openflow* OVSDB Openflow* OVSDB Compute Node Compute Node Compute Node VM OVS VM OVS VM OVS
V2 Driver @ Work Network/Control Node Neutron ML2 Plugin 2 Controller node OpenDaylight* Neutron Northbound Networking-odl 3 ML2 DB ovsdb/netvirt Journal Thread Journal 4 5 Create Network Management Network Data Network Internet Public Network 1 Router
V2 Driver Details Journal based Ordered queue of operations Dependency graphs A-synchronous from the API DB level locking Journal thread Maintenance thread Full sync Recovery Cleanups
V2 Driver Benefits A-synchronous Free up Neutron faster Fits ODL design paradigm Ordered & Dependency checked Same resource won t hit race conditions Dependant resources won t hit race conditions DB level locking Supports HA deployment of Neutron Scale out
V2 Driver Shortcomings & Possible Improvement A-synchronous No way to know resource state in ODL However.. ODL is actually a-sync, so need to tackle somehow Becomes a bottleneck on scale Consider allowing journal thread to scale on single server Move dependency calculations to row creation Complexity is bug prone Need to simplify as much as possible
Pseudo agent port binding Store in agentdb for port binding neutron/networking-odl ODL controller Enabled in Ocata Support multiple vif types ovs-dpdk vpp sriov OVS DB external-ids hostconfig host_id host_type vif-type vif-details...
Pike/Nitrogen focus Resource status report ODL websocket + netconf Port status Active <--> Down OpenStack RPC RPC from ODL (client) to Neutron/networking-odl (server) Use case: dhcp port IP address L3Flavor ODL L3 router co-exists with other type of routers
Advanced Services L3 L2gateway Networking-sfc LBaaS BGPVPN Trunk QoS Networking-odl drivers Core plugin (ml2) Neutron Service Plugin A... Neutron NorthBound Service Plugin X ODL Controller
Contributions Ocata Pike (as of May 2017)
Summary: Networking-odl and odl neutron northbound are key components for the integration They are actively developed Call To Action Give it a try, Feedback and Contribute https://launchpad.net/networking-odl https://wiki.opendaylight.org/view/neutronnorthbound:main https://lists.opendaylight.org/mailman/listinfo/neutron-dev IRC: #opendaylight-neutron on freenode