[RFE] QoS DSCP marking rule support

Bug #1468353 reported by Victor Howard
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
David Shaughnessy

Bug Description

The QoS API [#qos_api_spec]_ introduces an interface to configure QoS policies to neutron ports. We need to be able to mark outgoing dscp rules to tag traffic.

Changes:

* DB Model for new rule type
* API changes to allow for DSCP API modifications
* Client changes to allow for DSCP values being set for qos_rule list and update
* OVS agent integration to hand down the QoS information to the driver as new ports are created or updates are received.
* Open flow integration within OVS driver to add qos_dscp marking functionality

Dependencies:
* QoS API implementation #[qos_api_spec]_
* QoS RPC and plugin integration
* L2 agent extension for QoS (done in front of SR-IOV / OVS support)

Link to the Blueprint:
https://review.openstack.org/#/c/190285/1

Changed in neutron:
assignee: nobody → Victor Howard (victor-r-howard)
status: New → In Progress
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → James Reeves (james-reeves5546)
Changed in neutron:
assignee: James Reeves (james-reeves5546) → Victor Howard (victor-r-howard)
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → James Reeves (james-reeves5546)
Changed in neutron:
assignee: James Reeves (james-reeves5546) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → James Reeves (james-reeves5546)
tags: added: qos
Changed in neutron:
assignee: James Reeves (james-reeves5546) → Victor Howard (victor-r-howard)
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

To be discussed at the drivers meeting. Seems sensible enough though.

Changed in neutron:
status: In Progress → Triaged
Revision history for this message
Miguel Angel Ajo (mangelajo) wrote :

Thanks @armando. I agree, this is not a big or risky change once the framework is in place.

Changed in neutron:
importance: Undecided → Wishlist
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → Charles Bitter (cbitter78)
status: Triaged → In Progress
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

Something triggered a state change...I can't see any code posted for this, must be this one:

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

Changed in neutron:
status: In Progress → Triaged
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

To be discussed at the next drivers meeting.

Changed in neutron:
status: Triaged → In Progress
Changed in neutron:
assignee: Charles Bitter (cbitter78) → Nate Johnston (nate-johnston)
Changed in neutron:
status: In Progress → Triaged
Changed in neutron:
status: Triaged → In Progress
Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

@Ihar/Ajo: can you comment on this one please?

Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Miguel Angel Ajo (mangelajo)
status: In Progress → Triaged
Changed in neutron:
assignee: Miguel Angel Ajo (mangelajo) → Victor Howard (victor-r-howard)
status: Triaged → In Progress
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → Nate Johnston (nate-johnston)
Changed in neutron:
status: In Progress → New
importance: Wishlist → Undecided
Revision history for this message
Miguel Angel Ajo (mangelajo) wrote :

Hi @armax, I think this is something reasonable to do during the Mitaka cycle, and by the way, I think they were the initial spark to the QoS initiative.

My +1 for this feature.

Revision history for this message
Miguel Angel Ajo (mangelajo) wrote :

Discussed on neutron channel this could be treated as a follow up on QoS, therefore not needing an #rfe.

The only consideration is that this feature will depend on the implementation of this:

https://review.openstack.org/#/c/241154/ (or any similar mechanism)

Which I will be working on.

tags: removed: rfe
Changed in neutron:
importance: Undecided → Medium
milestone: none → mitaka-2
Changed in neutron:
milestone: mitaka-2 → mitaka-1
Revision history for this message
Miguel Angel Ajo (mangelajo) wrote :

@armax, during last QoS meeting, it seemed reasonable to consider this for landing on mitaka-2, since it depends on the rpc callback rolling upgrade support I'm working to make ready by start of mitaka-2 now that we seem to have agreement on how to do it (https://review.openstack.org/#/c/241154/11/doc/source/devref/rpc_callbacks.rst ) .

Changed in neutron:
milestone: mitaka-1 → mitaka-2
Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/253680

Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Nate Johnston (nate-johnston)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by Nate Johnston (<email address hidden>) on branch: master
Review: https://review.openstack.org/253680
Reason: Changes have been subsumed into parent patch per feedback from @sc68cal.

Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Victor Howard (victor-r-howard)
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → Nate Johnston (nate-johnston)
Changed in neutron:
milestone: mitaka-2 → mitaka-3
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron-specs (master)

Change abandoned by Armando Migliaccio (<email address hidden>) on branch: master
Review: https://review.openstack.org/190285
Reason: This review is > 4 weeks without comment and currently blocked by a core reviewer negative score. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and contacting the reviewer to ensure you address their concerns.

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote : Re: QoS DSCP marking rule support

Can this really be an M3 bug fix? This looks in a bad shape

Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → nobody
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

I think it can get in M3, if we merge two blockers (rpc callbacks rolling upgrades and l2-agent-extension-api) quick.

Changed in neutron:
assignee: nobody → Victor Howard (victor-r-howard)
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → Nate Johnston (nate-johnston)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/274873

Changed in neutron:
assignee: Nate Johnston (nate-johnston) → James Reeves (james-reeves5546)
Changed in neutron:
assignee: James Reeves (james-reeves5546) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances)
Changed in neutron:
assignee: Margaret Frances (margaret-frances) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Margaret Frances (margaret-frances)
Changed in neutron:
assignee: Margaret Frances (margaret-frances) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Miguel Angel Ajo (mangelajo)
Changed in neutron:
assignee: Miguel Angel Ajo (mangelajo) → James Reeves (james-reeves5546)
Changed in neutron:
assignee: James Reeves (james-reeves5546) → Miguel Angel Ajo (mangelajo)
Changed in neutron:
assignee: Miguel Angel Ajo (mangelajo) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → John Schwarz (jschwarz)
Changed in neutron:
assignee: John Schwarz (jschwarz) → Victor Howard (victor-r-howard)
Changed in neutron:
assignee: Victor Howard (victor-r-howard) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Miguel Angel Ajo (mangelajo)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by James Reeves (<email address hidden>) on branch: master
Review: https://review.openstack.org/274873
Reason: Squashed into https://review.openstack.org/#/c/251738/

Changed in neutron:
milestone: mitaka-3 → mitaka-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/288392

Changed in neutron:
assignee: Miguel Angel Ajo (mangelajo) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → David Shaughnessy (david-shaughnessy)
Changed in neutron:
milestone: mitaka-rc1 → newton-1
Changed in neutron:
assignee: David Shaughnessy (david-shaughnessy) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances)
Changed in neutron:
assignee: Margaret Frances (margaret-frances) → Ihar Hrachyshka (ihar-hrachyshka)
Changed in neutron:
assignee: Ihar Hrachyshka (ihar-hrachyshka) → Margaret Frances (margaret-frances)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/294301

Changed in neutron:
assignee: Margaret Frances (margaret-frances) → Ihar Hrachyshka (ihar-hrachyshka)
Changed in neutron:
assignee: Ihar Hrachyshka (ihar-hrachyshka) → Nate Johnston (nate-johnston)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/294463

Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by Ihar Hrachyshka (<email address hidden>) on branch: master
Review: https://review.openstack.org/294301

Changed in neutron:
assignee: Margaret Frances (margaret-frances) → Ihar Hrachyshka (ihar-hrachyshka)
assignee: Ihar Hrachyshka (ihar-hrachyshka) → Margaret Frances (margaret-frances)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/251738
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=a9a1943fde253f7da1c10e47baba9e34b4b1401c
Submitter: Jenkins
Branch: master

commit a9a1943fde253f7da1c10e47baba9e34b4b1401c
Author: David Shaughnessy <email address hidden>
Date: Tue Mar 1 18:55:56 2016 +0000

    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 <email address hidden>
    Co-Authored-By: Victor Howard <email address hidden>
    Co-Authored-By: Margaret Frances <email address hidden>
    Co-Authored-By: James Reeves <email address hidden>
    Co-Authored-By: John Schwarz <email address hidden>
    Needed-By: I25ad60c1b9a66e568276a772b8c496987d9f8299
    Needed-By: I881b8f5bc9024c20275bc56062de72a1c70c8321
    Needed-By: I48ead4b459183db795337ab729830a1b3c0022da
    Needed-By: Ib92b172dce48276b90ec75ee5880ddd69040d7c8
    Needed-By: I4eb21495e84feea46880caf3360759263e1e8f95
    Needed-By: I0ab6a1a0d1430c5791fea1d5b54106c6cc93b937
    Partial-Bug: #1468353

    Change-Id: Ic3baefe176df05f049a2e06529c58fd65fe6b419

Changed in neutron:
assignee: Margaret Frances (margaret-frances) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances)
Changed in neutron:
assignee: Margaret Frances (margaret-frances) → Nate Johnston (nate-johnston)
Changed in neutron:
assignee: Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/300501

Changed in neutron:
assignee: Margaret Frances (margaret-frances) → David Shaughnessy (david-shaughnessy)
Haim Daniel (hdaniel)
description: updated
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron-specs (master)

Reviewed: https://review.openstack.org/190285
Committed: https://git.openstack.org/cgit/openstack/neutron-specs/commit/?id=39d7e02b248267fb009db7219db2992cd8f901ad
Submitter: Jenkins
Branch: master

commit 39d7e02b248267fb009db7219db2992cd8f901ad
Author: Vic Howard <email address hidden>
Date: Wed Jun 10 13:54:26 2015 -0400

    Spec for ML2/OVS QoS support with dscp markings

    This is a spec defining QOS support to add DSCP to
    the QOS API and implement.

    blueprint ml2-ovs-qos-with-dscp
    Related-bug: #1468353

    Co-Authored-By: Charles Bitter <email address hidden>
    Co-Authored-By: James Reeves <email address hidden>
    Co-Authored-By: Nate Johnston <email address hidden>
    Co-Authored-By: Margaret Frances <email address hidden>

    Change-Id: I13e8a0352473bfe29a069ff39379ab0ae13cbc99

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

This was an RFE after all.

Changed in neutron:
importance: Medium → Wishlist
tags: added: rfe-approved
summary: - QoS DSCP marking rule support
+ [RFE] QoS DSCP marking rule support
Changed in neutron:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/294463
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b3ca00f7a603d3f1763c7a031baf476b85f790bc
Submitter: Jenkins
Branch: master

commit b3ca00f7a603d3f1763c7a031baf476b85f790bc
Author: Margaret Frances <email address hidden>
Date: Fri Mar 18 04:50:07 2016 -0400

    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 <email address hidden>

    Change-Id: I863f063a0cfbb464cedd00bddc15dd853cbb6389
    Partial-Bug: #1468353

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/288392
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=73546f8503f0d26c90aae9f7c2aa108d710870c8
Submitter: Jenkins
Branch: master

commit 73546f8503f0d26c90aae9f7c2aa108d710870c8
Author: Nate Johnston <email address hidden>
Date: Fri Mar 4 11:17:31 2016 +0100

    QoS DSCP fullstack tests

    This patch introduces fullstack testing for the QoS/DSCP
    Open vSwitch implementation. It depends on the python-neutronclient
    patches, therefore it could not be merged in the main patch.

    Co-Authored-By: Miguel Angel Ajo <email address hidden>
    Change-Id: I0ab6a1a0d1430c5791fea1d5b54106c6cc93b937
    Closes-Bug: #1468353
    Depends-On: I25ad60c1b9a66e568276a772b8c496987d9f8299

Changed in neutron:
status: Fix Committed → Fix Released
Changed in neutron:
milestone: newton-1 → newton-2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/300501
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=1bb95a4554a33eca1705887c2fa3fd19a6faf936
Submitter: Jenkins
Branch: master

commit 1bb95a4554a33eca1705887c2fa3fd19a6faf936
Author: David Shaughnessy <email address hidden>
Date: Mon Mar 14 16:27:54 2016 +0000

    Add object versioning to QoS DSCP.

    - Changes RULE_TYPE_DSCP_MARK to RULE_TYPE_DSCP_MARKING to conform
      with the rules name.
    - Added object versioning to qos related objects.
     - qos/rule: Throws a QosRuleVersionUnavailable exception when
       the QosDscpMarkingRule version is < '1.1'.
    - removed test object version incrementation TODO from test_policy.py
     - Object versioning can not be used to increment the object version.

    Change-Id: I4f10ef3c1cbaa2a868de2b8e3abc4c39eb1f44c7
    Partial-Bug: #1468353

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/neutron 9.0.0.0b2

This issue was fixed in the openstack/neutron 9.0.0.0b2 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.