Commit b8235ff7 authored by knopp's avatar knopp
Browse files

bugfix in dci generation (padding bits set to 0 in format 0 DCI)

removal of LOG_I put for debugging.
parent 5d778a5c
...@@ -623,7 +623,6 @@ static inline void itti_receive_msg_internal_event_fd(task_id_t task_id, uint8_t ...@@ -623,7 +623,6 @@ static inline void itti_receive_msg_internal_event_fd(task_id_t task_id, uint8_t
read_ret = read (itti_desc.threads[thread_id].task_event_fd, &sem_counter, sizeof(sem_counter)); read_ret = read (itti_desc.threads[thread_id].task_event_fd, &sem_counter, sizeof(sem_counter));
AssertFatal (read_ret == sizeof(sem_counter), "Read from task message FD (%d) failed (%d/%d)!\n", thread_id, (int) read_ret, (int) sizeof(sem_counter)); AssertFatal (read_ret == sizeof(sem_counter), "Read from task message FD (%d) failed (%d/%d)!\n", thread_id, (int) read_ret, (int) sizeof(sem_counter));
printf("sem_counter %d task %d\n", (int)sem_counter, task_id);
if (lfds611_queue_dequeue (itti_desc.tasks[task_id].message_queue, (void **) &message) == 0) { if (lfds611_queue_dequeue (itti_desc.tasks[task_id].message_queue, (void **) &message) == 0) {
/* No element in list -> this should not happen */ /* No element in list -> this should not happen */
AssertFatal (0, "No message in queue for task %d while there are %d events and some for the messages queue!\n", task_id, epoll_ret); AssertFatal (0, "No message in queue for task %d while there are %d events and some for the messages queue!\n", task_id, epoll_ret);
...@@ -632,7 +631,6 @@ static inline void itti_receive_msg_internal_event_fd(task_id_t task_id, uint8_t ...@@ -632,7 +631,6 @@ static inline void itti_receive_msg_internal_event_fd(task_id_t task_id, uint8_t
AssertFatal(message != NULL, "Message from message queue is NULL!\n"); AssertFatal(message != NULL, "Message from message queue is NULL!\n");
*received_msg = message->msg; *received_msg = message->msg;
printf("ITTI: message %s\n", ITTI_MSG_NAME(message->msg));
result = itti_free (ITTI_MSG_ORIGIN_ID(*received_msg), message); result = itti_free (ITTI_MSG_ORIGIN_ID(*received_msg), message);
AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
......
...@@ -2273,13 +2273,13 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols, ...@@ -2273,13 +2273,13 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols,
if (dci_alloc[i].L == (uint8_t)L) { if (dci_alloc[i].L == (uint8_t)L) {
//#ifdef DEBUG_DCI_ENCODING #ifdef DEBUG_DCI_ENCODING
if (dci_alloc[i].rnti!=0xFFFF) if (dci_alloc[i].rnti!=0xFFFF)
LOG_I(PHY,"Generating DCI %d/%d (nCCE %d) of length %d, aggregation %d (%x), rnti %x\n",i,num_dci,dci_alloc[i].firstCCE,dci_alloc[i].dci_length,dci_alloc[i].L, LOG_D(PHY,"Generating DCI %d/%d (nCCE %d) of length %d, aggregation %d (%x), rnti %x\n",i,num_dci,dci_alloc[i].firstCCE,dci_alloc[i].dci_length,dci_alloc[i].L,
*(unsigned int*)dci_alloc[i].dci_pdu, *(unsigned int*)dci_alloc[i].dci_pdu,
dci_alloc[i].rnti); dci_alloc[i].rnti);
//dump_dci(frame_parms,&dci_alloc[i]); //dump_dci(frame_parms,&dci_alloc[i]);
//#endif #endif
if (dci_alloc[i].firstCCE>=0) { if (dci_alloc[i].firstCCE>=0) {
e_ptr = generate_dci0(dci_alloc[i].dci_pdu, e_ptr = generate_dci0(dci_alloc[i].dci_pdu,
......
...@@ -2263,7 +2263,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2263,7 +2263,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
void *dci_pdu = (void*)dci_alloc->dci_pdu; void *dci_pdu = (void*)dci_alloc->dci_pdu;
LOG_I(PHY,"Filling DCI0 with cqi %d, mcs %d, hopping %d, rballoc %x (%d,%d) ndi %d TPC %d cshift %d\n",cqi_req, LOG_D(PHY,"Filling DCI0 with cqi %d, mcs %d, hopping %d, rballoc %x (%d,%d) ndi %d TPC %d cshift %d\n",cqi_req,
mcs,hopping,rballoc,pdu->dci_pdu_rel8.resource_block_start,pdu->dci_pdu_rel8.number_of_resource_block, mcs,hopping,rballoc,pdu->dci_pdu_rel8.resource_block_start,pdu->dci_pdu_rel8.number_of_resource_block,
ndi,TPC,cshift); ndi,TPC,cshift);
...@@ -2285,6 +2285,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2285,6 +2285,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc;
((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping;
((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->type = 0; ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->type = 0;
((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_1_5MHz_TDD_1_6_t; dci_alloc->dci_length = sizeof_DCI0_1_5MHz_TDD_1_6_t;
} else { } else {
((DCI0_1_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; ((DCI0_1_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req;
...@@ -2295,6 +2296,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2295,6 +2296,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_1_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc; ((DCI0_1_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc;
((DCI0_1_5MHz_FDD_t *)dci_pdu)->hopping = hopping; ((DCI0_1_5MHz_FDD_t *)dci_pdu)->hopping = hopping;
((DCI0_1_5MHz_FDD_t *)dci_pdu)->type = 0; ((DCI0_1_5MHz_FDD_t *)dci_pdu)->type = 0;
((DCI0_1_5MHz_FDD_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_1_5MHz_FDD_t; dci_alloc->dci_length = sizeof_DCI0_1_5MHz_FDD_t;
} }
...@@ -2311,6 +2313,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2311,6 +2313,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc;
((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping;
((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->type = 0; ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->type = 0;
((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_5MHz_TDD_1_6_t; dci_alloc->dci_length = sizeof_DCI0_5MHz_TDD_1_6_t;
} else { } else {
((DCI0_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; ((DCI0_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req;
...@@ -2321,6 +2324,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2321,6 +2324,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc; ((DCI0_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc;
((DCI0_5MHz_FDD_t *)dci_pdu)->hopping = hopping; ((DCI0_5MHz_FDD_t *)dci_pdu)->hopping = hopping;
((DCI0_5MHz_FDD_t *)dci_pdu)->type = 0; ((DCI0_5MHz_FDD_t *)dci_pdu)->type = 0;
((DCI0_5MHz_FDD_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_5MHz_FDD_t; dci_alloc->dci_length = sizeof_DCI0_5MHz_FDD_t;
} }
...@@ -2337,6 +2341,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2337,6 +2341,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc;
((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping;
((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->type = 0; ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->type = 0;
((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_10MHz_TDD_1_6_t; dci_alloc->dci_length = sizeof_DCI0_10MHz_TDD_1_6_t;
} else { } else {
((DCI0_10MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; ((DCI0_10MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req;
...@@ -2347,6 +2352,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2347,6 +2352,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_10MHz_FDD_t *)dci_pdu)->rballoc = rballoc; ((DCI0_10MHz_FDD_t *)dci_pdu)->rballoc = rballoc;
((DCI0_10MHz_FDD_t *)dci_pdu)->hopping = hopping; ((DCI0_10MHz_FDD_t *)dci_pdu)->hopping = hopping;
((DCI0_10MHz_FDD_t *)dci_pdu)->type = 0; ((DCI0_10MHz_FDD_t *)dci_pdu)->type = 0;
((DCI0_10MHz_FDD_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_10MHz_FDD_t; dci_alloc->dci_length = sizeof_DCI0_10MHz_FDD_t;
} }
...@@ -2363,6 +2369,8 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2363,6 +2369,8 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc;
((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping;
((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->type = 0; ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->type = 0;
((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_20MHz_TDD_1_6_t; dci_alloc->dci_length = sizeof_DCI0_20MHz_TDD_1_6_t;
} else { } else {
((DCI0_20MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; ((DCI0_20MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req;
...@@ -2373,6 +2381,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, ...@@ -2373,6 +2381,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
((DCI0_20MHz_FDD_t *)dci_pdu)->rballoc = rballoc; ((DCI0_20MHz_FDD_t *)dci_pdu)->rballoc = rballoc;
((DCI0_20MHz_FDD_t *)dci_pdu)->hopping = hopping; ((DCI0_20MHz_FDD_t *)dci_pdu)->hopping = hopping;
((DCI0_20MHz_FDD_t *)dci_pdu)->type = 0; ((DCI0_20MHz_FDD_t *)dci_pdu)->type = 0;
((DCI0_20MHz_FDD_t *)dci_pdu)->padding = 0;
dci_alloc->dci_length = sizeof_DCI0_20MHz_FDD_t; dci_alloc->dci_length = sizeof_DCI0_20MHz_FDD_t;
} }
...@@ -2466,7 +2475,7 @@ void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame ...@@ -2466,7 +2475,7 @@ void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame
else ulsch->harq_processes[harq_pid]->round++; else ulsch->harq_processes[harq_pid]->round++;
ulsch->rnti = ulsch_pdu->ulsch_pdu_rel8.rnti; ulsch->rnti = ulsch_pdu->ulsch_pdu_rel8.rnti;
LOG_I(PHY,"Filling ULSCH %x for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", LOG_D(PHY,"Filling ULSCH %x for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n",
ulsch->rnti, ulsch->rnti,
frame, frame,
subframe, subframe,
......
...@@ -319,7 +319,7 @@ void generate_phich_reg_mapping(LTE_DL_FRAME_PARMS *frame_parms) ...@@ -319,7 +319,7 @@ void generate_phich_reg_mapping(LTE_DL_FRAME_PARMS *frame_parms)
} }
#ifdef DEBUG_PHICH #ifdef DEBUG_PHICH
LOG_I(PHY,"Ngroup_PHICH %d (phich_config_common.phich_resource %d,phich_config_common.phich_duration %s, NidCell %d,Ncp %d, frame_type %d), smallest pcfich REG %d, n0 %d, n1 %d (first PHICH REG %d)\n", LOG_D(PHY,"Ngroup_PHICH %d (phich_config_common.phich_resource %d,phich_config_common.phich_duration %s, NidCell %d,Ncp %d, frame_type %d), smallest pcfich REG %d, n0 %d, n1 %d (first PHICH REG %d)\n",
((frame_parms->Ncp == NORMAL)?Ngroup_PHICH:(Ngroup_PHICH>>1)), ((frame_parms->Ncp == NORMAL)?Ngroup_PHICH:(Ngroup_PHICH>>1)),
frame_parms->phich_config_common.phich_resource, frame_parms->phich_config_common.phich_resource,
frame_parms->phich_config_common.phich_duration==normal?"normal":"extended", frame_parms->phich_config_common.phich_duration==normal?"normal":"extended",
...@@ -1381,7 +1381,7 @@ void rx_phich(PHY_VARS_UE *ue, ...@@ -1381,7 +1381,7 @@ void rx_phich(PHY_VARS_UE *ue,
if (HI16>0) { //NACK if (HI16>0) { //NACK
if (ue->ulsch_Msg3_active[eNB_id] == 1) { if (ue->ulsch_Msg3_active[eNB_id] == 1) {
LOG_I(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received NAK (%d) nseq %d, ngroup %d\n", LOG_D(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received NAK (%d) nseq %d, ngroup %d\n",
ue->Mod_id,harq_pid, ue->Mod_id,harq_pid,
proc->frame_rx, proc->frame_rx,
subframe, subframe,
...@@ -1391,7 +1391,7 @@ void rx_phich(PHY_VARS_UE *ue, ...@@ -1391,7 +1391,7 @@ void rx_phich(PHY_VARS_UE *ue,
ulsch->f_pusch += delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC]; ulsch->f_pusch += delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC];
LOG_I(PHY,"[PUSCH %d] AbsSubframe %d.%d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n", LOG_D(PHY,"[PUSCH %d] AbsSubframe %d.%d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n",
harq_pid,proc->frame_rx,subframe,ulsch->f_pusch, harq_pid,proc->frame_rx,subframe,ulsch->f_pusch,
delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC], delta_PUSCH_acc[ulsch->harq_processes[harq_pid]->TPC],
ulsch->harq_processes[harq_pid]->TPC); ulsch->harq_processes[harq_pid]->TPC);
...@@ -1410,7 +1410,7 @@ void rx_phich(PHY_VARS_UE *ue, ...@@ -1410,7 +1410,7 @@ void rx_phich(PHY_VARS_UE *ue,
} }
} else { } else {
#ifdef UE_DEBUG_TRACE #ifdef UE_DEBUG_TRACE
LOG_I(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d PHICH, received NAK (%d) nseq %d, ngroup %d round %d (Mlimit %d)\n", LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d PHICH, received NAK (%d) nseq %d, ngroup %d round %d (Mlimit %d)\n",
ue->Mod_id,harq_pid, ue->Mod_id,harq_pid,
proc->frame_rx%1024, proc->frame_rx%1024,
subframe, subframe,
...@@ -1458,7 +1458,7 @@ void rx_phich(PHY_VARS_UE *ue, ...@@ -1458,7 +1458,7 @@ void rx_phich(PHY_VARS_UE *ue,
} else { //ACK } else { //ACK
if (ue->ulsch_Msg3_active[eNB_id] == 1) { if (ue->ulsch_Msg3_active[eNB_id] == 1) {
LOG_I(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received ACK (%d) nseq %d, ngroup %d\n\n", LOG_D(PHY,"[UE %d][PUSCH %d][RAPROC] Frame %d subframe %d Msg3 PHICH, received ACK (%d) nseq %d, ngroup %d\n\n",
ue->Mod_id,harq_pid, ue->Mod_id,harq_pid,
proc->frame_rx, proc->frame_rx,
subframe, subframe,
...@@ -1466,7 +1466,7 @@ void rx_phich(PHY_VARS_UE *ue, ...@@ -1466,7 +1466,7 @@ void rx_phich(PHY_VARS_UE *ue,
nseq_PHICH,ngroup_PHICH); nseq_PHICH,ngroup_PHICH);
} else { } else {
#ifdef UE_DEBUG_TRACE #ifdef UE_DEBUG_TRACE
LOG_I(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d PHICH, received ACK (%d) nseq %d, ngroup %d\n\n", LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d PHICH, received ACK (%d) nseq %d, ngroup %d\n\n",
ue->Mod_id,harq_pid, ue->Mod_id,harq_pid,
proc->frame_rx%1024, proc->frame_rx%1024,
subframe, HI16, subframe, HI16,
...@@ -1545,7 +1545,7 @@ void generate_phich_top(PHY_VARS_eNB *eNB, ...@@ -1545,7 +1545,7 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
nseq_PHICH = ((phich->first_rb/Ngroup_PHICH) + nseq_PHICH = ((phich->first_rb/Ngroup_PHICH) +
phich->n_DMRS)%(2*NSF_PHICH); phich->n_DMRS)%(2*NSF_PHICH);
LOG_I(PHY,"[eNB %d][PUSCH %d] Frame %d subframe %d Generating PHICH, AMP %d ngroup_PHICH %d/%d, nseq_PHICH %d : HI %d, first_rb %d)\n", LOG_D(PHY,"[eNB %d][PUSCH %d] Frame %d subframe %d Generating PHICH, AMP %d ngroup_PHICH %d/%d, nseq_PHICH %d : HI %d, first_rb %d)\n",
eNB->Mod_id,harq_pid,proc->frame_tx, eNB->Mod_id,harq_pid,proc->frame_tx,
subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH, subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH,
phich->hi, phich->hi,
......
...@@ -2148,7 +2148,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, ...@@ -2148,7 +2148,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
#endif #endif
#ifdef DEBUG_PUCCH_RX #ifdef DEBUG_PUCCH_RX
LOG_I(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max); LOG_D(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max);
#endif #endif
...@@ -2183,7 +2183,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, ...@@ -2183,7 +2183,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
} else if ((fmt == pucch_format1a)||(fmt == pucch_format1b)) { } else if ((fmt == pucch_format1a)||(fmt == pucch_format1b)) {
stat_max = 0; stat_max = 0;
#ifdef DEBUG_PUCCH_RX #ifdef DEBUG_PUCCH_RX
LOG_I(PHY,"Doing PUCCH detection for format 1a/1b\n"); LOG_D(PHY,"Doing PUCCH detection for format 1a/1b\n");
#endif #endif
for (phase=0; phase<7; phase++) { for (phase=0; phase<7; phase++) {
...@@ -2261,7 +2261,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, ...@@ -2261,7 +2261,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
} // aa } // aa
#ifdef DEBUG_PUCCH_RX #ifdef DEBUG_PUCCH_RX
LOG_I(PHY,"Format 1A: phase %d : stat %d\n",phase,stat); LOG_D(PHY,"Format 1A: phase %d : stat %d\n",phase,stat);
#endif #endif
if (stat>stat_max) { if (stat>stat_max) {
stat_max = stat; stat_max = stat;
...@@ -2404,9 +2404,9 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, ...@@ -2404,9 +2404,9 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB,
} // aa } // aa
LOG_I(PHY,"PUCCH 1a/b: subframe %d : stat %d,%d (pos %d)\n",subframe,stat_re,stat_im, LOG_D(PHY,"PUCCH 1a/b: subframe %d : stat %d,%d (pos %d)\n",subframe,stat_re,stat_im,
(subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])); (subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe]));
LOG_I(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); LOG_D(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres);
eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re);
eNB->pucch1ab_stats[UE_id][(subframe<<11) + 1+2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_im); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 1+2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_im);
......
...@@ -910,7 +910,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, ...@@ -910,7 +910,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
//#ifdef DEBUG_ULSCH_DECODING //#ifdef DEBUG_ULSCH_DECODING
LOG_I(PHY,"Frame %d, Subframe %d: ulsch_decoding (Nid_cell %d, rnti %x, x2 %x): A %d, round %d, RV %d, O_r1 %d, O_RI %d, O_ACK %d, G %d\n", LOG_D(PHY,"Frame %d, Subframe %d: ulsch_decoding (Nid_cell %d, rnti %x, x2 %x): A %d, round %d, RV %d, O_r1 %d, O_RI %d, O_ACK %d, G %d\n",
proc->frame_rx,subframe, proc->frame_rx,subframe,
frame_parms->Nid_cell,ulsch->rnti,x2, frame_parms->Nid_cell,ulsch->rnti,x2,
A, A,
......
...@@ -666,7 +666,7 @@ void prach_procedures(PHY_VARS_eNB *eNB, ...@@ -666,7 +666,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,
{ {
if (max_preamble_energy[0] > 350) { if (max_preamble_energy[0] > 350) {
LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", LOG_I(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n",
eNB->Mod_id, eNB->Mod_id,
eNB->CC_id, eNB->CC_id,
frame, frame,
...@@ -792,7 +792,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ...@@ -792,7 +792,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
(uci->frame == frame) && (uci->frame == frame) &&
(uci->subframe == subframe)) { (uci->subframe == subframe)) {
LOG_I(PHY,"Frame %d, subframe %d: Running uci procedures (type %d) for %d \n",frame,subframe,uci->type,i); LOG_D(PHY,"Frame %d, subframe %d: Running uci procedures (type %d) for %d \n",frame,subframe,uci->type,i);
uci->active=0; uci->active=0;
// Null out PUCCH PRBs for noise measurement // Null out PUCCH PRBs for noise measurement
...@@ -855,7 +855,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ...@@ -855,7 +855,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
} }
case HARQ: case HARQ:
if (fp->frame_type == FDD) { if (fp->frame_type == FDD) {
LOG_I(PHY,"Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", LOG_D(PHY,"Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n",
frame,subframe,i, frame,subframe,i,
uci->pucch_fmt,uci->type, uci->pucch_fmt,uci->type,
uci->frame,uci->subframe,uci->n_pucch_1[0][0], uci->frame,uci->subframe,uci->n_pucch_1[0][0],
...@@ -894,7 +894,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ...@@ -894,7 +894,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
} }
LOG_I(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n", LOG_D(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n",
eNB->Mod_id, eNB->Mod_id,
uci->rnti, uci->rnti,
frame,subframe, frame,subframe,
...@@ -1403,11 +1403,11 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { ...@@ -1403,11 +1403,11 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) {
ulsch->Mlimit, ulsch->Mlimit,
ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[0],
ulsch_harq->o_ACK[1]); ulsch_harq->o_ACK[1]);
/*
if (dB_fixed_times10(eNB->pusch_vars[i]->ulsch_power[0]) > 300) { /*if (dB_fixed_times10(eNB->pusch_vars[i]->ulsch_power[0]) > 300) {
dump_ulsch(eNB,frame,subframe,i); exit(-1); dump_ulsch(eNB,frame,subframe,i); exit(-1);
}*/ }
*/
#if defined(MESSAGE_CHART_GENERATOR_PHY) #if defined(MESSAGE_CHART_GENERATOR_PHY)
MSC_LOG_RX_DISCARDED_MESSAGE( MSC_LOG_RX_DISCARDED_MESSAGE(
MSC_PHY_ENB,MSC_PHY_UE, MSC_PHY_ENB,MSC_PHY_UE,
...@@ -1458,7 +1458,7 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { ...@@ -1458,7 +1458,7 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) {
if (ulsch_harq->O_ACK>0) fill_ulsch_harq_indication(eNB,ulsch_harq,ulsch->rnti,frame,subframe,ulsch->bundling); if (ulsch_harq->O_ACK>0) fill_ulsch_harq_indication(eNB,ulsch_harq,ulsch->rnti,frame,subframe,ulsch->bundling);
LOG_I(PHY,"[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n", LOG_D(PHY,"[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n",
eNB->Mod_id,frame,subframe, eNB->Mod_id,frame,subframe,
harq_pid, harq_pid,
i, i,
......
...@@ -3591,7 +3591,7 @@ void SR_indication(module_id_t mod_idP, int cc_idP, frame_t frameP, sub_frame_t ...@@ -3591,7 +3591,7 @@ void SR_indication(module_id_t mod_idP, int cc_idP, frame_t frameP, sub_frame_t
if (UE_id != -1) { if (UE_id != -1) {
if (mac_eNB_get_rrc_status(mod_idP,UE_RNTI(mod_idP,UE_id)) < RRC_CONNECTED) if (mac_eNB_get_rrc_status(mod_idP,UE_RNTI(mod_idP,UE_id)) < RRC_CONNECTED)
LOG_I(MAC,"[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n",mod_idP,rntiP,frameP,subframeP, UE_id,cc_idP); LOG_D(MAC,"[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n",mod_idP,rntiP,frameP,subframeP, UE_id,cc_idP);
UE_sched_ctrl *sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; UE_sched_ctrl *sched_ctl = &UE_list->UE_sched_ctrl[UE_id];
......
...@@ -106,8 +106,7 @@ void rx_sdu(const module_id_t enb_mod_idP, ...@@ -106,8 +106,7 @@ void rx_sdu(const module_id_t enb_mod_idP,
if (UE_id!=-1) { if (UE_id!=-1) {
LOG_I(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, LOG_D(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid],
UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid],
rntiP,UE_id,ul_cqi); rntiP,UE_id,ul_cqi);
AssertFatal(UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid] < 8, AssertFatal(UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid] < 8,
...@@ -145,6 +144,10 @@ void rx_sdu(const module_id_t enb_mod_idP, ...@@ -145,6 +144,10 @@ void rx_sdu(const module_id_t enb_mod_idP,
"maxHARQ %d should be greater than 1\n", "maxHARQ %d should be greater than 1\n",
(int)eNB->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx); (int)eNB->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx);
LOG_D(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, RA_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP,
RA_template[RA_id].msg3_round,
rntiP,RA_id,ul_cqi);
first_rb = RA_template->msg3_first_rb; first_rb = RA_template->msg3_first_rb;
if (sduP==NULL) { // we've got an error on Msg3 if (sduP==NULL) { // we've got an error on Msg3
...@@ -545,7 +548,7 @@ void rx_sdu(const module_id_t enb_mod_idP, ...@@ -545,7 +548,7 @@ void rx_sdu(const module_id_t enb_mod_idP,
} }
// Program ACK for PHICH // Program ACK for PHICH
LOG_I(MAC,"Programming PHICH ACK for rnti %x harq_pid %d (first_rb %d)\n",rntiP,harq_pid,first_rb); LOG_D(MAC,"Programming PHICH ACK for rnti %x harq_pid %d (first_rb %d)\n",rntiP,harq_pid,first_rb);
nfapi_hi_dci0_request_body_t *hi_dci0_req = &eNB->HI_DCI0_req[CC_idP].hi_dci0_request_body; nfapi_hi_dci0_request_body_t *hi_dci0_req = &eNB->HI_DCI0_req[CC_idP].hi_dci0_request_body;
nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi];
memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t));
...@@ -967,7 +970,7 @@ abort(); ...@@ -967,7 +970,7 @@ abort();
if (UE_is_to_be_scheduled(module_idP,CC_id,UE_id) > 0 || round > 0)// || ((frameP%10)==0)) if (UE_is_to_be_scheduled(module_idP,CC_id,UE_id) > 0 || round > 0)// || ((frameP%10)==0))
// if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames // if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames
{ {
LOG_I(MAC,"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x in round %d(SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)\n", LOG_D(MAC,"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x in round %d(SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)\n",
module_idP,harq_pid,frameP,subframeP,UE_id,rnti,round,UE_template->ul_SR, module_idP,harq_pid,frameP,subframeP,UE_id,rnti,round,UE_template->ul_SR,
UE_sched_ctrl->ul_inactivity_timer, UE_sched_ctrl->ul_inactivity_timer,
...@@ -1057,7 +1060,7 @@ abort(); ...@@ -1057,7 +1060,7 @@ abort();
T_INT(UE_template->TBS_UL[harq_pid]), T_INT(ndi)); T_INT(UE_template->TBS_UL[harq_pid]), T_INT(ndi));
if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED) if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED)
LOG_I(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n", LOG_D(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)\n",
module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,UE_template->mcs_UL[harq_pid], module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,UE_template->mcs_UL[harq_pid],
first_rb[CC_id],rb_table[rb_table_index], first_rb[CC_id],rb_table[rb_table_index],
rb_table_index,UE_template->TBS_UL[harq_pid],harq_pid); rb_table_index,UE_template->TBS_UL[harq_pid],harq_pid);
......
...@@ -89,7 +89,7 @@ unsigned short fill_rar( ...@@ -89,7 +89,7 @@ unsigned short fill_rar(
RA_template->timing_offset /= 16; //T_A = N_TA/16, where N_TA should be on a 30.72Msps RA_template->timing_offset /= 16; //T_A = N_TA/16, where N_TA should be on a 30.72Msps
rar[0] = (uint8_t)(RA_template->timing_offset>>(2+4)); // 7 MSBs of timing advance + divide by 4 rar[0] = (uint8_t)(RA_template->timing_offset>>(2+4)); // 7 MSBs of timing advance + divide by 4
rar[1] = (uint8_t)(RA_template->timing_offset<<(4-2))&0xf0; // 4 LSBs of timing advance + divide by 4 rar[1] = (uint8_t)(RA_template->timing_offset<<(4-2))&0xf0; // 4 LSBs of timing advance + divide by 4
RA_template->msg3_first_rb=1; RA_template->msg3_first_rb=6;
RA_template->msg3_nb_rb=1; RA_template->msg3_nb_rb=1;
uint16_t rballoc = mac_computeRIV(N_RB_UL,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); // first PRB only for UL Grant uint16_t rballoc = mac_computeRIV(N_RB_UL,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); // first PRB only for UL Grant
rar[1] |= (rballoc>>7)&7; // Hopping = 0 (bit 3), 3 MSBs of rballoc rar[1] |= (rballoc>>7)&7; // Hopping = 0 (bit 3), 3 MSBs of rballoc
......
...@@ -36,7 +36,7 @@ eNBs = ...@@ -36,7 +36,7 @@ eNBs =
downlink_frequency = 2685000000L; downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000; uplink_frequency_offset = -120000000;
Nid_cell = 0; Nid_cell = 0;
N_RB_DL = 50; N_RB_DL = 25;
Nid_cell_mbsfn = 0; Nid_cell_mbsfn = 0;
nb_antenna_ports = 1; nb_antenna_ports = 1;
nb_antennas_tx = 1; nb_antennas_tx = 1;
...@@ -156,24 +156,6 @@ eNBs = ...@@ -156,24 +156,6 @@ eNBs =
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24"; ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152 ENB_PORT_FOR_S1U = 2152; # Spec 2152
}; };
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
} }
); );
...@@ -206,3 +188,22 @@ RUs = ( ...@@ -206,3 +188,22 @@ RUs = (
}