diff options
author | Anders Broman <anders.broman@ericsson.com> | 2020-03-25 09:16:55 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2020-03-25 08:39:55 +0000 |
commit | 5fbe2e4df8aa4f7b0268b83de8832d1a94afcbf5 (patch) | |
tree | 60fbcb6b57c64305e55f4f7968253b4a344289b1 | |
parent | 12d5041eb7cbd5b28567ac58b140864561fadccd (diff) |
GTPv2: Dissect IE 8.106 Node Number
Change-Id: I910910f9447048bf1a5645ad01f07da8fa0bfb59
Reviewed-on: https://code.wireshark.org/review/36561
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/packet-gtpv2.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c index c3cbf30d56..2ca8885283 100644 --- a/epan/dissectors/packet-gtpv2.c +++ b/epan/dissectors/packet-gtpv2.c @@ -777,6 +777,7 @@ static int hf_gtpv2_spare_b7_b2 = -1; static int hf_gtpv2_spare_b7_b5 = -1; static int hf_gtpv2_mm_context_iov_updates_counter = -1; static int hf_gtpv2_mm_context_ear_len = -1; +static int hf_gtpv2_node_number_len = -1; static gint ett_gtpv2 = -1; static gint ett_gtpv2_flags = -1; @@ -6843,7 +6844,20 @@ dissect_gtpv2_trust_wlan_mode_ind(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t static void dissect_gtpv2_node_number(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length _U_, guint8 message_type _U_, guint8 instance _U_, session_args_t * args _U_) { - proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, 0, length); + int offset = 0; + guint32 len; + tvbuff_t* new_tvb; + + /* Octet 5 Length of Node Number*/ + proto_tree_add_item_ret_uint(tree, hf_gtpv2_node_number_len, tvb, offset, 1, ENC_BIG_ENDIAN, &len); + offset += 1; + + /* The Node number shall carry an ISDN number... + * shall be coded according to the contents of ISDN-AddressString data type + * defined in 3GPP TS 29.002 + */ + new_tvb = tvb_new_subset_length(tvb, offset, len); + dissect_gsm_map_msisdn(new_tvb, pinfo, tree); } /* * 8.107 Node Identifier @@ -11779,6 +11793,11 @@ void proto_register_gtpv2(void) FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL } }, + { &hf_gtpv2_node_number_len, + { "Length", "gtpv2.node_number.len", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, }; /* Setup protocol subtree array */ |