Attention is currently required from: fixeria.
matanp has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email )
Change subject: abis_rsl: Add rach expiry timeout
......................................................................
Patch Set 4:
(3 comments)
Commit Message:
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/2752ab53_466fba6e
PS3, Line 7: abis_rsl: Separate rach expiry delay from radio link timeout
> Please elaborate more why a separate parameter is needed (here in COMMIT_MSG).
Ack
File src/osmo-bsc/bts_vty.c:
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/6ad723c8_438622ae
PS3, Line 777: expiry timeout
> Let's combine it into a single command item `expiry-timeout`.
Ack
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/c8eba3d6_3ce9690e
PS3, Line 4532: vty_out(vty, " rach max-delay %u%s", bts->rach_max_delay, VTY_NEWLINE);
> You're missing to print `rach expiry-timeout` here.
Ack
--
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: 4
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 02 Jan 2024 07:20:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: fixeria, matanp.
Hello Jenkins Builder, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email
to look at the new patch set (#4).
The following approvals got outdated and were removed:
Code-Review-1 by fixeria, Verified+1 by Jenkins Builder
Change subject: abis_rsl: Add rach expiry timeout
......................................................................
abis_rsl: Add rach expiry timeout
This allows controlling the RACH DoS attack protection without
increasing call drops rate.
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, 33 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/75/35475/4
--
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: 4
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: matanp <matan1008(a)gmail.com>
Gerrit-MessageType: newpatchset
Attention is currently required from: matanp.
fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email )
Change subject: abis_rsl: Separate rach expiry delay from radio link timeout
......................................................................
Patch Set 3: Code-Review-1
(3 comments)
Commit Message:
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/c3fcd7ac_ea05c0ef
PS3, Line 7: abis_rsl: Separate rach expiry delay from radio link timeout
Please elaborate more why a separate parameter is needed (here in COMMIT_MSG).
File src/osmo-bsc/bts_vty.c:
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/5b3e3474_397dda40
PS3, Line 777: expiry timeout
Let's combine it into a single command item `expiry-timeout`.
https://gerrit.osmocom.org/c/osmo-bsc/+/35475/comment/9e726999_a8844337
PS3, Line 4532: vty_out(vty, " rach max-delay %u%s", bts->rach_max_delay, VTY_NEWLINE);
You're missing to print `rach expiry-timeout` here.
--
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: 3
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: matanp <matan1008(a)gmail.com>
Gerrit-Comment-Date: Sun, 31 Dec 2023 21:33:54 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
matanp has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email )
Change subject: abis_rsl: Separate rach expiry delay from radio link timeout
......................................................................
Set Ready For Review
--
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: 3
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Comment-Date: Sun, 31 Dec 2023 12:38:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35474?usp=email )
Change subject: utils: fix -Wsign-compare in definition of OSMO_STRBUF_CHAR_COUNT
......................................................................
utils: fix -Wsign-compare in definition of OSMO_STRBUF_CHAR_COUNT
We're seeing tons of -Wsign-compare warnings since I merged 0f59cebf:
include/osmocom/core/utils.h: In function 'size_t _osmo_strbuf_char_count(const osmo_strbuf*)':
include/osmocom/core/utils.h:24:29: error: comparison of integer expressions of different
signedness: 'long int' and 'long unsigned int'
[-Werror=sign-compare]
24 | #define OSMO_MIN(a, b) ((a) >= (b) ? (b) : (a))
| ~~~~^~~~~~
include/osmocom/core/utils.h:309:16: note: in expansion of macro 'OSMO_MIN'
309 | return OSMO_MIN(sb->pos - sb->buf, sb->len - 1);
| ^~~~~~~~
Interestingly enough, this -Wsign-compare problem has always been the
case, even before commit 0f59cebf. And somehow this did not show up
when building libosmocore.git, but only when building C++ projects
(osmo-pcu and osmo-trx).
Perhaps it has something to do with how g++ compiles extern "C" code.
Change-Id: I8e396459409e4260b8715f9e890e8972d4609a31
Fixes: 0f59cebf "utils: improve readability of OSMO_STRBUF_CHAR_COUNT"
---
M include/osmocom/core/utils.h
1 file changed, 30 insertions(+), 1 deletion(-)
Approvals:
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h
index 9a6e6b2..92bea59 100644
--- a/include/osmocom/core/utils.h
+++ b/include/osmocom/core/utils.h
@@ -306,7 +306,7 @@
return 0;
if (sb->pos == NULL || sb->pos <= sb->buf)
return 0;
- return OSMO_MIN(sb->pos - sb->buf, sb->len - 1);
+ return OSMO_MIN((size_t)(sb->pos - sb->buf), sb->len - 1);
}
/*! Return number of actual characters contained in struct osmo_strbuf (without terminating nul). */
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35474?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I8e396459409e4260b8715f9e890e8972d4609a31
Gerrit-Change-Number: 35474
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: merged
matanp has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/35475?usp=email )
Change subject: abis_rsl: Separate rach expiry delay from radio link timeout
......................................................................
abis_rsl: Separate rach expiry delay from 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/2
--
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: 2
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-CC: Jenkins Builder
Gerrit-MessageType: newpatchset
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