Commit 09a63cb9 authored by Raymond Knopp's avatar Raymond Knopp

logging and unitary compilations

parent 7cbf24d3
......@@ -935,9 +935,10 @@ int main(int argc, char **argv) {
NB_RB = conv_nprb(0,DLSCH_RB_ALLOC,N_RB_DL);
} else {
if (rballocset==0) NB_RB = 8;
if (rballocset==0) NB_RB = 2+TPC;
else NB_RB = DLSCH_RB_ALLOC;
printf("Common PDSCH: NB_RB = %d\n",NB_RB);
AssertFatal(NB_RB <= N_RB_DL,"illegal NB_RB %d\n",NB_RB);
}
......
......@@ -1300,7 +1300,7 @@ int main(int argc, char **argv) {
LOG_UDUMPMSG(SIM,dataArray(table_rx),table_rx->size,LOG_DUMP_DOUBLE,"The receiver raw data: \n");
}
dump_ulsch_stats(eNB);
dump_ulsch_stats(eNB,0);
printf("\n**********rb: %d ***mcs : %d *********SNR = %f dB (%f): TX %u dB (gain %f dB), N0W %f dB, I0 %u dB, delta_IF %d [ (%d,%d) dB / (%u,%u) dB ]**************************\n",
nb_rb,mcs,SNR,SNR2,
tx_lev_dB,
......
......@@ -603,6 +603,17 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
UE_scheduling_control->dl_cqi[CC_id],
(5 * UE_scheduling_control->pusch_snr[CC_id] - 640) / 10, UE_scheduling_control->pucch_tpc_accumulated[CC_id],
(5 * UE_scheduling_control->pucch1_snr[CC_id] - 640) / 10, UE_scheduling_control->pusch_tpc_accumulated[CC_id]);
LOG_I(MAC," ULSCH rounds %d/%d/%d/%d, DLSCH rounds %d/%d/%d/%d, ULSCH errors %d, DLSCH errors %d\n",
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_rounds[0],
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_rounds[1],
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_rounds[2],
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_rounds[3],
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[0],
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[1],
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[2],
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[3],
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_errors,
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_errors);
}
RC.eNB[module_idP][CC_id]->pusch_stats_bsr[UE_id][(frameP * 10) + subframeP] = -63;
......
......@@ -1495,7 +1495,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
subframeP,
S_DL_SCHEDULED,
rnti);
//eNB_UE_stats->dlsch_trials[round]++;
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[round]++;
UE_info->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1;
UE_info->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb;
UE_info->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb;
......@@ -1936,6 +1936,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
// store stats
eNB->eNB_stats[CC_id].dlsch_bytes_tx+=sdu_length_total;
eNB->eNB_stats[CC_id].dlsch_pdus_tx+=1;
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_rounds[0]++;
UE_info->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb;
UE_info->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb;
UE_info->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1=eNB_UE_stats->dlsch_mcs1;
......@@ -1968,10 +1969,10 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
UE_info->UE_template[CC_id][UE_id].pucch_tpc_tx_frame=frameP;
UE_info->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe=subframeP;
if (snr > target_snr + PUSCH_PCHYST) {
if (snr > target_snr + PUCCH_PCHYST) {
tpc = 0; //-1
ue_sched_ctl->pucch_tpc_accumulated[CC_id]--;
} else if (snr < target_snr - PUSCH_PCHYST) {
} else if (snr < target_snr - PUCCH_PCHYST) {
tpc = 2; //+1
ue_sched_ctl->pucch_tpc_accumulated[CC_id]++;
} else {
......@@ -3051,10 +3052,10 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
UE_template->pusch_tpc_tx_frame=frameP;
UE_template->pusch_tpc_tx_subframe=subframeP;
if (snr > target_snr + 4) {
if (snr > target_snr + PUSCH_PCHYST) {
tpc = 0; //-1
UE_sched_ctrl->pusch_tpc_accumulated[CC_id]--;
} else if (snr < target_snr - 4) {
} else if (snr < target_snr - PUSCH_PCHYST) {
tpc = 2; //+1
UE_sched_ctrl->pusch_tpc_accumulated[CC_id]++;
} else {
......@@ -3080,6 +3081,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
UE_sched_ctrl->cqi_req_timer);
ndi = 1-UE_template->oldNDI_UL[harq_pid];
UE_template->oldNDI_UL[harq_pid]=ndi;
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_rounds[0]++;
UE_info->eNB_UE_stats[CC_id][UE_id].snr = snr;
UE_info->eNB_UE_stats[CC_id][UE_id].target_snr = target_snr;
UE_info->eNB_UE_stats[CC_id][UE_id].ulsch_mcs1=UE_template->pre_assigned_mcs_ul;
......@@ -3257,6 +3259,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
T_INT(round));
UE_info->eNB_UE_stats[CC_id][UE_id].snr = snr;
UE_info->eNB_UE_stats[CC_id][UE_id].target_snr = target_snr;
uint8_t mcs_rv = 0;
if(rvidx_tab[round&3]==1) {
......
......@@ -204,7 +204,7 @@ rx_sdu(const module_id_t enb_mod_idP,
if (UE_scheduling_control->round_UL[CC_idP][harq_pid] == 3) {
UE_scheduling_control->ul_scheduled &= (~(1 << harq_pid));
UE_scheduling_control->round_UL[CC_idP][harq_pid] = 0;
UE_info->eNB_UE_stats[CC_idP][UE_id].ulsch_errors++;
if (UE_scheduling_control->ul_consecutive_errors++ == 10) {
UE_scheduling_control->ul_failure_timer = 1;
}
......@@ -221,6 +221,7 @@ rx_sdu(const module_id_t enb_mod_idP,
}
} else {
UE_scheduling_control->round_UL[CC_idP][harq_pid]++;
UE_info->eNB_UE_stats[CC_idP][UE_id].ulsch_rounds[UE_scheduling_control->round_UL[CC_idP][harq_pid]]++;
}
/* CDRX UL HARQ timers */
......
......@@ -145,6 +145,8 @@
#define CQI_VALUE_RANGE 16
/*!\brief Hysteresis of PUSCH power control loop */
#define PUSCH_PCHYST 1
/*!\brief Hysteresis of PUCCH power control loop */
#define PUCCH_PCHYST 1
/*!\brief value for indicating BSR Timer is not running */
#define MAC_UE_BSR_TIMER_NOT_RUNNING (0xFFFF)
......@@ -615,6 +617,8 @@ typedef struct {
// here for RX
//
uint32_t ulsch_rounds[4];
uint32_t ulsch_bitrate;
//
uint32_t ulsch_bytes_rx;
......@@ -684,6 +688,17 @@ typedef struct {
// Length of SDU Got from LC DL
uint32_t sdu_length_tx[NB_RB_MAX];
int lc_bytes_tx[64];
int dlsch_rounds[8];
int dlsch_errors;
int dlsch_total_bytes;
int lc_bytes_rx[64];
int ulsch_rounds[8];
int ulsch_errors;
int ulsch_total_bytes_scheduled;
int ulsch_total_bytes_rx;
/// overall
//
......@@ -1324,6 +1339,7 @@ typedef struct {
uint8_t FeMBMS_flag;
} COMMON_channels_t;
/*! \brief top level eNB MAC structure */
typedef struct eNB_MAC_INST_s {
/// Ethernet parameters for northbound midhaul interface
eth_params_t eth_params_n;
......
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