neutron/neutron/tests
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
..
common Switch order for cleanup in NamespaceFixture 2016-09-02 12:07:42 +00:00
contrib Merge "gate_hook: Compile ovs only with supported kernels" 2016-09-08 17:04:37 +00:00
etc Remove FWaaS policy.json entries 2016-09-06 21:30:41 +00:00
fullstack Handle fullstack oslo deprecations 2016-08-29 11:34:51 -04:00
functional Add a composite unique key to floatingip table in Neutron database 2016-09-08 02:12:40 +00:00
retargetable Restore MySQL and Postgresql functional testing 2016-06-29 13:20:17 -04:00
tempest Merge "Add API test for L3 Flavors" 2016-09-08 21:47:31 +00:00
unit l2pop fdb flows for HA router ports 2016-09-08 22:30:16 +00:00
var
__init__.py Avoid eventlet monkey patching for the tempest plugin 2016-04-29 22:47:24 -05:00
base.py Merge "Except if tracked resource registered as countable" 2016-09-08 07:04:25 +00:00
fake_notifier.py
post_mortem_debug.py
tools.py Use method get_ipv6_addr_by_EUI64 from oslo.utils 2016-08-30 19:49:09 +08:00