neutron/neutron/tests/unit
Assaf Muller 303cbc6b5b Fix L3 HA with IPv6
We currently use garp_master_repeat and garp_master_refresh
to solve bug 1453855. We need to spawn keepalived only after
all of the qr/qg ports have been wired so that the
initial GARP will be properly sent. Otherwise you get a routing
black hole. In lieu of a proper sync method, we used those two keepalived
options to send GARPs repeatedly:

a) We did not know it never stops spamming the network
b) It causes VMs to lose their IPv6 default gateway due to a keepalived
   bug, which has since been fixed, but it would need to be backported
   to every keepalived version on every distro. Here's the patch:
   https://github.com/acassen/keepalived/pull/200

The solution this patch proposes is to drop the repeat and refresh
keepalived options. This will fix the IPv6 bug but re-introduce bug
1453855. So, this patch uses the delay option instead. It turns
out keepalived sends a GARP when it transitions to MASTER, and then
it waits a number of seconds determined by the delay option, and
sends a GARP again. We'll use an aggressive 'delay' setting to make
sure that when the node boots and the L3/L2 agents start, we'll
give the L2 agent enough time to wire the ports as a stopgap solution.
Note that this only affects initial synchronization time, not failover
times. Failover times will continue to be fast because the ports
are wired ahead of time, the initial GARP after the state transition
to MASTER will be sent properly.

Change-Id: I7a086472b8742828dae08ffd915c45e94fb4b94e
Closes-Bug: #1520517
Related-Bug: #1453855
2016-01-15 16:47:39 -05:00
..
agent Fix L3 HA with IPv6 2016-01-15 16:47:39 -05:00
api Pecan: Streamline request body processing 2016-01-11 04:07:34 -08:00
callbacks Provide kwargs for callback abort 2016-01-12 21:48:05 +00:00
cmd Unify assertEqual for empty usages 2016-01-07 10:06:35 +00:00
common Unify assertEqual for empty usages 2016-01-07 10:06:35 +00:00
core_extensions QoS core extension: fixed dict extension when QoS policy is unset 2015-08-08 15:44:27 +02:00
db Scope get_tenant_quotas by tenant_id 2016-01-13 14:56:18 +00:00
debug tests: stop validating neutronclient in neutron-debug tests 2016-01-14 06:46:45 +00:00
extensions Merge "Fix Security-rule's port should not set to 0 when Protocol is TCP/UDP" 2016-01-11 14:40:54 +00:00
hacking Unify assertEqual for empty usages 2016-01-07 10:06:35 +00:00
ipam Merge "Use compare-and-swap for IpamAvailabilityRange" 2015-11-20 22:05:59 +00:00
notifiers Add option for nova endpoint type 2015-12-10 08:40:36 +00:00
objects Add test for Neutron object versions 2016-01-06 10:34:03 +00:00
plugins Merge "Add systemd notification after reporting initial state" 2016-01-15 08:22:21 +00:00
quota Remove references to model_base through models_v2 2016-01-06 16:12:29 -07:00
scheduler Use admin context when removing DVR router on vm port deletion 2016-01-13 12:43:23 +03:00
services Merge "Unify assertEqual for empty usages" 2016-01-08 04:07:36 +00:00
tests Merge "Different approach to indicate failure on SystemExit" 2015-07-16 06:57:16 +00:00
__init__.py oslo: migrate to namespace-less import paths 2015-02-05 15:09:32 +01:00
_test_extension_portbindings.py Context: Remove logic for read_deleted and deprecate it 2015-06-09 13:50:03 -07:00
dummy_plugin.py Fixed a bunch of typos throughout Neutron 2015-10-30 08:54:41 -05:00
extension_stubs.py Merge "Simplify extension processing" 2016-01-10 11:19:24 +00:00
test_auth.py Use assertFalse(observed) instead of assertEqual(False, observed) 2015-11-12 22:50:57 +09:00
test_context.py Support Unicode request_id on Python 3 2015-11-27 16:21:16 +01:00
test_manager.py Pecan controller loads service plugins 2016-01-12 12:28:54 -08:00
test_policy.py Use DEVICE_OWNER_* for 'network:*' constants 2015-11-16 20:45:36 -08:00
test_service.py Refactor TestRpcWorker and TestWorkerService 2015-06-16 15:49:48 +03:00
test_wsgi.py Make sure we return unicode strings for process output 2015-11-20 16:49:51 +01:00
testlib_api.py Improve fixture usage. 2015-07-01 14:53:48 +12:00