matanp has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email )
Change subject: abis_rsl: Configure rach expiry delay different than radio link timeout
......................................................................
abis_rsl: Configure rach expiry delay different than radio link timeout
Change-Id: Iff7266672dd8bc9ce2b34b0478d98fb70691f425
---
M include/osmocom/bsc/bts.h
M src/osmo-bsc/abis_rsl.c
M src/osmo-bsc/bts.c
M src/osmo-bsc/bts_vty.c
4 files changed, 29 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/35475/1
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 6974dca..a1799eb 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -663,6 +663,9 @@
/* We will ignore CHAN RQD with access delay greater than rach_max_delay */
uint8_t rach_max_delay;
+ /* We will ignore CHAN RQD sitting in the queue for period greater than
rach_expiry_timeout */
+ uint8_t rach_expiry_timeout;
+
/* Is Fast return to LTE allowed during Chan Release in this BTS? */
bool srvcc_fast_return_allowed;
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index 860e4a2..49e8b52 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -1975,7 +1975,6 @@
* requests from the queue to prevent the queue from growing indefinetly. */
static void reduce_rach_dos(struct gsm_bts *bts)
{
- int rlt = gsm_bts_get_radio_link_timeout(bts);
time_t timestamp_current = time(NULL);
struct chan_rqd *rqd;
struct chan_rqd *rqd_tmp;
@@ -1983,9 +1982,9 @@
/* Drop all expired channel requests in the list */
llist_for_each_entry_safe(rqd, rqd_tmp, &bts->chan_rqd_queue, entry) {
- /* If the channel request is older than the radio link timeout we drop it. This also
means that the
+ /* If the channel request is older than the rach expiry timeout we drop it. This also
means that the
* queue is under its overflow limit again. */
- if (timestamp_current - rqd->timestamp > rlt) {
+ if (timestamp_current - rqd->timestamp > bts->rach_expiry_timeout) {
LOG_BTS(bts, DRSL, LOGL_INFO, "CHAN RQD: tossing expired channel request"
"(ra=0x%02x, neci=0x%02x, chreq_reason=0x%02x)\n",
rqd->ref.ra, bts->network->neci, rqd->reason);
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 814ba41..1904137 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -470,6 +470,7 @@
bts->interf_meas_params_cfg = interf_meas_params_def;
bts->rach_max_delay = 63;
+ bts->rach_expiry_timeout = 32;
/* SRVCC is enabled by default */
bts->srvcc_fast_return_allowed = true;
diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c
index 3af7296..dade2a8 100644
--- a/src/osmo-bsc/bts_vty.c
+++ b/src/osmo-bsc/bts_vty.c
@@ -772,6 +772,19 @@
return CMD_SUCCESS;
}
+DEFUN_ATTR(cfg_bts_rach_expiry_timeout,
+ cfg_bts_rach_expiry_timeout_cmd,
+ "rach expiry timeout <4-64>",
+ RACH_STR
+ "Set the timeout for channel requests expiry\n"
+ "Maximum timeout before dropping channel requests\n",
+ CMD_ATTR_IMMEDIATE)
+{
+ struct gsm_bts *bts = vty->index;
+ bts->rach_expiry_timeout = atoi(argv[0]);
+ return CMD_SUCCESS;
+}
+
#define REP_ACCH_STR "FACCH/SACCH repetition\n"
DEFUN_USRATTR(cfg_bts_rep_dl_facch,
@@ -4862,6 +4875,7 @@
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);
+ install_element(BTS_NODE, &cfg_bts_rach_expiry_timeout_cmd);
install_element(BTS_NODE, &cfg_bts_chan_desc_att_cmd);
install_element(BTS_NODE, &cfg_bts_chan_dscr_att_cmd);
install_element(BTS_NODE, &cfg_bts_chan_desc_bs_pa_mfrms_cmd);
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Iff7266672dd8bc9ce2b34b0478d98fb70691f425
Gerrit-Change-Number: 35475
Gerrit-PatchSet: 1
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-MessageType: newchange