diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-03-04 17:40:32 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-03-04 17:40:32 +0000 |
commit | 9a7ad380af71b80f1a1bbe8acd0b75194fcb7324 (patch) | |
tree | 2b55ace27e4a761ed2c1d4766b7c18ad16b3fc37 /epan/dissectors | |
parent | f7be37064353e1c03ff9a6b486f710e25d0bb66f (diff) |
From Alexis La Goutte:
Enhance tag fh_hopping_.., tclas, tspec, challenge_text...
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5660
svn path=/trunk/; revision=36141
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 462 |
1 files changed, 306 insertions, 156 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c index 7041e049e0..088393328c 100644 --- a/epan/dissectors/packet-ieee80211.c +++ b/epan/dissectors/packet-ieee80211.c @@ -1447,6 +1447,14 @@ static int hf_ieee80211_tag_country_info_rrc_rc = -1; static int hf_ieee80211_tag_country_info_rrc_cc = -1; static int hf_ieee80211_tag_fh_hopping_parameter_prime_radix = -1; static int hf_ieee80211_tag_fh_hopping_parameter_nb_channels = -1; +static int hf_ieee80211_tag_fh_hopping_table_flag = -1; +static int hf_ieee80211_tag_fh_hopping_table_number_of_sets = -1; +static int hf_ieee80211_tag_fh_hopping_table_modulus = -1; +static int hf_ieee80211_tag_fh_hopping_table_offset = -1; +static int hf_ieee80211_tag_fh_hopping_random_table = -1; +static int hf_ieee80211_tag_request = -1; +static int hf_ieee80211_tag_challenge_text = -1; + static int hf_ieee80211_wep_iv = -1; static int hf_ieee80211_wep_iv_weak = -1; static int hf_ieee80211_tkip_extiv = -1; @@ -1836,9 +1844,6 @@ static int hf_ieee80211_tspec_min_phy = -1; static int hf_ieee80211_tspec_surplus = -1; static int hf_ieee80211_tspec_medium = -1; static int hf_ieee80211_ts_delay = -1; -static int hf_ieee80211_class_type = -1; -static int hf_ieee80211_class_mask = -1; -static int hf_ieee80211_ether_type = -1; static int hf_ieee80211_tclass_process = -1; static int hf_ieee80211_sched_info = -1; static int hf_ieee80211_sched_info_agg = -1; @@ -1848,17 +1853,23 @@ static int hf_ieee80211_sched_srv_start = -1; static int hf_ieee80211_sched_srv_int = -1; static int hf_ieee80211_sched_spec_int = -1; static int hf_ieee80211_action = -1; -static int hf_ieee80211_cf_version = -1; -static int hf_ieee80211_cf_ipv4_src = -1; -static int hf_ieee80211_cf_ipv4_dst = -1; -static int hf_ieee80211_cf_src_port = -1; -static int hf_ieee80211_cf_dst_port = -1; -static int hf_ieee80211_cf_dscp = -1; -static int hf_ieee80211_cf_protocol = -1; -static int hf_ieee80211_cf_ipv6_src = -1; -static int hf_ieee80211_cf_ipv6_dst = -1; -static int hf_ieee80211_cf_flow = -1; -static int hf_ieee80211_cf_tag_type = -1; +static int hf_ieee80211_tclas_up = -1; +static int hf_ieee80211_tclas_class_type = -1; +static int hf_ieee80211_tclas_class_mask = -1; +static int hf_ieee80211_tclas_src_mac_addr = -1; +static int hf_ieee80211_tclas_dst_mac_addr = -1; +static int hf_ieee80211_tclas_ether_type = -1; +static int hf_ieee80211_tclas_version = -1; +static int hf_ieee80211_tclas_ipv4_src = -1; +static int hf_ieee80211_tclas_ipv4_dst = -1; +static int hf_ieee80211_tclas_src_port = -1; +static int hf_ieee80211_tclas_dst_port = -1; +static int hf_ieee80211_tclas_dscp = -1; +static int hf_ieee80211_tclas_protocol = -1; +static int hf_ieee80211_tclas_ipv6_src = -1; +static int hf_ieee80211_tclas_ipv6_dst = -1; +static int hf_ieee80211_tclas_flow = -1; +static int hf_ieee80211_tclas_tag_type = -1; static int hf_ieee80211_aruba = -1; static int hf_ieee80211_aruba_hb_seq = -1; @@ -6147,13 +6158,39 @@ add_tagged_field(packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int off expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag length %u too short, must be >= 4", tag_len); break; } - /* TODO */ + offset += 2; + + proto_tree_add_item(tree, hf_ieee80211_tag_fh_hopping_table_flag, tvb, offset, 1, FALSE); + offset += 1; + + proto_tree_add_item(tree, hf_ieee80211_tag_fh_hopping_table_number_of_sets, tvb, offset, 1, FALSE); + offset += 1; + + proto_tree_add_item(tree, hf_ieee80211_tag_fh_hopping_table_modulus, tvb, offset, 1, FALSE); + offset += 1; + + proto_tree_add_item(tree, hf_ieee80211_tag_fh_hopping_table_offset, tvb, offset, 1, FALSE); + offset += 1; + + while(offset <= tag_end ) + { + proto_tree_add_item(tree, hf_ieee80211_tag_fh_hopping_random_table, tvb, offset, 2, FALSE); + offset += 2; + } + break; + + case TAG_REQUEST: /* 7.3.2.12 Request information element (10) */ + while(offset <= tag_end ) + { + proto_tree_add_item(tree, hf_ieee80211_tag_request, tvb, offset, 1, FALSE); + offset += 1; + } break; case TAG_QBSS_LOAD: /* 7.3.2.28 BSS Load element (11) */ if (tag_len < 4 || tag_len >5) { - expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Wrong QBSS Tag Length %u", tag_len); + expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag Length %u wrong, must be = 4 or 5", tag_len); break; } @@ -6181,103 +6218,135 @@ add_tagged_field(packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int off } break; - case TAG_TSPEC: + case TAG_TSPEC: /* 7.3.2.30 TSPEC element (13) */ if (tag_len != 55) { - proto_tree_add_text (tree, tvb, offset + 2, tag_len, - "TSPEC tag length %u != 55", tag_len); + expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag Length %u wrong, must be = 55", tag_len); break; } - add_fixed_field(tree, tvb, offset + 2, FIELD_QOS_TS_INFO); - proto_tree_add_item(tree, hf_ieee80211_tspec_nor_msdu, tvb, offset + 5, 2, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_max_msdu, tvb, offset + 7, 2, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_min_srv, tvb, offset + 9, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_max_srv, tvb, offset + 13, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_inact_int, tvb, offset + 17, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_susp_int, tvb, offset + 21, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_srv_start, tvb, offset + 25, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_min_data, tvb, offset + 29, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_mean_data, tvb, offset + 33, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_peak_data, tvb, offset + 37, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_burst_size, tvb, offset + 41, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_delay_bound, tvb, offset + 45, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_min_phy, tvb, offset + 49, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_surplus, tvb, offset + 53, 2, TRUE); - proto_tree_add_item(tree, hf_ieee80211_tspec_medium, tvb, offset + 55, 2, TRUE); - break; + offset += 2; + + add_fixed_field(tree, tvb, offset, FIELD_QOS_TS_INFO); + offset += 3; + + proto_tree_add_item(tree, hf_ieee80211_tspec_nor_msdu, tvb, offset, 2, TRUE); + offset += 2; + + proto_tree_add_item(tree, hf_ieee80211_tspec_max_msdu, tvb, offset, 2, TRUE); + offset += 2; + + proto_tree_add_item(tree, hf_ieee80211_tspec_min_srv, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_max_srv, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_inact_int, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_susp_int, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_srv_start, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_min_data, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_mean_data, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_peak_data, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_burst_size, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_delay_bound, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_min_phy, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_tspec_surplus, tvb, offset, 2, TRUE); + offset += 2; + + proto_tree_add_item(tree, hf_ieee80211_tspec_medium, tvb, offset, 2, TRUE); + offset += 2; - case TAG_TS_DELAY: - if (tag_len != 4) - { - proto_tree_add_text (tree, tvb, offset + 2, tag_len, - "TS_DELAY tag length %u != 4", tag_len); - break; - } - proto_tree_add_item(tree, hf_ieee80211_ts_delay, tvb, offset + 2, 4, TRUE); break; - case TAG_TCLAS: + case TAG_TCLAS: /* 7.3.2.31 TCLAS element (14) */ if (tag_len < 6) { - proto_tree_add_text (tree, tvb, offset + 2, tag_len, - "TCLAS element is too small %u", tag_len); + expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag length %u too short, must be >= 6", tag_len); break; } { guint8 type; guint8 version; - type = tvb_get_guint8(tvb, offset + 2); - proto_tree_add_item(tree, hf_ieee80211_tsinfo_up, tvb, offset + 2, 1, TRUE); - proto_tree_add_item(tree, hf_ieee80211_class_type, tvb, offset + 3, 1, TRUE); - proto_tree_add_item(tree, hf_ieee80211_class_mask, tvb, offset + 4, 1, TRUE); + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tclas_up, tvb, offset, 1, TRUE); + type = tvb_get_guint8(tvb, offset); + offset += 1; + + proto_tree_add_item(tree, hf_ieee80211_tclas_class_type, tvb, offset, 1, TRUE); + offset += 1; + + proto_tree_add_item(tree, hf_ieee80211_tclas_class_mask, tvb, offset, 1, TRUE); + offset += 1; + switch (type) { case 0: - proto_tree_add_item(tree, hf_ieee80211_ff_src_mac_addr, tvb, offset + 5, - 6, TRUE); - proto_tree_add_item(tree, hf_ieee80211_ff_dst_mac_addr, tvb, offset + 11, - 6, TRUE); - proto_tree_add_item(tree, hf_ieee80211_ether_type, tvb, offset + 17, - 2, TRUE); + proto_tree_add_item(tree, hf_ieee80211_tclas_src_mac_addr, tvb, offset, 6, TRUE); + offset += 6; + + proto_tree_add_item(tree, hf_ieee80211_tclas_dst_mac_addr, tvb, offset, 6, TRUE); + offset += 6; + + proto_tree_add_item(tree, hf_ieee80211_tclas_ether_type, tvb, offset, 2, TRUE); + offset += 2; break; case 1: version = tvb_get_guint8(tvb, offset + 5); - proto_tree_add_item(tree, hf_ieee80211_cf_version, tvb, offset + 5, 1, TRUE); + proto_tree_add_item(tree, hf_ieee80211_tclas_version, tvb, offset + 5, 1, TRUE); + offset += 1; if (version == 4) { - proto_tree_add_item(tree, hf_ieee80211_cf_ipv4_src, tvb, offset + 6, - 4, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_ipv4_dst, tvb, offset + 10, - 4, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_src_port, tvb, offset + 14, - 2, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_dst_port, tvb, offset + 16, - 2, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_dscp, tvb, offset + 18, - 1, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_protocol, tvb, offset + 19, - 1, FALSE); + proto_tree_add_item(tree, hf_ieee80211_tclas_ipv4_src, tvb, offset, 4, FALSE); + offset += 4; + proto_tree_add_item(tree, hf_ieee80211_tclas_ipv4_dst, tvb, offset, 4, FALSE); + offset += 4; + proto_tree_add_item(tree, hf_ieee80211_tclas_src_port, tvb, offset, 2, FALSE); + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tclas_dst_port, tvb, offset, 2, FALSE); + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tclas_dscp, tvb, offset, 1, FALSE); + offset += 1; + proto_tree_add_item(tree, hf_ieee80211_tclas_protocol, tvb, offset, 1, FALSE); + offset += 1; } else if (version == 6) { - proto_tree_add_item(tree, hf_ieee80211_cf_ipv6_src, tvb, offset + 6, - 16, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_ipv6_dst, tvb, offset + 22, - 16, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_src_port, tvb, offset + 38, - 2, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_dst_port, tvb, offset + 40, - 2, FALSE); - proto_tree_add_item(tree, hf_ieee80211_cf_flow, tvb, offset + 42, - 3, FALSE); + proto_tree_add_item(tree, hf_ieee80211_tclas_ipv6_src, tvb, offset, 16, FALSE); + offset += 16; + proto_tree_add_item(tree, hf_ieee80211_tclas_ipv6_dst, tvb, offset, 16, FALSE); + offset += 16; + proto_tree_add_item(tree, hf_ieee80211_tclas_src_port, tvb, offset, 2, FALSE); + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tclas_dst_port, tvb, offset, 2, FALSE); + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tclas_flow, tvb, offset, 3, FALSE); + offset += 3; } break; case 2: - proto_tree_add_item(tree, hf_ieee80211_cf_tag_type, tvb, offset + 5, - 2, TRUE); + proto_tree_add_item(tree, hf_ieee80211_tclas_tag_type, tvb, offset, 2, TRUE); + offset += 2; break; default: @@ -6286,34 +6355,41 @@ add_tagged_field(packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int off } break; - case TAG_TCLAS_PROCESS: - if (tag_len != 1) + case TAG_SCHEDULE: /* 7.3.2.34 Schedule element (15) */ + if (tag_len != 14) { - proto_tree_add_text (tree, tvb, offset + 2, tag_len, - "TCLAS_PROCESS element length %u != 1", tag_len); + expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag Length %u wrong, must be = 14", tag_len); break; } - proto_tree_add_item(tree, hf_ieee80211_tclass_process, tvb, offset + 2, 1, TRUE); + offset += 2; + + add_fixed_field(tree, tvb, offset, FIELD_SCHEDULE_INFO); + offset += 2; + + proto_tree_add_item(tree, hf_ieee80211_sched_srv_start, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_sched_srv_int, tvb, offset, 4, TRUE); + offset += 4; + + proto_tree_add_item(tree, hf_ieee80211_sched_spec_int, tvb, offset, 2, TRUE); + offset += 2; break; - case TAG_SCHEDULE: - if (tag_len != 14) + case TAG_CHALLENGE_TEXT: /* 7.3.2.8 Challenge Text element (16) */ + offset += 2; + proto_tree_add_item(tree, hf_ieee80211_tag_challenge_text, tvb, offset, tag_len, FALSE); + break; + + case TAG_TCLAS_PROCESS: + if (tag_len != 1) { - proto_tree_add_text (tree, tvb, offset + 2, tag_len, - "TCLAS_PROCESS element length %u != 14", tag_len); + expert_add_info_format(pinfo, ti_len, PI_MALFORMED, PI_ERROR, "Tag Length %u wrong, must be = 1", tag_len); break; } - add_fixed_field(tree, tvb, offset + 2, FIELD_SCHEDULE_INFO); - proto_tree_add_item(tree, hf_ieee80211_sched_srv_start, tvb, offset + 4, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_sched_srv_int, tvb, offset + 8, 4, TRUE); - proto_tree_add_item(tree, hf_ieee80211_sched_spec_int, tvb, offset + 12, 2, TRUE); - break; + offset += 2; - case TAG_CHALLENGE_TEXT: - g_snprintf (out_buff, SHORT_STR, "Challenge text: %s", - tvb_bytes_to_str(tvb, offset + 2, tag_len)); - proto_tree_add_string (tree, hf_ieee80211_tag_interpretation, tvb, offset + 2, - tag_len, out_buff); + proto_tree_add_item(tree, hf_ieee80211_tclass_process, tvb, offset, 1, TRUE); break; case TAG_ERP_INFO: @@ -6342,6 +6418,16 @@ add_tagged_field(packet_info * pinfo, proto_tree * tree, tvbuff_t * tvb, int off } break; + case TAG_TS_DELAY: + if (tag_len != 4) + { + proto_tree_add_text (tree, tvb, offset + 2, tag_len, + "TS_DELAY tag length %u != 4", tag_len); + break; + } + proto_tree_add_item(tree, hf_ieee80211_ts_delay, tvb, offset + 2, 4, TRUE); + break; + case TAG_CISCO_CCX1_CKIP: /* From WCS manual: * If Aironet IE support is enabled, the access point sends an Aironet @@ -12636,6 +12722,125 @@ proto_register_ieee80211 (void) FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, + {&hf_ieee80211_tag_fh_hopping_table_flag, + {"Flag", "wlan_mgt.fh_hopping.table.flag", + FT_UINT8, BASE_HEX, NULL, 0x0, + "Indicates that a Random Table is present when the value is 1", HFILL }}, + + {&hf_ieee80211_tag_fh_hopping_table_number_of_sets, + {"Number of Sets", "wlan_mgt.fh_hopping.table.number_of_sets", + FT_UINT8, BASE_DEC, NULL, 0x0, + "Indicates the total number of sets within the hopping patterns", HFILL }}, + + {&hf_ieee80211_tag_fh_hopping_table_modulus, + {"Modulus", "wlan_mgt.fh_hopping.table.modulus", + FT_UINT8, BASE_HEX, NULL, 0x0, + "Indicate the values to be used in the equations to create a hopping sequence from the Random Table information", HFILL }}, + + {&hf_ieee80211_tag_fh_hopping_table_offset, + {"Offset", "wlan_mgt.fh_hopping.table.offset", + FT_UINT8, BASE_HEX, NULL, 0x0, + "Indicate the values to be used in the equations to create a hopping sequence from the Random Table information", HFILL }}, + + {&hf_ieee80211_tag_fh_hopping_random_table, + {"Random Table", "wlan_mgt.fh_hopping.table.random_table", + FT_UINT16, BASE_HEX, NULL, 0x0, + "It is a vector of single octet values that indicate the random sequence to be followed during a hopping sequence", HFILL }}, + + {&hf_ieee80211_tag_request, + {"Requested Element ID", "wlan_mgt.tag.request", + FT_UINT8, BASE_RANGE_STRING | BASE_DEC, RVALS(tag_num_vals), 0, + "The list of elements that are to be included in the responding STA Probe Response frame", HFILL }}, + + {&hf_ieee80211_tclas_up, + {"User Priority", "wlan_mgt.tclas.user_priority", + FT_UINT8, BASE_DEC, NULL, 0, + "Contains the value of the UP of the associated MSDUs", HFILL }}, + + {&hf_ieee80211_tclas_class_type, + {"Classifier Type", "wlan_mgt.tclas.class_type", + FT_UINT8, BASE_DEC, VALS (classifier_type), 0, + "Specifies the type of classifier parameters", HFILL }}, + + {&hf_ieee80211_tclas_class_mask, + {"Classifier Mask", "wlan_mgt.tclas.class_mask", + FT_UINT8, BASE_HEX, NULL, 0, + "Specifies a bitmap where bits that are set to 1 identify a subset of the classifier parameters", HFILL }}, + + {&hf_ieee80211_tclas_src_mac_addr, + {"Source address", "wlan_mgt.tclas.type", + FT_ETHER, BASE_NONE, NULL, 0, + "Classifier Parameters Ethernet Type", HFILL }}, + + {&hf_ieee80211_tclas_dst_mac_addr, + {"Destination address", "wlan_mgt.tclas.type", + FT_ETHER, BASE_NONE, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_ether_type, + {"Ethernet Type", "wlan_mgt.tclas.type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_version, + {"IP Version", "wlan_mgt.tclas.version", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_ipv4_src, + {"IPv4 Src Addr", "wlan_mgt.tclas.ipv4_src", + FT_IPv4, BASE_NONE, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_ipv4_dst, + {"IPv4 Dst Addr", "wlan_mgt.tclas.ipv4_dst", + FT_IPv4, BASE_NONE, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_src_port, + {"Source Port", "wlan_mgt.tclas.src_port", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_dst_port, + {"Destination Port", "wlan_mgt.tclas.dst_port", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_dscp, + {"IPv4 DSCP", "wlan_mgt.tclas.dscp", + FT_UINT8, BASE_HEX, NULL, 0, + "IPv4 Differentiated Services Code Point (DSCP) Field", HFILL }}, + + {&hf_ieee80211_tclas_protocol, + {"Protocol", "wlan_mgt.tclas.protocol", + FT_UINT8, BASE_HEX, NULL, 0, "IPv4 Protocol", HFILL }}, + + {&hf_ieee80211_tclas_ipv6_src, + {"IPv6 Src Addr", "wlan_mgt.tclas.ipv6_src", + FT_IPv6, BASE_NONE, + NULL, 0, NULL, HFILL }}, + + {&hf_ieee80211_tclas_ipv6_dst, + {"IPv6 Dst Addr", "wlan_mgt.tclas.ipv6_dst", + FT_IPv6, BASE_NONE, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tclas_flow, + {"Flow Label", "wlan_mgt.tclas.flow", + FT_UINT24, BASE_HEX, NULL, 0, + "IPv6 Flow Label", HFILL }}, + + {&hf_ieee80211_tclas_tag_type, + {"802.1Q Tag Type", "wlan_mgt.tclas.tag_type", + FT_UINT16, BASE_HEX, NULL, 0, + NULL, HFILL }}, + + {&hf_ieee80211_tag_challenge_text, + {"Challenge Text", "wlan_mgt.tag.challenge_text", + FT_STRING, BASE_NONE, NULL, 0, + NULL, HFILL }}, + {&hf_ieee80211_rsn_version, {"RSN Version", "wlan_mgt.rsn.version", FT_UINT16, BASE_DEC, NULL, 0, "Indicates the version number of the RSNA protocol", HFILL }}, @@ -13869,18 +14074,6 @@ proto_register_ieee80211 (void) {"Traffic Stream (TS) Delay", "wlan_mgt.ts_delay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - {&hf_ieee80211_class_type, - {"Classifier Type", "wlan_mgt.tclas.class_type", FT_UINT8, BASE_DEC, - VALS (classifier_type), 0, NULL, HFILL }}, - - {&hf_ieee80211_class_mask, - {"Classifier Mask", "wlan_mgt.tclas.class_mask", FT_UINT8, BASE_HEX, - NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_ether_type, - {"Ethernet Type", "wlan_mgt.tclas.params.type", FT_UINT8, BASE_DEC, - NULL, 0, "Classifier Parameters Ethernet Type", HFILL }}, - {&hf_ieee80211_tclass_process, {"Processing", "wlan_mgt.tclas_proc.processing", FT_UINT8, BASE_DEC, VALS (tclas_process), 0, "TCLAS Processing", HFILL }}, @@ -13917,49 +14110,6 @@ proto_register_ieee80211 (void) {"Action", "wlan_mgt.fixed.action", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }}, - {&hf_ieee80211_cf_version, - {"IP Version", "wlan_mgt.tclas.params.version", - FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_ipv4_src, - {"IPv4 Src Addr", "wlan_mgt.tclas.params.ipv4_src", - FT_IPv4, BASE_NONE, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_ipv4_dst, - {"IPv4 Dst Addr", "wlan_mgt.tclas.params.ipv4_dst", - FT_IPv4, BASE_NONE, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_src_port, - {"Source Port", "wlan_mgt.tclas.params.src_port", - FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_dst_port, - {"Destination Port", "wlan_mgt.tclas.params.dst_port", - FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_dscp, - {"IPv4 DSCP", "wlan_mgt.tclas.params.dscp", - FT_UINT8, BASE_HEX, NULL, 0, "IPv4 Differentiated Services Code Point (DSCP) Field", HFILL }}, - - {&hf_ieee80211_cf_protocol, - {"Protocol", "wlan_mgt.tclas.params.protocol", - FT_UINT8, BASE_HEX, NULL, 0, "IPv4 Protocol", HFILL }}, - - {&hf_ieee80211_cf_ipv6_src, - {"IPv6 Src Addr", "wlan_mgt.tclas.params.ipv6_src", - FT_IPv6, BASE_NONE, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_ipv6_dst, - {"IPv6 Dst Addr", "wlan_mgt.tclas.params.ipv6_dst", - FT_IPv6, BASE_NONE, NULL, 0, NULL, HFILL }}, - - {&hf_ieee80211_cf_flow, - {"Flow Label", "wlan_mgt.tclas.params.flow", - FT_UINT24, BASE_HEX, NULL, 0, "IPv6 Flow Label", HFILL }}, - - {&hf_ieee80211_cf_tag_type, - {"802.1Q Tag Type", "wlan_mgt.tclas.params.tag_type", - FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }}, {&hf_ieee80211_aruba, {"Aruba Type", "wlan_mgt.aruba.type", |