Ask Your Question

[neutron] what is difference between agents and plugins

asked 2014-12-07 00:15:59 -0500

minherz gravatar image

Hello, In Github of the neutron I see agents and plugins. All architecture schemas show agents. What is a difference between agents and plugins? There is ML2 plugin. Is there some kind of L2 agent?

Regards, Leonid Y

edit retag flag offensive close merge delete

3 answers

Sort by ยป oldest newest most voted

answered 2014-12-07 00:36:48 -0500

dbaxps gravatar image

updated 2014-12-07 01:23:20 -0500

After Grizzly release Quantum was renamed Neutron. View:

L2 agent - agent which talks with the layer 2 plugin like OVS (Open vSwitch) or LB (Linux bridge) etc.

The original OpenStack Compute network implementation assumed a very basic model of performing all isolation through Linux VLANs and IP tables. OpenStack Networking introduces the concept of a plug-in, which is a pluggable back-end implementation of the OpenStack Networking API. A plug-in can use a variety of technologies to implement the logical API requests. Some OpenStack Networking plug-ins might use basic Linux VLANs and IP tables, while others might use more advanced technologies, such as L2-in-L3 tunneling or OpenFlow, to provide similar benefits.

OpenStack Networking also includes additional agents that might be required depending on your deployment:

plugin agent (quantum-*-agent):Runs on each hypervisor to perform local vswitch configuration. Agent to be run depends on which plug-in you are using, as some plug-ins do not require an agent.
dhcp agent (quantum-dhcp-agent):Provides DHCP services to tenant networks. This agent is the same across all plug-ins.
l3 agent (quantum-l3-agent):Provides L3/NAT forwarding to provide external network access for VMs on tenant networks. This agent is the same across all plug-ins.
edit flag offensive delete link more

answered 2016-09-22 14:13:30 -0500

Suresh Dharavath gravatar image

updated 2016-09-22 14:24:38 -0500

In a simple way Agent is a process that runs on difference hosts and communicates through some RPC calls with other process where as plugin is is just a peace of static software files(not a process) and implements all the apis that are required to communicate to the corresponding agent and they usually run in some process's context. Ex: Layer 2 plugin runs in the context of neutron server to communicate with the Layer 2 agent.

Basically the plugin and agents concept has much flexibility, like if you want to have or add some extra functionality, without changing the existing system then just add the plugin to the existing system by which you can talk to your agent.

edit flag offensive delete link more

answered 2014-12-11 00:34:21 -0500

SGPJ gravatar image

Adding to above: In openstack you can plug required projects like Murano using Murano plugin. Agents will be running in your compute node and it will communicate with neutron server.

edit flag offensive delete link more


Does it mean that agents only RPC to neutron server? It makes them a client app for the neutron server. In that case where the "real" implementation of the network implementation?

minherz gravatar imageminherz ( 2014-12-11 02:03:59 -0500 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools



Asked: 2014-12-07 00:15:59 -0500

Seen: 2,635 times

Last updated: Sep 22 '16