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