Change in osmo-bsc[master]: bts: add repeated acch mode flags + vty config

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/.

laforge gerrit-no-reply at lists.osmocom.org
Tue Dec 1 11:58:24 UTC 2020


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

Change subject: bts: add repeated acch mode flags + vty config
......................................................................

bts: add repeated acch mode flags + vty config

To be able to control the FACCH/SACCH repetition behavior inside the
BTS a one byte flag is sent to the BTS together with the
RSL_IE_OSMO_REP_ACCH_CAP IE. This patch adds the necessary VTY commands.
The sending of the flag is implemented in a follow-up patch.

See also: I39ae439d05562b35b2e47774dc92f8789fea1a57

Related: SYS#5114, OS#4796, OS#4794, OS#4795
Depends: libosmocore I6dda239e9cd7033297bed1deb5eb1d9f87b8433f
Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/bsc_vty.c
M src/osmo-bsc/bts.c
3 files changed, 164 insertions(+), 1 deletion(-)

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



diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index fd2ac32..22839d6 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -480,6 +480,10 @@
 
 	struct llist_head oml_fail_rep;
 	struct llist_head chan_rqd_queue;
+
+	/* osmocom specific FACCH/SACCH repetition mode flags set by VTY to
+	 * enable/disable certain ACCH repeation features individually */
+	struct abis_rsl_osmo_rep_acch_cap repeated_acch_policy;
 };
 
 #define GSM_BTS_SI2Q(bts, i)   (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i])
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index d8e9682..846339d 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -1115,6 +1115,19 @@
 
 	ho_vty_write_bts(vty, bts);
 
+	if (bts->repeated_acch_policy.dl_facch_all)
+		vty_out(vty, "  repeat dl-facch all%s", VTY_NEWLINE);
+	else if (bts->repeated_acch_policy.dl_facch_cmd)
+		vty_out(vty, "  repeat dl-facch command%s", VTY_NEWLINE);
+	if (bts->repeated_acch_policy.dl_sacch)
+		vty_out(vty, "  repeat dl-sacch%s", VTY_NEWLINE);
+	if (bts->repeated_acch_policy.ul_sacch)
+		vty_out(vty, "  repeat ul-sacch%s", VTY_NEWLINE);
+	if (bts->repeated_acch_policy.ul_sacch
+	    || bts->repeated_acch_policy.dl_facch_cmd
+	    || bts->repeated_acch_policy.dl_facch_cmd)
+		vty_out(vty, "  repeat rxqual %u%s", bts->repeated_acch_policy.rxqual, VTY_NEWLINE);
+
 	config_write_bts_model(vty, bts);
 }
 
@@ -2621,6 +2634,142 @@
 	return CMD_SUCCESS;
 }
 
+#define REP_ACCH_STR "FACCH/SACCH repetition\n"
+
+DEFUN_ATTR(cfg_bts_rep_dl_facch,
+	   cfg_bts_rep_dl_facch_cmd,
+	   "repeat dl-facch (command|all)",
+	   REP_ACCH_STR
+	   "Enable DL-FACCH repetition for this BTS\n"
+	   "command LAPDm frames only\n"
+	   "all LAPDm frames\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+		vty_out(vty, "%% repeated ACCH not supported by BTS %u%s",
+			bts->nr, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	if (!strcmp(argv[1], "command")) {
+	        bts->repeated_acch_policy.dl_facch_cmd = true;
+	        bts->repeated_acch_policy.dl_facch_all = false;
+	} else {
+	        bts->repeated_acch_policy.dl_facch_cmd = true;
+	        bts->repeated_acch_policy.dl_facch_all = true;
+	}
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_dl_facch,
+	   cfg_bts_rep_no_dl_facch_cmd,
+	   "no repeat dl-facch",
+	   NO_STR REP_ACCH_STR
+	   "Disable DL-FACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	bts->repeated_acch_policy.dl_facch_cmd = false;
+	bts->repeated_acch_policy.dl_facch_all = false;
+
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_dl_sacch,
+	   cfg_bts_rep_dl_sacch_cmd,
+	   "repeat dl-sacch",
+	   REP_ACCH_STR
+	   "Enable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+		vty_out(vty, "%% repeated ACCH not supported by BTS %u%s",
+			bts->nr, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	bts->repeated_acch_policy.dl_sacch = true;
+
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_dl_sacch,
+	   cfg_bts_rep_no_dl_sacch_cmd,
+	   "no repeat dl-sacch",
+	   NO_STR REP_ACCH_STR
+	   "Disable DL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	bts->repeated_acch_policy.dl_sacch = false;
+
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_ul_sacch,
+	   cfg_bts_rep_ul_sacch_cmd,
+	   "repeat ul-sacch",
+	   REP_ACCH_STR
+	   "Enable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+		vty_out(vty, "%% repeated ACCH not supported by BTS %u%s",
+			bts->nr, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	bts->repeated_acch_policy.ul_sacch = true;
+
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_no_ul_sacch,
+	   cfg_bts_rep_no_ul_sacch_cmd,
+	   "no repeat ul-sacch",
+	   NO_STR REP_ACCH_STR
+	   "Disable UL-SACCH repetition for this BTS\n", CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	bts->repeated_acch_policy.ul_sacch = false;
+
+	return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_bts_rep_rxqual,
+	   cfg_bts_rep_rxqual_cmd,
+	   "repeat rxqual (0|1|2|3|4|5|6|7)",
+	   REP_ACCH_STR
+	   "Set UL-SACCH/DL-FACCH rxqual threshold-ber\n"
+	   "0 disabled (always on)\n"
+	   "1 0.26% to 0.30% BER\n"
+	   "2 0.51% to 0.64% BER\n"
+	   "3 1.0% to 1.3% BER\n"
+	   "4 1.9% to 2.7% BER\n"
+	   "5 3.8% to 5.4% BER\n"
+	   "6 7.6% to 11.0% BER\n"
+	   "7 Greater than 15.0% BER\n",
+	   CMD_ATTR_IMMEDIATE)
+{
+	struct gsm_bts *bts = vty->index;
+
+	if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) {
+		vty_out(vty, "%% repeated ACCH not supported by BTS %u%s",
+			bts->nr, VTY_NEWLINE);
+		return CMD_WARNING;
+	}
+
+	/* See also: GSM 05.08, section 8.2.4 */
+	bts->repeated_acch_policy.rxqual = atoi(argv[0]);
+
+	return CMD_SUCCESS;
+}
+
+
 #define CD_STR "Channel Description\n"
 
 DEFUN_USRATTR(cfg_bts_chan_desc_att,
@@ -2989,7 +3138,7 @@
 	struct gsm_bts *bts = vty->index;
 
 	if (bts->type != GSM_BTS_TYPE_OSMOBTS) {
-		vty_out(vty, "%% infinite radio link timeout not supported by this BTS%s", VTY_NEWLINE);
+		vty_out(vty, "%% infinite radio link timeout not supported by BTS %u%s", bts->nr, VTY_NEWLINE);
 		return CMD_WARNING;
 	}
 
@@ -7033,6 +7182,14 @@
 	install_element(BTS_NODE, &cfg_bts_acc_ramping_chan_load_cmd);
 	install_element(BTS_NODE, &cfg_bts_t3113_dynamic_cmd);
 	install_element(BTS_NODE, &cfg_bts_no_t3113_dynamic_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_dl_facch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_no_dl_facch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_dl_sacch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_no_dl_sacch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_ul_sacch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_no_ul_sacch_cmd);
+	install_element(BTS_NODE, &cfg_bts_rep_rxqual_cmd);
+
 	neighbor_ident_vty_init(network, network->neighbor_bss_cells);
 	/* See also handover commands added on bts level from handover_vty.c */
 
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index aa7ba1d..065b8ab 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -356,6 +356,8 @@
 	acc_mgr_init(&bts->acc_mgr, bts);
 	acc_ramp_init(&bts->acc_ramp, bts);
 
+	bts->repeated_acch_policy.rxqual = 4;
+
 	return bts;
 }
 

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

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I083eaa2c30478912426e9c24a506f0b88836e190
Gerrit-Change-Number: 21164
Gerrit-PatchSet: 9
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-CC: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201201/df0fa724/attachment.htm>


More information about the gerrit-log mailing list