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 */
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
*/
struct osmocom_ms *ms = vty->index;
ms->settings.alter_delay = atoi(argv[0]);
+ gsm48_rr_alter_delay(ms);
return CMD_SUCCESS;
}
struct osmocom_ms *ms = vty->index;
ms->settings.alter_delay = 0;
+ gsm48_rr_alter_delay(ms);
return CMD_SUCCESS;
}