summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSungjoon Park <sungjoon.park@broadcom.corp-partner.google.com>2022-11-22 22:35:33 +0900
committerRoger Liao <rogerliao@google.com>2022-12-13 10:54:38 +0800
commitd3d2f040b005b327db0caf8245dfb48555a1ec98 (patch)
treee80f1801e0fee10093163def89eedf3da186f3a7
parented4d6a1a636e24cc1a20343e12609abdae88f6b4 (diff)
downloadbcm4389-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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/bcmutils.c b/bcmutils.c
index 94ef020..d8ce8cd 100644
--- a/bcmutils.c
+++ b/bcmutils.c
@@ -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;