Commit f7252bcc authored by Nick Ho's avatar Nick Ho

Clean warning step 2

parent c337e5d5
...@@ -997,7 +997,7 @@ set(PHY_SRC ...@@ -997,7 +997,7 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation_NB_IoT.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation_NB_IoT.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation_NB_IoT.c #${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation_NB_IoT.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/power_control.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/power_control.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_decoding.c ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_decoding.c
......
...@@ -303,7 +303,7 @@ void freq_equalization_NB_IoT(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -303,7 +303,7 @@ void freq_equalization_NB_IoT(LTE_DL_FRAME_PARMS *frame_parms,
ul_ch_mag128 = (int16x8_t*)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12]; ul_ch_mag128 = (int16x8_t*)&ul_ch_mag[0][symbol*frame_parms->N_RB_DL*12];
ul_ch_magb128 = (int16x8_t*)&ul_ch_magb[0][symbol*frame_parms->N_RB_DL*12]; ul_ch_magb128 = (int16x8_t*)&ul_ch_magb[0][symbol*frame_parms->N_RB_DL*12];
#endif #endif
ul_ch_magb128 = ul_ch_magb128;
for (re=0; re<(Msc_RS>>2); re++) { for (re=0; re<(Msc_RS>>2); re++) {
amp=(*((int16_t*)&ul_ch_mag128[re])); amp=(*((int16_t*)&ul_ch_mag128[re]));
......
...@@ -353,139 +353,3 @@ int dci_modulation_NB_IoT(int32_t **txdataF, ...@@ -353,139 +353,3 @@ int dci_modulation_NB_IoT(int32_t **txdataF,
return (re_allocated); return (re_allocated);
} }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
uint8_t generate_dci_top_NB_IoT(NB_IoT_eNB_NPDCCH_t *npdcch,
uint8_t Num_dci,
DCI_ALLOC_NB_IoT_t *dci_alloc,
int16_t amp,
NB_IoT_DL_FRAME_PARMS *fp,
int32_t **txdataF,
uint32_t subframe,
uint8_t npdcch_start_symbol)
{
int i, G;
//temporary variable
uint16_t rnti[2];
uint8_t L = 0;
/* PARAMETERS may not needed
**e_ptr : store the encoding result, and as a input to modulation
*num_pdcch_symbols : to calculate the resource allocation for pdcch
*L = aggregation level (there is 2 (at most) in NB-IoT) (Note this is not the real value but the index)
*lprime,kprime,kprime_mod12,mprime,nsymb,symbol_offset,tti_offset,re_offset : used in the REG allocation
*gain_lin_QPSK,yseq0[Msymb],yseq1[Msymb],*y[2] : used in the modulation
*mi = used in interleaving
*e = used to store the taus sequence (taus sequence is used to generate the first sequence for DCI) Turbo coding
*wbar used in the interleaving and also REG allocation
*/
// MAC is assumed to have ordered the UE spec DCI according to the RNTI-based randomization???
// Value of aggregation level (FAPI/NFAPI specs v.9.0 pag 221 value 1,2)
/*
* in NB-IoT we can have at most 2 aggregation level since we have only 2 NCCE (Narrowband control channel element)
* if only 1 DCI transmitted:
* - Aggregation level could be 1 or 2
* if 2 DCI transmitted:
* - Aggregation level should be 1
*
*/
//First take all the DCI pdu and their corrispondent rnti
for(i = 0; i<Num_dci;i++)
{
npdcch->pdu[i][0]=dci_alloc[i].dci_pdu;
rnti[i]=dci_alloc[i].rnti;
L = dci_alloc[i].L;
}
if(Num_dci == 2 && L == 1)
LOG_E(PHY,"generate_dci_top_NB_IoT: Aggregation level not compatible with Num_dci\n" );
//Second, evaluate the G variable based of the npdcch_start_sysmbol
/*
* TS 36.213 ch 16.6.1
* npdcch_start_symbol indicate the starting OFDM symbol for NPDCCH in the first slot of a subframe k ad is determined as follow:
* - if eutracontrolregionsize is present (defined for in-band operating mode (mode 0,1 for FAPI specs))
* npdcch_start_symbol = eutracontrolregionsize (value 1,2,3) [units in number of OFDM symbol]
* -otherwise
* npdcch_start_symbol = 0
*
*XXX npdcch_start symbol should be the same for every DCI once is decided since depends on the parameters
*(the setting of this npdcch_start_symbol parameter should be done in the MAC)
*Depending on npdcch_start_symbol then we define different values for G
*
*/
switch(npdcch_start_symbol) //mail Bcom matthieu
{
case 0:
G = 304;
break;
case 1:
G = 240;
break;
case 2:
G = 224;
break;
case 3:
G =200;
break;
default:
LOG_E (PHY,"npdcch_start_symbol has unwanted value\n");
break;
}
//NB-IoT encoding
// dci_encoding_NB_IoT(
// a,
// 4, // total length (in byte) of a [assume max 2 pdus of ??]
// G,
// npdcch->e,
// rnti,
// Num_dci,
// L
// );
//NB-IoT scrambling
// npdcch_scrambling_NB_IoT(
// fp,
// npdcch->e,
// G,
// subframe,
// Num_dci,
// L
// );
//NB-IoT Modulation
// dci_modulation_NB_IoT(
// txdataF,
// amp,
// fp,
// npdcch_start_symbol,
// npdcch->e,
// G,
// Num_dci,
// L
// );
return 0;
}
...@@ -181,6 +181,7 @@ int generate_eNB_ulsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB, ...@@ -181,6 +181,7 @@ int generate_eNB_ulsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
ndlcch->counter_repetition_number[ncce_index] = DCIrep_to_real_rep(DCIRep,4);//Rmax set to 4 at the moment, need to check the configuation for setting it ndlcch->counter_repetition_number[ncce_index] = DCIrep_to_real_rep(DCIRep,4);//Rmax set to 4 at the moment, need to check the configuation for setting it
LOG_I(PHY,"DCI packing for N0 done \n"); LOG_I(PHY,"DCI packing for N0 done \n");
return(0);
} }
...@@ -382,7 +383,8 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB, ...@@ -382,7 +383,8 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
directIndInf = DCI_Content->DCIN2_Ind.directIndInf; directIndInf = DCI_Content->DCIN2_Ind.directIndInf;
resInfoBits = DCI_Content->DCIN2_Ind.resInfoBits; resInfoBits = DCI_Content->DCIN2_Ind.resInfoBits;
directIndInf = directIndInf;
resInfoBits = resInfoBits;
//add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN2_Ind_t),aggregation,sizeof_DCIN2_Ind_t,DCIFormatN2_Ind,npdcch_start_symbol); //add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN2_Ind_t),aggregation,sizeof_DCIN2_Ind_t,DCIFormatN2_Ind,npdcch_start_symbol);
......
...@@ -225,10 +225,10 @@ int rx_npdsch_NB_IoT(PHY_VARS_UE_NB_IoT *ue, ...@@ -225,10 +225,10 @@ int rx_npdsch_NB_IoT(PHY_VARS_UE_NB_IoT *ue,
// return(-1); // return(-1);
// } // }
if (symbol>=7) //if (symbol>=7)
rballoc = dlsch0_harq->rb_alloc_odd; //rballoc = dlsch0_harq->rb_alloc_odd;
else //else
rballoc = dlsch0_harq->rb_alloc_even; //rballoc = dlsch0_harq->rb_alloc_even;
// if (dlsch0_harq->mimo_mode>DUALSTREAM_PUSCH_PRECODING) { // if (dlsch0_harq->mimo_mode>DUALSTREAM_PUSCH_PRECODING) {
......
...@@ -220,15 +220,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB, ...@@ -220,15 +220,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB *eNB,
uint8_t ncce_index); uint8_t ncce_index);
/*Function for DCI encoding, scrambling, modulation*/
uint8_t generate_dci_top_NB_IoT(NB_IoT_eNB_NPDCCH_t *npdcch,
uint8_t Num_dci,
DCI_ALLOC_NB_IoT_t *dci_alloc,
int16_t amp,
NB_IoT_DL_FRAME_PARMS *fp,
int32_t **txdataF,
uint32_t subframe,
uint8_t npdcch_start_symbol);
/*! /*!
\brief Decoding of PUSCH/ACK/RI/ACK from 36-212. \brief Decoding of PUSCH/ACK/RI/ACK from 36-212.
...@@ -394,7 +386,7 @@ void descrambling_NPUSCH_ack_NB_IoT(LTE_DL_FRAME_PARMS *fp, ...@@ -394,7 +386,7 @@ void descrambling_NPUSCH_ack_NB_IoT(LTE_DL_FRAME_PARMS *fp,
uint8_t rx_subframe, uint8_t rx_subframe,
uint32_t rx_frame); uint32_t rx_frame);
uint32_t turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB, void turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB,
NB_IoT_eNB_NULSCH_t *ulsch_NB_IoT, NB_IoT_eNB_NULSCH_t *ulsch_NB_IoT,
eNB_rxtx_proc_t *proc, eNB_rxtx_proc_t *proc,
uint8_t npusch_format, uint8_t npusch_format,
......
...@@ -1504,7 +1504,7 @@ void descrambling_NPUSCH_ack_NB_IoT(LTE_DL_FRAME_PARMS *fp, ...@@ -1504,7 +1504,7 @@ void descrambling_NPUSCH_ack_NB_IoT(LTE_DL_FRAME_PARMS *fp,
} }
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
uint32_t turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB, void turbo_decoding_NB_IoT(PHY_VARS_eNB *eNB,
NB_IoT_eNB_NULSCH_t *ulsch_NB_IoT, NB_IoT_eNB_NULSCH_t *ulsch_NB_IoT,
eNB_rxtx_proc_t *proc, eNB_rxtx_proc_t *proc,
uint8_t npusch_format, uint8_t npusch_format,
......
...@@ -33,7 +33,7 @@ void generate_eNB_ulsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,nf ...@@ -33,7 +33,7 @@ void generate_eNB_ulsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,nf
/*Generate the dlsch params and do the mapping for the FAPI style parameters to OAI, and then do the packing*/ /*Generate the dlsch params and do the mapping for the FAPI style parameters to OAI, and then do the packing*/
void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t * proc,nfapi_dl_config_request_pdu_t *dl_config_pdu); void generate_eNB_dlsch_params_NB_IoT(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t * proc,nfapi_dl_config_request_pdu_t *dl_config_pdu);
int8_t find_ue_NB_IoT(uint16_t rnti, PHY_VARS_eNB *eNB); int8_t find_ue_NB_IoT(uint16_t rnti, PHY_VARS_eNB_NB_IoT *eNB);
NB_IoT_DL_FRAME_PARMS *get_NB_IoT_frame_parms(module_id_t Mod_id, uint8_t CC_id); NB_IoT_DL_FRAME_PARMS *get_NB_IoT_frame_parms(module_id_t Mod_id, uint8_t CC_id);
......
...@@ -1094,7 +1094,7 @@ int8_t find_ue(uint16_t rnti, PHY_VARS_eNB *eNB) ...@@ -1094,7 +1094,7 @@ int8_t find_ue(uint16_t rnti, PHY_VARS_eNB *eNB)
return(-1); return(-1);
} }
*/ */
int8_t find_ue_NB_IoT(uint16_t rnti, PHY_VARS_eNB *eNB) int8_t find_ue_NB_IoT(uint16_t rnti, PHY_VARS_eNB_NB_IoT *eNB)
{ {
uint8_t i; uint8_t i;
......
...@@ -506,13 +506,6 @@ int16_t buffer_npusch_ext[153600]; ...@@ -506,13 +506,6 @@ int16_t buffer_npusch_ext[153600];
//int32_t llr_msg5[16]; //int32_t llr_msg5[16];
//int32_t y_msg5[16]; //int32_t y_msg5[16];
void common_signal_procedures (PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
{
// NB-IoT function here
NB_IoT_TX_procedure(eNB,proc);
}
void generate_eNB_dlsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,const int UE_id) { void generate_eNB_dlsch_params(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,const int UE_id) {
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
......
...@@ -749,8 +749,8 @@ void npusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ...@@ -749,8 +749,8 @@ void npusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
{ {
uint32_t i; uint32_t i;
NB_IoT_eNB_NULSCH_t *nulsch; //NB_IoT_eNB_NULSCH_t *nulsch;
nulsch = eNB->ulsch_NB_IoT[0]; //nulsch = eNB->ulsch_NB_IoT[0];
const int rx_subframe = proc->subframe_rx; const int rx_subframe = proc->subframe_rx;
const int rx_frame = proc->frame_rx; const int rx_frame = proc->frame_rx;
......
...@@ -549,7 +549,7 @@ static int enb_check_band_frequencies(char* lib_config_file_name_pP, ...@@ -549,7 +549,7 @@ static int enb_check_band_frequencies(char* lib_config_file_name_pP,
for (band_index = 0; band_index < sizeof (eutra_bands) / sizeof (eutra_bands[0]); band_index++) { for (band_index = 0; band_index < sizeof (eutra_bands) / sizeof (eutra_bands[0]); band_index++) {
if (band == eutra_bands[band_index].band) { if (band == eutra_bands[band_index].band) {
uint32_t uplink_frequency = downlink_frequency + uplink_frequency_offset; uint32_t uplink_frequency = downlink_frequency + uplink_frequency_offset;
uplink_frequency = uplink_frequency;
AssertError (eutra_bands[band_index].dl_min < downlink_frequency, errors ++, AssertError (eutra_bands[band_index].dl_min < downlink_frequency, errors ++,
"Failed to parse eNB configuration file %s, enb %d downlink frequency %u too low (%u) for band %d!", "Failed to parse eNB configuration file %s, enb %d downlink frequency %u too low (%u) for band %d!",
lib_config_file_name_pP, enb_properties_index, downlink_frequency, eutra_bands[band_index].dl_min, band); lib_config_file_name_pP, enb_properties_index, downlink_frequency, eutra_bands[band_index].dl_min, band);
......
...@@ -404,7 +404,7 @@ void rrc_mac_config_req_NB_IoT( ...@@ -404,7 +404,7 @@ void rrc_mac_config_req_NB_IoT(
mac_inst->npdcch_config_common[0].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13]; mac_inst->npdcch_config_common[0].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13];
mac_inst->npdcch_config_common[0].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13]; mac_inst->npdcch_config_common[0].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13];
mac_inst->npdcch_config_common[0].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13]; mac_inst->npdcch_config_common[0].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13];
LOG_I(MAC,"NPRACH CE 0 setting: Rmax: %lu G: %lf a: %lf\n",mac_inst->npdcch_config_common[0].R_max,mac_inst->npdcch_config_common[0].G,mac_inst->npdcch_config_common[0].a_offset); LOG_I(MAC,"NPRACH CE 0 setting: Rmax: %ld G: %lf a: %lf\n",mac_inst->npdcch_config_common[0].R_max,mac_inst->npdcch_config_common[0].G,mac_inst->npdcch_config_common[0].a_offset);
} }
//CE level 1 //CE level 1
if ( radioResourceConfigCommon->nprach_Config_r13.nprach_ParametersList_r13.list.array[1] != NULL) if ( radioResourceConfigCommon->nprach_Config_r13.nprach_ParametersList_r13.list.array[1] != NULL)
...@@ -418,7 +418,7 @@ void rrc_mac_config_req_NB_IoT( ...@@ -418,7 +418,7 @@ void rrc_mac_config_req_NB_IoT(
mac_inst->npdcch_config_common[1].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13]; mac_inst->npdcch_config_common[1].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13];
mac_inst->npdcch_config_common[1].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13]; mac_inst->npdcch_config_common[1].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13];
mac_inst->npdcch_config_common[1].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13]; mac_inst->npdcch_config_common[1].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13];
LOG_I(MAC,"NPRACH CE 1 setting: Rmax: %lu G: %lf a: %lf\n",mac_inst->npdcch_config_common[1].R_max,mac_inst->npdcch_config_common[1].G,mac_inst->npdcch_config_common[1].a_offset); LOG_I(MAC,"NPRACH CE 1 setting: Rmax: %ld G: %lf a: %lf\n",mac_inst->npdcch_config_common[1].R_max,mac_inst->npdcch_config_common[1].G,mac_inst->npdcch_config_common[1].a_offset);
} }
//CE level 2 //CE level 2
if ( radioResourceConfigCommon->nprach_Config_r13.nprach_ParametersList_r13.list.array[2] != NULL) if ( radioResourceConfigCommon->nprach_Config_r13.nprach_ParametersList_r13.list.array[2] != NULL)
...@@ -432,7 +432,7 @@ void rrc_mac_config_req_NB_IoT( ...@@ -432,7 +432,7 @@ void rrc_mac_config_req_NB_IoT(
mac_inst->npdcch_config_common[2].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13]; mac_inst->npdcch_config_common[2].R_max = rmax[nprach_parameter->npdcch_NumRepetitions_RA_r13];
mac_inst->npdcch_config_common[2].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13]; mac_inst->npdcch_config_common[2].G = gvalue[nprach_parameter->npdcch_StartSF_CSS_RA_r13];
mac_inst->npdcch_config_common[2].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13]; mac_inst->npdcch_config_common[2].a_offset = pdcchoffset[nprach_parameter->npdcch_Offset_RA_r13];
LOG_I(MAC,"NPRACH CE 2 setting: Rmax: %lu G: %lf a: %lf\n",mac_inst->npdcch_config_common[2].R_max,mac_inst->npdcch_config_common[2].G,mac_inst->npdcch_config_common[2].a_offset); LOG_I(MAC,"NPRACH CE 2 setting: Rmax: %ld G: %lf a: %lf\n",mac_inst->npdcch_config_common[2].R_max,mac_inst->npdcch_config_common[2].G,mac_inst->npdcch_config_common[2].a_offset);
} }
config_sib2_fapi_NB_IoT(carrier->physCellId,radioResourceConfigCommon); config_sib2_fapi_NB_IoT(carrier->physCellId,radioResourceConfigCommon);
......
...@@ -252,8 +252,6 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u ...@@ -252,8 +252,6 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u
UE_TEMPLATE_NB_IoT *UE_template_temp; UE_TEMPLATE_NB_IoT *UE_template_temp;
DCIFormatN1_t *DCI_N1; DCIFormatN1_t *DCI_N1;
DCIFormatN0_t *DCI_N0; DCIFormatN0_t *DCI_N0;
DCIFormatN0_t *DCI_N0_1;
DCIFormatN0_t *DCI_N0_2;
//SCHEDULE_NB_IoT_t *scheduler = &eNB->scheduler; //SCHEDULE_NB_IoT_t *scheduler = &eNB->scheduler;
mac_inst->scheduling_flag.flag_uss[0]=1; mac_inst->scheduling_flag.flag_uss[0]=1;
...@@ -306,23 +304,7 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u ...@@ -306,23 +304,7 @@ void schedule_uss_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, u
//generate DCI-N0 content //generate DCI-N0 content
fill_DCI_N0(DCI_N0, UE_template_temp, UE_sched_ctrl_info); fill_DCI_N0(DCI_N0, UE_template_temp, UE_sched_ctrl_info);
generate_scheduling_result_UL(UE_sched_ctrl_info->NPDCCH_sf_start, UE_sched_ctrl_info->NPDCCH_sf_end,UE_sched_ctrl_info->NPUSCH_sf_start+3, UE_sched_ctrl_info->NPUSCH_sf_end+3,DCI_N0, UE_template_temp->rnti, str22, str23, 0); generate_scheduling_result_UL(UE_sched_ctrl_info->NPDCCH_sf_start, UE_sched_ctrl_info->NPDCCH_sf_end,UE_sched_ctrl_info->NPUSCH_sf_start+3, UE_sched_ctrl_info->NPUSCH_sf_end+3,DCI_N0, UE_template_temp->rnti, str22, str23, 0);
/*
if (UE_sched_ctrl_info->resent_flag==1)
{
DCI_N0_1 = (DCIFormatN0_t*)malloc(sizeof(DCIFormatN0_t));
UE_sched_ctrl_info->dci_n0_index_ndi = 1;
fill_DCI_N0(DCI_N0_1, UE_template_temp, UE_sched_ctrl_info);
generate_scheduling_result_UL(UE_sched_ctrl_info->NPDCCH_sf_start+800, UE_sched_ctrl_info->NPDCCH_sf_end+800,UE_sched_ctrl_info->NPUSCH_sf_start+803, UE_sched_ctrl_info->NPUSCH_sf_end+803,DCI_N0_1, UE_template_temp->rnti, str22, str23, 0);
DCI_N0_2 = (DCIFormatN0_t*)malloc(sizeof(DCIFormatN0_t));
UE_sched_ctrl_info->dci_n0_index_ndi = 0;
fill_DCI_N0(DCI_N0_2, UE_template_temp, UE_sched_ctrl_info);
generate_scheduling_result_UL(UE_sched_ctrl_info->NPDCCH_sf_start+1000, UE_sched_ctrl_info->NPDCCH_sf_end+1000,UE_sched_ctrl_info->NPUSCH_sf_start+1003, UE_sched_ctrl_info->NPUSCH_sf_end+1003,DCI_N0_2, UE_template_temp->rnti, str22, str23, 0);
}
*/
//sotre UE_template //sotre UE_template
UE_template_temp->R_dci=UE_sched_ctrl_info->R_dci; UE_template_temp->R_dci=UE_sched_ctrl_info->R_dci;
UE_template_temp->R_ul=UE_sched_ctrl_info->R_ul_data; UE_template_temp->R_ul=UE_sched_ctrl_info->R_ul_data;
......
...@@ -183,7 +183,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){ ...@@ -183,7 +183,7 @@ void schedule_rar_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, int abs_subframe){
uint32_t Iru = 0, mcs, Nru; uint32_t Iru = 0, mcs, Nru;
uint32_t Nrep_UL = 0; // need a table here uint32_t Nrep_UL = 0; // need a table here
uint32_t mappedMcsIndex = 4; // assume all ue supported multi-tone //uint32_t mappedMcsIndex = 4; // assume all ue supported multi-tone
//mcs = mapped_mcs[msg2_nodes->ce_level][mappedMcsIndex]; // assume all ue supported multi-tone //mcs = mapped_mcs[msg2_nodes->ce_level][mappedMcsIndex]; // assume all ue supported multi-tone
mcs = 2; mcs = 2;
Nrep_UL = ULrep[rep]; Nrep_UL = ULrep[rep];
......
...@@ -152,6 +152,7 @@ int schedule_DL_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, UE_ ...@@ -152,6 +152,7 @@ int schedule_DL_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, UE_
0, 0,
DCCH0_NB_IoT, DCCH0_NB_IoT,
TBS-3-rlc_control_pdu_size); TBS-3-rlc_control_pdu_size);
rlc_status2 = rlc_status2;
// Request the RLC for DATA PDU itself // Request the RLC for DATA PDU itself
rlc_data_pdu_size = mac_rlc_data_req( rlc_data_pdu_size = mac_rlc_data_req(
module_id, module_id,
......
...@@ -103,7 +103,7 @@ int schedule_UL_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst,UE_TEMPLATE_NB_IoT *UE_info ...@@ -103,7 +103,7 @@ int schedule_UL_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst,UE_TEMPLATE_NB_IoT *UE_info
} }
LOG_D(MAC,"TBS : %d MCS %d I_RU %d\n", TBS, UE_info->ul_total_buffer, mcs, Iru); LOG_D(MAC,"TBS : %d MCS %d I_RU %d\n", TBS, mcs, Iru);
Nru = RU_table[Iru]; Nru = RU_table[Iru];
DL_end = NPDCCH_info->sf_end; DL_end = NPDCCH_info->sf_end;
...@@ -316,7 +316,7 @@ void rx_sdu_NB_IoT(module_id_t module_id, int CC_id, frame_t frame, sub_frame_t ...@@ -316,7 +316,7 @@ void rx_sdu_NB_IoT(module_id_t module_id, int CC_id, frame_t frame, sub_frame_t
&ctxt, &ctxt,
rx_lcids[i], rx_lcids[i],
49, 49,
(char *)payload_ptr); (uint8_t *)payload_ptr);
RLC_RECEIVE_MSG5_FAILED = 0; RLC_RECEIVE_MSG5_FAILED = 0;
} }
if (UE_info != NULL) if (UE_info != NULL)
......
...@@ -464,8 +464,8 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui ...@@ -464,8 +464,8 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer,ui
mac_xface->eNB_dlsch_ulsch_scheduler = eNB_dlsch_ulsch_scheduler; mac_xface->eNB_dlsch_ulsch_scheduler = eNB_dlsch_ulsch_scheduler;
mac_xface->get_dci_sdu = get_dci_sdu; mac_xface->get_dci_sdu = get_dci_sdu;
mac_xface->fill_rar = fill_rar; mac_xface->fill_rar = fill_rar;
//mac_xface->initiate_ra_proc = initiate_ra_proc; mac_xface->initiate_ra_proc = initiate_ra_proc;
mac_xface->initiate_ra_proc = init_RA_NB_IoT; //mac_xface->initiate_ra_proc = init_RA_NB_IoT;
mac_xface->cancel_ra_proc = cancel_ra_proc; mac_xface->cancel_ra_proc = cancel_ra_proc;
mac_xface->set_msg3_subframe = set_msg3_subframe; mac_xface->set_msg3_subframe = set_msg3_subframe;
mac_xface->SR_indication = SR_indication; mac_xface->SR_indication = SR_indication;
......
...@@ -130,7 +130,7 @@ int output_handler(eNB_MAC_INST_NB_IoT *mac_inst, module_id_t module_id, int CC_ ...@@ -130,7 +130,7 @@ int output_handler(eNB_MAC_INST_NB_IoT *mac_inst, module_id_t module_id, int CC_
LOG_D(MAC,"[hypersfn:%2d][frame:%2d][subframe:%2d]NB-IoT fill SIB1\n",hypersfn,frame,subframe); LOG_D(MAC,"[hypersfn:%2d][frame:%2d][subframe:%2d]NB-IoT fill SIB1\n",hypersfn,frame,subframe);
}else if(schedule_result_list_DL == NULL){ }else if(schedule_result_list_DL == NULL){
DL_empty = 1; DL_empty = 1;
LOG_D(MAC,"no remaining node of DL scheduling result\n"); LOG_D(MAC,"no remaining node of DL scheduling result, DL EMPTY : %d\n",DL_empty);
}else{ }else{
// here shouldn't be run into, to prevent DL scheduling result node is less than curent time // here shouldn't be run into, to prevent DL scheduling result node is less than curent time
if(schedule_result_list_DL->output_subframe < current_time) if(schedule_result_list_DL->output_subframe < current_time)
...@@ -246,7 +246,7 @@ int output_handler(eNB_MAC_INST_NB_IoT *mac_inst, module_id_t module_id, int CC_ ...@@ -246,7 +246,7 @@ int output_handler(eNB_MAC_INST_NB_IoT *mac_inst, module_id_t module_id, int CC_
if(schedule_result_list_UL==NULL) if(schedule_result_list_UL==NULL)
{ {
UL_empty = 1; UL_empty = 1;
LOG_D(MAC,"no remaining node of UL scheduling result\n"); LOG_D(MAC,"no remaining node of UL scheduling result, UL_empty:%d\n",UL_empty);
}else }else
{ {
// here shouldn't be run into // here shouldn't be run into
......
...@@ -2479,7 +2479,7 @@ rlc_op_status_t rlc_data_req_NB_IoT (const protocol_ctxt_t* const ctxt_pP, ...@@ -2479,7 +2479,7 @@ rlc_op_status_t rlc_data_req_NB_IoT (const protocol_ctxt_t* const ctxt_pP,
rlc_union_t *rlc_union_p = NULL; rlc_union_t *rlc_union_p = NULL;
hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE;
hashtable_rc_t h_rc; hashtable_rc_t h_rc;
int x; //int x;
#if defined(Rel10) || defined(Rel14) #if defined(Rel10) || defined(Rel14)
......
...@@ -145,7 +145,7 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier) ...@@ -145,7 +145,7 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier)
carrier[0].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup_NB_IoT(ue_context_pP_NB_IoT, carrier[0].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup_NB_IoT(ue_context_pP_NB_IoT,
0, 0,
carrier[0].Srb0.Tx_buffer.Payload, (uint8_t*)carrier[0].Srb0.Tx_buffer.Payload,
0, 0,
SRB_configList_NB_IoT, SRB_configList_NB_IoT,
&ue_context_pP_NB_IoT->ue_context.physicalConfigDedicated_NB_IoT); &ue_context_pP_NB_IoT->ue_context.physicalConfigDedicated_NB_IoT);
...@@ -160,14 +160,14 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier) ...@@ -160,14 +160,14 @@ uint8_t* generate_msg4_NB_IoT(rrc_eNB_carrier_data_NB_IoT_t *carrier)
} }
printf("\n"); printf("\n");
return carrier[0].Srb0.Tx_buffer.Payload; return (uint8_t*)carrier[0].Srb0.Tx_buffer.Payload;
} }
uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t length) uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t length)
{ {
LOG_D(RRC,"recieve MSG3 CCCH SDU from MAC\n"); LOG_D(RRC,"recieve MSG3 CCCH SDU from MAC\n");
asn_dec_rval_t dec_rval; asn_dec_rval_t dec_rval;
struct rrc_eNB_ue_context_NB_IoT_s *ue_context_p = NULL; //struct rrc_eNB_ue_context_NB_IoT_s *ue_context_p = NULL;
uint8_t* msg4_rrc_sdu = NULL; uint8_t* msg4_rrc_sdu = NULL;
SRB_INFO_NB_IoT *srb_info = NULL; SRB_INFO_NB_IoT *srb_info = NULL;
srb_info = &eNB_rrc_inst_NB_IoT->carrier[0].Srb0; srb_info = &eNB_rrc_inst_NB_IoT->carrier[0].Srb0;
...@@ -195,6 +195,7 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l ...@@ -195,6 +195,7 @@ uint8_t* mac_rrc_msg3_ind_NB_IoT(uint8_t *payload_ptr, uint16_t rnti, uint32_t l
100, 100,
0, 0,
0); 0);
dec_rval = dec_rval;
if (ul_ccch_msg_NB->message.choice.c1.present==UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13) if (ul_ccch_msg_NB->message.choice.c1.present==UL_CCCH_MessageType_NB__c1_PR_rrcConnectionRequest_r13)
{ {
LOG_I(RRC,"The decode CCH MSG is RRC connection Request NB\n"); LOG_I(RRC,"The decode CCH MSG is RRC connection Request NB\n");
...@@ -4409,13 +4410,14 @@ rrc_eNB_decode_ccch_NB_IoT( ...@@ -4409,13 +4410,14 @@ rrc_eNB_decode_ccch_NB_IoT(
100, 100,
0, 0,
0); 0);
dec_rval = dec_rval;
module_id_t Idx; module_id_t Idx;
int i, rval; int rval;
struct rrc_eNB_ue_context_s* ue_context_p = NULL; struct rrc_eNB_ue_context_s* ue_context_p = NULL;
uint64_t random_value = 0; uint64_t random_value = 0;
int stmsi_received = 0; int stmsi_received = 0;
if (ul_ccch_msg_NB->message.present == UL_CCCH_MessageType_PR_c1) if (ul_ccch_msg_NB->message.present == UL_CCCH_MessageType_NB_PR_c1)
{ {
switch (ul_ccch_msg_NB->message.choice.c1.present) switch (ul_ccch_msg_NB->message.choice.c1.present)
{ {
...@@ -4639,6 +4641,9 @@ rrc_eNB_decode_ccch_NB_IoT( ...@@ -4639,6 +4641,9 @@ rrc_eNB_decode_ccch_NB_IoT(
#endif //NO_RRM #endif //NO_RRM
break; break;
default:
LOG_I(RRC,"unknown error at RRC\n");
break;
} }
rval = 0; rval = 0;
...@@ -5044,7 +5049,7 @@ int rrc_eNB_decode_dcch_NB_IoT( ...@@ -5044,7 +5049,7 @@ int rrc_eNB_decode_dcch_NB_IoT(
asn_dec_rval_t dec_rval; asn_dec_rval_t dec_rval;
UL_DCCH_Message_NB_t *ul_dcch_msg_NB_IoT = NULL; UL_DCCH_Message_NB_t *ul_dcch_msg_NB_IoT = NULL;
UE_Capability_NB_r13_t *UE_Capability_NB = NULL; //UE_Capability_NB_r13_t *UE_Capability_NB = NULL;
int i; int i;
struct rrc_eNB_ue_context_s* ue_context_p = NULL; struct rrc_eNB_ue_context_s* ue_context_p = NULL;
...@@ -5141,7 +5146,7 @@ int rrc_eNB_decode_dcch_NB_IoT( ...@@ -5141,7 +5146,7 @@ int rrc_eNB_decode_dcch_NB_IoT(
LOG_I(RRC,"selectedPLMN_Identity_r13 : %ld\n",ul_dcch_msg_NB_IoT->message.choice.c1.choice.rrcConnectionSetupComplete_r13.criticalExtensions.choice.rrcConnectionSetupComplete_r13.selectedPLMN_Identity_r13); LOG_I(RRC,"selectedPLMN_Identity_r13 : %ld\n",ul_dcch_msg_NB_IoT->message.choice.c1.choice.rrcConnectionSetupComplete_r13.criticalExtensions.choice.rrcConnectionSetupComplete_r13.selectedPLMN_Identity_r13);
LOG_I(RRC,"dedicatedInfoNAS_r13 : %02x\n",ul_dcch_msg_NB_IoT->message.choice.c1.choice.rrcConnectionSetupComplete_r13.criticalExtensions.choice.rrcConnectionSetupComplete_r13.dedicatedInfoNAS_r13); //LOG_I(RRC,"dedicatedInfoNAS_r13 : %02x\n",ul_dcch_msg_NB_IoT->message.choice.c1.choice.rrcConnectionSetupComplete_r13.criticalExtensions.choice.rrcConnectionSetupComplete_r13.dedicatedInfoNAS_r13);
rrc_eNB_process_RRCConnectionSetupComplete_NB_IoT( rrc_eNB_process_RRCConnectionSetupComplete_NB_IoT(
ctxt_pP, ctxt_pP,
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1882,6 +1882,8 @@ void init_eNB_proc(int inst) { ...@@ -1882,6 +1882,8 @@ void init_eNB_proc(int inst) {
else { else {
pthread_create(&proc->pthread_single, attr_single, eNB_thread_single, &eNB->proc); pthread_create(&proc->pthread_single, attr_single, eNB_thread_single, &eNB->proc);
init_fep_thread(eNB,attr_fep); init_fep_thread(eNB,attr_fep);
attr_td = attr_td;
attr_te = attr_te;
/* /*
init_td_thread(eNB,attr_td); init_td_thread(eNB,attr_td);
init_te_thread(eNB,attr_te); init_te_thread(eNB,attr_te);
......
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