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
|
Proposed Change
|
||||||
===============
|
===============
|
||||||
|
|
||||||
DragonFlow defines an object called qos to implement the port QoS. The
|
DragonFlow defines an object called QoS to implement the port QoS. The
|
||||||
qos object has some attributes listed in the followed table:
|
QoS object has some attributes listed in the followed table:
|
||||||
|
|
||||||
+--------------------+---------------------------------------------+
|
+--------------------+---------------------------------------------+
|
||||||
| attribute name | description |
|
| Attribute Name | Description |
|
||||||
| | |
|
+====================+=============================================+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| id | identify |
|
| id | identify |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| type | type of QoS |
|
| type | type of QoS |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| tenant_id | tenant ID of QoS object owner |
|
| tenant_id | tenant ID of QoS object owner |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| description | QoS description |
|
| description | QoS description |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| qos_policy | QoS policy object |
|
| qos_policy | QoS policy object |
|
||||||
| | |
|
|
||||||
+--------------------+---------------------------------------------+
|
+--------------------+---------------------------------------------+
|
||||||
|
|
||||||
The qos_policy includes some attributes listed in the followed table:
|
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_averateLimit | bandwidth limit of egress direction |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| tx_burstSize | burst size of egress direction |
|
| tx_burstSize | burst size of egress direction |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| rx_averateLimit | bandwidth limit of ingress direction |
|
| rx_averateLimit | bandwidth limit of ingress direction |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| rx_burstSize | burst size of ingress direction |
|
| rx_burstSize | burst size of ingress direction |
|
||||||
| | |
|
+--------------------+---------------------------------------------+
|
||||||
+------------------------------------------------------------------+
|
|
||||||
| dscp | Differentiated Services Code Point |
|
| 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
|
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
|
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
|
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_policy when the type of QoS is "dscp".
|
||||||
|
|
||||||
QoS Notification Driver
|
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,
|
If you want to use ML2 as core plugin and use dragonflow as ML2 mech driver,
|
||||||
you should edit neutron.conf file to configure
|
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:
|
You can see the implement of qos_notification_driver in patch:
|
||||||
https://review.openstack.org/#/c/331932/
|
https://review.openstack.org/#/c/331932/
|
||||||
|
@ -91,68 +79,73 @@ https://review.openstack.org/#/c/331932/
|
||||||
ML2 Mechanism Driver
|
ML2 Mechanism Driver
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
When port updates related to a qos, the DragonFlow ML2 driver will save the
|
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
|
relationship of port and QoS in DF DB. When port detaches from a QoS, it will
|
||||||
delete the relationship.
|
delete the relationship.
|
||||||
|
|
||||||
QoS App
|
QoS App
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The QoS app is a module of local controller which implements the logic of
|
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
|
and also cares about the southbound port events which include port created and
|
||||||
port removed.
|
port removed.
|
||||||
|
|
||||||
Port Created
|
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
|
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
|
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
|
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.
|
on the OVS for limiting the bandwidth of ingress traffic of the port.
|
||||||
|
|
||||||
Port Removed
|
Port Removed
|
||||||
------------
|
------------
|
||||||
|
|
||||||
When the QoS app receives the port removed event, it will delete the
|
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
|
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.
|
example, delete the QoS and queue attached to the removed port on the OVS.
|
||||||
|
|
||||||
Port Updated
|
Port Updated
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The port updated event can show three scenarios:
|
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
|
for the port, the configuration is similar with the description in
|
||||||
"Port Created" section above.
|
"Port Created" section above.
|
||||||
|
|
||||||
For scenario 2, the Qos app will update the configuration according to the new
|
For scenario 2, the QoS app will update the configuration according to the new
|
||||||
qos object.
|
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
|
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.
|
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
|
When updating the QoS object, the new value of bandwidth will be propagated
|
||||||
to all the ports which apply the qos object.
|
to all the ports which apply the QoS object.
|
||||||
|
|
||||||
|
|
||||||
References
|
References
|
||||||
==========
|
==========
|
||||||
|
|
||||||
http://specs.openstack.org/openstack/neutron-specs/specs/liberty/qos-api-extension.html
|
http://specs.openstack.org/openstack/neutron-specs/specs/liberty/qos-api-extension.html
|
||||||
|
|
||||||
https://review.openstack.org/#/c/331932
|
https://review.openstack.org/#/c/331932
|
||||||
|
|
Loading…
Reference in New Issue