Don't use ENC_NA for integer fields longer than 1 byte; use
ENC_BIG_ENDIAN or ENC_LITTLE_ENDIAN. Treat the AP PS Buffer State subfield of the QoS field the same way we treat other subfields in the second byte of the QoS field - show it as the upper 8 bits of the (shown as big-endian) QoS field. Fix a bitmap while we're at it. Show the channel map as an FT_NONE - it's a structure with two bytes. svn path=/trunk/; revision=48924
This commit is contained in:
parent
171fe6de6c
commit
72c5985ec6
1 changed files with 11 additions and 11 deletions
|
@ -9655,7 +9655,7 @@ dissect_frame_control(proto_tree *tree, tvbuff_t *tvb, gboolean wlan_broken_fc,
|
||||||
|
|
||||||
proto_tree_add_uint(tree, hf_ieee80211_fc_frame_type_subtype, tvb, offset, 1, frame_type_subtype);
|
proto_tree_add_uint(tree, hf_ieee80211_fc_frame_type_subtype, tvb, offset, 1, frame_type_subtype);
|
||||||
|
|
||||||
fc_item = proto_tree_add_item(tree, hf_ieee80211_fc_field, tvb, offset, 2, ENC_NA);
|
fc_item = proto_tree_add_item(tree, hf_ieee80211_fc_field, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||||
|
|
||||||
fc_tree = proto_item_add_subtree(fc_item, ett_fc_tree);
|
fc_tree = proto_item_add_subtree(fc_item, ett_fc_tree);
|
||||||
|
|
||||||
|
@ -12954,14 +12954,14 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo,
|
||||||
proto_item *qos_ps_buf_state_fields;
|
proto_item *qos_ps_buf_state_fields;
|
||||||
proto_tree *qos_ps_buf_state_tree;
|
proto_tree *qos_ps_buf_state_tree;
|
||||||
|
|
||||||
qos_ps_buf_state_fields = proto_tree_add_item(qos_tree, hf_ieee80211_qos_ps_buf_state, tvb, qosoff, 2, ENC_NA);
|
qos_ps_buf_state_fields = proto_tree_add_item(qos_tree, hf_ieee80211_qos_ps_buf_state, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
|
||||||
qos_ps_buf_state_tree = proto_item_add_subtree (qos_ps_buf_state_fields, ett_qos_ps_buf_state);
|
qos_ps_buf_state_tree = proto_item_add_subtree (qos_ps_buf_state_fields, ett_qos_ps_buf_state);
|
||||||
|
|
||||||
proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_buf_state_indicated, tvb, qosoff + 1, 1, ENC_NA);
|
proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_buf_state_indicated, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
|
||||||
|
|
||||||
if (QOS_PS_BUF_STATE_INDICATED(qos_field_content)) {
|
if (QOS_PS_BUF_STATE_INDICATED(qos_field_content)) {
|
||||||
proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_highest_pri_buf_ac, tvb, qosoff + 1, 1, ENC_NA);
|
proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_highest_pri_buf_ac, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
|
||||||
qos_ti = proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_qap_buf_load, tvb, qosoff + 1, 1, ENC_NA);
|
qos_ti = proto_tree_add_item(qos_ps_buf_state_tree, hf_ieee80211_qos_qap_buf_load, tvb, qosoff, 2, ENC_LITTLE_ENDIAN);
|
||||||
switch (QOS_PS_QAP_BUF_LOAD(qos_field_content)) {
|
switch (QOS_PS_QAP_BUF_LOAD(qos_field_content)) {
|
||||||
|
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -13499,7 +13499,7 @@ dissect_ieee80211_common (tvbuff_t *tvb, packet_info *pinfo,
|
||||||
|
|
||||||
proto_tree_add_item(subframe_tree, hf_ieee80211_addr_da, next_tvb, msdu_offset, 6, ENC_NA);
|
proto_tree_add_item(subframe_tree, hf_ieee80211_addr_da, next_tvb, msdu_offset, 6, ENC_NA);
|
||||||
proto_tree_add_item(subframe_tree, hf_ieee80211_addr_sa, next_tvb, msdu_offset+6, 6, ENC_NA);
|
proto_tree_add_item(subframe_tree, hf_ieee80211_addr_sa, next_tvb, msdu_offset+6, 6, ENC_NA);
|
||||||
proto_tree_add_item(subframe_tree, hf_ieee80211_amsdu_length, next_tvb, msdu_offset+12, 2, ENC_NA);
|
proto_tree_add_item(subframe_tree, hf_ieee80211_amsdu_length, next_tvb, msdu_offset+12, 2, ENC_BIG_ENDIAN);
|
||||||
|
|
||||||
msdu_offset += 14;
|
msdu_offset += 14;
|
||||||
msdu_tvb = tvb_new_subset(next_tvb, msdu_offset, msdu_length, -1);
|
msdu_tvb = tvb_new_subset(next_tvb, msdu_offset, msdu_length, -1);
|
||||||
|
@ -14117,22 +14117,22 @@ proto_register_ieee80211 (void)
|
||||||
|
|
||||||
{&hf_ieee80211_qos_ps_buf_state,
|
{&hf_ieee80211_qos_ps_buf_state,
|
||||||
{"QAP PS Buffer State", "wlan.qos.ps_buf_state",
|
{"QAP PS Buffer State", "wlan.qos.ps_buf_state",
|
||||||
FT_UINT16, BASE_HEX, NULL, 0xFF000,
|
FT_UINT16, BASE_HEX, NULL, 0xFF00,
|
||||||
NULL, HFILL }},
|
NULL, HFILL }},
|
||||||
|
|
||||||
{&hf_ieee80211_qos_buf_state_indicated,
|
{&hf_ieee80211_qos_buf_state_indicated,
|
||||||
{"Buffer State Indicated", "wlan.qos.buf_state_indicated",
|
{"Buffer State Indicated", "wlan.qos.buf_state_indicated",
|
||||||
FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x02,
|
FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0200,
|
||||||
NULL, HFILL }},
|
NULL, HFILL }},
|
||||||
|
|
||||||
{&hf_ieee80211_qos_highest_pri_buf_ac,
|
{&hf_ieee80211_qos_highest_pri_buf_ac,
|
||||||
{"Highest-Priority Buffered AC", "wlan.qos.highest_pri_buf_ac",
|
{"Highest-Priority Buffered AC", "wlan.qos.highest_pri_buf_ac",
|
||||||
FT_UINT8, BASE_DEC, VALS(wme_acs), 0x0C,
|
FT_UINT16, BASE_DEC, VALS(wme_acs), 0x0C00,
|
||||||
NULL, HFILL }},
|
NULL, HFILL }},
|
||||||
|
|
||||||
{&hf_ieee80211_qos_qap_buf_load,
|
{&hf_ieee80211_qos_qap_buf_load,
|
||||||
{"QAP Buffered Load", "wlan.qos.qap_buf_load",
|
{"QAP Buffered Load", "wlan.qos.qap_buf_load",
|
||||||
FT_UINT8, BASE_DEC, NULL, 0xF0,
|
FT_UINT16, BASE_DEC, NULL, 0xF000,
|
||||||
NULL, HFILL }},
|
NULL, HFILL }},
|
||||||
|
|
||||||
{&hf_ieee80211_qos_txop_dur_req,
|
{&hf_ieee80211_qos_txop_dur_req,
|
||||||
|
@ -17669,7 +17669,7 @@ proto_register_ieee80211 (void)
|
||||||
|
|
||||||
{&hf_ieee80211_tag_dfs_channel_map,
|
{&hf_ieee80211_tag_dfs_channel_map,
|
||||||
{"Channel Map", "wlan_mgt.dfs.channel_map",
|
{"Channel Map", "wlan_mgt.dfs.channel_map",
|
||||||
FT_UINT16, BASE_HEX, NULL, 0,
|
FT_NONE, BASE_NONE, NULL, 0,
|
||||||
NULL, HFILL }},
|
NULL, HFILL }},
|
||||||
|
|
||||||
{&hf_ieee80211_tag_dfs_channel_number,
|
{&hf_ieee80211_tag_dfs_channel_number,
|
||||||
|
|
Loading…
Reference in a new issue