Change in osmo-bts[master]: MS Power Control Loop: Use P_CON_INTERVAL=2 by default

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

pespin gerrit-no-reply at lists.osmocom.org
Thu Oct 7 10:47:00 UTC 2021


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

Change subject: MS Power Control Loop: Use P_CON_INTERVAL=2 by default
......................................................................

MS Power Control Loop: Use P_CON_INTERVAL=2 by default

Have a more stable loop with less temporary oscillations at the expense
of increased reaction time.

4 SACCH blocks (P_CON_INTERVAL=2) is the minimum interval to get stable
measurements for the last requested MS Power level. With P_CON_INTERVAL=1,
are also made during a period with stable power being use to transmit,
but the MS Power level used (and announced in MR) is not the last one
requested by the BTS, but the one requested in the previous loop
iteration. This can make the MS and BTS bounce 2 values forth and back,
and create some temporary oscillation.

See osmo-bsc User manual section "Power Control" for more information.

Related: SYS#5371
Change-Id: I91c505447f68714239a4f033d4f06e91893df201
---
M include/osmo-bts/gsm_data.h
M src/common/bts.c
M src/common/gsm_data.c
M src/common/rsl.c
4 files changed, 15 insertions(+), 4 deletions(-)

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



diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index b73df5f..8ae36ca 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -223,6 +223,7 @@
 
 /* Default MS/BS Power Control parameters */
 extern const struct gsm_power_ctrl_params power_ctrl_params_def;
+void power_ctrl_params_def_reset(struct gsm_power_ctrl_params *params, bool is_bs_pwr);
 
 /* Measurement pre-processing state */
 struct gsm_power_ctrl_meas_proc_state {
diff --git a/src/common/bts.c b/src/common/bts.c
index 191c331..b226df2 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -340,8 +340,8 @@
 	bts->rtp_priority = -1;
 
 	/* Default (fall-back) MS/BS Power control parameters */
-	bts->bs_dpc_params = power_ctrl_params_def;
-	bts->ms_dpc_params = power_ctrl_params_def;
+	power_ctrl_params_def_reset(&bts->bs_dpc_params, true);
+	power_ctrl_params_def_reset(&bts->ms_dpc_params, false);
 
 	/* configurable via OML */
 	bts->load.ccch.load_ind_period = 112;
diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c
index 1525328..89a740d 100644
--- a/src/common/gsm_data.c
+++ b/src/common/gsm_data.c
@@ -680,3 +680,11 @@
 		.h_reqt = 6, /* TODO: investigate a reasonable default value */
 	},
 };
+
+void power_ctrl_params_def_reset(struct gsm_power_ctrl_params *params, bool is_bs_pwr)
+{
+	*params = power_ctrl_params_def;
+	if (!is_bs_pwr)
+		/* Trigger loop every fourth SACCH block (1.92s). TS 45.008 sec 4.7.1: */
+		params->ctrl_interval = 2;
+}
diff --git a/src/common/rsl.c b/src/common/rsl.c
index c73b093..89c3b96 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1111,7 +1111,8 @@
 	/* TLV (O) BS Power Parameters IE */
 	if ((ie = TLVP_GET(&tp, RSL_IE_BS_POWER_PARAM)) != NULL) {
 		/* Allocate a new chunk and initialize with default values */
-		params = talloc_memdup(trx, &power_ctrl_params_def, sizeof(*params));
+		params = talloc(trx, struct gsm_power_ctrl_params);
+		power_ctrl_params_def_reset(params, true);
 
 		if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) == 0) {
 			/* Initially it points to the global defaults */
@@ -1128,7 +1129,8 @@
 	/* TLV (O) MS Power Parameters IE */
 	if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) {
 		/* Allocate a new chunk and initialize with default values */
-		params = talloc_memdup(trx, &power_ctrl_params_def, sizeof(*params));
+		params = talloc(trx, struct gsm_power_ctrl_params);
+		power_ctrl_params_def_reset(params, false);
 
 		if (ie->len && parse_power_ctrl_params(params, ie->val, ie->len) == 0) {
 			/* Initially it points to the global defaults */

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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I91c505447f68714239a4f033d4f06e91893df201
Gerrit-Change-Number: 25682
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
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/20211007/e3251638/attachment.htm>


More information about the gerrit-log mailing list