Make sure that gateway is in CIDR range by default

Git commit c3706fa2 introduced the force_gateway_on_subnet
option that verified that the defined gateway is in the CIDR
range of a newly created or updated subnet. However, the default
value was False for backwards compatability reasons. The default
will change to True and the option will be marked as deprecated.

For IPv6, the gateway must be in the CIDR only if the gateway
is not a link local address.

DocImpact
Change-Id: I04fd1caec6da5dceee3f736b3f91f2468150ba2a
Closes-Bug: #1304181
Exit Firewall Agent if config is invalid

When fwaas config file is not provided to the agent,
but the service is enabled in neutron.conf file the
agent should exit with an error message and should
not proceed further. This patch adds the necessary fix.

Change-Id: Iaced777e3a34e9405050252b17a203689e1c1fc0
Closes-Bug: #1310857
NSX: remove duplicate call to set_auth_cookie()

Change-Id: Ie883f670aa18f1b8a2561e02b388f903f9cbd03b
Closes-bug: 1347078
Move Cisco VPN RESTapi URI strings to constants

Cisco VPN RESTapi URI strings are currently spread out
throughout the cisco vpn device driver code. This create
challenge towards consistently using REST resource identifiers
as this code gets enhanced in the future. This change moves
those URIs as string contents towards the top of the device
driver file.

This addresses the review comment received during the
cisco-vpnaas BP implementation.

Change-Id: I17e02cca95b1d14d9218f1a2745780bd14c9f89d
Closes-Bug: #1313801
Do not assume order of quotas dictionary elements

This fixes the quotas db unit test that breaks with a randomized PYTHONHASHSEED
(see the bug report).

The test assumed that the quotas dictionary from plugin.get_all_quotas() had
elements in a particular order. Found with PYTHONHASHSEED=1235130571.

The fix refactors the test case to handle an unsorted quotas dictionary. Also
choose some different quota limits to make it clearer what is being verified.

Partial-bug: #1348818

Note: There are several other unrelated unit tests that also break with a
randomized PYTHONHASHSEED, but they are not addressed here. They will be
addressed in separate patches.

Change-Id: I3892b51082629e6ebce175f64f501717741baa37
Updated from global requirements

Change-Id: I9865d4d0cdd475638ca49b0588ba880a52ee8897
OFAgent: Implement arp responder

This is step 2 implementation of OFAgent l2-population.
This handles an arp packet responding locally to an arp request in such a way
that sends an arp request as a packet-in message to controller and
builds and sends an arp reply packet.
Currently this only supports tunnel.

Implements: blueprint ofagent-l2pop

Change-Id: Ida714f30c0f02c54dda3402c0dbf6047bc182b22
Add a tox test environment for random hashseed testing

The newer versions of tox by default enable a random PYTHONHASHSEED. However,
this breaks many Neutron unit tests, so PYTHONHASHSEED=0 is currently hard-
coded for Neutron's unit test environments.

We want to clean up the unit test cases that break with a random hashseed
(there are many). To be able to find the broken tests and then verify them,
we need to have an easy way of enabling random hashseed testing.

Partial-bug: #1348818

Change-Id: I51f05cdfa9f8728baabaf315b71e5defb26426b1
ofagent: Desupport ancillary bridges

Remove code to report port status for ancillary bridges because
it relies on ovsdb.  While we could adapt the code to use OFP in
a similar way we did for the integration bridge, it doesn't worth
the effort because the almost same functionality can be achieved
using provider network.  Update README to suggest the use of
provider network.

Partially-Implements: blueprint ofagent-port-monitor
Change-Id: Ia1329e36755b3e9a479a115dbd08aa3f4d6b55df
ofagent: Stop monitoring ovsdb for port changes

Perform dumb polling instead.
Now ofagent port monitoring is mostly ovsdb-free.
(except _find_lost_vlan_port stuff, which is planned to be retired
by blueprint ofagent-merge-bridges)

Partially-Implements: blueprint ofagent-port-monitor
Change-Id: Ib4701f7c8ea0ee03229d207c0fbbf6f42a55aecb
Big Switch: Only update hash header on success

This patch moves the hash update call into the success block
of the server manager so the database isn't updated with
a hash header from an error response. Additionally, it prevents
the hash from being updated to an empty value if the hash header
is not present in the response.

Closes-Bug: #1348766
Change-Id: I512d01f9bb91b208dd58883d2464951ecc6748e1
Merge "Do not assume order of quotas dictionary elements"
Merge "Updated from global requirements"
Do not assume order of network_uuid's

This fixes the neutron.tests.unit.test_linux_dhcp.TestDnsmasq
.test_existing_dhcp_networks unit test that breaks with a
randomized PYTHONHASHSEED (see the bug report).

The test assumed that the network_uuid's list was sorted, so sort
the result before comparing.

Note: There are several other unrelated unit tests that also break with a
randomized PYTHONHASHSEED, but they are not addressed here. They will be
addressed in separate patches.

Partial-bug: #1348818
Change-Id: Ia6f742e1fae0687164b841beebb4efcf31ff2625
Merge "Add a tox test environment for random hashseed testing"
Merge "ofagent: Desupport ancillary bridges"
Merge "Make sure that gateway is in CIDR range by default"
Merge "Do not assume order of network_uuid's"
Merge "NSX: remove duplicate call to set_auth_cookie()"
Remove redundant topic from rpc calls

RpcProxy sets by default topic=self.topic, there's no need to specify
it explicitly in derived class, unless it is overridden

Change-Id: I19b9a67072a7f3c42e3b0e4ba412241a056a79a3
Closes-bug: 1348180