Change in osmo-bts[master]: trx: Use NOPE indications from OsmoTRX for TCH/F and TCH/H

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/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Mar 22 19:17:29 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/17566 )

Change subject: trx: Use NOPE indications from OsmoTRX for TCH/F and TCH/H
......................................................................

trx: Use NOPE indications from OsmoTRX for TCH/F and TCH/H

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

For voice, it can lead to lost RTP frames in uplink, which is also
problematic.

Let's deal with burst_len=0 in rx_tch*_fn() and use it as nope_fn.

Closes: OS#4661
Related: OS#2975
Change-Id: I0fbf4617daf24bd8aecfd9cfe1efd66cf73a277a
---
M src/common/scheduler.c
M src/osmo-bts-trx/scheduler_trx.c
2 files changed, 13 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, but someone else must approve
  fixeria: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved



diff --git a/src/common/scheduler.c b/src/common/scheduler.c
index e8df537..054b6ca 100644
--- a/src/common/scheduler.c
+++ b/src/common/scheduler.c
@@ -191,6 +191,7 @@
 		.rts_fn = rts_tchf_fn,
 		.dl_fn = tx_tchf_fn,
 		.ul_fn = rx_tchf_fn,
+		.nope_fn = rx_tchf_fn,
 	},
 	[TRXC_TCHH_0] = {
 		.name = "TCH/H(0)", /* 3GPP TS 05.02, section 3.2 */
@@ -211,6 +212,7 @@
 		.rts_fn = rts_tchh_fn,
 		.dl_fn = tx_tchh_fn,
 		.ul_fn = rx_tchh_fn,
+		.nope_fn = rx_tchh_fn,
 	},
 	[TRXC_TCHH_1] = {
 		.name = "TCH/H(1)", /* 3GPP TS 05.02, section 3.2 */
@@ -222,6 +224,7 @@
 		.rts_fn = rts_tchh_fn,
 		.dl_fn = tx_tchh_fn,
 		.ul_fn = rx_tchh_fn,
+		.nope_fn = rx_tchh_fn,
 	},
 	[TRXC_SDCCH4_0] = {
 		.name = "SDCCH/4(0)", /* 3GPP TS 05.02, section 3.3.4.1 */
diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 585e887..f17354a 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -1165,8 +1165,11 @@
 
 	/* copy burst to end of buffer of 8 bursts */
 	burst = *bursts_p + bid * 116 + 464;
-	memcpy(burst, bi->burst + 3, 58);
-	memcpy(burst + 58, bi->burst + 87, 58);
+	if (bi->burst_len > 0) {
+		memcpy(burst, bi->burst + 3, 58);
+		memcpy(burst + 58, bi->burst + 87, 58);
+	} else
+		memset(burst, 0, 116);
 
 	/* wait until complete set of bursts */
 	if (bid != 3)
@@ -1360,8 +1363,11 @@
 
 	/* copy burst to end of buffer of 6 bursts */
 	burst = *bursts_p + bid * 116 + 464;
-	memcpy(burst, bi->burst + 3, 58);
-	memcpy(burst + 58, bi->burst + 87, 58);
+	if (bi->burst_len > 0) {
+		memcpy(burst, bi->burst + 3, 58);
+		memcpy(burst + 58, bi->burst + 87, 58);
+	} else
+		memset(burst, 0, 116);
 
 	/* wait until complete set of bursts */
 	if (bid != 1)

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/17566
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I0fbf4617daf24bd8aecfd9cfe1efd66cf73a277a
Gerrit-Change-Number: 17566
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <axilirator at gmail.com>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
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/20200322/c76627b1/attachment.htm>


More information about the gerrit-log mailing list