Neutron has highly modular, open, and extensible architecture consisting of plugins, agents, and services. Neutron plugins are classified into core and service plugins. Core plugins primarily deal with L2 connectivity and IP address management, while service plugins support services such as routing (L3), firewalls, and load-balancing services.
Plugins in Neutron allow the extension and customization of the Neutron's functionality. For instance, network equipment vendors can implement custom plugins to enable inter-operability between OpenStack Neutron and their specific software and hardware. The Neutron agents implement very specific networking functionalities. Examples include DHCP agent and L3 agent. The main Neutron server (and the plugins) communicate with Neutron agents. Refer to http://docs.openstack.org/admin-guide/networking-introduction.html.
The definition of APIs for network objects and services coupled with plugin design enables interoperability between routers...