diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2017-06-24 14:25:41 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2017-06-26 22:40:50 +0000 |
commit | 7466880e8a09aa7a9bb797b70fa44bca397881d9 (patch) | |
tree | 1634c5d6e433a4803ecd5543a4cb6420e7c886d7 /epan/dissectors/packet-l2tp.c | |
parent | 3071f9dd7409bd5b0432dd8f1bebbeeee1b6c755 (diff) |
Parse enterprise-numbers at run time
"enterprise-numbers" is converted to tab-separated values and renamed
"enterprises". Unused fields are stripped.
PENs are stored in a hash table loaded at run-time.
User "enterprises" file is loaded from the personal config dir.
Misc make-sminmpec.pl improvements and fixes.
Note: names of type "Entity (formerly ...)" have the formerly part commented out for a cleaner output.
Change-Id: I60c533afbe3e399077fbf432088064471ad3e1e2
Reviewed-on: https://code.wireshark.org/review/22246
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: João Valverde <j@v6e.pt>
Diffstat (limited to 'epan/dissectors/packet-l2tp.c')
-rw-r--r-- | epan/dissectors/packet-l2tp.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c index 5268728f83..ce80b97dcf 100644 --- a/epan/dissectors/packet-l2tp.c +++ b/epan/dissectors/packet-l2tp.c @@ -61,6 +61,7 @@ #include <epan/packet.h> #include <epan/ipproto.h> #include <epan/sminmpec.h> +#include <epan/addr_resolv.h> #include <epan/prefs.h> #include <epan/conversation.h> #include <epan/expert.h> @@ -1526,7 +1527,7 @@ static int dissect_l2tp_cisco_avps(tvbuff_t *tvb, packet_info *pinfo _U_, proto_ l2tp_avp_tree = proto_tree_add_subtree_format(tree, tvb, offset, avp_len, ett_l2tp_avp, NULL, "Vendor %s: %s AVP", - val_to_str_ext(avp_vendor_id, &sminmpec_values_ext, "Unknown (%u)"), + enterprises_lookup_format(wmem_packet_scope(), avp_vendor_id, "Unknown (%u)"), val_to_str(avp_type, cisco_avp_type_vals, "Unknown (%u)")); proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_mandatory, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -1634,7 +1635,7 @@ static int dissect_l2tp_broadband_avps(tvbuff_t *tvb, packet_info *pinfo _U_, pr l2tp_avp_tree = proto_tree_add_subtree_format(tree, tvb, offset, avp_len, ett_l2tp_avp, NULL, "Vendor %s: %s AVP", - val_to_str_ext(avp_vendor_id, &sminmpec_values_ext, "Unknown (%u)"), + enterprises_lookup_format(wmem_packet_scope(), avp_vendor_id, "Unknown (%u)"), val_to_str(avp_type, broadband_avp_type_vals, "Unknown (%u)")); proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_mandatory, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -1816,7 +1817,7 @@ static int dissect_l2tp_ericsson_avps(tvbuff_t *tvb, packet_info *pinfo _U_, pro l2tp_avp_tree = proto_tree_add_subtree_format(tree, tvb, offset, avp_len, ett_l2tp_avp, NULL, "Vendor %s: %s AVP", - val_to_str_ext(avp_vendor_id, &sminmpec_values_ext, "Unknown (%u)"), + enterprises_lookup_format(wmem_packet_scope(), avp_vendor_id, "Unknown (%u)"), val_to_str(avp_type, ericsson_avp_type_vals, "Unknown (%u)")); proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_mandatory, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -1905,7 +1906,7 @@ dissect_l2tp_vnd_cablelabs_avps(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre l2tp_avp_tree = proto_tree_add_subtree_format(tree, tvb, offset, avp_len, ett_l2tp_avp, NULL, "Vendor %s: %s AVP", - val_to_str_ext(avp_vendor_id, &sminmpec_values_ext, "Unknown (%u)"), + enterprises_lookup_format(wmem_packet_scope(), avp_vendor_id, "Unknown (%u)"), val_to_str(avp_type, cablelabs_avp_type_vals, "Unknown (%u)")); proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_mandatory, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -2037,7 +2038,7 @@ static void process_control_avps(tvbuff_t *tvb, if (!dissector_try_uint_new(l2tp_vendor_avp_dissector_table, avp_vendor_id, avp_tvb, pinfo, l2tp_tree, FALSE, l2tp_cntrl_data)){ l2tp_avp_tree = proto_tree_add_subtree_format(l2tp_tree, tvb, idx, avp_len, ett_l2tp_avp, NULL, "Vendor %s AVP Type %u", - val_to_str_ext(avp_vendor_id, &sminmpec_values_ext, "Unknown (%u)"), + enterprises_lookup_format(wmem_packet_scope(), avp_vendor_id, "Unknown (%u)"), avp_type); proto_tree_add_item(l2tp_avp_tree, hf_l2tp_avp_mandatory, tvb, idx, 2, ENC_BIG_ENDIAN); @@ -3274,7 +3275,7 @@ proto_register_l2tp(void) NULL, HFILL }}, { &hf_l2tp_avp_vendor_id, - { "Vendor ID", "l2tp.avp.vendor_id", FT_UINT16, BASE_DEC|BASE_EXT_STRING, &sminmpec_values_ext, 0, + { "Vendor ID", "l2tp.avp.vendor_id", FT_UINT16, BASE_ENTERPRISES, STRINGS_ENTERPRISES, 0, "AVP Vendor ID", HFILL }}, { &hf_l2tp_avp_type, |