Support Bandwidth limiting QoS support

Registered by Mohankumar on 2015-11-03

=======
Neutron has supported Bandwidth limiting QoS support since Liberty. Horizon needs to add support for Bandwidth limiting QoS support and their use to expose this functionality.

Motivation
==========
Neutron bandwidth limiting qos configurations.The main motivation for this implementation is about limiting, prioritizing or guaranteeing speed of traffic . So we can process important user traffic with higher priority and cloud admin can offer different service levels based on the available network bandwidth. Qos policies can be applied per network and port levels upon where cloud admin wants to get applied.

Description :
=========
QoS design defines the following two conceptual resources,

[1] QoS policy
[2] QoS rule (type specific)

Each QoS policy contains zero or more QoS rules. A policy is then applied to a network or a port, making all rules of the policy applied to the corresponding resource.When applied through a network association, policy rules could apply or not to neutron internal ports (like router, dhcp, load balancer, etc..). The QosRule base object provides a default should_apply_to_port method which could be overridden. In the future we may want to have a flag in QoSNetworkPolicyBinding or QosRule to enforce such type of application (for example when limiting all the ingress of routers devices on an external network automatically).

Data Model Impact:

The model consist of two main parts, policies, and rules. Policies are composed of rules. Even if that can look overcomplicated as a start, it will allow the feature to be easily extended without changes to object relationships (QoSPolicy <-> Port / QoSPolicy <-> Network) in the future.

For the case of bandwidth limiting, we have a third model QoSBandwidthLimitRule that extends QoSRule base data model.

New rules could be introduced by adding new submodels to QoSRule.

UX
===
The nature of this change is wiring in Horizon. The end user should able to create QOS rule using Horizon UI as same neutron supports CLI interface .

Doc Impact
=========
The doc impact of this change will be to the overall openstack documentation regarding domain management.

Blueprint information

Status:
Started
Approver:
Ying Zuo
Priority:
Low
Drafter:
Mohankumar
Direction:
Approved
Assignee:
Beth Elwell
Definition:
Approved
Series goal:
Accepted for 14.0.0-rocky
Implementation:
Started
Milestone target:
milestone icon rocky-2
Started by
Rob Cresswell on 2017-02-21

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/network-bandwidth-limiting-qos,n,z

Addressed by: https://review.openstack.org/247997
    Adding angular QoS panel in horizon -- ABANDONED

Addressed by: https://review.openstack.org/259022
    WIP - added edit policy options -- ABANDONED

Addressed by: https://review.openstack.org/272928
    Added a create action for qos policy -- ABANDONED

Addressed by: https://review.openstack.org/277743
    added bandwidth limit rule workflow -- ABANDONED

Addressed by: https://review.openstack.org/280541
    WIP-Added action for attach QoS policy to network -- ABANDONED

Addressed by: https://review.openstack.org/284619
    WIP-Added attach/detach qos policy to networks -- ABANDONED

Gerrit topic: https://review.openstack.org/#q,topic:angular-qos-panel,n,z

Addressed by: https://review.openstack.org/418828 - merged
    WIP Adds angular QoS panel to Horizon

Gerrit topic: https://review.openstack.org/#q,topic:angular-qos-panel-actions,n,z

Addressed by: https://review.openstack.org/445539 - merged
    Add details to network_qos panel

Gerrit topic: https://review.openstack.org/#q,topic:qos-default,n,z

Addressed by: https://review.openstack.org/487832 - merged
    QoS panel: default to disabled

Addressed by: WIP Add delete action to network_qos panel
    https://review.openstack.org/#/c/487140/

Addressed by: Cleaned up formats for qos panel
    https://review.openstack.org/#/c/504268/ - merged

[yingzuo - 2017/10/31] Beth, are you still working on this?

[betherly - 2017/11/01] Hi Ying, Yes I am, should have a patch up shortly. Apologies for the delay while focusing on testing.

[yingzuo - 2017/11/5] Great! Thanks Beth.

Gerrit topic: https://review.openstack.org/#q,topic:qos-panel-actions,n,z

Addressed by: https://review.openstack.org/487140
    Add delete action to network_qos panel

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.