path: root/src/common/vty.c
diff options
authorPau Espin Pedrol <pespin@sysmocom.de>2018-11-12 12:50:23 +0100
committerHarald Welte <laforge@gnumonks.org>2018-11-18 20:29:40 +0000
commiteebb6a4216f136132400831ca35ed70e7502e92a (patch)
tree0b987086e93e19d08360cd4d647af4f15d11688f /src/common/vty.c
parente5f4654ee34c5a346a0b85805c706115464e96e1 (diff)
bts: Allocate TRX for BTS dynamically, deprecate -t
No need to pass -t num_trx anymore to specify number of TRX to use. It is calculated based on dynamic allocation from VTY config. Using parameter -t is flagged as deprecated and is transformed into a NOOP por backward compatibility. As a result, TRX now are allocated after the BTS is allocated and initial config (pre-VTY) is applied. A new function bts_trx_init() is added, to set default config on each TRX during allocation and before setting VTY config on it. A new per BTS model function bts_model_trx_init() is added, to allow per model specific default configuration of each TRX. Change-Id: Iab1a754ab12a626759f9f90aa66f87bdce65ac9c
Diffstat (limited to 'src/common/vty.c')
1 files changed, 15 insertions, 5 deletions
diff --git a/src/common/vty.c b/src/common/vty.c
index f918f576..f3054139 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -227,12 +227,22 @@ DEFUN(cfg_bts_trx, cfg_bts_trx_cmd,
struct gsm_bts *bts = vty->index;
struct gsm_bts_trx *trx;
- trx = gsm_bts_trx_num(bts, trx_nr);
+ if (trx_nr > bts->num_trx) {
+ vty_out(vty, "%% The next unused TRX number is %u%s",
+ bts->num_trx, VTY_NEWLINE);
+ return CMD_WARNING;
+ } else if (trx_nr == bts->num_trx) {
+ /* allocate a new one */
+ trx = gsm_bts_trx_alloc(bts);
+ if (trx)
+ bts_trx_init(trx);
+ } else
+ trx = gsm_bts_trx_num(bts, trx_nr);
if (!trx) {
- vty_out(vty, "Unknown TRX %u. Available TRX are: 0..%u%s",
- trx_nr, bts->num_trx - 1, VTY_NEWLINE);
- vty_out(vty, "Hint: Check if commandline option -t matches the"
- "number of available transceivers!%s", VTY_NEWLINE);
+ vty_out(vty, "%% Unable to allocate TRX %u%s",
+ trx_nr, VTY_NEWLINE);