aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/ilp/ilp.cnf29
-rw-r--r--asn1/ilp/packet-ilp-template.c9
-rw-r--r--asn1/ulp/packet-ulp-template.c11
-rw-r--r--asn1/ulp/ulp.cnf51
-rw-r--r--epan/dissectors/packet-ilp.c97
-rw-r--r--epan/dissectors/packet-ulp.c171
6 files changed, 326 insertions, 42 deletions
diff --git a/asn1/ilp/ilp.cnf b/asn1/ilp/ilp.cnf
index cfd6c4abf6..fdc0118917 100644
--- a/asn1/ilp/ilp.cnf
+++ b/asn1/ilp/ilp.cnf
@@ -66,6 +66,35 @@ guint32 IlpMessage;
call_dissector(lpp_handle, lpp_tvb, %(ACTX)s->pinfo, tree);
}
+#.FN_BODY SETId/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY SETId/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ proto_tree_add_string(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
#.TYPE_ATTR
IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
diff --git a/asn1/ilp/packet-ilp-template.c b/asn1/ilp/packet-ilp-template.c
index 6251662ce7..cf3fdfd040 100644
--- a/asn1/ilp/packet-ilp-template.c
+++ b/asn1/ilp/packet-ilp-template.c
@@ -33,6 +33,8 @@
#include "packet-per.h"
#include "packet-tcp.h"
#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
#define PNAME "OMA Internal Location Protocol"
#define PSNAME "ILP"
@@ -57,9 +59,11 @@ static int proto_ilp = -1;
static gboolean ilp_desegment = TRUE;
#include "packet-ilp-hf.c"
+static int hf_ilp_mobile_directory_number = -1;
/* Initialize the subtree pointers */
static gint ett_ilp = -1;
+static gint ett_ilp_setid = -1;
#include "packet-ilp-ett.c"
/* Include constants */
@@ -93,11 +97,16 @@ void proto_register_ilp(void) {
static hf_register_info hf[] = {
#include "packet-ilp-hfarr.c"
+ { &hf_ilp_mobile_directory_number,
+ { "Mobile Directory Number", "ilp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
};
/* List of subtrees */
static gint *ett[] = {
&ett_ilp,
+ &ett_ilp_setid,
#include "packet-ilp-ettarr.c"
};
diff --git a/asn1/ulp/packet-ulp-template.c b/asn1/ulp/packet-ulp-template.c
index ab3db01eaf..63fa5695db 100644
--- a/asn1/ulp/packet-ulp-template.c
+++ b/asn1/ulp/packet-ulp-template.c
@@ -33,6 +33,8 @@
#include "packet-per.h"
#include "packet-tcp.h"
#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
#define PNAME "OMA UserPlane Location Protocol"
#define PSNAME "ULP"
@@ -59,9 +61,12 @@ static int proto_ulp = -1;
static gboolean ulp_desegment = TRUE;
#include "packet-ulp-hf.c"
+static int hf_ulp_mobile_directory_number = -1;
/* Initialize the subtree pointers */
static gint ett_ulp = -1;
+static gint ett_ulp_setid = -1;
+static gint ett_ulp_thirdPartyId = -1;
#include "packet-ulp-ett.c"
/* Include constants */
@@ -95,11 +100,17 @@ void proto_register_ulp(void) {
static hf_register_info hf[] = {
#include "packet-ulp-hfarr.c"
+ { &hf_ulp_mobile_directory_number,
+ { "Mobile Directory Number", "ulp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }}
};
/* List of subtrees */
static gint *ett[] = {
&ett_ulp,
+ &ett_ulp_setid,
+ &ett_ulp_thirdPartyId,
#include "packet-ulp-ettarr.c"
};
diff --git a/asn1/ulp/ulp.cnf b/asn1/ulp/ulp.cnf
index 0bc6c0e2b8..8798e6facf 100644
--- a/asn1/ulp/ulp.cnf
+++ b/asn1/ulp/ulp.cnf
@@ -67,6 +67,46 @@ guint32 UlpMessage;
call_dissector(lpp_handle, lpp_tvb, %(ACTX)s->pinfo, tree);
}
+#.FN_BODY SETId/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+#.FN_BODY SETId/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+#.FN_BODY SETId/imsi VAL_PTR=&imsi_tvb
+ tvbuff_t *imsi_tvb;
+%(DEFAULT_BODY)s
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+#.FN_BODY ThirdPartyID/msisdn VAL_PTR=&msisdn_tvb
+ tvbuff_t *msisdn_tvb;
+%(DEFAULT_BODY)s
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
#.FN_BODY ThirdPartyID/sip-uri
# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
@@ -77,13 +117,22 @@ guint32 UlpMessage;
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%%#@?", 72,
NULL);
+#.FN_BODY ThirdPartyID/mdn VAL_PTR=&mdn_tvb
+ tvbuff_t *mdn_tvb;
+%(DEFAULT_BODY)s
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
#.FN_BODY ThirdPartyID/uri
# asn2wrs does not handle '%' in the restricted string ( Has to be there twice)
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%%#", 69,
NULL);
-
#.TYPE_ATTR
IPAddress/ipv4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
IPAddress/ipv6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
diff --git a/epan/dissectors/packet-ilp.c b/epan/dissectors/packet-ilp.c
index b1c5e8b250..8e33b48473 100644
--- a/epan/dissectors/packet-ilp.c
+++ b/epan/dissectors/packet-ilp.c
@@ -41,6 +41,8 @@
#include "packet-per.h"
#include "packet-tcp.h"
#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
#define PNAME "OMA Internal Location Protocol"
#define PSNAME "ILP"
@@ -191,10 +193,10 @@ static int hf_ilp_setSessionID = -1; /* SetSessionID */
static int hf_ilp_spcSessionID = -1; /* SpcSessionID */
static int hf_ilp_sessionId = -1; /* INTEGER_0_65535 */
static int hf_ilp_setId = -1; /* SETId */
-static int hf_ilp_msisdn = -1; /* OCTET_STRING_SIZE_8 */
-static int hf_ilp_mdn = -1; /* OCTET_STRING_SIZE_8 */
+static int hf_ilp_msisdn = -1; /* T_msisdn */
+static int hf_ilp_mdn = -1; /* T_mdn */
static int hf_ilp_minsi = -1; /* BIT_STRING_SIZE_34 */
-static int hf_ilp_imsi = -1; /* OCTET_STRING_SIZE_8 */
+static int hf_ilp_imsi = -1; /* T_imsi */
static int hf_ilp_nai = -1; /* IA5String_SIZE_1_1000 */
static int hf_ilp_iPAddress = -1; /* IPAddress */
static int hf_ilp_sessionID = -1; /* OCTET_STRING_SIZE_4 */
@@ -450,10 +452,12 @@ static int hf_ilp_GANSSSignals_signal7 = -1;
static int hf_ilp_GANSSSignals_signal8 = -1;
/*--- End of included file: packet-ilp-hf.c ---*/
-#line 60 "../../asn1/ilp/packet-ilp-template.c"
+#line 62 "../../asn1/ilp/packet-ilp-template.c"
+static int hf_ilp_mobile_directory_number = -1;
/* Initialize the subtree pointers */
static gint ett_ilp = -1;
+static gint ett_ilp_setid = -1;
/*--- Included file: packet-ilp-ett.c ---*/
#line 1 "../../asn1/ilp/packet-ilp-ett.c"
@@ -594,7 +598,7 @@ static gint ett_ilp_T_lPPPayload = -1;
static gint ett_ilp_T_tia801Payload = -1;
/*--- End of included file: packet-ilp-ett.c ---*/
-#line 64 "../../asn1/ilp/packet-ilp-template.c"
+#line 68 "../../asn1/ilp/packet-ilp-template.c"
/* Include constants */
@@ -611,7 +615,7 @@ static gint ett_ilp_T_tia801Payload = -1;
#define maxPosSize 1024
/*--- End of included file: packet-ilp-val.h ---*/
-#line 67 "../../asn1/ilp/packet-ilp-template.c"
+#line 71 "../../asn1/ilp/packet-ilp-template.c"
@@ -746,9 +750,41 @@ dissect_ilp_SlcSessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
-dissect_ilp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_ilp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 70 "../../asn1/ilp/ilp.cnf"
+ tvbuff_t *msisdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, FALSE, NULL);
+ 8, 8, FALSE, &msisdn_tvb);
+
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ilp_T_mdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 80 "../../asn1/ilp/ilp.cnf"
+ tvbuff_t *mdn_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &mdn_tvb);
+
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ proto_tree_add_string(subtree, hf_ilp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+
return offset;
}
@@ -766,6 +802,27 @@ dissect_ilp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
+dissect_ilp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 90 "../../asn1/ilp/ilp.cnf"
+ tvbuff_t *imsi_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &imsi_tvb);
+
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ilp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
dissect_ilp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1, 1000, FALSE);
@@ -785,10 +842,10 @@ static const value_string ilp_SETId_vals[] = {
};
static const per_choice_t SETId_choice[] = {
- { 0, &hf_ilp_msisdn , ASN1_EXTENSION_ROOT , dissect_ilp_OCTET_STRING_SIZE_8 },
- { 1, &hf_ilp_mdn , ASN1_EXTENSION_ROOT , dissect_ilp_OCTET_STRING_SIZE_8 },
+ { 0, &hf_ilp_msisdn , ASN1_EXTENSION_ROOT , dissect_ilp_T_msisdn },
+ { 1, &hf_ilp_mdn , ASN1_EXTENSION_ROOT , dissect_ilp_T_mdn },
{ 2, &hf_ilp_minsi , ASN1_EXTENSION_ROOT , dissect_ilp_BIT_STRING_SIZE_34 },
- { 3, &hf_ilp_imsi , ASN1_EXTENSION_ROOT , dissect_ilp_OCTET_STRING_SIZE_8 },
+ { 3, &hf_ilp_imsi , ASN1_EXTENSION_ROOT , dissect_ilp_T_imsi },
{ 4, &hf_ilp_nai , ASN1_EXTENSION_ROOT , dissect_ilp_IA5String_SIZE_1_1000 },
{ 5, &hf_ilp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ilp_IPAddress },
{ 0, NULL, 0, NULL }
@@ -3372,7 +3429,6 @@ dissect_ilp_T_lPPPayload_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
-
return offset;
}
@@ -4089,7 +4145,7 @@ static int dissect_ILP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-ilp-fn.c ---*/
-#line 70 "../../asn1/ilp/packet-ilp-template.c"
+#line 74 "../../asn1/ilp/packet-ilp-template.c"
static guint
@@ -4617,11 +4673,11 @@ void proto_register_ilp(void) {
{ &hf_ilp_msisdn,
{ "msisdn", "ilp.msisdn",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ilp_mdn,
{ "mdn", "ilp.mdn",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ilp_minsi,
{ "min", "ilp.min",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -4629,7 +4685,7 @@ void proto_register_ilp(void) {
{ &hf_ilp_imsi,
{ "imsi", "ilp.imsi",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ilp_nai,
{ "nai", "ilp.nai",
FT_STRING, BASE_NONE, NULL, 0,
@@ -5640,12 +5696,17 @@ void proto_register_ilp(void) {
NULL, HFILL }},
/*--- End of included file: packet-ilp-hfarr.c ---*/
-#line 96 "../../asn1/ilp/packet-ilp-template.c"
+#line 100 "../../asn1/ilp/packet-ilp-template.c"
+ { &hf_ilp_mobile_directory_number,
+ { "Mobile Directory Number", "ilp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
};
/* List of subtrees */
static gint *ett[] = {
&ett_ilp,
+ &ett_ilp_setid,
/*--- Included file: packet-ilp-ettarr.c ---*/
#line 1 "../../asn1/ilp/packet-ilp-ettarr.c"
@@ -5786,7 +5847,7 @@ void proto_register_ilp(void) {
&ett_ilp_T_tia801Payload,
/*--- End of included file: packet-ilp-ettarr.c ---*/
-#line 102 "../../asn1/ilp/packet-ilp-template.c"
+#line 111 "../../asn1/ilp/packet-ilp-template.c"
};
module_t *ilp_module;
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index 64d1ed08a4..b18061d547 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -41,6 +41,8 @@
#include "packet-per.h"
#include "packet-tcp.h"
#include "packet-gsm_map.h"
+#include "packet-e164.h"
+#include "packet-e212.h"
#define PNAME "OMA UserPlane Location Protocol"
#define PSNAME "ULP"
@@ -375,10 +377,10 @@ static int hf_ulp_setSessionID = -1; /* SetSessionID */
static int hf_ulp_slpSessionID = -1; /* SlpSessionID */
static int hf_ulp_sessionId = -1; /* INTEGER_0_65535 */
static int hf_ulp_setId = -1; /* SETId */
-static int hf_ulp_msisdn = -1; /* OCTET_STRING_SIZE_8 */
-static int hf_ulp_mdn = -1; /* OCTET_STRING_SIZE_8 */
+static int hf_ulp_msisdn = -1; /* T_msisdn */
+static int hf_ulp_mdn = -1; /* T_mdn */
static int hf_ulp_minsi = -1; /* BIT_STRING_SIZE_34 */
-static int hf_ulp_imsi = -1; /* OCTET_STRING_SIZE_8 */
+static int hf_ulp_imsi = -1; /* T_imsi */
static int hf_ulp_nai = -1; /* IA5String_SIZE_1_1000 */
static int hf_ulp_iPAddress = -1; /* IPAddress */
static int hf_ulp_sessionSlpID = -1; /* OCTET_STRING_SIZE_4 */
@@ -645,10 +647,12 @@ static int hf_ulp_rand = -1; /* BIT_STRING_SIZE_128 */
static int hf_ulp_slpFQDN = -1; /* FQDN */
static int hf_ulp_ThirdParty_item = -1; /* ThirdPartyID */
static int hf_ulp_logicalName = -1; /* IA5String_SIZE_1_1000 */
+static int hf_ulp_msisdn_01 = -1; /* T_msisdn_01 */
static int hf_ulp_emailaddr = -1; /* IA5String_SIZE_1_1000 */
static int hf_ulp_sip_uri = -1; /* T_sip_uri */
static int hf_ulp_ims_public_identity = -1; /* T_ims_public_identity */
static int hf_ulp_min_01 = -1; /* BIT_STRING_SIZE_34 */
+static int hf_ulp_mdn_01 = -1; /* T_mdn_01 */
static int hf_ulp_uri = -1; /* T_uri */
static int hf_ulp_appProvider = -1; /* IA5String_SIZE_1_24 */
static int hf_ulp_appName = -1; /* IA5String_SIZE_1_32 */
@@ -690,10 +694,13 @@ static int hf_ulp_GANSSSignals_signal7 = -1;
static int hf_ulp_GANSSSignals_signal8 = -1;
/*--- End of included file: packet-ulp-hf.c ---*/
-#line 62 "../../asn1/ulp/packet-ulp-template.c"
+#line 64 "../../asn1/ulp/packet-ulp-template.c"
+static int hf_ulp_mobile_directory_number = -1;
/* Initialize the subtree pointers */
static gint ett_ulp = -1;
+static gint ett_ulp_setid = -1;
+static gint ett_ulp_thirdPartyId = -1;
/*--- Included file: packet-ulp-ett.c ---*/
#line 1 "../../asn1/ulp/packet-ulp-ett.c"
@@ -911,7 +918,7 @@ static gint ett_ulp_PolygonArea = -1;
static gint ett_ulp_PolygonDescription = -1;
/*--- End of included file: packet-ulp-ett.c ---*/
-#line 66 "../../asn1/ulp/packet-ulp-template.c"
+#line 71 "../../asn1/ulp/packet-ulp-template.c"
/* Include constants */
@@ -934,7 +941,7 @@ static gint ett_ulp_PolygonDescription = -1;
#define maxWimaxBSMeas 32
/*--- End of included file: packet-ulp-val.h ---*/
-#line 69 "../../asn1/ulp/packet-ulp-template.c"
+#line 74 "../../asn1/ulp/packet-ulp-template.c"
@@ -979,9 +986,41 @@ dissect_ulp_Version(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
-dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_ulp_T_msisdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 71 "../../asn1/ulp/ulp.cnf"
+ tvbuff_t *msisdn_tvb;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
- 8, 8, FALSE, NULL);
+ 8, 8, FALSE, &msisdn_tvb);
+
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_ulp_T_mdn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 81 "../../asn1/ulp/ulp.cnf"
+ tvbuff_t *mdn_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &mdn_tvb);
+
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+
return offset;
}
@@ -999,6 +1038,27 @@ dissect_ulp_BIT_STRING_SIZE_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
+dissect_ulp_T_imsi(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 91 "../../asn1/ulp/ulp.cnf"
+ tvbuff_t *imsi_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &imsi_tvb);
+
+ if (imsi_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_setid);
+ dissect_e212_imsi(imsi_tvb, actx->pinfo, subtree, 0, 8, FALSE);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
dissect_ulp_IA5String_SIZE_1_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1, 1000, FALSE);
@@ -1060,10 +1120,10 @@ static const value_string ulp_SETId_vals[] = {
};
static const per_choice_t SETId_choice[] = {
- { 0, &hf_ulp_msisdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
- { 1, &hf_ulp_mdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
+ { 0, &hf_ulp_msisdn , ASN1_EXTENSION_ROOT , dissect_ulp_T_msisdn },
+ { 1, &hf_ulp_mdn , ASN1_EXTENSION_ROOT , dissect_ulp_T_mdn },
{ 2, &hf_ulp_minsi , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_34 },
- { 3, &hf_ulp_imsi , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
+ { 3, &hf_ulp_imsi , ASN1_EXTENSION_ROOT , dissect_ulp_T_imsi },
{ 4, &hf_ulp_nai , ASN1_EXTENSION_ROOT , dissect_ulp_IA5String_SIZE_1_1000 },
{ 5, &hf_ulp_iPAddress , ASN1_EXTENSION_ROOT , dissect_ulp_IPAddress },
{ 0, NULL, 0, NULL }
@@ -1739,6 +1799,16 @@ dissect_ulp_ProtLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
+dissect_ulp_OCTET_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, NULL);
+
+ return offset;
+}
+
+
+
+static int
dissect_ulp_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
32, 32, FALSE, NULL, NULL);
@@ -3685,8 +3755,29 @@ dissect_ulp_MultipleLocationIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
+dissect_ulp_T_msisdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 101 "../../asn1/ulp/ulp.cnf"
+ tvbuff_t *msisdn_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &msisdn_tvb);
+
+ if (msisdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ dissect_e164_msisdn(msisdn_tvb, subtree, 0, 8, E164_ENC_BCD);
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "../../asn1/ulp/ulp.cnf"
+#line 112 "../../asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
NULL);
@@ -3699,7 +3790,7 @@ dissect_ulp_T_sip_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
static int
dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 77 "../../asn1/ulp/ulp.cnf"
+#line 117 "../../asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:./-_~%#@?", 72,
NULL);
@@ -3711,15 +3802,35 @@ dissect_ulp_T_ims_public_identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
+dissect_ulp_T_mdn_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 121 "../../asn1/ulp/ulp.cnf"
+ tvbuff_t *mdn_tvb;
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 8, 8, FALSE, &mdn_tvb);
+
+ if (mdn_tvb) {
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_ulp_thirdPartyId);
+ proto_tree_add_string(subtree, hf_ulp_mobile_directory_number, mdn_tvb, 0, 8, tvb_bcd_dig_to_wmem_packet_str(mdn_tvb, 0, 8, NULL, FALSE));
+ }
+
+
+
+ return offset;
+}
+
+
+
+static int
dissect_ulp_T_uri(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 82 "../../asn1/ulp/ulp.cnf"
+#line 132 "../../asn1/ulp/ulp.cnf"
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1, 255, FALSE, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./-_~%#", 69,
NULL);
-
return offset;
}
@@ -3738,12 +3849,12 @@ static const value_string ulp_ThirdPartyID_vals[] = {
static const per_choice_t ThirdPartyID_choice[] = {
{ 0, &hf_ulp_logicalName , ASN1_EXTENSION_ROOT , dissect_ulp_IA5String_SIZE_1_1000 },
- { 1, &hf_ulp_msisdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
+ { 1, &hf_ulp_msisdn_01 , ASN1_EXTENSION_ROOT , dissect_ulp_T_msisdn_01 },
{ 2, &hf_ulp_emailaddr , ASN1_EXTENSION_ROOT , dissect_ulp_IA5String_SIZE_1_1000 },
{ 3, &hf_ulp_sip_uri , ASN1_EXTENSION_ROOT , dissect_ulp_T_sip_uri },
{ 4, &hf_ulp_ims_public_identity, ASN1_EXTENSION_ROOT , dissect_ulp_T_ims_public_identity },
{ 5, &hf_ulp_min_01 , ASN1_EXTENSION_ROOT , dissect_ulp_BIT_STRING_SIZE_34 },
- { 6, &hf_ulp_mdn , ASN1_EXTENSION_ROOT , dissect_ulp_OCTET_STRING_SIZE_8 },
+ { 6, &hf_ulp_mdn_01 , ASN1_EXTENSION_ROOT , dissect_ulp_T_mdn_01 },
{ 7, &hf_ulp_uri , ASN1_EXTENSION_ROOT , dissect_ulp_T_uri },
{ 0, NULL, 0, NULL }
};
@@ -6480,7 +6591,7 @@ static int dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-ulp-fn.c ---*/
-#line 72 "../../asn1/ulp/packet-ulp-template.c"
+#line 77 "../../asn1/ulp/packet-ulp-template.c"
static guint
@@ -7736,11 +7847,11 @@ void proto_register_ulp(void) {
{ &hf_ulp_msisdn,
{ "msisdn", "ulp.msisdn",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ulp_mdn,
{ "mdn", "ulp.mdn",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ulp_minsi,
{ "min", "ulp.min",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -7748,7 +7859,7 @@ void proto_register_ulp(void) {
{ &hf_ulp_imsi,
{ "imsi", "ulp.imsi",
FT_BYTES, BASE_NONE, NULL, 0,
- "OCTET_STRING_SIZE_8", HFILL }},
+ NULL, HFILL }},
{ &hf_ulp_nai,
{ "nai", "ulp.nai",
FT_STRING, BASE_NONE, NULL, 0,
@@ -8813,6 +8924,10 @@ void proto_register_ulp(void) {
{ "logicalName", "ulp.logicalName",
FT_STRING, BASE_NONE, NULL, 0,
"IA5String_SIZE_1_1000", HFILL }},
+ { &hf_ulp_msisdn_01,
+ { "msisdn", "ulp.msisdn",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "T_msisdn_01", HFILL }},
{ &hf_ulp_emailaddr,
{ "emailaddr", "ulp.emailaddr",
FT_STRING, BASE_NONE, NULL, 0,
@@ -8829,6 +8944,10 @@ void proto_register_ulp(void) {
{ "min", "ulp.min",
FT_BYTES, BASE_NONE, NULL, 0,
"BIT_STRING_SIZE_34", HFILL }},
+ { &hf_ulp_mdn_01,
+ { "mdn", "ulp.mdn",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "T_mdn_01", HFILL }},
{ &hf_ulp_uri,
{ "uri", "ulp.uri",
FT_STRING, BASE_NONE, NULL, 0,
@@ -8983,12 +9102,18 @@ void proto_register_ulp(void) {
NULL, HFILL }},
/*--- End of included file: packet-ulp-hfarr.c ---*/
-#line 98 "../../asn1/ulp/packet-ulp-template.c"
+#line 103 "../../asn1/ulp/packet-ulp-template.c"
+ { &hf_ulp_mobile_directory_number,
+ { "Mobile Directory Number", "ulp.mobile_directory_number",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }}
};
/* List of subtrees */
static gint *ett[] = {
&ett_ulp,
+ &ett_ulp_setid,
+ &ett_ulp_thirdPartyId,
/*--- Included file: packet-ulp-ettarr.c ---*/
#line 1 "../../asn1/ulp/packet-ulp-ettarr.c"
@@ -9206,7 +9331,7 @@ void proto_register_ulp(void) {
&ett_ulp_PolygonDescription,
/*--- End of included file: packet-ulp-ettarr.c ---*/
-#line 104 "../../asn1/ulp/packet-ulp-template.c"
+#line 115 "../../asn1/ulp/packet-ulp-template.c"
};
module_t *ulp_module;