diff options
author | S. Shapira <sswsdev@gmail.com> | 2017-03-15 21:09:16 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2017-03-17 11:20:45 +0000 |
commit | c8112886a7020b14e97ab4c8ccbfe3a36db29930 (patch) | |
tree | 336832de766cda64a6a070e49f4c24e461b166dc /epan | |
parent | 0d5d85924c7a721da82f2684e684bceda9d69826 (diff) |
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>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/asn1/rnsap/packet-rnsap-template.c | 6 | ||||
-rw-r--r-- | epan/dissectors/asn1/rnsap/rnsap.cnf | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-rnsap.c | 25 |
3 files changed, 26 insertions, 12 deletions
diff --git a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c index a337a26086..9850a94fc9 100644 --- a/epan/dissectors/asn1/rnsap/packet-rnsap-template.c +++ b/epan/dissectors/asn1/rnsap/packet-rnsap-template.c @@ -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 */ diff --git a/epan/dissectors/asn1/rnsap/rnsap.cnf b/epan/dissectors/asn1/rnsap/rnsap.cnf index 2c03e67155..9b374e951d 100644 --- a/epan/dissectors/asn1/rnsap/rnsap.cnf +++ b/epan/dissectors/asn1/rnsap/rnsap.cnf @@ -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; } diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c index 9dda4d7dce..44922d8543 100644 --- a/epan/dissectors/packet-rnsap.c +++ b/epan/dissectors/packet-rnsap.c @@ -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" } |