aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_a_gm.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2014-06-10 12:34:18 +0200
committerPascal Quantin <pascal.quantin@gmail.com>2014-06-10 11:36:02 +0000
commite7fbf05b484f4537783293271f2f08e28facf21c (patch)
tree771b22e1bcebb9683bd1469e2c178c4e1ba2f638 /epan/dissectors/packet-gsm_a_gm.c
parent5d7b59aec4f2f330870ec8fb725927c26eae7bd5 (diff)
3GPP NAS: add dissection of MSISDN in PCO
Change-Id: Ie8dac8c898ff94e955a4c0fdde7f4ffff496e97f Reviewed-on: https://code.wireshark.org/review/2098 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-gsm_a_gm.c')
-rw-r--r--epan/dissectors/packet-gsm_a_gm.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/epan/dissectors/packet-gsm_a_gm.c b/epan/dissectors/packet-gsm_a_gm.c
index a68c9f1780..bdedf9bb32 100644
--- a/epan/dissectors/packet-gsm_a_gm.c
+++ b/epan/dissectors/packet-gsm_a_gm.c
@@ -85,6 +85,7 @@
#include "packet-e212.h"
#include "packet-ppp.h"
#include "ipproto.h"
+#include "packet-gsm_map.h"
void proto_register_gsm_a_gm(void);
void proto_reg_handoff_gsm_a_gm(void);
@@ -4055,7 +4056,7 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
case 0x0008:
if ((link_dir == P2P_DIR_DL) && (e_len > 0)) {
tvb_get_ipv6(tvb, curr_offset, &ipv6_addrx);
- proto_tree_add_text(pco_tree, tvb, curr_offset, 16, "IPv6: %s", ip6_to_str(&ipv6_addrx));
+ proto_tree_add_text(pco_tree, tvb, curr_offset, 16, "IPv6: %s", ip6_to_str(&ipv6_addrx));
oct = tvb_get_guint8(tvb, curr_offset+16);
proto_tree_add_text(pco_tree, tvb, curr_offset+16, 1, "Prefix length: %u", oct);
}
@@ -4065,10 +4066,16 @@ de_sm_pco(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, guint32 offset, g
case 0x000D:
if ((link_dir == P2P_DIR_DL) && (e_len > 0)) {
ipv4_addrx = tvb_get_ipv4(tvb, curr_offset);
- proto_tree_add_text(pco_tree, tvb, curr_offset, 4, "IPv4: %s",
+ proto_tree_add_text(pco_tree, tvb, curr_offset, 4, "IPv4: %s",
ip_to_str((guint8 *)&ipv4_addrx));
}
break;
+ case 0x000E:
+ if ((link_dir == P2P_DIR_DL) && (e_len > 0)) {
+ l3_tvb = tvb_new_subset_length(tvb, curr_offset, e_len);
+ dissect_gsm_map_msisdn(l3_tvb, pinfo, pco_tree);
+ }
+ break;
case 0x0010:
if ((link_dir == P2P_DIR_DL) && (e_len == 2)) {
guint16 word = tvb_get_ntohs(tvb, curr_offset);