aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-08-06 19:31:40 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2021-08-16 02:13:17 +0200
commit225af37f4868fdf6857ad29454b9418d2b7512bd (patch)
tree488502fb83f62048c8696c2c31b9758a85117cdc /src
parent1dbbc607692fe502d4494c6e068438917c7122fd (diff)
early IMM ASS 1/n: add vty config option
This patch adds only the VTY config option without any effect, to ease patch review. The implementation follows in I56c25cde152040fb66bdba44399bd37671ae3df2 The new config option is written so that further variants of Immediate Assignment sequencing may be added easily. See also I19e6a3d614aa5ae24d64eed96caf53e6f0e8bb74. Related: SYS#5559 Change-Id: I710343d1728153faf3db9758ff5a1ef26bb8d3d4
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bsc/bts_vty.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index 3695d2838..cba0bb0db 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -2806,6 +2806,23 @@ DEFUN_ATTR(cfg_bts_srvcc_fast_return, cfg_bts_srvcc_fast_return_cmd,
return CMD_SUCCESS;
}
+DEFUN_ATTR(cfg_bts_immediate_assignment, cfg_bts_immediate_assignment_cmd,
+ "immediate-assignment (post-chan-ack|pre-chan-ack)",
+ "Configure time of Immediate Assignment after ChanRqd RACH (Abis optimization)\n"
+ "Send the Immediate Assignment after the Channel Activation ACK (normal sequence)\n"
+ "Send the Immediate Assignment directly after Channel Activation (early), without waiting for the ACK;"
+ " This may help with double allocations on high latency Abis links\n",
+ CMD_ATTR_IMMEDIATE)
+{
+ struct gsm_bts *bts = vty->index;
+
+ if (!strcmp(argv[0], "pre-chan-ack"))
+ bts->imm_ass_time = IMM_ASS_TIME_PRE_CHAN_ACK;
+ else
+ bts->imm_ass_time = IMM_ASS_TIME_POST_CHAN_ACK;
+ return CMD_SUCCESS;
+}
+
#define BS_POWER_CONTROL_CMD \
"bs-power-control"
#define MS_POWER_CONTROL_CMD \
@@ -3980,6 +3997,16 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts)
if (!bts->srvcc_fast_return_allowed)
vty_out(vty, " srvcc fast-return forbid%s", VTY_NEWLINE);
+ switch (bts->imm_ass_time) {
+ default:
+ case IMM_ASS_TIME_POST_CHAN_ACK:
+ /* default value */
+ break;
+ case IMM_ASS_TIME_PRE_CHAN_ACK:
+ vty_out(vty, " immediate-assignment pre-chan-ack%s", VTY_NEWLINE);
+ break;
+ }
+
/* BS/MS Power Control parameters */
config_write_power_ctrl(vty, 2, &bts->bs_power_ctrl);
config_write_power_ctrl(vty, 2, &bts->ms_power_ctrl);
@@ -4150,6 +4177,7 @@ int bts_vty_init(void)
install_element(BTS_NODE, &cfg_bts_interf_meas_avg_period_cmd);
install_element(BTS_NODE, &cfg_bts_interf_meas_level_bounds_cmd);
install_element(BTS_NODE, &cfg_bts_srvcc_fast_return_cmd);
+ install_element(BTS_NODE, &cfg_bts_immediate_assignment_cmd);
neighbor_ident_vty_init();
/* See also handover commands added on bts level from handover_vty.c */