NR UE: also use ta_CommonDriftVariant_r17 to calculate the initial timing advance

This commit is contained in:
Thomas Schlichter
2025-06-20 11:24:06 +00:00
parent 22866c3c1e
commit e91fb33da3
6 changed files with 20 additions and 3 deletions
+8 -1
View File
@@ -339,20 +339,27 @@ static void configure_ntn_ta(module_id_t module_id,
ntn_ta->N_common_ta_drift = *ntn_Config_r17->ta_Info_r17->ta_CommonDrift_r17 * 0.2e-3;
else // Need R - Release if not present
ntn_ta->N_common_ta_drift = 0;
// ta_CommonDriftVariant_r17 (is in units of 0.2e-4 µs/s²)
if (ntn_Config_r17->ta_Info_r17->ta_CommonDriftVariant_r17)
ntn_ta->N_common_ta_drift_variant = *ntn_Config_r17->ta_Info_r17->ta_CommonDriftVariant_r17 * 0.2e-4;
else // Need R - Release if not present
ntn_ta->N_common_ta_drift_variant = 0;
} else { // Need R - Release if not present
ntn_ta->N_common_ta_adj = 0;
ntn_ta->N_common_ta_drift = 0;
ntn_ta->N_common_ta_drift_variant = 0;
}
ntn_ta->ntn_params_changed = true;
LOG_D(NR_MAC,
"SIB19 Rxd. Epoch SFN: %d, Epoch Subframe: %d, k_offset: %ldms, N_Common_Ta: %fms, drift: %fµs/s, N_UE_TA: %fms, drift: %fµs/s\n",
"SIB19 Rxd. Epoch SFN: %d, Epoch Subframe: %d, k_offset: %ldms, N_Common_Ta: %fms, drift: %fµs/s, variant %fµs/s², N_UE_TA: %fms, drift: %fµs/s\n",
ntn_ta->epoch_sfn,
ntn_ta->epoch_subframe,
ntn_ta->cell_specific_k_offset,
ntn_ta->N_common_ta_adj,
ntn_ta->N_common_ta_drift,
ntn_ta->N_common_ta_drift_variant,
ntn_ta->N_UE_TA_adj,
ntn_ta->N_UE_TA_drift);
}
+2
View File
@@ -533,6 +533,8 @@ typedef struct ntn_timing_advance_components {
double N_common_ta_adj;
// drift rate of common ta in µs/s
double N_common_ta_drift;
// change rate of common ta drift in µs/s²
double N_common_ta_drift_variant;
// N_UE_TA_adj calculated round-trip-time between UE and SAT (ms)
double N_UE_TA_adj;
// drift rate of N_UE_TA in µs/s
@@ -2849,6 +2849,7 @@ static void schedule_ntn_config_command(fapi_nr_dl_config_request_t *dl_config,
ntn_config_command_pdu->cell_specific_k_offset = mac->ntn_ta.cell_specific_k_offset;
ntn_config_command_pdu->ntn_total_time_advance_ms = get_total_TA_ms(&mac->ntn_ta);
ntn_config_command_pdu->ntn_total_time_advance_drift = get_total_TA_drift(&mac->ntn_ta);
ntn_config_command_pdu->ntn_total_time_advance_drift_variant = mac->ntn_ta.N_common_ta_drift_variant;
dl_config->dl_config_list[dl_config->number_pdus].pdu_type = FAPI_NR_DL_NTN_CONFIG_PARAMS;
dl_config->number_pdus += 1;