Change in osmo-bts[master]: struct gsm_bts: move ul_power_{target, hysteresis} to ul_power_ctrl

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

fixeria gerrit-no-reply at lists.osmocom.org
Wed Dec 2 13:56:50 UTC 2020


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

Change subject: struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl
......................................................................

struct gsm_bts: move ul_power_{target,hysteresis} to ul_power_ctrl

Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df
Related: SYS#4918
---
M include/osmo-bts/bts.h
M src/common/bts.c
M src/common/power_control.c
M src/common/vty.c
M src/osmo-bts-lc15/oml.c
M src/osmo-bts-oc2g/oml.c
M src/osmo-bts-sysmo/oml.c
M src/osmo-bts-sysmo/sysmobts_vty.c
M src/osmo-bts-trx/trx_vty.c
M tests/power/power_test.c
10 files changed, 37 insertions(+), 37 deletions(-)

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



diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h
index ce7d9d4..66b03e1 100644
--- a/include/osmo-bts/bts.h
+++ b/include/osmo-bts/bts.h
@@ -299,12 +299,12 @@
 		bool vty_override;	/* OML value overridden by VTY */
 	} radio_link_timeout;
 
-	/* TODO: move it to bts->ul_power_ctrl struct */
-	int ul_power_target;		/* Uplink Rx power target */
-	int ul_power_hysteresis;	/* Tolerable Uplink Rx power deviation */
-
 	/* Uplink power control */
 	struct {
+		/* Target value to strive to */
+		int target;
+		/* Tolerated deviation from target */
+		int hysteresis;
 		/* UL RSSI filtering algorithm */
 		enum ms_ul_pf_algo pf_algo;
 		/* (Optional) filtering parameters */
diff --git a/src/common/bts.c b/src/common/bts.c
index a1f9101..6375241 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -323,8 +323,8 @@
 
 	/* configurable via VTY */
 	bts->paging_state = paging_init(bts, 200, 0);
-	bts->ul_power_target = -75;	/* dBm default */
-	bts->ul_power_hysteresis = 3;	/* -78 .. -72 dBm */
+	bts->ul_power_ctrl.target = -75;	/* dBm default */
+	bts->ul_power_ctrl.hysteresis = 3;	/* -78 .. -72 dBm */
 	bts->ul_power_ctrl.pf_algo = MS_UL_PF_ALGO_EWMA;
 	bts->ul_power_ctrl.pf.ewma.alpha = 50; /* 50% smoothing */
 	bts->rtp_jitter_adaptive = false;
diff --git a/src/common/power_control.c b/src/common/power_control.c
index be6df48..dc5636c 100644
--- a/src/common/power_control.c
+++ b/src/common/power_control.c
@@ -141,15 +141,15 @@
 
 	/* How many dBs measured power should be increased (+) or decreased (-)
 	   to reach expected power. */
-	diff = bts->ul_power_target - avg_ul_rssi_dbm;
+	diff = bts->ul_power_ctrl.target - avg_ul_rssi_dbm;
 
 
 	/* Tolerate small deviations from 'rx-target' */
-	if (abs(diff) <= bts->ul_power_hysteresis) {
+	if (abs(diff) <= bts->ul_power_ctrl.hysteresis) {
 		LOGPLCHAN(lchan, DLOOP, LOGL_INFO,
 			  "Keeping MS power at control level %d (%d dBm) because diff %d dBm "
 			  "from 'rx-target' %d dBm is not significant (hysteresis %d dBm)\n",
-			  ms_power_lvl, ms_dbm, diff, bts->ul_power_target, bts->ul_power_hysteresis);
+			  ms_power_lvl, ms_dbm, diff, bts->ul_power_ctrl.target, bts->ul_power_ctrl.hysteresis);
 		/* Keep the current power level in sync (just to be sure) */
 		lchan->ms_power_ctrl.current = ms_power_lvl;
 		bts_model_adjst_ms_pwr(lchan);
@@ -188,7 +188,7 @@
 			  "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n",
 			  new_power_lvl, new_dbm,
 			  ms_power_lvl, lchan->ms_power_ctrl.max,
-			  avg_ul_rssi_dbm, bts->ul_power_target);
+			  avg_ul_rssi_dbm, bts->ul_power_ctrl.target);
 		return 0;
 	}
 
@@ -198,7 +198,7 @@
 		  (new_dbm > current_dbm) ? "Raising" : "Lowering",
 		  lchan->ms_power_ctrl.current, current_dbm, new_power_lvl, new_dbm,
 		  ms_power_lvl, lchan->ms_power_ctrl.max,
-		  avg_ul_rssi_dbm, bts->ul_power_target);
+		  avg_ul_rssi_dbm, bts->ul_power_ctrl.target);
 
 	/* store the resulting new MS power level in the lchan */
 	lchan->ms_power_ctrl.current = new_power_lvl;
diff --git a/src/common/vty.c b/src/common/vty.c
index 7baddef..34e7cfa 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -255,9 +255,9 @@
 		VTY_NEWLINE);
 	vty_out(vty, " paging lifetime %u%s", paging_get_lifetime(bts->paging_state),
 		VTY_NEWLINE);
-	vty_out(vty, " uplink-power-target %d", bts->ul_power_target);
-	if (bts->ul_power_hysteresis > 0)
-		vty_out(vty, " hysteresis %d", bts->ul_power_hysteresis);
+	vty_out(vty, " uplink-power-target %d", bts->ul_power_ctrl.target);
+	if (bts->ul_power_ctrl.hysteresis > 0)
+		vty_out(vty, " hysteresis %d", bts->ul_power_ctrl.hysteresis);
 	vty_out(vty, "%s", VTY_NEWLINE);
 
 	/* MS Tx power filtering algorithm and parameters */
@@ -633,8 +633,8 @@
 {
 	struct gsm_bts *bts = vty->index;
 
-	bts->ul_power_target = atoi(argv[0]);
-	bts->ul_power_hysteresis = 0;
+	bts->ul_power_ctrl.target = atoi(argv[0]);
+	bts->ul_power_ctrl.hysteresis = 0;
 
 	return CMD_SUCCESS;
 }
@@ -650,8 +650,8 @@
 {
 	struct gsm_bts *bts = vty->index;
 
-	bts->ul_power_target = atoi(argv[0]);
-	bts->ul_power_hysteresis = atoi(argv[1]);
+	bts->ul_power_ctrl.target = atoi(argv[0]);
+	bts->ul_power_ctrl.hysteresis = atoi(argv[1]);
 
 	return CMD_SUCCESS;
 }
diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c
index dee5feb..0fb9d00 100644
--- a/src/osmo-bts-lc15/oml.c
+++ b/src/osmo-bts-lc15/oml.c
@@ -434,7 +434,7 @@
 	dev_par->u16BcchArfcn = trx->bts->c0->arfcn;
 	dev_par->u8NbTsc = trx->bts->bsic & 7;
 	dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx)
-					? 0.0 : trx->bts->ul_power_target;
+					? 0.0 : trx->bts->ul_power_ctrl.target;
 
 	dev_par->fTxPowerLevel = 0.0;
 	LOGP(DL1C, LOGL_NOTICE, "Init TRX (Band %d, ARFCN %u, TSC %u, RxPower % 2f dBm, "
diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c
index 9a7751b..be0ec30 100644
--- a/src/osmo-bts-oc2g/oml.c
+++ b/src/osmo-bts-oc2g/oml.c
@@ -449,7 +449,7 @@
 	dev_par->u16BcchArfcn = trx->bts->c0->arfcn;
 	dev_par->u8NbTsc = trx->bts->bsic & 7;
 	dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx)
-					? 0.0 : trx->bts->ul_power_target;
+					? 0.0 : trx->bts->ul_power_ctrl.target;
 
 	dev_par->fTxPowerLevel = 0.0;
 	LOGP(DL1C, LOGL_NOTICE, "Init TRX (Band %d, ARFCN %u, TSC %u, RxPower % 2f dBm, "
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index 4a8a6c2..5f638e6 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -429,7 +429,7 @@
 	dev_par->u16BcchArfcn = trx->bts->c0->arfcn;
 	dev_par->u8NbTsc = trx->bts->bsic & 7;
 	dev_par->fRxPowerLevel = trx_ms_pwr_ctrl_is_osmo(trx)
-					? 0.0 : trx->bts->ul_power_target;
+					? 0.0 : trx->bts->ul_power_ctrl.target;
 
 	dev_par->fTxPowerLevel = ((float) initial_mdBm) / 1000;
 	LOGP(DL1C, LOGL_NOTICE, "Init TRX (ARFCN %u, TSC %u, RxPower % 2f dBm, "
diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c
index f575884..1f2aefb 100644
--- a/src/osmo-bts-sysmo/sysmobts_vty.c
+++ b/src/osmo-bts-sysmo/sysmobts_vty.c
@@ -154,7 +154,7 @@
 {
 	struct gsm_bts_trx *trx = vty->index;
 
-	trx->bts->ul_power_target = atoi(argv[0]);
+	trx->bts->ul_power_ctrl.target = atoi(argv[0]);
 
 	return CMD_SUCCESS;
 }
diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c
index ceca330..0353064 100644
--- a/src/osmo-bts-trx/trx_vty.c
+++ b/src/osmo-bts-trx/trx_vty.c
@@ -198,7 +198,7 @@
 {
 	vty_out (vty, "'osmotrx ms-power-loop' is deprecated, use 'uplink-power-target' instead%s", VTY_NEWLINE);
 
-	g_bts->ul_power_target = atoi(argv[0]);
+	g_bts->ul_power_ctrl.target = atoi(argv[0]);
 
 	return CMD_SUCCESS;
 }
diff --git a/tests/power/power_test.c b/tests/power/power_test.c
index c5c4db3..a686134 100644
--- a/tests/power/power_test.c
+++ b/tests/power/power_test.c
@@ -47,7 +47,7 @@
 
 	g_trx->ms_pwr_ctl_soft = true;
 
-	g_bts->ul_power_target = -75;
+	g_bts->ul_power_ctrl.target = -75;
 	g_bts->band = GSM_BAND_1800;
 	g_bts->c0 = g_trx;
 
@@ -98,7 +98,7 @@
 	apply_power_test(lchan, -90, 1, 5);
 
 	/* Check good RSSI value keeps it at same power level: */
-	apply_power_test(lchan, g_bts->ul_power_target, 0, 5);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 5);
 
 	apply_power_test(lchan, -90, 1, 3);
 	apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */
@@ -116,7 +116,7 @@
 	apply_power_test(lchan, -90, 0, 29);
 
 	/* Check good RSSI value keeps it at same power level: */
-	apply_power_test(lchan, g_bts->ul_power_target, 0, 29);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 29);
 
 	/* Now go down, steps are double size in this direction: */
 	apply_power_test(lchan, -45, 1, 1);
@@ -124,13 +124,13 @@
 	apply_power_test(lchan, -45, 1, 9);
 
 	/* Go down only one level down and up: */
-	apply_power_test(lchan, g_bts->ul_power_target + 2, 1, 10);
-	apply_power_test(lchan, g_bts->ul_power_target - 2, 1, 9);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target + 2, 1, 10);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target - 2, 1, 9);
 
 	/* Check if BSC requesting a low max power is applied after loop calculation: */
 	lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 2);
 	OSMO_ASSERT(lchan->ms_power_ctrl.max == 14);
-	apply_power_test(lchan, g_bts->ul_power_target + 2, 1, 14);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target + 2, 1, 14);
 	/* Set back a more normal max: */
 	lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 30);
 	OSMO_ASSERT(lchan->ms_power_ctrl.max == 0);
@@ -214,22 +214,22 @@
 	lchan = &g_trx->ts[0].lchan[0];
 
 	/* Tolerate power deviations in range -80 .. -70 */
-	g_bts->ul_power_hysteresis = 5;
+	g_bts->ul_power_ctrl.hysteresis = 5;
 
 	lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0);
 	OSMO_ASSERT(lchan->ms_power_ctrl.current == 15);
 	lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26);
 	OSMO_ASSERT(lchan->ms_power_ctrl.max == 2);
 
-	apply_power_test(lchan, g_bts->ul_power_target, 0, 15);
-	apply_power_test(lchan, g_bts->ul_power_target + 3, 0, 15);
-	apply_power_test(lchan, g_bts->ul_power_target - 3, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target + 3, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target - 3, 0, 15);
 
-	apply_power_test(lchan, g_bts->ul_power_target, 0, 15);
-	apply_power_test(lchan, g_bts->ul_power_target + 5, 0, 15);
-	apply_power_test(lchan, g_bts->ul_power_target - 5, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target + 5, 0, 15);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target - 5, 0, 15);
 
-	apply_power_test(lchan, g_bts->ul_power_target - 10, 1, 13);
+	apply_power_test(lchan, g_bts->ul_power_ctrl.target - 10, 1, 13);
 }
 
 int main(int argc, char **argv)

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

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I3886c7aedf3870536f1750f864cf698302ddf2df
Gerrit-Change-Number: 21434
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
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/20201202/6671a80d/attachment.htm>


More information about the gerrit-log mailing list