diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2023-08-22 17:17:28 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2023-08-29 13:18:03 +0200 |
commit | ca5da3767c5fe4bcfaf21901b3a8c75527c3372e (patch) | |
tree | 64f6dcacc115e9917df9b667d07386e73ecd3b33 | |
parent | 436e8b84d0169b0de74622bef5787b3fb22ee28d (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.ttcn | 9 |
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; |