Commit Graph

55 Commits

Author SHA1 Message Date
Akihiro Motoki 2a47ffd96d Rearrange existing documentation to fit the new standard layout
For more detail, see the doc migration spec.
http://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html

Change-Id: I142a686a3abbe65138a9f3296cd21fc21fbd763a
2017-07-08 05:49:56 +00:00
Sławek Kapłoński ad49bbd0f2 Add missing description of Linuxbridge egress bw limit
Add to QoS devref document missing description about how
egress bandwidth limit rules are implemented by Linuxbridge
agent driver.

Change-Id: I1ce44aba14d54179e64f8d0516e0a60605b2add1
2017-06-24 08:42:07 +00:00
Jenkins 2ce4f19afd Merge "Ingress bandwidth limit rule in Linuxbridge agent" 2017-06-22 13:59:07 +00:00
Sławek Kapłoński da646496e3 Ingress bandwidth limit rule in Linuxbridge agent
Add support for QoS ingress bandwidth limiting in
linuxbridge agent.
It uses traffic shaping done by tc with tbf qdisc.

DocImpact: Ingress bandwidth limit in QoS supported by
           Linuxbridge agent

Change-Id: Id495b302d31f5527db3e45b51517bc53153e7fc2
Partial-Bug: #1560961
2017-06-22 08:20:48 +00:00
Jenkins dd52e9fbb8 Merge "Revert "Change list of available qos rules"" 2017-06-22 00:21:04 +00:00
Sławek Kapłoński 98f4362469 Add missing info about supported ingress bandwidth limit rule
Add missing information that Openvswitch agent supports now
both ingress and egress direction for QoS bandwidth limit rule.

Support for ingress bandwidth limit was added in
I9d94e27db5d574b61061689dc99f12f095625ca0

TrivialFix

Change-Id: I70058d1d8f16c58e41dab08fc66d5d3f5fcefa4b
2017-06-20 21:07:10 +00:00
Rodolfo Alonso Hernandez 3e87e4ab0d Add "default" behaviour to QoS policies documentation
Added devref documentation related to the "default" behaviour
for QoS policies.

Change-Id: Ic3b149ec5dfdc732a4b5851237389abaef8992b7
Closes-Bug: #1694298
2017-06-15 09:02:12 +01:00
Sławek Kapłoński 2d0d1a2d76 Add support for ingress bandwidth limit rules in ovs agent
Add support for QoS ingress bandwidth limiting in
openvswitch agent.
It uses default ovs QoS policies on bandwidth limiting
mechanism.

DocImpact: Ingress bandwidth limit in QoS supported by
           Openvswitch agent

Change-Id: I9d94e27db5d574b61061689dc99f12f095625ca0
Partial-Bug: #1560961
2017-06-14 11:11:43 +00:00
YAMAMOTO Takashi 55d810c7e6 Revert "Change list of available qos rules"
This reverts commit 3299cdffae.

At least, there's a user which relies on the previous
semantics. (Our tempest plugin)
We should not change API semantics lightly
in an incompatible way.

Closes-Bug: #1694396
Related-Bug: #1694190
Change-Id: I88a216951d8996ac8bc90078b4239f0d25392e58
2017-05-30 08:12:28 +00:00
Miguel Angel Ajo 45fd7eef6e Add precommit calls to the QoSDriver class
Added create, update and delete precommit calls for QoS
driver, to be used by some out-of-tree backends.

Co-Authored-By: Miguel Angel Ajo <mangelajo@redhat.com>
Co-Authored-By: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>

Closes-Bug: #1657381
Change-Id: I44dd7e049eab054363063021f07ade81ef2d1a90
2017-05-23 10:59:56 +01:00
Rodolfo Alonso Hernandez 234f09a462 Add "direction" parameter to QosBandwidthLimitRule
Added document reference to this new parameter.

Change-Id: I4b74269ca1b56a6c29034a42e583db5160122ff9
Partial-Bug: #1687392
2017-05-17 08:30:32 +00:00
Rodolfo Alonso Hernandez 7b2ecf69eb Add QoS backend/rule support table to documentation
Added a table in devref documentation to define which
QoS rules are supported by the network backends.

Change-Id: Ie536a05d19cab28eb48bad66b3bc204d017a1ebd
2017-05-12 07:55:18 +00:00
Sławek Kapłoński 3299cdffae Change list of available qos rules
This patch changes way how neutron calculates which QoS rules
are available to use. It now returns all rule types which are
supported by at least one loaded QoS driver.
If user will want to apply policy with rule unsupported by driver
used by port then it will be catched on port/network update event.
This validation mechanism was introduced in
I75bd18b3a1875daa5639dd141fb7bbd6e1c54118

DocImpact: list of returned available QoS rule types is changed

Change-Id: Ia00d349625db358ab486802fc0ff2e69eaa3895e
Closes-Bug: #1686898
2017-05-03 17:14:29 +00:00
Miguel Angel Ajo b3b281759b Update QoS devref
Cleanup some unnecessary paragraphs, and update some facts.

Change-Id: I30c24f56ab09446fd7ef17ace878bb455c118654
2017-04-03 16:15:47 +00:00
Hirofumi Ichihara e3063496cf Revert "Linux Bridge: driver support for QoS egress minimum bandwidth"
This reverts commit 84b3ae3ae9.

The logic was incorrect[1]. We cannot achieve QoS egress minimum bandwidth of Linuxbridge by the patch. I also think that the issue is not solved by small patch and we must consider deeply.

[1]: https://bugs.launchpad.net/neutron/+bug/1662582

Change-Id: Id4703b5c63876f16e31b6805cd147b5840a4a591
2017-02-09 19:11:00 +00:00
Boden R 11825081ec Fix link in QoS devref
The QoS devref has a bad link to the L2 agent extensions
doc. This patch fixes the link.

Note: The bug reports a few other neutron dead links, but
these are either already fixed, or for liberty release notes
and liberty is already EOL.

Change-Id: I047f638f0a348d636aa533c0db93e8a1f23c6356
Closes-Bug: #1652944
2017-01-30 09:00:43 -07:00
Miguel Angel Ajo 38c1812015 Transition qos notification driver into qos driver
This will deprecate the notification_driver config setting,
and no config setting will be needed.

Also it lays down the foundation for a more decoupled interaction
with mechanism drivers.

Closes-Bug: #1657379
Related-Bug: #1627749
DocImpact

Change-Id: I2f166a43f0b980ad22617f8a3f7b4cc7f4786c48
2017-01-25 14:13:36 +01:00
Rodolfo Alonso Hernandez 84b3ae3ae9 Linux Bridge: driver support for QoS egress minimum bandwidth
This patch provides the Linux Bridge agent driver the ability to control
Linux Traffic Control (TC) to set the minimum required transmission rate
for an interface.

The TC library is refactored to use HTB qdiscs. This allows TC to
define, for several flows in the same interface, the maximum and the
minimum network bandwidth and the burst size.

To be able to do traffic shaping (instead of policing) for ingress
traffic, a new element, the Intermediate Functional Block device (IFB)
is introduced.

DocImpact
Partial-Bug: #1560963

Change-Id: I4d4db54519f1435068d1af38819404d1e5d9cd52
2017-01-13 15:44:16 +00:00
Rodolfo Alonso Hernandez 60325f4ae9 Add QoS minimum bandwidth rule for instance egress traffic
This patch introduces the front end implementation for QoS
minimum bandwidth rule.

APIImpact: New type of parameter for QoS rule in neutron API
DocImpact

Change-Id: I6b619a96a2bfde164646c71409b671352bc6ce7d
Partial-Bug: #1560963
2016-08-27 17:08:18 +00:00
Rodolfo Alonso Hernandez 484e44d4c6 Update "devref/quality_of_service" with QoS DSCP rule reference.
Change-Id: Ib9e75bdee91b87770be5b6dd4c87d0ee6d767160
Closes-Bug: 1613699
2016-08-17 09:37:43 +01:00
Bernard Cafarelli deee2d348f Fix some typos
Change-Id: I5317006ca91c76833f54fd23a5742b42780b3022
2016-06-28 22:46:19 +02:00
Margaret Frances b3ca00f7a6 Refactor QoS plugin to avoid code duplication
This change refactors the rule-specific methods in qos_plugin.py
in order to facilitate implementation of additional QoS rule types.

Further, with the recent merge of
https://review.openstack.org/#/c/292488/, which prevents primary
keys in Neutron's oslo.versioned objects from being updated, the
QoS plugin needed additional refactoring. This change implements a
generic method in Neutron's base objects to handle object updates
without updating the primary key.  This method is then used in the
QoS plugin.

Co-Authored-By: Slawek Kaplonski <slawek@kaplonski.pl>

Change-Id: I863f063a0cfbb464cedd00bddc15dd853cbb6389
Partial-Bug: #1468353
2016-05-25 22:56:21 -04:00
vikram.choudhary f87d434038 Word about notification_driver
This patch set attempts to clarify how a third party vendor
can make use of the existing QoS functionality using the
notification_driver interface.

Change-Id: Ib1559c27c9405d6ec15c65ea377b162433304ff2
2016-05-04 10:17:01 +00:00
Daniel Mellado c56918027a Use tempest plugin interface
Make use of the Tempest plugin interface instead of copying Neutron
files into Tempest. This will remove the burden to port Neutron
tests onto Tempest master recurrently.

It uses neutron/tests/tempest/ as new top folder for all Tempest
tests. It follows the model of Heat [1].

[1]: https://github.com/openstack/heat/tree/master/heat_integrationtests

Partially implements bp external-plugin-interface

Change-Id: Ia233aa162746845f6ae08a8157dcd242dcd58eab
2016-04-14 15:19:14 +02:00
David Shaughnessy a9a1943fde DSCP QoS rule implementation
This patch adds the front end and back end implementation of QoS DSCP.

Associated patches that are dependent on this one:

* python-neutronclient: https://review.openstack.org/#/c/254280
* openstack-manuals: https://review.openstack.org/#/c/273638
* API Guide: https://review.openstack.org/#/c/275253
* Heat:
  * Spec: https://review.openstack.org/#/c/272173
  * QoSDscpMarkingRule resource: https://review.openstack.org/#/c/277567
* Fullstack tests: https://review.openstack.org/#/c/288392/

APIImpact - The API now supports marking traffic egressing from a VM's
            dscp field with a valid dscp value.

Co-Authored-By: Nate Johnston <nate_johnston@cable.comcast.com>
Co-Authored-By: Victor Howard <victor.r.howard@gmail.com>
Co-Authored-By: Margaret Frances <margaret_frances@cable.comcast.com>
Co-Authored-By: James Reeves <james.reeves5546@gmail.com>
Co-Authored-By: John Schwarz <jschwarz@redhat.com>
Needed-By: I25ad60c1b9a66e568276a772b8c496987d9f8299
Needed-By: I881b8f5bc9024c20275bc56062de72a1c70c8321
Needed-By: I48ead4b459183db795337ab729830a1b3c0022da
Needed-By: Ib92b172dce48276b90ec75ee5880ddd69040d7c8
Needed-By: I4eb21495e84feea46880caf3360759263e1e8f95
Needed-By: I0ab6a1a0d1430c5791fea1d5b54106c6cc93b937
Partial-Bug: #1468353

Change-Id: Ic3baefe176df05f049a2e06529c58fd65fe6b419
2016-03-18 10:07:24 +01:00
Jenkins a1d7bd40c0 Merge "Objects DB api: added composite key to handle multiple primary key" 2016-03-04 08:33:50 +00:00
Jenkins c76ca6122d Merge "devref: added details on the new l2 agent API mechanism" 2016-03-03 12:08:48 +00:00
Ihar Hrachyshka 5b3d969af5 devref: added details on the new l2 agent API mechanism
The code landed as I7cb61f30689dff2d7895d444060dedc1532a63ec.

Now this patch documents the new feature for subprojects benefit.

Change-Id: I191e253daffd83b271ab770bd5d49babae553c49
2016-03-03 10:15:13 +00:00
Ihar Hrachyshka 81fb4da11c Fix docs tox target for local runs
The following error occurs when you try to execute the docs target
locally:

Warning, treated as error:
<...>/doc/source/devref/quality_of_service.rst:340: ERROR: Unknown
target name: "http://unix.stackexchange.com/a/100797".

It fails locally only, because in gate job, we don't treat warnings as
errors.

Change-Id: I6703be19d3458d036fdd1378fe6e85784ab54191
2016-03-02 15:52:53 +01:00
Artur Korzeniewski 4b227c3771 Objects DB api: added composite key to handle multiple primary key
Moving CRUD DB operation for objects from db/api.py to objects/db/api.py
Renaming object get_by_id(id) to get_object(**kwargs)

Many models in Neutron DB have complex primary keys, concatenated from
a few properties. This patch adds ability to define multiple primary keys
in NeutronDbObject, which are automatically evaluated into DB query
when performing operations.

Partial-Bug: #1541928
Change-Id: I0f63a62418db76415ddd40c30c778ff7541b93dc
2016-03-01 17:05:11 +00:00
Sławek Kapłoński 45410d76be Add support for QoS for LinuxBridge agent
There is a new QoS extension driver for the linuxbridge agent
being added. This driver provides support for QoS configuring
on the linuxbridge agent.
This patch introduces two new config options for Linuxbridge agent:
kernel_hz - HZ value of host kernel,
tbf_latency - value of latency in tbf qdisc to calculate size of queue.

Co-Authored-By: vikram.choudhary <vikram.choudhary@huawei.com>

Change-Id: I457ca2569b5d4a916ba09e71040505cd0ad3257b
Closes-Bug: #1500012
Closes-Bug: #1550514
DocImpact Update agent configuration to show settings related to
          QoS and bandwidth limiting
2016-03-01 10:45:02 +00:00
Akihiro Motoki 755bd05dfb Fix heading markers for better docment toc view
Heading ======= is reserved for a title of document.
This commit replaces non-title headings with lower headings.

Change-Id: I8521cde527ac3387e42e9e2f262506a5872484a0
2015-11-12 22:27:19 +09:00
Dongcan Ye 6e8e83f75a Fix QoS VALID_RULE_TYPES location in devref
In QoS devref, replace neutron.extensions.qos.VALID_RULE_TYPES by
neutron.services.qos.qos_consts.VALID_RULE_TYPES.

Change-Id: Id98b906733fd44bb03da2b38f3bb9a9e35174bfc
2015-11-03 10:19:46 +08:00
vikram.choudhary c2734d336f Adding headers to the devref docs
This patch adds missing headers to all the devref documents.

Change-Id: Ice2f93f37a2cade7d5af552aaae6cd9f66dc953c
2015-10-07 18:29:52 +05:30
JuPing 824b4dc8ac Fix the bug of "Error spelling of 'accomodate'"
The word "accomodate " should be spelled as "accommodate".
So it is changed.

Change-Id: Ie0aae93973c0efec34c3d4baf0d3d2783c6eeef8
Closes-Bug: #1501216
2015-10-01 00:16:18 +08:00
Miguel Angel Ajo fe236bdaad No network devices on network attached qos policies
Network devices, like internal router legs, or dhcp ports
should not be affected by bandwidth limiting rules.

This patch disables application of network attached policies
to network/neutron owned ports.

Closes-bug: #1486039
DocImpact

Change-Id: I75d80227f1e6c4b3f5fa7762b8dc3b0c0f1abd46
2015-09-16 15:11:04 +02:00
Jenkins 43166cc4c5 Merge "SR-IOV: Add Agent QoS driver to support bandwidth limit" into feature/qos 2015-08-12 19:12:11 +00:00
Moshe Levi 995c35221b SR-IOV: Add Agent QoS driver to support bandwidth limit
This patch adds SR-IOV agent driver which uses eswitch manager to set VF
rate limit. It also updates the agent to call port_delete api of the
extension manager to cleanup when port is deleted.

Partially-Implements: blueprint ml2-sriov-qos-with-bwlimiting
Change-Id: I364fc8158e502d4dcc3510d6157f12969961a11d
2015-08-12 09:37:02 +00:00
Miguel Angel Ajo a17d97fc00 Update documentation acording to last QoS/OvS changes
Change Ie802a235ae19bf679ba638563ac7377337448f2a introduces
a few changes to the low level ovs implementation of QoS,
this patch updates documentation.

Change-Id: I46a972b045c03f65888a22f55e893c69da3db14b
Partially-Implements: ml2-qos
2015-08-12 09:35:34 +00:00
Ihar Hrachyshka df257dec56 devref: update quality_of_service
- note that we do not use versioning features of oslo.versionedobjects
  yet;
- described the flow of updates from agent perspective;
- mentioned the delete_port API of QoS drivers;
- removed SR-IOV from the list of supported drivers since it's not in
  yet.

Change-Id: I48940dc88b04e5e54e55187423295a6d34ee725d
2015-08-11 15:12:33 +02:00
Jenkins dbb0e66953 Merge "Moved l2/agent_extensions_manager into l2/extensions/manager.py" into feature/qos 2015-08-08 03:43:35 +00:00
Jenkins c3b44ab33b Merge "Moved extensions/qos_agent.py into extensions/qos.py" into feature/qos 2015-08-08 03:43:23 +00:00
Jenkins 8d7bfdf39d Merge "Introduce base interface for core resource extensions" into feature/qos 2015-08-08 03:40:10 +00:00
Ihar Hrachyshka d5ee971d71 Moved l2/agent_extensions_manager into l2/extensions/manager.py
This is to keep manager more close to extensions. Also made some minor
renames in ovs agent attributes that seemed more beautiful.

Change-Id: Id5a356a595a052d0cf1f57d376ad8289e710a9b3
Partial-Implements: blueprint quantum-qos-api
2015-08-07 19:38:22 +00:00
Ihar Hrachyshka 4dd9841186 Moved extensions/qos_agent.py into extensions/qos.py
This file does not contain any separate QoS agent but just an extension
for existing l2 agents to reuse.

Change-Id: I0587d89b0e841e5fd19b91157602efb5aa97513e
Partially-Implements: blueprint quantum-qos-api
2015-08-07 19:38:13 +00:00
Ihar Hrachyshka d148e68b71 Introduce base interface for core resource extensions
The interface can be found in neutron.core_extensions.base.

Adopted the interface in qos core resource extension.

Alos moved qos_extension under neutron.core_extensions.qos. Partially,
this is to avoid confusion around the fact that the module does not
really contain a neutron API extension but core resource extension.

Change-Id: I6f6976aa49694f7ef17afa4e93bc769cd0069f65
Partially-Implements: blueprint quantum-qos-api
2015-08-07 21:36:15 +02:00
Jenkins e56778b5cb Merge "Updated quality_of_service devref doc to reflect reality" into feature/qos 2015-08-07 19:22:12 +00:00
Ihar Hrachyshka 29808803df Don't claim Linux Bridge ml2 driver supports bandwidth limit QoS rules
Since we don't want rule_types API to misbehave by claiming support for
QoS for linuxbridge ml2 driver, let's trade API test for its
service correctness.

Note that we cannot enforce the supported rule_types for actual CRUD
operations because then we would need to disable the whole API test
coverage for rules, and we don't want it.

This suggests we should get Linux Bridge support in some way or another.

Change-Id: I86197d02d0474fd9a55a09efcce6a7380c08c5e0
Partially-Implements: blueprint ml2-qos
2015-08-07 14:06:33 +02:00
Ihar Hrachyshka f58d14ca02 Updated quality_of_service devref doc to reflect reality
This document will need to get more updates once we start to shuffle
code in preparation for merging back into master.

Change-Id: I69d1e4b3bab8b62c5d8e45ec6294f4195de7ef83
Partially-Implements: quantum-qos-api
2015-08-06 16:49:43 +02:00
Ihar Hrachyshka 582d03e464 objects.qos.policy: provide rules field, not type specific
It should be forbidden to have multiple rules of the same type attached
to a policy, so the idea of having per type lists is moot.

Instead, we should have a single list of all rules that belong to the
policy.

Also fixed a test that validated a single transaction to actually work
with multiple autonested transactions applied.

Partially-Implements: blueprint quantum-qos-api
Change-Id: Ia152b3ff385d2aa0cf40664ef039265b046b1d17
2015-08-01 22:16:34 +02:00