[MERGED] osmo-bts[master]: all models: fix vty write: bts_model_config_write_phy

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

Ivan Kluchnikov gerrit-no-reply at lists.osmocom.org
Fri Feb 10 07:27:51 UTC 2017


Ivan Kluchnikov has submitted this change and it was merged.

Change subject: all models: fix vty write: bts_model_config_write_phy
......................................................................


all models: fix vty write: bts_model_config_write_phy

The vty write for phy/inst is broken, leading to a written-out config being
unparsable; fix all of these:

- in common/vty.c, actually call bts_model_config_write_phy_inst().

- in sysmo and lc15 write the phy instance elements in
  bts_model_config_write_phy_inst() and not in bts_model_config_write_phy(),
  which lead to writing the members above their parent 'instance'.

- sysmo, lc15 and oct omit the bts_model_config_write_phy_inst()
  implementation. This did not cause a compilation problem because it
  was in fact never called.

- sysmo writes 'clock-source None' when clk_src is zero, leading to unparsable
  config (related: OS#1944). Instead omit the 'clock-source' when zero.

- osmo-bts-trx seems to be the only part that lacks nothing, yet it
  also didn't work properly because bts_model_config_write_phy_inst()
  was never called.
  
This problem existed since commit d784e50747b8cf0ce505489e1451f75be5ccbd4b
"Introduce new phy_link and phy_instance abstraction"

Change-Id: Icc54fa70045c8fa58e78cf9f788c21a437edfbd4
---
M src/common/vty.c
M src/osmo-bts-litecell15/lc15bts_vty.c
M src/osmo-bts-octphy/octphy_vty.c
M src/osmo-bts-sysmo/sysmobts_vty.c
4 files changed, 19 insertions(+), 21 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/common/vty.c b/src/common/vty.c
index b48afa4..646ac87 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -358,6 +358,7 @@
 		if (!pinst)
 			break;
 		vty_out(vty, " instance %u%s", pinst->num, VTY_NEWLINE);
+		bts_model_config_write_phy_inst(vty, pinst);
 	}
 }
 
diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c
index 0ffe663..46f73ab 100644
--- a/src/osmo-bts-litecell15/lc15bts_vty.c
+++ b/src/osmo-bts-litecell15/lc15bts_vty.c
@@ -329,7 +329,11 @@
 	vty_out(vty, "  nominal-tx-power %d%s", trx->nominal_power,VTY_NEWLINE);
 }
 
-static void write_phy_inst(struct vty *vty, struct phy_instance *pinst)
+void bts_model_config_write_phy(struct vty *vty, struct phy_link *plink)
+{
+}
+
+void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst)
 {
 	int i;
 
@@ -344,14 +348,6 @@
 	if (pinst->u.lc15.calib_path)
 		vty_out(vty, "  trx-calibration-path %s%s",
 			pinst->u.lc15.calib_path, VTY_NEWLINE);
-}
-
-void bts_model_config_write_phy(struct vty *vty, struct phy_link *plink)
-{
-	struct phy_instance *pinst;
-
-	llist_for_each_entry(pinst, &plink->instances, list)
-		write_phy_inst(vty, pinst);
 }
 
 int bts_model_vty_init(struct gsm_bts *bts)
diff --git a/src/osmo-bts-octphy/octphy_vty.c b/src/osmo-bts-octphy/octphy_vty.c
index c2d1fbb..abfac1e 100644
--- a/src/osmo-bts-octphy/octphy_vty.c
+++ b/src/osmo-bts-octphy/octphy_vty.c
@@ -219,6 +219,10 @@
 		VTY_NEWLINE);
 }
 
+void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst)
+{
+}
+
 void bts_model_config_write_bts(struct vty *vty, struct gsm_bts *bts)
 {
 }
diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c
index e67d8be..330c9ce 100644
--- a/src/osmo-bts-sysmo/sysmobts_vty.c
+++ b/src/osmo-bts-sysmo/sysmobts_vty.c
@@ -443,7 +443,11 @@
 			VTY_NEWLINE);
 }
 
-static void write_phy_inst(struct vty *vty, struct phy_instance *pinst)
+void bts_model_config_write_phy(struct vty *vty, struct phy_link *plink)
+{
+}
+
+void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst)
 {
 	int i;
 
@@ -464,17 +468,10 @@
 	if (pinst->u.sysmobts.calib_path)
 		vty_out(vty, "  trx-calibration-path %s%s",
 			pinst->u.sysmobts.calib_path, VTY_NEWLINE);
-	vty_out(vty, "  clock-source %s%s",
-		get_value_string(femtobts_clksrc_names,
-				 pinst->u.sysmobts.clk_src), VTY_NEWLINE);
-}
-
-void bts_model_config_write_phy(struct vty *vty, struct phy_link *plink)
-{
-	struct phy_instance *pinst;
-
-	llist_for_each_entry(pinst, &plink->instances, list)
-		write_phy_inst(vty, pinst);
+	if (pinst->u.sysmobts.clk_src)
+		vty_out(vty, "  clock-source %s%s",
+			get_value_string(femtobts_clksrc_names,
+					 pinst->u.sysmobts.clk_src), VTY_NEWLINE);
 }
 
 int bts_model_vty_init(struct gsm_bts *bts)

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Icc54fa70045c8fa58e78cf9f788c21a437edfbd4
Gerrit-PatchSet: 4
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Ivan Kluchnikov <kluchnikovi at gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: Max <msuraev at sysmocom.de>
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list