What are core plugin, service plugin and extension of neutron?

asked 2017-02-05 22:24:43 -0500

kramer gravatar image

updated 2017-02-05 22:25:53 -0500

I already have some understanding after search through the internet. But I do not know if they are right. So I will list them here, please help to correct me if I am wrong.

Please note that my understanding are based on the version liberty and mitaka

Core Plugin

Neutron have 4 core resources: network/subnet/subnet-pool/port. Core Plugin are used to manage these resources. For example, ML2 Plugin will create subnet in database and configure them on the linuxbridge or openvswitch

Service Plugin

Besides those core resource, neutron also support higher level services like route, firewall, loadbalance. This are managed by service plugins. For example, l3_route_plugin are used for CURD router. One thing I know from the code is that neutron will convert the core plugin to service plugin in future.

Extensions

There are three kinds of extensions:

First kind, this kind of extensions are used to manage some type of resources just like service plugins.(I do not know why we need this type of extension since we already have service plugin)

Second kind, this kind of extensions are used to add some attributes to a resources. For example, we have port resources and we want to add bind action to this resource. So we use an extension to do this.(Also confused here, why we just modify the corresponding plugin to add attributes)

Third kind, this kind of extensions are used to add some parameters to an API. For example, you need 3 parameters to create an port before. After add an extension to the api, you will need 4 parameters to do this.

OK. The above are my understanding of core/service plugin and extension. Please help to correct me if it is wrong. The extension part is the most uncertain part.

edit retag flag offensive close merge delete