diff options
author | Richard Sharpe <realrichardsharpe@gmail.com> | 2018-05-13 15:02:12 -0700 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2018-05-14 08:03:38 +0000 |
commit | b10dbb861457736991943fbddb13356ff6eb4c81 (patch) | |
tree | 8875df54e20d05f184f6a1f29c622dce9dac2b5b | |
parent | 57e2e0c10d34c0e4ec52c26b3503362d03eb3700 (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.c | 30 |
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, |