Neutron drivers for PowerVM network management.
Go to file
Elod Illes a00fc731b1 Adjust version constraint of hacking
Neutron constrained the version of hacking < 1.2.0, but since then the
unit tests fails with:

ERROR: Double requirement given: hacking<1.2.0,>=1.1.0 (from -ri (line 4)) (already in hacking>=1.1.0 (from -r [..]networking-powervm/test-requirements.txt (line 4)), name='hacking')

So let's simply use the same constraint as set in neutron.

Change-Id: Ic4d97db6c947264806e5ef9e35f21f764cbecf46
2020-01-07 15:45:08 +01:00
devstack Use opendev repository 2019-04-28 00:43:46 +00:00
doc Sync sphinx constraints with global-requirements 2019-08-26 11:43:11 -05:00
networking_powervm Update config options table in usage.rst 2019-03-13 04:41:44 -05:00
specs Omit the twice occured words in powervm-sriov-neutron.rst 2018-11-13 18:04:24 +08:00
.gitignore Clean up .gitignore 2018-08-24 08:25:33 -04:00
.gitreview OpenDev Migration Patch 2019-04-19 19:31:31 +00:00
.stestr.conf Cleanup tox.ini 2018-06-29 15:42:59 -04:00
.zuul.yaml Add Python 3 Train unit tests 2019-08-26 12:17:12 -05:00
CONTRIBUTING.rst Rename neutron-powervm to networking-powervm 2015-09-21 08:29:30 -05:00
HACKING.rst fix hacking docs link 2018-02-23 11:43:33 +00:00
LICENSE Initial Library Setup 2014-10-21 14:53:39 -05:00
README.rst Change pypowervm repo location 2015-11-18 14:59:31 -06:00
babel.cfg Add babel config 2015-09-03 10:17:34 -04:00
bindep.txt Add bindep.txt 2019-08-26 12:17:12 -05:00
lower-constraints.txt Add Python 3 Train unit tests 2019-08-26 12:17:12 -05:00
openstack-common.conf Rename neutron-powervm to networking-powervm 2015-09-21 08:29:30 -05:00
requirements.txt opt in for neutron-lib consumption patches 2018-10-03 12:07:20 -04:00
setup.cfg Enable support for both python3.6 and python3.7 2019-09-17 00:12:09 -04:00 Manual sync with upstream requirements 2017-04-11 01:05:56 +00:00 Rename neutron-powervm to networking-powervm 2015-09-21 08:29:30 -05:00
test-requirements.txt Adjust version constraint of hacking 2020-01-07 15:45:08 +01:00
tox.ini Enable support for both python3.6 and python3.7 2019-09-17 00:12:09 -04:00


PowerVM Neutron ML2 Agent

The IBM PowerVM hypervisor provides virtualization on POWER hardware. PowerVM operators can see benefits in their environments by making use of OpenStack. This project implements a ML2 compatible agent that provides capability for PowerVM admins to natively use OpenStack Neutron. This agent is tied to the Shared Ethernet Adapter technology which is currently the typical scenario for PowerVM network virtualization.

Problem description

This project provides a ML2 compatible agent for the PowerVM hypervisor. It is paired to the nova-powervm driver.

This PowerVM agent provides support for VLAN networks across Shared Ethernet Adapters. It provisions the VLANs on the Virtual I/O Servers (VIOS) to support the client workload, via the PowerVM REST API. The Nova component will set up the peer adapter as part of VIF plugging.

Only networks of physical type VLAN are supported.

Use Cases

  • Deploy a VLAN to the specified Virtual I/O Server (or pair of servers) as deploys occur.
  • Periodic heal of the systems (similar to Open vSwitch agent design).
  • Periodic optimization (removal of unused VLANs from the Shared Ethernet Adapters) of the system.
  • Heartbeat of the agent.

Project Priority


Data model impact


REST API impact


Security impact


Notifications impact


Other end user impact

None to end user.

Performance Impact

No performance impact. Deploy operations should not be impacted by using this agent.

Other deployer impact

The operator needs to obtain the agent from the code repository. The cloud administrator needs to install the agent on both the Neutron controller as well as on the compute node.

The operator will then need to configure the bridge_mappings, to define in the CONF file how to map the physical networks to the adapters. No further configuration is required for the operator. If only one physical network exists (the default), and a single Shared Ethernet Adapter, no bridge_mapping configuration is required. The agent will assume the default network maps to that single Shared Ethernet Adapter (or single pair SEAs set up for redundancy).

Redundant Shared Ethernet Adapters (as defined by the PowerVM Redbook) are fully supported by this agent.

Developer impact




Primary assignee:


Other contributors:

wpward svenkat efried


  • The Neutron ML2 Plugin.
  • Utilizes the PowerVM REST API specification for management. Will utilize future versions of this specification as it becomes available:
  • Builds on top of the pypowervm library. An open-source, python based library that interacts with the PowerVM REST API.


Tempest Tests

Since the tempest tests should be implementation agnostic, the existing tempest tests should be able to run against the PowerVM agent without issue.

Thorough unit tests exist within the agent that validate specific functions for this implementation.

Functional Tests

A third party functional test environment has been created. It monitors incoming Neutron change sets. Once it detects a new change set, it should execute the existing lifecycle API tests. A non-gating vote (+1 or -1) will be provided with information provided (logs) based on the result.

Work continues in this area.

API Tests

No changes (no new APIs)