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

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Fri Jul 20 14:42:46 UTC 2018


Pau Espin Pedrol has uploaded this change for review. ( 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(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/75/10075/1

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: newchange
Gerrit-Change-Id: I0bdfb529f35253ca7e531bb9984a3839c3bfe7e8
Gerrit-Change-Number: 10075
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180720/467a4a18/attachment.htm>


More information about the gerrit-log mailing list