Change in osmo-bts[master]: trx: scheduler: Keep RTP clock up to date while in DTXu pause

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

Harald Welte gerrit-no-reply at lists.osmocom.org
Sat Jul 21 07:43:00 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/10075 )

Change subject: trx: scheduler: Keep RTP clock up to date while in DTXu pause
......................................................................

trx: scheduler: Keep RTP clock up to date while in DTXu pause

Upper layer requires us to trigger all events coming from lower layers
in order to keep the RTP clock in sync. In this case, this is done by
sending an empty payload to indicate there's no data to send.

Change-Id: I0bdfb529f35253ca7e531bb9984a3839c3bfe7e8
---
M src/osmo-bts-trx/scheduler_trx.c
1 file changed, 12 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 11c5c4e..a22b53f 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -1077,8 +1077,11 @@
 			/* indicate bad frame */
 			switch (tch_mode) {
 			case GSM48_CMODE_SPEECH_V1: /* FR */
-				if (lchan->tch.dtx.ul_sid)
-					return 0; /* DTXu: pause in progress */
+				if (lchan->tch.dtx.ul_sid) {
+					/* DTXu: pause in progress. Push empty payload to upper layers */
+					rc = 0;
+					goto compose_l1sap;
+				}
 
 				/* Perform error concealment if possible */
 				rc = osmo_ecu_fr_conceal(&lchan->ecu_state.fr, tch_data);
@@ -1119,6 +1122,7 @@
 		osmo_ecu_fr_reset(&lchan->ecu_state.fr, tch_data);
 
 	/* TCH or BFI */
+compose_l1sap:
 	return _sched_compose_tch_ind(l1t, tn, (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME, chan,
 		tch_data, rc);
 }
@@ -1265,8 +1269,11 @@
 			/* indicate bad frame */
 			switch (tch_mode) {
 			case GSM48_CMODE_SPEECH_V1: /* HR */
-				if (lchan->tch.dtx.ul_sid)
-					return 0; /* DTXu: pause in progress */
+				if (lchan->tch.dtx.ul_sid) {
+					/* DTXu: pause in progress. Push empty payload to upper layers */
+					rc = 0;
+					goto compose_l1sap;
+				}
 				tch_data[0] = 0x70; /* F = 0, FT = 111 */
 				memset(tch_data + 1, 0, 14);
 				rc = 15;
@@ -1291,6 +1298,7 @@
 	if (rsl_cmode != RSL_CMOD_SPD_SPEECH)
 		return 0;
 
+compose_l1sap:
 	/* TCH or BFI */
 	/* Note on FN 19 or 20: If we received the last burst of a frame,
 	 * it actually starts at FN 8 or 9. A burst starting there, overlaps

-- 
To view, visit https://gerrit.osmocom.org/10075
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I0bdfb529f35253ca7e531bb9984a3839c3bfe7e8
Gerrit-Change-Number: 10075
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180721/50eafb59/attachment.htm>


More information about the gerrit-log mailing list