Commit 2a652c6e authored by luis_pereira87's avatar luis_pereira87

Further improvements to get better connection with USRPs

parent 580722b5
......@@ -821,6 +821,14 @@ void *UE_thread(void *arg)
UE->is_synchronized = 0;
AssertFatal(UE->rfdevice.trx_start_func(&UE->rfdevice) == 0, "Could not start the device\n");
if (!IS_SOFTMODEM_RFSIM) {
if (UE->rfdevice.openair0_cfg->sample_rate == 7680000) {
UE->rfdevice.openair0_cfg->tx_sample_advance = 112;
} else if (UE->rfdevice.openair0_cfg->sample_rate == 15360000) {
UE->rfdevice.openair0_cfg->tx_sample_advance = 128;
}
}
notifiedFIFO_t nf;
initNotifiedFIFO(&nf);
......@@ -869,8 +877,6 @@ void *UE_thread(void *arg)
UE->rx_offset_comp = 0;
UE->timing_advance += ta_shift;
}
// Reset target_Nid_cell for next handover
UE->target_Nid_cell = -1;
// Still unknown why need to reset timing_advance in RFsim to avoid:
// Received RAR preamble (38) doesn't match the intended RAPID (37)
UE->timing_advance = 0;
......
......@@ -36,7 +36,7 @@
{"single-thread-disable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, .iptr=&single_thread_flag, .defintval=1, TYPE_INT, 0}, \
{"dlsch-parallel", CONFIG_HLP_DLSCH_PARA, 0, .u8ptr=NULL, .defintval=0, TYPE_UINT8, 0}, \
{"offset-divisor", CONFIG_HLP_OFFSET_DIV, 0, .uptr=&nrUE_params.ofdm_offset_divisor, .defuintval=8, TYPE_UINT32, 0}, \
{"max-ldpc-iterations", CONFIG_HLP_MAX_LDPC_ITERATIONS, 0, .iptr=&nrUE_params.max_ldpc_iterations, .defuintval=5, TYPE_UINT8, 0}, \
{"max-ldpc-iterations", CONFIG_HLP_MAX_LDPC_ITERATIONS, 0, .iptr=&nrUE_params.max_ldpc_iterations, .defuintval=10, TYPE_UINT8, 0}, \
{"nr-dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, .iptr=(int32_t *)&nr_dlsch_demod_shift, .defintval=0, TYPE_INT, 0}, \
{"V" , CONFIG_HLP_VCD, PARAMFLAG_BOOL, .iptr=&vcdflag, .defintval=0, TYPE_INT, 0}, \
{"uecap_file", CONFIG_HLP_UECAP_FILE, 0, .strptr=&uecap_file, .defstrval="./uecap_ports1.xml", TYPE_STRING, 0}, \
......
......@@ -64,8 +64,8 @@ static NR_SearchSpace_t *rrc_searchspace_config(bool is_common, int searchspacei
ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
}
else {
ss->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n2;
ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n0;
ss->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
ss->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n2;
}
ss->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
ss->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
......@@ -806,8 +806,8 @@ static void config_pucch_resset0(NR_PUCCH_Config_t *pucch_Config, int uid, int c
pucchres0->format.present = NR_PUCCH_Resource__format_PR_format0;
pucchres0->format.choice.format0 = calloc(1,sizeof(*pucchres0->format.choice.format0));
pucchres0->format.choice.format0->initialCyclicShift = 0;
pucchres0->format.choice.format0->nrofSymbols = 1;
pucchres0->format.choice.format0->startingSymbolIndex = 13;
pucchres0->format.choice.format0->nrofSymbols = 2;
pucchres0->format.choice.format0->startingSymbolIndex = 12;
asn1cSeqAdd(&pucch_Config->resourceToAddModList->list,pucchres0);
asn1cSeqAdd(&pucch_Config->resourceSetToAddModList->list,pucchresset);
......@@ -1145,9 +1145,9 @@ static struct NR_SetupRelease_PDSCH_Config *config_pdsch(uint64_t ssb_bitmap, in
dmrs_DownlinkForPDSCH_MappingTypeA->maxLength = NULL;
dmrs_DownlinkForPDSCH_MappingTypeA->scramblingID0 = NULL;
dmrs_DownlinkForPDSCH_MappingTypeA->scramblingID1 = NULL;
dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition = calloc(1, sizeof(*dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition));
dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition = NULL; //calloc(1, sizeof(*dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition));
// TODO possible improvement is to select based on some input additional position
*dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
//*dmrs_DownlinkForPDSCH_MappingTypeA->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos1;
pdsch_Config->dataScramblingIdentityPDSCH = NULL;
pdsch_Config->resourceAllocation = NR_PDSCH_Config__resourceAllocation_resourceAllocationType1;
......
......@@ -467,6 +467,7 @@ void nr_HO_trigger(const protocol_ctxt_t *ctxt_p, rrc_gNB_ue_context_t *ue_conte
itti_send_msg_to_task(TASK_CU_F1, RC.nrrrc[instance]->f1_instance, message_p);
}
int ho_count = 0;
void *timer_update_thread(void *param)
{
while (!oai_exit) {
......@@ -484,12 +485,15 @@ void *timer_update_thread(void *param)
// Decrement until it reaches 0 and then trigger HO
rrc->location_ho_timer--;
LOG_W(NR_RRC, "[DU %i][HO #%i] LOCATION-BASED TRIGGER TIMER = %2i\n", mod_id, ho_count, rrc->location_ho_timer);
if (rrc->location_ho_timer == 0) {
int mod_id_t = (mod_id + 1) % RC.nb_nr_inst;
gNB_RRC_INST *rrc_t = RC.nrrrc[mod_id_t];
if (rrc_t && rrc_t->f1_instance >= 0) {
rrc->location_ho_rnti = -1;
nr_HO_trigger(&ctxt, ue_context_p, rrc_t->carrier.physCellId);
ho_count++;
} else {
LOG_E(NR_RRC, "Target DU is not active. Handover not started.\n");
rrc->location_ho_timer = rrc->configuration.location_ho_trigger;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment