neutron/neutron
sridhargaddam 2f9b0ce940 Spawn RADVD only in the master HA router
Currently radvd is spawned in all the HA routers irrespective of the
state of the router. This approach has the following issues.

1. While processing the internal router ports (i.e., qr-xxx), ha_router
   removes the LLA of the interface and adds it as a VIP to Keepalived conf.
   Radvd daemon is spawned after this operation in the router namespace
   (if the port is associated with any IPv6 subnets). Radvd notices that
   qr-xxx interface does not have the LLA, so does not transmit any Router
   Advts. In this state, VMs fail to acquire IPv6 addresses because of the
   missing RAs. Radvd does not recover even after keepalived configures the
   LLA of the interface. The only solution is to restart/reload radvd daemon.
   Currently keepalived-state-change monitor does not do any radvd related
   operations when a state transition happens. So we endup in this state
   forever.
2. For all the routers in Backup state, qr-xxx interface does not have LLA
   as it is managed by keepalived and configured only on the Master HA router.
   In such agents syslog is flooded with the messages [1] and this can cause
   loss of other useful info.
   [1] - resetting ipv6-allrouters membership on qr-2e373555-97

This patch implements the following.
1. If the router is already in the Master state, we configure the LLA as a VIP
   in keepalived conf but do not delete the LLA of the internal interface.
2. We spawn radvd only if the router is in the Master State.
3. Keepalived-state-change monitor takes care of enabling/disabling radvd upon
   state transitions.

Closes-Bug: #1440699
Change-Id: I351c71d058170265bbb8b56e1f7a3430bd8828d5
2015-04-23 17:15:15 +05:30
..
agent Spawn RADVD only in the master HA router 2015-04-23 17:15:15 +05:30
api Replace custom method call logger with oslo.log helper 2015-04-20 15:16:54 +00:00
callbacks Migrate to oslo.log 2015-03-12 11:22:56 +01:00
cmd Add simple ARP spoofing protection 2015-03-29 20:57:07 -07:00
common Replace custom method call logger with oslo.log helper 2015-04-20 15:16:54 +00:00
db Merge "_create_subnet_from_implicit_pool assumes external network extension" 2015-04-21 04:19:47 +00:00
debug Migrate to oslo.log 2015-03-12 11:22:56 +01:00
extensions Moving VLAN Transparency support from core to extension 2015-04-08 08:35:13 -07:00
hacking Migrate to oslo.log 2015-03-12 11:22:56 +01:00
ipam Simple subnetpool allocation quotas 2015-03-31 20:56:31 +00:00
locale Imported Translations from Transifex 2015-04-16 06:13:44 +00:00
notifiers Reuse nova batch notifier 2015-03-20 13:55:08 +00:00
openstack Merge "Synced versionutils from oslo-incubator" 2015-04-16 19:49:00 +00:00
plugins Merge "Replace custom method call logger with oslo.log helper" 2015-04-20 20:21:22 +00:00
scheduler OOP cleanup: start protected method names with underscore 2015-04-08 00:24:43 +04:00
server Migrate to oslo.log 2015-03-12 11:22:56 +01:00
services Replace custom method call logger with oslo.log helper 2015-04-20 15:16:54 +00:00
tests Spawn RADVD only in the master HA router 2015-04-23 17:15:15 +05:30
__init__.py Revert "monkey patch stdlib before importing other modules" 2015-02-11 17:26:33 -08:00
auth.py Migrate to oslo.log 2015-03-12 11:22:56 +01:00
context.py context: reuse base oslo.context class for to_dict() 2015-04-10 18:14:53 +02:00
hooks.py Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
i18n.py oslo: migrate to namespace-less import paths 2015-02-05 15:09:32 +01:00
manager.py Migrate to oslo.log 2015-03-12 11:22:56 +01:00
neutron_plugin_base_v2.py Basic subnetpool CRUD 2015-03-18 22:53:50 -07:00
policy.py Merge "Enable to apply policies to resources with special plural" 2015-04-01 08:04:45 +00:00
quota.py Treat all negative quota values as -1 2015-04-02 17:26:51 +05:30
service.py Revert "Set default of api_workers to number of CPUs" 2015-03-16 17:23:44 -07:00
version.py Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
wsgi.py Merge "Start metadata agent without trying to connect db" 2015-03-23 16:45:05 +00:00