ieee80211: More correctly handle EOSP vs bit-4 in QoS frames.

After feedback from the WFA and checking tables 9-3 and 9-6 in
IEEE802.11-2016 and testing this is more correct.

Change-Id: I26e65046610d887b2bcdac6caa8b4665eb2f6e20
Reviewed-on: https://code.wireshark.org/review/36018
Petri-Dish: Richard Sharpe <realrichardsharpe@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
This commit is contained in:
Richard Sharpe 2020-02-03 09:32:45 -05:00 committed by Alexis La Goutte
parent d5d8a3419e
commit fcc90461fb
1 changed files with 8 additions and 3 deletions

View File

@ -24845,10 +24845,15 @@ dissect_ieee80211_common(tvbuff_t *tvb, packet_info *pinfo,
/* mesh frame */
proto_tree_add_item(qos_tree, hf_ieee80211_qos_eosp, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
} else {
if (flags & FLAG_TO_DS) {
proto_tree_add_item(qos_tree, hf_ieee80211_qos_bit4, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
} else {
/*
* Table 9-3 from IEEE802.11-2016 tells us that FROM DS means from
* an AP. And Table 9-6 tells us that we should treat bit 4 as
* EOSP if from an AP otherwise as simply bit 4.
*/
if (flags & FLAG_FROM_DS) {
proto_tree_add_item(qos_tree, hf_ieee80211_qos_eosp, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
} else {
proto_tree_add_item(qos_tree, hf_ieee80211_qos_bit4, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
}
}