pcu: Fix incorrect FN being send over PCUIF to PCU

The event FN contains the current FN, but the message should contain the
FN of the first burst of the block.

Change-Id: Iba0b1d1a3d7d875c5443a7bcaff399f9681624ad
This commit is contained in:
Pau Espin 2019-12-04 21:40:25 +01:00 committed by laforge
parent 6e3b68988a
commit 6072725622
1 changed files with 8 additions and 3 deletions

View File

@ -278,6 +278,7 @@ private altstep as_BTS_CT_TDMASched(integer bts_nr)
runs on RAW_PCU_BTS_CT {
var PCUIF_Message pcu_msg;
var RAW_PCU_Event event;
var integer ev_begin_fn;
[] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_BEG)) -> value event {
/* If the RTS queue for PDTCH is not empty, send a message */
@ -296,23 +297,27 @@ runs on RAW_PCU_BTS_CT {
repeat;
}
[lengthof(pdtch_data_queue) > 0] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PDTCH_BLOCK_END)) -> value event {
/* FN matching the beginning of current block: */
ev_begin_fn := event.data.tdma_fn - 3;
/* Dequeue a DATA.ind message */
f_PCUIF_MsgQueue_dequeue(pdtch_data_queue, pcu_msg);
/* Patch TDMA frame / block number */
pcu_msg.u.data_ind.fn := event.data.tdma_fn;
pcu_msg.u.data_ind.fn := ev_begin_fn;
pcu_msg.u.data_ind.block_nr := 0; /* FIXME! */
PCUIF.send(pcu_msg); /* Send to the PCU and notify the TC */
TC.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PDTCH_BLOCK_SENT, event.data.tdma_fn));
TC.send(ts_RAW_PCU_CLCK_EV(TDMA_EV_PDTCH_BLOCK_SENT, ev_begin_fn));
repeat;
}
[lengthof(ptcch_rts_queue) > 0] CLCK.receive(tr_RAW_PCU_EV(TDMA_EV_PTCCH_DL_BLOCK)) -> value event {
/* FN matching the beginning of current block (PTCCH is interleaved over 4 non-consecutive bursts): */
ev_begin_fn := event.data.tdma_fn - 78;
/* Dequeue an RTS.req message for PTCCH */
f_PCUIF_MsgQueue_dequeue(ptcch_rts_queue, pcu_msg);
/* Patch TDMA frame / block number and send */
pcu_msg.u.rts_req.fn := event.data.tdma_fn;
pcu_msg.u.rts_req.fn := ev_begin_fn;
pcu_msg.u.rts_req.block_nr := 0; /* FIXME! */
PCUIF.send(pcu_msg);
repeat;