diff options
author | hhorace <hhoracehsu@gmail.com> | 2024-08-07 10:22:05 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2024-08-27 10:28:54 +0200 |
commit | a68b22e2905b04f376e2fa116be5e48b948f81c8 (patch) | |
tree | 18c43f54ae75d710d1c07664ae30b3f6eb806bbe /net/wireless/util.c | |
parent | wifi: mac80211: Add non-atomic station iterator (diff) | |
download | linux-a68b22e2905b04f376e2fa116be5e48b948f81c8.tar.xz linux-a68b22e2905b04f376e2fa116be5e48b948f81c8.zip |
wifi: cfg80211: fix bug of mapping AF3x to incorrect User Priority
According to RFC8325 4.3, Multimedia Streaming: AF31(011010, 26),
AF32(011100, 28), AF33(011110, 30) maps to User Priority = 4
and AC_VI (Video).
However, the original code remain the default three Most Significant
Bits (MSBs) of the DSCP, which makes AF3x map to User Priority = 3
and AC_BE (Best Effort).
Fixes: 6fdb8b8781d5 ("wifi: cfg80211: Update the default DSCP-to-UP mapping")
Signed-off-by: hhorace <hhoracehsu@gmail.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20240807082205.1369-1-hhoracehsu@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r-- | net/wireless/util.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index 9a7c3adc8a3b..edeeb056fe4d 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -998,10 +998,10 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb, * Diffserv Service Classes no update is needed: * - Standard: DF * - Low Priority Data: CS1 - * - Multimedia Streaming: AF31, AF32, AF33 * - Multimedia Conferencing: AF41, AF42, AF43 * - Network Control Traffic: CS7 * - Real-Time Interactive: CS4 + * - Signaling: CS5 */ switch (dscp >> 2) { case 10: @@ -1026,9 +1026,11 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb, /* Broadcasting video: CS3 */ ret = 4; break; - case 40: - /* Signaling: CS5 */ - ret = 5; + case 26: + case 28: + case 30: + /* Multimedia Streaming: AF31, AF32, AF33 */ + ret = 4; break; case 44: /* Voice Admit: VA */ |