mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-trx.git
synced 2025-11-06 15:13:16 +00:00
add hidden fn adjustment command
This is only useful if the rf path delays the signal by at least one frame, and therefore a fairly experimental command that might be removed or reworked in the future and should not be relied upon. Change-Id: I29964acffad5bad4f5bcad7f631e435a72979c46
This commit is contained in:
@@ -48,6 +48,7 @@ struct trx_cfg {
|
|||||||
double offset;
|
double offset;
|
||||||
double freq_offset_khz;
|
double freq_offset_khz;
|
||||||
double rssi_offset;
|
double rssi_offset;
|
||||||
|
int ul_fn_offset;
|
||||||
bool force_rssi_offset; /* Force value set in VTY? */
|
bool force_rssi_offset; /* Force value set in VTY? */
|
||||||
bool swap_channels;
|
bool swap_channels;
|
||||||
bool ext_rach;
|
bool ext_rach;
|
||||||
|
|||||||
@@ -271,6 +271,20 @@ DEFUN(cfg_rssi_offset, cfg_rssi_offset_cmd,
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DEFUN_ATTR(cfg_ul_fn_offset, cfg_ul_fn_offset_cmd,
|
||||||
|
"ul-fn-offset <-10-10>",
|
||||||
|
"Adjusts the uplink frame FN by the specified amount\n"
|
||||||
|
"Frame Number offset\n",
|
||||||
|
CMD_ATTR_HIDDEN)
|
||||||
|
{
|
||||||
|
struct trx_ctx *trx = trx_from_vty(vty);
|
||||||
|
|
||||||
|
trx->cfg.ul_fn_offset = atoi(argv[0]);
|
||||||
|
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
DEFUN(cfg_swap_channels, cfg_swap_channels_cmd,
|
DEFUN(cfg_swap_channels, cfg_swap_channels_cmd,
|
||||||
"swap-channels (disable|enable)",
|
"swap-channels (disable|enable)",
|
||||||
"Swap primary and secondary channels of the PHY (if any)\n"
|
"Swap primary and secondary channels of the PHY (if any)\n"
|
||||||
@@ -624,6 +638,8 @@ static int config_write_trx(struct vty *vty)
|
|||||||
vty_out(vty, " filler access-burst-delay %u%s", trx->cfg.rach_delay, VTY_NEWLINE);
|
vty_out(vty, " filler access-burst-delay %u%s", trx->cfg.rach_delay, VTY_NEWLINE);
|
||||||
if (trx->cfg.stack_size != 0)
|
if (trx->cfg.stack_size != 0)
|
||||||
vty_out(vty, " stack-size %u%s", trx->cfg.stack_size, VTY_NEWLINE);
|
vty_out(vty, " stack-size %u%s", trx->cfg.stack_size, VTY_NEWLINE);
|
||||||
|
if (trx->cfg.ul_fn_offset != 0)
|
||||||
|
vty_out(vty, " ul-fn-offset %u%s", trx->cfg.ul_fn_offset, VTY_NEWLINE);
|
||||||
trx_rate_ctr_threshold_write_config(vty, " ");
|
trx_rate_ctr_threshold_write_config(vty, " ");
|
||||||
|
|
||||||
for (i = 0; i < trx->cfg.num_chans; i++) {
|
for (i = 0; i < trx->cfg.num_chans; i++) {
|
||||||
@@ -787,6 +803,7 @@ int trx_vty_init(struct trx_ctx* trx)
|
|||||||
install_element(TRX_NODE, &cfg_stack_size_cmd);
|
install_element(TRX_NODE, &cfg_stack_size_cmd);
|
||||||
|
|
||||||
install_element(TRX_NODE, &cfg_chan_cmd);
|
install_element(TRX_NODE, &cfg_chan_cmd);
|
||||||
|
install_element(TRX_NODE, &cfg_ul_fn_offset_cmd);
|
||||||
install_node(&chan_node, dummy_config_write);
|
install_node(&chan_node, dummy_config_write);
|
||||||
install_element(CHAN_NODE, &cfg_chan_rx_path_cmd);
|
install_element(CHAN_NODE, &cfg_chan_rx_path_cmd);
|
||||||
install_element(CHAN_NODE, &cfg_chan_tx_path_cmd);
|
install_element(CHAN_NODE, &cfg_chan_tx_path_cmd);
|
||||||
|
|||||||
@@ -649,7 +649,7 @@ int Transceiver::pullRadioVector(size_t chan, struct trx_ul_burst_ind *bi)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Set time and determine correlation type */
|
/* Set time and determine correlation type */
|
||||||
burstTime = radio_burst->getTime();
|
burstTime = radio_burst->getTime() + cfg->ul_fn_offset;
|
||||||
CorrType type = expectedCorrType(burstTime, chan);
|
CorrType type = expectedCorrType(burstTime, chan);
|
||||||
|
|
||||||
/* Initialize struct bi */
|
/* Initialize struct bi */
|
||||||
|
|||||||
Reference in New Issue
Block a user