Change in osmo-bsc[master]: early IMM ASS 1/n: add vty config option

neels gerrit-no-reply at lists.osmocom.org
Sun Aug 8 01:55:59 UTC 2021


neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25164 )


Change subject: early IMM ASS 1/n: add vty config option
......................................................................

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
---
M include/osmocom/bsc/bts.h
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bts_vty.c
M tests/osmo-bsc.vty
4 files changed, 54 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/25164/1

diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 1d566f5..291ec10 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -566,6 +566,9 @@
 
 	/* Is Fast return to LTE allowed during Chan Release in this BTS? */
 	bool srvcc_fast_return_allowed;
+
+	/* At what point in the channel allocation sequence to dispatch the Immediate Assignment (Abis optimization) */
+	enum imm_ass_time imm_ass_time;
 };
 
 #define GSM_BTS_SI2Q(bts, i)   (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i])
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 31711c7..4411555 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -601,6 +601,11 @@
 static inline const char *lchan_activate_mode_name(enum lchan_activate_for activ_for)
 { return get_value_string(lchan_activate_mode_names, activ_for); }
 
+enum imm_ass_time {
+	IMM_ASS_TIME_POST_CHAN_ACK = 0,
+	IMM_ASS_TIME_PRE_CHAN_ACK,
+};
+
 struct lchan_activate_info {
 	enum lchan_activate_for activ_for;
 	struct gsm_subscriber_connection *for_conn;
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index 3695d28..cba0bb0 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -2806,6 +2806,23 @@
 	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 @@
 	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 @@
 	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 */
diff --git a/tests/osmo-bsc.vty b/tests/osmo-bsc.vty
index 7351056..b837d25 100644
--- a/tests/osmo-bsc.vty
+++ b/tests/osmo-bsc.vty
@@ -204,3 +204,21 @@
 OsmoBSC(config-net-bts)# channel allocator allow-tch-for-signalling 1
 OsmoBSC(config-net-bts)# show running-config
 ... !channel allocator allow-tch-for-signalling
+
+OsmoBSC(config-net-bts)# immediate-assignment?
+  immediate-assignment  Configure time of Immediate Assignment after ChanRqd RACH (Abis optimization)
+OsmoBSC(config-net-bts)# immediate-assignment ?
+  post-chan-ack  Send the Immediate Assignment after the Channel Activation ACK (normal sequence)
+  pre-chan-ack   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
+OsmoBSC(config-net-bts)# show running-config
+... !immediate-assignment
+OsmoBSC(config-net-bts)# immediate-assignment pre-chan-ack
+OsmoBSC(config-net-bts)# show running-config
+...
+ bts 0
+...
+  immediate-assignment pre-chan-ack
+...
+OsmoBSC(config-net-bts)# immediate-assignment post-chan-ack
+OsmoBSC(config-net-bts)# show running-config
+... !immediate-assignment

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25164
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I710343d1728153faf3db9758ff5a1ef26bb8d3d4
Gerrit-Change-Number: 25164
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210808/84714df0/attachment.htm>


More information about the gerrit-log mailing list