Improve .rst format in port_qos to display tables

Change-Id: I22039e00ec7f778fb0f2f737357efa0b2bcf32d8
This commit is contained in:
Omer Anson 2016-09-28 14:00:15 +03:00
parent cf7369d5ce
commit 155b4f7c96
1 changed files with 46 additions and 53 deletions

View File

@ -22,57 +22,45 @@ patch we only support applying QoS policies to ports.
Proposed Change
===============
DragonFlow defines an object called qos to implement the port QoS. The
qos object has some attributes listed in the followed table:
DragonFlow defines an object called QoS to implement the port QoS. The
QoS object has some attributes listed in the followed table:
+--------------------+---------------------------------------------+
| attribute name | description |
| | |
+------------------------------------------------------------------+
| Attribute Name | Description |
+====================+=============================================+
| id | identify |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| type | type of QoS |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| tenant_id | tenant ID of QoS object owner |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| description | QoS description |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| qos_policy | QoS policy object |
| | |
+--------------------+---------------------------------------------+
The qos_policy includes some attributes listed in the followed table:
+--------------------+---------------------------------------------+
| attribute name | description |
| | |
+------------------------------------------------------------------+
| Attribute Name | Description |
+====================+=============================================+
| tx_averateLimit | bandwidth limit of egress direction |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| tx_burstSize | burst size of egress direction |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| rx_averateLimit | bandwidth limit of ingress direction |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| rx_burstSize | burst size of ingress direction |
| | |
+------------------------------------------------------------------+
+--------------------+---------------------------------------------+
| dscp | Differentiated Services Code Point |
| | |
+--------------------+---------------------------------------------+
The egress and ingress directions are from the VM point of view.
The egress and ingress directions are from the VM's point of view.
The type of qos includes "all" and "dscp". Besides the basic attributes
id, type, etc, the qos may have all of the attributes in the qos_policy
when the type of qos is "all" and only have the dscp attribute in the
qos_policy when the type of qos is "dscp".
The type of QoS includes "all" and "dscp". Besides the basic attributes
id, type, etc, the QoS may have all of the attributes in the qos_policy
when the type of QoS is "all" and only have the dscp attribute in the
qos_policy when the type of QoS is "dscp".
QoS Notification Driver
-----------------------
@ -83,7 +71,7 @@ with the CRUD operations of QoS policies.
If you want to use ML2 as core plugin and use dragonflow as ML2 mech driver,
you should edit neutron.conf file to configure
"notification_drivers = df_notification_driver" in [qos] section.
"notification_drivers = df_notification_driver" in [QoS] section.
You can see the implement of qos_notification_driver in patch:
https://review.openstack.org/#/c/331932/
@ -91,68 +79,73 @@ https://review.openstack.org/#/c/331932/
ML2 Mechanism Driver
--------------------
When port updates related to a qos, the DragonFlow ML2 driver will save the
relationship of port and qos in DF DB. When port detaches from a qos, it will
When port updates related to a QoS, the DragonFlow ML2 driver will save the
relationship of port and QoS in DF DB. When port detaches from a QoS, it will
delete the relationship.
QoS App
-------
The QoS app is a module of local controller which implements the logic of
QoS. The app concerns about the qos updated and port updated northbound events
QoS. The app concerns about the QoS updated and port updated northbound events
and also cares about the southbound port events which include port created and
port removed.
Port Created
------------
When the QoS app receives the port created event, it will get the qos attached
When the QoS app receives the port created event, it will get the QoS attached
to the port from the DB store, then set the tx_burstSize and tx_averateLimit
of the qos to ingress_policing_bust and ingress_policing_rate of the
of the QoS to ingress_policing_bust and ingress_policing_rate of the
corresponding interface on the OVS for limiting the bandwidth of egress traffic
of the port. In addition, the QoS app creates a queue attached to the port and
sets the rx_averateLimit and dscp of qos to other_config and dscp of the queue
sets the rx_averateLimit and dscp of QoS to other_config and dscp of the queue
on the OVS for limiting the bandwidth of ingress traffic of the port.
Port Removed
------------
When the QoS app receives the port removed event, it will delete the
corresponding qos configuration of the removed port on the local host, for
example, delete the qos and queue attached to the removed port on the OVS.
corresponding QoS configuration of the removed port on the local host, for
example, delete the QoS and queue attached to the removed port on the OVS.
Port Updated
------------
The port updated event can show three scenarios:
1. port applies a qos
2. port applies a new qos
3. port applies no qos
For scenario 1, the QoS app will set the corresponding configuration of the qos
1. port applies a QoS
2. port applies a new QoS
3. port applies no QoS
For scenario 1, the QoS app will set the corresponding configuration of the QoS
for the port, the configuration is similar with the description in
"Port Created" section above.
For scenario 2, the Qos app will update the configuration according to the new
qos object.
For scenario 2, the QoS app will update the configuration according to the new
QoS object.
For scenario 3, the Qos app will delete the configuration for the port.
For scenario 3, the QoS app will delete the configuration for the port.
Qos Object Delete
QoS Object Delete
-----------------
It is not permitted to delete the qos object attached to some ports. If no ports
apply the qos, it can be deleted from the DragonFlow DB.
It is not permitted to delete the QoS object attached to some ports. If no ports
apply the QoS, it can be deleted from the DragonFlow DB.
Qos Object Update
QoS Object Update
-----------------
When updating the qos object, the new value of bandwidth will be propagated
to all the ports which apply the qos object.
When updating the QoS object, the new value of bandwidth will be propagated
to all the ports which apply the QoS object.
References
==========
http://specs.openstack.org/openstack/neutron-specs/specs/liberty/qos-api-extension.html
https://review.openstack.org/#/c/331932