diff options
Diffstat (limited to 'src/common/scheduler.c')
-rw-r--r-- | src/common/scheduler.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 3adfc498..fe93c32b 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1349,6 +1349,13 @@ int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi) l1cs = &l1ts->chan_state[chan]; func = trx_chan_desc[chan].ul_fn; + /* TODO: handle noise measurements */ + if (chan == TRXC_IDLE && bi->flags & TRX_BI_F_NOPE_IND) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, bi->tn, chan, bi->fn, + "Rx noise measurement (%d)\n", bi->rssi); + return -ENOTSUP; + } + /* check if channel is active */ if (!TRX_CHAN_IS_ACTIVE(l1cs, chan)) return -EINVAL; @@ -1364,6 +1371,14 @@ int trx_sched_ul_burst(struct l1sched_trx *l1t, struct trx_ul_burst_ind *bi) l1cs->last_tdma_fn = bi->fn; l1cs->proc_tdma_fs++; + /* handle NOPE indications (if the handler is present) */ + if (bi->flags & TRX_BI_F_NOPE_IND) { + func = trx_chan_desc[chan].nope_fn; + if (!func) + return 0; + return func(l1t, chan, bid, bi); + } + /* decrypt */ if (bi->burst_len && l1cs->ul_encr_algo) { ubit_t ks[114]; |