This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/24846 ) Change subject: osmo-bts-trx: send dummy FACCH in the absense of RTP frames ...................................................................... osmo-bts-trx: send dummy FACCH in the absense of RTP frames If for whatever reason the transmit queue of a TCH/{F,H} contains neither speech frames nor signalling blocks, osmo-bts-trx would currently transmit garbage. Of course, this causes decoding errors at the MS side. Ideally, we should employ an ECU (Error Concealment Unit) for the given codec in use. However, a simpler solution is to transmit dummy LAPDm frames over FACCH. This is what e.g. nanoBTS does. Change-Id: I868afecbcb6890f40c8f146e3ce00e836b794dd3 Related: OS#4823 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 16 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 689925f..8e6298c 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -530,9 +530,16 @@ memset(*bursts_p + 464, 0, 464); } - /* no message at all */ + /* no message at all, send a dummy L2 frame on FACCH */ if (!msg_tch && !msg_facch) { + static const uint8_t dummy[GSM_MACBLOCK_LEN] = { + 0x03, 0x03, 0x01, /* TODO: use randomized padding */ + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + }; + LOGL1SB(DL1P, LOGL_INFO, l1ts, br, "No TCH or FACCH prim for transmit.\n"); + gsm0503_tch_fr_encode(*bursts_p, dummy, sizeof(dummy), 1); goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 4f03bd1..bfebb66 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -417,9 +417,16 @@ } } - /* no message at all */ + /* no message at all, send a dummy L2 frame on FACCH */ if (!msg_tch && !msg_facch && !chan_state->dl_ongoing_facch) { + static const uint8_t dummy[GSM_MACBLOCK_LEN] = { + 0x03, 0x03, 0x01, /* TODO: use randomized padding */ + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, + }; + LOGL1SB(DL1P, LOGL_INFO, l1ts, br, "No TCH or FACCH prim for transmit.\n"); + gsm0503_tch_hr_encode(*bursts_p, dummy, sizeof(dummy)); goto send_burst; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/24846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I868afecbcb6890f40c8f146e3ce00e836b794dd3 Gerrit-Change-Number: 24846 Gerrit-PatchSet: 4 Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier at sysmocom.de> Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210829/4ba07d70/attachment.htm>