[MERGED] openbsc[master]: bsc_vty: Factor vty_get_ts() out of pdch_act_cmd()

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
Sat May 27 13:29:41 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: bsc_vty: Factor vty_get_ts() out of pdch_act_cmd()
......................................................................


bsc_vty: Factor vty_get_ts() out of pdch_act_cmd()

Resolving a timeslot based on its numeric identities is a generally
useful function, so lets' factor that out.

Change-Id: Id2570232f82542487a1133be7efb1dc1eb3029a8
---
M openbsc/src/libbsc/bsc_vty.c
1 file changed, 26 insertions(+), 14 deletions(-)

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



diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c
index 2c7b6c0..6c6b4bc 100644
--- a/openbsc/src/libbsc/bsc_vty.c
+++ b/openbsc/src/libbsc/bsc_vty.c
@@ -3851,6 +3851,29 @@
 	return CMD_SUCCESS;
 }
 
+/* resolve a gsm_bts_trx_ts basd on the given numeric identifiers */
+struct gsm_bts_trx_ts *vty_get_ts(struct vty *vty, int bts_nr, int trx_nr, int ts_nr, int ss_nr)
+{
+	struct gsm_bts *bts;
+	struct gsm_bts_trx *trx;
+	struct gsm_bts_trx_ts *ts;
+
+	bts = gsm_bts_num(gsmnet_from_vty(vty), bts_nr);
+	if (!bts) {
+		vty_out(vty, "%% No such BTS (%d)%s", bts_nr, VTY_NEWLINE);
+		return NULL;
+	}
+
+	trx = gsm_bts_trx_num(bts, trx_nr);
+	if (!trx) {
+		vty_out(vty, "%% No such TRX (%d)%s", trx_nr, VTY_NEWLINE);
+		return NULL;
+	}
+
+	ts = &trx->ts[ts_nr];
+
+	return ts;
+}
 
 DEFUN(pdch_act, pdch_act_cmd,
 	"bts <0-255> trx <0-255> timeslot <0-7> pdch (activate|deactivate)",
@@ -3859,33 +3882,22 @@
 	"Activate Dynamic PDCH/TCH (-> PDCH mode)\n"
 	"Deactivate Dynamic PDCH/TCH (-> TCH mode)\n")
 {
-	struct gsm_bts *bts;
-	struct gsm_bts_trx *trx;
 	struct gsm_bts_trx_ts *ts;
 	int bts_nr = atoi(argv[0]);
 	int trx_nr = atoi(argv[1]);
 	int ts_nr = atoi(argv[2]);
 	int activate;
 
-	bts = gsm_bts_num(gsmnet_from_vty(vty), bts_nr);
-	if (!bts) {
-		vty_out(vty, "%% No such BTS (%d)%s", bts_nr, VTY_NEWLINE);
+	ts = vty_get_ts(vty, bts_nr, trx_nr, ts_nr, 0);
+	if (!ts)
 		return CMD_WARNING;
-	}
 
-	if (!is_ipaccess_bts(bts)) {
+	if (!is_ipaccess_bts(ts->trx->bts)) {
 		vty_out(vty, "%% This command only works for ipaccess BTS%s",
 			VTY_NEWLINE);
 		return CMD_WARNING;
 	}
 
-	trx = gsm_bts_trx_num(bts, trx_nr);
-	if (!trx) {
-		vty_out(vty, "%% No such TRX (%d)%s", trx_nr, VTY_NEWLINE);
-		return CMD_WARNING;
-	}
-
-	ts = &trx->ts[ts_nr];
 	if (ts->pchan != GSM_PCHAN_TCH_F_PDCH) {
 		vty_out(vty, "%% Timeslot %u is not in dynamic TCH_F/PDCH "
 			"mode%s", ts_nr, VTY_NEWLINE);

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Id2570232f82542487a1133be7efb1dc1eb3029a8
Gerrit-PatchSet: 1
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list