Improve .rst format in port_qos to display tables
Change-Id: I22039e00ec7f778fb0f2f737357efa0b2bcf32d8
This commit is contained in:
parent
cf7369d5ce
commit
155b4f7c96
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue