Change in osmo-pcu[master]: sched: energy saving: Avoid Tx dummy blocks on empty PDCH TS

pespin gerrit-no-reply at lists.osmocom.org
Tue Aug 31 08:15:44 UTC 2021


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25242 )

Change subject: sched: energy saving: Avoid Tx dummy blocks on empty PDCH TS
......................................................................

sched: energy saving: Avoid Tx dummy blocks on empty PDCH TS

Related: SYS#4919
Related: OS#4772
Change-Id: I8d66dd5e838748611e7b77b504fc86295f02c019
---
M src/gprs_rlcmac_sched.cpp
1 file changed, 22 insertions(+), 6 deletions(-)

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



diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index 5427e52..00f740e 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -485,12 +485,28 @@
 		gsmtap_cat = tx_is_egprs ? PCU_GSMTAP_C_DL_DATA_EGPRS :
 					   PCU_GSMTAP_C_DL_DATA_GPRS;
 	}
-	/* Prio 3: send dummy contol message */
-	else if ((msg = sched_dummy())) {
-		/* increase counter */
-		gsmtap_cat = PCU_GSMTAP_C_DL_DUMMY;
-	} else {
-		return -ENOMEM;
+	/* Prio 3: send dummy control message if need to poll or USF */
+	else {
+		/* If there's no TBF attached to this PDCH, we can early skip
+		 * since there's nothing to transmit nor to poll/USF. This way
+		 * we help BTS energy saving (on TRX!=C0) by sending nothing
+		 * instead of a dummy block. The early return is done here and
+		 * not at the start of the function because the condition below
+		 * (num_tbfs==0) may not be enough, because temporary dummy TBFs
+		 * created to send Imm Ass Rej (see handle_tbf_reject()) don't
+		 * have a TFI assigned and hence are not attached to the PDCH
+		 * TS, so they don't show up in the count below.
+		 */
+		const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF)
+					+ pdch->num_tbfs(GPRS_RLCMAC_UL_TBF);
+		if (trx != 0 && num_tbfs == 0)
+			return 0;
+		if ((msg = sched_dummy())) {
+			/* increase counter */
+			gsmtap_cat = PCU_GSMTAP_C_DL_DUMMY;
+		} else {
+			return -ENOMEM;
+		}
 	}
 
 	if (tx_is_egprs && pdch->has_gprs_only_tbf_attached()) {

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

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I8d66dd5e838748611e7b77b504fc86295f02c019
Gerrit-Change-Number: 25242
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
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/20210831/ffef7b89/attachment.htm>


More information about the gerrit-log mailing list