diff options
author | Adrian Granados <adrian@intuitibits.com> | 2022-09-27 20:11:11 -0400 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2022-09-29 06:38:22 +0000 |
commit | 1889b1f455e9e4a829241c094d8b1fd9a3ba0006 (patch) | |
tree | 073cfd351b12ace10619758bb797490b1851ca9a | |
parent | b092fa05dae7672ac2c996c0f9107df7dc29da6c (diff) |
ieee80211: Add dissector for Alcatel-Lucent vendor specific IE
Dissector only supports type 1: AP Name.
-rw-r--r-- | epan/dissectors/packet-ieee80211.c | 48 | ||||
-rw-r--r-- | epan/oui.h | 1 |
2 files changed, 49 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", diff --git a/epan/oui.h b/epan/oui.h index ab7723c73d..08fdce289f 100644 --- a/epan/oui.h +++ b/epan/oui.h @@ -94,6 +94,7 @@ #define OUI_ONOS 0xA42305 /* Open Networking Laboratory (ONOS) */ #define OUI_3GPP2 0xCF0002 /* 3GPP2 */ #define OUI_AVAYA_EXTREME2 0xD88466 /* Avaya Extreme Fabric */ +#define OUI_ALCATEL_LUCENT 0xDC0856 /* Alcatel-Lucent */ #endif |