Commit c498cac9 authored by Raymond Knopp's avatar Raymond Knopp

Removed some of the warnings. Testing of sidelink still fails.

parent 9306e052
...@@ -721,7 +721,7 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, ...@@ -721,7 +721,7 @@ int init_lte_ue_signal(PHY_VARS_UE *ue,
common_vars->rxdata = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); common_vars->rxdata = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) );
common_vars->common_vars_rx_data_per_thread[0].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); common_vars->common_vars_rx_data_per_thread[0].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) );
common_vars->common_vars_rx_data_per_thread[1].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); common_vars->common_vars_rx_data_per_thread[1].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) );
if (ue->sidelink_active == 1) common_vars->rxdata_syncSL = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int16_t*) ); if (ue->sidelink_active == 1) common_vars->rxdata_syncSL = (int16_t**)malloc16( fp->nb_antennas_rx*sizeof(int16_t*) );
for (i=0; i<fp->nb_antennas_rx; i++) { for (i=0; i<fp->nb_antennas_rx; i++) {
common_vars->rxdata[i] = (int32_t*) malloc16_clear( (fp->samples_per_tti*10+2048)*sizeof(int32_t) ); common_vars->rxdata[i] = (int32_t*) malloc16_clear( (fp->samples_per_tti*10+2048)*sizeof(int32_t) );
......
...@@ -40,6 +40,11 @@ ...@@ -40,6 +40,11 @@
#include "PHY/defs_common.h" #include "PHY/defs_common.h"
#include "PHY/phy_extern_ue.h" #include "PHY/phy_extern_ue.h"
extern int lte_sync_timeSL(PHY_VARS_UE *ue, int *ind, int64_t *lev, int64_t *avg);
extern int rx_slsss(PHY_VARS_UE *ue,int32_t *tot_metric,uint8_t *phase_max,int Nid2);
extern void generate_sl_grouphop(PHY_VARS_UE *ue);
extern int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx);
int initial_syncSL(PHY_VARS_UE *ue) { int initial_syncSL(PHY_VARS_UE *ue) {
int index; int index;
...@@ -55,7 +60,7 @@ int initial_syncSL(PHY_VARS_UE *ue) { ...@@ -55,7 +60,7 @@ int initial_syncSL(PHY_VARS_UE *ue) {
index,dB_fixed64((uint64_t)psslevel),dB_fixed64((uint64_t)avglevel),ue->rx_offsetSL); index,dB_fixed64((uint64_t)psslevel),dB_fixed64((uint64_t)avglevel),ue->rx_offsetSL);
if (ue->rx_offsetSL >= 0) { if (ue->rx_offsetSL >= 0) {
int32_t sss_metric; int32_t sss_metric;
int32_t phase_max; uint8_t phase_max;
rx_slsss(ue,&sss_metric,&phase_max,index); rx_slsss(ue,&sss_metric,&phase_max,index);
generate_sl_grouphop(ue); generate_sl_grouphop(ue);
...@@ -92,6 +97,7 @@ int initial_syncSL(PHY_VARS_UE *ue) { ...@@ -92,6 +97,7 @@ int initial_syncSL(PHY_VARS_UE *ue) {
} }
} }
else { else {
return (-1);
/*write_output("rxsig0.m","rxs0",&ue->common_vars.rxdata[0][ue->frame_parms.samples_per_tti*subframe],ue->frame_parms.samples_per_tti,1,1); /*write_output("rxsig0.m","rxs0",&ue->common_vars.rxdata[0][ue->frame_parms.samples_per_tti*subframe],ue->frame_parms.samples_per_tti,1,1);
exit(-1); exit(-1);
*/ */
......
...@@ -110,7 +110,7 @@ LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,int nh ...@@ -110,7 +110,7 @@ LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,int nh
dlsch->max_turbo_iterations = max_turbo_iterations; dlsch->max_turbo_iterations = max_turbo_iterations;
for (i=0; i<nharq; i++) { for (i=0; i<nharq; i++) {
// printf("new_ue_dlsch: Harq process %d\n",i); printf("new_ue_dlsch: Harq process %d\n",i);
dlsch->harq_processes[i] = (LTE_DL_UE_HARQ_t *)malloc16(sizeof(LTE_DL_UE_HARQ_t)); dlsch->harq_processes[i] = (LTE_DL_UE_HARQ_t *)malloc16(sizeof(LTE_DL_UE_HARQ_t));
if (dlsch->harq_processes[i]) { if (dlsch->harq_processes[i]) {
......
...@@ -38,12 +38,20 @@ ...@@ -38,12 +38,20 @@
//#include "defs.h" //#include "defs.h"
#include "PHY/defs_UE.h" #include "PHY/defs_UE.h"
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "transport_proto_ue.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/LTE_ESTIMATION/lte_estimation.h"
#define PSBCH_A 40 #define PSBCH_A 40
#define PSBCH_E 1008 //12REs/PRB*6PRBs*7symbols*2 bits/RB #define PSBCH_E 1008 //12REs/PRB*6PRBs*7symbols*2 bits/RB
//#define PSBCH_DEBUG 1 //#define PSBCH_DEBUG 1
extern void dft_lte(int32_t *z,int32_t *d, int32_t Msc_PUSCH, uint8_t Nsymb);
extern void ulsch_channel_level(int32_t **drs_ch_estimates_ext, LTE_DL_FRAME_PARMS *frame_parms, int32_t *avg, uint16_t nb_rb);
extern void lte_idft(LTE_DL_FRAME_PARMS *frame_parms,uint32_t *z, uint16_t Msc_PUSCH);
extern void pbch_quantize(int8_t *pbch_llr8, int16_t *pbch_llr, uint16_t len);
...@@ -133,14 +141,14 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) { ...@@ -133,14 +141,14 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) {
int16_t **rxdataF = ue->sl_rxdataF[ue->current_thread_id[subframe_rx]]; int16_t **rxdataF = ue->sl_rxdataF[ue->current_thread_id[subframe_rx]];
int16_t **rxdataF_ext = ue->pusch_slbch->rxdataF_ext; int32_t **rxdataF_ext = ue->pusch_slbch->rxdataF_ext;
int16_t **drs_ch_estimates = ue->pusch_slbch->drs_ch_estimates; int32_t **drs_ch_estimates = ue->pusch_slbch->drs_ch_estimates;
int16_t **rxdataF_comp = ue->pusch_slbch->rxdataF_comp; int32_t **rxdataF_comp = ue->pusch_slbch->rxdataF_comp;
int16_t **ul_ch_mag = ue->pusch_slbch->ul_ch_mag; int32_t **ul_ch_mag = ue->pusch_slbch->ul_ch_mag;
int32_t avgs; int32_t avgs;
uint8_t log2_maxh=0; uint8_t log2_maxh=0;
int32_t avgU[2]; int32_t avgU[2];
int Nsymb=7; //int Nsymb=7;
RU_t ru_tmp; RU_t ru_tmp;
memset((void*)&ru_tmp,0,sizeof(RU_t)); memset((void*)&ru_tmp,0,sizeof(RU_t));
...@@ -170,8 +178,8 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) { ...@@ -170,8 +178,8 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) {
} }
LOG_D(PHY,"Running PBCH detection with Nid_SL %d (is_synchronizedSL %d) rxdata %p\n",ue->frame_parms.Nid_SL,ue->is_synchronizedSL,ue->common_vars.rxdata[0]); LOG_D(PHY,"Running PBCH detection with Nid_SL %d (is_synchronizedSL %d) rxdata %p\n",ue->frame_parms.Nid_SL,ue->is_synchronizedSL,ue->common_vars.rxdata[0]);
LOG_D(PHY,"slbch_decoding: FEP in %d.%d rx signal energy %d dB %d dB\n",frame_rx,subframe_rx, LOG_D(PHY,"slbch_decoding: FEP in %d.%d rx signal energy %d dB %d dB\n",frame_rx,subframe_rx,
dB_fixed(signal_energy(&ue->common_vars.rxdata[0][ue->frame_parms.samples_per_tti*subframe_rx],ue->frame_parms.samples_per_tti)), dB_fixed((uint32_t)signal_energy(&ue->common_vars.rxdata[0][ue->frame_parms.samples_per_tti*subframe_rx],ue->frame_parms.samples_per_tti)),
dB_fixed(signal_energy(ue->sl_rxdata_7_5kHz[ue->current_thread_id[0]][0],ue->frame_parms.samples_per_tti))); dB_fixed((uint32_t)signal_energy(ue->sl_rxdata_7_5kHz[ue->current_thread_id[0]][0],ue->frame_parms.samples_per_tti)));
for (int l=0; l<11; l++) { for (int l=0; l<11; l++) {
slot_fep_ul(&ru_tmp,l%7,(l>6)?1:0,0); slot_fep_ul(&ru_tmp,l%7,(l>6)?1:0,0);
...@@ -306,12 +314,12 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) { ...@@ -306,12 +314,12 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) {
uint8_t slbch_a[2+(PSBCH_A>>3)]; uint8_t slbch_a[2+(PSBCH_A>>3)];
uint32_t psbch_D; uint32_t psbch_D;
uint8_t psbch_d_rx[96+(3*(16+PSBCH_A))]; int8_t psbch_d_rx[96+(3*(16+PSBCH_A))];
uint8_t dummy_w_rx[3*3*(16+PSBCH_A)]; uint8_t dummy_w_rx[3*3*(16+PSBCH_A)];
uint8_t psbch_w_rx[3*3*(16+PSBCH_A)]; int8_t psbch_w_rx[3*3*(16+PSBCH_A)];
uint8_t *psbch_e_rx=llr; int8_t *psbch_e_rx=llr;
uint8_t RCC; uint8_t RCC;
int a; //int a;
uint8_t *decoded_output = ue->slss_rx.slmib; uint8_t *decoded_output = ue->slss_rx.slmib;
psbch_D = 16+PSBCH_A; psbch_D = 16+PSBCH_A;
...@@ -358,7 +366,7 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) { ...@@ -358,7 +366,7 @@ int rx_psbch(PHY_VARS_UE *ue,int frame_rx,int subframe_rx) {
return(-1); return(-1);
} }
else { else {
SLSS_t dummy_slss; //SLSS_t dummy_slss;
int testframe; int testframe;
int testsubframe; int testsubframe;
ue_decode_si(ue->Mod_id, ue_decode_si(ue->Mod_id,
......
...@@ -263,7 +263,6 @@ void sldch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra ...@@ -263,7 +263,6 @@ void sldch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
// Decoding // Decoding
ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->rvidx = rvidx; ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->rvidx = rvidx;
ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->nb_rb = 2; ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->nb_rb = 2;
ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->TBS = 256; ue->dlsch_rx_sldch[npsdch]->harq_processes[0]->TBS = 256;
......
...@@ -47,7 +47,7 @@ int generate_slpss(int32_t **txdataF, ...@@ -47,7 +47,7 @@ int generate_slpss(int32_t **txdataF,
) )
{ {
unsigned int Nsymb; //unsigned int Nsymb;
unsigned short k,m,a; unsigned short k,m,a;
uint8_t Nid2; uint8_t Nid2;
short *primary_sync; short *primary_sync;
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
*/ */
#include "PHY/defs_UE.h" #include "PHY/defs_UE.h"
#include "pssch.h" #include "pssch.h"
#include "transport_proto_ue.h"
//#define PSSCH_DEBUG 1 //#define PSSCH_DEBUG 1
#define DEBUG_SCI_DECODING 1 #define DEBUG_SCI_DECODING 1
...@@ -772,7 +773,7 @@ void check_and_generate_pscch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) { ...@@ -772,7 +773,7 @@ void check_and_generate_pscch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
} }
void generate_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,SLSCH_t *slsch,int frame_tx,int subframe_tx) { void generate_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, SLSCH_t *slsch,int frame_tx,int subframe_tx) {
UE_tport_t pdu; UE_tport_t pdu;
size_t slsch_header_len = sizeof(UE_tport_header_t); size_t slsch_header_len = sizeof(UE_tport_header_t);
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "transport_ue.h" #include "transport_ue.h"
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "PHY/MODULATION/modulation_eNB.h"
//#define DEBUG_SSS //#define DEBUG_SSS
......
...@@ -80,6 +80,12 @@ extern double cpuf; ...@@ -80,6 +80,12 @@ extern double cpuf;
void Msg1_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id); void Msg1_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id);
void Msg3_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id); void Msg3_transmitted(module_id_t module_idP,uint8_t CC_id,frame_t frameP, uint8_t eNB_id);
extern void check_and_generate_pscch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx);
extern void check_and_generate_pssch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_tx,int subframe_tx);
extern void rx_sldch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, int frame_rx,int subframe_rx);
extern void rx_slcch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subframe_rx);
extern void rx_slsch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc, int frame_rx,int subframe_rx);
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) #if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
extern uint32_t downlink_frequency[MAX_NUM_CCs][4]; extern uint32_t downlink_frequency[MAX_NUM_CCs][4];
#endif #endif
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* Author: winckel and Navid Nikaein * Author: winckel and Navid Nikaein
*/ */
#ifndef RRC_MESSAGES_TYPES_H_<<> #ifndef RRC_MESSAGES_TYPES_H_
#define RRC_MESSAGES_TYPES_H_ #define RRC_MESSAGES_TYPES_H_
#include "as_message.h" #include "as_message.h"
......
...@@ -1327,7 +1327,7 @@ rrc_pdcp_config_asn1_req ( ...@@ -1327,7 +1327,7 @@ rrc_pdcp_config_asn1_req (
DevCheck4(drb_id < LTE_maxDRB, drb_id, LTE_maxDRB, ctxt_pP->module_id, ctxt_pP->rnti); DevCheck4(drb_id < LTE_maxDRB, drb_id, LTE_maxDRB, ctxt_pP->module_id, ctxt_pP->rnti);
key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, drb_id, SRB_FLAG_NO); key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, drb_id, SRB_FLAG_NO);
LOG_I(PDCP, "rnti value: %d, DRB_ID: %d \n", ctxt_pP->rnti, drb_id); LOG_I(PDCP, "rnti value: %d, DRB_ID: %ld \n", ctxt_pP->rnti, drb_id);
h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p); h_rc = hashtable_get(pdcp_coll_p, key, (void**)&pdcp_p);
if (h_rc == HASH_TABLE_OK) { if (h_rc == HASH_TABLE_OK) {
......
...@@ -182,6 +182,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind ...@@ -182,6 +182,7 @@ rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind
) )
{ {
rlc_um_entity_t *l_rlc_p = (rlc_um_entity_t *) argP; rlc_um_entity_t *l_rlc_p = (rlc_um_entity_t *) argP;
#if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR #if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR
char message_string[10000]; char message_string[10000];
mem_block_t *tb_p; mem_block_t *tb_p;
......
...@@ -404,7 +404,9 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, ...@@ -404,7 +404,9 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP,
} }
if (sourceL2Id && destinationL2Id){ if (sourceL2Id && destinationL2Id){
LOG_I (RLC, "In sidelink case: RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); LOG_I (RLC, "In sidelink case: RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP);
key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP);
//key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP);
//Thinh's line originally uncommented //Thinh's line originally uncommented
//key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP); //key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP);
......
...@@ -171,6 +171,7 @@ uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt ...@@ -171,6 +171,7 @@ uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt
#if defined(ENABLE_USE_MME) || ENABLE_RAL #if defined(ENABLE_USE_MME) || ENABLE_RAL
static Rrc_State_t rrc_get_state (module_id_t ue_mod_idP) static Rrc_State_t rrc_get_state (module_id_t ue_mod_idP)
{ {
LOG_I(RRC, "In rrc_get_state \n");
return UE_rrc_inst[ue_mod_idP].RrcState; return UE_rrc_inst[ue_mod_idP].RrcState;
} }
#endif #endif
...@@ -4891,9 +4892,10 @@ void *rrc_ue_task( void *args_p ) ...@@ -4891,9 +4892,10 @@ void *rrc_ue_task( void *args_p )
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3,
NAS_CELL_SELECTION_REQ (msg_p).rat); NAS_CELL_SELECTION_REQ (msg_p).rat);
LOG_I(RRC, "RRC_GET_STATE: UE_ID: %d", ue_mod_id);
if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) {
// have a look at MAC/main.c void dl_phy_sync_success(...) // have a look at MAC/main.c void dl_phy_sync_success(...)
LOG_I(RRC, "rrc_ue_task() in RRC_STATE_INACTIVE before openair_rrc_ue_init() \n"); LOG_I(RRC, "rrc_ue_task() in RRC_STATE_INACTIVE before openair_rrc_ue_init() \n \n");
openair_rrc_ue_init(ue_mod_id,0); openair_rrc_ue_init(ue_mod_id,0);
} }
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
#define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" #define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n"
#define CONFIG_HLP_EMULIFACE "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.) \n" #define CONFIG_HLP_EMULIFACE "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.) \n"
#define CONFIG_HLP_SIML1 "Turn on simulation interface for L1" //#define CONFIG_HLP_SIML1 "Turn on simulation interface for L1"
#define CONFIG_HLP_ENABLESL "Enable SL functionality" #define CONFIG_HLP_ENABLESL "Enable SL functionality"
#define CONFIG_HLP_SLONLY "Use SL only (i.e. wire UE to off-network state)" #define CONFIG_HLP_SLONLY "Use SL only (i.e. wire UE to off-network state)"
#define CONFIG_HLP_SLSCHTEST "Activate dummy transmission of SCI/SLSCH for testing" #define CONFIG_HLP_SLSCHTEST "Activate dummy transmission of SCI/SLSCH for testing"
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include "PHY/INIT/phy_init.h" #include "PHY/INIT/phy_init.h"
#include "PHY/MODULATION/modulation_UE.h" #include "PHY/MODULATION/modulation_UE.h"
#include "PHY/LTE_ESTIMATION/lte_estimation.h" #include "PHY/LTE_ESTIMATION/lte_estimation.h"
#include "openair1/SIMULATION/TOOLS/sim.h"
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all #undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all //#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
...@@ -86,6 +87,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti ...@@ -86,6 +87,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti
void init_UE_stub(int nb_inst,int,int,char*,int); void init_UE_stub(int nb_inst,int,int,char*,int);
void init_UE_stub_single_thread(int nb_inst,int,int,char*, int); void init_UE_stub_single_thread(int nb_inst,int,int,char*, int);
int init_timer_thread(void); int init_timer_thread(void);
void init_sl_channel(void);
extern void oai_subframe_ind(uint16_t sfn, uint16_t sf); extern void oai_subframe_ind(uint16_t sfn, uint16_t sf);
extern void multicast_link_start(void (*rx_handlerP) (unsigned int, char *), extern void multicast_link_start(void (*rx_handlerP) (unsigned int, char *),
unsigned char _multicast_group, char *multicast_ifname); unsigned char _multicast_group, char *multicast_ifname);
...@@ -95,6 +97,15 @@ extern int oai_nfapi_harq_indication(nfapi_harq_indication_t *harq_ind); ...@@ -95,6 +97,15 @@ extern int oai_nfapi_harq_indication(nfapi_harq_indication_t *harq_ind);
extern int oai_nfapi_sr_indication(nfapi_sr_indication_t *ind); extern int oai_nfapi_sr_indication(nfapi_sr_indication_t *ind);
extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind); extern int oai_nfapi_rx_ind(nfapi_rx_indication_t *ind);
extern int multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP); extern int multicast_link_write_sock(int groupP, char *dataP, uint32_t sizeP);
extern int initial_syncSL(PHY_VARS_UE *ue);
//The following 4 lines need to be uncommented for SL emulation and correspond to the current definitions of the function
/*extern void check_and_generate_pscch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx);
extern void check_and_generate_pssch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_tx,int subframe_tx);
extern void do_SL_sig(int UE_id,channel_desc_t *UE2UE[NUMBER_OF_UE_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs],
uint16_t subframe,uint16_t slot, int symbol_offset, LTE_DL_FRAME_PARMS *frame_parms,
uint32_t frame,uint8_t CC_id);
extern void rx_slcch(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subframe_rx);*/
extern int simL1flag; extern int simL1flag;
extern uint16_t sf_ahead; extern uint16_t sf_ahead;
...@@ -392,7 +403,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti ...@@ -392,7 +403,7 @@ void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correcti
&UE->proc.attr_ue, &UE->proc.attr_ue,
UE_thread, UE_thread,
(void*)UE), ""); (void*)UE), "");
if (UE->sidelink_active == 1) if (UE->sidelink_active == 1)
AssertFatal(0 == pthread_create(&UE->proc.pthread_ueSL, AssertFatal(0 == pthread_create(&UE->proc.pthread_ueSL,
&UE->proc.attr_ueSL, &UE->proc.attr_ueSL,
UE_threadSL, UE_threadSL,
...@@ -782,16 +793,17 @@ static void *UE_thread_synch(void *arg) ...@@ -782,16 +793,17 @@ static void *UE_thread_synch(void *arg)
return &UE_thread_synch_retval; return &UE_thread_synch_retval;
} }
extern int64_t* sync_corr_ue1; //extern int64_t* sync_corr_ue1;
static void *UE_thread_synchSL(void *arg) static void *UE_thread_synchSL(void *arg)
{ {
static int UE_thread_synch_retval; //static int UE_thread_synch_retval;
int i, hw_slot_offset; int i;
//int hw_slot_offset;
PHY_VARS_UE *UE = (PHY_VARS_UE*) arg; PHY_VARS_UE *UE = (PHY_VARS_UE*) arg;
int current_band = 0; int current_band = 0;
int current_offset = 0; //int current_offset = 0;
sync_mode_t sync_mode = pbch; //sync_mode_t sync_mode = pbch;
int CC_id = UE->CC_id; int CC_id = UE->CC_id;
int ind; int ind;
int found; int found;
...@@ -838,11 +850,11 @@ static void *UE_thread_synchSL(void *arg) ...@@ -838,11 +850,11 @@ static void *UE_thread_synchSL(void *arg)
openair0_cfg[UE->rf_map.card].duplex_mode = duplex_mode_TDD; openair0_cfg[UE->rf_map.card].duplex_mode = duplex_mode_TDD;
} }
while (sync_var<0) /*while (sync_var<0)
pthread_cond_wait(&sync_cond, &sync_mutex); pthread_cond_wait(&sync_cond, &sync_mutex);
pthread_mutex_unlock(&sync_mutex); pthread_mutex_unlock(&sync_mutex);*/
wait_sync("UE thread synchSL");
while (oai_exit==0) { while (oai_exit==0) {
...@@ -877,7 +889,7 @@ static void *UE_thread_synchSL(void *arg) ...@@ -877,7 +889,7 @@ static void *UE_thread_synchSL(void *arg)
UE->UE_scan_carrier = 0; UE->UE_scan_carrier = 0;
} else { } else {
AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), ""); AssertFatal ( 0== pthread_mutex_lock(&UE->proc.mutex_synch), "");
LOG_I(PHY,"Setting UE->is_synchronized to 1\n",UE->is_synchronized); LOG_I(PHY,"Setting UE->is_synchronized to %d\n",UE->is_synchronized);
UE->is_synchronizedSL = 1; UE->is_synchronizedSL = 1;
AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), ""); AssertFatal ( 0== pthread_mutex_unlock(&UE->proc.mutex_synch), "");
} }
...@@ -1116,7 +1128,6 @@ static void *UE_thread_rxn_txnp4(void *arg) { ...@@ -1116,7 +1128,6 @@ static void *UE_thread_rxn_txnp4(void *arg) {
} }
#include "openair1/SIMULATION/TOOLS/sim.h"
unsigned int emulator_absSF; unsigned int emulator_absSF;
channel_desc_t *UE2UE[NUMBER_OF_UE_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs]; channel_desc_t *UE2UE[NUMBER_OF_UE_MAX][NUMBER_OF_UE_MAX][MAX_NUM_CCs];
...@@ -1168,10 +1179,12 @@ void ue_stub_rx_handler(unsigned int num_bytes, char *rx_buffer) { ...@@ -1168,10 +1179,12 @@ void ue_stub_rx_handler(unsigned int num_bytes, char *rx_buffer) {
if (UE->sidelink_l2_emulation == 2) { if (UE->sidelink_l2_emulation == 2) {
// do simulation here // do simulation here
UE->slsch = slsch; UE->slsch = slsch;
check_and_generate_pscch(UE,frame,subframe);
//The following 4 lines need to be uncommented for emulation and correspond to the current definitions of the functions
/*check_and_generate_pscch(UE,frame,subframe);
check_and_generate_pssch(UE,frame,subframe); check_and_generate_pssch(UE,frame,subframe);
do_SL_sig(UE2UE,subframe,&UE->frame_parms,frame,0); do_SL_sig(UE2UE,subframe,&UE->frame_parms,frame,0);
rx_slcch(UE,frame,subframe); rx_slcch(UE,frame,subframe);*/
} }
ue_send_sl_sdu(0, ue_send_sl_sdu(0,
0, 0,
...@@ -2305,9 +2318,11 @@ void *UE_threadSL(void *arg) { ...@@ -2305,9 +2318,11 @@ void *UE_threadSL(void *arg) {
UE->proc.instance_cnt_synchSL=-1; UE->proc.instance_cnt_synchSL=-1;
while (sync_var<0) /*while (sync_var<0)
pthread_cond_wait(&sync_cond, &sync_mutex); pthread_cond_wait(&sync_cond, &sync_mutex);
pthread_mutex_unlock(&sync_mutex); pthread_mutex_unlock(&sync_mutex);*/
wait_sync("UE thread SL");
AssertFatal(UE->rfdevice.trx_start_func(&UE->rfdevice) == 0,"Could not start the device"); AssertFatal(UE->rfdevice.trx_start_func(&UE->rfdevice) == 0,"Could not start the device");
......
...@@ -1042,14 +1042,14 @@ int main( int argc, char **argv ) { ...@@ -1042,14 +1042,14 @@ int main( int argc, char **argv ) {
// connect the TX/RX buffers // connect the TX/RX buffers
/*
if(nfapi_mode!=3) { if(nfapi_mode!=3) {
if (setup_ue_buffers(PHY_vars_UE_g[0],&openair0_cfg[0])!=0) { if (setup_ue_buffers(PHY_vars_UE_g[0],&openair0_cfg[0])!=0) {
printf("Error setting up eNB buffer\n"); printf("Error setting up eNB buffer\n");
exit(-1); exit(-1);
} }
} }
*/
if (input_fd) { if (input_fd) {
printf("Reading in from file to antenna buffer %d\n",0); printf("Reading in from file to antenna buffer %d\n",0);
......
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