pcu: Allow empty rlcmac blocks in data_req
They are used by osmo-pcu to signal idle blocks.
Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4
diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn
index 66b2e21..30982da 100644
--- a/pcu/PCUIF_Components.ttcn
+++ b/pcu/PCUIF_Components.ttcn
@@ -133,12 +133,12 @@
type record BTS_PDTCH_Block {
uint8_t bts_nr,
PCUIF_data raw,
- RlcmacDlBlock dl_block
+ RlcmacDlBlock dl_block optional
};
type record BTS_PTCCH_Block {
uint8_t bts_nr,
PCUIF_data raw,
- PTCCHDownlinkMsg dl_block
+ PTCCHDownlinkMsg dl_block optional
};
type record BTS_CCCH_Block {
uint8_t bts_nr,
@@ -554,14 +554,22 @@
[decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg {
pcu_msg_pdtch.bts_nr := bts_nr;
pcu_msg_pdtch.raw := pcu_msg.u.data_req;
- pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data);
+ if (pcu_msg_pdtch.raw.len != 0) {
+ pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data);
+ } else {
+ pcu_msg_pdtch.dl_block := omit;
+ }
TC.send(pcu_msg_pdtch);
repeat;
}
[decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PTCCH)) -> value pcu_msg {
pcu_msg_ptcch.bts_nr := bts_nr;
pcu_msg_ptcch.raw := pcu_msg.u.data_req;
- pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data);
+ if (pcu_msg_ptcch.raw.len != 0) {
+ pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data);
+ } else {
+ pcu_msg_ptcch.dl_block := omit;
+ }
TC.send(pcu_msg_ptcch);
repeat;
}