2. Dragonflow
• Integral part of OpenStack
• Scale, Performance and Latency
• Lightweight and Simple
• Easily Extendable
• Distributed Control Plane
• Sync Policy Level abstraction to the CN
3. Dragonflow - Distributed SDN
Neutron-Server
Dragonflow Plugin
DB
OVS
Dragonflow
DB
Driver
Compute Node
OVS
Dragonflow
DB
Driver
Compute Node
OVS
Dragonflow
DB
Driver
Compute Node
OVS
Dragonflow
DB
Driver
Compute Node
DB
VM VM
..
VM VM
..
VM VM
.. VM VM
..
4. Compute NodeCompute NodeCompute Node
Dragonflow
Network DB
OVS
Neutron
Server
OVSDB
OVSDB-Server
ETCD RethinkDBRAMCloud
Kernel Datapath Module
NIC
User Space
Kernel Space
Dragonflow DB Drivers
OVSDB ETCD RethinkDBRMC
Future
Dragonflow Plugin
Route
Core
API
SG
vswitchd
Container
Dragonflow Under the Hood
VM Dragonflow Controller
Abstraction Layer
L2 App L3 App DHCP App
Fault
Detection
SG
LBaaS …FWaaS
Pluggable DB
Layer
NBDBDrivers
SB DB Drivers
smartNIC OVSDB
OVSDB
ETCD
RMC
RethinkDB
OpenFlow
5. Current Release Features (Liberty)
L2 core API, IPv4, IPv6
GRE/VxLAN/Geneve tunneling protocols
Distributed L3 Virtual Router
Hybrid proactive + reactive flow installation
North-South traffic is still centralized
Distributed DHCP
SDN application , No additional running processes
Pluggable Distributed Database
ETCD, RethinkDB, RAMCloud, OVSDB
Selective DB Distribution
7. Database Framework
Requirements
• HA / Redundancy / Clustering needed
• Different Environments have different requirements
• SLA , Performance, Latency
Why Pluggable?
• Long time to productize
• Mature Open Source alternatives
• Allow us to focus on the networking services only
8. DB Driver API
Implementations
RAMCloud
ETCD
RethinkDB
OVSDB
Dragonflow Pluggable Database
Compute NodeCompute NodeCompute Node
Dragonflow
Local
Controller
Pluggable
DB Layer
Applicative
DB Layer
Adapter
DB
Driver
API
Expose DB
Features
Neutron Server
Dragonflow
Neutron
Plugin
DB Operations
Database
Server
DB Adapter
DB Adapter
DB Adapter
9. Distributed
Database
DB Data 3
DB Data 2
DB Data 1
Selective Distribution
Compute Node 1
Dragonflow
Local Cache
OVS
DB Data 1
Compute Node N
Dragonflow
OVS
Local Cache
DB Data 3
DB Data 2
Dragonflow DB Drivers
OVSDB ETCD RethinkDBRMC
12. Roadmap
Containers
Distributed SNAT/DNAT
Reactive DB
Topology Service Injection / Service Chaining
Smart NICs
Hierarchical Port Binding (SDN ToR)
Inter Cloud Connectivity (Boarder Gateway /
L2GW)
Fault Detection
Notas del editor
Why is this a good thing?
Common Applicative DB Adapter Layer
Same layer is used by all clients
Dragonflow Neutron plugin
Dragonflow local controller
External/Internal applications
Expressed in terms of the schema model
Converts model to “Key / Value”
Calls the DB Driver API for DB Operations
Leverage DB advance features
Knows to receive and wait for DB changes
According to a pre defined generic API with the driver
Selective publish-subscribe
Each local controller sync only relevant data according to its local ports
Depends on the virtual topology
Local controller gets all local ports information
DB framework must support waiting for changes on specific entry column values
The plugin tags the related objects with a special column value
Reduce the sync load and change rate
Each local controller only gets the subset of the data that is relevant for it
Each local controller sync only relevant data according to its local ports
Depends on the virtual topology
Local controller gets all local ports information
DB framework must support waiting for changes on specific entry column values
The plugin tags the related objects with a special column value
Reduce the sync load and change rate
Each local controller only gets the subset of the data that is relevant for it