[Openstack] [Neutron] Source code structure

Roman Podolyaka rpodolyaka at mirantis.com
Thu Oct 10 08:58:13 UTC 2013

Hello Nikolai,

First, for any development question you should use openstack-dev mailing
list. This one (openstack) is meant to be used by OpenStack users.

On Neutron (formerly known as Quantum) architecture:
    I think those links can be useful for understanding of how Neutron
works internally:


Basically, Neutron is made up of services of 3 different types:
1. Neutron API (also known as Neutron Server) - is a WSGI app that defines
a REST API [1] to manage virtual networks of OpenStack cluster. It defines
high level resources users can operate with (networks, subnets, ports,
routers, etc).
2. Neutron Core Plugin - is a plugin of Neutron API, that defines how
Neutron virtual networks are actually implemented. E.g. there is Neutron
OpenVSwitch plugin, that uses OpenVSwitch to configure VLANs/GRE tunnels to
provide isolation of tenant networks. There are plenty of such plugins:
Linux Bridge, Nicira, Cisco, etc. Each of those uses its own technology
under the hood to provide virtual networking for OpenStack cluster tenants.
3. Neutron Agent - is a part of Neutron Core Plugin (so each plugin will
have its own agent implementation) - is a daemon running on cluster nodes
to configure bridges, set up GRE tunnels/VLANs, connect VMs tap interfaces
to bridges and so on. So this is the service "doing actual work". Neutron
Core Plugin talks to its agents via AMQP.

+ there are a few core plugin independent features (DHCP-agent, L3-agent,
service plugins (LBaaS, VPNaaS, FWaaS) and metadata service)

Welcome to OpenStack community! ;-)


[1] http://docs.openstack.org/api/openstack-network/2.0/content/index.html

On Thu, Oct 10, 2013 at 10:52 AM, Nikolai de Figueiredo <
nikolai.defigueiredo at netronome.com> wrote:

> Hello all,
> Being new to OpenStack I assume this is the best place to use as a
> first point of contact. I am investigating the networking features
> provided by Neutron however I can't seem to find information on how the
> source code is structured.
> What happens when a command line call is made to the Neutron server
> that leads to the creation/modification/deletion of virtual network
> elements? What resources exist that I could use to gain an
> understanding of how the code works?
> Or, is there a more appropriate platform for finding this kind of
> guidance?
> Help would be geatly appreciated.
> Regards
> Nikolai
> _______________________________________________
> Mailing list:
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe :
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20131010/0ff4eefe/attachment.html>

More information about the Openstack mailing list