Allow configuration of supported IPv6 address modes and IPv6 ra modes

Registered by Ying Zuo

Summary
=======
This proposed feature is to allow the user to set the IPv6 address mode and IPv6 ra mode with separate dropdown menus on the create network panel and only the supported options are shown.
Also, the default IPv6 address mode and IPv6 ra mode will be pre-populated.

Motivation
========
Currently Horizon shows a single dropdown menu for the list of supported combinations of IPv6 address mode and IPv6 ra mode. There are only 4 supported combinations in newton. See section Using SLAAC for addressing on http://docs.openstack.org/newton/networking-guide/config-ipv6.html for the currently supported combinations.

These two modes are two different parameters to pass in the neutron api and there can be more combinations of them. See section ipv6_ra_mode and ipv6_address_mode combinations on http://docs.openstack.org/newton/networking-guide/config-ipv6.html

Thus showing two separate dropdown menus for these two modes make more sense and is better for the long run.

Description
=========
Below are the changes should be made in Horizon:

- show two separate dropdown menus for IPv6 address mode and IPv6 ra mode on create network modal -> subnet details tab.

- supported IPv6 address modes and IPv6 ra modes are configured via local_setting

- default IPv6 address mode and IPv6 ra mode are configured via local_setting

UX
===
Adding two standard dropdown menus.

Wireframes, Mocks, Videos and UI Markup
---------------------------------------------------------
N/A

Testing
======
Unit test

Outside Dependencies
==================
N/A

Requirements Update Required
========================
N/A

Doc Impact
=========
Add two additional settings to configure the supported IPv6 address modes and IPv6 ra modes

Blueprint information

Status:
Not started
Approver:
Rob Cresswell
Priority:
Low
Drafter:
Ying Zuo
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
Accepted for future
Implementation:
Not started
Milestone target:
milestone icon next

Whiteboard

[amotoki - Mar 13, 2017] - Initial feedback -
Regarding the two separate dropdown, there was a discussion on the initial implementation. The main reason of the current single dropdown is due to the tight relationship between two IPv6 modes. Each IPv6 mode can be four options (null, slaac, dhcpv6-stateless, dhcpv6-stateful), but there are many impossible combinations. From user perspective, if we introduce two separate dropdowns, how can users know which combination is valid and which is invalid?

The second reason is because it is easier to provide users use-cases. A combination of the two modes has a meaning and we first try to provide a brief description for each mode but it is not easy for regular users (not familiar with IPv6) to understand.

From the above reasons, we decided to adopt the single dropdown approach. We need to compare which approach is user-friendly carefully. Even though the Neutron API provides two separate modes, that is not a reason that horizon provides two separate modes. If you can go to the route of two separate dropdowns, I hope the above concerns are addressed.

Regarding combination of supported modes, we now support only 4 combinations. Of course, it can be improved. https://docs.openstack.org/newton/networking-guide/config-ipv6.html defines 10 valid combinations.

Finally introducing the configuration option is a good idea. From my experience of IPv6 deployments, it sounds reasonable to support a limited set of combinations of the two modes. What combinations are available depends on deployments.

[yingzuo - Mar 13, 2017] - response to initial feedback -

Akihiro,

Thanks for your input on this blueprint.

I am glad that we agree on the number of combinations can be improved and having the configuration for supported modes is an improvement. I understand that you have concern about changing the single IPv6 mode into two separate fields and how user-friendly it will be. The IPv6 mode is an optional field on the form. So for users who don't know much about this configuration, they won't try to select a different mode from what's auto-populated on the form. For that, we can provide the default mode that will be configurable via the local_settings.py. I will update the blueprint to add this.

[amotoki - Oct 10, 2017]
One idea is to add a choice which allows to specify the address mode and the RA mode to the current dropdown list. If this choice is selected, we can show the specific fields corresponding to the IPv6 address mode and IPv6 RA mode. This does not change the current user interface for existing users.

[yingzuo - Oct 10, 2017] The problem with the current dropdown is that it doesn't contain all the possible combinations for IPv6 address modes and IPv6 RA modes, so I don't think we should try to keep it.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.