diff options
-rw-r--r-- | src/host/trxcon/sched_prim.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/host/trxcon/sched_prim.c b/src/host/trxcon/sched_prim.c index e1c87bbf..2ee06d73 100644 --- a/src/host/trxcon/sched_prim.c +++ b/src/host/trxcon/sched_prim.c @@ -275,8 +275,18 @@ int sched_prim_dummy(struct trx_lchan_state *lchan) /* FIXME: should we do anything for CSD? */ return 0; } else { + uint8_t *cur = prim_buffer; + + if (CHAN_IS_SACCH(chan)) { + /* Add 2-byte SACCH header */ + /* FIXME: How to get TA and MS Tx Power from l1l->trx->tx_power + l1l->trx->ta? */ + cur[0] = cur[1] = 0x00; + cur += 2; + } + /* Copy a fill frame payload */ - memcpy(prim_buffer, lapdm_fill_frame, sizeof(lapdm_fill_frame)); + memcpy(cur, lapdm_fill_frame, sizeof(lapdm_fill_frame)); + cur += sizeof(lapdm_fill_frame); /** * TS 144.006, section 5.2 "Frame delimitation and fill bits" @@ -284,7 +294,7 @@ int sched_prim_dummy(struct trx_lchan_state *lchan) * be set to the binary value "00101011", each fill bit should * be set to a random value when sent by the network. */ - for (i = sizeof(lapdm_fill_frame); i < GSM_MACBLOCK_LEN; i++) + for (i = cur - prim_buffer; i < GSM_MACBLOCK_LEN; i++) prim_buffer[i] = (uint8_t) rand(); /* Define a prim length */ |