Ethereal-dev: [Ethereal-dev] Patch for IEEE 802.11g/D6.1 changes / packet-ieee80211.c
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Jouni Malinen <jkmaline@xxxxxxxxx>
Date: Tue, 21 Jan 2003 19:18:12 -0800
Attached patch adds support for two new 802.11 elements used in the latest IEEE 802.11g draft version: ERP Information and Extended Support Rates. In addition, it adds two new capabilities flags. These flags might need some finetuning since proto_tree_add_boolean() seems to show only 8 bits and these new bits are from the other part of the 16-bit value.. -- Jouni Malinen PGP id EFC895FA
Index: packet-ieee80211.c =================================================================== RCS file: /cvsroot/ethereal/packet-ieee80211.c,v retrieving revision 1.79 diff -u -r1.79 packet-ieee80211.c --- packet-ieee80211.c 2002/12/19 11:22:23 1.79 +++ packet-ieee80211.c 2003/01/21 19:17:24 @@ -222,6 +222,8 @@ #define TAG_TIM 0x05 #define TAG_IBSS_PARAMETER 0x06 #define TAG_CHALLENGE_TEXT 0x10 +#define TAG_ERP_INFO 0x2F +#define TAG_EXT_SUPP_RATES 0x32 /* ************************************************************************* */ /* Frame types, and their names */ @@ -354,6 +356,8 @@ static int ff_cf_preamble = -1; static int ff_cf_pbcc = -1; static int ff_cf_agility = -1; +static int ff_short_slot_time = -1; +static int ff_dsss_ofdm = -1; /* ************************************************************************* */ /* Tagged value format fields */ @@ -616,6 +620,10 @@ capability); proto_tree_add_boolean (cap_tree, ff_cf_agility, tvb, offset, 1, capability); + proto_tree_add_boolean (cap_tree, ff_short_slot_time, tvb, offset + 1, 1, + capability); + proto_tree_add_boolean (cap_tree, ff_dsss_ofdm, tvb, offset + 1, 1, + capability); if (ESS_SET (capability) != 0) /* This is an AP */ proto_tree_add_uint (cap_tree, ff_cf_ap_poll, tvb, offset, 2, ((capability & 0xC) >> 2)); @@ -689,7 +697,8 @@ /* Next See if tag is reserved - if true, skip it! */ if (((tag_no >= 7) && (tag_no <= 15)) - || ((tag_no >= 32) && (tag_no <= 255))) + || ((tag_no >= 32) && (tag_no <= 255) && (tag_no != TAG_ERP_INFO) && + (tag_no != TAG_EXT_SUPP_RATES))) { proto_tree_add_uint_format (tree, tag_number, tvb, offset, 1, tag_no, "Tag Number: %u (Reserved tag number)", @@ -726,8 +735,12 @@ case TAG_SUPP_RATES: + case TAG_EXT_SUPP_RATES: proto_tree_add_uint_format (tree, tag_number, tvb, offset, 1, tag_no, - "Tag Number: %u (Supported Rates)", tag_no); + "Tag Number: %u (%sSupported Rates)", + tag_no, + tag_no == TAG_EXT_SUPP_RATES ? "Extended " : + ""); proto_tree_add_uint (tree, tag_length, tvb, offset + 1, 1, tag_len); @@ -852,6 +865,27 @@ break; + + + case TAG_ERP_INFO: + proto_tree_add_uint_format (tree, tag_number, tvb, offset, 1, tag_no, + "Tag Number: %u (ERP Information)", + tag_no); + + proto_tree_add_uint (tree, tag_length, tvb, offset + 1, 1, tag_len); + memset (out_buff, 0, SHORT_STR); + + snprintf (out_buff, SHORT_STR, + "ERP info: 0x%x (%sNon-ERP STAs, %suse protection)", + tag_data_ptr[0], + tag_data_ptr[0] & 0x01 ? "" : "no ", + tag_data_ptr[0] & 0x02 ? "" : "do not "); + proto_tree_add_string (tree, tag_interpretation, tvb, offset + 2, + tag_len, out_buff); + break; + + + default: return 0; } @@ -1956,7 +1990,17 @@ "Channel agility not in use" }; + static const true_false_string short_slot_time_flags = { + "Short slot time in use", + "Short slot time not in use" + }; + + static const true_false_string dsss_ofdm_flags = { + "DSSS-OFDM modulation allowed", + "DSSS-OFDM modulation not allowed" + }; + static const true_false_string cf_ibss_flags = { "Transmitter belongs to an IBSS", "Transmitter belongs to a BSS" @@ -2249,6 +2293,16 @@ {&ff_cf_agility, {"Channel Agility", "wlan_mgt.fixed.capabilities.agility", FT_BOOLEAN, 8, TFS (&cf_agility_flags), 0x0080, "Channel Agility", HFILL }}, + + {&ff_short_slot_time, + {"Short Slot Time", "wlan_mgt.fixed.capabilities.short_slot_time", + FT_BOOLEAN, 8, TFS (&short_slot_time_flags), 0x0400, "Short Slot Time", + HFILL }}, + + {&ff_dsss_ofdm, + {"DSSS-OFDM", "wlan_mgt.fixed.capabilities.dsss_ofdm", + FT_BOOLEAN, 8, TFS (&dsss_ofdm_flags), 0x2000, "DSSS-OFDM Modulation", + HFILL }}, {&ff_auth_seq, {"Authentication SEQ", "wlan_mgt.fixed.auth_seq",
- Follow-Ups:
- Prev by Date: Re: [Ethereal-dev] New Features: SMB RTT statistics and TopTalkers
- Next by Date: Re: [Ethereal-dev] One more decoder & some fixes
- Previous by thread: Re: [Ethereal-dev] New Features: SMB RTT statistics and TopTalkers
- Next by thread: Re: [Ethereal-dev] Patch for IEEE 802.11g/D6.1 changes / packet-ieee80211.c
- Index(es):