aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorRichard Sharpe <realrichardsharpe@gmail.com>2018-04-02 18:42:07 -0700
committerRichard Sharpe <realrichardsharpe@gmail.com>2018-04-03 02:36:09 +0000
commit46cf05397d5a624fbf56e6787bfc34ba7f75a920 (patch)
tree7ce873051d321c5ea09f936bf46e2fd1d764b3c2 /epan/dissectors
parent9d87f607ee2ecefaff71f2ab3f2dc3d2dc185399 (diff)
radiotap: Correct the handling of MU Preamble Puncturing when unknown.
Change-Id: I69f70686f8f3c3416d5d46020a84a8b070f17b36 Reviewed-on: https://code.wireshark.org/review/26723 Petri-Dish: Richard Sharpe <realrichardsharpe@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-ieee80211-radiotap.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ieee80211-radiotap.c b/epan/dissectors/packet-ieee80211-radiotap.c
index f7240daff9..4745e0bf1c 100644
--- a/epan/dissectors/packet-ieee80211-radiotap.c
+++ b/epan/dissectors/packet-ieee80211-radiotap.c
@@ -306,6 +306,7 @@ static int hf_radiotap_he_mu_bw_from_bw_in_sig_a_known = -1;
static int hf_radiotap_he_mu_sig_b_compression_from_sig_a = -1;
static int hf_radiotap_he_mu_sig_b_syms_mu_mimo_users = -1;
static int hf_radiotap_he_mu_preamble_puncturing = -1;
+static int hf_radiotap_he_mu_preamble_puncturing_unknown = -1;
static int hf_radiotap_he_mu_preamble_puncturing_known = -1;
static int hf_radiotap_he_mu_reserved_f2_b11_b15 = -1;
static int hf_radiotap_he_mu_info_flags_2 = -1;
@@ -1202,8 +1203,9 @@ dissect_radiotap_he_mu_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
gboolean mu_ru_2_known = FALSE;
gboolean mu_ru_3_known = FALSE;
gboolean mu_symbol_cnt_or_user_cnt_known = FALSE;
- guint16 flags2;
+ gboolean mu_preamble_puncturing_known = FALSE;
gboolean bw_from_bw_sig_a_known = FALSE;
+ guint16 flags2;
if (flags1 & IEEE80211_RADIOTAP_HE_MU_SIG_B_MCS_KNOWN)
sig_b_mcs_known = TRUE;
@@ -1236,11 +1238,15 @@ dissect_radiotap_he_mu_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t
flags2 = tvb_get_letohs(tvb, offset);
if (flags2 & IEEE80211_RADIOTAP_HE_MU_BW_FROM_BW_IN_SIG_A_KNOWN)
bw_from_bw_sig_a_known = TRUE;
+ if (flags2 & IEEE80211_RADIOTAP_HE_MU_PREAMBLE_PUNCTURING_KNOWN)
+ mu_preamble_puncturing_known = TRUE;
if (!bw_from_bw_sig_a_known)
flags2_headers[0] = &hf_radiotap_he_mu_bw_from_bw_in_sig_a_unknown;
if (!mu_symbol_cnt_or_user_cnt_known)
flags2_headers[3] = &hf_radiotap_he_mu_sig_b_syms_mu_mimo_users_unknown;
+ if (!mu_preamble_puncturing_known)
+ flags2_headers[4] = &hf_radiotap_he_mu_preamble_puncturing_unknown;
proto_tree_add_bitmask(he_mu_info_tree, tvb, offset,
hf_radiotap_he_mu_info_flags_2, ett_radiotap_he_mu_info_flags_2,
@@ -4065,6 +4071,12 @@ void proto_register_radiotap(void)
FT_UINT16, BASE_HEX, NULL,
IEEE80211_RADIOTAP_HE_MU_PREAMBLE_PUNCTURING_MASK, NULL, HFILL}},
+ {&hf_radiotap_he_mu_preamble_puncturing_unknown,
+ {"preamble puncturing from Bandwidth field in HE-SIG-A unknown",
+ "radiotap.he_mu.preamble_puncturing",
+ FT_UINT16, BASE_HEX, NULL,
+ IEEE80211_RADIOTAP_HE_MU_PREAMBLE_PUNCTURING_MASK, NULL, HFILL}},
+
{&hf_radiotap_he_mu_preamble_puncturing_known,
{"preamble puncturing from Bandwidth field in HE-SIG-A known",
"radiotap.he_mu.preamble_puncturing_known",