Improve IPv6 API testing parity in tempest

https://blueprints.launchpad.net/tempest/+spec/ipv6-api-testing-parity

Current tempest API tests do not validate IPv6 to the same extent as IPv4.

Problem description

IPv6 is evolving in Neutron and the community is working hard to add the necessary support. However, the current API tests in tempest do not validate IPv6 to the same extent as IPv4.

Also, Neutron now supports two extended attributes for IPv6 subnets (ipv6-ra-mode and ipv6-address-mode) in the Juno timeframe.

This BP would add the necessary IPv6 tests in tempest.

Proposed change

Neutron BP: IPv6 Subnet attributes are implemented as part of the following BP - https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes

The possible values for the subnet attributes are as follows.
  • ipv6-ra-mode {dhcpv6-stateful, dhcpv6-stateless, slaac}

  • ipv6-address-mode {dhcpv6-stateful, dhcpv6-stateless, slaac}

The two IPv6 attributes provide flexibility to choose the type of IPv6 network. However, not all combinations of the two attributes are valid. Valid and invalid combinations are captured in the Neutron ipv6-provider-nets-slaac.rst blueprint and also at the following link. - https://www.dropbox.com/s/9bojvv9vywsz8sd/IPv6%20Two%20Modes%20v3.0.pdf

Along with test cases related to subnet attributes, this BP would implement new test cases in tempest to bring in parity between IPv4 and IPv6 tests. To start with, new tests would be required in Neutron for Ports/Security-Groups/Subnets/FWaaS api tests.

The following etherpad link would be used to track all the test cases.

https://etherpad.openstack.org/p/ipv6-api-testing-parity

Alternatives

None

Implementation

Assignee(s)

Primary assignee:

Milestones

Target Milestone for completion:

Juno release

Work Items

The work items include IPv6 API test cases like
  • Subnet test cases.

  • Port operations including Bulk operations.

  • Security Groups and Rules - https://review.openstack.org/#/c/94130

  • FWaaS test cases.

  • Validating if Neutron calculates and assigns IPv6 addresses properly (i.e., based on EUI-64 where applicable).

Any new test cases related to the same topic would be tracked using the following external etherpad link. https://etherpad.openstack.org/p/ipv6-api-testing-parity

Dependencies