Wednesday, May 4, 2016

Neutron type driver vs mechanism driver

The following content was copy paste from this link.

http://aqorn.com/understanding-openstack-neutron-ml2-plugin/

I copy it here for my own convenience. Credit goes to the original author.

ML2 can really be broken down into two camps working together: types and mechanisms. Types typically refer to the type of network being implemented (notice nova-network isn’t an option). Mechanisms on the other hand generally refer to how that network type should be implemented.
It’s important to understand, within the greater context of this plugin, that ML2 separates network types from vendor-specific mechanisms to access those networks. Network types and mechanisms are handled as modular drivers (swappable) and supplants legacy/monolithic plugins such as openvswitch and linuxbridge.

ML2 still supports existing Layer2 agents via RPC interface however. Some examples include openvswitch, linuxbridge and Hyper-V.

The diagram below helps visualize the ML2 plugin structure:
ml2-arch1

Generally speaking, the ML2 type driver maintains the type-specific state, provides tenant network allocation, validates provider network attributes and models network segments by using provider attributes. Some ML2-supported network types include GRE, VLAN, VxLAN, Local and Flat.

In the other camp, the ML2 mechanism driver calls on the CRUD of L2 resources on vendor products such as Cisco Nexus, Arista, LinuxBridge and Open vSwitch.

Multiple mechanism drivers can access the same network simultaneously with three types of models :
  1. agent-based:  Linuxbridge, OVS
  2. controller-based: OpenDaylight
  3. ToR switch-based: Cisco Nexus, Arista, Mellanox
More information can be found here:
https://wiki.openstack.org/wiki/Neutron/ML2

No comments:

Post a Comment