QoS (DSCP Mark IDs) – No correlation between the implemented functionality and design

Bug #1781915 reported by Arkady Shtempler on 2018-07-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
High
Nate Johnston

Bug Description

### General Description ###
There is a “Proposed Change” regarding “QoS DSCP marking support” as it documented in:
http://specs.openstack.org/openstack/neutron-specs/specs/newton/ml2-qos-with-dscp.html

We propose an update to the QoS API and OVS driver to support DSCP marks. Valid DSCP mark values can be between 0 and 56, except 2-6, 42, 44, and 50-54.

### Test scenario ###
1) ssh to your Undercloud host
2) switch to “stack” user with: “su – stack“
3) Source overcloudrc file with: “source overcloudrc”
4) Upload the attached “Check_DSCP_Options.py” Python script (inside the attached *.zip) to your home directory (stack home) and run it with “python Check_DSCP_Options.py” command while monitoring “server.log” on your controller node.

### Expected Result ###
Valid DSCP mark values can be between 0 and 56, except 2-6, 42, 44, and 50-54.

### Actual Result ###
1) Failed DSCP mark IDs:
[1, 2, 3, 4, 5, 6, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 54, 55]

2) As you can see we do have supported and not DSCP Mark IDs, but it has different behavior than expected.

3) You can find the controller “server.log” attached (inside attached *.zip) and you can see there messages like this one:

2018-07-02 15:04:58.535 28 INFO neutron.api.v2.resource [req-74bb7060-b9b2-4542-bd8a-d805a8ff079c b4332e1592ab480f96fc87e5af797895 f3f03848a45746c7bcbe95b625d7e1d8 - default default] update failed (client error): Invalid input for dscp_mark. Reason: 55 is not in valid_values.

for all mentioned IDs:

[ashtempl@ashtempl ~]$ grep -i 'is not in' server.log | cut -d ':' -f5
 1 is not in valid_values.
 2 is not in valid_values.
 3 is not in valid_values.
 4 is not in valid_values.
 5 is not in valid_values.
 6 is not in valid_values.
 7 is not in valid_values.
 9 is not in valid_values.
 11 is not in valid_values
 13 is not in valid_values.
 15 is not in valid_values.
 17 is not in valid_values.
 19 is not in valid_values.
 21 is not in valid_values.
 23 is not in valid_values.
 25 is not in valid_values.
 27 is not in valid_values.
 29 is not in valid_values.
 31 is not in valid_values.
 33 is not in valid_values.
 35 is not in valid_values.
 37 is not in valid_values.
 39 is not in valid_values.
 41 is not in valid_values.
 42 is not in valid_values.
 43 is not in valid_values.
 44 is not in valid_values.
 45 is not in valid_values.
 47 is not in valid_values.
 49 is not in valid_values.
 50 is not in valid_values.
 51 is not in valid_values.
 52 is not in valid_values.
 53 is not in valid_values.
 54 is not in valid_values.
 55 is not in valid_values.

Arkady Shtempler (ashtempl) wrote :
tags: added: qos

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

Changed in neutron:
assignee: nobody → Nate Johnston (nate-johnston)
status: New → In Progress
Changed in neutron:
importance: Undecided → Critical
importance: Critical → High

seems like only even number with some exception are allowed,
would updating docs be good enough ?

tags: added: doc
Nate Johnston (nate-johnston) wrote :

@manjeets yes I believe that an update to the documentation is sufficient. The valid DSCP marks were not spelled out with sufficient specificity in the original spec, and have not since been added to the Networking Guide. I believe the changes I have suggested address those deficiencies.

Thanks!

Reviewed: https://review.openstack.org/582974
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b935f9d9a7c7bc872b49d66ce6ee586283ce69c0
Submitter: Zuul
Branch: master

commit b935f9d9a7c7bc872b49d66ce6ee586283ce69c0
Author: Nate Johnston <email address hidden>
Date: Mon Jul 16 11:26:20 2018 -0400

    Add list of all working DSCP marks

    There is no place in the documentation that explicitly lists the valid
    DSCP marks, except for an incomplete hint in the DSCP spec in
    neutron-specs. This provides an explicit list.

    Change-Id: Ic350c88e59c33d98b54086707c9add05cf137dc2
    Closes-Bug: #1781915

Changed in neutron:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/582979
Committed: https://git.openstack.org/cgit/openstack/neutron-specs/commit/?id=a728b8a64280d7e673169cdb26f95f5f3df38ec6
Submitter: Zuul
Branch: master

commit a728b8a64280d7e673169cdb26f95f5f3df38ec6
Author: Nate Johnston <email address hidden>
Date: Mon Jul 16 11:03:31 2018 -0400

    Add list of all working DSCP marks

    The QoS DSCP spec is not terribly specific about what DSCP marks are
    valid. This change makes it explicit.

    This spec is quite old. But since there has been no other place in the
    documentation that explicitly lists what the valid DSCP marks are,
    updating this in case people use it as documentation.

    Change-Id: Ieec3e238b8d404e46c49b5a1a0fdaf695fff4252
    Related-Bug: #1781915

tags: added: neutron-proactive-backport-potential

This issue was fixed in the openstack/neutron 13.0.0.0b3 development milestone.

Reviewed: https://review.openstack.org/584311
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=55d90d99125451a27d0b8241407fc50bb8ba99bf
Submitter: Zuul
Branch: stable/queens

commit 55d90d99125451a27d0b8241407fc50bb8ba99bf
Author: Nate Johnston <email address hidden>
Date: Mon Jul 16 11:26:20 2018 -0400

    Add list of all working DSCP marks

    There is no place in the documentation that explicitly lists the valid
    DSCP marks, except for an incomplete hint in the DSCP spec in
    neutron-specs. This provides an explicit list.

    Change-Id: Ic350c88e59c33d98b54086707c9add05cf137dc2
    Closes-Bug: #1781915
    (cherry picked from commit b935f9d9a7c7bc872b49d66ce6ee586283ce69c0)

tags: added: in-stable-queens

Reviewed: https://review.openstack.org/584312
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=ed4a70c9eaa347c4775ab8cd9f336ca1579b9336
Submitter: Zuul
Branch: stable/pike

commit ed4a70c9eaa347c4775ab8cd9f336ca1579b9336
Author: Nate Johnston <email address hidden>
Date: Mon Jul 16 11:26:20 2018 -0400

    Add list of all working DSCP marks

    There is no place in the documentation that explicitly lists the valid
    DSCP marks, except for an incomplete hint in the DSCP spec in
    neutron-specs. This provides an explicit list.

    Change-Id: Ic350c88e59c33d98b54086707c9add05cf137dc2
    Closes-Bug: #1781915
    (cherry picked from commit b935f9d9a7c7bc872b49d66ce6ee586283ce69c0)

tags: added: in-stable-pike

This issue was fixed in the openstack/neutron 12.0.4 release.

This issue was fixed in the openstack/neutron 11.0.6 release.

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

Other bug subscribers