diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-06-10 12:34:18 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-06-10 11:36:02 +0000 |
commit | e7fbf05b484f4537783293271f2f08e28facf21c (patch) | |
tree | 771b22e1bcebb9683bd1469e2c178c4e1ba2f638 /epan/dissectors/packet-gsm_a_gm.c | |
parent | 5d7b59aec4f2f330870ec8fb725927c26eae7bd5 (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.c | 11 |
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); |