aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/osmo-bts-trx/scheduler.c7
-rw-r--r--src/osmo-bts-trx/scheduler.h1
-rw-r--r--src/osmo-bts-trx/trx_vty.c16
3 files changed, 20 insertions, 4 deletions
diff --git a/src/osmo-bts-trx/scheduler.c b/src/osmo-bts-trx/scheduler.c
index a02a2de1..4cf6a683 100644
--- a/src/osmo-bts-trx/scheduler.c
+++ b/src/osmo-bts-trx/scheduler.c
@@ -527,11 +527,12 @@ free_msg:
default:
goto wrong_type;
}
- if (prim_fn > 20) {
+ if (prim_fn > 100) {
LOGP(DL1C, LOGL_NOTICE, "Prim for trx=%u ts=%u at fn=%u "
"is out of range, or channel already disabled. "
- "(current fn=%u)\n", l1h->trx->nr, tn, prim_fn,
- fn);
+ "If this happens in conjunction with PCU, "
+ "increase 'rts-advance' by 5. (current fn=%u)\n",
+ l1h->trx->nr, tn, l1sap->u.data.fn, fn);
/* unlink and free message */
llist_del(&msg->list);
msgb_free(msg);
diff --git a/src/osmo-bts-trx/scheduler.h b/src/osmo-bts-trx/scheduler.h
index acc2cebe..ce7ddad8 100644
--- a/src/osmo-bts-trx/scheduler.h
+++ b/src/osmo-bts-trx/scheduler.h
@@ -2,6 +2,7 @@
#define TRX_SCHEDULER_H
extern uint32_t trx_clock_advance;
+extern uint32_t trx_rts_advance;
extern uint32_t transceiver_last_fn;
diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c
index ebc7cfdb..e3e9c364 100644
--- a/src/osmo-bts-trx/trx_vty.c
+++ b/src/osmo-bts-trx/trx_vty.c
@@ -119,7 +119,8 @@ DEFUN(show_transceiver, show_transceiver_cmd, "show transceiver",
DEFUN(cfg_bts_fn_advance, cfg_bts_fn_advance_cmd,
"fn-advance <0-30>",
- "Set the number of frames to be transmitted in advance of current FN\n"
+ "Set the number of frames to be transmitted to transceiver in advance "
+ "of current FN\n"
"Advance in frames\n")
{
trx_clock_advance = atoi(argv[0]);
@@ -127,6 +128,17 @@ DEFUN(cfg_bts_fn_advance, cfg_bts_fn_advance_cmd,
return CMD_SUCCESS;
}
+DEFUN(cfg_bts_rts_advance, cfg_bts_rts_advance_cmd,
+ "rts-advance <0-30>",
+ "Set the number of frames to be requested (PCU) in advance of current "
+ "FN. Do not change this, unless you have a good reason!\n"
+ "Advance in frames\n")
+{
+ trx_rts_advance = atoi(argv[0]);
+
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_bts_ms_power_loop, cfg_bts_ms_power_loop_cmd,
"ms-power-loop <-127-127>",
"Enable MS power control loop\nTarget RSSI value (transceiver specific, "
@@ -336,6 +348,7 @@ DEFUN(cfg_trx_no_maxdly, cfg_trx_no_maxdly_cmd,
void bts_model_config_write_bts(struct vty *vty, struct gsm_bts *bts)
{
vty_out(vty, " fn-advance %d%s", trx_clock_advance, VTY_NEWLINE);
+ vty_out(vty, " rts-advance %d%s", trx_rts_advance, VTY_NEWLINE);
if (trx_ms_power_loop)
vty_out(vty, " ms-power-loop %d%s", trx_target_rssi,
@@ -385,6 +398,7 @@ int bts_model_vty_init(struct gsm_bts *bts)
install_element_ve(&show_transceiver_cmd);
install_element(BTS_NODE, &cfg_bts_fn_advance_cmd);
+ install_element(BTS_NODE, &cfg_bts_rts_advance_cmd);
install_element(BTS_NODE, &cfg_bts_ms_power_loop_cmd);
install_element(BTS_NODE, &cfg_bts_no_ms_power_loop_cmd);
install_element(BTS_NODE, &cfg_bts_timing_advance_loop_cmd);