aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ulp.c
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2006-05-16 22:00:18 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2006-05-16 22:00:18 +0000
commit2495bf7111233dd8522e818e736940a9e3db4378 (patch)
tree5f2069d8424da67286ccce86bf9c96636e80dad4 /epan/dissectors/packet-ulp.c
parent496595d316d1b94d8f3130b1d757637955de62a1 (diff)
PER:
Adapt dissect_per_octet_string to unaligned PER. Call rrlp dissector from ulp dissector. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@18176 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-ulp.c')
-rw-r--r--epan/dissectors/packet-ulp.c42
1 files changed, 32 insertions, 10 deletions
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index ee7cdb3248..fcb5abe99b 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -56,6 +56,7 @@
#define PFNAME "ulp"
static dissector_handle_t ulp_handle=NULL;
+static dissector_handle_t rrlp_handle;
/* IANA Registered Ports
* oma-ulp 7275/tcp OMA UserPlane Location
@@ -206,7 +207,7 @@ static int hf_ulp_clientNameType = -1; /* FormatIndicator */
static int hf_ulp_posPayLoad = -1; /* PosPayLoad */
static int hf_ulp_tia801payload = -1; /* OCTET_STRING_SIZE_1_8192 */
static int hf_ulp_rrcPayload = -1; /* OCTET_STRING_SIZE_1_8192 */
-static int hf_ulp_rrlpPayload = -1; /* OCTET_STRING_SIZE_1_8192 */
+static int hf_ulp_rrlpPayload = -1; /* RRLPPayload */
static int hf_ulp_sETCapabilities = -1; /* SETCapabilities */
static int hf_ulp_requestedAssistData = -1; /* RequestedAssistData */
static int hf_ulp_locationId = -1; /* LocationId */
@@ -246,7 +247,7 @@ static int hf_ulp_rrlp = -1; /* BOOLEAN */
static int hf_ulp_rrc = -1; /* BOOLEAN */
/*--- End of included file: packet-ulp-hf.c ---*/
-#line 63 "packet-ulp-template.c"
+#line 64 "packet-ulp-template.c"
/* Initialize the subtree pointers */
static gint ett_ulp = -1;
@@ -313,7 +314,7 @@ static gint ett_ulp_PosTechnology = -1;
static gint ett_ulp_PosProtocol = -1;
/*--- End of included file: packet-ulp-ett.c ---*/
-#line 67 "packet-ulp-template.c"
+#line 68 "packet-ulp-template.c"
/* Include constants */
@@ -326,7 +327,7 @@ static gint ett_ulp_PosProtocol = -1;
#define maxClientLength 50
/*--- End of included file: packet-ulp-val.h ---*/
-#line 70 "packet-ulp-template.c"
+#line 71 "packet-ulp-template.c"
/*--- Included file: packet-ulp-fn.c ---*/
@@ -2315,8 +2316,27 @@ static int dissect_tia801payload(tvbuff_t *tvb, int offset, packet_info *pinfo,
static int dissect_rrcPayload(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
return dissect_ulp_OCTET_STRING_SIZE_1_8192(tvb, offset, pinfo, tree, hf_ulp_rrcPayload);
}
+
+
+
+static int
+dissect_ulp_RRLPPayload(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+#line 33 "ulp.cnf"
+ tvbuff_t *rrlp_tvb;
+
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 8192, &rrlp_tvb);
+
+
+ if (rrlp_tvb){
+ call_dissector(rrlp_handle, rrlp_tvb, pinfo, tree);
+
+ }
+
+ return offset;
+}
static int dissect_rrlpPayload(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
- return dissect_ulp_OCTET_STRING_SIZE_1_8192(tvb, offset, pinfo, tree, hf_ulp_rrlpPayload);
+ return dissect_ulp_RRLPPayload(tvb, offset, pinfo, tree, hf_ulp_rrlpPayload);
}
@@ -2646,7 +2666,7 @@ static void dissect_ULP_PDU_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/*--- End of included file: packet-ulp-fn.c ---*/
-#line 72 "packet-ulp-template.c"
+#line 73 "packet-ulp-template.c"
/*--- proto_reg_handoff_ulp ---------------------------------------*/
void
@@ -2660,6 +2680,8 @@ proto_reg_handoff_ulp(void)
/* application/oma-supl-ulp */
dissector_add_string("media_type","application/oma-supl-ulp", ulp_handle);
+ rrlp_handle = find_dissector("rrlp");
+
}
@@ -2786,11 +2808,11 @@ void proto_register_ulp(void) {
"SlpSessionID/slpId", HFILL }},
{ &hf_ulp_ipv4Address,
{ "ipv4Address", "ulp.ipv4Address",
- FT_IPv4, BASE_NONE, NULL, 0,
+ FT_BYTES, BASE_HEX, NULL, 0,
"IPAddress/ipv4Address", HFILL }},
{ &hf_ulp_ipv6Address,
{ "ipv6Address", "ulp.ipv6Address",
- FT_IPv6, BASE_NONE, NULL, 0,
+ FT_BYTES, BASE_HEX, NULL, 0,
"IPAddress/ipv6Address", HFILL }},
{ &hf_ulp_fQDN,
{ "fQDN", "ulp.fQDN",
@@ -3370,7 +3392,7 @@ void proto_register_ulp(void) {
"PosProtocol/rrc", HFILL }},
/*--- End of included file: packet-ulp-hfarr.c ---*/
-#line 95 "packet-ulp-template.c"
+#line 98 "packet-ulp-template.c"
};
/* List of subtrees */
@@ -3439,7 +3461,7 @@ void proto_register_ulp(void) {
&ett_ulp_PosProtocol,
/*--- End of included file: packet-ulp-ettarr.c ---*/
-#line 101 "packet-ulp-template.c"
+#line 104 "packet-ulp-template.c"
};
module_t *ulp_module;