summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndersBroman <anders.broman@ericsson.com>2017-03-21 14:36:38 +0100
committerAnders Broman <a.broman58@gmail.com>2017-03-21 15:26:12 +0000
commitd9a71c496e15ce269a86c7e2749dbf74672e918f (patch)
tree1eb4f31d801501c90f1af47fad9c432d84d638c7
parent041cc881a970512f8c63fe9a5a46897abd5da4a2 (diff)
downloadwireshark-d9a71c496e15ce269a86c7e2749dbf74672e918f.tar.gz
[RANAP] Dissect RIMInformation.
Change-Id: I39281c36e55b09427b3022362964c934be433ef1 Reviewed-on: https://code.wireshark.org/review/20655 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/asn1/ranap/packet-ranap-template.c2
-rw-r--r--epan/dissectors/asn1/ranap/ranap.cnf9
-rw-r--r--epan/dissectors/packet-ranap.c27
3 files changed, 30 insertions, 8 deletions
diff --git a/epan/dissectors/asn1/ranap/packet-ranap-template.c b/epan/dissectors/asn1/ranap/packet-ranap-template.c
index e99e9bc843..253f1796dc 100644
--- a/epan/dissectors/asn1/ranap/packet-ranap-template.c
+++ b/epan/dissectors/asn1/ranap/packet-ranap-template.c
@@ -68,6 +68,7 @@ static int proto_ranap = -1;
static dissector_handle_t rrc_s_to_trnc_handle = NULL;
static dissector_handle_t rrc_t_to_srnc_handle = NULL;
static dissector_handle_t rrc_ho_to_utran_cmd = NULL;
+static dissector_handle_t bssgp_handle = NULL;
static int hf_ranap_transportLayerAddress_ipv4 = -1;
static int hf_ranap_transportLayerAddress_ipv6 = -1;
@@ -382,6 +383,7 @@ proto_reg_handoff_ranap(void)
rrc_s_to_trnc_handle = find_dissector_add_dependency("rrc.s_to_trnc_cont", proto_ranap);
rrc_t_to_srnc_handle = find_dissector_add_dependency("rrc.t_to_srnc_cont", proto_ranap);
rrc_ho_to_utran_cmd = find_dissector_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
+ bssgp_handle = find_dissector("bssgp");
initialized = TRUE;
#include "packet-ranap-dis-tab.c"
} else {
diff --git a/epan/dissectors/asn1/ranap/ranap.cnf b/epan/dissectors/asn1/ranap/ranap.cnf
index 73a77a58c4..877d64c65b 100644
--- a/epan/dissectors/asn1/ranap/ranap.cnf
+++ b/epan/dissectors/asn1/ranap/ranap.cnf
@@ -402,6 +402,15 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
if (value_tvb)
dissect_s1ap_UE_HistoryInformation_PDU(value_tvb, %(ACTX)s->pinfo, tree, NULL);
+# Contains the BSSGP RIM PDU as defined in TS 48.018 [36].
+#.FN_BODY RIMInformation VAL_PTR=&value_tvb
+ tvbuff_t *value_tvb = NULL;
+
+ %(DEFAULT_BODY)s
+ if (value_tvb){
+ call_dissector_only(bssgp_handle, value_tvb, %(ACTX)s->pinfo, tree, NULL);
+ }
+
#.TYPE_ATTR
ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ranap_ProtocolIE_ID_vals_ext
GTP-TEI TYPE = FT_UINT32 DISPLAY = BASE_HEX_DEC STRINGS = NULL
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index 28107f3f97..bd86fa2967 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -421,6 +421,7 @@ static int proto_ranap = -1;
static dissector_handle_t rrc_s_to_trnc_handle = NULL;
static dissector_handle_t rrc_t_to_srnc_handle = NULL;
static dissector_handle_t rrc_ho_to_utran_cmd = NULL;
+static dissector_handle_t bssgp_handle = NULL;
static int hf_ranap_transportLayerAddress_ipv4 = -1;
static int hf_ranap_transportLayerAddress_ipv6 = -1;
@@ -1152,7 +1153,7 @@ static int hf_ranap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_valu
static int hf_ranap_value = -1; /* T_value */
/*--- End of included file: packet-ranap-hf.c ---*/
-#line 77 "./asn1/ranap/packet-ranap-template.c"
+#line 78 "./asn1/ranap/packet-ranap-template.c"
/* Initialize the subtree pointers */
static int ett_ranap = -1;
@@ -1490,7 +1491,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1;
static gint ett_ranap_Outcome = -1;
/*--- End of included file: packet-ranap-ett.c ---*/
-#line 84 "./asn1/ranap/packet-ranap-template.c"
+#line 85 "./asn1/ranap/packet-ranap-template.c"
/* Global variables */
static guint32 ProcedureCode;
@@ -5143,8 +5144,17 @@ dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_ranap_RIMInformation(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,
- NO_BOUND, NO_BOUND, FALSE, NULL);
+#line 407 "./asn1/ranap/ranap.cnf"
+ tvbuff_t *value_tvb = NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ NO_BOUND, NO_BOUND, FALSE, &value_tvb);
+
+ if (value_tvb){
+ call_dissector_only(bssgp_handle, value_tvb, actx->pinfo, tree, NULL);
+ }
+
+
return offset;
}
@@ -13187,7 +13197,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
/*--- End of included file: packet-ranap-fn.c ---*/
-#line 146 "./asn1/ranap/packet-ranap-template.c"
+#line 147 "./asn1/ranap/packet-ranap-template.c"
static int
dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -16261,7 +16271,7 @@ void proto_register_ranap(void) {
NULL, HFILL }},
/*--- End of included file: packet-ranap-hfarr.c ---*/
-#line 331 "./asn1/ranap/packet-ranap-template.c"
+#line 332 "./asn1/ranap/packet-ranap-template.c"
};
/* List of subtrees */
@@ -16600,7 +16610,7 @@ void proto_register_ranap(void) {
&ett_ranap_Outcome,
/*--- End of included file: packet-ranap-ettarr.c ---*/
-#line 339 "./asn1/ranap/packet-ranap-template.c"
+#line 340 "./asn1/ranap/packet-ranap-template.c"
};
@@ -16647,6 +16657,7 @@ proto_reg_handoff_ranap(void)
rrc_s_to_trnc_handle = find_dissector_add_dependency("rrc.s_to_trnc_cont", proto_ranap);
rrc_t_to_srnc_handle = find_dissector_add_dependency("rrc.t_to_srnc_cont", proto_ranap);
rrc_ho_to_utran_cmd = find_dissector_add_dependency("rrc.irat.ho_to_utran_cmd", proto_ranap);
+ bssgp_handle = find_dissector("bssgp");
initialized = TRUE;
/*--- Included file: packet-ranap-dis-tab.c ---*/
@@ -16981,7 +16992,7 @@ proto_reg_handoff_ranap(void)
/*--- End of included file: packet-ranap-dis-tab.c ---*/
-#line 387 "./asn1/ranap/packet-ranap-template.c"
+#line 389 "./asn1/ranap/packet-ranap-template.c"
} else {
dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
}