L3 agent fetches the external network id once

Rather than fetching the id of the external network each time that
_process_routers is called, get it once and remember it.  If the agent
is ever requested to connect to a different ext-net then it will fetch
the current ext-net to double check for the unlikely event that the
ext-net has changed.  If it has then it will remember the new ext-net.

This is only applicable in the case where there is only one ext-net
that has not been configured explicitly in the config file.  That was
the only case that would cause an RPC message in the first place.

Change-Id: I40bbbf6233131ea5d40122ef9495fd3cb7dc823a
Closes-Bug: #1269567
NSX: make sync backend run more often

This patch bumps the state_sync_interval from 120 seconds to 10 seconds
so that resource's operation status are synced to the db quicker. This cuts
the amount of time that tempest takes to run by half.

Closes-bug: 1285338
Co-Authored-By: Salvatore Orlando <salv.orlando@gmail.com>
Change-Id: I494a6f95c2321befc3c0bfedc719e18a1826d9d5
NEC plugin: PFC packet fitler support

It also enhances the following points of packet filter code:
- Allow to clear filter fields to wildcard by specifying None
  in PUT method
- Return None for wildcard fields in an API response
- Determine eth_type based on protocol field on DB layer
- Support OFC driver-specific API validation and update support
- Refactor packet filter code and better validations

Implements blueprint nec-packet-filter-pfc
Change-Id: I2b208c66a9f119ef6d2ef78079d9a7e5965202e7
Adds multiple RPC worker processes to neutron server

blueprint multiple-rpc-workers

Co-Authored-By: Terry Wilson<twilson@redhat.com>
Change-Id: I51f2a52add6c11af905e6f1e6e45d31731ebbb5d
Adds Hyper-V Security Groups implementation

Implements the security groups API in the Hyper-V agent.

To enable security groups on the Hyper-V agent, its config file
must contain the following option:

[SECURITYGROUP]
firewall_driver=neutron.plugins.hyperv.agent.security_groups_driver.HyperVSecurityGroupsDriver

Change-Id: I7556001557cd013c10b7f883dbf371afa8d09626
Implements: blueprint hyperv-security-groups
Minor refactoring for Hyper-V utils and tests

A separate commit in the blueprint addressed by this patch
introduces the "_filter_acls" and "_create_acl" methods
which can be used in "enable_port_metrics_collection"
as well to reduce code duplication.

This commit eliminates also some code duplication
in test_hyperv_utilsv2.py.

Implements: blueprint hyperv-security-groups

Change-Id: I48fb5389b6049641ca2649990e81e94e4c45ef7f
Implementaion of Mechanism driver for
Brocade VDX cluster of switches

Change-Id: Ic1649f7cee73a41f286e12d8ba6ca30be6261cfe
Implements: blueprint brocade-ml2-mechanism-driver
Fix race condition in update_floatingip_statuses

If a floatingip is deleted before update_floatingip_statuses() is processed
FloatingIPNotFound is raised.

Change-Id: Idf03fda75ccd147673169c24e79921ca6d8fe754
Closes-bug: #1288036
Do fip_status migration only for l3-capable plugins

The migration was initially performed for all plugins, causing
failures for plugins for which the initial L3 migration was
not performed.

Change-Id: I4a48a13202a4125f032a3e80aa567f7979d2c335
Closes-Bug: 1287630
Merge "Adds Hyper-V Security Groups implementation"
Merge "Minor refactoring for Hyper-V utils and tests"
Merge "NEC plugin: PFC packet fitler support"
Merge "Adds multiple RPC worker processes to neutron server"
Merge "NSX: make sync backend run more often"
Merge "L3 agent fetches the external network id once"
Merge "Fix race condition in update_floatingip_statuses"
Merge "Implementaion of Mechanism driver for Brocade VDX cluster of switches"
Merge "Do fip_status migration only for l3-capable plugins"