Bump min required version for dnsmasq to 2.63

This patch bumps the min version requirement from 2.59 to 2.63
for dnsmasq which is needed to use multiple tags for dual stack IPv4/6.

DocImpact

Change-Id: Ib71b8a3a866f5781b57d1589741bcaae594b76db
Closes-bug: 1233339
NSX: remove unnecessary checks on network delete

Since commit b50e66f router interfaces are not deleted
automatically when the network hosting them is deleted.

The NSX plugin still has additional logic to ensure all the
corresponding backend resources have been deleted as well.
Such logic is now obsolete and can be removed. Moreover it
also wasteful as it perform queries for retrieving NSX
resource identifiers.

This patch also amends a few related log statement to make
them clearer.

Change-Id: If3d8d98096a8363b216707f2558e37c80f58e515
Closes-Bug: #1339401
Clear entries in Cisco N1KV specific tables on rollback

During rollback operations, resources are cleaned up from neutron
database but leaves a few stale entries in the n1kv specific tables.
This change addresses the proper clean up of tables. i.e. VLAN/VXLAN
allocation tables, profile binding and vm network table.

Change-Id: I7a09d34f3a9dee0a43b76c5d781ee9eb9938953a
Closes-bug: #1336596
Missing max_routes in neutron.conf

We have the define of "max_routes" in neutron/db/extraroute_db.py
but we do not have them in neutron.conf.

Change-Id: I4a9586023b7d09a64296b44f4d9285f30be1fd63
Closes-Bug: #1341378
Use method's logger in log decorator

Previously decorators shared logger. This patch makes LOG object in
closure for every decorated method in order to use correct logging
level.

Closes-Bug: #1340778
Change-Id: If907acbab34f8bf23e1277e66c3ddd839f668764
Log methods using rpc communcation

In Icehouse was used rpc library from oslo-incubator. Because the code
wasn't mature enough it was running in DEBUG mode. After migrating to
oslo.messaging we don't need to have debug level in oslo.messaging but
it's good to have communication logged.

Closes-Bug: #1340696
Change-Id: I4f68545053912f96affc1bbcd64fcd7efe8d18c0
Return a tuple of None's instead of one None

The expected return value of _commit_port_binding is something that
can be unpacked into two values. This changes the condition where a
concurrent delete was detected to return a 2-tuple of None's
instead of a bare None to prevent an iterable error.

Closes-Bug: #1342880
Change-Id: I9d3a51eab33819ffda6a65a00c3b5d1006a3577e
ML2: Update a comment after the recent bind_port change

A missing comment update in
commit b1677dcb80ce8b83aadb2180efad3527a96bd3bc.

No functional changes.

Change-Id: Icf1bd66a8c093d0b40632e22be662a3c8ba5c48b
call security_groups_member_updated in port_update

When a running VM is added to a security group, all existing VMs (ports)
in the security group should be notified/updated - otherwise they would
have incorrect rules, not knowing the new VM/port added.

The current behavior would only update the port of the added VM. This
patch forces an security_groups_member_updated() call for all the
security groups that have ports removed or added.

Change-Id: Ibdcd74f47043762386b62f3ec0fa1723060446ac
Closes-Bug: 1316618
Add rule for updating network's router:external attribute

Set admin_only rule for update_network:router:external in policy.json

Also, change the default value of router:external from attr.ATTR_NOT_SPECIFIED
to False, because each time we try to get or update a network the dict with
its attributes is extended by _extend_network_dict_l3 function which adds
router:external=False to the dict if this attribute is not specified.
Thus, if the default value is not specified, router:external is considered
to be updated in any case and the policy rule is applied.

Change-Id: I899d98c7d8c9d9863ac5d8f992b6a2d507ec4482
Closes-Bug: 1338880
This patch changes the name of directory from mech_arista to arista

This name change of directroy is needed so that additional drivers
can be moved into this directory and share the code among drivers.

In order to accomodate this name change, setup.cfg is modified to
point to the Arista ML2 driver at the new location. Additionally,
a similar new directroy is created for test files as well.

Change-Id: I614ccf8b6d152aa99e20ef1ea762c26115ab9373
closes-bug: 1346712
Merge "Bump min required version for dnsmasq to 2.63"
Merge "This patch changes the name of directory from mech_arista to arista"
Merge "NSX: remove unnecessary checks on network delete"
OFAgent: Share codes of l2-population in OVS agent

This is step 1 implementation of OFAgent l2-population.
OFAgent partially uses codes in OVS agent on implementation of l2-population.
We share these codes adding mixin class for OVS to l2-population rpc.
We use a ryu library instead of executing a ovs-vsctl command
and on OFAgent l2-population is no longer optional.
Also a function of local arp responder will be implemented on step 2.

related commit: b6133c35dd587f6b01e8ec12757347b2767713a6

Partially implements: blueprint ofagent-l2pop

Change-Id: I99a2adfd380a9fefe34c53e0dabc21d8cf5936cc
Modify L3 Agent for Distributed Routers

This patch is an enhancement to the existing L3 Agent.
This allows the L3 Agent to support distributed routers
by enhancing the router object to function across
multiple nodes.

Utilized two new types of namespaces:

- FIP to handle multiple VM fips and routers per node
- SNAT to handle centralized SNAT per router

Rules and tables are enhanced and added to support routing
across distributed routers without going to a centralized
router.

Finally, a new configuration param 'agent_mode' is introduced
and it controls what the L3 agent can do: the available values
are: 'legacy', 'dvr', 'dvr_snat' (more details inline).

The l3-scheduler uses the newly introduced agent_mode to
determine what L3 agent to select during the scheduling
process.

Partially-Implements: blueprint neutron-ovs-dvr

DocImpact

Change-Id: Icead821bb74372b15aac2e5cefe8ad7f08c037ab
Co-Authored-By: Rajeev Grover <rajeev.grover@hp.com>
ML2 mechanism driver for SR-IOV capable NIC based switching, Part 2

This set of changes introduces SRIOV NIC Agent to run with
ML2 mechanism driver for SR-IOV capable NIC based switching.
This is the second part of a 2 part commit.

The review is submitted in two parts:
- Part 1
    The Mechanism Driver to support port binding for SR-IOV virtual
	functions of SRIOV capable switching NICs.

- Part2 (this part)
    The SRIOV NIC Based L2 Agent.
	Use  configurable list of mappings physical_networks to PF
        interfaces and configurable list of mappings PF interfaces
        to list of excluded VFs to get list of Virtual Functions that agent should manage.
	Current implementation supports admin state updates.

Co-authored-by: Samer Deeb <samerd@mellanox.com>
Partially implements: blueprint ml2-sriov-nic-switch

Change-Id: I533ccee067935326d5837f90ba321a962e8dc2a6
Merge "Return a tuple of None's instead of one None"
Merge "Missing max_routes in neutron.conf"
Merge "Use method's logger in log decorator"