Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1601455

Summary: QoS (DSCP Mark IDs) – No correlation between the implemented functionality and feature’s design
Product: Red Hat OpenStack Reporter: Arkady Shtempler <ashtempl>
Component: openstack-neutronAssignee: Nate Johnston <njohnston>
Status: CLOSED UPSTREAM QA Contact: Toni Freger <tfreger>
Severity: high Docs Contact:
Priority: high    
Version: 13.0 (Queens)CC: amuller, chrisw, jamsmith, nyechiel, srevivo
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: 13.0 (Queens)   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-08-10 15:10:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Test script + server.log none

Description Arkady Shtempler 2018-07-16 12:27:15 UTC
Created attachment 1459152 [details]
Test script + server.log

### 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.

Comment 4 Nate Johnston 2018-07-16 15:38:16 UTC
It looks like this is not explicitly documented in the Networking Guide, so I created a change [1] to add an explicit list of valid options there.  I also created a change [2] to add the explicit list to the spec you mentioned; even though it dates to the Newton cycle, in case anyone is using it as documentation it is probably good to cover if possible.

[1] https://review.openstack.org/582974
[2] https://review.openstack.org/582979

Comment 5 Nate Johnston 2018-08-10 15:10:52 UTC
All pending changes to upstream documentation have merged; there were no downstream documentation references to fix.