[PATCH] osmo-bts[master]: Remove duplicated code

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

Max gerrit-no-reply at lists.osmocom.org
Fri Nov 11 16:53:39 UTC 2016


Hello Harald Welte, Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1046

to look at the new patch set (#7).

Remove duplicated code

Remove lchan deactivation related code duplication to facilitate future
use for dynamic CCCH re-activation.

Change-Id: Id0d3b19dbfaa16d1734321a07a6eb0355bfd77c9
---
M include/osmo-bts/bts_model.h
M include/osmo-bts/rsl.h
M src/common/rsl.c
M src/osmo-bts-litecell15/lc15bts_vty.c
M src/osmo-bts-litecell15/oml.c
M src/osmo-bts-octphy/l1_oml.c
M src/osmo-bts-sysmo/oml.c
M src/osmo-bts-sysmo/sysmobts_vty.c
M src/osmo-bts-trx/l1_if.c
M tests/handover/handover_test.c
M tests/stubs.c
11 files changed, 45 insertions(+), 21 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/1046/7

diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h
index 7e2d088..7a87d78 100644
--- a/include/osmo-bts/bts_model.h
+++ b/include/osmo-bts/bts_model.h
@@ -45,6 +45,9 @@
 
 int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap);
 
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan);
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan);
+
 void bts_model_abis_close(struct gsm_bts *bts);
 
 int bts_model_ctrl_cmds_install(struct gsm_bts *bts);
diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h
index 4311ffd..d542ff6 100644
--- a/include/osmo-bts/rsl.h
+++ b/include/osmo-bts/rsl.h
@@ -26,6 +26,8 @@
 int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan);
 int rsl_tx_hando_det(struct gsm_lchan *lchan, uint8_t *ho_delay);
 
+int lchan_deactivate(struct gsm_lchan *lchan);
+
 /* call-back for LAPDm code, called when it wants to send msgs UP */
 int lapdm_rll_tx_cb(struct msgb *msg, struct lapdm_entity *le, void *ctx);
 
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 6c8f5cc..880136c 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -2448,6 +2448,12 @@
 	return ret;
 }
 
+int lchan_deactivate(struct gsm_lchan *lchan)
+{
+	lchan->ciph_state = 0;
+	return bts_model_lchan_deactivate(lchan);
+}
+
 int down_rsl(struct gsm_bts_trx *trx, struct msgb *msg)
 {
 	struct abis_rsl_common_hdr *rslh = msgb_l2(msg);
diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c
index c5d404c..0ffe663 100644
--- a/src/osmo-bts-litecell15/lc15bts_vty.c
+++ b/src/osmo-bts-litecell15/lc15bts_vty.c
@@ -46,15 +46,14 @@
 #include <osmo-bts/gsm_data.h>
 #include <osmo-bts/phy_link.h>
 #include <osmo-bts/logging.h>
+#include <osmo-bts/bts_model.h>
 #include <osmo-bts/vty.h>
 
 #include "lc15bts.h"
 #include "l1_if.h"
 #include "utils.h"
 
-
 extern int lchan_activate(struct gsm_lchan *lchan);
-extern int lchan_deactivate(struct gsm_lchan *lchan);
 
 #define TRX_STR "Transceiver related commands\n" "TRX number\n"
 
diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c
index 689ba70..8afa2a2 100644
--- a/src/osmo-bts-litecell15/oml.c
+++ b/src/osmo-bts-litecell15/oml.c
@@ -1656,10 +1656,9 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-int lchan_deactivate(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan)
 {
 	lchan_set_state(lchan, LCHAN_S_REL_REQ);
-	lchan->ciph_state = 0; /* FIXME: do this in common/\*.c */
 	enqueue_rel_marker(lchan);
 	return 0;
 }
@@ -1674,7 +1673,7 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-static int lchan_deactivate_sacch(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan)
 {
 	enqueue_sacch_rel_marker(lchan);
 	return 0;
@@ -1858,7 +1857,7 @@
 	/* Only de-activate the SACCH if the lchan is active */
 	if (lchan->state != LCHAN_S_ACTIVE)
 		return 0;
-	return lchan_deactivate_sacch(lchan);
+	return bts_model_lchan_deactivate_sacch(lchan);
 }
 
 int bts_model_trx_deact_rf(struct gsm_bts_trx *trx)
diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c
index db416ba..5865625 100644
--- a/src/osmo-bts-octphy/l1_oml.c
+++ b/src/osmo-bts-octphy/l1_oml.c
@@ -884,7 +884,7 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-static int lchan_deactivate_sacch(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan)
 {
 	enqueue_sacch_rel_marker(lchan);
 	return 0;
@@ -895,7 +895,7 @@
 	/* Only de-activate the SACCH if the lchan is active */
 	if (lchan->state != LCHAN_S_ACTIVE)
 		return 0;
-	return lchan_deactivate_sacch(lchan);
+	return bts_model_lchan_deactivate_sacch(lchan);
 }
 
 
@@ -913,10 +913,9 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-static int lchan_deactivate(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan)
 {
 	lchan_set_state(lchan, LCHAN_S_REL_REQ);
-	lchan->ciph_state = 0;	/* FIXME: do this in common *.c */
 	enqueue_rel_marker(lchan);
 	return 0;
 }
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index ed02c74..b23d992 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -1676,10 +1676,9 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-int lchan_deactivate(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan)
 {
 	lchan_set_state(lchan, LCHAN_S_REL_REQ);
-	lchan->ciph_state = 0; /* FIXME: do this in common/\*.c */
 	enqueue_rel_marker(lchan);
 	return 0;
 }
@@ -1694,7 +1693,7 @@
 	queue_sapi_command(lchan, cmd);
 }
 
-static int lchan_deactivate_sacch(struct gsm_lchan *lchan)
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan)
 {
 	enqueue_sacch_rel_marker(lchan);
 	return 0;
@@ -1878,7 +1877,7 @@
 	/* Only de-activate the SACCH if the lchan is active */
 	if (lchan->state != LCHAN_S_ACTIVE)
 		return 0;
-	return lchan_deactivate_sacch(lchan);
+	return bts_model_lchan_deactivate_sacch(lchan);
 }
 
 int bts_model_trx_deact_rf(struct gsm_bts_trx *trx)
diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c
index c829c49..e67d8be 100644
--- a/src/osmo-bts-sysmo/sysmobts_vty.c
+++ b/src/osmo-bts-sysmo/sysmobts_vty.c
@@ -42,15 +42,14 @@
 #include <osmo-bts/gsm_data.h>
 #include <osmo-bts/phy_link.h>
 #include <osmo-bts/logging.h>
+#include <osmo-bts/bts_model.h>
 #include <osmo-bts/vty.h>
 
 #include "femtobts.h"
 #include "l1_if.h"
 #include "utils.h"
 
-
 extern int lchan_activate(struct gsm_lchan *lchan);
-extern int lchan_deactivate(struct gsm_lchan *lchan);
 
 #define TRX_STR "Transceiver related commands\n" "TRX number\n"
 
diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c
index ea2088b..1176413 100644
--- a/src/osmo-bts-trx/l1_if.c
+++ b/src/osmo-bts-trx/l1_if.c
@@ -144,6 +144,23 @@
 	return 0;
 }
 
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan)
+{
+	struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx);
+	struct trx_l1h *l1h = pinst->u.osmotrx.hdl;
+
+	/* set lchan inactive */
+	lchan_set_state(lchan, LCHAN_S_NONE);
+
+	return trx_sched_set_lchan(&l1h->l1s, lchan->nr, LID_DEDIC, 0);
+}
+
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan)
+{
+	struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx);
+	struct trx_l1h *l1h = pinst->u.osmotrx.hdl;
+	return trx_sched_set_lchan(&l1h->l1s, lchan->nr, LID_SACCH, 0);
+}
 
 /*
  * transceiver provisioning
@@ -641,16 +658,13 @@
 				break;
 			}
 			/* deactivate associated channel */
-			trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_SACCH, 0);
+			bts_model_lchan_deactivate_sacch(lchan);
 			if (!l1sap->u.info.u.act_req.sacch_only) {
-				/* set lchan inactive */
-				lchan_set_state(lchan, LCHAN_S_NONE);
 				/* deactivate dedicated channel */
-				trx_sched_set_lchan(&l1h->l1s, chan_nr, LID_DEDIC, 0);
+				lchan_deactivate(lchan);
 				/* confirm only on dedicated channel */
 				mph_info_chan_confirm(l1h, chan_nr,
 					PRIM_INFO_DEACTIVATE, 0);
-				lchan->ciph_state = 0; /* FIXME: do this in common/\*.c */
 			}
 			break;
 		default:
diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c
index d1dc34a..a7a66d0 100644
--- a/tests/handover/handover_test.c
+++ b/tests/handover/handover_test.c
@@ -275,3 +275,5 @@
 int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) { return 0; }
 int bts_model_ts_disconnect(struct gsm_bts_trx_ts *ts) { return 0; }
 int bts_model_ts_connect(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config as_pchan) { return 0; }
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { return 0; }
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { return 0; }
diff --git a/tests/stubs.c b/tests/stubs.c
index c680db0..f969cb3 100644
--- a/tests/stubs.c
+++ b/tests/stubs.c
@@ -40,6 +40,8 @@
 int l1if_set_txpower(struct femtol1_hdl *fl1h, float tx_power)
 { return 0; }
 
+int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { return 0; }
+int bts_model_lchan_deactivate_sacch(struct gsm_lchan *lchan) { return 0; }
 
 int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan)
 { return 0; }

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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Id0d3b19dbfaa16d1734321a07a6eb0355bfd77c9
Gerrit-PatchSet: 7
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Max <msuraev at sysmocom.de>
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