aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Sharpe <realrichardsharpe@gmail.com>2018-05-13 15:02:12 -0700
committerPeter Wu <peter@lekensteyn.nl>2018-05-14 08:03:38 +0000
commitb10dbb861457736991943fbddb13356ff6eb4c81 (patch)
tree8875df54e20d05f184f6a1f29c622dce9dac2b5b
parent57e2e0c10d34c0e4ec52c26b3503362d03eb3700 (diff)
ieee80211: Conform with IEEE802.11-2016 around VHT MCS Set in VHT Capabilities.
There were a few undissected fields in the VHT MCS Set and some of the fields were not being placed under the correct sub tree. Change-Id: I0dc4be1b69d371f59cc74fa06205a3cba2a65c54 Reviewed-on: https://code.wireshark.org/review/27385 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
-rw-r--r--epan/dissectors/packet-ieee80211.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 1c58e3a9c4..9b89aa5827 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -4112,6 +4112,10 @@ static int hf_ieee80211_vht_mcsset_rx_max_mcs_for_6_ss = -1;
static int hf_ieee80211_vht_mcsset_rx_max_mcs_for_7_ss = -1;
static int hf_ieee80211_vht_mcsset_rx_max_mcs_for_8_ss = -1;
+static int hf_ieee80211_vht_mcsset_max_nsts_total = -1;
+static int hf_ieee80211_vht_mcsset_ext_nss_bw_cap = -1;
+static int hf_ieee80211_vht_mcsset_reserved = -1;
+
static int hf_ieee80211_vht_mcsset_rx_highest_long_gi = -1;
static int hf_ieee80211_vht_mcsset_tx_mcs_map = -1;
@@ -13283,7 +13287,7 @@ dissect_vht_mcs_set(proto_tree *tree, tvbuff_t *tvb, int offset)
mcs_tree = proto_item_add_subtree(ti, ett_vht_mcsset_tree);
/* B0 - B15 */
- proto_tree_add_bitmask_with_flags(tree, tvb, offset, hf_ieee80211_vht_mcsset_rx_mcs_map,
+ proto_tree_add_bitmask_with_flags(mcs_tree, tvb, offset, hf_ieee80211_vht_mcsset_rx_mcs_map,
ett_vht_rx_mcsbit_tree, ieee80211_vht_mcsset_rx_max_mcs,
ENC_LITTLE_ENDIAN, BMT_NO_APPEND);
offset += 2;
@@ -13291,18 +13295,24 @@ dissect_vht_mcs_set(proto_tree *tree, tvbuff_t *tvb, int offset)
/* B16 - B28 13 bits*/
proto_tree_add_item(mcs_tree, hf_ieee80211_vht_mcsset_rx_highest_long_gi, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- /* B29 - B31 2 reserved bits*/
+ /* B29 - B31 Max NSTS Total*/
+ proto_tree_add_item(mcs_tree, hf_ieee80211_vht_mcsset_max_nsts_total, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
/* B32 - B47 */
- proto_tree_add_bitmask_with_flags(tree, tvb, offset, hf_ieee80211_vht_mcsset_tx_mcs_map,
+ proto_tree_add_bitmask_with_flags(mcs_tree, tvb, offset, hf_ieee80211_vht_mcsset_tx_mcs_map,
ett_vht_tx_mcsbit_tree, ieee80211_vht_mcsset_tx_max_mcs,
ENC_LITTLE_ENDIAN, BMT_NO_APPEND);
offset += 2;
/* B48 - B60 13 bits */
proto_tree_add_item(mcs_tree, hf_ieee80211_vht_mcsset_tx_highest_long_gi, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- /* B61 - B63 2 reserved bits*/
+
+ /* B61 */
+ proto_tree_add_item(mcs_tree, hf_ieee80211_vht_mcsset_ext_nss_bw_cap, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+
+ /* B62 - B63 2 reserved bits*/
+ proto_tree_add_item(mcs_tree, hf_ieee80211_vht_mcsset_reserved, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
return offset;
@@ -28022,6 +28032,10 @@ proto_register_ieee80211(void)
FT_UINT16, BASE_HEX, VALS(vht_supported_mcs_flag), 0xc000,
NULL, HFILL }},
+ {&hf_ieee80211_vht_mcsset_max_nsts_total,
+ {"MaX NSTS Total", "wlan.vht.mcsset.max_nsts_total",
+ FT_UINT16, BASE_DEC, NULL, 0xe000, NULL, HFILL }},
+
{&hf_ieee80211_vht_mcsset_rx_highest_long_gi,
{"Rx Highest Long GI Data Rate (in Mb/s, 0 = subfield not in use)", "wlan.vht.mcsset.rxhighestlonggirate",
FT_UINT16, BASE_HEX, NULL, 0x1fff,
@@ -28077,6 +28091,14 @@ proto_register_ieee80211(void)
FT_UINT16, BASE_HEX, NULL, 0x1fff,
NULL, HFILL }},
+ {&hf_ieee80211_vht_mcsset_ext_nss_bw_cap,
+ {"Extended NSS BW Capable", "wlan.vht.ncsset.ext_nss_bw_cap",
+ FT_BOOLEAN, 16, TFS(&tfs_capable_not_capable), 0x2000, NULL, HFILL }},
+
+ {&hf_ieee80211_vht_mcsset_reserved,
+ {"Reserved", "wlan.vht.ncsset.reserved",
+ FT_UINT16, BASE_HEX, NULL, 0xc000, NULL, HFILL }},
+
{&hf_ieee80211_vht_op,
{"VHT Operation Info", "wlan.vht.op",
FT_NONE, BASE_NONE, NULL, 0,