[MERGED] osmo-bts[master]: osmo-bts-trx: remove global variables from loops

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
Thu Aug 24 19:06:48 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: osmo-bts-trx: remove global variables from loops
......................................................................


osmo-bts-trx: remove global variables from loops

* move TA related globals into phy_link
* move power loop related globals into phy_link
* prefix corresponding vty vars with osmotrx

Change-Id: I01d7c1abad67e51b886a4ecf2de072929d67da27
Related: OS#1848
---
M include/osmo-bts/phy_link.h
M src/osmo-bts-trx/loops.c
M src/osmo-bts-trx/loops.h
M src/osmo-bts-trx/main.c
M src/osmo-bts-trx/trx_vty.c
5 files changed, 47 insertions(+), 42 deletions(-)

Approvals:
  Alexander Chemeris: Looks good to me, but someone else must approve
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h
index 7011622..0ffc58e 100644
--- a/include/osmo-bts/phy_link.h
+++ b/include/osmo-bts/phy_link.h
@@ -44,7 +44,9 @@
 			uint16_t base_port_local;
 			uint16_t base_port_remote;
 			struct osmo_fd trx_ofd_clk;
-
+			bool trx_ta_loop;
+			bool trx_ms_power_loop;
+			int8_t trx_target_rssi;
 			uint32_t clock_advance;
 			uint32_t rts_advance;
 			bool use_legacy_setbsic;
diff --git a/src/osmo-bts-trx/loops.c b/src/osmo-bts-trx/loops.c
index 3da805c..6f87cd1 100644
--- a/src/osmo-bts-trx/loops.c
+++ b/src/osmo-bts-trx/loops.c
@@ -39,9 +39,6 @@
  * MS Power loop
  */
 
-int trx_ms_power_loop = 0;
-int8_t trx_target_rssi = -10;
-
 static int ms_power_diff(struct gsm_lchan *lchan, uint8_t chan_nr, int8_t diff)
 {
 	struct gsm_bts_trx *trx = lchan->ts->trx;
@@ -118,6 +115,7 @@
 	uint8_t chan_nr, struct l1sched_chan_state *chan_state)
 {
 	struct gsm_bts_trx *trx = lchan->ts->trx;
+	struct phy_instance *pinst = trx_phy_instance(trx);
 	int rssi;
 	int i;
 
@@ -159,10 +157,10 @@
 	/* change RSSI */
 	LOGP(DLOOP, LOGL_DEBUG, "Lowest RSSI: %d Target RSSI: %d Current "
 		"MS power: %d (%d dBm) of trx=%u chan_nr=0x%02x\n", rssi,
-		trx_target_rssi, lchan->ms_power_ctrl.current,
+		pinst->phy_link->u.osmotrx.trx_target_rssi, lchan->ms_power_ctrl.current,
 		MS_PWR_DBM(trx->arfcn, lchan->ms_power_ctrl.current),
 		trx->nr, chan_nr);
-	ms_power_diff(lchan, chan_nr, trx_target_rssi - rssi);
+	ms_power_diff(lchan, chan_nr, pinst->phy_link->u.osmotrx.trx_target_rssi - rssi);
 
 	return 0;
 }
@@ -171,8 +169,6 @@
 /*
  * Timing Advance loop
  */
-
-int trx_ta_loop = 1;
 
 int ta_val(struct gsm_lchan *lchan, uint8_t chan_nr,
 	struct l1sched_chan_state *chan_state, float toa)
@@ -220,11 +216,12 @@
 {
 	struct gsm_lchan *lchan = &l1t->trx->ts[L1SAP_CHAN2TS(chan_nr)]
 					.lchan[l1sap_chan2ss(chan_nr)];
+	struct phy_instance *pinst = trx_phy_instance(l1t->trx);
 
-	if (trx_ms_power_loop)
+	if (pinst->phy_link->u.osmotrx.trx_ms_power_loop)
 		ms_power_val(chan_state, rssi);
 
-	if (trx_ta_loop)
+	if (pinst->phy_link->u.osmotrx.trx_ta_loop)
 		ta_val(lchan, chan_nr, chan_state, toa);
 
 	return 0;
@@ -235,8 +232,9 @@
 {
 	struct gsm_lchan *lchan = &l1t->trx->ts[L1SAP_CHAN2TS(chan_nr)]
 					.lchan[l1sap_chan2ss(chan_nr)];
+	struct phy_instance *pinst = trx_phy_instance(l1t->trx);
 
-	if (trx_ms_power_loop)
+	if (pinst->phy_link->u.osmotrx.trx_ms_power_loop)
 		ms_power_clock(lchan, chan_nr, chan_state);
 
 	/* count the number of SACCH clocks */
diff --git a/src/osmo-bts-trx/loops.h b/src/osmo-bts-trx/loops.h
index c0458c5..230cd4f 100644
--- a/src/osmo-bts-trx/loops.h
+++ b/src/osmo-bts-trx/loops.h
@@ -13,10 +13,6 @@
  * loops api
  */
 
-extern int trx_ms_power_loop;
-extern int8_t trx_target_rssi;
-extern int trx_ta_loop;
-
 int trx_loop_sacch_input(struct l1sched_trx *l1t, uint8_t chan_nr,
 	struct l1sched_chan_state *chan_state, int8_t rssi, float toa);
 
diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c
index 283e549..a1eb686 100644
--- a/src/osmo-bts-trx/main.c
+++ b/src/osmo-bts-trx/main.c
@@ -122,6 +122,9 @@
 	plink->u.osmotrx.base_port_remote = 5700;
 	plink->u.osmotrx.clock_advance = 20;
 	plink->u.osmotrx.rts_advance = 5;
+	plink->u.osmotrx.trx_ta_loop = true;
+	plink->u.osmotrx.trx_ms_power_loop = false;
+	plink->u.osmotrx.trx_target_rssi = -10;
 }
 
 void bts_model_phy_instance_set_defaults(struct phy_instance *pinst)
diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c
index 36d75c1..a7a433b 100644
--- a/src/osmo-bts-trx/trx_vty.c
+++ b/src/osmo-bts-trx/trx_vty.c
@@ -160,39 +160,47 @@
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_bts_ms_power_loop, cfg_bts_ms_power_loop_cmd,
-	"ms-power-loop <-127-127>",
+DEFUN(cfg_phy_ms_power_loop, cfg_phy_ms_power_loop_cmd,
+	"osmotrx ms-power-loop <-127-127>", OSMOTRX_STR
 	"Enable MS power control loop\nTarget RSSI value (transceiver specific, "
 	"should be 6dB or more above noise floor)\n")
 {
-	trx_ms_power_loop = 1;
-	trx_target_rssi = atoi(argv[0]);
+	struct phy_link *plink = vty->index;
+
+	plink->u.osmotrx.trx_target_rssi = atoi(argv[0]);
+	plink->u.osmotrx.trx_ms_power_loop = true;
 
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_bts_no_ms_power_loop, cfg_bts_no_ms_power_loop_cmd,
-	"no ms-power-loop",
-	NO_STR "Disable MS power control loop\n")
+DEFUN(cfg_phy_no_ms_power_loop, cfg_phy_no_ms_power_loop_cmd,
+	"no osmotrx ms-power-loop",
+	NO_STR OSMOTRX_STR "Disable MS power control loop\n")
 {
-	trx_ms_power_loop = 0;
+	struct phy_link *plink = vty->index;
+
+	plink->u.osmotrx.trx_ms_power_loop = false;
 
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_bts_timing_advance_loop, cfg_bts_timing_advance_loop_cmd,
-	"timing-advance-loop",
+DEFUN(cfg_phy_timing_advance_loop, cfg_phy_timing_advance_loop_cmd,
+	"osmotrx timing-advance-loop", OSMOTRX_STR
 	"Enable timing advance control loop\n")
 {
-	trx_ta_loop = 1;
+	struct phy_link *plink = vty->index;
+
+	plink->u.osmotrx.trx_ta_loop = true;
 
 	return CMD_SUCCESS;
 }
-DEFUN(cfg_bts_no_timing_advance_loop, cfg_bts_no_timing_advance_loop_cmd,
-	"no timing-advance-loop",
-	NO_STR "Disable timing advance control loop\n")
+DEFUN(cfg_phy_no_timing_advance_loop, cfg_phy_no_timing_advance_loop_cmd,
+	"no osmotrx timing-advance-loop",
+	NO_STR OSMOTRX_STR "Disable timing advance control loop\n")
 {
-	trx_ta_loop = 0;
+	struct phy_link *plink = vty->index;
+
+	plink->u.osmotrx.trx_ta_loop = false;
 
 	return CMD_SUCCESS;
 }
@@ -490,6 +498,12 @@
 		vty_out(vty, " osmotrx ip remote %s%s",
 			plink->u.osmotrx.remote_ip, VTY_NEWLINE);
 
+	if (plink->u.osmotrx.trx_ms_power_loop)
+		vty_out(vty, " osmotrx ms-power-loop %d%s", plink->u.osmotrx.trx_target_rssi, VTY_NEWLINE);
+	else
+		vty_out(vty, " no osmotrx ms-power-loop%s", VTY_NEWLINE);
+	vty_out(vty, " %s osmotrx timing-advance-loop%s", (plink->u.osmotrx.trx_ta_loop) ? "" : "no", VTY_NEWLINE);
+
 	if (plink->u.osmotrx.base_port_local)
 		vty_out(vty, " osmotrx base-port local %"PRIu16"%s",
 			plink->u.osmotrx.base_port_local, VTY_NEWLINE);
@@ -539,13 +553,6 @@
 
 void bts_model_config_write_bts(struct vty *vty, struct gsm_bts *bts)
 {
-	if (trx_ms_power_loop)
-		vty_out(vty, " ms-power-loop %d%s", trx_target_rssi,
-			VTY_NEWLINE);
-	else
-		vty_out(vty, " no ms-power-loop%s", VTY_NEWLINE);
-	vty_out(vty, " %stiming-advance-loop%s", (trx_ta_loop) ? "":"no ",
-		VTY_NEWLINE);
 }
 
 void bts_model_config_write_trx(struct vty *vty, struct gsm_bts_trx *trx)
@@ -559,11 +566,10 @@
 	install_element_ve(&show_transceiver_cmd);
 	install_element_ve(&show_phy_cmd);
 
-	install_element(BTS_NODE, &cfg_bts_ms_power_loop_cmd);
-	install_element(BTS_NODE, &cfg_bts_no_ms_power_loop_cmd);
-	install_element(BTS_NODE, &cfg_bts_timing_advance_loop_cmd);
-	install_element(BTS_NODE, &cfg_bts_no_timing_advance_loop_cmd);
-
+	install_element(PHY_NODE, &cfg_phy_ms_power_loop_cmd);
+	install_element(PHY_NODE, &cfg_phy_no_ms_power_loop_cmd);
+	install_element(PHY_NODE, &cfg_phy_timing_advance_loop_cmd);
+	install_element(PHY_NODE, &cfg_phy_no_timing_advance_loop_cmd);
 	install_element(PHY_NODE, &cfg_phy_base_port_cmd);
 	install_element(PHY_NODE, &cfg_phy_fn_advance_cmd);
 	install_element(PHY_NODE, &cfg_phy_rts_advance_cmd);

-- 
To view, visit https://gerrit.osmocom.org/3601
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I01d7c1abad67e51b886a4ecf2de072929d67da27
Gerrit-PatchSet: 3
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Alexander Chemeris <Alexander.Chemeris at gmail.com>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>



More information about the gerrit-log mailing list