185 Commits

Author SHA1 Message Date
Hareesh Puthalath
f57fa987be Configuration agent for Cisco devices
A generic config agent for configuring L3+ services in Cisco devices.

This patch targets specifically configuration of L3 fuctionality,
namely routing, NAT and floatingIPs in Cisco CSR1kv virtual appliance.

Implements blueprint: cisco-config-agent
https://blueprints.launchpad.net/neutron/+spec/cisco-config-agent

Change-Id: Ic887a93480eca0b56049c67e32c98658e3a4427f
2014-07-25 19:34:27 +02:00
Irena Berezovsky
9feff9047b 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
2014-07-23 10:06:12 +03:00
Jenkins
15d3624454 Merge "This patch changes the name of directory from mech_arista to arista" 2014-07-22 21:13:52 +00:00
Sukhdev
a53ddd619c 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
2014-07-22 09:52:08 -07:00
Irena Berezovsky
8521f410e6 ML2 mechanism driver for SR-IOV capable NIC based switching, Part 1
This set of changes introduces the ML2 mechanism driver for SR-IOV capable NIC based switching.
Please see the blueprint for more information.
The review is submitted in two parts:
- Part 1 (this part)
    The Mechanism Driver to support port binding for SR-IOV virtual functions of
    SRIOV capable switching NICs, such as Mellanox ConnectX Family.

    Use configurable list of supported NIC vendor and product PCI ids to filter
    devices to bind the SR-IOV port.
    Use configurable agent_required option to require SRIOV L2 Agent
    for bort binding.

- Part2
    The SRIOV NIC Based L2 Agent.

Partially implements: blueprint ml2-sriov-nic-switch

Change-Id: If3d28df2a8ffe72ae512ddae076f42fca936cff7
2014-07-22 18:42:39 +03:00
YAMAMOTO Takashi
3d3c9add0c ofagent: move main module from ryu repository
the recent oslo.messaging transition broke ofagent.
this commit fixes the regression.

historically the main module of ofagent has been maintained
in ryu's repository.  this commit moves it into neutron's
repository and add common_config.init() call which is necesary
for the new rpc code.

Closes-Bug: #1332478
Change-Id: Icf215b20cd84ef44b51439e55b1815d72041ba3f
2014-06-23 20:22:22 +09:00
Ihar Hrachyshka
3aca3f7745 Port to oslo.messaging
Now that all preparations are done, actually port the code to use
oslo.messaging. This patch does as little as possible. Follow up patches
that refactor and cleanup the code and configuration files, will be
merged later. The reason for this is to make the patch as slim as
possible, to make review process more smooth and concentrated.

Details:
* neutron/common/rpc.py:
  - added init() and cleanup() to set global RPC layer state.
  - added utility functions: get_server(), get_client(), get_notifier()
    that wrap up oslo.messaging API a bit, enforcing eventlet executor
    and setting serializer, among other things.
  - removed PluginRpcDispatcher, instead introduced PluginRpcSerializer
    to use as a default serializer for API callbacks.

* neutron/common/rpc_compat.py:
  - emulated incubator RPC layer behaviour thru previously introduced
    stub classes (RpcCallback, RpcProxy, ...) using new oslo.messaging
    API.
  - switched to using new oslo.messaging exception types.

* neutron/service.py:
  - expect multiple RPC listeners that are of MessageHandlingServer
    type, not GreenThread.

* neutron/common/config.py:
  - initialize RPC layer in init()

* setup.cfg:
  - added entry points for old notifier drivers to retain backward
    compatibility.

* neutron/tests/...:
  - introduced fake_notifier to replace impl_fake.
  - faked out consume_in_thread() to avoid starting RPC listeners when
    running unit tests.
  - used 'fake' transport driver.
  - made sure neutron.test.* exceptions are caught.
  - initialize and clean up RPC layer for each test case.

* Ported all affected code from using neutron.openstack.common.notifier
  API to oslo.messaging.Notifier.

* rpc.set_defaults() was renamed to rpc.set_transport_defaults()

* other changes not worth mentioning here.

blueprint oslo-messaging

DocImpact

Change-Id: I5a91c34df6e300f2dc46217b1b16352fcc3039fc
2014-06-19 12:58:01 +02:00
Ihar Hrachyshka
cbe04cb7f9 Added missing core_plugins symbolic names
Some plugins miss short symbolic name in setup.cfg, specifically Nuage
and Metaplugin.

Change-Id: I0198ae98654bbdddf8f2ba8dd3b80d0d447d6341
Closes-Bug: 1324487
2014-06-17 11:44:17 +02:00
Jenkins
60ed3d1c4a Merge "Freescale SDN Mechanism Driver for ML2 Plugin" 2014-06-09 07:16:59 +00:00
trinaths
170d14add2 Freescale SDN Mechanism Driver for ML2 Plugin
- Mechanism driver specific unit testing.

Implements: blueprint fsl-sdn-os-mech-driver

Change-Id: If37a39119c620c6d204346a7fe66c70aaad7261e
2014-06-07 08:06:29 +05:30
Jenkins
e100f3a9a1 Merge "Remove run-time version checking for openvswitch features" 2014-06-06 17:01:00 +00:00
Terry Wilson
68f103ee43 Remove run-time version checking for openvswitch features
The current method of checking openvswitch and kernel versions for
specific feature support is brittle, distro-specific and unsupportable.

This patch removes the runtime version checks and implements a test
script which allows testing specific neutron features or can test
that all features required by a specific configuration are available.

For example, to test VXLAN support in openvswitch, either:

  neutron-sanity-check --ovs_vxlan

or pass in the deployed configuration files with AGENT/tunnel_types
containing 'vxlan', like:

  neutron-sanity-check --config-file /etc/neutron/plugins/ml2.conf.ini

Deployment tools can then test that the required features exist without
relying on version numbers and without incurring a penalty every time
the agent is started.

Implements: blueprint remove-openvswitch-version-check
DocImpact
Change-Id: I5e822d97b9bece9242ba5ac8901aa0ca4f090cfe
2014-06-04 09:25:53 -05:00
Ihar Hrachyshka
2d5b5e2a53 Added missing plugin .ini files to setup.cfg
Some plugin .ini configuration files were missing and hence not
installed via 'setup.py install'.

Change-Id: I31f096e7fbf9f7a182ba8535ca8cadc4fecc6632
Partial-Bug: 1324487
2014-05-29 15:34:23 +02:00
Arvind Somya
78f5121ba4 Cisco APIC ML2 mechanism driver, part 2
This set of changes introduces a mechanism driver for the
    Cisco APIC. This is the second and final part of a 2 part commit.
    Please see the blueprint for more information.

    The review is submitted in two parts:
    - Part 1 (Posted earlier, required for Part 2)
        o APIC REST Client
        o APIC data model and migration script
        o APIC configurations
    - Part 2 (this commit)
        o APIC mechanism driver
        o APIC manager

    Partially implements: blueprint ml2-cisco-apic-mechanism-driver

Change-Id: I5ed3ac133146635083e2d0093057b43b64f347fe
2014-05-22 13:16:28 -07:00
armando-migliaccio
8343181645 NSX: get rid of the last Nicira/NVP bits
These were kept for bw compatibility in Icehouse, but
these are removed in Juno.

The king is dead, long live the king!

DocImpact
Blueprint: nicira-plugin-renaming

Change-Id: I49d19fec90ba191ed5b895fac8a884070f52119e
2014-05-22 13:05:23 +00:00
Jenkins
edb712ab4e Merge "Remove last parts of Quantum compatibility shim" 2014-04-03 01:04:53 +00:00
Dan Wendlandt
973fc25f7b Remove last parts of Quantum compatibility shim
Goodbye Quantum!

Change-Id: Idbd0384a892beaff3a937444f04cfc433cb805eb
Closes-Bug:1299046
2014-03-31 23:31:23 -07:00
Thierry Carrez
8a623031f1 Open Juno development
Bump preversion to 2014.2 to formally open Juno development.
The Icehouse release branch (milestone-proposed) will be cut
from the last commit before this one.

Change-Id: I0af1ee46e65149eb19731491242ddc2fdccd7a2e
2014-03-27 16:42:57 +01:00
Hemanth Ravi
55c8009a2b One Convergence Neutron Plugin l3 ext support
Adding support for l3 extensions and security-groups.

Change-Id: I7007dba1cc8f73496a2a40099581d07ae697520a
Implements: blueprint oc-nvsd-neutron-plugin
2014-03-06 21:50:55 +00:00
Jenkins
52fb98b7b6 Merge "One Convergence Neutron Plugin Implementation" 2014-03-06 21:03:26 +00:00
Jenkins
8c1886aee9 Merge "Add OpenDaylight ML2 MechanismDriver" 2014-03-06 17:43:48 +00:00
Hemanth Ravi
b2483ba0ef One Convergence Neutron Plugin Implementation
One Convergence Neutron Plugin implements Neutron API to provide a network
virtualization solution. The plugin works with One Convergence NVSD controller
to provide the functionality. This checkin implements the Neutron core APIs
and the plugin will be extended to support the L3 and service plugin extension
APIs.

Change-Id: Ic8a0dc0f5950d41b9b253c0d61b6812dbfd161c7
Implements: blueprint oc-nvsd-neutron-plugin
2014-03-06 08:10:07 -08:00
Kevin Benton
e915ad3a15 BigSwitch: Add SSL Certificate Validation
This patch adds the option to use SSL certificate
validation on the backend controller using SSH-style
sticky authentication, individual trusted
certificates, and/or certificate authorities.
Also adds caching of connections to deal with
increased overhead of TLS/SSL handshake.

Default is now sticky-style enforcement.

Partial-Bug: 1188189
Implements: blueprint bsn-certificate-enforcement
Change-Id: If0bab196495c4944a53e0e394c956cca36269883
2014-03-05 15:08:39 -05:00
Kyle Mestery
71cfa76cb9 Add OpenDaylight ML2 MechanismDriver
This commit adds support for OpenDaylight as an ML2 MechanismDriver. The
ODL MechanismDriver does not need an agent since ODL itself handles
programming bridges, tunnels, and ports on the host.

Implements bp ml2-opendaylight-mechanism-driver

Change-Id: Ic1612cd3e8efd39e74a7ed8cff28e91b1f388971
2014-03-05 14:04:39 +00:00
Shiv Haris
c933e80a06 Implementaion of Mechanism driver for
Brocade VDX cluster of switches

Change-Id: Ic1649f7cee73a41f286e12d8ba6ca30be6261cfe
Implements: blueprint brocade-ml2-mechanism-driver
2014-03-04 15:31:36 -08:00
Irena Berezovsky
f36c985e29 Implement Mellanox ML2 MechanismDriver
This commit adds support for currently provided Mellanox Plugin
embedded switch functionality as part of the VPI (Ethernet/InfiniBand)
HCA as an ML2 MechanismDriver.
MechanismDriver adds support for VNIC_DIRECT and VNIC_MACVTAP vnic types.
MechanismDriver provides configurable default vif_type for neutron port created
with default VNIC_NORMAL vnic type till nova api support for vnic_type is available.

Implements blueprint mlnx-ml2-support

Change-Id: I16ad318f095b7af879e1b99dcc7f5f9e92facd2b
2014-03-03 22:43:10 +02:00
Jenkins
4157f02f39 Merge "Implement OpenFlow Agent mechanism driver" 2014-03-03 08:18:18 +00:00
fumihiko kakuma
b2edc5f35e Implement OpenFlow Agent mechanism driver
This adds ML2 mechanism driver controlling OpenFlow switches
and an agent using Ryu as OpenFlow Python library.
- An agent acts as an OpenFlow controller on each compute nodes.
- OpenFlow 1.3 (vendor agnostic unlike OVS extensions).

Implements: blueprint ryu-ml2-driver
Change-Id: I6a8168d24f911996639179d91c4da49151751057
2014-03-02 13:40:10 +09:00
armando-migliaccio
85cd73ec68 Finish off rebranding of the Nicira NVP plugin
Old names are kept for backward compatibility.

Last references to the old NVP plugins are going
to be dropped in Juno.

Completes blueprint nicira-plugin-renaming

Change-Id: Ia1aa4f658891e7ce9469748432c338353195edfd
2014-03-01 18:14:52 -08:00
Jenkins
cdeace03d6 Merge "BigSwitch: Add agent to support neutron sec groups" 2014-03-01 22:19:46 +00:00
Kevin Benton
3484f342cc BigSwitch: Add agent to support neutron sec groups
Adds a BigSwitch Agent responsible for supporting
neutron security groups on the compute node. Adds
the mixin classes to the plugin to support the
security group calls.

Implements: blueprint bsn-neutron-sec-groups
Change-Id: I3a09888a3ba7d565c2dce8293821919c1e5d0d15
2014-03-01 10:32:12 -08:00
Mohammad Banikazemi
f2c5f5856b Adds the new IBM SDN-VE plugin
It adds a new plugin for SDN-VE, the IBM SDN
controller. The plugin supports the core API
and the port binding and L3 extensions.

Implements: blueprint ibm-sdn-ve-plugin
DocImpact

Change-Id: I92619a95bca2ae0c37e7fdd39da30119b43d1ad6
2014-03-01 10:59:54 -05:00
armando-migliaccio
51fc1201fc Rename Neutron core/service plugins for VMware NSX
Short aliases are introduced for the NSX plugin(s). This patch
also switches to using the new plugin names/naming scheme in
the unit tests.

Partial-implements blueprint: nicira-plugin-renaming

Change-Id: If1f1431b098bf77b9c85e0afb3d7848083d9d451
2014-02-23 19:12:35 -08:00
Jenkins
2fc7a6781d Merge "Copy cache package from oslo-incubator" 2014-02-21 12:38:22 +00:00
Jenkins
6a346f37d4 Merge "LBaaS: move agent based driver files into a separate dir" 2014-02-21 10:55:51 +00:00
Jakub Libosvar
6b0d4b3141 Copy cache package from oslo-incubator
Related-Bug: #1276440
Change-Id: I7aaf8ae2eb909816d85092baa5c111f00e60d2c7
2014-02-20 15:00:34 +01:00
Jenkins
d1ca5b2388 Merge "Add migration support from agent to NSX dhcp/metadata services" 2014-02-12 10:22:32 +00:00
Jenkins
27012a178b Merge "Prepare for multiple cisco ML2 mech drivers" 2014-02-11 06:57:01 +00:00
Jenkins
afd0165421 Merge "Enables BigSwitch/Restproxy ML2 VLAN driver" 2014-02-11 06:51:31 +00:00
Jenkins
358e44974d Merge "Use oslo.rootwrap library instead of local copy" 2014-02-11 01:53:53 +00:00
armando-migliaccio
4ad3cae6ff Add migration support from agent to NSX dhcp/metadata services
This is feature patch (3 of 3) that introduces support for
transitioning existing NSX-based deployments from the agent
based model of providing dhcp and metadata proxy services
to the new agentless based mode. In 'combined' mode, existing
networks will still be served by the existing infrastructure,
whereas new networks will be served by the new infrastructure.

Networks may be migrated to the model using a new CLI tool
provided, called 'neutron-nsx-manage'. Currently the tool
provides two admin-only commands:

  neutron-nsx-manage net-report <net-id-or-name>

This will check that the network can be migrated and returns
the resources currently in use. And:

  neutron-nsx-manage net-migrate <net-id-or-name>

This will move the network over the new model and deallocate
resources from the agent. Once a network has been migrated
there is no turning back.

Completes-blueprint nsx-integrated-services

Change-Id: I37c9aa0e76124e1023899106406de7be6714c24d
2014-02-10 17:27:14 -08:00
Oleg Bondarev
2fa3558c40 LBaaS: move agent based driver files into a separate dir
Replace agent based driver files from haproxy driver dir
Same for unit tests files

Finalizes blueprint lbaas-common-agent-driver

Change-Id: Ibff85a9c2e1f1c59d72616836d56a697dce72c59
2014-02-10 12:24:27 +04:00
Henry Gessau
0e3766ced4 Prepare for multiple cisco ML2 mech drivers
Code tree reorganization in preparation for ML2 mechanism drivers for
other cisco products. The cisco nexus ML2 mechanism driver and its
test cases need to move down into their own subdirectory.

Closes-bug: #1277222

Change-Id: I2ba366332276069545b3deb0bbd39016a893327b
2014-02-07 11:37:01 -05:00
Sascha Peilicke
0ae1669567 Support building wheels (PEP-427)
Universal is used to identify pure-Python module(by bdist_wheel). For
these, it is sufficient to build a wheel with _any_ Python ABI version
and publish that to PyPI (by whatever means).

Change-Id: Ibca65044d61d4b9b248013e4fe316f3c1a05f764
2014-02-07 12:42:32 +01:00
Thierry Carrez
7d4a40ea8e Use oslo.rootwrap library instead of local copy
Remove rootwrap code copied from oslo-incubator, make the
{neutron,quantum}-rootwrap console_script entrypoints point to
oslo.rootwrap code instead.

Adjust bin/{neutron,quantum}-rootwrap[-xen-dom0] so that it calls
into oslo.rootwrap.cmd.

Change-Id: I22df4060d6bca6affd7761fec49d2767ca8f59cf
Implements: blueprint neutron-oslo-rootwrap
2014-02-07 10:58:27 +01:00
Kevin Benton
3b02d00591 Enables BigSwitch/Restproxy ML2 VLAN driver
Refactors Bigswitch/Restproxy plugin by separating into
reusable libraries that can be used by the plugin as well
as the ml2 driver to proxy calls to the backend controller.

Enables basic unit tests for the ML2 driver.

Removes deprecated separate unplug/plug operations on ports.

Implements: blueprint bigswitch-ml2-driver
Change-Id: I4e22ba7e20ec4f405b9fd34a1bf08a48544f317d
2014-02-05 21:17:53 -08:00
Kevin Benton
ace41f3222 Base ML2 bulk support on the loaded drivers
Changes the ML2 plugin bulk support flag to
be based on the bulk support of the underlying
drivers.

Closes-Bug: #1272490
Change-Id: I28281c9ecc1696b929c7e0125d02a37946948744
2014-02-04 22:35:01 -08:00
Zang MingJie
9f347e1d29 Configure plugins by name
To configure core plugin or service plugins, instead of using class names,
simpler names can also be used, ex:

service_plugins = router, firewall, lbaas

For compatibility with previous versions, the class name of a plugin can be
specified instead of its entrypoint name, ex:

service_plugins = router, neutron.services.firewall.fwaas_plugin.FirewallPlugin, lbaas

DocImpact

Implements: blueprint config-plugin-by-name
Change-Id: Ia4aaa1d305b160a4d6dab9e227c744727a4c78c2
2014-01-15 15:43:59 +08:00
armando-migliaccio
5053c7a8bc Rename nicira configuration elements to match new naming structure
- Every config item prefixed with nvp is prefixed with nsx
- deprecation qualifiers are added to preserve bw compatibility
- nicira/nvp.ini is renamed to vmware/nsx.ini
- symlink nicira/nvp.ini is created to point to vmware/nsx.ini
- UT added to verify that nvp.ini and old config items can still
  parsed correctly; bw-compat will be dropped in Juno

Partial-implements blueprint nicira-plugin-renaming

Change-Id: I676b868e61064cc5ff17e2246e83ba5c5e4a3449
2014-01-03 00:39:00 -08:00
armando-migliaccio
b588ce4487 Rename check_nvp_config utility tool
Add new entry point whilst preserving the old ones
for backward compatibility.

Partial-implements blueprint nicira-plugin-renaming

Change-Id: I3c5b5dcd316df3867f434bbc35483a2636b715d8
2013-12-31 09:04:16 -08:00