aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ieee80211.c
diff options
context:
space:
mode:
authorAdrian Granados <adrian@intuitibits.com>2022-09-27 20:11:11 -0400
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2022-09-29 06:38:22 +0000
commit1889b1f455e9e4a829241c094d8b1fd9a3ba0006 (patch)
tree073cfd351b12ace10619758bb797490b1851ca9a /epan/dissectors/packet-ieee80211.c
parentb092fa05dae7672ac2c996c0f9107df7dc29da6c (diff)
ieee80211: Add dissector for Alcatel-Lucent vendor specific IE
Dissector only supports type 1: AP Name.
Diffstat (limited to 'epan/dissectors/packet-ieee80211.c')
-rw-r--r--epan/dissectors/packet-ieee80211.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ieee80211.c b/epan/dissectors/packet-ieee80211.c
index 4501ee1ab8..aee71b0a79 100644
--- a/epan/dissectors/packet-ieee80211.c
+++ b/epan/dissectors/packet-ieee80211.c
@@ -6085,6 +6085,9 @@ static int hf_ieee80211_vs_mist_data = -1;
static int hf_ieee80211_vs_ruckus_ap_name = -1;
static int hf_ieee80211_vs_ruckus_data = -1;
+static int hf_ieee80211_vs_alcatel_ap_name = -1;
+static int hf_ieee80211_vs_alcatel_data = -1;
+
static int hf_ieee80211_vs_fortinet_subtype = -1;
static int hf_ieee80211_vs_fortinet_system_type = -1;
static int hf_ieee80211_vs_fortinet_system_length = -1;
@@ -18124,6 +18127,37 @@ dissect_vendor_ie_ruckus(proto_item *item _U_, proto_tree *ietree,
}
}
+#define ALCATEL_APNAME 1
+static const value_string ieee80211_vs_alcatel_type_vals[] = {
+ { ALCATEL_APNAME, "AP Name"},
+ { 0, NULL }
+};
+static void
+dissect_vendor_ie_alcatel(proto_item *item _U_, proto_tree *ietree,
+ tvbuff_t *tvb, int offset, guint32 tag_len)
+{
+ guint32 type, length;
+ const guint8* apname;
+
+ /* VS OUI Type */
+ type = tvb_get_guint8(tvb, offset);
+ proto_item_append_text(item, ": %s", val_to_str_const(type, ieee80211_vs_alcatel_type_vals, "Unknown"));
+ offset += 1;
+ tag_len -= 1;
+
+ switch(type){
+ case ALCATEL_APNAME:
+ length = tag_len;
+ proto_tree_add_item_ret_string(ietree, hf_ieee80211_vs_alcatel_ap_name, tvb, offset, length, ENC_ASCII|ENC_NA, wmem_packet_scope(), &apname);
+ proto_item_append_text(item, " (%s)", apname);
+ break;
+
+ default:
+ proto_tree_add_item(ietree, hf_ieee80211_vs_alcatel_data, tvb, offset, tag_len, ENC_NA);
+ break;
+ }
+}
+
enum vs_sgdsn_type {
SGDSN_VERSION = 0x01,
SGDSN_IDFR = 0x02,
@@ -27779,6 +27813,9 @@ ieee80211_tag_vendor_specific_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
case OUI_RUCKUS:
dissect_vendor_ie_ruckus(field_data->item_tag, tree, tvb, offset, tag_vs_len);
break;
+ case OUI_ALCATEL_LUCENT:
+ dissect_vendor_ie_alcatel(field_data->item_tag, tree, tvb, offset, tag_vs_len);
+ break;
case OUI_SGDSN:
dissect_vendor_ie_sgdsn(field_data->item_tag, tree, tvb, offset, tag_vs_len, pinfo);
break;
@@ -47765,6 +47802,17 @@ proto_register_ieee80211(void)
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ /* Vendor Specific : Alcatel-Lucent */
+ {&hf_ieee80211_vs_alcatel_ap_name,
+ {"AP Name", "wlan.vs.alcatel.apname",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
+ {&hf_ieee80211_vs_alcatel_data,
+ {"Data", "wlan.vs.alcatel.data",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+
/* Vendor Specific : Fortinet */
{&hf_ieee80211_vs_fortinet_subtype,
{"Subtype", "wlan.vs.fortinet.subtype",