[layer23] Alter simulated-delay via VTY on the fly (active channel)

This commit is contained in:
Andreas.Eversberg 2010-09-27 18:53:03 +00:00
parent e326e81728
commit e97b7c418c
3 changed files with 18 additions and 0 deletions

View File

@ -192,5 +192,6 @@ int gsm48_rr_rach_conf(struct osmocom_ms *ms, uint32_t fn);
extern const char *gsm48_rr_state_names[];
int gsm48_rr_start_monitor(struct osmocom_ms *ms);
int gsm48_rr_stop_monitor(struct osmocom_ms *ms);
int gsm48_rr_alter_delay(struct osmocom_ms *ms);
#endif /* _GSM48_RR_H */

View File

@ -353,6 +353,21 @@ static uint8_t gsm48_rr_check_mode(struct osmocom_ms *ms, uint8_t chan_nr,
return 0;
}
/* apply new "alter_delay" in dedicated mode */
int gsm48_rr_alter_delay(struct osmocom_ms *ms)
{
struct gsm48_rrlayer *rr = &ms->rrlayer;
struct gsm_settings *set = &rr->ms->settings;
if (rr->state != GSM48_RR_ST_DEDICATED)
return -EINVAL;
l1ctl_tx_param_req(ms, rr->cd_now.ind_ta - set->alter_delay,
(set->alter_tx_power) ? set->alter_tx_power_value
: rr->cd_now.ind_tx_power);
return 0;
}
/*
* state transition
*/

View File

@ -1123,6 +1123,7 @@ DEFUN(cfg_ms_sim_delay, cfg_ms_sim_delay_cmd, "simulated-delay <-128-127>",
struct osmocom_ms *ms = vty->index;
ms->settings.alter_delay = atoi(argv[0]);
gsm48_rr_alter_delay(ms);
return CMD_SUCCESS;
}
@ -1133,6 +1134,7 @@ DEFUN(cfg_ms_no_sim_delay, cfg_ms_no_sim_delay_cmd, "no simulated-delay",
struct osmocom_ms *ms = vty->index;
ms->settings.alter_delay = 0;
gsm48_rr_alter_delay(ms);
return CMD_SUCCESS;
}