forked from osmocom/wireshark
RNSAP: Call right RRC dissectors for payload.
According to TS 25.423 both 'Uplink Signaling Transfer' and 'Downlink Signalling Transfer' carry CCCH messages. Hence the RRC-UL-CCCH and RRC-DL-CCCH dissectors should be called for the 'L3 Information' fields in these messages (respectively) Change-Id: Ief2aab77d2851746e6374729eaf8a0a5b115d7d7 Reviewed-on: https://code.wireshark.org/review/20560 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
0d5d85924c
commit
c8112886a7
|
@ -50,7 +50,8 @@
|
|||
void proto_register_rnsap(void);
|
||||
void proto_reg_handoff_rnsap(void);
|
||||
|
||||
static dissector_handle_t rrc_dl_dcch_handle = NULL;
|
||||
static dissector_handle_t rrc_dl_ccch_handle = NULL;
|
||||
static dissector_handle_t rrc_ul_ccch_handle = NULL;
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_rnsap = -1;
|
||||
|
@ -176,7 +177,8 @@ void proto_register_rnsap(void) {
|
|||
void
|
||||
proto_reg_handoff_rnsap(void)
|
||||
{
|
||||
rrc_dl_dcch_handle = find_dissector_add_dependency("rrc.dl.dcch", proto_rnsap);
|
||||
rrc_dl_ccch_handle = find_dissector_add_dependency("rrc.dl.ccch", proto_rnsap);
|
||||
rrc_ul_ccch_handle = find_dissector_add_dependency("rrc.ul.ccch", proto_rnsap);
|
||||
|
||||
dissector_add_uint("sccp.ssn", SCCP_SSN_RNSAP, rnsap_handle);
|
||||
/* Add heuristic dissector */
|
||||
|
|
|
@ -116,9 +116,14 @@ ProtocolIE-ContainerPairList
|
|||
switch (ProcedureCode) {
|
||||
|
||||
case RNSAP_ID_DOWNLINKSIGNALLINGTRANSFER:
|
||||
parameter_handle = rrc_dl_dcch_handle;
|
||||
/* TODO: seperate into Iur and Iur-g cases: */
|
||||
/* For the Iur-g interface, L3 message is a GERAN-RRC message for which a dissector does not currently exist */
|
||||
/* For the Iur interface, L3 message is a UMTS RRC DL-CCCH message */
|
||||
parameter_handle = rrc_dl_ccch_handle;
|
||||
break;
|
||||
case RNSAP_ID_UPLINKSIGNALLINGTRANSFER:
|
||||
parameter_handle = rrc_ul_ccch_handle;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1280,7 +1280,8 @@ typedef enum _ProtocolIE_ID_enum {
|
|||
void proto_register_rnsap(void);
|
||||
void proto_reg_handoff_rnsap(void);
|
||||
|
||||
static dissector_handle_t rrc_dl_dcch_handle = NULL;
|
||||
static dissector_handle_t rrc_dl_ccch_handle = NULL;
|
||||
static dissector_handle_t rrc_ul_ccch_handle = NULL;
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_rnsap = -1;
|
||||
|
@ -4394,7 +4395,7 @@ static int hf_rnsap_value_04 = -1; /* UnsuccessfulOutcome_value *
|
|||
static int hf_rnsap_value_05 = -1; /* Outcome_value */
|
||||
|
||||
/*--- End of included file: packet-rnsap-hf.c ---*/
|
||||
#line 59 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 60 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_rnsap = -1;
|
||||
|
@ -5831,7 +5832,7 @@ static gint ett_rnsap_UnsuccessfulOutcome = -1;
|
|||
static gint ett_rnsap_Outcome = -1;
|
||||
|
||||
/*--- End of included file: packet-rnsap-ett.c ---*/
|
||||
#line 64 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 65 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
|
@ -8796,9 +8797,14 @@ dissect_rnsap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
switch (ProcedureCode) {
|
||||
|
||||
case RNSAP_ID_DOWNLINKSIGNALLINGTRANSFER:
|
||||
parameter_handle = rrc_dl_dcch_handle;
|
||||
/* TODO: seperate into Iur and Iur-g cases: */
|
||||
/* For the Iur-g interface, L3 message is a GERAN-RRC message for which a dissector does not currently exist */
|
||||
/* For the Iur interface, L3 message is a UMTS RRC DL-CCCH message */
|
||||
parameter_handle = rrc_dl_ccch_handle;
|
||||
break;
|
||||
case RNSAP_ID_UPLINKSIGNALLINGTRANSFER:
|
||||
parameter_handle = rrc_ul_ccch_handle;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -49024,7 +49030,7 @@ static int dissect_NULL_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
|
|||
|
||||
|
||||
/*--- End of included file: packet-rnsap-fn.c ---*/
|
||||
#line 90 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 91 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
|
@ -61502,7 +61508,7 @@ void proto_register_rnsap(void) {
|
|||
"Outcome_value", HFILL }},
|
||||
|
||||
/*--- End of included file: packet-rnsap-hfarr.c ---*/
|
||||
#line 147 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 148 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
|
@ -62940,7 +62946,7 @@ void proto_register_rnsap(void) {
|
|||
&ett_rnsap_Outcome,
|
||||
|
||||
/*--- End of included file: packet-rnsap-ettarr.c ---*/
|
||||
#line 153 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 154 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
};
|
||||
|
||||
|
||||
|
@ -62967,7 +62973,8 @@ void proto_register_rnsap(void) {
|
|||
void
|
||||
proto_reg_handoff_rnsap(void)
|
||||
{
|
||||
rrc_dl_dcch_handle = find_dissector_add_dependency("rrc.dl.dcch", proto_rnsap);
|
||||
rrc_dl_ccch_handle = find_dissector_add_dependency("rrc.dl.ccch", proto_rnsap);
|
||||
rrc_ul_ccch_handle = find_dissector_add_dependency("rrc.ul.ccch", proto_rnsap);
|
||||
|
||||
dissector_add_uint("sccp.ssn", SCCP_SSN_RNSAP, rnsap_handle);
|
||||
/* Add heuristic dissector */
|
||||
|
@ -63899,7 +63906,7 @@ proto_reg_handoff_rnsap(void)
|
|||
|
||||
|
||||
/*--- End of included file: packet-rnsap-dis-tab.c ---*/
|
||||
#line 186 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
#line 188 "./asn1/rnsap/packet-rnsap-template.c"
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue