Commit d81a5da4 authored by Raymond Knopp's avatar Raymond Knopp

Merge branch 'NR_SA_F1AP_5GRECORDS' of...

Merge branch 'NR_SA_F1AP_5GRECORDS' of https://gitlab.eurecom.fr/oai/openairinterface5g into NR_SA_F1AP_5GRECORDS

Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_prach.c
parents 4c3b7188 d2ec72b0
...@@ -113,6 +113,7 @@ check_supported_distribution() { ...@@ -113,6 +113,7 @@ check_supported_distribution() {
"rhel7.6") return 0 ;; "rhel7.6") return 0 ;;
"rhel7.7") return 0 ;; "rhel7.7") return 0 ;;
"rhel7.8") return 0 ;; "rhel7.8") return 0 ;;
"rhel7.9") return 0 ;;
"rhel8.2") return 0 ;; "rhel8.2") return 0 ;;
"rhel8.3") return 0 ;; "rhel8.3") return 0 ;;
"rhel8.4") return 0 ;; "rhel8.4") return 0 ;;
......
...@@ -903,6 +903,18 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { ...@@ -903,6 +903,18 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) {
cfg->tx_bw = 80e6; cfg->tx_bw = 80e6;
cfg->rx_bw = 80e6; cfg->rx_bw = 80e6;
} }
break;
case 133 :
if (fp->threequarter_fs) {
AssertFatal(1==0,"N_RB %d cannot use 3/4 sampling\n",N_RB);
}
else {
cfg->sample_rate=61.44e6;
cfg->samples_per_frame = 614400;
cfg->tx_bw = 50e6;
cfg->rx_bw = 50e6;
}
break; break;
case 106: case 106:
if (fp->threequarter_fs) { if (fp->threequarter_fs) {
...@@ -917,7 +929,7 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { ...@@ -917,7 +929,7 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) {
cfg->tx_bw = 40e6; cfg->tx_bw = 40e6;
cfg->rx_bw = 40e6; cfg->rx_bw = 40e6;
} }
break; break;
case 51: case 51:
if (fp->threequarter_fs) { if (fp->threequarter_fs) {
cfg->sample_rate=23.04e6; cfg->sample_rate=23.04e6;
......
...@@ -94,7 +94,6 @@ void nr_generate_dci(PHY_VARS_gNB *gNB, ...@@ -94,7 +94,6 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
* in time: by its first slot and its first symbol*/ * in time: by its first slot and its first symbol*/
const nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu_rel15->dci_pdu[d]; const nfapi_nr_dl_dci_pdu_t *dci_pdu = &pdcch_pdu_rel15->dci_pdu[d];
LOG_D(PHY,"DCI pdu %d, rnti %x, aggregation %d CCE %d Scrambling_Id %x ScramblingRNTI %x PayloadSizeBits %d\n",d,dci_pdu->RNTI,dci_pdu->AggregationLevel,dci_pdu->CceIndex,dci_pdu->ScramblingId,dci_pdu->ScramblingRNTI,dci_pdu->PayloadSizeBits);
cset_start_symb = pdcch_pdu_rel15->StartSymbolIndex; cset_start_symb = pdcch_pdu_rel15->StartSymbolIndex;
cset_nsymb = pdcch_pdu_rel15->DurationSymbols; cset_nsymb = pdcch_pdu_rel15->DurationSymbols;
dci_idx = 0; dci_idx = 0;
......
...@@ -881,14 +881,14 @@ void rx_nr_prach(PHY_VARS_gNB *gNB, ...@@ -881,14 +881,14 @@ void rx_nr_prach(PHY_VARS_gNB *gNB,
idft(IDFT_256,prachF,prach_ifft_tmp,1); idft(IDFT_256,prachF,prach_ifft_tmp,1);
log2_ifft_size = 8; log2_ifft_size = 8;
// compute energy and accumulate over receive antennas and repetitions for BR // compute energy and accumulate over receive antennas and repetitions for BR
for (i=0;i<256;i++) for (i=0;i<256;i++)
prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[(i<<1)] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])/nb_rx; prach_ifft[i] += ((int32_t)prach_ifft_tmp[i<<1]*(int32_t)prach_ifft_tmp[(i<<1)] + (int32_t)prach_ifft_tmp[1+(i<<1)]*(int32_t)prach_ifft_tmp[1+(i<<1)])/nb_rx;
} }
if (LOG_DUMPFLAG(PRACH)) { if (LOG_DUMPFLAG(PRACH)) {
if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
} }
}// antennas_rx }// antennas_rx
} // new dft } // new dft
......
...@@ -114,23 +114,25 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot) { ...@@ -114,23 +114,25 @@ void L1_nr_prach_procedures(PHY_VARS_gNB *gNB,int frame,int slot) {
&max_preamble_delay[0] &max_preamble_delay[0]
); );
free_nr_prach_entry(gNB,prach_id); free_nr_prach_entry(gNB,prach_id);
LOG_D(PHY,"[RAPROC] Frame %d, slot %d, occasion %d (prachStartSymbol %d) : Most likely preamble %d, energy %d dB delay %d (prach_energy counter %d)\n", LOG_D(PHY,"[RAPROC] Frame %d, slot %d, occasion %d (prachStartSymbol %d) : Most likely preamble %d, energy %d.%d dB delay %d (prach_energy counter %d)\n",
frame,slot,prach_oc,prachStartSymbol, frame,slot,prach_oc,prachStartSymbol,
max_preamble[0], max_preamble[0],
max_preamble_energy[0]/10, max_preamble_energy[0]/10,
max_preamble_energy[0]%10,
max_preamble_delay[0], max_preamble_delay[0],
gNB->prach_energy_counter); gNB->prach_energy_counter);
if ((gNB->prach_energy_counter == 100) && if ((gNB->prach_energy_counter == 100) &&
(max_preamble_energy[0] > gNB->measurements.prach_I0+gNB->prach_thres)) { (max_preamble_energy[0] > gNB->measurements.prach_I0+gNB->prach_thres)) {
LOG_I(PHY,"[gNB %d][RAPROC] Frame %d, slot %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d start symbol %u freq index %u\n", LOG_I(PHY,"[gNB %d][RAPROC] Frame %d, slot %d Initiating RA procedure with preamble %d, energy %d.%d dB (I0 %d, thres %d), delay %d start symbol %u freq index %u\n",
gNB->Mod_id, gNB->Mod_id,
frame, frame,
slot, slot,
max_preamble[0], max_preamble[0],
max_preamble_energy[0]/10, max_preamble_energy[0]/10,
max_preamble_energy[0]%10, max_preamble_energy[0]%10,
gNB->measurements.prach_I0,gNB->prach_thres,
max_preamble_delay[0], max_preamble_delay[0],
prachStartSymbol, prachStartSymbol,
prach_pdu->num_ra); prach_pdu->num_ra);
......
...@@ -680,7 +680,7 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) ...@@ -680,7 +680,7 @@ void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot),gNB->pusch_thres); dB_fixed_x10(gNB->pusch_vars[ULSCH_id]->ulsch_noise_power_tot),gNB->pusch_thres);
nr_fill_indication(gNB,frame_rx, slot_rx, ULSCH_id, harq_pid, 1); nr_fill_indication(gNB,frame_rx, slot_rx, ULSCH_id, harq_pid, 1);
gNB->pusch_vars[ULSCH_id]->DTX=1; gNB->pusch_vars[ULSCH_id]->DTX=1;
stats->DTX++; if (stats) stats->DTX++;
return; return;
} else gNB->pusch_vars[ULSCH_id]->DTX=0; } else gNB->pusch_vars[ULSCH_id]->DTX=0;
......
...@@ -814,6 +814,21 @@ void nr_schedule_ue_spec(module_id_t module_id, ...@@ -814,6 +814,21 @@ void nr_schedule_ue_spec(module_id_t module_id,
current_harq_pid, current_harq_pid,
harq->round, harq->round,
harq->ndi); harq->ndi);
if ((get_softmodem_params()->phy_test == 1) && (frame&127) == 0)
LOG_D(MAC,
"%4d.%2d RNTI %04x start %d RBs %d startSymbol %d nb_symbsol %d MCS %d TBS %d (%f Mbps) HARQ PID %d round %d NDI %d\n",
frame,
slot,
rnti,
sched_ctrl->rbStart,
sched_ctrl->rbSize,
startSymbolIndex,
nrOfSymbols,
sched_ctrl->mcs,
TBS,((double)TBS)*(1<<scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.subcarrierSpacing))/1000,
current_harq_pid,
harq->round,
harq->ndi);
NR_BWP_Downlink_t *bwp = sched_ctrl->active_bwp; NR_BWP_Downlink_t *bwp = sched_ctrl->active_bwp;
......
...@@ -378,6 +378,8 @@ void nr_preprocessor_phytest(module_id_t module_id, ...@@ -378,6 +378,8 @@ void nr_preprocessor_phytest(module_id_t module_id,
/* mark the corresponding RBs as used */ /* mark the corresponding RBs as used */
for (int rb = 0; rb < sched_ctrl->rbSize; rb++) for (int rb = 0; rb < sched_ctrl->rbSize; rb++)
vrb_map[rb + sched_ctrl->rbStart] = 1; vrb_map[rb + sched_ctrl->rbStart] = 1;
if ((frame&127) == 0) LOG_I(MAC,"phytest: %d.%d DL mcs %d, DL rbStart %d, DL rbSize %d\n", frame, slot, sched_ctrl->mcs, rbStart,rbSize);
} }
uint32_t target_ul_mcs = 9; uint32_t target_ul_mcs = 9;
......
...@@ -47,6 +47,7 @@ extern RAN_CONTEXT_t RC; ...@@ -47,6 +47,7 @@ extern RAN_CONTEXT_t RC;
#include <stdint.h> #include <stdint.h>
#include <executables/softmodem-common.h>
static nr_rlc_ue_manager_t *nr_rlc_ue_manager; static nr_rlc_ue_manager_t *nr_rlc_ue_manager;
/* TODO: handle time a bit more properly */ /* TODO: handle time a bit more properly */
......
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