Add to QoS devref document missing description about how
egress bandwidth limit rules are implemented by Linuxbridge
agent driver.
Change-Id: I1ce44aba14d54179e64f8d0516e0a60605b2add1
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
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
Added devref documentation related to the "default" behaviour
for QoS policies.
Change-Id: Ic3b149ec5dfdc732a4b5851237389abaef8992b7
Closes-Bug: #1694298
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
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
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
Added a table in devref documentation to define which
QoS rules are supported by the network backends.
Change-Id: Ie536a05d19cab28eb48bad66b3bc204d017a1ebd
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
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
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
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
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
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
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
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
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
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
The code landed as I7cb61f30689dff2d7895d444060dedc1532a63ec.
Now this patch documents the new feature for subprojects benefit.
Change-Id: I191e253daffd83b271ab770bd5d49babae553c49
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
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
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
Heading ======= is reserved for a title of document.
This commit replaces non-title headings with lower headings.
Change-Id: I8521cde527ac3387e42e9e2f262506a5872484a0
In QoS devref, replace neutron.extensions.qos.VALID_RULE_TYPES by
neutron.services.qos.qos_consts.VALID_RULE_TYPES.
Change-Id: Id98b906733fd44bb03da2b38f3bb9a9e35174bfc
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
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
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
- 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
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
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
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
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
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
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