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
Implements blueprint ipsec-vpn-reference
This patch implements reference driver implementation for VPNaaS.
The driver uses openswan to manage vpn connections.
Future work: Support ikepolicy and ipsec update
Support service type framework
Intelligent updating of resources
This commit adds jinja2 for requirements.txt for
generating cofig file.
Change-Id: I8c5ed800a71ca014dc7bdbb6a57c4f8d18fa82e0
Blueprint nicira-plugin-get-improvements
With this patch GET operations on the Nicira plugin will not
be forwarded anymore to the NVP backend.
Resource operational status will be periodically retrieved from
the NVP backend using a DynamicLoopingCall.
The process has been designed with the aim of avoiding:
1) frequent queries to NVP for retrieving resource status
2) execution of large queries to NVP for retrieving the status
of a consistent number of resources.
The process can be tuned using a set of configuration variables.
GET operations will now return a status which might differ
from the actual status of the resource. For retrieving status
in a punctual way, the field 'status' should be explicitly
specified in the GET request (only 'show' support has been
implemented in this patch)
This patchs also makes some changes to the fake nvp api client in
order to ensure each instance has a private set of dictionaries for
fake nvp entities.
Change-Id: Ia745b80d2826de32ba8d6883c0d6e0893047e123
Since the check relies on the vpnservice subnet to determine whether
this is IPv4 ro IPv6, we must check in the plugin. Test is done at
create/update time and ensures that the MTU is equal to or greater
than the minimum allowed values, which are set to 68 for IPv4
minimum and 1280 for IPv6, respectively.
Refactored code to allow reuse of create and update test functions,
by allowing tests to override some settings, and to provide a dict
of changed items (for update).
bug 1219489
Change-Id: I3e62ef786d3a02c761903a15d546ee8758c0bf7f
The ml2 plugin uses mechanism drivers to determine which network
segment and what VIF driver to use for a port. Mechanism drivers
supporting the openvswitch, linuxbridge, and hyperv agents are
added. The binding:host attribute is set on ports belonging to the
dhcp and l3 agents so that they can be bound.
To use with devstack until it is updated, set
"Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch,linuxbridge" in localrc.
The hyperv L2 agent does not currently implement the agents_db RPC,
and will therefore not work with its ml2 mechanism driver. This issue
will be tracked as a bug to be fixed in a separate merge.
implements blueprint: ml2-portbinding
Change-Id: Icb9c70d8b0d7fcb34b57adc760bb713b740e5dad
This initial patch is aimed at decoupling core plugin services from
DHCP and metadata services. The abstraction being introduced is
needed so that the code can support both models where dhcp and
metadata services are provided by external RPC agents or solely by
the server-side plugin.
Supports blueprint nvp-dhcp-metadata-services
Change-Id: I396ee7bbcbd866e4e9d4a79887e844b4f5ec3c9e
This patch implements Arista's modular L2 mechanism driver to
automate the management of virtual networks along with physical networks
using Arista hardware devices (Spine and Leaf switches)
This driver uses ML2 Mechanism Driver-API to interface with Neutron ML2 Plugin.
implements: blueprint arista-ml2-mechanism-driver
Change-Id: I1c4ca36cf3d7af013b7b3353e7b7d89fe39f91bf
Fixes bug 1220296
The ML2 plugin's type and mechanism managers currently maintain
dictionaries/lists of type drivers, mechanism drivers, and ordered mechanism
drivers in (static) class variables. Once a type/mechanism/ordered-mechanism
driver of any given type is added to this list, then no new drivers of that
type are allowed to be registered, and therefore no new configuration for
that driver type is accepted.
This static nature of the driver dictionaries/lists is causing ML2 mechanism
driver unit test cases to fail. For example, if a non-vendor-specific ML2
plugin test case configures a VLAN type driver with no VLAN range, and then
a vendor specific test case attempts to configure a VLAN type driver with
some test VLAN range, then the new VLAN configuration is ignored because of
the previously (staticly) registered VLAN driver.
The proposed fix is to convert these driver dictionaries/lists to instance
variables, and clear them upon each instantiation of an ML2 type manager
or ML2 mechanism manager.
Change-Id: I3b5209640de229899561e2a3ec7c6dafe9a05e64
The patch makes the following changes:
* adds new attribute of the pool: provider, which is provider name
as it is written in configuration
* adds support for multiple plugin drivers for loadbalancer
* cleans up healthmonitor-related plugin driver API
Drivers should work with healthmonitor associations only
* adds ability to update provider attribute for the pool used
to reassociate pools with new providers in case their providers
were removed from configuration
implements blueprint lbaas-integration-with-service-types
DocImpact
Change-Id: I4295c9bcceb38e60f813d5596af48bd8194c1c9b
Define a new ML2 Mechanism Driver that replicates Neutron network/port
configuration changes to NCS: http://www.tail-f.com/network-control-system/
Configuration is sent using a HTTP/JSON interface.
Implements blueprint tailf-ncs
Change-Id: I1f73fa3f2e4eec8e5a0f2865aec2d934e25c76d1
Viewing log output while tests are still running can be useful for
debugging, but log output was previously always captured. This
change ensures that log capture is off by default, but can still
be enabled by setting OS_LOG_CAPTURE=1 in the shell environment.
testr invocation is unchanged and will continue to capture logs by
default.
Change-Id: I9d0fb648541280cacfebb47f67f608378ae66ef3
Sync the following fix from oslo-incubator:
76972e2 Support a new qpid topology
This includes one other commit, so that the above fix could be brought
over cleanly:
5ff534d Add config for amqp durable/auto_delete queues
Closes-bug: #1178375
Change-Id: I99d6a1771bc3223f86db0132525bf22c271fe862
Added members health stats reporting to the haproxy driver.
During pool stats update db plugin checks for members stats
and updates members statuses if any
Fixes bug 1160125
Change-Id: I77bf13615607fcf91bf877c228811ea8008b2457
Partial-Bug 1219991
This change modifies the hook processing for dict_extend routines
to call the method on the instance if a hook is registered as a string.
Otherwise, the callable hook is directly invoked as an unbound method.
This patch fixes hook registration for all extensions except port_binding.
This is because some plugins are currently working around this limitation
by invoking both the global hook and another dict_extend function,
which might either be registered as another hook, or invoked explicitly
before returning the response.
Fixing this would go beyong the scope of this patch.
Change-Id: Ibe78433e6554aa7fdf5156fc75b8339254876e78
blueprint nec-port-binding
* Add host-id support in port-binding extension.
* Expose portinfo thourgh binding:profile attr in a port.
portinfo is a mapping between neutron port id and OpenFlow switch
physical information (datapath_id and port_no)
It changes the following in portinfo db model
* Add cascade on delete to delete an associated portinfo
when deleting the port.
* Use joined query for portinfo model to retrieve an associated
portinfo when querying a port.
Change-Id: Id88d93dc0770a1290714436324b1b53c0b023eeb
With the introduction of extra_dhcp_opt extension, DHCP agent
stopped serving mac adresses when used in conjunction with a
plugin that doesn't support this extension. This fixes the agent
by not assuming that port dict contains extra_dhcp_opt key.
Closes Bug: #1219893
Change-Id: I5bb52f3092f04c5e332b43cb3a04de05edc29cf5
dpd_timeout == dpd_interval is a invalid case,
so in this commit, we modify validation and added test.
Fixes bug 1219440
Change-Id: I14fb9aa7df890f9c5a27f18f20d7dc1a316b2d79
This is the agent side of :
blueprint bandwidth-router-measurement
blueprint bandwidth-router-label
This patch initiates agent side by adding a new
l3 metering agent and a Noop Driver.
DocImpact
Change-Id: Ib34721209c282b2669ff5488a33293d9f86467ef
Clearing the chain in this code eliminates the rule to jump to the
floating-snat chain. This is the simplest way to get it working
again.
Change-Id: Ic1818e10bd64170b6f0a2f52af8dc0814d7e04e0
Fixes: Bug #1218040
Corrects the data type expected for the HTTP code that comes
back from the back-end controller in a debug log call.
Closes-Bug: #1220521
Change-Id: Ic71b24c724222ade5e695addf291c6488d665da9
Blueprint: hyper-v-metrics
Hyper-V Server 2012 supports a new set of metrics API that can be used to
provide switch port metrics data to external applications, e.g. Ceilometer.
Metrics collection is disabled by default and can be enabled with a config
option.
Metrics are configured via ACLs applied by the Hyper-V plugin agent.
Change-Id: Ife2a53db84936bae7c73b8c027022bbc5e89d48a