aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2023-08-22 17:17:28 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2023-08-29 13:18:03 +0200
commitca5da3767c5fe4bcfaf21901b3a8c75527c3372e (patch)
tree64f6dcacc115e9917df9b667d07386e73ecd3b33
parent436e8b84d0169b0de74622bef5787b3fb22ee28d (diff)
PCUIF_Components: add compatibility for PCU_IF_SAPI_AGCH_2
When we receive a PCUIF_DATA_REQ, f_BTS_CT_handler will mangle the incoming message for us. The resulting BTS_CCCH_Block that is sent up to the component not only contains the PCUIF message, but will also have the already parsed MAC block attached. This currently only works for PCU_IF_SAPI_PCH and PCU_IF_SAPI_PCH_2 but not for PCU_IF_SAPI_AGCH_2. Let's add compatibility for PCU_IF_SAPI_AGCH_2. Related: OS#5927 Change-Id: Ife67bde444d957822a953391b80d01d49fff064b
-rw-r--r--pcu/PCUIF_Components.ttcn9
1 files changed, 8 insertions, 1 deletions
diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn
index 58686259..a18c774d 100644
--- a/pcu/PCUIF_Components.ttcn
+++ b/pcu/PCUIF_Components.ttcn
@@ -502,7 +502,7 @@ runs on RAW_PCU_BTS_CT {
/* Wait until the PCU is connected */
PCUIF.receive(tr_RAW_PCU_EV(PCU_EV_CONNECT));
- var template PCUIF_Sapi tr_ccch_sapi := (PCU_IF_SAPI_PCH, PCU_IF_SAPI_PCH_2, PCU_IF_SAPI_AGCH);
+ var template PCUIF_Sapi tr_ccch_sapi := (PCU_IF_SAPI_PCH, PCU_IF_SAPI_PCH_2, PCU_IF_SAPI_AGCH, PCU_IF_SAPI_AGCH_2);
alt {
/* Wait for TXT.ind (PCU_VERSION) and respond with INFO.ind (SI13) */
[] PCUIF.receive(tr_PCUIF_TXT_IND(bts_nr, PCU_VERSION, ?)) -> value pcu_msg {
@@ -541,6 +541,7 @@ runs on RAW_PCU_BTS_CT {
[decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := tr_ccch_sapi)) -> value pcu_msg {
var octetstring data;
var PCUIF_pch pch;
+ var PCUIF_agch agch;
/* On PCH the payload is prefixed with paging group (3 octets): skip it.
* TODO: add an additional template parameter, so we can match it. */
if (pcu_msg.u.data_req.sapi == PCU_IF_SAPI_PCH) {
@@ -557,6 +558,12 @@ runs on RAW_PCU_BTS_CT {
pcu_msg_rr.imsi := pch.imsi;
pcu_msg_rr.rr_msg := dec_GsmRrMessage(pch.data);
pcu_msg_rr.confirm := pch.confirm;
+ } else if (pcu_msg_rr.raw.sapi == PCU_IF_SAPI_AGCH_2) {
+ agch := dec_PCUIF_agch(pcu_msg_rr.raw.data);
+ pcu_msg_rr.imsi := omit;
+ pcu_msg_rr.msg_id := agch.msg_id;
+ pcu_msg_rr.rr_msg := dec_GsmRrMessage(agch.data);
+ pcu_msg_rr.confirm := agch.confirm;
} else {
pcu_msg_rr.msg_id := omit;
pcu_msg_rr.imsi := omit;