diff options
author | Keith <keith@rhizomatica.org> | 2021-04-01 09:37:24 +0200 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-04-04 15:39:53 +0200 |
commit | 1823f89c1eae49960d036d2a48abf0de6a3add8d (patch) | |
tree | e69b77c7fec50c99400c807b82b50ba4ac8353b2 /src/osmo-bsc/bsc_vty.c | |
parent | 764449ec2ea6d6b45239278eae90613df8c93f59 (diff) |
Ignore CHANnel ReQuireD with Access Delay IE > 63
It is observed that a CHANnel ReQuireD with access delay
greater than 63 can be received from the Ericsson RBS.
This results in osmo-bsc sending back a CHANnel ACTIVation with
a Timing Advance IE containing the access delay value.
The RBS NACKs this, leading to a BORKEN Channel.
This patch makes the maximum acceptable access delay vty-configurable
and Ignores CHANnel ReQuireD RSL Messages with Access Delay IE greater
than that configured. Default value is 63.
Related: OS#5096
Change-Id: Ie8987bcc0e43921bc753162b77a0efc68799b3ce
Diffstat (limited to 'src/osmo-bsc/bsc_vty.c')
-rw-r--r-- | src/osmo-bsc/bsc_vty.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 280fe9fa9..91eaee01d 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -433,6 +433,8 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " RACH Max transmissions: %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " RACH Max Delay (Max Access Delay IE in CHANnel ReQuireD): %u%s", + bts->rach_max_delay, VTY_NEWLINE); if (bts->si_common.rach_control.cell_bar) vty_out(vty, " CELL IS BARRED%s", VTY_NEWLINE); if (bts->dtxu != GSM48_DTX_SHALL_NOT_BE_USED) @@ -1041,6 +1043,7 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts) vty_out(vty, " rach max transmission %u%s", rach_max_trans_raw2val(bts->si_common.rach_control.max_trans), VTY_NEWLINE); + vty_out(vty, " rach max-delay %u%s", bts->rach_max_delay, VTY_NEWLINE); vty_out(vty, " channel-description attach %u%s", bts->si_common.chan_desc.att, VTY_NEWLINE); @@ -2746,6 +2749,19 @@ DEFUN_USRATTR(cfg_bts_rach_max_trans, return CMD_SUCCESS; } +DEFUN_ATTR(cfg_bts_rach_max_delay, + cfg_bts_rach_max_delay_cmd, + "rach max-delay <1-127>", + RACH_STR + "Set the max Access Delay IE value to accept in CHANnel ReQuireD\n" + "Maximum Access Delay IE value to accept in CHANnel ReQuireD\n", + CMD_ATTR_IMMEDIATE) +{ + struct gsm_bts *bts = vty->index; + bts->rach_max_delay = atoi(argv[0]); + return CMD_SUCCESS; +} + #define REP_ACCH_STR "FACCH/SACCH repetition\n" DEFUN_USRATTR(cfg_bts_rep_dl_facch, @@ -7668,6 +7684,7 @@ int bsc_vty_init(struct gsm_network *network) install_element(BTS_NODE, &cfg_bts_challoc_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); 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); |