OpenStack Networking (Neutron)
Go to file
venkata anil 26d8702b9d l2pop fdb flows for HA router ports
This patch makes L3 HA failover not depended on neutron components
(during failover).

All HA agents(active and backup) call update_device_up/down after wiring
the ports. But l2pop driver is called for only active agent as port
binding in DB reflects active agent. Then l2pop creates unicast and
multicast flows for active agent.
On failover, flows to new active agent is created. For this to happen -
all of database, messaging server, neutron-server and destination L3
agent should be active during failover. This creates two issues -
1) When any of the above resources(i.e neutron-server, .. ) are dead,
   flows between new master and other agents won't be created and
   L3 Ha failover is not working. In same scenario, L3 Ha failover will
   work if l2pop is disabled.
2) Packet loss during failover is higher as above neutron resources
   interact multiple times, so will take time to create l2 flows.

In this change, we allow plugin to notify l2pop when update_device_up/down
is called by backup agents also. Then l2pop will create flood flows to
all HA agents(both active and slave). L2pop won't create unicast flow for
this port, instead unicast flow is created by learning action of table 10
when keepalived sends GARP after assigning ip address to master router's
qr-xx port. As flood flows are already created and unicast flow is
dynamically added, L3 HA failover is not depended on l2pop.

This solves two isses
1) with L3 HA + l2pop, failover will work even if any of above agents
   or processes dead.
2) Reduce failover time as we are not depending on neutron to create
   flows during failover.
We use L3HARouterAgentPortBinding table for getting all HA agents of a
router port. HA router port on slave agent is also considered for l2pop
distributed_active_network_ports and agent_network_active_port_count

Closes-bug: #1522980
Closes-bug: #1602614
Change-Id: Ie1f5289390b3ff3f7f3ed7ffc8f6a8258ee8662e
2016-09-08 22:30:16 +00:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Close XenAPI sessions in neutron-rootwrap-xen-dom0 2016-03-18 13:05:09 -05:00
devstack gate_hook: Compile ovs only with supported kernels 2016-09-06 13:22:43 +00:00
doc Update L3 agent extensions devref 2016-09-06 21:11:17 +00:00
etc Remove FWaaS policy.json entries 2016-09-06 21:30:41 +00:00
neutron l2pop fdb flows for HA router ports 2016-09-08 22:30:16 +00:00
rally-jobs Increase rally network/port count and add quotas 2016-08-18 10:51:46 +00:00
releasenotes Standardize release note page ordering 2016-09-08 14:32:37 +08:00
tools Merge "Make milestone-review-dash script pull all Stadium projects" 2016-09-01 11:37:44 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:31:29 +00:00
.gitignore Automatically generate neutron core configuration files 2015-11-27 15:22:59 +00:00
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Start using neutron-lib for shared constants and exceptions 2016-02-10 16:41:18 -07:00
.testr.conf .testr.conf: revert workaround of testtools bug 2016-02-19 14:29:07 +01:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst Add a hacking rule for string interpolation at logging 2016-07-11 22:54:56 +00:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
MANIFEST.in Include alembic versions directory to the package 2015-10-21 07:26:24 +00:00
README.rst corrected the link in README.rst 2016-08-01 23:48:05 +08:00
TESTING.rst Add information about using file based sqlite for unit tests 2016-07-25 23:54:38 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
requirements.txt Updated from global requirements 2016-08-27 00:36:40 +00:00
run_tests.sh Remove check for bash usage 2015-04-07 15:15:33 +00:00
setup.cfg Remove FWaaS entries from neutron setup.cfg 2016-08-29 19:09:07 +00:00
setup.py Updated from global requirements 2015-09-21 18:56:49 +00:00
test-requirements.txt Updated from global requirements 2016-09-01 04:58:44 +00:00
tox.ini Add tool to list moved globals 2016-08-18 10:14:42 -04:00

README.rst

Welcome!

You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!

External Resources:

The homepage for Neutron is: http://launchpad.net/neutron. Use this site for asking for help, and filing bugs. Code is available on git.openstack.org at <http://git.openstack.org/cgit/openstack/neutron>.

The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:

Neutron Administrator Guide

http://docs.openstack.org/admin-guide/networking.html

Neutron Developer Guide

http://docs.openstack.org/developer/neutron/devref/

Networking Guide

http://docs.openstack.org/networking-guide/

Neutron API Reference:

http://developer.openstack.org/api-ref/networking/v2/

Current Neutron developer documentation is available at:

http://wiki.openstack.org/NeutronDevelopment

For help on usage and hacking of Neutron, please send mail to <mailto:openstack-dev@lists.openstack.org>.

For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.