remove compilation warnings, especially when disabling T_TRACER. enhance LOG_M macro implementation, introduce LOG_DEBUG_XXX macro to replace #ifdef DEBUG_XXX

This commit is contained in:
frtabu
2018-07-30 20:07:22 +02:00
parent b85cbddeec
commit 30509955c2
55 changed files with 686 additions and 934 deletions
+1 -1
View File
@@ -1214,7 +1214,7 @@ set(PHY_MEX_UE
${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
${OPENAIR2_DIR}/UTIL/LOG/log.c ${OPENAIR_DIR}/common/utils/LOG/log.c
) )
add_library(PHY_MEX ${PHY_MEX_UE}) add_library(PHY_MEX ${PHY_MEX_UE})
+3 -1
View File
@@ -508,7 +508,9 @@ function main() {
lte_exec=lte-uesoftmodem lte_exec=lte-uesoftmodem
fi fi
fi fi
if [ "$T_TRACER" = "False" ] ; then
lte_build_dir=${lte_build_dir}_noLOG
fi
# configuration module libraries, one currently available, using libconfig # configuration module libraries, one currently available, using libconfig
config_libconfig_shlib=params_libconfig config_libconfig_shlib=params_libconfig
+16 -13
View File
@@ -71,8 +71,11 @@ mapping log_options[] = {
mapping log_maskmap[] = { mapping log_maskmap[] = {
{"prach", DEBUG_PRACH}, {"prach", DEBUG_PRACH},
{"RU", DEBUG_RU}, {"RU", DEBUG_RU},
{"ctrlsocket", DEBUG_CTRLSOCKET},
{"UE_PHYPROC", DEBUG_UE_PHYPROC},
{"UE_TIMING", UE_TIMING},
{NULL,-1} {NULL,-1}
}; };
@@ -377,7 +380,6 @@ int logInit (void)
register_log_component("RLC","log",RLC); register_log_component("RLC","log",RLC);
register_log_component("PDCP","log",PDCP); register_log_component("PDCP","log",PDCP);
register_log_component("RRC","log",RRC); register_log_component("RRC","log",RRC);
register_log_component("EMU","log",EMU);
register_log_component("OMG","csv",OMG); register_log_component("OMG","csv",OMG);
register_log_component("OTG","log",OTG); register_log_component("OTG","log",OTG);
register_log_component("OTG_LATENCY","dat",OTG_LATENCY); register_log_component("OTG_LATENCY","dat",OTG_LATENCY);
@@ -399,7 +401,7 @@ int logInit (void)
register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT); register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT);
register_log_component("TMR","",TMR); register_log_component("TMR","",TMR);
register_log_component("USIM","txt",USIM); register_log_component("USIM","txt",USIM);
register_log_component("SIM","txt",SIM);
/* following log component are used for the localization*/ /* following log component are used for the localization*/
register_log_component("LOCALIZE","log",LOCALIZE); register_log_component("LOCALIZE","log",LOCALIZE);
@@ -465,14 +467,15 @@ int logInit (void)
char *log_getthreadname(char *threadname) { char *log_getthreadname(char *threadname, int bufsize) {
if (pthread_getname_np(pthread_self(), threadname, sizeof(threadname)) != 0) int rt = pthread_getname_np(pthread_self(), threadname,bufsize) ;
{ if (rt == 0)
return "thread?"; {
} else { return threadname;
return threadname; } else {
} return "thread?";
}
} }
@@ -495,7 +498,7 @@ void logRecord_mt(const char *file, const char *func, int line, int comp, int le
( (g_log->flag & FLAG_NOCOLOR)?"":log_level_highlight_start[level]), ( (g_log->flag & FLAG_NOCOLOR)?"":log_level_highlight_start[level]),
g_log->log_component[comp].name, g_log->log_component[comp].name,
( (g_log->flag & FLAG_LEVEL)?g_log->level2string[level]:""), ( (g_log->flag & FLAG_LEVEL)?g_log->level2string[level]:""),
( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname):""), ( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname,PR_SET_NAME+1):""),
format); format);
g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args); g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args);
+13 -3
View File
@@ -131,8 +131,11 @@ extern "C" {
* it allows to dynamically activate or not blocks of code * it allows to dynamically activate or not blocks of code
* @brief * @brief
* @{*/ * @{*/
#define DEBUG_PRACH (1<<0) #define DEBUG_PRACH (1<<0)
#define DEBUG_RU (1<<1) #define DEBUG_RU (1<<1)
#define DEBUG_UE_PHYPROC (1<<2)
#define DEBUG_CTRLSOCKET (1<<10)
#define UE_TIMING (1<<20)
#define SET_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask | O) #define SET_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask | O)
#define CLEAR_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask & (~O)) #define CLEAR_LOG_DEBUG(O) g_log->debug_mask = (g_log->debug_mask & (~O))
@@ -340,6 +343,8 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
# define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) { # define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) {
# define LOG_M_END } # define LOG_M_END }
# define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)/* */ # define LOG_M(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)/* */
/* define variable only used in LOG macro's */
# define LOG_VAR(A,B) A B
# else /* T_TRACER: remove all debugging and tracing messages, except errors */ # else /* T_TRACER: remove all debugging and tracing messages, except errors */
# define LOG_I(c, x...) /* */ # define LOG_I(c, x...) /* */
# define LOG_W(c, x...) /* */ # define LOG_W(c, x...) /* */
@@ -353,10 +358,15 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
# define LOG_M_BEGIN(D) if (0) { # define LOG_M_BEGIN(D) if (0) {
# define LOG_M_END } # define LOG_M_END }
# define LOG_M(file, vector, data, len, dec, format) # define LOG_M(file, vector, data, len, dec, format)
# define LOG_VAR(A,B)
# endif /* T_TRACER */ # endif /* T_TRACER */
/* avoid warnings for variables only used in LOG macro's but set outside debug section */
#define LOG_USEDINLOG_VAR(A,B) __attribute__((unused)) A B
/* unfiltered macros, usefull for simulators or messages at init time, before log is configured */
#define LOG_UM(file, vector, data, len, dec, format) do { write_file_matlab(file, vector, data, len, dec, format);} while(0)
#define LOG_UI(c, x...) do {logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ; } while(0)
/* @}*/ /* @}*/
+1 -1
View File
@@ -361,7 +361,7 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
int l; int l;
int optbit; int optbit;
l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&opt); l=sscanf(logsubcmd,"%m[^'_']_%ms",&logparam,&opt);
if (l == 2 && strcmp(logparam,"print") == 0){ if (l == 2 && strcmp(logparam,"print") == 0){
optbit=map_str_to_int(log_options,opt); optbit=map_str_to_int(log_options,opt);
if (optbit < 0) { if (optbit < 0) {
+15 -14
View File
@@ -193,24 +193,25 @@ typedef struct {
static pnf_info pnf; static pnf_info pnf;
static pthread_t pnf_start_pthread; static pthread_t pnf_start_pthread;
int nfapitooai_level(int nfapi_level) {
switch(nfapi_level) {
case NFAPI_TRACE_ERROR:
return LOG_ERR;
case NFAPI_TRACE_WARN:
return LOG_WARNING;
case NFAPI_TRACE_NOTE:
return LOG_INFO;
case NFAPI_TRACE_INFO:
return LOG_DEBUG;
}
return LOG_ERR;
}
void pnf_nfapi_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) { void pnf_nfapi_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) {
va_list args; va_list args;
int oai_level;
if (nfapi_level==NFAPI_TRACE_ERROR) {
oai_level = LOG_ERR;
} else if (nfapi_level==NFAPI_TRACE_WARN) {
oai_level = LOG_WARNING;
} else if (nfapi_level==NFAPI_TRACE_NOTE) {
oai_level = LOG_INFO;
} else if (nfapi_level==NFAPI_TRACE_INFO) {
oai_level = LOG_DEBUG;
} else {
oai_level = LOG_ERR;
}
va_start(args, message); va_start(args, message);
nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args); nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args);
va_end(args); va_end(args);
} }
+1 -23
View File
@@ -684,31 +684,9 @@ void vnf_deallocate(void* ptr) {
void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) { void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) {
va_list args; va_list args;
int oai_level;
if (nfapi_level==NFAPI_TRACE_ERROR)
{
oai_level = LOG_ERR;
}
else if (nfapi_level==NFAPI_TRACE_WARN)
{
oai_level = LOG_WARNING;
}
else if (nfapi_level==NFAPI_TRACE_NOTE)
{
oai_level = LOG_INFO;
}
else if (nfapi_level==NFAPI_TRACE_INFO)
{
oai_level = LOG_INFO;
}
else
{
oai_level = LOG_INFO;
}
va_start(args, message); va_start(args, message);
nfapi_log("FILE>", "FUNC", 999, PHY, oai_level, message, args); nfapi_log("FILE>", "FUNC", 999, PHY, nfapitooai_level(nfapi_level), message, args);
va_end(args); va_end(args);
} }
+1 -1
View File
@@ -25,7 +25,7 @@ extern "C" {
// todo : move to public_inc so can be used by vendor extensions // todo : move to public_inc so can be used by vendor extensions
#define MAX_BAD_TAG 3 #define MAX_BAD_TAG 3
int nfapitooai_level(int nfapilevel);
uint8_t push8(uint8_t in, uint8_t **out, uint8_t *end); uint8_t push8(uint8_t in, uint8_t **out, uint8_t *end);
uint8_t pushs8(int8_t in, uint8_t **out, uint8_t *end); uint8_t pushs8(int8_t in, uint8_t **out, uint8_t *end);
uint8_t push16(uint16_t in, uint8_t **out, uint8_t *end); uint8_t push16(uint16_t in, uint8_t **out, uint8_t *end);
+4 -6
View File
@@ -712,12 +712,10 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
LTE_DL_FRAME_PARMS *frame_parms=&eNB->frame_parms; LTE_DL_FRAME_PARMS *frame_parms=&eNB->frame_parms;
int32_t **txdataF = eNB->common_vars.txdataF; int32_t **txdataF = eNB->common_vars.txdataF;
uint8_t harq_pid;
uint8_t Ngroup_PHICH,ngroup_PHICH,nseq_PHICH; uint8_t Ngroup_PHICH,ngroup_PHICH,nseq_PHICH;
uint8_t NSF_PHICH = 4; uint8_t NSF_PHICH = 4;
uint8_t pusch_subframe; uint8_t pusch_subframe;
uint8_t i; uint8_t i;
uint32_t pusch_frame;
int subframe = proc->subframe_tx; int subframe = proc->subframe_tx;
phich_config_t *phich; phich_config_t *phich;
@@ -732,9 +730,7 @@ void generate_phich_top(PHY_VARS_eNB *eNB,
NSF_PHICH = 2; NSF_PHICH = 2;
if (eNB->phich_vars[subframe&1].num_hi > 0) { if (eNB->phich_vars[subframe&1].num_hi > 0) {
pusch_frame = phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe);
pusch_subframe = phich_subframe2_pusch_subframe(frame_parms,subframe); pusch_subframe = phich_subframe2_pusch_subframe(frame_parms,subframe);
harq_pid = subframe2harq_pid(frame_parms,pusch_frame,pusch_subframe);
} }
for (i=0; i<eNB->phich_vars[subframe&1].num_hi; i++) { for (i=0; i<eNB->phich_vars[subframe&1].num_hi; i++) {
@@ -753,13 +749,15 @@ 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_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", 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,subframe2harq_pid(frame_parms,
phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe),proc->frame_tx,
subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH, subframe,amp,ngroup_PHICH,Ngroup_PHICH,nseq_PHICH,
phich->hi, phich->hi,
phich->first_rb); phich->first_rb);
T(T_ENB_PHY_PHICH, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(subframe), T(T_ENB_PHY_PHICH, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(subframe),
T_INT(-1 /* TODO: rnti */), T_INT(harq_pid), T_INT(-1 /* TODO: rnti */),
T_INT(subframe2harq_pid(frame_parms,phich_frame2_pusch_frame(frame_parms,proc->frame_tx,subframe),pusch_subframe)),
T_INT(Ngroup_PHICH), T_INT(NSF_PHICH), T_INT(Ngroup_PHICH), T_INT(NSF_PHICH),
T_INT(ngroup_PHICH), T_INT(nseq_PHICH), T_INT(ngroup_PHICH), T_INT(nseq_PHICH),
T_INT(phich->hi), T_INT(phich->hi),
+6 -4
View File
@@ -208,19 +208,21 @@ LOG_M_BEGIN(PRACH)
int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti); int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
int8_t dbEn0 = dB_fixed(en0); int8_t dbEn0 = dB_fixed(en0);
int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB; int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
char buffer[80];
if (dbEn0>32 && prach[0]!= NULL) if (dbEn0>32 && prach[0]!= NULL)
{ {
static int counter=0; static int counter=0;
char buffer[80];
//counter++;
sprintf(buffer, "%s%d", "/tmp/prach_rx",counter); sprintf(buffer, "%s%d", "/tmp/prach_rx",counter);
LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13); LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13);
} }
if (dB_fixed(en0)>32) if (dB_fixed(en0)>32)
{ {
sprintf(buffer, "rach_dBm:%d",rach_dBm);
if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1); if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1);
LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d rach_dBm:%d rxdata:%p index:%d\n",ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti,prach[aa],dbEn0,ru->N_TA_offset,rach_dBm,ru->common.rxdata[aa], (subframe*fp->samples_per_tti)-ru->N_TA_offset); LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n",
ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti,
prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa],
(subframe*fp->samples_per_tti)-ru->N_TA_offset);
} }
LOG_M_END LOG_M_END
} }
+15 -15
View File
@@ -1350,70 +1350,70 @@ void rx_ulsch_emul(PHY_VARS_eNB *eNB,
eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch); eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch);
sprintf(fname,"/tmp/ulsch_r%d_d",round); sprintf(fname,"/tmp/ulsch_r%d_d",round);
sprintf(vname,"/tmp/ulsch_r%d_dseq",round); sprintf(vname,"/tmp/ulsch_r%d_dseq",round);
LOG_M(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96], LOG_UM(fname,vname,&eNB->ulsch[UE_id]->harq_processes[harq_pid]->d[0][96],
eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus*3,1,0); eNB->ulsch[UE_id]->harq_processes[harq_pid]->Kplus*3,1,0);
if (eNB->common_vars.rxdata) { if (eNB->common_vars.rxdata) {
sprintf(fname,"/tmp/rxsig0_r%d.m",round); sprintf(fname,"/tmp/rxsig0_r%d.m",round);
sprintf(vname,"rxs0_r%d",round); sprintf(vname,"rxs0_r%d",round);
LOG_M(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1); LOG_UM(fname,vname, &eNB->common_vars.rxdata[0][0],eNB->frame_parms.samples_per_tti*10,1,1);
if (eNB->frame_parms.nb_antennas_rx>1) if (eNB->frame_parms.nb_antennas_rx>1)
if (eNB->common_vars.rxdata) { if (eNB->common_vars.rxdata) {
sprintf(fname,"/tmp/rxsig1_r%d.m",round); sprintf(fname,"/tmp/rxsig1_r%d.m",round);
sprintf(vname,"rxs1_r%d",round); sprintf(vname,"rxs1_r%d",round);
LOG_M(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1); LOG_UM(fname,vname, &eNB->common_vars.rxdata[1][0],eNB->frame_parms.samples_per_tti*10,1,1);
} }
} }
sprintf(fname,"/tmp/rxsigF0_r%d.m",round); sprintf(fname,"/tmp/rxsigF0_r%d.m",round);
sprintf(vname,"rxsF0_r%d",round); sprintf(vname,"rxsF0_r%d",round);
LOG_M(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); LOG_UM(fname,vname, (void*)&eNB->common_vars.rxdataF[0][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
if (eNB->frame_parms.nb_antennas_rx>1) { if (eNB->frame_parms.nb_antennas_rx>1) {
sprintf(fname,"/tmp/rxsigF1_r%d.m",round); sprintf(fname,"/tmp/rxsigF1_r%d.m",round);
sprintf(vname,"rxsF1_r%d",round); sprintf(vname,"rxsF1_r%d",round);
LOG_M(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1); LOG_UM(vname,fname, &eNB->common_vars.rxdataF[1][0],eNB->frame_parms.ofdm_symbol_size*nsymb,1,1);
} }
sprintf(fname,"/tmp/rxsigF0_ext_r%d.m",round); sprintf(fname,"/tmp/rxsigF0_ext_r%d.m",round);
sprintf(vname,"rxsF0_ext_r%d",round); sprintf(vname,"rxsF0_ext_r%d",round);
LOG_M(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname, &eNB->pusch_vars[UE_id]->rxdataF_ext[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
if (eNB->frame_parms.nb_antennas_rx>1) { if (eNB->frame_parms.nb_antennas_rx>1) {
sprintf(fname,"/tmp/rxsigF1_ext_r%d.m",round); sprintf(fname,"/tmp/rxsigF1_ext_r%d.m",round);
sprintf(vname,"rxsF1_ext_r%d",round); sprintf(vname,"rxsF1_ext_r%d",round);
LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_ext[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
} }
/* /*
if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_M("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est0.m","srsest0",eNB->srs_vars[UE_id].srs_ch_estimates[0],eNB->frame_parms.ofdm_symbol_size,1,1);
if (eNB->frame_parms.nb_antennas_rx>1) if (eNB->frame_parms.nb_antennas_rx>1)
if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_M("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1); if (eNB->srs_vars[UE_id].srs_ch_estimates) LOG_UM("/tmp/srs_est1.m","srsest1",eNB->srs_vars[UE_id].srs_ch_estimates[1],eNB->frame_parms.ofdm_symbol_size,1,1);
*/ */
sprintf(fname,"/tmp/drs_est0_r%d.m",round); sprintf(fname,"/tmp/drs_est0_r%d.m",round);
sprintf(vname,"drsest0_r%d",round); sprintf(vname,"drsest0_r%d",round);
LOG_M(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
if (eNB->frame_parms.nb_antennas_rx>1) { if (eNB->frame_parms.nb_antennas_rx>1) {
sprintf(fname,"/tmp/drs_est1_r%d.m",round); sprintf(fname,"/tmp/drs_est1_r%d.m",round);
sprintf(vname,"drsest1_r%d",round); sprintf(vname,"drsest1_r%d",round);
LOG_M(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->drs_ch_estimates[1],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
} }
sprintf(fname,"/tmp/ulsch0_rxF_comp0_r%d.m",round); sprintf(fname,"/tmp/ulsch0_rxF_comp0_r%d.m",round);
sprintf(vname,"ulsch0_rxF_comp0_r%d",round); sprintf(vname,"ulsch0_rxF_comp0_r%d",round);
LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->rxdataF_comp[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
// LOG_M("ulsch_rxF_comp1.m","ulsch0_rxF_comp1",&eNB->pusch_vars[UE_id]->rxdataF_comp[0][1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); // LOG_M("ulsch_rxF_comp1.m","ulsch0_rxF_comp1",&eNB->pusch_vars[UE_id]->rxdataF_comp[0][1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
sprintf(fname,"/tmp/ulsch_rxF_llr_r%d.m",round); sprintf(fname,"/tmp/ulsch_rxF_llr_r%d.m",round);
sprintf(vname,"ulsch_llr_r%d",round); sprintf(vname,"ulsch_llr_r%d",round);
LOG_M(fname,vname,eNB->pusch_vars[UE_id]->llr, LOG_UM(fname,vname,eNB->pusch_vars[UE_id]->llr,
eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*eNB->ulsch[UE_id]->harq_processes[harq_pid]->Qm eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*eNB->ulsch[UE_id]->harq_processes[harq_pid]->Qm
*eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch,1,0); *eNB->ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch,1,0);
sprintf(fname,"/tmp/ulsch_ch_mag_r%d.m",round); sprintf(fname,"/tmp/ulsch_ch_mag_r%d.m",round);
sprintf(vname,"ulsch_ch_mag_r%d",round); sprintf(vname,"ulsch_ch_mag_r%d",round);
LOG_M(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); LOG_UM(fname,vname,&eNB->pusch_vars[UE_id]->ul_ch_mag[0][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
// LOG_M("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1); // LOG_UM("ulsch_ch_mag1.m","ulsch_ch_mag1",&eNB->pusch_vars[UE_id]->ul_ch_mag[1][0],eNB->frame_parms.N_RB_UL*12*nsymb,1,1);
//#endif //#endif
} }
@@ -3950,15 +3950,11 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
short ii; short ii;
int aatx,aarx; int aatx,aarx;
int length_mod4;
int length2; int length2;
int max = 0, min=0; int max = 0, min=0;
int norm_pack; int norm_pack;
__m128i *dl_ch128, norm128D; __m128i *dl_ch128, norm128D;
int16_t x = factor2(length);
int16_t y = (length)>>x;
for (aatx=0; aatx<n_tx; aatx++){ for (aatx=0; aatx<n_tx; aatx++){
for (aarx=0; aarx<n_rx; aarx++) { for (aarx=0; aarx<n_rx; aarx++) {
max = 0; max = 0;
@@ -3967,8 +3963,6 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][start_point]; dl_ch128=(__m128i *)&dl_ch_estimates_ext[aatx*2 + aarx][start_point];
length_mod4=length&3;
length2 = length>>2; length2 = length>>2;
for (ii=0;ii<length2;ii++) { for (ii=0;ii<length2;ii++) {
@@ -3981,7 +3975,7 @@ void dlsch_channel_level_median(int **dl_ch_estimates_ext,
((int32_t*)&norm128D)[3]; ((int32_t*)&norm128D)[3];
if (ii<1){ if (ii<1){
print_ints("norm128D",&norm128D[0]); // print_ints("norm128D",&norm128D[0]);
printf("norm_pack[%d] %d\n", aatx*n_rx + aarx, norm_pack); printf("norm_pack[%d] %d\n", aatx*n_rx + aarx, norm_pack);
} }
@@ -6921,79 +6915,90 @@ unsigned short dlsch_extract_rbs_TM7(int **rxdataF,
void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid) void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid)
{ {
unsigned int nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12; #define NSYMB ((ue->frame_parms.Ncp == 0) ? 14 : 12)
char fname[32],vname[32]; char fname[32],vname[32];
int N_RB_DL=ue->frame_parms.N_RB_DL;
sprintf(fname,"dlsch%d_rxF_r%d_ext0.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_ext0.m",eNB_id,round);
sprintf(vname,"dl%d_rxF_r%d_ext0",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_ext0",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
if (ue->frame_parms.nb_antennas_rx >1) { if (ue->frame_parms.nb_antennas_rx >1) {
sprintf(fname,"dlsch%d_rxF_r%d_ext1.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_ext1.m",eNB_id,round);
sprintf(vname,"dl%d_rxF_r%d_ext1",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_ext1",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
} }
sprintf(fname,"dlsch%d_ch_r%d_ext00.m",eNB_id,round); sprintf(fname,"dlsch%d_ch_r%d_ext00.m",eNB_id,round);
sprintf(vname,"dl%d_ch_r%d_ext00",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext00",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
if (ue->transmission_mode[eNB_id]==7){ if (ue->transmission_mode[eNB_id]==7){
sprintf(fname,"dlsch%d_bf_ch_r%d.m",eNB_id,round); sprintf(fname,"dlsch%d_bf_ch_r%d.m",eNB_id,round);
sprintf(vname,"dl%d_bf_ch_r%d",eNB_id,round); sprintf(vname,"dl%d_bf_ch_r%d",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*NSYMB,1,1);
//LOG_M(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1); //LOG_M(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1);
sprintf(fname,"dlsch%d_bf_ch_r%d_ext00.m",eNB_id,round); sprintf(fname,"dlsch%d_bf_ch_r%d_ext00.m",eNB_id,round);
sprintf(vname,"dl%d_bf_ch_r%d_ext00",eNB_id,round); sprintf(vname,"dl%d_bf_ch_r%d_ext00",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
} }
if (ue->frame_parms.nb_antennas_rx == 2) { if (ue->frame_parms.nb_antennas_rx == 2) {
sprintf(fname,"dlsch%d_ch_r%d_ext01.m",eNB_id,round); sprintf(fname,"dlsch%d_ch_r%d_ext01.m",eNB_id,round);
sprintf(vname,"dl%d_ch_r%d_ext01",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext01",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
} }
if (ue->frame_parms.nb_antenna_ports_eNB == 2) { if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
sprintf(fname,"dlsch%d_ch_r%d_ext10.m",eNB_id,round); sprintf(fname,"dlsch%d_ch_r%d_ext10.m",eNB_id,round);
sprintf(vname,"dl%d_ch_r%d_ext10",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext10",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
if (ue->frame_parms.nb_antennas_rx == 2) { if (ue->frame_parms.nb_antennas_rx == 2) {
sprintf(fname,"dlsch%d_ch_r%d_ext11.m",eNB_id,round); sprintf(fname,"dlsch%d_ch_r%d_ext11.m",eNB_id,round);
sprintf(vname,"dl%d_ch_r%d_ext11",eNB_id,round); sprintf(vname,"dl%d_ch_r%d_ext11",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
} }
} }
sprintf(fname,"dlsch%d_rxF_r%d_uespec0.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_uespec0.m",eNB_id,round);
sprintf(vname,"dl%d_rxF_r%d_uespec0",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_uespec0",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],12*N_RB_DL,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
/* /*
LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1); LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB,1,1);
LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1); LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB,1,1);
LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1); LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB,1,1);
*/ */
sprintf(fname,"dlsch%d_r%d_rho.m",eNB_id,round); sprintf(fname,"dlsch%d_r%d_rho.m",eNB_id,round);
sprintf(vname,"dl_rho_r%d_%d",eNB_id,round); sprintf(vname,"dl_rho_r%d_%d",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
sprintf(fname,"dlsch%d_r%d_rho2.m",eNB_id,round); sprintf(fname,"dlsch%d_r%d_rho2.m",eNB_id,round);
sprintf(vname,"dl_rho2_r%d_%d",eNB_id,round); sprintf(vname,"dl_rho2_r%d_%d",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
sprintf(fname,"dlsch%d_rxF_r%d_comp0.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_comp0.m",eNB_id,round);
sprintf(vname,"dl%d_rxF_r%d_comp0",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_comp0",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
if (ue->frame_parms.nb_antenna_ports_eNB == 2) { if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
sprintf(fname,"dlsch%d_rxF_r%d_comp1.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_comp1.m",eNB_id,round);
sprintf(vname,"dl%d_rxF_r%d_comp1",eNB_id,round); sprintf(vname,"dl%d_rxF_r%d_comp1",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
} }
sprintf(fname,"dlsch%d_rxF_r%d_llr.m",eNB_id,round); sprintf(fname,"dlsch%d_rxF_r%d_llr.m",eNB_id,round);
@@ -7001,52 +7006,13 @@ void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *c
LOG_M(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0); LOG_M(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0);
sprintf(fname,"dlsch%d_r%d_mag1.m",eNB_id,round); sprintf(fname,"dlsch%d_r%d_mag1.m",eNB_id,round);
sprintf(vname,"dl%d_r%d_mag1",eNB_id,round); sprintf(vname,"dl%d_r%d_mag1",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
sprintf(fname,"dlsch%d_r%d_mag2.m",eNB_id,round); sprintf(fname,"dlsch%d_r%d_mag2.m",eNB_id,round);
sprintf(vname,"dl%d_r%d_mag2",eNB_id,round); sprintf(vname,"dl%d_r%d_mag2",eNB_id,round);
LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb,1,1); LOG_M(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],
12*(ue->frame_parms.N_RB_DL)*NSYMB,1,1);
// printf("log2_maxh = %d\n",ue->pdsch_vars[eNB_id]->log2_maxh);
}
#ifdef DEBUG_DLSCH_DEMOD
/*
void print_bytes(char *s,__m128i *x)
{
char *tempb = (char *)x;
printf("%s : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,
tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7],
tempb[8],tempb[9],tempb[10],tempb[11],tempb[12],tempb[13],tempb[14],tempb[15]
);
} }
void print_shorts(char *s,__m128i *x)
{
short *tempb = (short *)x;
printf("%s : %d,%d,%d,%d,%d,%d,%d,%d\n",s,
tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7]);
}
void print_shorts2(char *s,__m64 *x)
{
short *tempb = (short *)x;
printf("%s : %d,%d,%d,%d\n",s,
tempb[0],tempb[1],tempb[2],tempb[3]);
}
void print_ints(char *s,__m128i *x)
{
int *tempb = (int *)x;
printf("%s : %d,%d,%d,%d\n",s,
tempb[0],tempb[1],tempb[2],tempb[3]);
}*/
#endif
+10 -12
View File
@@ -43,34 +43,32 @@
void dump_mch(PHY_VARS_UE *ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int subframe) void dump_mch(PHY_VARS_UE *ue,uint8_t eNB_id,uint16_t coded_bits_per_codeword,int subframe)
{ {
unsigned int nsymb_pmch=12;
char fname[32],vname[32]; char fname[32],vname[32];
int N_RB_DL=ue->frame_parms.N_RB_DL; #define NSYMB_PMCH 12
sprintf(fname,"mch_rxF_ext0.m"); sprintf(fname,"mch_rxF_ext0.m");
sprintf(vname,"pmch_rxF_ext0"); sprintf(vname,"pmch_rxF_ext0");
LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_ext[0],12*(ue->frame_parms.N_RB_DL)*12,1,1);
sprintf(fname,"mch_ch_ext00.m"); sprintf(fname,"mch_ch_ext00.m");
sprintf(vname,"pmch_ch_ext00"); sprintf(vname,"pmch_ch_ext00");
LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_estimates_ext[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
/* /*
LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb_pmch,1,1); LOG_M("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*NSYMB_PMCH,1,1);
LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb_pmch,1,1); LOG_M("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*NSYMB_PMCH,1,1);
LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb_pmch,1,1); LOG_M("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*NSYMB_PMCH,1,1);
LOG_M("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M("dlsch%d_rho.m","dl_rho",pdsch_vars[eNB_id]->rho[0],12*N_RB_DL*NSYMB_PMCH,1,1);
*/ */
sprintf(fname,"mch_rxF_comp0.m"); sprintf(fname,"mch_rxF_comp0.m");
sprintf(vname,"pmch_rxF_comp0"); sprintf(vname,"pmch_rxF_comp0");
LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->rxdataF_comp0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
sprintf(fname,"mch_rxF_llr.m"); sprintf(fname,"mch_rxF_llr.m");
sprintf(vname,"pmch_llr"); sprintf(vname,"pmch_llr");
LOG_M(fname,vname, ue->pdsch_vars_MCH[eNB_id]->llr[0],coded_bits_per_codeword,1,0); LOG_M(fname,vname, ue->pdsch_vars_MCH[eNB_id]->llr[0],coded_bits_per_codeword,1,0);
sprintf(fname,"mch_mag1.m"); sprintf(fname,"mch_mag1.m");
sprintf(vname,"pmch_mag1"); sprintf(vname,"pmch_mag1");
LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_mag0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
sprintf(fname,"mch_mag2.m"); sprintf(fname,"mch_mag2.m");
sprintf(vname,"pmch_mag2"); sprintf(vname,"pmch_mag2");
LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb_pmch,1,1); LOG_M(fname,vname,ue->pdsch_vars_MCH[eNB_id]->dl_ch_magb0[0],12*(ue->frame_parms.N_RB_DL)*NSYMB_PMCH,1,1);
LOG_M("mch00_ch0.m","pmch00_ch0", LOG_M("mch00_ch0.m","pmch00_ch0",
&(ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]), &(ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0]),
@@ -134,7 +134,6 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms,
//uint32_t subframe_offset; //uint32_t subframe_offset;
uint8_t Bsrs = soundingrs_ul_config_dedicated->srs_Bandwidth; uint8_t Bsrs = soundingrs_ul_config_dedicated->srs_Bandwidth;
uint8_t Csrs = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig; uint8_t Csrs = frame_parms->soundingrs_ul_config_common.srs_BandwidthConfig;
uint8_t Ssrs = frame_parms->soundingrs_ul_config_common.srs_SubframeConfig;
uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition; uint8_t n_RRC = soundingrs_ul_config_dedicated->freqDomainPosition;
uint8_t kTC = soundingrs_ul_config_dedicated->transmissionComb; uint8_t kTC = soundingrs_ul_config_dedicated->transmissionComb;
@@ -144,7 +143,9 @@ int32_t generate_srs(LTE_DL_FRAME_PARMS *frame_parms,
uint32_t v=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[1+(subframe<<1)]; uint32_t v=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[1+(subframe<<1)];
LOG_D(PHY,"SRS root sequence: u %d, v %d\n",u,v); LOG_D(PHY,"SRS root sequence: u %d, v %d\n",u,v);
LOG_D(PHY,"CommonSrsConfig: Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs,Ssrs,frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission); LOG_D(PHY,"CommonSrsConfig: Csrs %d, Ssrs %d, AnSrsSimultan %d \n",Csrs,
frame_parms->soundingrs_ul_config_common.srs_SubframeConfig,
frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission);
LOG_D(PHY,"DedicatedSrsConfig: Bsrs %d, bhop %d, nRRC %d, Isrs %d, kTC %d, n_SRS %d\n",Bsrs,soundingrs_ul_config_dedicated->srs_HoppingBandwidth,n_RRC LOG_D(PHY,"DedicatedSrsConfig: Bsrs %d, bhop %d, nRRC %d, Isrs %d, kTC %d, n_SRS %d\n",Bsrs,soundingrs_ul_config_dedicated->srs_HoppingBandwidth,n_RRC
,soundingrs_ul_config_dedicated->srs_ConfigIndex,kTC ,soundingrs_ul_config_dedicated->srs_ConfigIndex,kTC
,soundingrs_ul_config_dedicated->cyclicShift); ,soundingrs_ul_config_dedicated->cyclicShift);
+3 -6
View File
@@ -124,14 +124,11 @@ void prach_procedures(PHY_VARS_eNB *eNB
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
if (br_flag==1) { if (br_flag==1) {
int prach_mask;
prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br);
eNB->UL_INFO.rach_ind_br.rach_indication_body.preamble_list = eNB->preamble_list_br; eNB->UL_INFO.rach_ind_br.rach_indication_body.preamble_list = eNB->preamble_list_br;
int ind=0; int ind=0;
int ce_level=0; int ce_level=0;
/* Save for later, it doesn't work /* Save for later, it doesn't work
int prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br);
for (int ind=0,ce_level=0;ce_level<4;ce_level++) { for (int ind=0,ce_level=0;ce_level<4;ce_level++) {
if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&& if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&&
@@ -153,7 +150,7 @@ void prach_procedures(PHY_VARS_eNB *eNB
LOG_D(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", LOG_D(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n",
ind, ind,
ce_level, ce_level,
prach_mask, is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br),
eNB->preamble_list_br[ind].preamble_rel8.timing_advance, eNB->preamble_list_br[ind].preamble_rel8.timing_advance,
eNB->preamble_list_br[ind].preamble_rel8.preamble, eNB->preamble_list_br[ind].preamble_rel8.preamble,
eNB->preamble_list_br[ind].preamble_rel8.rnti, eNB->preamble_list_br[ind].preamble_rel8.rnti,
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1144,7 +1144,7 @@ int main(int argc, char **argv)
else if (mcs < 21) modulation_type = 4; else if (mcs < 21) modulation_type = 4;
else if (mcs < 29) modulation_type = 6; else if (mcs < 29) modulation_type = 6;
else { else {
LOG_E(USIM,"mcs %i is not valid\n",mcs); LOG_E(SIM,"mcs %i is not valid\n",mcs);
exit(-1); exit(-1);
} }
@@ -1492,23 +1492,23 @@ int main(int argc, char **argv)
if (dump_table == 1 ) { if (dump_table == 1 ) {
int n; int n;
set_component_filelog(USIM); // file located in /tmp/usim.txt set_component_filelog(SIM); // file located in /tmp/usim.txt
LOG_F(USIM,"The transmitter raw data: \n"); LOG_F(SIM,"The transmitter raw data: \n");
for (n=0; n< time_vector_tx.size; n++) { for (n=0; n< time_vector_tx.size; n++) {
// printf("%f ", table_tx[n]); // printf("%f ", table_tx[n]);
LOG_F(USIM,"%f ", table_tx[n]); LOG_F(SIM,"%f ", table_tx[n]);
} }
LOG_F(USIM,"\n"); LOG_F(SIM,"\n");
LOG_F(USIM,"The receiver raw data: \n"); LOG_F(SIM,"The receiver raw data: \n");
for (n=0; n< time_vector_rx.size; n++) { for (n=0; n< time_vector_rx.size; n++) {
// printf("%f ", table_rx[n]); // printf("%f ", table_rx[n]);
LOG_F(USIM,"%f ", table_rx[n]); LOG_F(SIM,"%f ", table_rx[n]);
} }
LOG_F(USIM,"\n"); LOG_F(SIM,"\n");
} }
double tx_median = table_tx[time_vector_tx.size/2]; double tx_median = table_tx[time_vector_tx.size/2];
+1 -6
View File
@@ -35,8 +35,7 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log_if.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/log_extern.h"
#include "RRC/LTE/rrc_extern.h" #include "RRC/LTE/rrc_extern.h"
#include "PHY_INTERFACE/phy_interface_extern.h" #include "PHY_INTERFACE/phy_interface_extern.h"
#include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG.h"
@@ -45,10 +44,6 @@
#include "UTIL/FIFO/types.h" #include "UTIL/FIFO/types.h"
#define RF #define RF
//#define DEBUG_SIM
//#undef LOG_D
//#define LOG_D(A,B,C...) printf(B,C)
@@ -49,7 +49,7 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch
Protocol__FlexHeader *header = NULL; Protocol__FlexHeader *header = NULL;
void *data; void *data;
int priority = 0; int priority = 0;
err_code_t err_code; err_code_t err_code=0;
int xid = 0; int xid = 0;
@@ -241,7 +241,8 @@ void flexran_agent_ue_state_change(mid_t mod_id, uint32_t rnti, uint8_t state_ch
LOG_D(FLEXRAN_AGENT,"sent message with size %d\n", size); LOG_D(FLEXRAN_AGENT,"sent message with size %d\n", size);
return; return;
error: error:
LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code); if (err_code != 0)
LOG_E(FLEXRAN_AGENT, "Could not send UE state message becasue of %d \n",err_code);
} }
+7 -14
View File
@@ -113,8 +113,6 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//,
for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) { for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) {
{ {
s1ap_register_enb_req_t *s1ap_register_eNB;
/* note: there is an implicit relationship between the data structure and the message name */ /* note: there is an implicit relationship between the data structure and the message name */
msg_p = itti_alloc_new_message (TASK_ENB_APP, S1AP_REGISTER_ENB_REQ); msg_p = itti_alloc_new_message (TASK_ENB_APP, S1AP_REGISTER_ENB_REQ);
@@ -122,8 +120,7 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//,
if (enb_id == 0) RCconfig_gtpu(); if (enb_id == 0) RCconfig_gtpu();
s1ap_register_eNB = &S1AP_REGISTER_ENB_REQ(msg_p); LOG_I(ENB_APP,"default drx %d\n",((S1AP_REGISTER_ENB_REQ(msg_p)).default_drx));
LOG_I(ENB_APP,"default drx %d\n",s1ap_register_eNB->default_drx);
LOG_I(ENB_APP,"[eNB %d] eNB_app_register for instance %d\n", enb_id, ENB_MODULE_ID_TO_INSTANCE(enb_id)); LOG_I(ENB_APP,"[eNB %d] eNB_app_register for instance %d\n", enb_id, ENB_MODULE_ID_TO_INSTANCE(enb_id));
@@ -152,7 +149,6 @@ void *eNB_app_task(void *args_p)
# endif # endif
uint32_t enb_id; uint32_t enb_id;
MessageDef *msg_p = NULL; MessageDef *msg_p = NULL;
const char *msg_name = NULL;
instance_t instance; instance_t instance;
int result; int result;
/* for no gcc warnings */ /* for no gcc warnings */
@@ -200,7 +196,6 @@ void *eNB_app_task(void *args_p)
// Wait for a message // Wait for a message
itti_receive_msg (TASK_ENB_APP, &msg_p); itti_receive_msg (TASK_ENB_APP, &msg_p);
msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
@@ -216,7 +211,7 @@ void *eNB_app_task(void *args_p)
# if defined(ENABLE_USE_MME) # if defined(ENABLE_USE_MME)
case S1AP_REGISTER_ENB_CNF: case S1AP_REGISTER_ENB_CNF:
LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name, LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
S1AP_REGISTER_ENB_CNF(msg_p).nb_mme); S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
DevAssert(register_enb_pending > 0); DevAssert(register_enb_pending > 0);
@@ -237,10 +232,8 @@ void *eNB_app_task(void *args_p)
itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p); itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
} else { } else {
uint32_t not_associated = enb_nb - registered_enb; LOG_W(ENB_APP, " %d eNB not associated with a MME, retrying registration in %d seconds ...\n",
enb_nb - registered_enb, ENB_REGISTER_RETRY_DELAY);
LOG_W(ENB_APP, " %d eNB %s not associated with a MME, retrying registration in %d seconds ...\n",
not_associated, not_associated > 1 ? "are" : "is", ENB_REGISTER_RETRY_DELAY);
/* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */ /* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT, if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
@@ -258,14 +251,14 @@ void *eNB_app_task(void *args_p)
break; break;
case S1AP_DEREGISTERED_ENB_IND: case S1AP_DEREGISTERED_ENB_IND:
LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name, LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, ITTI_MSG_NAME (msg_p),
S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme); S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
/* TODO handle recovering of registration */ /* TODO handle recovering of registration */
break; break;
case TIMER_HAS_EXPIRED: case TIMER_HAS_EXPIRED:
LOG_I(ENB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id); LOG_I(ENB_APP, " Received %s: timer_id %ld\n", ITTI_MSG_NAME (msg_p), TIMER_HAS_EXPIRED(msg_p).timer_id);
if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) { if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) {
/* Restart the registration process */ /* Restart the registration process */
@@ -277,7 +270,7 @@ void *eNB_app_task(void *args_p)
# endif # endif
default: default:
LOG_E(ENB_APP, "Received unexpected message %s\n", msg_name); LOG_E(ENB_APP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
break; break;
} }
+1 -9
View File
@@ -409,7 +409,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
int num_enbs = 0; int num_enbs = 0;
int num_component_carriers = 0;
int j,k = 0; int j,k = 0;
int32_t enb_id = 0; int32_t enb_id = 0;
int nb_cc = 0; int nb_cc = 0;
@@ -703,17 +702,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k),
config_getlist( &CCsParamList,NULL,0,enbpath); config_getlist( &CCsParamList,NULL,0,enbpath);
LOG_I(RRC,"num component carriers %d \n", num_component_carriers); LOG_I(RRC,"num component carriers %d \n",CCsParamList.numelt);
if ( CCsParamList.numelt> 0) { if ( CCsParamList.numelt> 0) {
char ccspath[MAX_OPTNAME_SIZE*2 + 16]; char ccspath[MAX_OPTNAME_SIZE*2 + 16];
//enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers;
for (j = 0; j < CCsParamList.numelt ;j++) { for (j = 0; j < CCsParamList.numelt ;j++) {
sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j); sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j);
+8 -8
View File
@@ -47,11 +47,10 @@ void *flexran_agent_task(void *args){
Protocol__FlexranMessage *msg; Protocol__FlexranMessage *msg;
void *data; void *data;
int size; int size;
err_code_t err_code; err_code_t err_code=0;
int priority = 0; int priority = 0;
MessageDef *msg_p = NULL; MessageDef *msg_p = NULL;
const char *msg_name = NULL;
int result; int result;
struct flexran_agent_timer_element_s * elem = NULL; struct flexran_agent_timer_element_s * elem = NULL;
@@ -61,7 +60,6 @@ void *flexran_agent_task(void *args){
// Wait for a message // Wait for a message
itti_receive_msg (TASK_FLEXRAN_AGENT, &msg_p); itti_receive_msg (TASK_FLEXRAN_AGENT, &msg_p);
DevAssert(msg_p != NULL); DevAssert(msg_p != NULL);
msg_name = ITTI_MSG_NAME (msg_p);
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case TERMINATE_MESSAGE: case TERMINATE_MESSAGE:
@@ -88,7 +86,7 @@ void *flexran_agent_task(void *args){
break; break;
default: default:
LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", msg_name); LOG_E(FLEXRAN_AGENT, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
break; break;
} }
@@ -96,7 +94,8 @@ void *flexran_agent_task(void *args){
AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result);
continue; continue;
error: error:
LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code); if (err_code != 0)
LOG_E(FLEXRAN_AGENT,"flexran_agent_task: error %d occured\n",err_code);
} while (1); } while (1);
return NULL; return NULL;
@@ -108,7 +107,7 @@ void *receive_thread(void *args) {
void *data; void *data;
int size; int size;
int priority; int priority;
err_code_t err_code; err_code_t err_code=0;
Protocol__FlexranMessage *msg; Protocol__FlexranMessage *msg;
@@ -140,7 +139,8 @@ void *receive_thread(void *args) {
return NULL; return NULL;
error: error:
LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code); if (err_code != 0)
LOG_E(FLEXRAN_AGENT,"receive_thread: error %d occured\n",err_code);
return NULL; return NULL;
} }
@@ -299,7 +299,7 @@ Protocol__FlexranMessage *flexran_agent_timeout(void* args){
//memcpy (timer_args, args, sizeof(*timer_args)); //memcpy (timer_args, args, sizeof(*timer_args));
flexran_agent_timer_args_t *timer_args = (flexran_agent_timer_args_t *) args; flexran_agent_timer_args_t *timer_args = (flexran_agent_timer_args_t *) args;
LOG_I(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id); LOG_UI(FLEXRAN_AGENT, "flexran_agent %d timeout\n", timer_args->mod_id);
//LOG_I(FLEXRAN_AGENT, "eNB action %d ENB flags %d \n", timer_args->cc_actions,timer_args->cc_report_flags); //LOG_I(FLEXRAN_AGENT, "eNB action %d ENB flags %d \n", timer_args->cc_actions,timer_args->cc_report_flags);
//LOG_I(FLEXRAN_AGENT, "UE action %d UE flags %d \n", timer_args->ue_actions,timer_args->ue_report_flags); //LOG_I(FLEXRAN_AGENT, "UE action %d UE flags %d \n", timer_args->ue_actions,timer_args->ue_report_flags);
+2 -5
View File
@@ -130,16 +130,15 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg,
int * size){ int * size){
void * buffer; void * buffer;
err_code_t err_code = PROTOCOL__FLEXRAN_ERR__NO_ERR;
if (flexran_agent_serialize_message(msg, &buffer, size) < 0 ) { if (flexran_agent_serialize_message(msg, &buffer, size) < 0 ) {
err_code = PROTOCOL__FLEXRAN_ERR__MSG_ENCODING; LOG_E(FLEXRAN_AGENT,"errno %d occured\n",PROTOCOL__FLEXRAN_ERR__MSG_ENCODING);
goto error; goto error;
} }
// free the msg --> later keep this in the data struct and just update the values // free the msg --> later keep this in the data struct and just update the values
//TODO call proper destroy function //TODO call proper destroy function
err_code = ((*message_destruction_callback[msg->msg_case-1])(msg)); ((*message_destruction_callback[msg->msg_case-1])(msg));
DevAssert(buffer !=NULL); DevAssert(buffer !=NULL);
@@ -148,8 +147,6 @@ void * flexran_agent_pack_message(Protocol__FlexranMessage *msg,
return buffer; return buffer;
error : error :
LOG_E(FLEXRAN_AGENT,"errno %d occured\n",err_code);
return NULL; return NULL;
} }
+2 -4
View File
@@ -2264,7 +2264,6 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
uint32_t tbs; uint32_t tbs;
int16_t tx_power; int16_t tx_power;
int UE_id; int UE_id;
rnti_t rnti;
COMMON_channels_t *cc; COMMON_channels_t *cc;
LOG_D(MAC,"In ulsch_preprocessor: ulsch ue select\n"); LOG_D(MAC,"In ulsch_preprocessor: ulsch ue select\n");
//ue select //ue select
@@ -2308,11 +2307,10 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
continue; continue;
} }
rnti = UE_RNTI(CC_id,UE_id);
if (first_rb[CC_id] >= frame_parms->N_RB_UL-num_pucch_rb ) { if (first_rb[CC_id] >= frame_parms->N_RB_UL-num_pucch_rb ) {
LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n", LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: dropping, not enough RBs\n",
module_idP,frameP,subframeP,UE_id,rnti,CC_id); module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id);
break; break;
} }
total_rbs = frame_parms->N_RB_UL-num_pucch_rb-first_rb[CC_id]; total_rbs = frame_parms->N_RB_UL-num_pucch_rb-first_rb[CC_id];
@@ -2390,7 +2388,7 @@ void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
rb_table_index = find_rb_table_index(average_rbs); rb_table_index = find_rb_table_index(average_rbs);
if (rb_table_index>=34){ if (rb_table_index>=34){
LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: average RBs %d > 100\n", LOG_W(MAC,"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: average RBs %d > 100\n",
module_idP,frameP,subframeP,UE_id,rnti,CC_id,average_rbs); module_idP,frameP,subframeP,UE_id,UE_RNTI(CC_id,UE_id),CC_id,average_rbs);
break; break;
} }
first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index]; first_rb[CC_id] = first_rb[CC_id] + rb_table[rb_table_index];
@@ -3399,7 +3399,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
} else if (subframe == 8) { // ACK subframe 4 } else if (subframe == 8) { // ACK subframe 4
return(1); // To be updated return(1); // To be updated
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3413,7 +3413,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
} else if (subframe == 4) { // ACK subframes 9 and 0 } else if (subframe == 4) { // ACK subframes 9 and 0
return(2); return(2);
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3425,7 +3425,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
} else if (subframe == 3) { // ACK subframes 6,7,8 and 9 } else if (subframe == 3) { // ACK subframes 6,7,8 and 9
return(4); return(4);
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3435,7 +3435,7 @@ unsigned char ul_ACK_subframe2M(TDD_Config_t *tdd_Config,unsigned char subframe)
if (subframe == 2) { // ACK subframes 0,3,4,5,6,7,8 and 9 if (subframe == 2) { // ACK subframes 0,3,4,5,6,7,8 and 9
return(8); // should be 3 return(8); // should be 3
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3464,7 +3464,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
} else if (subframe == 4) { // ACK subframes 9 and 0 } else if (subframe == 4) { // ACK subframes 9 and 0
return((9+ACK_index)%10); return((9+ACK_index)%10);
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config->subframeAssignment %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config->subframeAssignment %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3481,7 +3481,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
} else if (subframe == 3) { // ACK subframes 6, 7 8 and 9 } else if (subframe == 3) { // ACK subframes 6, 7 8 and 9
return(6+ACK_index); // To be updated return(6+ACK_index); // To be updated
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
@@ -3497,7 +3497,7 @@ unsigned char ul_ACK_subframe2dl_subframe(TDD_Config_t *tdd_Config,unsigned char
} else if (subframe == 8) { // ACK subframe 4 } else if (subframe == 8) { // ACK subframe 4
return(4); // To be updated return(4); // To be updated
} else { } else {
AssertFatal(1==0,"illegal subframe %d for tdd_config %d\n", AssertFatal(1==0,"illegal subframe %d for tdd_config %ld\n",
subframe,tdd_Config->subframeAssignment); subframe,tdd_Config->subframeAssignment);
} }
+1 -2
View File
@@ -1047,7 +1047,6 @@ dlsch_scheduler_pre_processor_reset(int module_idP,
int i, j; int i, j;
UE_list_t *UE_list = &RC.mac[module_idP]->UE_list; UE_list_t *UE_list = &RC.mac[module_idP]->UE_list;
UE_sched_ctrl *ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; UE_sched_ctrl *ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id];
rnti_t rnti = UE_RNTI(module_idP, UE_id);
uint8_t *vrb_map = RC.mac[module_idP]->common_channels[CC_id].vrb_map; uint8_t *vrb_map = RC.mac[module_idP]->common_channels[CC_id].vrb_map;
int N_RB_DL = int N_RB_DL =
@@ -1058,7 +1057,7 @@ dlsch_scheduler_pre_processor_reset(int module_idP,
#endif #endif
LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id, rnti); LOG_D(MAC, "Running preprocessor for UE %d (%x)\n", UE_id,(int)(UE_RNTI(module_idP, UE_id)));
// initialize harq_pid and round // initialize harq_pid and round
if (ue_sched_ctl->ta_timer) if (ue_sched_ctl->ta_timer)
+9 -8
View File
@@ -314,9 +314,8 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
struct RACH_ConfigCommon *rach_ConfigCommon = struct RACH_ConfigCommon *rach_ConfigCommon =
(struct RACH_ConfigCommon *) NULL; (struct RACH_ConfigCommon *) NULL;
int32_t frame_diff = 0; int32_t frame_diff = 0;
mac_rlc_status_resp_t rlc_status;
uint8_t dcch_header_len = 0; uint8_t dcch_header_len = 0;
uint16_t sdu_lengths[8]; uint16_t sdu_lengths;
uint8_t ulsch_buff[MAX_ULSCH_PAYLOAD_BYTES]; uint8_t ulsch_buff[MAX_ULSCH_PAYLOAD_BYTES];
AssertFatal(CC_id == 0, AssertFatal(CC_id == 0,
@@ -405,8 +404,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
[DCCH]] > 0) { [DCCH]] > 0) {
// This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example) // This is for triggering a transmission on DCCH using PRACH (during handover, or sending SR for example)
dcch_header_len = 2 + 2; /// SHORT Subheader + C-RNTI control element dcch_header_len = 2 + 2; /// SHORT Subheader + C-RNTI control element
rlc_status = LOG_USEDINLOG_VAR(mac_rlc_status_resp_t,rlc_status)=mac_rlc_status_ind(module_idP,
mac_rlc_status_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
eNB_indexP, frameP, subframeP, eNB_indexP, frameP, subframeP,
ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6 ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6
@@ -415,7 +413,6 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
#endif #endif
); );
if (UE_mac_inst[module_idP].crnti_before_ho) if (UE_mac_inst[module_idP].crnti_before_ho)
LOG_D(MAC, LOG_D(MAC,
"[UE %d] Frame %d : UL-DCCH -> ULSCH, HO RRCConnectionReconfigurationComplete (%x, %x), RRC message has %d bytes to send throug PRACH (mac header len %d)\n", "[UE %d] Frame %d : UL-DCCH -> ULSCH, HO RRCConnectionReconfigurationComplete (%x, %x), RRC message has %d bytes to send throug PRACH (mac header len %d)\n",
@@ -429,7 +426,7 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
module_idP, frameP, rlc_status.bytes_in_buffer, module_idP, frameP, rlc_status.bytes_in_buffer,
dcch_header_len); dcch_header_len);
sdu_lengths[0] = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6, //not used sdu_lengths = mac_rlc_data_req(module_idP, UE_mac_inst[module_idP].crnti, eNB_indexP, frameP, ENB_FLAG_NO, MBMS_FLAG_NO, DCCH, 6, //not used
(char *) &ulsch_buff[0] (char *) &ulsch_buff[0]
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
,0, ,0,
@@ -437,9 +434,13 @@ PRACH_RESOURCES_t *ue_get_rach(module_id_t module_idP, int CC_id,
#endif #endif
); );
if(sdu_lengths > 0)
LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n",
module_idP, sdu_lengths);
else
LOG_E(MAC, "[UE %d] TX DCCH error\n",
module_idP );
LOG_D(MAC, "[UE %d] TX Got %d bytes for DCCH\n",
module_idP, sdu_lengths[0]);
update_bsr(module_idP, frameP, subframeP, eNB_indexP); update_bsr(module_idP, frameP, subframeP, eNB_indexP);
UE_mac_inst[module_idP]. UE_mac_inst[module_idP].
scheduling_info.BSR[UE_mac_inst[module_idP]. scheduling_info.BSR[UE_mac_inst[module_idP].
+2 -6
View File
@@ -2298,8 +2298,6 @@ ue_scheduler(const module_id_t module_idP,
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
MessageDef *msg_p; MessageDef *msg_p;
const char *msg_name;
instance_t instance;
int result; int result;
#endif #endif
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
@@ -2318,14 +2316,12 @@ ue_scheduler(const module_id_t module_idP,
itti_poll_msg(TASK_MAC_UE, &msg_p); itti_poll_msg(TASK_MAC_UE, &msg_p);
if (msg_p != NULL) { if (msg_p != NULL) {
msg_name = ITTI_MSG_NAME(msg_p);
instance = ITTI_MSG_INSTANCE(msg_p);
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case RRC_MAC_CCCH_DATA_REQ: case RRC_MAC_CCCH_DATA_REQ:
LOG_I(MAC, LOG_I(MAC,
"Received %s from %s: instance %d, frameP %d, eNB_index %d\n", "Received %s from %s: instance %d, frameP %d, eNB_index %d\n",
msg_name, ITTI_MSG_ORIGIN_NAME(msg_p), instance, ITTI_MSG_NAME(msg_p), ITTI_MSG_ORIGIN_NAME(msg_p), ITTI_MSG_INSTANCE(msg_p),
RRC_MAC_CCCH_DATA_REQ(msg_p).frame, RRC_MAC_CCCH_DATA_REQ(msg_p).frame,
RRC_MAC_CCCH_DATA_REQ(msg_p).enb_index); RRC_MAC_CCCH_DATA_REQ(msg_p).enb_index);
@@ -2334,7 +2330,7 @@ ue_scheduler(const module_id_t module_idP,
default: default:
LOG_E(MAC, "Received unexpected message %s\n", msg_name); LOG_E(MAC, "Received unexpected message %s\n", ITTI_MSG_NAME(msg_p));
break; break;
} }
+6 -15
View File
@@ -915,16 +915,6 @@ pdcp_run (
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
#if defined(ENABLE_ITTI)
MessageDef *msg_p;
const char *msg_name;
instance_t instance;
int result;
protocol_ctxt_t ctxt;
#endif
if (ctxt_pP->enb_flag) { if (ctxt_pP->enb_flag) {
start_meas(&eNB_pdcp_stats[ctxt_pP->module_id].pdcp_run); start_meas(&eNB_pdcp_stats[ctxt_pP->module_id].pdcp_run);
} else { } else {
@@ -939,14 +929,15 @@ pdcp_run (
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_RUN, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PDCP_RUN, VCD_FUNCTION_IN);
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
MessageDef *msg_p;
int result;
protocol_ctxt_t ctxt;
do { do {
// Checks if a message has been sent to PDCP sub-task // Checks if a message has been sent to PDCP sub-task
itti_poll_msg (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, &msg_p); itti_poll_msg (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, &msg_p);
if (msg_p != NULL) { if (msg_p != NULL) {
msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p);
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case RRC_DCCH_DATA_REQ: case RRC_DCCH_DATA_REQ:
@@ -960,9 +951,9 @@ pdcp_run (
RRC_DCCH_DATA_REQ (msg_p).eNB_index); RRC_DCCH_DATA_REQ (msg_p).eNB_index);
LOG_I(PDCP, PROTOCOL_CTXT_FMT"Received %s from %s: instance %d, rb_id %d, muiP %d, confirmP %d, mode %d\n", LOG_I(PDCP, PROTOCOL_CTXT_FMT"Received %s from %s: instance %d, rb_id %d, muiP %d, confirmP %d, mode %d\n",
PROTOCOL_CTXT_ARGS(&ctxt), PROTOCOL_CTXT_ARGS(&ctxt),
msg_name, ITTI_MSG_NAME (msg_p),
ITTI_MSG_ORIGIN_NAME(msg_p), ITTI_MSG_ORIGIN_NAME(msg_p),
instance, ITTI_MSG_INSTANCE (msg_p),
RRC_DCCH_DATA_REQ (msg_p).rb_id, RRC_DCCH_DATA_REQ (msg_p).rb_id,
RRC_DCCH_DATA_REQ (msg_p).muip, RRC_DCCH_DATA_REQ (msg_p).muip,
RRC_DCCH_DATA_REQ (msg_p).confirmp, RRC_DCCH_DATA_REQ (msg_p).confirmp,
@@ -1004,7 +995,7 @@ pdcp_run (
break; break;
default: default:
LOG_E(PDCP, "Received unexpected message %s\n", msg_name); LOG_E(PDCP, "Received unexpected message %s\n", ITTI_MSG_NAME (msg_p));
break; break;
} }
+2 -5
View File
@@ -1141,7 +1141,6 @@ rlc_am_data_req (
uint32_t mui; uint32_t mui;
uint16_t data_offset; uint16_t data_offset;
uint16_t data_size; uint16_t data_size;
uint8_t conf;
#if TRACE_RLC_AM_PDU #if TRACE_RLC_AM_PDU
char message_string[7000]; char message_string[7000];
size_t message_string_size = 0; size_t message_string_size = 0;
@@ -1164,7 +1163,6 @@ rlc_am_data_req (
mui = ((struct rlc_am_data_req *) (sdu_pP->data))->mui; mui = ((struct rlc_am_data_req *) (sdu_pP->data))->mui;
data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset; data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset;
data_size = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size; data_size = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size;
conf = ((struct rlc_am_data_req *) (sdu_pP->data))->conf;
MSC_LOG_RX_MESSAGE( MSC_LOG_RX_MESSAGE(
(ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,
@@ -1182,7 +1180,7 @@ rlc_am_data_req (
message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id);
message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size);
message_string_size += sprintf(&message_string[message_string_size], "MUI : %u\n", mui); message_string_size += sprintf(&message_string[message_string_size], "MUI : %u\n", mui);
message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", conf); message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", ((struct rlc_am_data_req *) (sdu_pP->data))->conf);
message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n");
message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n");
@@ -1233,7 +1231,6 @@ rlc_am_data_req (
l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mui = mui; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mui = mui;
l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size = data_size; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size = data_size;
//l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].confirm = conf;
l_rlc_p->sdu_buffer_occupancy += data_size; l_rlc_p->sdu_buffer_occupancy += data_size;
l_rlc_p->nb_sdu += 1; l_rlc_p->nb_sdu += 1;
@@ -1261,7 +1258,7 @@ rlc_am_data_req (
l_rlc_p->nb_sdu, l_rlc_p->nb_sdu,
l_rlc_p->current_sdu_index, l_rlc_p->current_sdu_index,
l_rlc_p->next_sdu_index, l_rlc_p->next_sdu_index,
conf, ((struct rlc_am_data_req *) (sdu_pP->data))->conf,
mui, mui,
l_rlc_p->vt_a, l_rlc_p->vt_a,
l_rlc_p->vt_s); l_rlc_p->vt_s);
+1 -2
View File
@@ -196,11 +196,10 @@ rlc_tm_mac_data_indication (
void * const rlc_pP, void * const rlc_pP,
struct mac_data_ind data_indP) struct mac_data_ind data_indP)
{ {
rlc_tm_entity_t* rlc_p = (rlc_tm_entity_t*) rlc_pP;
if (data_indP.data.nb_elements > 0) { if (data_indP.data.nb_elements > 0) {
LOG_D(RLC, PROTOCOL_RLC_TM_CTXT_FMT" MAC_DATA_IND %d TBs\n", LOG_D(RLC, PROTOCOL_RLC_TM_CTXT_FMT" MAC_DATA_IND %d TBs\n",
PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, rlc_p), PROTOCOL_RLC_TM_CTXT_ARGS(ctxt_pP, ((rlc_tm_entity_t*) rlc_pP)),
data_indP.data.nb_elements); data_indP.data.nb_elements);
} }
+2 -3
View File
@@ -151,7 +151,6 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
unsigned int e2 = 0; unsigned int e2 = 0;
unsigned int li2 = 0; unsigned int li2 = 0;
*num_li_pP = 0; *num_li_pP = 0;
int pdu_size = *data_size_pP;
while ((continue_loop)) { while ((continue_loop)) {
//msg("[RLC_UM] e_liP->b1 = %02X\n", e_liP->b1); //msg("[RLC_UM] e_liP->b1 = %02X\n", e_liP->b1);
@@ -170,7 +169,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
*num_li_pP = *num_li_pP +1; *num_li_pP = *num_li_pP +1;
if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d e2=%d li2=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n", if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d e2=%d li2=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n",
*data_size_pP, pdu_size, continue_loop, e1, e2, li2, *data_size_pP, *data_size_pP, continue_loop, e1, e2, li2,
(e_liP-(continue_loop-1)+0)->b1, (e_liP-(continue_loop-1)+0)->b1,
(e_liP-(continue_loop-1)+0)->b2, (e_liP-(continue_loop-1)+0)->b2,
(e_liP-(continue_loop-1)+0)->b3, (e_liP-(continue_loop-1)+0)->b3,
@@ -190,7 +189,7 @@ int rlc_um_read_length_indicators(unsigned char**data_ppP, rlc_um_e_li_t* e_liP,
} }
} else { } else {
if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d li1=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n", if (!(*data_size_pP >= 0)) LOG_E(RLC, "Invalid data_size=%d! (pdu_size=%d loop=%d e1=%d li1=%d e_liP=%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x)\n",
*data_size_pP, pdu_size, continue_loop, e1, li1, *data_size_pP, *data_size_pP, continue_loop, e1, li1,
(e_liP-(continue_loop-1)+0)->b1, (e_liP-(continue_loop-1)+0)->b1,
(e_liP-(continue_loop-1)+0)->b2, (e_liP-(continue_loop-1)+0)->b2,
(e_liP-(continue_loop-1)+0)->b3, (e_liP-(continue_loop-1)+0)->b3,
@@ -40,7 +40,7 @@ rlc_um_display_rx_window(
{ {
unsigned long sn = 0; unsigned long sn = 0;
unsigned long end_sn = 0; unsigned long end_sn = 0;
char str[4]; LOG_USEDINLOG_VAR(char,str[4]);
char time_out_str[11]; char time_out_str[11];
int str_index; int str_index;
char color[32]; char color[32];
+3 -6
View File
@@ -346,11 +346,10 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
nfapi_ul_config_request_pdu_t *ul_config_pdu, nfapi_ul_config_request_pdu_t *ul_config_pdu,
uint16_t frame,uint8_t subframe,uint8_t srs_present, int index) uint16_t frame,uint8_t subframe,uint8_t srs_present, int index)
{ {
nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8;
if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) { if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n", LOG_D(PHY,"Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
rel8->rnti,frame,subframe); (ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8).rnti,frame,subframe);
uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32))); uint8_t ulsch_buffer[5477] __attribute__ ((aligned(32)));
uint16_t buflen = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size; uint16_t buflen = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size;
@@ -561,17 +560,15 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int timer_frame, int ti
int tx_req_UE_MAC(nfapi_tx_request_t* req) int tx_req_UE_MAC(nfapi_tx_request_t* req)
{ {
uint16_t sfn = NFAPI_SFNSF2SFN(req->sfn_sf);
uint16_t sf = NFAPI_SFNSF2SF(req->sfn_sf);
LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, sfn, sf, req->tx_request_body.number_of_pdus); LOG_D(PHY,"%s() SFN/SF:%d/%d PDUs:%d\n", __FUNCTION__, NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), req->tx_request_body.number_of_pdus);
for (int i=0; i<req->tx_request_body.number_of_pdus; i++) for (int i=0; i<req->tx_request_body.number_of_pdus; i++)
{ {
LOG_D(PHY,"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d\n", LOG_D(PHY,"%s() SFN/SF:%d/%d number_of_pdus:%d [PDU:%d] pdu_length:%d pdu_index:%d num_segments:%d\n",
__FUNCTION__, __FUNCTION__,
sfn, sf, NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf),
req->tx_request_body.number_of_pdus, req->tx_request_body.number_of_pdus,
i, i,
req->tx_request_body.tx_pdu_list[i].pdu_length, req->tx_request_body.tx_pdu_list[i].pdu_length,
+3 -5
View File
@@ -1399,7 +1399,6 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv)
asn_enc_rval_t enc_rval; asn_enc_rval_t enc_rval;
uint8_t buf[5],buf2=0; uint8_t buf[5],buf2=0;
uint8_t ecause=0;
UL_CCCH_Message_t ul_ccch_msg; UL_CCCH_Message_t ul_ccch_msg;
@@ -1472,7 +1471,7 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv)
# endif # endif
#endif #endif
LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes), ecause %d\n",enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); LOG_D(RRC,"[UE] RRCConnectionRequest Encoded %zd bits (%zd bytes) \n",enc_rval.encoded,(enc_rval.encoded+7)/8);
return((enc_rval.encoded+7)/8); return((enc_rval.encoded+7)/8);
@@ -1806,7 +1805,6 @@ do_RRCConnectionSetup(
{ {
asn_enc_rval_t enc_rval; asn_enc_rval_t enc_rval;
uint8_t ecause=0;
eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id];
rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id];
@@ -2200,8 +2198,8 @@ do_RRCConnectionSetup(
# endif # endif
#endif #endif
LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes), ecause %d\n", LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes) \n",
enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); enc_rval.encoded,(enc_rval.encoded+7)/8);
// FREEMEM(SRB_list); // FREEMEM(SRB_list);
// free(SRB1_config); // free(SRB1_config);
+88 -104
View File
@@ -860,7 +860,6 @@ rrc_ue_establish_srb1(
{ {
// add descriptor from RRC PDU // add descriptor from RRC PDU
uint8_t lchan_id = DCCH;
UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Active = 1;
UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG
@@ -871,7 +870,7 @@ rrc_ue_establish_srb1(
// memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,lchan_id,eNB_index); LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,DCCH,eNB_index);
//rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id,UNDEF_SECURITY_MODE); //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id,UNDEF_SECURITY_MODE);
// rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config);
@@ -894,7 +893,6 @@ rrc_ue_establish_srb2(
{ {
// add descriptor from RRC PDU // add descriptor from RRC PDU
uint8_t lchan_id = DCCH1;
UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Active = 1;
UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG
@@ -905,7 +903,7 @@ rrc_ue_establish_srb2(
// memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE);
LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,lchan_id,eNB_index); LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,DCCH1,eNB_index);
//rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id, UNDEF_SECURITY_MODE); //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id, UNDEF_SECURITY_MODE);
// rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config);
@@ -3117,15 +3115,9 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2]; mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2];
} }
int tac = 0; LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc,
((sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2)?((sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]):0));
if (sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2) { LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse, SIBreserved(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse) );
tac = (sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1];
}
LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, tac );
long cellReservedForOperatorUse = sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse;
LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", cellReservedForOperatorUse, SIBreserved(cellReservedForOperatorUse) );
// search internal table for provider name // search internal table for provider name
int plmn_ind = 0; int plmn_ind = 0;
@@ -3150,10 +3142,8 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
sib1->cellAccessRelatedInfo.cellIdentity.buf[2], sib1->cellAccessRelatedInfo.cellIdentity.buf[2],
sib1->cellAccessRelatedInfo.cellIdentity.buf[3] >> sib1->cellAccessRelatedInfo.cellIdentity.bits_unused); sib1->cellAccessRelatedInfo.cellIdentity.buf[3] >> sib1->cellAccessRelatedInfo.cellIdentity.bits_unused);
long cellBarred = sib1->cellAccessRelatedInfo.cellBarred; LOG_I( RRC, "cellAccessRelatedInfo.cellBarred : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.cellBarred, SIBbarred(sib1->cellAccessRelatedInfo.cellBarred) );
LOG_I( RRC, "cellAccessRelatedInfo.cellBarred : raw:%ld decoded:%s\n", cellBarred, SIBbarred(cellBarred) ); LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.intraFreqReselection, SIBallowed(sib1->cellAccessRelatedInfo.intraFreqReselection) );
long intraFreqReselection = sib1->cellAccessRelatedInfo.intraFreqReselection;
LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", intraFreqReselection, SIBallowed(intraFreqReselection) );
LOG_I( RRC, "cellAccessRelatedInfo.csg_Indication : %d\n", sib1->cellAccessRelatedInfo.csg_Indication ); LOG_I( RRC, "cellAccessRelatedInfo.csg_Indication : %d\n", sib1->cellAccessRelatedInfo.csg_Indication );
if (sib1->cellAccessRelatedInfo.csg_Identity) if (sib1->cellAccessRelatedInfo.csg_Identity)
@@ -3590,12 +3580,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,
sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeMedium ); sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeMedium );
LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh : %ld\n", LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh : %ld\n",
sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh ); sib3->cellReselectionInfoCommon.speedStateReselectionPars->mobilityStateParameters.n_CellChangeHigh );
int q_HystSF_Medium = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium; LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium,
int q_HystSF_High = 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High; 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium );
LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_Medium, LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%ld dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High,
q_HystSF_Medium ); 6 - 2 * sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High );
LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High : raw:%ld decoded:%d dB\n", sib3->cellReselectionInfoCommon.speedStateReselectionPars->q_HystSF.sf_High,
q_HystSF_High );
} else { } else {
LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars : not defined\n" ); LOG_I( RRC, "cellReselectionInfoCommon.speedStateReselectionPars : not defined\n" );
} }
@@ -4288,7 +4276,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
uint8_t i; uint8_t i;
uint8_t target_eNB_offset; uint8_t target_eNB_offset;
MeasId_t measId; MeasId_t measId;
PhysCellId_t cellId, targetCellId; PhysCellId_t targetCellId;
long rsrp_t,rsrq_t; long rsrp_t,rsrq_t;
long rsrp_s,rsrq_s; long rsrp_s,rsrq_s;
long nElem, nElem1; long nElem, nElem1;
@@ -4332,20 +4320,19 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]); UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]);
// if (measFlag == 1) { // if (measFlag == 1) {
cellId = get_adjacent_cell_id(ctxt_pP->module_id, eNB_index); //PhycellId of serving cell
targetCellId = UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId ;//get_adjacent_cell_id(ue_mod_idP,target_eNB_offset); //PhycellId of target cell targetCellId = UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId ;//get_adjacent_cell_id(ue_mod_idP,target_eNB_offset); //PhycellId of target cell
if (pframe!=ctxt_pP->frame) { if (pframe!=ctxt_pP->frame) {
pframe=ctxt_pP->frame; pframe=ctxt_pP->frame;
LOG_D(RRC, "[UE %d] Frame %d: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n", LOG_D(RRC, "[UE %d] Frame %ld: doing MeasReport: servingCell(%ld) targetCell(%ld) rsrp_s(%ld) rsrq_s(%ld) rsrp_t(%ld) rsrq_t(%ld) \n",
ctxt_pP->module_id, ctxt_pP->module_id,
ctxt_pP->frame, (long int)ctxt_pP->frame,
cellId, (long int)get_adjacent_cell_id(ctxt_pP->module_id, eNB_index),
targetCellId, (long int)targetCellId,
rsrp_s, (long int)rsrp_s,
rsrq_s, (long int)rsrq_s,
rsrp_t, (long int)rsrp_t,
rsrq_t); (long int)rsrq_t);
size = do_MeasurementReport(ctxt_pP->module_id, buffer,measId,targetCellId,rsrp_s,rsrq_s,rsrp_t,rsrq_t); size = do_MeasurementReport(ctxt_pP->module_id, buffer,measId,targetCellId,rsrp_s,rsrq_s,rsrp_t,rsrq_t);
LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n", LOG_I(RRC, "[UE %d] Frame %d : Generating Measurement Report for eNB %d\n",
ctxt_pP->module_id, ctxt_pP->frame, eNB_index); ctxt_pP->module_id, ctxt_pP->frame, eNB_index);
@@ -4691,7 +4678,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB
void *rrc_ue_task( void *args_p ) void *rrc_ue_task( void *args_p )
{ {
MessageDef *msg_p; MessageDef *msg_p;
const char *msg_name;
instance_t instance; instance_t instance;
unsigned int ue_mod_id; unsigned int ue_mod_id;
int result; int result;
@@ -4704,7 +4690,6 @@ void *rrc_ue_task( void *args_p )
// Wait for a message // Wait for a message
itti_receive_msg (TASK_RRC_UE, &msg_p); itti_receive_msg (TASK_RRC_UE, &msg_p);
msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance); ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance);
@@ -4715,12 +4700,12 @@ void *rrc_ue_task( void *args_p )
break; break;
case MESSAGE_TEST: case MESSAGE_TEST:
LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
break; break;
/* MAC messages */ /* MAC messages */
case RRC_MAC_IN_SYNC_IND: case RRC_MAC_IN_SYNC_IND:
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index); RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index);
UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0;
@@ -4732,14 +4717,14 @@ void *rrc_ue_task( void *args_p )
break; break;
case RRC_MAC_OUT_OF_SYNC_IND: case RRC_MAC_OUT_OF_SYNC_IND:
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index); RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index);
UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++;
break; break;
case RRC_MAC_BCCH_DATA_IND: case RRC_MAC_BCCH_DATA_IND:
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index);
// PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0); // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0);
@@ -4753,7 +4738,7 @@ void *rrc_ue_task( void *args_p )
break; break;
case RRC_MAC_CCCH_DATA_CNF: case RRC_MAC_CCCH_DATA_CNF:
LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index); RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index);
// reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds)
@@ -4764,7 +4749,7 @@ void *rrc_ue_task( void *args_p )
LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n", LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n",
ue_mod_id, ue_mod_id,
RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).rnti,
msg_name, ITTI_MSG_NAME (msg_p),
RRC_MAC_CCCH_DATA_IND (msg_p).frame, RRC_MAC_CCCH_DATA_IND (msg_p).frame,
RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); RRC_MAC_CCCH_DATA_IND (msg_p).enb_index);
@@ -4783,7 +4768,7 @@ void *rrc_ue_task( void *args_p )
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
case RRC_MAC_MCCH_DATA_IND: case RRC_MAC_MCCH_DATA_IND:
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area);
//PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0); //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0);
@@ -4798,7 +4783,7 @@ void *rrc_ue_task( void *args_p )
/* //TTN (for D2D) /* //TTN (for D2D)
case RRC_MAC_SL_DISCOVERY_DATA_IND: case RRC_MAC_SL_DISCOVERY_DATA_IND:
LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, msg_name, LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p),
RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index);
//send to ProSeApp //send to ProSeApp
@@ -4811,14 +4796,14 @@ void *rrc_ue_task( void *args_p )
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index);
LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n", LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n",
RRC_DCCH_DATA_IND (msg_p).module_id, RRC_DCCH_DATA_IND (msg_p).module_id,
msg_name, ITTI_MSG_NAME (msg_p),
RRC_DCCH_DATA_IND (msg_p).frame, RRC_DCCH_DATA_IND (msg_p).frame,
RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).dcch_index,
RRC_DCCH_DATA_IND (msg_p).eNB_index); RRC_DCCH_DATA_IND (msg_p).eNB_index);
LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n", LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n",
PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt),
msg_name, ITTI_MSG_NAME (msg_p),
RRC_DCCH_DATA_IND (msg_p).dcch_index, RRC_DCCH_DATA_IND (msg_p).dcch_index,
RRC_DCCH_DATA_IND (msg_p).eNB_index); RRC_DCCH_DATA_IND (msg_p).eNB_index);
rrc_ue_decode_dcch ( rrc_ue_decode_dcch (
@@ -4845,7 +4830,7 @@ void *rrc_ue_task( void *args_p )
"%02x%02x%02x%02x" "%02x%02x%02x%02x"
"%02x%02x%02x%02x" "%02x%02x%02x%02x"
"%02x%02x%02x%02x\n", "%02x%02x%02x%02x\n",
ue_mod_id, msg_name, ue_mod_id, ITTI_MSG_NAME (msg_p),
UE_rrc_inst[ue_mod_id].kenb[0], UE_rrc_inst[ue_mod_id].kenb[1], UE_rrc_inst[ue_mod_id].kenb[2], UE_rrc_inst[ue_mod_id].kenb[3], UE_rrc_inst[ue_mod_id].kenb[0], UE_rrc_inst[ue_mod_id].kenb[1], UE_rrc_inst[ue_mod_id].kenb[2], UE_rrc_inst[ue_mod_id].kenb[3],
UE_rrc_inst[ue_mod_id].kenb[4], UE_rrc_inst[ue_mod_id].kenb[5], UE_rrc_inst[ue_mod_id].kenb[6], UE_rrc_inst[ue_mod_id].kenb[7], UE_rrc_inst[ue_mod_id].kenb[4], UE_rrc_inst[ue_mod_id].kenb[5], UE_rrc_inst[ue_mod_id].kenb[6], UE_rrc_inst[ue_mod_id].kenb[7],
UE_rrc_inst[ue_mod_id].kenb[8], UE_rrc_inst[ue_mod_id].kenb[9], UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11], UE_rrc_inst[ue_mod_id].kenb[8], UE_rrc_inst[ue_mod_id].kenb[9], UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11],
@@ -4860,7 +4845,7 @@ void *rrc_ue_task( void *args_p )
/* NAS messages */ /* NAS messages */
case NAS_CELL_SELECTION_REQ: case NAS_CELL_SELECTION_REQ:
LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id), LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id),
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1,
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2,
NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3, NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3,
@@ -4919,7 +4904,7 @@ void *rrc_ue_task( void *args_p )
case RRC_STATE_CONNECTED: case RRC_STATE_CONNECTED:
/* should not happen */ /* should not happen */
LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
break; break;
default: default:
@@ -4930,7 +4915,7 @@ void *rrc_ue_task( void *args_p )
break; break;
case NAS_CONN_ESTABLI_REQ: case NAS_CONN_ESTABLI_REQ:
LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, msg_name, NAS_CONN_ESTABLI_REQ (msg_p).cause, LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_REQ (msg_p).cause,
NAS_CONN_ESTABLI_REQ (msg_p).type, NAS_CONN_ESTABLI_REQ (msg_p).type,
NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode, NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode,
NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi, NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi,
@@ -4961,7 +4946,7 @@ void *rrc_ue_task( void *args_p )
case RRC_STATE_INACTIVE: case RRC_STATE_INACTIVE:
case RRC_STATE_CONNECTED: case RRC_STATE_CONNECTED:
/* should not happen */ /* should not happen */
LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
break; break;
default: default:
@@ -4975,7 +4960,7 @@ void *rrc_ue_task( void *args_p )
uint32_t length; uint32_t length;
uint8_t *buffer; uint8_t *buffer;
LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, msg_name, NAS_UPLINK_DATA_REQ (msg_p).UEid); LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid);
/* Create message for PDCP (ULInformationTransfer_t) */ /* Create message for PDCP (ULInformationTransfer_t) */
length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data); length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
@@ -5010,7 +4995,7 @@ void *rrc_ue_task( void *args_p )
# if ENABLE_RAL # if ENABLE_RAL
case RRC_RAL_SCAN_REQ: case RRC_RAL_SCAN_REQ:
LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name); LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id,ITTI_MSG_NAME (msg_p) );
switch (rrc_get_state(ue_mod_id)) { switch (rrc_get_state(ue_mod_id)) {
case RRC_STATE_INACTIVE: { case RRC_STATE_INACTIVE: {
@@ -5046,7 +5031,7 @@ void *rrc_ue_task( void *args_p )
case RRC_STATE_CONNECTED: case RRC_STATE_CONNECTED:
/* should not happen */ /* should not happen */
LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
break; break;
default: default:
@@ -5057,7 +5042,7 @@ void *rrc_ue_task( void *args_p )
break; break;
case PHY_FIND_CELL_IND: case PHY_FIND_CELL_IND:
LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
switch (rrc_get_state(ue_mod_id)) { switch (rrc_get_state(ue_mod_id)) {
case RRC_STATE_IDLE: case RRC_STATE_IDLE:
@@ -5099,7 +5084,7 @@ void *rrc_ue_task( void *args_p )
case RRC_STATE_INACTIVE: case RRC_STATE_INACTIVE:
case RRC_STATE_CONNECTED: case RRC_STATE_CONNECTED:
/* should not happen */ /* should not happen */
LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
break; break;
default: default:
@@ -5131,7 +5116,7 @@ void *rrc_ue_task( void *args_p )
break; break;
case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ: case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ:
LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
switch (rrc_get_state(ue_mod_id)) { switch (rrc_get_state(ue_mod_id)) {
case RRC_STATE_IDLE: { case RRC_STATE_IDLE: {
@@ -5148,7 +5133,7 @@ void *rrc_ue_task( void *args_p )
case RRC_STATE_INACTIVE: case RRC_STATE_INACTIVE:
case RRC_STATE_CONNECTED: case RRC_STATE_CONNECTED:
/* should not happen */ /* should not happen */
LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, msg_name, rrc_get_state(ue_mod_id)); LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id));
break; break;
default: default:
@@ -5159,12 +5144,12 @@ void *rrc_ue_task( void *args_p )
break; break;
case RRC_RAL_CONNECTION_RELEASE_REQ: case RRC_RAL_CONNECTION_RELEASE_REQ:
LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, msg_name); LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
break; break;
#endif #endif
default: default:
LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, msg_name); LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p));
break; break;
} }
@@ -5379,7 +5364,7 @@ rrc_ue_process_sidelink_radioResourceConfig(
case SL_CommConfig_r12__commTxResources_r12_PR_setup: case SL_CommConfig_r12__commTxResources_r12_PR_setup:
if (sl_CommConfig->commTxResources_r12->choice.setup.present == SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ){ if (sl_CommConfig->commTxResources_r12->choice.setup.present == SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ){
LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %d \n", LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %lu \n",
Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size ); Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size );
LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n", LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n",
Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf ); Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf );
@@ -5573,9 +5558,9 @@ void *rrc_control_socket_thread_fct(void *arg)
//process the message //process the message
switch (sl_ctrl_msg_recv->type) { switch (sl_ctrl_msg_recv->type) {
case SESSION_INIT_REQ: case SESSION_INIT_REQ:
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type); LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type);
#endif LOG_DEBUG_END
//TODO: get SL_UE_STATE from lower layer //TODO: get SL_UE_STATE from lower layer
LOG_I(RRC,"Send UEStateInformation to ProSe App \n"); LOG_I(RRC,"Send UEStateInformation to ProSe App \n");
@@ -5594,14 +5579,12 @@ void *rrc_control_socket_thread_fct(void *arg)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
#ifdef DEBUG_CTRL_SOCKET
struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
LOG_I(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type); LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type);
LOG_I(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state); LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state);
#endif LOG_DEBUG_END
/* if (enable_notification > 0) { /* if (enable_notification > 0) {
//create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds) //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds)
pthread_t notification_thread; pthread_t notification_thread;
@@ -5616,12 +5599,12 @@ void *rrc_control_socket_thread_fct(void *arg)
sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id; sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id;
groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id; groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id;
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_I(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
LOG_I(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
LOG_I(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress)); LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress));
#endif LOG_DEBUG_END
//store sourceL2Id/groupL2Id //store sourceL2Id/groupL2Id
UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -5781,20 +5764,20 @@ void *rrc_control_socket_thread_fct(void *arg)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
#ifdef DEBUG_CTRL_SOCKET struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
LOG_I(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); LOG_UI(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type);
LOG_I(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); LOG_UI(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
#endif LOG_DEBUG_END
break; break;
case GROUP_COMMUNICATION_RELEASE_REQ: case GROUP_COMMUNICATION_RELEASE_REQ:
printf("-----------------------------------\n"); printf("-----------------------------------\n");
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_I(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id); LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id);
#endif LOG_DEBUG_END
//reset groupL2ID from MAC LAYER //reset groupL2ID from MAC LAYER
UE_rrc_inst[module_id].groupL2Id = 0x00000000; UE_rrc_inst[module_id].groupL2Id = 0x00000000;
sourceL2Id = UE_rrc_inst[module_id].sourceL2Id; sourceL2Id = UE_rrc_inst[module_id].sourceL2Id;
@@ -5866,11 +5849,11 @@ void *rrc_control_socket_thread_fct(void *arg)
sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id; sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id;
destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id; destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id;
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_I(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id);
LOG_I(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id);
#endif LOG_DEBUG_END
//store sourceL2Id/destinationL2Id //store sourceL2Id/destinationL2Id
UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; UE_rrc_inst[module_id].sourceL2Id = sourceL2Id;
@@ -6030,26 +6013,27 @@ void *rrc_control_socket_thread_fct(void *arg)
} }
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
struct sidelink_ctrl_element *ptr_ctrl_msg = NULL;
ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf;
LOG_I(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); LOG_UI(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type);
LOG_I(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); LOG_UI(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id);
#endif LOG_DEBUG_END
break; break;
case PC5S_ESTABLISH_REQ: case PC5S_ESTABLISH_REQ:
type = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type; type = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type;
sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id; sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id;
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_I(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX
LOG_I(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id); LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id);
#endif LOG_DEBUG_END
if (type > 0) { if (type > 0) {
destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id; destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id;
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id); LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id);
#endif LOG_DEBUG_END
} }
//store sourceL2Id/destinationL2Id //store sourceL2Id/destinationL2Id
@@ -6260,9 +6244,9 @@ void *rrc_control_socket_thread_fct(void *arg)
case PC5_DISCOVERY_MESSAGE: case PC5_DISCOVERY_MESSAGE:
#ifdef DEBUG_CTRL_SOCKET LOG_DEBUG_BEGIN(DEBUG_CTRLSOCKET)
LOG_I(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
#endif LOG_DEBUG_END
//prepare SL_Discovery buffer //prepare SL_Discovery buffer
if (UE_rrc_inst) { if (UE_rrc_inst) {
memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE); memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE);
+8 -5
View File
@@ -4476,7 +4476,6 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
uint8_t buffer[RRC_BUF_SIZE]; uint8_t buffer[RRC_BUF_SIZE];
uint16_t size;
int i; int i;
uint8_t rv[2]; uint8_t rv[2];
uint16_t Idx; uint16_t Idx;
@@ -5287,7 +5286,7 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
// rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; // rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list;
memset(buffer, 0, RRC_BUF_SIZE); memset(buffer, 0, RRC_BUF_SIZE);
size = do_RRCConnectionReconfiguration( int size=do_RRCConnectionReconfiguration(
ctxt_pP, ctxt_pP,
buffer, buffer,
rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), //Transaction_id, rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), //Transaction_id,
@@ -5313,7 +5312,11 @@ rrc_eNB_generate_RRCConnectionReconfiguration_handover(
, NULL // SCellToAddMod_r10_t , NULL // SCellToAddMod_r10_t
#endif #endif
); );
if (size <= 0)
LOG_E(RRC,
"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x) failed\n",
ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti);
else
LOG_I(RRC, LOG_I(RRC,
"[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x)\n", "[eNB %d] Frame %d, Logical Channel DL-DCCH, Generate RRCConnectionReconfiguration for handover (bytes %d, UE rnti %x)\n",
ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti); ctxt_pP->module_id, ctxt_pP->frame, size, ue_context_pP->ue_context.rnti);
@@ -6368,8 +6371,8 @@ rrc_eNB_decode_ccch(
if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) { if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) {
if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5) if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5)
{ {
LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %d", LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %lu",
rrcConnectionRequest->ue_Identity.choice.randomValue.size); (long unsigned int)rrcConnectionRequest->ue_Identity.choice.randomValue.size);
return -1; return -1;
} }
memcpy(((uint8_t*) & random_value) + 3, memcpy(((uint8_t*) & random_value) + 3,
+1 -3
View File
@@ -1735,7 +1735,6 @@ MSC_LOG_TX_MESSAGE(
return 0; return 0;
} }
int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *msg_name, instance_t instance){ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *msg_name, instance_t instance){
uint16_t mme_ue_s1ap_id;
uint32_t eNB_ue_s1ap_id; uint32_t eNB_ue_s1ap_id;
struct rrc_eNB_ue_context_s* ue_context_p = NULL; struct rrc_eNB_ue_context_s* ue_context_p = NULL;
protocol_ctxt_t ctxt; protocol_ctxt_t ctxt;
@@ -1750,7 +1749,6 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms
e_rab_release_drb = 0; e_rab_release_drb = 0;
memcpy(&e_rab_release_params[0], &(S1AP_E_RAB_RELEASE_COMMAND (msg_p).e_rab_release_params[0]), sizeof(e_rab_release_t)*S1AP_MAX_E_RAB); memcpy(&e_rab_release_params[0], &(S1AP_E_RAB_RELEASE_COMMAND (msg_p).e_rab_release_params[0]), sizeof(e_rab_release_t)*S1AP_MAX_E_RAB);
mme_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id;
eNB_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).eNB_ue_s1ap_id; eNB_ue_s1ap_id = S1AP_E_RAB_RELEASE_COMMAND (msg_p).eNB_ue_s1ap_id;
nb_e_rabs_torelease = S1AP_E_RAB_RELEASE_COMMAND (msg_p).nb_e_rabs_torelease; nb_e_rabs_torelease = S1AP_E_RAB_RELEASE_COMMAND (msg_p).nb_e_rabs_torelease;
ue_context_p = rrc_eNB_get_ue_context_from_s1ap_ids(instance, UE_INITIAL_ID_INVALID, eNB_ue_s1ap_id); ue_context_p = rrc_eNB_get_ue_context_from_s1ap_ids(instance, UE_INITIAL_ID_INVALID, eNB_ue_s1ap_id);
@@ -1760,7 +1758,7 @@ int rrc_eNB_process_S1AP_E_RAB_RELEASE_COMMAND(MessageDef *msg_p, const char *ms
xid = rrc_eNB_get_next_transaction_identifier(ctxt.module_id); xid = rrc_eNB_get_next_transaction_identifier(ctxt.module_id);
LOG_D(RRC,"S1AP-E-RAB Release Command: MME_UE_S1AP_ID %d ENB_UE_S1AP_ID %d release_e_rabs %d \n", LOG_D(RRC,"S1AP-E-RAB Release Command: MME_UE_S1AP_ID %d ENB_UE_S1AP_ID %d release_e_rabs %d \n",
mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease); S1AP_E_RAB_RELEASE_COMMAND (msg_p).mme_ue_s1ap_id, eNB_ue_s1ap_id,nb_e_rabs_torelease);
for(erab = 0; erab < nb_e_rabs_torelease; erab++){ for(erab = 0; erab < nb_e_rabs_torelease; erab++){
b_existed = 0; b_existed = 0;
is_existed = 0; is_existed = 0;
@@ -144,10 +144,8 @@ int network_api_initialize(const char* host, const char* port)
#endif #endif
if (_network_api_id.endpoint == NULL) { if (_network_api_id.endpoint == NULL) {
const char* error = ( (errno < 0) ?
gai_strerror(errno) : strerror(errno) );
LOG_TRACE(ERROR, "NET-API - Failed to open connection endpoint, %s", LOG_TRACE(ERROR, "NET-API - Failed to open connection endpoint, %s",
error); ((errno < 0) ? gai_strerror(errno) : strerror(errno)));
LOG_FUNC_RETURN (RETURNerror); LOG_FUNC_RETURN (RETURNerror);
} }
+1 -3
View File
@@ -134,10 +134,8 @@ int user_api_initialize(user_api_id_t *user_api_id, const char* host, const char
user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port); user_api_id->endpoint = user_api_id->open(SOCKET_SERVER, host, port);
if (user_api_id->endpoint == NULL) { if (user_api_id->endpoint == NULL) {
const char* error = ( (errno < 0) ?
gai_strerror(errno) : strerror(errno) );
LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, " LOG_TRACE(ERROR, "USR-API - Failed to open connection endpoint, "
"%s", error); "%s", ( (errno < 0) ?gai_strerror(errno) : strerror(errno) ));
LOG_FUNC_RETURN (RETURNerror); LOG_FUNC_RETURN (RETURNerror);
} }
+5 -3
View File
@@ -79,10 +79,12 @@ Description Defines the attach related EMM procedure executed by the
/****************************************************************************/ /****************************************************************************/
/* String representation of the EPS attach type */ /* String representation of the EPS attach type */
static const char *_emm_attach_type_str[] = { char *emm_attach_type2str(int type) {
static char *_emm_attach_type_str[] = {
"EPS", "IMSI", "EMERGENCY", "RESERVED" "EPS", "IMSI", "EMERGENCY", "RESERVED"
}; };
return _emm_attach_type_str[type];
}
/* /*
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Internal data handled by the attach procedure in the UE * Internal data handled by the attach procedure in the UE
@@ -140,7 +142,7 @@ int emm_proc_attach(nas_user_t *user, emm_proc_attach_type_t type)
emm_timers_t *emm_timers = user->emm_data->emm_timers; emm_timers_t *emm_timers = user->emm_data->emm_timers;
LOG_TRACE(INFO, "EMM-PROC - Initiate EPS attach type = %s (%d)", LOG_TRACE(INFO, "EMM-PROC - Initiate EPS attach type = %s (%d)",
_emm_attach_type_str[type], type); emm_attach_type2str(type), type);
/* Update the emergency bearer service indicator */ /* Update the emergency bearer service indicator */
if (type == EMM_ATTACH_TYPE_EMERGENCY) { if (type == EMM_ATTACH_TYPE_EMERGENCY) {
+5 -3
View File
@@ -66,11 +66,13 @@ Description Defines the detach related EMM procedure executed by the
/****************************************************************************/ /****************************************************************************/
/* String representation of the detach type */ /* String representation of the detach type */
static const char *_emm_detach_type_str[] = { char *emm_detach_type2str(int type) {
static char *_emm_detach_type_str[] = {
"EPS", "IMSI", "EPS/IMSI", "EPS", "IMSI", "EPS/IMSI",
"RE-ATTACH REQUIRED", "RE-ATTACH NOT REQUIRED", "RESERVED" "RE-ATTACH REQUIRED", "RE-ATTACH NOT REQUIRED", "RESERVED"
}; };
return _emm_detach_type_str[type];
}
/* /*
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Internal data handled by the detach procedure in the UE * Internal data handled by the detach procedure in the UE
@@ -123,7 +125,7 @@ int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_of
int rc; int rc;
LOG_TRACE(INFO, "EMM-PROC - Initiate EPS detach type = %s (%d)", LOG_TRACE(INFO, "EMM-PROC - Initiate EPS detach type = %s (%d)",
_emm_detach_type_str[type], type); emm_detach_type2str(type), type);
/* Initialize the detach procedure internal data */ /* Initialize the detach procedure internal data */
emm_detach_data->count = 0; emm_detach_data->count = 0;
+5 -3
View File
@@ -62,11 +62,13 @@ Description Defines the identification EMM procedure executed by the
/******************* L O C A L D E F I N I T I O N S *******************/ /******************* L O C A L D E F I N I T I O N S *******************/
/****************************************************************************/ /****************************************************************************/
char *emm_identity_type2str(int id_type) {
/* String representation of the requested identity type */ /* String representation of the requested identity type */
static const char *_emm_identity_type_str[] = { static char *_emm_identity_type_str[] = {
"NOT AVAILABLE", "IMSI", "IMEI", "IMEISV", "TMSI" "NOT AVAILABLE", "IMSI", "IMEI", "IMEISV", "TMSI"
}; };
return _emm_identity_type_str[id_type];
}
/* /*
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Internal data handled by the identification procedure in the UE * Internal data handled by the identification procedure in the UE
@@ -111,7 +113,7 @@ int emm_proc_identification_request(nas_user_t *user, emm_proc_identity_type_t t
emm_sap_t emm_sap; emm_sap_t emm_sap;
LOG_TRACE(INFO, "EMM-PROC - Identification requested type = %s (%d)", LOG_TRACE(INFO, "EMM-PROC - Identification requested type = %s (%d)",
_emm_identity_type_str[type], type); emm_identity_type2str(type), type);
/* Setup EMM procedure handler to be executed upon receiving /* Setup EMM procedure handler to be executed upon receiving
* lower layer notification */ * lower layer notification */
+9 -6
View File
@@ -74,7 +74,9 @@ Description Defines the EMMAS Service Access Point that provides
/* /*
* String representation of EMMAS-SAP primitives * String representation of EMMAS-SAP primitives
*/ */
static const char *_emm_as_primitive_str[] = {
char *emmas_to_str(int emmas) {
static char *_emm_as_primitive_str[] = {
"EMMAS_SECURITY_REQ", "EMMAS_SECURITY_REQ",
"EMMAS_SECURITY_IND", "EMMAS_SECURITY_IND",
"EMMAS_SECURITY_RES", "EMMAS_SECURITY_RES",
@@ -92,7 +94,8 @@ static const char *_emm_as_primitive_str[] = {
"EMMAS_CELL_INFO_RES", "EMMAS_CELL_INFO_RES",
"EMMAS_CELL_INFO_IND", "EMMAS_CELL_INFO_IND",
}; };
return _emm_as_primitive_str[emmas];
}
/* /*
* Functions executed to process EMM procedures upon receiving * Functions executed to process EMM procedures upon receiving
* data from the network * data from the network
@@ -195,7 +198,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
emm_as_primitive_t primitive = msg->primitive; emm_as_primitive_t primitive = msg->primitive;
LOG_TRACE(INFO, "EMMAS-SAP - Received primitive %s (%d)", LOG_TRACE(INFO, "EMMAS-SAP - Received primitive %s (%d)",
_emm_as_primitive_str[primitive - _EMMAS_START - 1], primitive); emmas_to_str(primitive - _EMMAS_START - 1), primitive);
switch (primitive) { switch (primitive) {
case _EMMAS_DATA_IND: case _EMMAS_DATA_IND:
@@ -234,7 +237,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
if (rc != RETURNok) { if (rc != RETURNok) {
LOG_TRACE(ERROR, "EMMAS-SAP - " LOG_TRACE(ERROR, "EMMAS-SAP - "
"Failed to process primitive %s (%d)", "Failed to process primitive %s (%d)",
_emm_as_primitive_str[primitive - _EMMAS_START - 1], emmas_to_str(primitive - _EMMAS_START - 1),
primitive); primitive);
LOG_FUNC_RETURN (RETURNerror); LOG_FUNC_RETURN (RETURNerror);
} }
@@ -266,7 +269,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
if (rc != RETURNok) { if (rc != RETURNok) {
LOG_TRACE(ERROR, "EMMAS-SAP - Failed to process primitive %s (%d)", LOG_TRACE(ERROR, "EMMAS-SAP - Failed to process primitive %s (%d)",
_emm_as_primitive_str[primitive - _EMMAS_START - 1], emmas_to_str(primitive - _EMMAS_START - 1),
primitive); primitive);
} }
@@ -984,7 +987,7 @@ static int _emm_as_send(const nas_user_t *user, const emm_as_t *msg)
LOG_TRACE(DEBUG, "EMMAS-SAP - " LOG_TRACE(DEBUG, "EMMAS-SAP - "
"Sending msg with id 0x%x, primitive %s (%d) to RRC layer for transmission", "Sending msg with id 0x%x, primitive %s (%d) to RRC layer for transmission",
as_msg.msgID, as_msg.msgID,
_emm_as_primitive_str[msg->primitive - _EMMAS_START - 1], emmas_to_str(msg->primitive - _EMMAS_START - 1),
msg->primitive); msg->primitive);
switch (as_msg.msgID) { switch (as_msg.msgID) {
+5 -2
View File
@@ -58,6 +58,7 @@ Description Defines the EMMESM Service Access Point that provides
/* /*
* String representation of EMMESM-SAP primitives * String representation of EMMESM-SAP primitives
*/ */
const char *emm_esm_primitive2str(int esmprim) {
static const char *_emm_esm_primitive_str[] = { static const char *_emm_esm_primitive_str[] = {
"EMMESM_ESTABLISH_REQ", "EMMESM_ESTABLISH_REQ",
"EMMESM_ESTABLISH_CNF", "EMMESM_ESTABLISH_CNF",
@@ -66,6 +67,8 @@ static const char *_emm_esm_primitive_str[] = {
"EMMESM_UNITDATA_REQ", "EMMESM_UNITDATA_REQ",
"EMMESM_UNITDATA_IND", "EMMESM_UNITDATA_IND",
}; };
return _emm_esm_primitive_str[esmprim];
}
/****************************************************************************/ /****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/ /****************** E X P O R T E D F U N C T I O N S ******************/
@@ -116,7 +119,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg)
emm_esm_primitive_t primitive = msg->primitive; emm_esm_primitive_t primitive = msg->primitive;
LOG_TRACE(INFO, "EMMESM-SAP - Received primitive %s (%d)", LOG_TRACE(INFO, "EMMESM-SAP - Received primitive %s (%d)",
_emm_esm_primitive_str[primitive - _EMMESM_START - 1], primitive); emm_esm_primitive2str(primitive - _EMMESM_START - 1), primitive);
switch (primitive) { switch (primitive) {
@@ -159,7 +162,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg)
if (rc != RETURNok) { if (rc != RETURNok) {
LOG_TRACE(WARNING, "EMMESM-SAP - Failed to process primitive %s (%d)", LOG_TRACE(WARNING, "EMMESM-SAP - Failed to process primitive %s (%d)",
_emm_esm_primitive_str[primitive - _EMMESM_START - 1], emm_esm_primitive2str(primitive - _EMMESM_START - 1),
primitive); primitive);
} }
+10 -7
View File
@@ -64,6 +64,7 @@ Description Defines the EPS Mobility Management procedures executed at
*/ */
/* String representation of EMM events */ /* String representation of EMM events */
const char *emm_fsm_event2str(int evt) {
static const char *_emm_fsm_event_str[] = { static const char *_emm_fsm_event_str[] = {
"S1_ENABLED", "S1_ENABLED",
"S1_DISABLED", "S1_DISABLED",
@@ -93,7 +94,10 @@ static const char *_emm_fsm_event_str[] = {
"LOWERLAYER_FAILURE", "LOWERLAYER_FAILURE",
"LOWERLAYER_RELEASE", "LOWERLAYER_RELEASE",
}; };
return _emm_fsm_event_str[evt];
}
const char *emm_fsm_status2str(int status) {
/* String representation of EMM status */ /* String representation of EMM status */
static const char *_emm_fsm_status_str[EMM_STATE_MAX] = { static const char *_emm_fsm_status_str[EMM_STATE_MAX] = {
"INVALID", "INVALID",
@@ -120,7 +124,8 @@ static const char *_emm_fsm_status_str[EMM_STATE_MAX] = {
"TRACKING-AREA-UPDATING-INITIATED", "TRACKING-AREA-UPDATING-INITIATED",
"SERVICE-REQUEST-INITIATED", "SERVICE-REQUEST-INITIATED",
}; };
return _emm_fsm_status_str[status];
}
/* /*
* ----------------------------------------------------------------------------- * -----------------------------------------------------------------------------
* EPS Mobility Management state machine handlers * EPS Mobility Management state machine handlers
@@ -229,8 +234,8 @@ int emm_fsm_set_status(nas_user_t *user,
if ( status < EMM_STATE_MAX ) { if ( status < EMM_STATE_MAX ) {
LOG_TRACE(INFO, "EMM-FSM - Status changed: %s ===> %s", LOG_TRACE(INFO, "EMM-FSM - Status changed: %s ===> %s",
_emm_fsm_status_str[user->emm_fsm_status], emm_fsm_status2str(user->emm_fsm_status),
_emm_fsm_status_str[status]); emm_fsm_status2str(status));
if (status != user->emm_fsm_status) { if (status != user->emm_fsm_status) {
user->emm_fsm_status = status; user->emm_fsm_status = status;
@@ -280,17 +285,15 @@ int emm_fsm_process(nas_user_t *user, const emm_reg_t *evt)
{ {
int rc; int rc;
emm_fsm_state_t status; emm_fsm_state_t status;
emm_reg_primitive_t primitive;
LOG_FUNC_IN; LOG_FUNC_IN;
primitive = evt->primitive;
status = user->emm_fsm_status; status = user->emm_fsm_status;
LOG_TRACE(INFO, "EMM-FSM - Received event %s (%d) in state %s", LOG_TRACE(INFO, "EMM-FSM - Received event %s (%d) in state %s",
_emm_fsm_event_str[primitive - _EMMREG_START - 1], primitive, emm_fsm_event2str(evt->primitive - _EMMREG_START - 1), evt->primitive,
_emm_fsm_status_str[status]); emm_fsm_status2str(status));
/* Execute the EMM state machine */ /* Execute the EMM state machine */
+2 -1
View File
@@ -357,7 +357,8 @@ int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_typ
int rc; int rc;
int pid = RETURNerror; int pid = RETURNerror;
char apn_first_char[4]; char apn_first_char[4];
char str[128];
LOG_VAR(char, str[128]);
if (isprint(apn->value[0])) { if (isprint(apn->value[0])) {
apn_first_char[0] = '\0'; apn_first_char[0] = '\0';
+5 -2
View File
@@ -72,6 +72,8 @@ static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone, int
/* /*
* String representation of ESM-SAP primitives * String representation of ESM-SAP primitives
*/ */
const char *esm_sap_primitive2str(int esmsapp) {
static const char *_esm_sap_primitive_str[] = { static const char *_esm_sap_primitive_str[] = {
"ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ", "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ",
"ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_CNF", "ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_CNF",
@@ -94,7 +96,8 @@ static const char *_esm_sap_primitive_str[] = {
"ESM_BEARER_RESOURCE_MODIFY_REJ", "ESM_BEARER_RESOURCE_MODIFY_REJ",
"ESM_UNITDATA_IND", "ESM_UNITDATA_IND",
}; };
return _esm_sap_primitive_str[esmsapp];
}
/****************************************************************************/ /****************************************************************************/
/****************** E X P O R T E D F U N C T I O N S ******************/ /****************** E X P O R T E D F U N C T I O N S ******************/
@@ -152,7 +155,7 @@ int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
assert( (primitive > ESM_START) && (primitive < ESM_END)); assert( (primitive > ESM_START) && (primitive < ESM_END));
LOG_TRACE(INFO, "ESM-SAP - Received primitive %s (%d)", LOG_TRACE(INFO, "ESM-SAP - Received primitive %s (%d)",
_esm_sap_primitive_str[primitive - ESM_START - 1], primitive); esm_sap_primitive2str(primitive - ESM_START - 1), primitive);
switch (primitive) { switch (primitive) {
case ESM_PDN_CONNECTIVITY_REQ: case ESM_PDN_CONNECTIVITY_REQ:
+4 -1
View File
@@ -56,10 +56,13 @@ Description Defines functions used to handle state of EPS bearer contexts
/****************************************************************************/ /****************************************************************************/
/* String representation of EPS bearer context status */ /* String representation of EPS bearer context status */
const char *esm_ebr_state2str(int esmebrstate) {
static const char *_esm_ebr_state_str[ESM_EBR_STATE_MAX] = { static const char *_esm_ebr_state_str[ESM_EBR_STATE_MAX] = {
"BEARER CONTEXT INACTIVE", "BEARER CONTEXT INACTIVE",
"BEARER CONTEXT ACTIVE", "BEARER CONTEXT ACTIVE",
}; };
return _esm_ebr_state_str[esmebrstate];
}
/* /*
* ---------------------- * ----------------------
@@ -318,7 +321,7 @@ int esm_ebr_set_status(user_api_id_t *user_api_id, esm_ebr_data_t *esm_ebr_data,
if (status < ESM_EBR_STATE_MAX) { if (status < ESM_EBR_STATE_MAX) {
LOG_TRACE(INFO, "ESM-FSM - Status of EPS bearer context %d changed:" LOG_TRACE(INFO, "ESM-FSM - Status of EPS bearer context %d changed:"
" %s ===> %s", ebi, " %s ===> %s", ebi,
_esm_ebr_state_str[old_status], _esm_ebr_state_str[status]); esm_ebr_state2str(old_status), esm_ebr_state2str(status));
if (status != old_status) { if (status != old_status) {
ebr_ctx->status = status; ebr_ctx->status = status;
+4 -1
View File
@@ -56,10 +56,13 @@ Description Defines functions used to handle ESM procedure transactions.
/****************************************************************************/ /****************************************************************************/
/* String representation of ESM procedure transaction status */ /* String representation of ESM procedure transaction status */
const char *esm_pt_state2str( int esmptstate){
static const char *_esm_pt_state_str[ESM_PT_STATE_MAX] = { static const char *_esm_pt_state_str[ESM_PT_STATE_MAX] = {
"PROCEDURE TRANSACTION INACTIVE", "PROCEDURE TRANSACTION INACTIVE",
"PROCEDURE TRANSACTION PENDING" "PROCEDURE TRANSACTION PENDING"
}; };
return _esm_pt_state_str[esmptstate];
}
/* Return the index of the next available entry in the list of procedure /* Return the index of the next available entry in the list of procedure
* transaction data */ * transaction data */
@@ -380,7 +383,7 @@ int esm_pt_set_status(esm_pt_data_t *esm_pt_data, int pti, esm_pt_state status)
if (status < ESM_PT_STATE_MAX) { if (status < ESM_PT_STATE_MAX) {
LOG_TRACE(INFO, "ESM-FSM - Status of procedure transaction %d changed:" LOG_TRACE(INFO, "ESM-FSM - Status of procedure transaction %d changed:"
" %s ===> %s", pti, " %s ===> %s", pti,
_esm_pt_state_str[old_status], _esm_pt_state_str[status]); esm_pt_state2str(old_status), esm_pt_state2str(status));
if (status != old_status) { if (status != old_status) {
ctx->status = status; ctx->status = status;
+11 -13
View File
@@ -89,7 +89,6 @@ void *nas_ue_task(void *args_p)
int nb_events; int nb_events;
struct epoll_event *events; struct epoll_event *events;
MessageDef *msg_p; MessageDef *msg_p;
const char *msg_name;
instance_t instance; instance_t instance;
unsigned int Mod_id; unsigned int Mod_id;
int result; int result;
@@ -147,19 +146,18 @@ void *nas_ue_task(void *args_p)
itti_receive_msg (TASK_NAS_UE, &msg_p); itti_receive_msg (TASK_NAS_UE, &msg_p);
if (msg_p != NULL) { if (msg_p != NULL) {
msg_name = ITTI_MSG_NAME (msg_p);
instance = ITTI_MSG_INSTANCE (msg_p); instance = ITTI_MSG_INSTANCE (msg_p);
Mod_id = instance - NB_eNB_INST; Mod_id = instance - NB_eNB_INST;
if (instance == INSTANCE_DEFAULT) { if (instance == INSTANCE_DEFAULT) {
printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n", printf("%s:%d: FATAL: instance is INSTANCE_DEFAULT, should not happen.\n",
__FILE__, __LINE__); __FILE__, __LINE__);
abort(); exit_fun("exit... \n");
} }
nas_user_t *user = &users->item[Mod_id]; nas_user_t *user = &users->item[Mod_id];
switch (ITTI_MSG_ID(msg_p)) { switch (ITTI_MSG_ID(msg_p)) {
case INITIALIZE_MESSAGE: case INITIALIZE_MESSAGE:
LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name); LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, ITTI_MSG_NAME (msg_p));
#if (NAS_UE_AUTOSTART != 0) #if (NAS_UE_AUTOSTART != 0)
{ {
/* Send an activate modem command to NAS like UserProcess should do it */ /* Send an activate modem command to NAS like UserProcess should do it */
@@ -175,11 +173,11 @@ void *nas_ue_task(void *args_p)
break; break;
case MESSAGE_TEST: case MESSAGE_TEST:
LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, msg_name); LOG_I(NAS, "[UE %d] Received %s\n", Mod_id, ITTI_MSG_NAME (msg_p));
break; break;
case NAS_CELL_SELECTION_CNF: case NAS_CELL_SELECTION_CNF:
LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: errCode %u, cellID %u, tac %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_CELL_SELECTION_CNF (msg_p).errCode, NAS_CELL_SELECTION_CNF (msg_p).cellID, NAS_CELL_SELECTION_CNF (msg_p).tac); NAS_CELL_SELECTION_CNF (msg_p).errCode, NAS_CELL_SELECTION_CNF (msg_p).cellID, NAS_CELL_SELECTION_CNF (msg_p).tac);
{ {
@@ -192,21 +190,21 @@ void *nas_ue_task(void *args_p)
break; break;
case NAS_CELL_SELECTION_IND: case NAS_CELL_SELECTION_IND:
LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: cellID %u, tac %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_CELL_SELECTION_IND (msg_p).cellID, NAS_CELL_SELECTION_IND (msg_p).tac); NAS_CELL_SELECTION_IND (msg_p).cellID, NAS_CELL_SELECTION_IND (msg_p).tac);
/* TODO not processed by NAS currently */ /* TODO not processed by NAS currently */
break; break;
case NAS_PAGING_IND: case NAS_PAGING_IND:
LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_PAGING_IND (msg_p).cause); NAS_PAGING_IND (msg_p).cause);
/* TODO not processed by NAS currently */ /* TODO not processed by NAS currently */
break; break;
case NAS_CONN_ESTABLI_CNF: case NAS_CONN_ESTABLI_CNF:
LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: errCode %u, length %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_CONN_ESTABLI_CNF (msg_p).errCode, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length); NAS_CONN_ESTABLI_CNF (msg_p).errCode, NAS_CONN_ESTABLI_CNF (msg_p).nasMsg.length);
if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS) if ((NAS_CONN_ESTABLI_CNF (msg_p).errCode == AS_SUCCESS)
@@ -221,14 +219,14 @@ void *nas_ue_task(void *args_p)
break; break;
case NAS_CONN_RELEASE_IND: case NAS_CONN_RELEASE_IND:
LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: cause %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_CONN_RELEASE_IND (msg_p).cause); NAS_CONN_RELEASE_IND (msg_p).cause);
nas_proc_release_ind (user, NAS_CONN_RELEASE_IND (msg_p).cause); nas_proc_release_ind (user, NAS_CONN_RELEASE_IND (msg_p).cause);
break; break;
case NAS_UPLINK_DATA_CNF: case NAS_UPLINK_DATA_CNF:
LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: UEid %u, errCode %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode); NAS_UPLINK_DATA_CNF (msg_p).UEid, NAS_UPLINK_DATA_CNF (msg_p).errCode);
if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) { if (NAS_UPLINK_DATA_CNF (msg_p).errCode == AS_SUCCESS) {
@@ -240,7 +238,7 @@ void *nas_ue_task(void *args_p)
break; break;
case NAS_DOWNLINK_DATA_IND: case NAS_DOWNLINK_DATA_IND:
LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, msg_name, LOG_I(NAS, "[UE %d] Received %s: UEid %u, length %u\n", Mod_id, ITTI_MSG_NAME (msg_p),
NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length); NAS_DOWNLINK_DATA_IND (msg_p).UEid, NAS_DOWNLINK_DATA_IND (msg_p).nasMsg.length);
nas_proc_dl_transfer_ind (user, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length); nas_proc_dl_transfer_ind (user, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data, NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length);
@@ -254,7 +252,7 @@ void *nas_ue_task(void *args_p)
break; break;
default: default:
LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id, msg_name); LOG_E(NAS, "[UE %d] Received unexpected message %s\n", Mod_id, ITTI_MSG_NAME (msg_p));
break; break;
} }
+6 -5
View File
@@ -147,14 +147,15 @@ s1ap_message_decoded_callback messages_callback[][3] = {
{ 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */ { 0, 0, 0 }, /* UplinkNonUEAssociatedLPPaTransport */
#endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */ #endif /* #if (S1AP_VERSION >= MAKE_VERSION(9, 0, 0)) */
}; };
char *s1ap_direction2String(int s1ap_dir) {
static const char *s1ap_direction2String[] = { static char *s1ap_direction_String[] = {
"", /* Nothing */ "", /* Nothing */
"Originating message", /* originating message */ "Originating message", /* originating message */
"Successfull outcome", /* successfull outcome */ "Successfull outcome", /* successfull outcome */
"UnSuccessfull outcome", /* successfull outcome */ "UnSuccessfull outcome", /* successfull outcome */
}; };
return(s1ap_direction_String[s1ap_dir]);
}
void s1ap_handle_s1_setup_message(s1ap_eNB_mme_data_t *mme_desc_p, int sctp_shutdown) void s1ap_handle_s1_setup_message(s1ap_eNB_mme_data_t *mme_desc_p, int sctp_shutdown)
{ {
if (sctp_shutdown) { if (sctp_shutdown) {
@@ -230,7 +231,7 @@ int s1ap_eNB_handle_message(uint32_t assoc_id, int32_t stream,
if (messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) { if (messages_callback[pdu.choice.initiatingMessage.procedureCode][pdu.present - 1] == NULL) {
S1AP_ERROR("[SCTP %d] No handler for procedureCode %ld in %s\n", S1AP_ERROR("[SCTP %d] No handler for procedureCode %ld in %s\n",
assoc_id, pdu.choice.initiatingMessage.procedureCode, assoc_id, pdu.choice.initiatingMessage.procedureCode,
s1ap_direction2String[pdu.present - 1]); s1ap_direction2String(pdu.present - 1));
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu); ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1AP_S1AP_PDU, &pdu);
return -1; return -1;
} }
@@ -852,7 +853,7 @@ int s1ap_eNB_handle_ue_context_release_command(uint32_t assoc_id,
MSC_S1AP_MME, MSC_S1AP_MME,
NULL,0, NULL,0,
"0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u", "0 UEContextRelease/%s eNB_ue_s1ap_id "S1AP_UE_ID_FMT" mme_ue_s1ap_id "S1AP_UE_ID_FMT" len %u",
s1ap_direction2String[pdu->present - 1], s1ap_direction2String(pdu->present - 1),
enb_ue_s1ap_id, enb_ue_s1ap_id,
mme_ue_s1ap_id); mme_ue_s1ap_id);
+25 -78
View File
@@ -435,7 +435,7 @@ void init_UE_stub(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_ifa
static void *UE_thread_synch(void *arg) static void *UE_thread_synch(void *arg)
{ {
static int UE_thread_synch_retval; static int UE_thread_synch_retval;
int i, hw_slot_offset; int i ;
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;
@@ -573,9 +573,8 @@ static void *UE_thread_synch(void *arg)
#endif #endif
if (initial_sync( UE, UE->mode ) == 0) { if (initial_sync( UE, UE->mode ) == 0) {
hw_slot_offset = (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti;
LOG_I( HW, "Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d\n", LOG_I( HW, "Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %u, UL %u), UE_scan_carrier %d\n",
hw_slot_offset, (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti,
freq_offset, freq_offset,
UE->rx_total_gain_dB, UE->rx_total_gain_dB,
downlink_frequency[0][0]+freq_offset, downlink_frequency[0][0]+freq_offset,
@@ -738,13 +737,23 @@ static void *UE_thread_synch(void *arg)
* \param arg is a pointer to a \ref PHY_VARS_UE structure. * \param arg is a pointer to a \ref PHY_VARS_UE structure.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
const char * get_connectionloss_errstr(int errcode) {
switch (errcode) {
case CONNECTION_LOST:
return "RRC Connection lost, returning to PRACH";
case PHY_RESYNCH:
return "RRC Connection lost, trying to resynch";
case RESYNCH:
return "return to PRACH and perform a contention-free access";
};
return "UNKNOWN RETURN CODE";
}
static void *UE_thread_rxn_txnp4(void *arg) { static void *UE_thread_rxn_txnp4(void *arg) {
static __thread int UE_thread_rxtx_retval; static __thread int UE_thread_rxtx_retval;
struct rx_tx_thread_data *rtd = arg; struct rx_tx_thread_data *rtd = arg;
UE_rxtx_proc_t *proc = rtd->proc; UE_rxtx_proc_t *proc = rtd->proc;
PHY_VARS_UE *UE = rtd->UE; PHY_VARS_UE *UE = rtd->UE;
int ret;
proc->instance_cnt_rxtx=-1; proc->instance_cnt_rxtx=-1;
proc->subframe_rx=proc->sub_frame_start; proc->subframe_rx=proc->sub_frame_start;
@@ -817,7 +826,7 @@ static void *UE_thread_rxn_txnp4(void *arg) {
#endif #endif
if (UE->mac_enabled==1) { if (UE->mac_enabled==1) {
ret = ue_scheduler(UE->Mod_id, int ret = ue_scheduler(UE->Mod_id,
proc->frame_rx, proc->frame_rx,
proc->subframe_rx, proc->subframe_rx,
proc->frame_tx, proc->frame_tx,
@@ -826,22 +835,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
0, 0,
0/*FIXME CC_id*/); 0/*FIXME CC_id*/);
if ( ret != CONNECTION_OK) { if ( ret != CONNECTION_OK) {
char *txt;
switch (ret) {
case CONNECTION_LOST:
txt="RRC Connection lost, returning to PRACH";
break;
case PHY_RESYNCH:
txt="RRC Connection lost, trying to resynch";
break;
case RESYNCH:
txt="return to PRACH and perform a contention-free access";
break;
default:
txt="UNKNOWN RETURN CODE";
};
LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
} }
} }
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
@@ -973,12 +968,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
PHY_VARS_UE *UE; //= rtd->UE; PHY_VARS_UE *UE; //= rtd->UE;
int ret; int ret;
// double t_diff;
char threadname[256];
//sprintf(threadname,"UE_%d_proc", UE->Mod_id);
//proc->instance_cnt_rxtx=-1;
phy_stub_ticking->ticking_var = -1; phy_stub_ticking->ticking_var = -1;
proc->subframe_rx=proc->sub_frame_start; proc->subframe_rx=proc->sub_frame_start;
@@ -1050,15 +1040,13 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
(sf_type == SF_S)) { (sf_type == SF_S)) {
if (UE->frame_parms.frame_type == TDD) { if (UE->frame_parms.frame_type == TDD) {
LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", LOG_D(PHY, "TDD%d,%s: calling UE_RX\n",
threadname,
UE->frame_parms.tdd_config, UE->frame_parms.tdd_config,
(sf_type==SF_DL? "SF_DL" : (sf_type==SF_DL? "SF_DL" :
(sf_type==SF_UL? "SF_UL" : (sf_type==SF_UL? "SF_UL" :
(sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE"))));
} else { } else {
LOG_D(PHY, "%s,%s,%s: calling UE_RX\n", LOG_D(PHY, "%s,%s: calling UE_RX\n",
threadname,
(UE->frame_parms.frame_type==FDD? "FDD": (UE->frame_parms.frame_type==FDD? "FDD":
(UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")),
(sf_type==SF_DL? "SF_DL" : (sf_type==SF_DL? "SF_DL" :
@@ -1099,22 +1087,8 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) {
0, 0,
0/*FIXME CC_id*/); 0/*FIXME CC_id*/);
if ( ret != CONNECTION_OK) { if ( ret != CONNECTION_OK) {
char *txt;
switch (ret) {
case CONNECTION_LOST:
txt="RRC Connection lost, returning to PRACH";
break;
case PHY_RESYNCH:
txt="RRC Connection lost, trying to resynch";
break;
case RESYNCH:
txt="return to PRACH and perform a contention-free access";
break;
default:
txt="UNKNOWN RETURN CODE";
};
LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
} }
} }
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
@@ -1281,14 +1255,6 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
struct rx_tx_thread_data *rtd = arg; struct rx_tx_thread_data *rtd = arg;
UE_rxtx_proc_t *proc = rtd->proc; UE_rxtx_proc_t *proc = rtd->proc;
PHY_VARS_UE *UE = rtd->UE; PHY_VARS_UE *UE = rtd->UE;
int ret;
// double t_diff;
char threadname[256];
sprintf(threadname,"UE_%d_proc", UE->Mod_id);
//proc->instance_cnt_rxtx=-1;
phy_stub_ticking->ticking_var = -1; phy_stub_ticking->ticking_var = -1;
proc->subframe_rx=proc->sub_frame_start; proc->subframe_rx=proc->sub_frame_start;
@@ -1327,15 +1293,13 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
(sf_type == SF_S)) { (sf_type == SF_S)) {
if (UE->frame_parms.frame_type == TDD) { if (UE->frame_parms.frame_type == TDD) {
LOG_D(PHY, "%s,TDD%d,%s: calling UE_RX\n", LOG_D(PHY, "TDD%d,%s: calling UE_RX\n",
threadname,
UE->frame_parms.tdd_config, UE->frame_parms.tdd_config,
(sf_type==SF_DL? "SF_DL" : (sf_type==SF_DL? "SF_DL" :
(sf_type==SF_UL? "SF_UL" : (sf_type==SF_UL? "SF_UL" :
(sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE")))); (sf_type==SF_S ? "SF_S" : "UNKNOWN_SF_TYPE"))));
} else { } else {
LOG_D(PHY, "%s,%s,%s: calling UE_RX\n", LOG_D(PHY, "%s,%s: calling UE_RX\n",
threadname,
(UE->frame_parms.frame_type==FDD? "FDD": (UE->frame_parms.frame_type==FDD? "FDD":
(UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")), (UE->frame_parms.frame_type==TDD? "TDD":"UNKNOWN_DUPLEX_MODE")),
(sf_type==SF_DL? "SF_DL" : (sf_type==SF_DL? "SF_DL" :
@@ -1379,7 +1343,7 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
#endif #endif
if (UE->mac_enabled==1) { if (UE->mac_enabled==1) {
ret = ue_scheduler(UE->Mod_id, int ret = ue_scheduler(UE->Mod_id,
proc->frame_rx, proc->frame_rx,
proc->subframe_rx, proc->subframe_rx,
proc->frame_tx, proc->frame_tx,
@@ -1387,24 +1351,9 @@ static void *UE_phy_stub_thread_rxn_txnp4(void *arg) {
subframe_select(&UE->frame_parms,proc->subframe_tx), subframe_select(&UE->frame_parms,proc->subframe_tx),
0, 0,
0); 0);
if ( ret != CONNECTION_OK) { if (ret != CONNECTION_OK)
char *txt;
switch (ret) {
case CONNECTION_LOST:
txt="RRC Connection lost, returning to PRACH";
break;
case PHY_RESYNCH:
txt="RRC Connection lost, trying to resynch";
break;
case RESYNCH:
txt="return to PRACH and perform a contention-free access";
break;
default:
txt="UNKNOWN RETURN CODE";
};
LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n", LOG_E( PHY, "[UE %"PRIu8"] Frame %"PRIu32", subframe %u %s\n",
UE->Mod_id, proc->frame_rx, proc->subframe_tx,txt ); UE->Mod_id, proc->frame_rx, proc->subframe_tx,get_connectionloss_errstr(ret) );
}
} }
#if UE_TIMING_TRACE #if UE_TIMING_TRACE
stop_meas(&UE->generic_stat); stop_meas(&UE->generic_stat);
@@ -1941,10 +1890,8 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
int i, CC_id; int i, CC_id;
LTE_DL_FRAME_PARMS *frame_parms; LTE_DL_FRAME_PARMS *frame_parms;
openair0_rf_map *rf_map;
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
rf_map = &phy_vars_ue[CC_id]->rf_map;
AssertFatal( phy_vars_ue[CC_id] !=0, ""); AssertFatal( phy_vars_ue[CC_id] !=0, "");
frame_parms = &(phy_vars_ue[CC_id]->frame_parms); frame_parms = &(phy_vars_ue[CC_id]->frame_parms);
@@ -1955,7 +1902,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
for (i=0; i<frame_parms->nb_antennas_rx; i++) { for (i=0; i<frame_parms->nb_antennas_rx; i++) {
LOG_I(PHY, "Mapping UE CC_id %d, rx_ant %d, freq %u on card %d, chain %d\n", LOG_I(PHY, "Mapping UE CC_id %d, rx_ant %d, freq %u on card %d, chain %d\n",
CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i ); CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i );
free( phy_vars_ue[CC_id]->common_vars.rxdata[i] ); free( phy_vars_ue[CC_id]->common_vars.rxdata[i] );
rxdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) ); rxdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) );
phy_vars_ue[CC_id]->common_vars.rxdata[i] = rxdata[i]; // what about the "-N_TA_offset" ? // N_TA offset for TDD phy_vars_ue[CC_id]->common_vars.rxdata[i] = rxdata[i]; // what about the "-N_TA_offset" ? // N_TA offset for TDD
@@ -1963,7 +1910,7 @@ int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg)
for (i=0; i<frame_parms->nb_antennas_tx; i++) { for (i=0; i<frame_parms->nb_antennas_tx; i++) {
LOG_I(PHY, "Mapping UE CC_id %d, tx_ant %d, freq %u on card %d, chain %d\n", LOG_I(PHY, "Mapping UE CC_id %d, tx_ant %d, freq %u on card %d, chain %d\n",
CC_id, i, downlink_frequency[CC_id][i], rf_map->card, rf_map->chain+i ); CC_id, i, downlink_frequency[CC_id][i], phy_vars_ue[CC_id]->rf_map.card, (phy_vars_ue[CC_id]->rf_map.chain)+i );
free( phy_vars_ue[CC_id]->common_vars.txdata[i] ); free( phy_vars_ue[CC_id]->common_vars.txdata[i] );
txdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) ); txdata[i] = (int32_t*)malloc16_clear( 307200*sizeof(int32_t) );
phy_vars_ue[CC_id]->common_vars.txdata[i] = txdata[i]; phy_vars_ue[CC_id]->common_vars.txdata[i] = txdata[i];
+10 -9
View File
@@ -327,6 +327,7 @@ void exit_fun(const char* s)
{ {
int CC_id; int CC_id;
logClean();
if (s != NULL) { if (s != NULL) {
printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s); printf("%s %s() Exiting OAI softmodem: %s\n",__FILE__, __FUNCTION__, s);
} }
@@ -830,17 +831,17 @@ int main( int argc, char **argv )
set_taus_seed (0); set_taus_seed (0);
set_log(HW, LOG_DEBUG, 1); set_log(HW, OAILOG_DEBUG, 1);
set_log(PHY, LOG_INFO, 1); set_log(PHY, OAILOG_INFO, 1);
set_log(MAC, LOG_INFO, 1); set_log(MAC, OAILOG_INFO, 1);
set_log(RLC, LOG_INFO, 1); set_log(RLC, OAILOG_INFO, 1);
set_log(PDCP, LOG_INFO, 1); set_log(PDCP, OAILOG_INFO, 1);
set_log(OTG, LOG_INFO, 1); set_log(OTG, OAILOG_INFO, 1);
set_log(RRC, LOG_INFO, 1); set_log(RRC, OAILOG_INFO, 1);
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
set_comp_log(SIM, LOG_INFO, 1); set_log(SIM, OAILOG_INFO, 1);
# if defined(ENABLE_USE_MME) # if defined(ENABLE_USE_MME)
set_log(NAS, LOG_INFO, 1); set_log(NAS, OAILOG_INFO, 1);
# endif # endif
#endif #endif
+1 -1
View File
@@ -51,7 +51,7 @@
#include "common/ran_context.h" #include "common/ran_context.h"
#include "PHY/defs_UE.h" #include "PHY/defs_UE.h"
#include "PHY/defs_eNB.h" #include "PHY/defs_eNB.h"
#include "vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
RAN_CONTEXT_t RC; RAN_CONTEXT_t RC;
extern PHY_VARS_UE ***PHY_vars_UE_g; extern PHY_VARS_UE ***PHY_vars_UE_g;