diff options
author | Harld Welte <laforge@osmocom.org> | 2020-03-22 12:32:01 +0000 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2020-03-22 14:06:56 +0100 |
commit | e2f9d0eabe6022f06f81c59cd62660b199fdb2cf (patch) | |
tree | e5347693d9fa23ed87c1a0de652c8e2c5a080394 | |
parent | 4e07b83a64553f7f71d7f685ebb31d07fa7186f2 (diff) |
trx: Use NOPE indications on SDCCH
Without using the NOPE indication it might happen that we get
into the following situation:
* bursts 0,1,2 of a given block are received
* burst 3 is lost on the radio interface, OsmoTRX sends NOPE
* osmo-bts-trx doesn't pass the NOPE the the rx_tch*_fn()
* we never detect the end of the block, never perform decoding
and even if the burst could be fully decoded, we loose the block
Related: OS#4661
Related: OS#2975
Change-Id: Idfc5c9a23db808c5f87ef5646c7e1d1cd3127371
-rw-r--r-- | src/common/scheduler.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 054b6ca2..652582bb 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -236,6 +236,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH4_1] = { .name = "SDCCH/4(1)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -247,6 +248,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH4_2] = { .name = "SDCCH/4(2)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -258,6 +260,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH4_3] = { .name = "SDCCH/4(3)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -269,6 +272,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_0] = { .name = "SDCCH/8(0)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -280,6 +284,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_1] = { .name = "SDCCH/8(1)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -291,6 +296,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_2] = { .name = "SDCCH/8(2)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -302,6 +308,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_3] = { .name = "SDCCH/8(3)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -313,6 +320,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_4] = { .name = "SDCCH/8(4)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -324,6 +332,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_5] = { .name = "SDCCH/8(5)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -335,6 +344,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_6] = { .name = "SDCCH/8(6)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -346,6 +356,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SDCCH8_7] = { .name = "SDCCH/8(7)", /* 3GPP TS 05.02, section 3.3.4.1 */ @@ -357,6 +368,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_data_fn, .dl_fn = tx_data_fn, .ul_fn = rx_data_fn, + .nope_fn = rx_data_fn, }, [TRXC_SACCHTF] = { .name = "SACCH/TF", /* 3GPP TS 05.02, section 3.3.4.1 */ |