[Openstack-operators] [neutron][ml2] Gutting ML2 from Neutron - possible?

Dan Sneddon dsneddon at redhat.com
Fri Apr 1 21:13:03 UTC 2016


On 04/01/2016 02:07 PM, Dan Sneddon wrote:
> On 04/01/2016 01:07 PM, Adam Lawson wrote:
>> The Contrail team that said they are using their network product with
>> OpenStack without requiring a mechanism driver with the ML2 plugin.
>> More specifically, they said they don't use or need ML2. I didn't have
>> a chance to ask them to clarify so I'm wondering how that works and
>> what is current best practice? I think the individual misspoke but I
>> wanted to see if this is actually being done today.
>>
>> Perhaps they replaced ML2 with something - exactly what though?
>>
>> //adam
>>
>> */
>> Adam Lawson/*
>>
>> AQORN, Inc.
>> 427 North Tatnall Street
>> Ste. 58461
>> Wilmington, Delaware 19801-2230
>> Toll-free: (844) 4-AQORN-NOW ext. 101
>> International: +1 302-387-4660
>> Direct: +1 916-246-2072
>>
>>
>> _______________________________________________
>> OpenStack-operators mailing list
>> OpenStack-operators at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators
>>
> 
> ML2 is what's known as a "core driver" for Neutron. This means that the
> main API implementation is done inside this driver. The ML2 driver is
> modular, and can load sub-drivers (mechanism and type drivers) to
> implement the specific actions such as creating virtual ethernet ports.
> 
> Contrail replaces this driver with the NeutronPluginContrailCoreV2,
> which implements the main API itself, without subdrivers. There is no
> support planned for ML2 mechanism or type drivers within the Contrail
> plugin. Contrail implements its own intelligent virtual ethernet ports,
> each of which is routing-aware, and the routing is made redundant using
> dynamic multipath routing. This replaces the Open vSwitch
> bridge/patch/port mechanism.
> 
> The current documentation [1] for Contrail/RDO covers Packstack. The
> initial installation is done with ML2+OVS, then the Neutron
> configuration is modified to load the Contrail driver instead.
> 
> In OSP-Director 8, it is possible to load the Contrail driver during
> installation instead of ML2. This is done by including the environment
> file:
> 
> openstack overcloud deploy --templates /path/to/templates \
> -e /path/to/templates/environments/neutron-opencontrail.yaml \
> [...]
> 
> This environment file will set the following:
> 
> ###########
> resource_registry:
>   OS::TripleO::ControllerExtraConfigPre:
> ../puppet/extraconfig/pre_deploy/controller/neutron-opencontrail.yaml
>   OS::TripleO::ComputeExtraConfigPre:
> ../puppet/extraconfig/pre_deploy/compute/neutron-opencontrail.yaml
> 
> parameter_defaults:
>   NeutronCorePlugin:
> neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
>   NeutronServicePlugins:
> neutron_plugin_contrail.plugins.opencontrail.loadbalancer.plugin.LoadBalancerPlugin
>   NeutronEnableDHCPAgent: false
>   NeutronEnableL3Agent: false
>   NeutronEnableMetadataAgent: false
>   NeutronEnableOVSAgent: false
>   NeutronEnableTunnelling: false
> ############
> 
> The files in the resource_registry section contain configuration
> settings such as the IP address of the Contrail API server, and the
> authentication credentials.
> 
> In the parameter_defaults section, the NeutronCorePlugin is changed
> from ML2 to the Contrail core plugin. The loadbalancer plugin is also
> relegated to the Contrail load balancer plugin.
> 
> [1] - http://www.opencontrail.org/rdo-openstack-opencontrail-integration/
> 
> The same kind of approach applies to some other 3rd-party Neutron
> plugin providers, although there are also some that use ML2 and do the
> customization at the mechanism and type driver layer. Does that answer
> your questions?
> 

I probably should have used TripleO in the above example to reduce
confusion (OSP-Director is Red Hat's name for the supported version of
TripleO, which uses the same source code).

In any case, it was just an example of how Contrail completely replaces
ML2 when you install it in any OpenStack deployment.

-- 
Dan Sneddon         |  Principal OpenStack Engineer
dsneddon at redhat.com |  redhat.com/openstack
650.254.4025        |  dsneddon:irc   @dxs:twitter



More information about the OpenStack-operators mailing list