Change in osmo-bsc[master]: RES IND: add VTY: bts / channel allocator avoid-interference (0|1)

neels gerrit-no-reply at lists.osmocom.org
Sun Jul 11 19:18:36 UTC 2021


neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24891 )

Change subject: RES IND: add VTY: bts / channel allocator avoid-interference (0|1)
......................................................................

RES IND: add VTY: bts / channel allocator avoid-interference (0|1)

Store the config option whether the channel allocator should try to
avoid lchans with higher interference levels reported in RES IND.

The actual implementation of avoiding interference follows in
I844494092193811dfd9fa4d52983cbaed0fc9248

Related: SYS#5313
Change-Id: I8b62d0b41ad9e908b27713db9219e3dbc1ebaab7
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/bsc_vty.c
M tests/osmo-bsc.vty
3 files changed, 63 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 2e88129..992c9bb 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -450,6 +450,10 @@
 	 * rather than starting from TRX0 and go upwards? */
 	int chan_alloc_reverse;
 
+	/* When true, interference measurements from the BTS are used in the channel allocator to favor lchans with less
+	 * interference reported in RSL Resource Indication. */
+	bool chan_alloc_avoid_interf;
+
 	enum neigh_list_manual_mode neigh_list_manual_mode;
 	/* parameters from which we build SYSTEM INFORMATION */
 	struct {
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index 07c8a9c..9c1813d 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -1073,6 +1073,8 @@
 	vty_out(vty, "  channel allocator %s%s",
 		bts->chan_alloc_reverse ? "descending" : "ascending",
 		VTY_NEWLINE);
+	if (bts->chan_alloc_avoid_interf)
+		vty_out(vty, "  channel allocator avoid-interference 1%s", VTY_NEWLINE);
 	vty_out(vty, "  rach tx integer %u%s",
 		bts->si_common.rach_control.tx_integer, VTY_NEWLINE);
 	vty_out(vty, "  rach max transmission %u%s",
@@ -2839,6 +2841,25 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN_ATTR(cfg_bts_chan_alloc_interf,
+	   cfg_bts_chan_alloc_interf_cmd,
+	   "channel allocator avoid-interference (0|1)",
+	   "Channel Allocator\n" "Channel Allocator\n"
+	   "Configure whether reported interference levels from RES IND are used in channel allocation\n"
+	   "Ignore interference levels (default). Always assign lchans in a deterministic order.\n"
+	   "In channel allocation, prefer lchans with less interference.\n",
+	   CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	if (!strcmp(argv[0], "0"))
+		bts->chan_alloc_avoid_interf = false;
+	else
+		bts->chan_alloc_avoid_interf = true;
+
+	return CMD_SUCCESS;
+}
+
 #define RACH_STR "Random Access Control Channel\n"
 
 DEFUN_USRATTR(cfg_bts_rach_tx_integer,
@@ -8081,6 +8102,7 @@
 	install_element(BTS_NODE, &cfg_bts_oml_e1_cmd);
 	install_element(BTS_NODE, &cfg_bts_oml_e1_tei_cmd);
 	install_element(BTS_NODE, &cfg_bts_challoc_cmd);
+	install_element(BTS_NODE, &cfg_bts_chan_alloc_interf_cmd);
 	install_element(BTS_NODE, &cfg_bts_rach_tx_integer_cmd);
 	install_element(BTS_NODE, &cfg_bts_rach_max_trans_cmd);
 	install_element(BTS_NODE, &cfg_bts_rach_max_delay_cmd);
diff --git a/tests/osmo-bsc.vty b/tests/osmo-bsc.vty
index 22e2a06..1d859c3 100644
--- a/tests/osmo-bsc.vty
+++ b/tests/osmo-bsc.vty
@@ -147,3 +147,40 @@
  meas-feed destination 127.0.0.23 4223
  meas-feed scenario foo23
 ...
+
+
+OsmoBSC(config-net)# bts 0
+
+OsmoBSC(config-net-bts)# list
+...
+  channel allocator avoid-interference (0|1)
+...
+
+OsmoBSC(config-net-bts)# channel?
+  channel  Channel Allocator
+
+OsmoBSC(config-net-bts)# channel ?
+  allocator  Channel Allocator
+
+OsmoBSC(config-net-bts)# channel allocator ?
+  ascending           Allocate Timeslots and Transceivers in ascending order
+  descending          Allocate Timeslots and Transceivers in descending order
+  avoid-interference  Configure whether reported interference levels from RES IND are used in channel allocation
+
+OsmoBSC(config-net-bts)# channel allocator avoid-interference ?
+  0  Ignore interference levels (default). Always assign lchans in a deterministic order.
+  1  In channel allocation, prefer lchans with less interference.
+
+OsmoBSC(config-net-bts)# show running-config
+... !channel allocator avoid-interference
+OsmoBSC(config-net-bts)# channel allocator avoid-interference 1
+OsmoBSC(config-net-bts)# show running-config
+...
+ bts 0
+...
+  channel allocator avoid-interference 1
+...
+
+OsmoBSC(config-net-bts)# channel allocator avoid-interference 0
+OsmoBSC(config-net-bts)# show running-config
+... !channel allocator avoid-interference

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I8b62d0b41ad9e908b27713db9219e3dbc1ebaab7
Gerrit-Change-Number: 24891
Gerrit-PatchSet: 3
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210711/7e2b7395/attachment.htm>


More information about the gerrit-log mailing list