aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/ulp
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2007-07-03 09:08:31 +0000
committerAnders Broman <anders.broman@ericsson.com>2007-07-03 09:08:31 +0000
commit44a41824c3b7d1ed7bd1e3f4f582e32014b39107 (patch)
treed0af5b5f887131e7029a9c53644d0d0d13b04b3f /asn1/ulp
parent8d3fd802e3b16c4ef4d7b8586c0194c819facb41 (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.c1
-rw-r--r--asn1/ulp/ulp.cnf31
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 = &parameter_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 = &parameter_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