Merge remote-tracking branch 'origin/issue343_dlcqi_retransmission' into develop_integration_2018_w36
This commit is contained in:
@@ -1342,16 +1342,21 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
|
||||
//compute the expected ULSCH RX power (for the stats)
|
||||
ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB(eNB,i,harq_pid, 0); // 0 means bw_factor is not considered
|
||||
|
||||
if (ulsch_harq->cqi_crc_status == 1) {
|
||||
if (RC.mac != NULL) { /* ulsim dose not use RC.mac context. */
|
||||
if (ulsch_harq->cqi_crc_status == 1) {
|
||||
#ifdef DEBUG_PHY_PROC
|
||||
//if (((frame%10) == 0) || (frame < 50))
|
||||
print_CQI(ulsch_harq->o,ulsch_harq->uci_format,0,fp->N_RB_DL);
|
||||
#endif
|
||||
|
||||
fill_ulsch_cqi_indication(eNB,frame,subframe,
|
||||
ulsch_harq,
|
||||
ulsch->rnti);
|
||||
|
||||
fill_ulsch_cqi_indication(eNB,frame,subframe,ulsch_harq,ulsch->rnti);
|
||||
RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag &= (~(1 << subframe));
|
||||
} else {
|
||||
if(RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag & (1 << subframe) ){
|
||||
RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_flag &= (~(1 << subframe));
|
||||
RC.mac[eNB->Mod_id]->UE_list.UE_sched_ctrl[i].cqi_req_timer=30;
|
||||
LOG_D(PHY,"Frame %d,Subframe %d, We're supposed to get a cqi here. Set cqi_req_timer to 30.\n",frame,subframe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == (1+MAX_TURBO_ITERATIONS)) {
|
||||
|
||||
@@ -2018,16 +2018,6 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP)
|
||||
dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power
|
||||
dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs;
|
||||
|
||||
// Rel10 fields
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3;
|
||||
#endif
|
||||
// Rel13 fields
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 0; // regular UE
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not BR
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF;
|
||||
#endif
|
||||
|
||||
if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, P_RNTI)) {
|
||||
LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for P_RNTI\n", frameP,subframeP);
|
||||
@@ -2068,6 +2058,18 @@ void schedule_PCH(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP)
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1;
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1;
|
||||
// dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ;
|
||||
|
||||
// Rel10 fields
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3;
|
||||
#endif
|
||||
// Rel13 fields
|
||||
#if (RRC_VERSION >= MAKE_VERSION(13, 0, 0))
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 0; // regular UE
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not BR
|
||||
dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF;
|
||||
#endif
|
||||
|
||||
dl_req->number_pdu++;
|
||||
|
||||
eNB->TX_req[CC_id].sfn_sf = (frameP<<4)+subframeP;
|
||||
|
||||
@@ -787,13 +787,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
||||
// unsigned char aggregation;
|
||||
mac_rlc_status_resp_t rlc_status;
|
||||
unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0;
|
||||
unsigned char header_len_dtch = 0, header_len_dtch_tmp =
|
||||
0, header_len_dtch_last = 0;
|
||||
unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0;
|
||||
unsigned char ta_len = 0;
|
||||
unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0;
|
||||
uint16_t nb_rb, nb_rb_temp, nb_available_rb;
|
||||
uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding =
|
||||
0, post_padding = 0;
|
||||
uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0;
|
||||
unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES];
|
||||
unsigned char round = 0;
|
||||
unsigned char harq_pid = 0;
|
||||
@@ -818,7 +816,10 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
||||
nfapi_dl_config_request_pdu_t *dl_config_pdu;
|
||||
int tdd_sfa;
|
||||
int ta_update;
|
||||
|
||||
#ifdef DEBUG_eNB_SCHEDULER
|
||||
int k;
|
||||
#endif
|
||||
|
||||
start_meas(&eNB->schedule_dlsch);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
|
||||
(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN);
|
||||
@@ -1335,8 +1336,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
||||
"[eNB %d][DCCH] CC_id %d Got %d bytes :",
|
||||
module_idP, CC_id, sdu_lengths[0]);
|
||||
|
||||
for (j = 0; j < sdu_lengths[0]; j++) {
|
||||
LOG_T(MAC, "%x ", dlsch_buffer[j]);
|
||||
for (k = 0; k < sdu_lengths[0]; k++) {
|
||||
LOG_T(MAC, "%x ", dlsch_buffer[k]);
|
||||
}
|
||||
|
||||
LOG_T(MAC, "\n");
|
||||
@@ -1389,8 +1390,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
||||
"[eNB %d][DCCH1] CC_id %d Got %d bytes :",
|
||||
module_idP, CC_id, sdu_lengths[num_sdus]);
|
||||
|
||||
for (j = 0; j < sdu_lengths[num_sdus]; j++) {
|
||||
LOG_T(MAC, "%x ", dlsch_buffer[j]);
|
||||
for (k = 0; k < sdu_lengths[num_sdus]; k++) {
|
||||
LOG_T(MAC, "%x ", dlsch_buffer[k]);
|
||||
}
|
||||
|
||||
LOG_T(MAC, "\n");
|
||||
@@ -1638,8 +1639,8 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
|
||||
#ifdef DEBUG_eNB_SCHEDULER
|
||||
LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n",module_idP );
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
LOG_T(MAC, "%x.", dlsch_buffer[i]);
|
||||
for (k = 0; k < 16; k++) {
|
||||
LOG_T(MAC, "%x.", dlsch_buffer[k]);
|
||||
}
|
||||
|
||||
LOG_T(MAC, "\n");
|
||||
|
||||
@@ -3313,6 +3313,7 @@ uint8_t do_Paging(uint8_t Mod_id, uint8_t *buffer, ue_paging_identity_t ue_pagin
|
||||
&paging_record_p->ue_Identity.choice.s_TMSI.m_TMSI);
|
||||
paging_record_p->ue_Identity.choice.s_TMSI.m_TMSI.bits_unused = 0;
|
||||
} else if (ue_paging_identity.presenceMask == UE_PAGING_IDENTITY_imsi) {
|
||||
paging_record_p->ue_Identity.present = PagingUE_Identity_PR_imsi;
|
||||
IMSI_Digit_t imsi_digit[21];
|
||||
for (j = 0; j< ue_paging_identity.choice.imsi.length; j++) { /* IMSI size */
|
||||
imsi_digit[j] = (IMSI_Digit_t)ue_paging_identity.choice.imsi.buffer[j];
|
||||
|
||||
Reference in New Issue
Block a user