Implements blueprint nec-distribute-router
Two types of neutron router will be supported: l3-agent and distributed.
A type can be specified through "provider" attribute of a router.
The naming of the attribute "provider" is intentional since I plan to
support the service provider framework for router in the future and
would like to make it easy to migrate.
distributed router in NEC OpenFLow controller now does not support NAT,
so l3-agent and distributed router coexists. To achieve it, l3-agent
scheudler logic is modified in NEC plugin to exclude distributed routers
from candidates of floating IP hosting routers.
To support the above feature, the following related changes are done:
- Adds a new driver to PFC driver which supports OpenFlow based router
support in NEC OpenFlow products in PFlow v5.
- Update ofc_client to extract detail error message
from OpenFlow controller
This commit also changes the following outside of NEC plugin:
- Makes L3 agent notifiers configurable.
l3-agent router and OpenFlow distributed router can coexist.
Notication to l3-agent should be done only when routers are
hosted by l3-agent, so we need custom L3 agent notifiers
to filter non l3-agent routers.
- Split test_agent_scheduler base class (in OVS plugin) into
the base setup and testcases. By doing so we can implement
custom testcases related to agent scheduler.
Change-Id: I538201742950a61b92fb05c49a9256bc96ae9014