Neutron QoS API extension

Registered by Sean M. Collins

This tracks work being done to add QoS into Neutron.

Blueprint information

Status:
Complete
Approver:
Kyle Mestery
Priority:
High
Drafter:
Sean M. Collins
Direction:
Approved
Assignee:
Ihar Hrachyshka
Definition:
Approved
Series goal:
Accepted for liberty
Implementation:
Implemented
Milestone target:
milestone icon 7.0.0
Started by
Sean M. Collins
Completed by
Armando Migliaccio

Related branches

Sprints

Whiteboard

Feb-19-14 - This will probably land in J-1, I'd prefer to let it bake a bit longer since we're starting to get more interest from other plugins. -- Sean M. Collins

Havana Summit proposal - http://summit.openstack.org/cfp/details/160

Icehouse Summit proposal - http://summit.openstack.org/cfp/details/104

May-29-14 - Blueprint specification was added to neutron-specs here:

    https://review.openstack.org/#/c/88599

--sgordon

Gerrit topic: https://review.openstack.org/#q,topic:bp/quantum-qos-api,n,z

Addressed by: https://review.openstack.org/193584
    Create the QoS API extension stub

Gerrit topic: https://review.openstack.org/#q,topic:neutron-qos,n,z

Addressed by: https://review.openstack.org/197047
    WIPWIPWIP [qos] QoSPolicy object

Addressed by: https://review.openstack.org/196995
    QoS: db models and migration rules

Addressed by: https://review.openstack.org/197098
    Add extension callbacks support for networks

Gerrit topic: https://review.openstack.org/#q,topic:qos-neutron,n,z

Addressed by: https://review.openstack.org/193585
    Introduce the AFTER_READ callback for ports and networks

Addressed by: https://review.openstack.org/197876
    [qos] policy: add methods to interact with policy bindings

Addressed by: https://review.openstack.org/197564
    Implement QoS plugin

Addressed by: https://review.openstack.org/199110
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/200565
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/201065
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/201623
    devref: added details about database/objects layer

Addressed by: https://review.openstack.org/201979
    Handle qos_profile_id on network/port create/update

Addressed by: https://review.openstack.org/203105
    Handle qos_policy on network/port create/update

Gerrit topic: https://review.openstack.org/#q,topic:bug/1475218,n,z

Addressed by: https://review.openstack.org/204130
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/204950
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/204031
    QoS: Remove type attribute from QoS rules

Addressed by: https://review.openstack.org/205508
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/199996
    Add versioned object serialize/deserialize for resources RPC

Addressed by: https://review.openstack.org/205590
    ml2: added qos_profile_id to get_device_details payload

Addressed by: https://review.openstack.org/205769
    rpc.callbacks.registry: validate type of callback result

Addressed by: https://review.openstack.org/206021
    rpc.callback.registry: validate that callback provider is registered

Addressed by: https://review.openstack.org/205763
    Don't set tenant_id for rule objects

Addressed by: https://review.openstack.org/201602
    Add UT for agent_extensions_manager

Addressed by: https://review.openstack.org/206049
    objects.qos.policy: convert rule objects into dicts on to_dict()

Addressed by: https://review.openstack.org/206059
    get_info: request object backport only if desired version is different

Addressed by: https://review.openstack.org/205796
    Add update tests for policies and rules

Addressed by: https://review.openstack.org/197840
    Load the QoS notification driver from the configuration file

Addressed by: https://review.openstack.org/197631
    Add pluggable backend driver for QoS Service notification

Addressed by: https://review.openstack.org/206188
    Moved QOS_POLICY_ID into qos_consts.py

Addressed by: https://review.openstack.org/206525
    Update OVS driver to work with objects

Addressed by: https://review.openstack.org/205762
    Unite qos_rules and qos_*_rules tables

Addressed by: https://review.openstack.org/207005
    Added missing [qos] section into neutron.conf

Addressed by: https://review.openstack.org/207043
    objects.qos.policy: provide rules field, not type specific

Addressed by: https://review.openstack.org/207096
    Removed TODO for getting integration bridge from arguments

Addressed by: https://review.openstack.org/207108
    objects: consolidate single transaction checks into test_base

Addressed by: https://review.openstack.org/207163
    Enable rule delete test

Addressed by: https://review.openstack.org/207170
    Guarantee there is only one rule of specific type per policy

Addressed by: https://review.openstack.org/207339
    QosPolicy: made shared field required and with default value = False

Addressed by: https://review.openstack.org/207423
    qos: forbid creating rules when there is no access to policy

Addressed by: https://review.openstack.org/208210
    objects.qos.policy: forbid deletion when attached to a port or a network

Addressed by: https://review.openstack.org/208212
    Remove handle_network/handle_subnet from l2 agent extensions

Addressed by: https://review.openstack.org/208223
    L2 agent extension manager: read extensions list from config file

Addressed by: https://review.openstack.org/208249
    Removed TODO to use a constant for rule 'type' field

Addressed by: https://review.openstack.org/208251
    use single transaction to update qos policy associatation

Addressed by: https://review.openstack.org/208477
    neutron.api.rpc.callbacks interface rework

Addressed by: https://review.openstack.org/208490
    Gracefully handle fetching nonexistent rule

Addressed by: https://review.openstack.org/208943
    Add rpc agent api and callbacks to resources_rpc

Addressed by: https://review.openstack.org/209065
    Follow up with some cleanup for agent qos_driver

Addressed by: https://review.openstack.org/209200
    Implement transactions for create_qos_bw_limit_for_port

Addressed by: https://review.openstack.org/209268
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/208201
    (WIP) Fixes for qos policy and bandwidth-limit-rule filter by name

Addressed by: https://review.openstack.org/209556
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/209620
    Propagate notifications to agent consumers callbacks

Addressed by: https://review.openstack.org/209927
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/209970
    Revert "Add extension callbacks support for networks"

Addressed by: https://review.openstack.org/209987
    Move qos_extension into core_extension

Addressed by: https://review.openstack.org/210211
    Moved extensions/qos_agent.py into extensions/qos.py

Addressed by: https://review.openstack.org/210218
    Moved l2/agent_extensions_manager into l2/extensions/manager.py

Addressed by: https://review.openstack.org/210239
    resource_manager: switch to collections.defaultdict(set)

Addressed by: https://review.openstack.org/210012
    OVS agent QoS extension functional testing

Addressed by: https://review.openstack.org/210354
    Clean up rules first, then policies

Addressed by: https://review.openstack.org/210451
    Fixed resource manager singleton behavior

Gerrit topic: https://review.openstack.org/#q,topic:fullstack,n,z

Addressed by: https://review.openstack.org/211003
    resources_rpc: fixed singleton behavior for ResourcesPullRpcApi

Addressed by: https://review.openstack.org/211044
    Add thread locks on port routines for qos ext

Gerrit topic: https://review.openstack.org/#q,topic:bug/1468990,n,z

Addressed by: https://review.openstack.org/212166
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/212170
    Merge remote-tracking branch 'origin/feature/qos' into merge-branch

Addressed by: https://review.openstack.org/212429
    Disable qos extension tests until qos plugin is enabled in gate

Addressed by: https://review.openstack.org/212466
    Re-enable QoS API tests

Addressed by: https://review.openstack.org/214249
    Added initial devstack plugin

Addressed by: https://review.openstack.org/215138
    Fix qos api-tests after policy changes

Gerrit topic: https://review.openstack.org/#q,topic:bug/1487598,n,z

Addressed by: https://review.openstack.org/218710
    Merge remote-tracking branch 'origin/master' into merge-branch

Bulk is in. Bugs being tracked now:
  https://bugs.launchpad.net/neutron/+bugs?field.tag=qos

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.