pcu: Fix block_nr in tx PCUIF
Change-Id: Ic816862d8bdca1ea9b8c34b49129beb7e055258c
diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn
index be7aaeb..66b2e21 100644
--- a/pcu/PCUIF_Components.ttcn
+++ b/pcu/PCUIF_Components.ttcn
@@ -374,6 +374,11 @@
}
}
+private function fn2macblock(uint32_t fn) return uint8_t
+{
+ return (fn mod 52) / 4;
+}
+
/* Get first message from queue. true if non-empty, false otherwise */
private function f_tx_data_ind_fn(integer bts_nr, integer fn)
runs on RAW_PCU_BTS_CT
@@ -399,7 +404,7 @@
f_PCUIF_MsgQueue_dequeue(pdtch_data_queue, pcu_msg);
/* Patch TDMA frame / block number */
pcu_msg.u.data_ind.fn := fn;
- pcu_msg.u.data_ind.block_nr := 0; /* FIXME! */
+ pcu_msg.u.data_ind.block_nr := fn2macblock(fn);
//log(prefix, "DATA.ind");
} else if (has_msg and pcu_msg.u.data_ind.fn < fn) {
setverdict(fail, "We are late scheduling the block! ", pcu_msg.u.data_ind.fn, " < ", fn);
@@ -439,7 +444,7 @@
/* Patch TDMA frame / block number and send */
pcu_msg.u.rts_req.fn := event.data.tdma_fn;
- pcu_msg.u.rts_req.block_nr := 0; /* FIXME! */
+ pcu_msg.u.rts_req.block_nr := fn2macblock(event.data.tdma_fn);
PCUIF.send(pcu_msg);
}
@@ -462,7 +467,7 @@
/* Patch TDMA frame / block number and send */
pcu_msg.u.rts_req.fn := ev_begin_fn;
- pcu_msg.u.rts_req.block_nr := 0; /* FIXME! */
+ pcu_msg.u.rts_req.block_nr := fn2macblock(ev_begin_fn);
PCUIF.send(pcu_msg);
repeat;
}