diff options
author | Anders Broman <anders.broman@ericsson.com> | 2007-07-03 09:08:31 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2007-07-03 09:08:31 +0000 |
commit | 44a41824c3b7d1ed7bd1e3f4f582e32014b39107 (patch) | |
tree | d0af5b5f887131e7029a9c53644d0d0d13b04b3f /asn1/ulp | |
parent | 8d3fd802e3b16c4ef4d7b8586c0194c819facb41 (diff) |
Fix dissection of IP addresses in unaligned PER.
Add dissection of MSISDN and IMSI to the ULP dissector.
svn path=/trunk/; revision=22233
Diffstat (limited to 'asn1/ulp')
-rw-r--r-- | asn1/ulp/packet-ulp-template.c | 1 | ||||
-rw-r--r-- | asn1/ulp/ulp.cnf | 31 |
2 files changed, 30 insertions, 2 deletions
diff --git a/asn1/ulp/packet-ulp-template.c b/asn1/ulp/packet-ulp-template.c index 73e0577e36..fadb80ccfd 100644 --- a/asn1/ulp/packet-ulp-template.c +++ b/asn1/ulp/packet-ulp-template.c @@ -42,6 +42,7 @@ #include "packet-per.h" #include <epan/emem.h> #include "packet-tcp.h" +#include "packet-gsm_map.h" #define PNAME "OMA UserPlane Location Protocol" #define PSNAME "ULP" diff --git a/asn1/ulp/ulp.cnf b/asn1/ulp/ulp.cnf index 1cbf56cdf9..e78ff0b855 100644 --- a/asn1/ulp/ulp.cnf +++ b/asn1/ulp/ulp.cnf @@ -1,6 +1,6 @@ # upl.cnf # upl conformation file -# Copyright 2006 Anders Broman +# Copyright 2006-2007 Anders Broman # $Id$ #.OPT @@ -55,7 +55,34 @@ guint32 UlpMessage; call_dissector(rrlp_handle, rrlp_tvb, %(ACTX)s->pinfo, tree); } +#.FN_BODY SETId/msisdn VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb; + asn1_ctx_t asn1_ctx; + + /* "Hide" the first dissection to avoid double tree entries */ + hf_index = -1; +%(DEFAULT_BODY)s + +if(!parameter_tvb) + return offset; +/* msisdn is ISDN-addressstring */ + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo); + dissect_gsm_map_ISDN_AddressString(TRUE, parameter_tvb, 0, &asn1_ctx, tree, hf_ulp_msisdn); + +#.FN_BODY SETId/imsi VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb; + asn1_ctx_t asn1_ctx; + + /* "Hide" the first dissection to avoid double tree entries */ + hf_index = -1; +%(DEFAULT_BODY)s + +if(!parameter_tvb) + return offset; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, actx->pinfo); + dissect_gsm_map_IMSI(TRUE, parameter_tvb, 0, &asn1_ctx, tree, hf_ulp_imsi); + #.TYPE_ATTR -IPAddress/ipv4Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL +IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL IPAddress/ipv6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL #.END |