Fix unshortened IPv6 address caused DHCP crash

When unshortened IPv6 address provided to allocation pool, DHCP
agent crashed because OpenStack is trying to add same IPv6 addresses
to dhcp tap device.

The root cause is that current code compares provided unshortened
IPv6 address with the returned result of "ip addr list", which is
shortened. So the same IPv6 address is treated as different ones.

The fix is trying to shorten the provided address before comparison.

Change-Id: If1e183e65c5ab785b73771d9a3d4b525d38284a9
Closes-Bug: 1266780
Remove unused variable

o neutron/services/firewall/drivers/linux/iptables_fwaas.py:FWAAS_CHAIN
  = 'fwaas'

  This variable was added in the following commit.

    commit 7e487160867d2c2059d556d0d3af50bc8e8838fa
    Author: Rajesh Mohan <rajesh.mlists@gmail.com>
    Date:   Fri Jun 21 17:55:08 2013 -0700

        Firewall as a Service (FWaaS) Iptables Driver

  But there is no evidence that was used.

Change-Id: I5633e74e2441b71e3dddaa0c2f6a5804778e21e1
Delete disassociated floating ips on external network deletion

Also remove redundant check for network in use in bigswitch plugin

Closes-Bug: #1238439
Closes-Bug: #1259144

Change-Id: I7586f43c2e99be9df491c68bf1e8658994ffd263
Remove RPC to plugin when dhcp sets default route

_set_default_route() was using an RPC to the plugin to get the DHCP
port for the network on the current host, and then used it to form
the tap device name. This happened on every allocation reload too.
This fix removes the RPC and gets the tap device name using local
methods instead. It also removes an unnecessary call to set the
default route in the restart method.

Closes-Bug: 1290068
Related-Bug: 1294254
Change-Id: I639bcf93725c4969d1011d2d20491d461ccfdbed
Enable flake8 E711 and E712 checking

E711 comparison to False should be 'if cond is False:' or 'if not cond:'
     comparison to None should be 'if cond is None:' or 'if not cond:'
E712 comparison to True should be 'if cond is True:' or 'if cond:'

Most violations were in DB queries. Replace as follows:
  False -> sqlalchemy.sql.false()
  None  -> sqlalchemy.sql.null()
  True  -> sqlalchemy.sql.true()

Change-Id: Iff54747b70f504d5466cfdc6e2ec4d7a0f9ddb7c
Closes-bug: #1305377
Fix Metering doesn't respect the l3 agent binding

This patch fix the issue by changing the call to
find the plugin which handles the l3 which is now
the l3_router service plugin instead of the old mixin.

Also change the unit tests to use the l3 service plugin
instead of the l3 mixin and refactor the rpc callbacks
part.

Co-Authored-By: Ala Rezmerita <ala.rezmerita@cloudwatt.com>
Closes-bug: #1257354
Change-Id: Ide26f825005fa63cd3fcc75fa91fffb947e0be7a
Check if bridge exists and make sure it's UP in ensure_bridge

Introduce _bridge_exists_and_ensure_up that checks if the bridge
exists and if it's DOWN sets it UP

Change-Id: Ide9d2bb04016cadb347b00cadbee7007e61bd01e
Closes-bug: #1282741
OFAgent: Process port_update notifications in the main agent loop

Port the following patch to OFAgent.
commit: 5e6e592132aa9a98936ce3bfdb66efc7832caafb
https://review.openstack.org/#/c/61964/

Partial-Bug: 1293265

Change-Id: I53813d12c66dc746cd373fd91ff9bd9bdbf222db
OFAgent: Improve handling of security group updates

Port the following patch to OFAgent.
commit: 3046c4ae22b10f9e4fa83a47bfe089554d4a4681
https://review.openstack.org/#/c/63100/

Partial-Bug: 1293265

Change-Id: Iecdfee894ff2fd5f05f63f040dd70821af124737
Validate IPv6 modes in API when IP version is 4

Add a validation to ipv6_ra_mode and ipv6_address_mode with ip
version. An InvalidInput error is prompted when ipv6_ra_mode
or ipv6_address_mode is specified in subnet create and update
API and ip version is 4.

Change-Id: I9a0356f23e6b162c31f2d289a34f4bd261cee91e
Closes-Bug: 1307788
Fix migration that breaks Grenade jobs

Migration 33c3db036fe4_set_length_of_description_field_metering
needs to be changed as it is a reason of Grenade job's fail.

Closes-bug: #1307344

Change-Id: Ia57d9a60847e4a34977e40fb8b09181bdbd9c39b
Make help texts more descriptive in Metaplugin

This patch makes help texts of configuration parameters of
metaplugin.ini more descriptive. Comments in metaplugin.ini
are also improved.

Change-Id: I1fac888ecc223a7199cc9c9aeb603b7493f22171
Closes-Bug: #1283930
Updated from global requirements

Change-Id: I11182ae01c05ed104b064c2b68bcbf5a53e0da99
Ml2: Set correct nullable for admin_state_up

In migrations 492a106273f8_brocade_ml2_mech_dri was set incorrect
nullable parameter:

Set admin_state_up NOT NULL in ml2_brocadeports.

Partial-Bug: #1296282

Change-Id: I051e37990ae3371978eeb1ff71e70ae2a44097bc
Cisco: Set correct nullable for switch_ip, instance_id, vlan_id

Corrected the following model according to database
content:
 - NOT NULL for NexusPortBinding switch_ip and instance_id

In migrations folsom_initial was set incorrect nullable parameter:
- Set vlan_id NOT NULL in cisco_nexusport_bindings.

Partial-Bug: #1296282

Change-Id: Ie5315fcbf227025c30ab4a4b97ec2a140ee3923c
Fix H302 violations in db package and services

Change-Id: If5e07fa4529430ba90d9c7dd81d28ceeee00ebe0
Partial-Bug: #1291032
Add 2-leg configuration to Radware LBaaS Driver

Radware's load balancer currently supports three network interfaces.
Prior to this code addition, the configuration of those three
interfaces was: one interface for management, one for high
availability backup, and one for load balancing servers where the
IP that the outside world sees (VIP) and the IP that the servers
respond to (PIP) are identical.

This change adds a new "2-legged" configuration: one interface for
management, one interface for a VIP network, and one interface for the
PIP and the high availability backup network.

During VIP creation, the LBaaS driver detects if the incoming
configuration is "2-legged" by comparing VIP and PIP networks.  If they
are different it allocates a new port on the PIP network in order to
obtain an IP address for the PIP and names that port after its
associated VIP ID.  vDirect is then directed to create a load balancer
with the PIP network also used as the HA network instead of using the
vDirect container's default HA network configuration.

During VIP deletion, the LBaas driver detects if a port for the PIP
had been previously allocated by searching for and deleting port names
that map to the VIP ID.

Change-Id: Ifb93159c654f16958842f646c119479c465230f9
Closes-Bug: 1268728
ip-lib : use "ip neigh replace" instead of "ip neigh add"

Closes bug #1311002

Change-Id: Ie50bc0bff32b7f97ac317ccc2521bbea52d59ca3
Replace loopingcall in notifier with a delayed send

The loopingcall thread here was started before processes fork and so
the thread stops working after the fork call.  This is a problem that
will probably need to be worked out in the long run.

To ensure that this notifier works correctly in all processes, this
change replaces the persistent loopingcall thread with a thread
created on demand to delay and batch up notifications.  The first
notification will trigger spawning the thread to wait to send it.  Any
notifications that come in the meantime will notice that there is
already a thread waiting to send and will return without spawning.

Change-Id: I519d4e89b8cee341c0e1cfffbce3e77151e8202a
Closes-Bug: #1301035
Merge "Validate IPv6 modes in API when IP version is 4"