Jump to: navigation, search

Difference between revisions of "Spec-QuantumMidoNetPlugin"

 
Line 16: Line 16:
  
 
'''Implementation Overview: '''
 
'''Implementation Overview: '''
 +
 +
MidoNetPluginV2 class extends db_base_plugin_v2.QuantumDbPluginV2 and l3_db.L3_NAT_db_mixin, and implements all the necessary methods to provide the Quantum L2 and L3 features. 
 +
 +
Some Quantum objects map directly to the MidoNet objects.  The following list shows the Quantum constructs and their equivalent MidoNet constructs:
 +
 +
* Quantum network == MidoNet virtual bridge
 +
* Quantum port ==  MidoNet virtual bridge port
 +
* Quantum router == MidoNet virtual router
 +
 +
Creating these objects in Quantum also creates their equivalent MidoNet objects through the MidoNet API server.
 +
 +
MidoNet comes with its own DHCP implementation, so the Quantum's DHCP agent does not need to run.  The subnets in Quantum are registered to MidoNet DHCP service when created.
 +
 +
MidoNet itself does not provide IPAM, so it relies on Quantum to manage the IP addresses. 
 +
 +
MidoNet is capable of doing SNAT/DNAT, and through them, Quantum's Floating IP feature is implemented. 
 +
 +
When Quantum networks are attached to Quantum routers via router interfaces, MidoNet does something similar by linking the virtual bridges and virtual routers through their ports.  Note that the virtual routers in MidoNet handles routing and NAT, hence there is no need to run Quantum L3 agent to perform these features.  Instead of the Quantum L3 agents, MidoNet agents runs on the gateway hosts to provide these L3 features. 
 +
 +
MidoNet agents also run on hypervisor hosts to handle all the inter-VM traffic.
 +
 +
Security groups and metadata: TODO
  
 
'''Data Model Changes: '''
 
'''Data Model Changes: '''

Revision as of 16:29, 2 February 2013

Quantum MidoNet Plugin

'Scope:'

The goal of this blueprint is to implement Quantum plugin for MidoNet virtual networking platform.

Use Cases':'

To provide and enable MidoNet virtual networking technology as one of the options for those using Quantum as cloud networking orchestration.

Some of the benefits that come from using MidoNet in your IaaS cloud are:

  • the ability to scale IaaS networking into the thousands of compute hosts
  • the ability to offer L2 isolation which is not bounded by the VLAN limitation (4096 unique VLANs)
  • making your entire IaaS networking layer completely distributed and fault-tolerant

Implementation Overview:

MidoNetPluginV2 class extends db_base_plugin_v2.QuantumDbPluginV2 and l3_db.L3_NAT_db_mixin, and implements all the necessary methods to provide the Quantum L2 and L3 features.

Some Quantum objects map directly to the MidoNet objects. The following list shows the Quantum constructs and their equivalent MidoNet constructs:

  • Quantum network == MidoNet virtual bridge
  • Quantum port == MidoNet virtual bridge port
  • Quantum router == MidoNet virtual router

Creating these objects in Quantum also creates their equivalent MidoNet objects through the MidoNet API server.

MidoNet comes with its own DHCP implementation, so the Quantum's DHCP agent does not need to run. The subnets in Quantum are registered to MidoNet DHCP service when created.

MidoNet itself does not provide IPAM, so it relies on Quantum to manage the IP addresses.

MidoNet is capable of doing SNAT/DNAT, and through them, Quantum's Floating IP feature is implemented.

When Quantum networks are attached to Quantum routers via router interfaces, MidoNet does something similar by linking the virtual bridges and virtual routers through their ports. Note that the virtual routers in MidoNet handles routing and NAT, hence there is no need to run Quantum L3 agent to perform these features. Instead of the Quantum L3 agents, MidoNet agents runs on the gateway hosts to provide these L3 features.

MidoNet agents also run on hypervisor hosts to handle all the inter-VM traffic.

Security groups and metadata: TODO

Data Model Changes:

N/A

Configuration variables:

TODO

API's:

N/A

Plugin Interface:

N/A

Required Plugin support:

N/A

Dependencies:

N/A

CLI Requirements:

N/A

Horizon Requirements:

N/A

Usage Example:

N/A

Test Cases:

TODO