diff options
author | Sungjoon Park <sungjoon.park@broadcom.corp-partner.google.com> | 2022-11-22 22:35:33 +0900 |
---|---|---|
committer | Roger Liao <rogerliao@google.com> | 2022-12-13 10:54:38 +0800 |
commit | d3d2f040b005b327db0caf8245dfb48555a1ec98 (patch) | |
tree | e80f1801e0fee10093163def89eedf3da186f3a7 | |
parent | ed4d6a1a636e24cc1a20343e12609abdae88f6b4 (diff) | |
download | bcm4389-d3d2f040b005b327db0caf8245dfb48555a1ec98.tar.gz |
bcmdhd: Use default priority(PRIO_8021D_BE) when it is unknown for a DSCP
The current issue is that the dhd driver uses the class selector 3 bits as the user priority(UP) if it is unknown for a given DSCP.
Please see section 3.2.1 in QoS Management Specification:
https://drive.google.com/file/d/1xTaL0MigMSFrFXqMtKF21RGPFQYytDBQ/view?usp=sharing
The QoS Mgmt spec suggests UP as 0 whenever it is unknown for a DSCP.
Bug: 260069269
Test: SVT Internal test PASSED.
Change-Id: I3cc64ebf5fcc193dcc90e72d8180e5e7e75c3c6e
Signed-off-by: Sungjoon Park <sungjoon.park@broadcom.corp-partner.google.com>
-rw-r--r-- | bcmutils.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1190,9 +1190,11 @@ dscp2up(uint8 *up_table, uint8 dscp) user_priority = up_table[dscp]; } - /* 255 is unused value so return up from dscp */ - if (user_priority == 255) { - user_priority = dscp >> (IPV4_TOS_PREC_SHIFT - IPV4_TOS_DSCP_SHIFT); + if (user_priority == 255) { /* unknown user priority */ + /* If the user_priority from the QoS Map table is unknown(i.e., 255), then + * set the default user priority as PRIO_8021D_BE(0); Reference RFC 8325. + */ + user_priority = PRIO_8021D_BE; /* default priority */ } return user_priority; |