clean up timer definitions: introduce groups, move some T to X
Backwards compatibly, introduce timer groups in OsmoBSC, and move some non-specified T timers to new X timers: T993111 -> X3111 T993210 -> X3210 T999 -> X4 Why X4? because there already is an X3 used elsewhere in Osmocom, and I find it less confusing if X-numbers don't repeat across programs. See https://osmocom.org/projects/cellular-infrastructure/wiki/List_of_Timer_numbers Drop unused timers from g_mgw_tdefs. Only X2427 has an actual effect. (libosmo-mgcp-client recently moved T2427001 to X2427.) Put libosmo-mgcp-client related timers to the 'mgw' group, like in osmo-msc. This makes the MGCP timeout configurable for the first time. Keep previous timer commands as DEFUN_HIDDEN, and also translate the moved T timers to X timers on-the-fly. All previous VTY commands still work, and new 'timer [(net|mgw)] ...' commands are added. timer.vty shows this. Remove the "_OPTIONAL" from the legacy "timer" and "show timer" commands, so that they don't ambiguously overload the new "timer [(net|mgw)] ..." commands. Related: OS#4539 Related: If097f52701fd81f29bcca1d252f4fb4fca8a04f7 (osmo-mgw) Change-Id: I4beec47502afa193dee343869c4be55dc6a4b536
This commit is contained in:
parent
9d71f9619a
commit
638eb99286
|
@ -189,7 +189,7 @@ msc {
|
||||||
ms => lchan [label="RSL RF Channel Release Ack"];
|
ms => lchan [label="RSL RF Channel Release Ack"];
|
||||||
|||;
|
|||;
|
||||||
--- [label="IF release_in_error"];
|
--- [label="IF release_in_error"];
|
||||||
lchan abox lchan [label="LCHAN_ST_WAIT_\nAFTER_ERROR\n(timeout: T3111+2 s, T993111)"];
|
lchan abox lchan [label="LCHAN_ST_WAIT_\nAFTER_ERROR\n(timeout: T3111+2 s, X3111)"];
|
||||||
...;
|
...;
|
||||||
lchan box lchan [label="timer expires"];
|
lchan box lchan [label="timer expires"];
|
||||||
--- [label="END: release_in_error"];
|
--- [label="END: release_in_error"];
|
||||||
|
|
|
@ -894,6 +894,8 @@ struct gsm_bts_rejected {
|
||||||
time_t time;
|
time_t time;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern struct osmo_tdef_group bsc_tdef_group[];
|
||||||
|
|
||||||
struct gsm_network *gsm_network_init(void *ctx);
|
struct gsm_network *gsm_network_init(void *ctx);
|
||||||
|
|
||||||
struct gsm_bts *gsm_bts_num(const struct gsm_network *net, int num);
|
struct gsm_bts *gsm_bts_num(const struct gsm_network *net, int num);
|
||||||
|
|
|
@ -90,8 +90,8 @@ static const struct value_string gscon_fsm_event_names[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct osmo_tdef_state_timeout conn_fsm_timeouts[32] = {
|
struct osmo_tdef_state_timeout conn_fsm_timeouts[32] = {
|
||||||
[ST_WAIT_CC] = { .T = 993210 },
|
[ST_WAIT_CC] = { .T = -3210 },
|
||||||
[ST_CLEARING] = { .T = 999 },
|
[ST_CLEARING] = { .T = -4 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Transition to a state, using the T timer defined in conn_fsm_timeouts.
|
/* Transition to a state, using the T timer defined in conn_fsm_timeouts.
|
||||||
|
@ -330,7 +330,7 @@ static void gscon_fsm_init(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||||
}
|
}
|
||||||
gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
|
gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
|
||||||
if (conn->fi->state != ST_CLEARING)
|
if (conn->fi->state != ST_CLEARING)
|
||||||
osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, 999);
|
osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, -4);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
OSMO_ASSERT(false);
|
OSMO_ASSERT(false);
|
||||||
|
@ -350,7 +350,7 @@ static void gscon_fsm_wait_cc(struct osmo_fsm_inst *fi, uint32_t event, void *da
|
||||||
confirmed connection, then instead simply drop the connection */
|
confirmed connection, then instead simply drop the connection */
|
||||||
LOGPFSML(fi, LOGL_INFO,
|
LOGPFSML(fi, LOGL_INFO,
|
||||||
"Connection confirmed but lchan was dropped previously, clearing conn\n");
|
"Connection confirmed but lchan was dropped previously, clearing conn\n");
|
||||||
osmo_fsm_inst_state_chg(conn->fi, ST_CLEARING, 60, 999);
|
osmo_fsm_inst_state_chg(conn->fi, ST_CLEARING, 60, -4);
|
||||||
gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
|
gscon_bssmap_clear(conn, GSM0808_CAUSE_EQUIPMENT_FAILURE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -692,7 +692,7 @@ void gscon_lchan_releasing(struct gsm_subscriber_connection *conn, struct gsm_lc
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Ensure that the FSM is in ST_CLEARING. */
|
/* Ensure that the FSM is in ST_CLEARING. */
|
||||||
osmo_fsm_inst_state_chg(conn->fi, ST_CLEARING, 60, 999);
|
osmo_fsm_inst_state_chg(conn->fi, ST_CLEARING, 60, -4);
|
||||||
/* fall thru, omit an error log if already in ST_CLEARING */
|
/* fall thru, omit an error log if already in ST_CLEARING */
|
||||||
case ST_CLEARING:
|
case ST_CLEARING:
|
||||||
/* Request a Clear Command from the MSC. */
|
/* Request a Clear Command from the MSC. */
|
||||||
|
@ -782,7 +782,7 @@ static void gscon_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *d
|
||||||
conn->lchan->release.is_csfb = ccd->is_csfb;
|
conn->lchan->release.is_csfb = ccd->is_csfb;
|
||||||
/* MSC tells us to cleanly shut down */
|
/* MSC tells us to cleanly shut down */
|
||||||
if (conn->fi->state != ST_CLEARING)
|
if (conn->fi->state != ST_CLEARING)
|
||||||
osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, 999);
|
osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, -4);
|
||||||
LOGPFSML(fi, LOGL_DEBUG, "Releasing all lchans (if any) after BSSMAP Clear Command\n");
|
LOGPFSML(fi, LOGL_DEBUG, "Releasing all lchans (if any) after BSSMAP Clear Command\n");
|
||||||
gscon_release_lchans(conn, true, bsc_gsm48_rr_cause_from_gsm0808_cause(ccd->cause_0808));
|
gscon_release_lchans(conn, true, bsc_gsm48_rr_cause_from_gsm0808_cause(ccd->cause_0808));
|
||||||
/* FIXME: Release all terestrial resources in ST_CLEARING */
|
/* FIXME: Release all terestrial resources in ST_CLEARING */
|
||||||
|
@ -890,7 +890,7 @@ static int gscon_timer_cb(struct osmo_fsm_inst *fi)
|
||||||
struct gsm_subscriber_connection *conn = fi->priv;
|
struct gsm_subscriber_connection *conn = fi->priv;
|
||||||
|
|
||||||
switch (fi->T) {
|
switch (fi->T) {
|
||||||
case 993210:
|
case -3210:
|
||||||
gscon_release_lchan(conn, conn->lchan, true, true, GSM48_RR_CAUSE_ABNORMAL_TIMER);
|
gscon_release_lchan(conn, conn->lchan, true, true, GSM48_RR_CAUSE_ABNORMAL_TIMER);
|
||||||
|
|
||||||
/* MSC has not responded/confirmed connection with CC, this
|
/* MSC has not responded/confirmed connection with CC, this
|
||||||
|
@ -904,7 +904,7 @@ static int gscon_timer_cb(struct osmo_fsm_inst *fi)
|
||||||
* gscon_cleanup() above) */
|
* gscon_cleanup() above) */
|
||||||
osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL);
|
osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL);
|
||||||
break;
|
break;
|
||||||
case 999:
|
case -4:
|
||||||
/* The MSC has sent a BSSMAP Clear Command, we acknowledged that, but the conn was never
|
/* The MSC has sent a BSSMAP Clear Command, we acknowledged that, but the conn was never
|
||||||
* disconnected. */
|
* disconnected. */
|
||||||
LOGPFSML(fi, LOGL_ERROR, "Long after a BSSMAP Clear Command, the conn is still not"
|
LOGPFSML(fi, LOGL_ERROR, "Long after a BSSMAP Clear Command, the conn is still not"
|
||||||
|
|
|
@ -1148,7 +1148,8 @@ static int config_write_net(struct vty *vty)
|
||||||
gsmnet->tz.hr, gsmnet->tz.mn, VTY_NEWLINE);
|
gsmnet->tz.hr, gsmnet->tz.mn, VTY_NEWLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
osmo_tdef_vty_write(vty, gsmnet->T_defs, " timer ");
|
/* Timer introspection commands (generic osmo_tdef API) */
|
||||||
|
osmo_tdef_vty_groups_write(vty, " ");
|
||||||
|
|
||||||
{
|
{
|
||||||
uint16_t meas_port;
|
uint16_t meas_port;
|
||||||
|
@ -5583,26 +5584,49 @@ DEFUN(cfg_net_meas_feed_scenario, cfg_net_meas_feed_scenario_cmd,
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN(show_timer, show_timer_cmd,
|
static void legacy_timers(struct vty *vty, const char **T_arg)
|
||||||
"show timer " OSMO_TDEF_VTY_ARG_T_OPTIONAL,
|
{
|
||||||
|
if (!strcmp((*T_arg), "T993111") || !strcmp((*T_arg), "t993111")) {
|
||||||
|
vty_out(vty, "%% Legacy: timer T993111 is now X3111%s", VTY_NEWLINE);
|
||||||
|
(*T_arg) = "X3111";
|
||||||
|
} else if (!strcmp((*T_arg), "T993210") || !strcmp((*T_arg), "t993210")) {
|
||||||
|
vty_out(vty, "%% Legacy: timer T993210 is now X3210%s", VTY_NEWLINE);
|
||||||
|
(*T_arg) = "X3210";
|
||||||
|
} else if (!strcmp((*T_arg), "T999") || !strcmp((*T_arg), "t999")) {
|
||||||
|
vty_out(vty, "%% Legacy: timer T999 is now X4%s", VTY_NEWLINE);
|
||||||
|
(*T_arg) = "X4";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LEGACY TIMER COMMAND. The proper commands are added by osmo_tdef_vty_groups_init(), using explicit timer group
|
||||||
|
* naming. The old groupless timer command accesses the 'net' group only, but is still available. */
|
||||||
|
DEFUN_HIDDEN(show_timer, show_timer_cmd,
|
||||||
|
"show timer " OSMO_TDEF_VTY_ARG_T,
|
||||||
SHOW_STR "Show timers\n"
|
SHOW_STR "Show timers\n"
|
||||||
OSMO_TDEF_VTY_DOC_T)
|
OSMO_TDEF_VTY_DOC_T)
|
||||||
{
|
{
|
||||||
struct gsm_network *net = gsmnet_from_vty(vty);
|
struct gsm_network *net = gsmnet_from_vty(vty);
|
||||||
const char *T_arg = argc > 0 ? argv[0] : NULL;
|
const char *T_arg = argv[0];
|
||||||
|
if (T_arg)
|
||||||
|
legacy_timers(vty, &T_arg);
|
||||||
return osmo_tdef_vty_show_cmd(vty, net->T_defs, T_arg, NULL);
|
return osmo_tdef_vty_show_cmd(vty, net->T_defs, T_arg, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN(cfg_net_timer, cfg_net_timer_cmd,
|
/* LEGACY TIMER COMMAND. The proper commands are added by osmo_tdef_vty_groups_init(), using explicit timer group
|
||||||
"timer " OSMO_TDEF_VTY_ARG_SET_OPTIONAL,
|
* naming. The old groupless timer command accesses the 'net' group only, but is still available. */
|
||||||
|
DEFUN_HIDDEN(cfg_net_timer, cfg_net_timer_cmd,
|
||||||
|
"timer " OSMO_TDEF_VTY_ARG_T " " OSMO_TDEF_VTY_ARG_VAL_OPTIONAL,
|
||||||
"Configure or show timers\n"
|
"Configure or show timers\n"
|
||||||
OSMO_TDEF_VTY_DOC_SET)
|
OSMO_TDEF_VTY_DOC_SET)
|
||||||
{
|
{
|
||||||
struct gsm_network *net = gsmnet_from_vty(vty);
|
struct gsm_network *net = gsmnet_from_vty(vty);
|
||||||
|
const char *mod_argv[argc];
|
||||||
|
memcpy(mod_argv, argv, sizeof(mod_argv));
|
||||||
|
legacy_timers(vty, &mod_argv[0]);
|
||||||
/* If any arguments are missing, redirect to 'show' */
|
/* If any arguments are missing, redirect to 'show' */
|
||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
return show_timer(self, vty, argc, argv);
|
return show_timer(self, vty, argc, mod_argv);
|
||||||
return osmo_tdef_vty_set_cmd(vty, net->T_defs, argv);
|
return osmo_tdef_vty_set_cmd(vty, net->T_defs, mod_argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN(cfg_net_allow_unusable_timeslots, cfg_net_allow_unusable_timeslots_cmd,
|
DEFUN(cfg_net_allow_unusable_timeslots, cfg_net_allow_unusable_timeslots_cmd,
|
||||||
|
@ -6563,6 +6587,9 @@ int bsc_vty_init(struct gsm_network *network)
|
||||||
install_element(GSMNET_NODE, &cfg_net_timer_cmd);
|
install_element(GSMNET_NODE, &cfg_net_timer_cmd);
|
||||||
install_element(GSMNET_NODE, &cfg_net_allow_unusable_timeslots_cmd);
|
install_element(GSMNET_NODE, &cfg_net_allow_unusable_timeslots_cmd);
|
||||||
|
|
||||||
|
/* Timer configuration commands (generic osmo_tdef API) */
|
||||||
|
osmo_tdef_vty_groups_init(GSMNET_NODE, bsc_tdef_group);
|
||||||
|
|
||||||
install_element_ve(&bsc_show_net_cmd);
|
install_element_ve(&bsc_show_net_cmd);
|
||||||
install_element_ve(&show_bts_cmd);
|
install_element_ve(&show_bts_cmd);
|
||||||
install_element_ve(&show_bts_fail_rep_cmd);
|
install_element_ve(&show_bts_fail_rep_cmd);
|
||||||
|
|
|
@ -216,7 +216,7 @@ struct osmo_tdef_state_timeout lchan_fsm_timeouts[32] = {
|
||||||
[LCHAN_ST_WAIT_RLL_RTP_RELEASED] = { .T=3109 },
|
[LCHAN_ST_WAIT_RLL_RTP_RELEASED] = { .T=3109 },
|
||||||
[LCHAN_ST_WAIT_BEFORE_RF_RELEASE] = { .T=3111 },
|
[LCHAN_ST_WAIT_BEFORE_RF_RELEASE] = { .T=3111 },
|
||||||
[LCHAN_ST_WAIT_RF_RELEASE_ACK] = { .T=3111 },
|
[LCHAN_ST_WAIT_RF_RELEASE_ACK] = { .T=3111 },
|
||||||
[LCHAN_ST_WAIT_AFTER_ERROR] = { .T=993111 },
|
[LCHAN_ST_WAIT_AFTER_ERROR] = { .T=-3111 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Transition to a state, using the T timer defined in lchan_fsm_timeouts.
|
/* Transition to a state, using the T timer defined in lchan_fsm_timeouts.
|
||||||
|
|
|
@ -37,7 +37,6 @@ static struct osmo_tdef gsm_network_T_defs[] = {
|
||||||
{ .T=3107, .default_val=5, .desc="(unused)" },
|
{ .T=3107, .default_val=5, .desc="(unused)" },
|
||||||
{ .T=3109, .default_val=5, .desc="RSL SACCH deactivation" },
|
{ .T=3109, .default_val=5, .desc="RSL SACCH deactivation" },
|
||||||
{ .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" },
|
{ .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" },
|
||||||
{ .T=993111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" },
|
|
||||||
{ .T=3113, .default_val=7, .desc="Paging"},
|
{ .T=3113, .default_val=7, .desc="Paging"},
|
||||||
{ .T=3115, .default_val=10, .desc="(unused)" },
|
{ .T=3115, .default_val=10, .desc="(unused)" },
|
||||||
{ .T=3117, .default_val=10, .desc="(unused)" },
|
{ .T=3117, .default_val=10, .desc="(unused)" },
|
||||||
|
@ -46,14 +45,20 @@ static struct osmo_tdef gsm_network_T_defs[] = {
|
||||||
{ .T=3141, .default_val=10, .desc="(unused)" },
|
{ .T=3141, .default_val=10, .desc="(unused)" },
|
||||||
{ .T=3212, .default_val=5, .unit=OSMO_TDEF_CUSTOM,
|
{ .T=3212, .default_val=5, .unit=OSMO_TDEF_CUSTOM,
|
||||||
.desc="Periodic Location Update timer, sent to MS (1 = 6 minutes)" },
|
.desc="Periodic Location Update timer, sent to MS (1 = 6 minutes)" },
|
||||||
{ .T=993210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" },
|
{ .T=-4, .default_val=60, .desc="After Clear Request, wait for MSC to Clear Command (sanity)" },
|
||||||
{ .T=999, .default_val=60, .desc="After Clear Request, wait for MSC to Clear Command (sanity)" },
|
{ .T=-3111, .default_val=4, .desc="Wait time after lchan was released in error (should be T3111 + 2s)" },
|
||||||
|
{ .T=-3210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct osmo_tdef g_mgw_tdefs[] = {
|
struct osmo_tdef g_mgw_tdefs[] = {
|
||||||
{ .T=-1, .default_val=4, .desc="MGCP response timeout" },
|
{ .T=-2427, .default_val=5, .desc="timeout for MGCP response from MGW" },
|
||||||
{ .T=-2, .default_val=30, .desc="RTP stream establishing timeout" },
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct osmo_tdef_group bsc_tdef_group[] = {
|
||||||
|
{ .name = "net", .tdefs = gsm_network_T_defs, .desc = "GSM network" },
|
||||||
|
{ .name = "mgw", .tdefs = g_mgw_tdefs, .desc = "MGW (Media Gateway) interface" },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
145
tests/timer.vty
145
tests/timer.vty
|
@ -1,62 +1,68 @@
|
||||||
OsmoBSC> enable
|
OsmoBSC> enable
|
||||||
|
|
||||||
OsmoBSC# show timer
|
OsmoBSC# show timer
|
||||||
T7 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Required to HO Command timeout (default: 10 s)
|
net: T7 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Required to HO Command timeout (default: 10 s)
|
||||||
T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s)
|
net: T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s)
|
||||||
T10 = 6 s RR Assignment (default: 6 s)
|
net: T10 = 6 s RR Assignment (default: 6 s)
|
||||||
T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s)
|
net: T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s)
|
||||||
T3101 = 3 s RR Immediate Assignment (default: 3 s)
|
net: T3101 = 3 s RR Immediate Assignment (default: 3 s)
|
||||||
T3103 = 5 s Handover (default: 5 s)
|
net: T3103 = 5 s Handover (default: 5 s)
|
||||||
T3105 = 100 ms Physical Information (default: 100 ms)
|
net: T3105 = 100 ms Physical Information (default: 100 ms)
|
||||||
T3107 = 5 s (unused) (default: 5 s)
|
net: T3107 = 5 s (unused) (default: 5 s)
|
||||||
T3109 = 5 s RSL SACCH deactivation (default: 5 s)
|
net: T3109 = 5 s RSL SACCH deactivation (default: 5 s)
|
||||||
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
net: T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
T993111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
net: T3113 = 7 s Paging (default: 7 s)
|
||||||
T3113 = 7 s Paging (default: 7 s)
|
net: T3115 = 10 s (unused) (default: 10 s)
|
||||||
T3115 = 10 s (unused) (default: 10 s)
|
net: T3117 = 10 s (unused) (default: 10 s)
|
||||||
T3117 = 10 s (unused) (default: 10 s)
|
net: T3119 = 10 s (unused) (default: 10 s)
|
||||||
T3119 = 10 s (unused) (default: 10 s)
|
net: T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s)
|
||||||
T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s)
|
net: T3141 = 10 s (unused) (default: 10 s)
|
||||||
T3141 = 10 s (unused) (default: 10 s)
|
net: T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5)
|
||||||
T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5)
|
net: X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
T993210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
T999 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
|
mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
|
||||||
OsmoBSC# show timer T3111
|
OsmoBSC# show timer T3111
|
||||||
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
|
|
||||||
OsmoBSC# # specifically test legacy timers that are moved to X timers
|
OsmoBSC# # specifically test legacy timers that are moved to X timers
|
||||||
OsmoBSC# show timer T993111
|
OsmoBSC# show timer T993111
|
||||||
T993111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
% Legacy: timer T993111 is now X3111
|
||||||
|
X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
OsmoBSC# show timer T993210
|
OsmoBSC# show timer T993210
|
||||||
T993210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
% Legacy: timer T993210 is now X3210
|
||||||
|
X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
OsmoBSC# show timer T999
|
OsmoBSC# show timer T999
|
||||||
T999 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
% Legacy: timer T999 is now X4
|
||||||
|
X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
|
|
||||||
OsmoBSC# configure terminal
|
OsmoBSC# configure terminal
|
||||||
OsmoBSC(config)# network
|
OsmoBSC(config)# network
|
||||||
OsmoBSC(config-net)# timer
|
OsmoBSC(config-net)# timer
|
||||||
T7 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Required to HO Command timeout (default: 10 s)
|
net: T7 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Required to HO Command timeout (default: 10 s)
|
||||||
T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s)
|
net: T8 = 10 s inter-BSC/MSC Handover outgoing, BSSMAP HO Command to final Clear timeout (default: 10 s)
|
||||||
T10 = 6 s RR Assignment (default: 6 s)
|
net: T10 = 6 s RR Assignment (default: 6 s)
|
||||||
T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s)
|
net: T101 = 10 s inter-BSC/MSC Handover incoming, BSSMAP HO Request to HO Accept (default: 10 s)
|
||||||
T3101 = 3 s RR Immediate Assignment (default: 3 s)
|
net: T3101 = 3 s RR Immediate Assignment (default: 3 s)
|
||||||
T3103 = 5 s Handover (default: 5 s)
|
net: T3103 = 5 s Handover (default: 5 s)
|
||||||
T3105 = 100 ms Physical Information (default: 100 ms)
|
net: T3105 = 100 ms Physical Information (default: 100 ms)
|
||||||
T3107 = 5 s (unused) (default: 5 s)
|
net: T3107 = 5 s (unused) (default: 5 s)
|
||||||
T3109 = 5 s RSL SACCH deactivation (default: 5 s)
|
net: T3109 = 5 s RSL SACCH deactivation (default: 5 s)
|
||||||
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
net: T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
T993111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
net: T3113 = 7 s Paging (default: 7 s)
|
||||||
T3113 = 7 s Paging (default: 7 s)
|
net: T3115 = 10 s (unused) (default: 10 s)
|
||||||
T3115 = 10 s (unused) (default: 10 s)
|
net: T3117 = 10 s (unused) (default: 10 s)
|
||||||
T3117 = 10 s (unused) (default: 10 s)
|
net: T3119 = 10 s (unused) (default: 10 s)
|
||||||
T3119 = 10 s (unused) (default: 10 s)
|
net: T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s)
|
||||||
T3122 = 10 s Wait time after RR Immediate Assignment Reject (default: 10 s)
|
net: T3141 = 10 s (unused) (default: 10 s)
|
||||||
T3141 = 10 s (unused) (default: 10 s)
|
net: T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5)
|
||||||
T3212 = 5 Periodic Location Update timer, sent to MS (1 = 6 minutes) (default: 5)
|
net: X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
T993210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
net: X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
T999 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
net: X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
|
mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
|
||||||
|
OsmoBSC(config-net)# # Using the legacy 'timer Txxx' still works:
|
||||||
OsmoBSC(config-net)# timer T3111
|
OsmoBSC(config-net)# timer T3111
|
||||||
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
OsmoBSC(config-net)# timer T3111 23
|
OsmoBSC(config-net)# timer T3111 23
|
||||||
|
@ -66,30 +72,65 @@ OsmoBSC(config-net)# timer T3111 default
|
||||||
OsmoBSC(config-net)# timer T3111
|
OsmoBSC(config-net)# timer T3111
|
||||||
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
|
|
||||||
|
OsmoBSC(config-net)# # Using the new timer group commands also works:
|
||||||
|
OsmoBSC(config-net)# timer net T3111
|
||||||
|
net: T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
|
OsmoBSC(config-net)# timer net T3111 42
|
||||||
|
OsmoBSC(config-net)# timer net T3111
|
||||||
|
net: T3111 = 42 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
|
OsmoBSC(config-net)# timer net T3111 default
|
||||||
|
OsmoBSC(config-net)# timer net T3111
|
||||||
|
net: T3111 = 2 s Wait time before RSL RF Channel Release (default: 2 s)
|
||||||
|
OsmoBSC(config-net)# timer mgw
|
||||||
|
mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
OsmoBSC(config-net)# timer mgw X2427
|
||||||
|
mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
OsmoBSC(config-net)# timer mgw X2427 42
|
||||||
|
OsmoBSC(config-net)# timer mgw X2427
|
||||||
|
mgw: X2427 = 42 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
OsmoBSC(config-net)# timer mgw X2427 default
|
||||||
|
OsmoBSC(config-net)# timer mgw X2427
|
||||||
|
mgw: X2427 = 5 s timeout for MGCP response from MGW (default: 5 s)
|
||||||
|
|
||||||
OsmoBSC(config-net)# # specifically test legacy timers that are moved to X timers
|
OsmoBSC(config-net)# # specifically test legacy timers that are moved to X timers
|
||||||
OsmoBSC(config-net)# timer T993111
|
OsmoBSC(config-net)# timer T993111
|
||||||
T993111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
% Legacy: timer T993111 is now X3111
|
||||||
|
X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
OsmoBSC(config-net)# timer T993111 1
|
OsmoBSC(config-net)# timer T993111 1
|
||||||
|
% Legacy: timer T993111 is now X3111
|
||||||
OsmoBSC(config-net)# timer T993111
|
OsmoBSC(config-net)# timer T993111
|
||||||
T993111 = 1 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
% Legacy: timer T993111 is now X3111
|
||||||
|
X3111 = 1 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
OsmoBSC(config-net)# timer T993111 default
|
OsmoBSC(config-net)# timer T993111 default
|
||||||
|
% Legacy: timer T993111 is now X3111
|
||||||
OsmoBSC(config-net)# timer T993111
|
OsmoBSC(config-net)# timer T993111
|
||||||
T993111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
% Legacy: timer T993111 is now X3111
|
||||||
|
X3111 = 4 s Wait time after lchan was released in error (should be T3111 + 2s) (default: 4 s)
|
||||||
|
|
||||||
OsmoBSC(config-net)# timer T993210
|
OsmoBSC(config-net)# timer T993210
|
||||||
T993210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
% Legacy: timer T993210 is now X3210
|
||||||
|
X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
OsmoBSC(config-net)# timer T993210 2
|
OsmoBSC(config-net)# timer T993210 2
|
||||||
|
% Legacy: timer T993210 is now X3210
|
||||||
OsmoBSC(config-net)# timer T993210
|
OsmoBSC(config-net)# timer T993210
|
||||||
T993210 = 2 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
% Legacy: timer T993210 is now X3210
|
||||||
|
X3210 = 2 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
OsmoBSC(config-net)# timer T993210 default
|
OsmoBSC(config-net)# timer T993210 default
|
||||||
|
% Legacy: timer T993210 is now X3210
|
||||||
OsmoBSC(config-net)# timer T993210
|
OsmoBSC(config-net)# timer T993210
|
||||||
T993210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
% Legacy: timer T993210 is now X3210
|
||||||
|
X3210 = 20 s After L3 Complete, wait for MSC to confirm (default: 20 s)
|
||||||
|
|
||||||
OsmoBSC(config-net)# timer T999
|
OsmoBSC(config-net)# timer T999
|
||||||
T999 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
% Legacy: timer T999 is now X4
|
||||||
|
X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
OsmoBSC(config-net)# timer T999 3
|
OsmoBSC(config-net)# timer T999 3
|
||||||
|
% Legacy: timer T999 is now X4
|
||||||
OsmoBSC(config-net)# timer T999
|
OsmoBSC(config-net)# timer T999
|
||||||
T999 = 3 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
% Legacy: timer T999 is now X4
|
||||||
|
X4 = 3 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
OsmoBSC(config-net)# timer T999 default
|
OsmoBSC(config-net)# timer T999 default
|
||||||
|
% Legacy: timer T999 is now X4
|
||||||
OsmoBSC(config-net)# timer T999
|
OsmoBSC(config-net)# timer T999
|
||||||
T999 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
% Legacy: timer T999 is now X4
|
||||||
|
X4 = 60 s After Clear Request, wait for MSC to Clear Command (sanity) (default: 60 s)
|
||||||
|
|
Loading…
Reference in New Issue