log.c simplification, fix usefull functionality which never worked, move all log code from openair2 to common

This commit is contained in:
frtabu
2018-07-30 20:07:22 +02:00
parent c30a2fa607
commit b85cbddeec
152 changed files with 1247 additions and 1907 deletions
+2 -2
View File
@@ -897,7 +897,7 @@ set(UTIL_SRC
${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c ${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c
${OPENAIR2_DIR}/UTIL/LISTS/list.c ${OPENAIR2_DIR}/UTIL/LISTS/list.c
${OPENAIR2_DIR}/UTIL/LISTS/list2.c ${OPENAIR2_DIR}/UTIL/LISTS/list2.c
${OPENAIR2_DIR}/UTIL/LOG/log.c ${OPENAIR_DIR}/common/utils/LOG/log.c
# ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c # ${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c
${OPENAIR2_DIR}/UTIL/MATH/oml.c ${OPENAIR2_DIR}/UTIL/MATH/oml.c
${OPENAIR2_DIR}/UTIL/MEM/mem_block.c ${OPENAIR2_DIR}/UTIL/MEM/mem_block.c
@@ -2175,7 +2175,7 @@ if (${T_TRACER})
#all "add_executable" definitions (except tests, rb_tool, updatefw) #all "add_executable" definitions (except tests, rb_tool, updatefw)
lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1 lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
pdcchsim pucchsim prachsim syncsim pdcchsim pucchsim prachsim syncsim ulsim
#all "add_library" definitions #all "add_library" definitions
ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB
oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
+43 -11
View File
@@ -37,6 +37,35 @@
#include <errno.h> #include <errno.h>
#include "config_userapi.h" #include "config_userapi.h"
void parse_stringlist(paramdef_t *cfgoptions, char *val)
{
char *atoken;
char *tokctx;
char *tmpval=strdup(val);
int numelt=0;
cfgoptions->numelt=0;
atoken=strtok_r(tmpval, ",",&tokctx);
while(atoken != NULL) {
numelt++ ;
atoken=strtok_r(NULL, ",",&tokctx);
}
free(tmpval);
config_check_valptr(cfgoptions,(char **)&(cfgoptions->strlistptr), sizeof(char *) * numelt);
cfgoptions->numelt=numelt;
atoken=strtok_r(val, ",",&tokctx);
for( int i=0; i<cfgoptions->numelt && atoken != NULL ; i++) {
config_check_valptr(cfgoptions,&(cfgoptions->strlistptr[i]),strlen(atoken)+1);
sprintf(cfgoptions->strlistptr[i],"%s",atoken);
printf_params("[LIBCONFIG] %s[%i]: %s\n", cfgoptions->optname,i,cfgoptions->strlistptr[i]);
atoken=strtok_r(NULL, ",",&tokctx);
}
cfgoptions->numelt=numelt;
}
int processoption(paramdef_t *cfgoptions, char *value) int processoption(paramdef_t *cfgoptions, char *value)
{ {
char *tmpval = value; char *tmpval = value;
@@ -66,6 +95,7 @@ char defbool[2]="1";
break; break;
case TYPE_STRINGLIST: case TYPE_STRINGLIST:
parse_stringlist(cfgoptions,tmpval);
break; break;
case TYPE_UINT32: case TYPE_UINT32:
case TYPE_INT32: case TYPE_INT32:
@@ -140,7 +170,7 @@ char *cfgpath;
exit_fun("[CONFIG] Exiting after displaying help\n"); exit_fun("[CONFIG] Exiting after displaying help\n");
} }
} else { } else {
pp=strtok_r(NULL, "_",&tokctx); pp=strtok_r(NULL, " ",&tokctx);
if ( prefix != NULL && pp != NULL && strncasecmp(prefix,pp,strlen(pp)) == 0 ) { if ( prefix != NULL && pp != NULL && strncasecmp(prefix,pp,strlen(pp)) == 0 ) {
printf ("Help for %s section:\n",prefix); printf ("Help for %s section:\n",prefix);
config_printhelp(cfgoptions,numoptions); config_printhelp(cfgoptions,numoptions);
@@ -167,17 +197,19 @@ char *cfgpath;
((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) ) { ((strlen(oneargv) > 2) && (strcmp(oneargv + 2,cfgpath ) == 0 )) ) {
char *valptr=NULL; char *valptr=NULL;
int ret; int ret;
pp = config_get_if()->argv[i+1]; if (c > 0) {
if (pp != NULL && c > 1) { pp = config_get_if()->argv[i+1];
ret = strlen(pp); if (pp != NULL ) {
if (ret > 0 ) { ret = strlen(pp);
if (pp[0] != '-') if (ret > 0 ) {
valptr=pp; if (pp[0] != '-')
else if ( ret > 1 && pp[0] == '-' && isdigit(pp[1]) ) valptr=pp;
valptr=pp; else if ( ret > 1 && pp[0] == '-' && isdigit(pp[1]) )
} valptr=pp;
}
}
} }
j += processoption(&(cfgoptions[n]), pp); j += processoption(&(cfgoptions[n]), valptr);
if ( valptr != NULL ) { if ( valptr != NULL ) {
i++; i++;
c--; c--;
+699
View File
@@ -0,0 +1,699 @@
/*
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The OpenAirInterface Software Alliance licenses this file to You under
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
* except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.openairinterface.org/?page_id=698
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
* For more information about the OpenAirInterface (OAI) Software Alliance:
* contact@openairinterface.org
*/
/*! \file log.c
* \brief log implementaion
* \author Navid Nikaein
* \date 2009 - 2014
* \version 0.5
* @ingroup util
*/
#define _GNU_SOURCE /* required for pthread_getname_np */
//#define LOG_TEST 1
#define COMPONENT_LOG
#define COMPONENT_LOG_IF
#include <ctype.h>
#define LOG_MAIN
#include "log.h"
#include "vcd_signal_dumper.h"
#include "assertions.h"
#if defined(ENABLE_ITTI)
# include "intertask_interface.h"
#endif
# include <pthread.h>
# include <string.h>
#include <linux/prctl.h>
#include "common/config/config_userapi.h"
// main log variables
mapping log_level_names[] = {
{"error", OAILOG_ERR},
{"file", OAILOG_FILE},
{"warn", OAILOG_WARNING},
{"info", OAILOG_INFO},
{"debug", OAILOG_DEBUG},
{"trace", OAILOG_TRACE},
{NULL, -1}
};
mapping log_options[] = {
{"nocolor", FLAG_NOCOLOR },
{"level", FLAG_LEVEL },
{"thread", FLAG_THREAD },
{NULL,-1}
};
mapping log_maskmap[] = {
{"prach", DEBUG_PRACH},
{"RU", DEBUG_RU},
{NULL,-1}
};
char *log_level_highlight_start[] = {LOG_RED, LOG_GREEN, LOG_ORANGE, "", LOG_BLUE, LOG_CYBL}; /*!< \brief Optional start-format strings for highlighting */
char *log_level_highlight_end[] = {LOG_RESET,LOG_RESET,LOG_RESET,LOG_RESET, LOG_RESET,LOG_RESET}; /*!< \brief Optional end-format strings for highlighting */
int write_file_matlab(const char *fname,const char *vname,void *data,int length,int dec,char format)
{
FILE *fp=NULL;
int i;
if (data == NULL)
return -1;
//printf("Writing %d elements of type %d to %s\n",length,format,fname);
if (format == 10 || format ==11 || format == 12 || format == 13 || format == 14) {
fp = fopen(fname,"a+");
} else if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14) {
fp = fopen(fname,"w+");
}
if (fp== NULL) {
printf("[OPENAIR][FILE OUTPUT] Cannot open file %s\n",fname);
return(-1);
}
if (format != 10 && format !=11 && format != 12 && format != 13 && format != 14)
fprintf(fp,"%s = [",vname);
switch (format) {
case 0: // real 16-bit
for (i=0; i<length; i+=dec) {
fprintf(fp,"%d\n",((short *)data)[i]);
}
break;
case 1: // complex 16-bit
case 13:
case 14:
case 15:
for (i=0; i<length<<1; i+=(2*dec)) {
fprintf(fp,"%d + j*(%d)\n",((short *)data)[i],((short *)data)[i+1]);
}
break;
case 2: // real 32-bit
for (i=0; i<length; i+=dec) {
fprintf(fp,"%d\n",((int *)data)[i]);
}
break;
case 3: // complex 32-bit
for (i=0; i<length<<1; i+=(2*dec)) {
fprintf(fp,"%d + j*(%d)\n",((int *)data)[i],((int *)data)[i+1]);
}
break;
case 4: // real 8-bit
for (i=0; i<length; i+=dec) {
fprintf(fp,"%d\n",((char *)data)[i]);
}
break;
case 5: // complex 8-bit
for (i=0; i<length<<1; i+=(2*dec)) {
fprintf(fp,"%d + j*(%d)\n",((char *)data)[i],((char *)data)[i+1]);
}
break;
case 6: // real 64-bit
for (i=0; i<length; i+=dec) {
fprintf(fp,"%lld\n",((long long*)data)[i]);
}
break;
case 7: // real double
for (i=0; i<length; i+=dec) {
fprintf(fp,"%g\n",((double *)data)[i]);
}
break;
case 8: // complex double
for (i=0; i<length<<1; i+=2*dec) {
fprintf(fp,"%g + j*(%g)\n",((double *)data)[i], ((double *)data)[i+1]);
}
break;
case 9: // real unsigned 8-bit
for (i=0; i<length; i+=dec) {
fprintf(fp,"%d\n",((unsigned char *)data)[i]);
}
break;
case 10 : // case eren 16 bit complex :
for (i=0; i<length<<1; i+=(2*dec)) {
if((i < 2*(length-1)) && (i > 0))
fprintf(fp,"%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
else if (i == 2*(length-1))
fprintf(fp,"%d + j*(%d);",((short *)data)[i],((short *)data)[i+1]);
else if (i == 0)
fprintf(fp,"\n%d + j*(%d),",((short *)data)[i],((short *)data)[i+1]);
}
break;
case 11 : //case eren 16 bit real for channel magnitudes:
for (i=0; i<length; i+=dec) {
if((i <(length-1))&& (i > 0))
fprintf(fp,"%d,",((short *)data)[i]);
else if (i == (length-1))
fprintf(fp,"%d;",((short *)data)[i]);
else if (i == 0)
fprintf(fp,"\n%d,",((short *)data)[i]);
}
printf("\n eren: length :%d",length);
break;
case 12 : // case eren for log2_maxh real unsigned 8 bit
fprintf(fp,"%d \n",((unsigned char *)&data)[0]);
break;
}
if (format != 10 && format !=11 && format !=12 && format != 13 && format != 15) {
fprintf(fp,"];\n");
fclose(fp);
return(0);
} else if (format == 10 || format ==11 || format == 12 || format == 13 || format == 15) {
fclose(fp);
return(0);
}
return 0;
}
/* get log parameters from configuration file */
void log_getconfig(log_t *g_log) {
char *gloglevel = NULL;
int level;
paramdef_t logparams_defaults[] = LOG_GLOBALPARAMS_DESC;
paramdef_t logparams_level[MAX_LOG_PREDEF_COMPONENTS];
paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS];
paramdef_t logparams_debug[sizeof(log_maskmap)/sizeof(mapping)];
paramdef_t logparams_matlab[sizeof(log_maskmap)/sizeof(mapping)];
int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX);
if (ret <0) {
fprintf(stderr,"[LOG] init aborted, configuration couldn't be performed");
return;
}
for(int i=0; i<logparams_defaults[LOG_OPTIONS_IDX].numelt ; i++) {
for(int j=0; log_options[j].name != NULL ; j++) {
if (strcmp(logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i],log_options[j].name) == 0) {
g_log->flag = g_log->flag | log_options[j].value;
break;
} else if (log_options[j+1].name == NULL){
fprintf(stderr,"Unknown log option: %s\n",logparams_defaults[LOG_OPTIONS_IDX].strlistptr[i]);
exit(-1);
}
}
}
/* build the parameter array for setting per component log level and infile options */
memset(logparams_level, 0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
memset(logparams_logfile, 0, sizeof(paramdef_t)*MAX_LOG_PREDEF_COMPONENTS);
for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
if(g_log->log_component[i].name == NULL) {
g_log->log_component[i].name = malloc(16);
sprintf((char *)g_log->log_component[i].name,"comp%i?",i);
logparams_logfile[i].paramflags = PARAMFLAG_DONOTREAD;
logparams_level[i].paramflags = PARAMFLAG_DONOTREAD;
}
sprintf(logparams_level[i].optname, LOG_CONFIG_LEVEL_FORMAT, g_log->log_component[i].name);
sprintf(logparams_logfile[i].optname, LOG_CONFIG_LOGFILE_FORMAT, g_log->log_component[i].name);
/* workaround: all log options in existing configuration files use lower case component names
where component names include uppercase char in log.h.... */
for (int j=0 ; j<strlen(logparams_level[i].optname); j++)
logparams_level[i].optname[j] = tolower(logparams_level[i].optname[j]);
for (int j=0 ; j<strlen(logparams_level[i].optname); j++)
logparams_logfile[i].optname[j] = tolower(logparams_logfile[i].optname[j]);
/* */
logparams_level[i].defstrval = gloglevel;
logparams_logfile[i].defuintval = 0;
logparams_logfile[i].numelt = 0;
logparams_level[i].numelt = 0;
logparams_level[i].type = TYPE_STRING;
logparams_logfile[i].type = TYPE_UINT;
logparams_logfile[i].paramflags = logparams_logfile[i].paramflags|PARAMFLAG_BOOL;
}
/* read the per component parameters */
config_get( logparams_level, MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX);
config_get( logparams_logfile, MAX_LOG_PREDEF_COMPONENTS,CONFIG_STRING_LOG_PREFIX);
/* now set the log levels and infile option, according to what we read */
for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_PREDEF_COMPONENTS; i++) {
level = map_str_to_int(log_level_names, *(logparams_level[i].strptr));
set_log(i, level,1);
if (*(logparams_logfile[i].uptr) == 1)
set_component_filelog(i);
}
/* build then read the debug and matlab parameter array */
for (int i=0;log_maskmap[i].name != NULL ; i++) {
sprintf(logparams_debug[i].optname, LOG_CONFIG_DEBUG_FORMAT, log_maskmap[i].name);
sprintf(logparams_matlab[i].optname, LOG_CONFIG_MATLAB_FORMAT, log_maskmap[i].name);
logparams_debug[i].defuintval = 0;
logparams_debug[i].type = TYPE_UINT;
logparams_debug[i].paramflags = PARAMFLAG_BOOL;
logparams_debug[i].numelt = 0;
logparams_matlab[i].defuintval = 0;
logparams_matlab[i].type = TYPE_UINT;
logparams_matlab[i].paramflags = PARAMFLAG_BOOL;
logparams_matlab[i].numelt = 0;
}
config_get( logparams_debug,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
config_get( logparams_matlab,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX);
/* set the debug mask according to the debug parameters values */
for (int i=0; log_maskmap[i].name != NULL ; i++) {
if (*(logparams_debug[i].uptr) )
g_log->debug_mask = g_log->debug_mask | log_maskmap[i].value;
if (*(logparams_matlab[i].uptr) )
g_log->matlab_mask = g_log->matlab_mask | log_maskmap[i].value;
}
}
int register_log_component(char *name, char *fext, int compidx)
{
int computed_compidx=compidx;
if (strlen(fext) > 3) {
fext[3]=0; /* limit log file extension to 3 chars */
}
if (compidx < 0) { /* this is not a pre-defined component */
for (int i = MAX_LOG_PREDEF_COMPONENTS; i< MAX_LOG_COMPONENTS; i++) {
if (g_log->log_component[i].name == NULL) {
computed_compidx=i;
break;
}
}
}
if (computed_compidx >= 0 && computed_compidx <MAX_LOG_COMPONENTS) {
g_log->log_component[computed_compidx].name = strdup(name);
g_log->log_component[computed_compidx].level = LOG_ERR;
g_log->log_component[computed_compidx].interval = 1;
g_log->log_component[computed_compidx].stream = NULL;
g_log->log_component[computed_compidx].filelog = 0;
g_log->log_component[computed_compidx].filelog_name = malloc(strlen(name)+16);/* /tmp/<name>.%s rounded to ^2 */
sprintf(g_log->log_component[computed_compidx].filelog_name,"/tmp/%s.%s",name,fext);
} else {
fprintf(stderr,"{LOG} %s %d Couldn't register componemt %s\n",__FILE__,__LINE__,name);
}
return computed_compidx;
}
int logInit (void)
{
int i;
g_log = calloc(1, sizeof(log_t));
if (g_log == NULL) {
perror ("cannot allocated memory for log generation module \n");
exit(EXIT_FAILURE);
}
memset(g_log,0,sizeof(log_t));
register_log_component("PHY","log",PHY);
register_log_component("MAC","log",MAC);
register_log_component("OPT","log",OPT);
register_log_component("RLC","log",RLC);
register_log_component("PDCP","log",PDCP);
register_log_component("RRC","log",RRC);
register_log_component("EMU","log",EMU);
register_log_component("OMG","csv",OMG);
register_log_component("OTG","log",OTG);
register_log_component("OTG_LATENCY","dat",OTG_LATENCY);
register_log_component("OTG_LATENCY_BG","dat",OTG_LATENCY_BG);
register_log_component("OTG_GP","dat",OTG_GP);
register_log_component("OTG_GP_BG","dat",OTG_GP_BG);
register_log_component("OTG_JITTER","dat",OTG_JITTER);
register_log_component("OCG","",OCG);
register_log_component("PERF","",PERF);
register_log_component("OIP","",OIP);
register_log_component("CLI","",CLI);
register_log_component("MSC","log",MSC);
register_log_component("OCM","log",OCM);
register_log_component("HW","",HW);
register_log_component("OSA","",OSA);
register_log_component("eRAL","",RAL_ENB);
register_log_component("mRAL","",RAL_UE);
register_log_component("ENB_APP","log",ENB_APP);
register_log_component("FLEXRAN_AGENT","log",FLEXRAN_AGENT);
register_log_component("TMR","",TMR);
register_log_component("USIM","txt",USIM);
/* following log component are used for the localization*/
register_log_component("LOCALIZE","log",LOCALIZE);
register_log_component("NAS","log",NAS);
register_log_component("UDP","",UDP_);
register_log_component("GTPV1U","",GTPU);
register_log_component("S1AP","",S1AP);
register_log_component("SCTP","",SCTP);
register_log_component("RRH","",RRH);
g_log->level2string[OAILOG_ERR] = "E"; // ERROR
g_log->level2string[OAILOG_WARNING] = "W"; // WARNING
g_log->level2string[OAILOG_INFO] = "I"; //INFO
g_log->level2string[OAILOG_DEBUG] = "D"; // DEBUG
g_log->level2string[OAILOG_FILE] = "F"; // file
g_log->level2string[OAILOG_TRACE] = "T"; // TRACE
g_log->onlinelog = 1; //online log file
g_log->filelog = 0;
g_log->filelog_name = "/tmp/openair.log";
log_getconfig(g_log);
// could put a loop here to check for all comps
for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
if (g_log->log_component[i].filelog == 1 ) {
g_log->log_component[i].stream = fopen(g_log->log_component[i].filelog_name,"w");
g_log->log_component[i].fwrite = vfprintf;
} else if (g_log->log_component[i].filelog == 1 ) {
g_log->log_component[i].stream = fopen(g_log->filelog_name,"w");
g_log->log_component[i].fwrite = vfprintf;
} else if (g_log->onlinelog == 1 ) {
g_log->log_component[i].stream = stdout;
g_log->log_component[i].fwrite = vfprintf;
}
}
// set all unused component items to 0, they are for non predefined components
for (i=MAX_LOG_PREDEF_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
memset(&(g_log->log_component[i]),0,sizeof(log_component_t));
}
printf("log init done\n");
return 0;
}
char *log_getthreadname(char *threadname) {
if (pthread_getname_np(pthread_self(), threadname, sizeof(threadname)) != 0)
{
return "thread?";
} else {
return threadname;
}
}
void logRecord_mt(const char *file, const char *func, int line, int comp, int level, const char* format, ... )
{
char threadname[PR_SET_NAME];
char log_buffer[MAX_LOG_TOTAL];
va_list args;
va_start(args, format);
snprintf(log_buffer, MAX_LOG_TOTAL , "%s%s[%s]%s %s %s",
log_level_highlight_end[level],
( (g_log->flag & FLAG_NOCOLOR)?"":log_level_highlight_start[level]),
g_log->log_component[comp].name,
( (g_log->flag & FLAG_LEVEL)?g_log->level2string[level]:""),
( (g_log->flag & FLAG_THREAD)?log_getthreadname(threadname):""),
format);
g_log->log_component[comp].fwrite(g_log->log_component[comp].stream,log_buffer, args);
va_end(args);
}
int set_log(int component, int level, int interval)
{
/* Checking parameters */
DevCheck((component >= MIN_LOG_COMPONENTS) && (component < MAX_LOG_COMPONENTS),
component, MIN_LOG_COMPONENTS, MAX_LOG_COMPONENTS);
DevCheck((level < NUM_LOG_LEVEL) && (level >= OAILOG_ERR), level, NUM_LOG_LEVEL,
OAILOG_ERR);
DevCheck((interval >= 0) && (interval <= 0xFF), interval, 0, 0xFF);
g_log->log_component[component].level = level;
g_log->log_component[component].interval = interval;
return 0;
}
void set_glog(int level)
{
for (int c=0; c< MAX_LOG_COMPONENTS; c++ ) {
g_log->log_component[c].level = level;
}
}
void set_glog_onlinelog(int enable)
{
g_log->onlinelog = enable;
}
void set_glog_filelog(int enable)
{
g_log->filelog = enable;
}
void set_component_filelog(int comp)
{
if (g_log->log_component[comp].filelog == 0) {
g_log->log_component[comp].filelog = 1;
if (g_log->log_component[comp].stream == NULL) {
g_log->log_component[comp].stream = fopen(g_log->log_component[comp].filelog_name,"w");
}
}
}
/*
* for the two functions below, the passed array must have a final entry
* with string value NULL
*/
/* map a string to an int. Takes a mapping array and a string as arg */
int map_str_to_int(mapping *map, const char *str)
{
while (1) {
if (map->name == NULL) {
return(-1);
}
if (!strcmp(map->name, str)) {
return(map->value);
}
map++;
}
}
/* map an int to a string. Takes a mapping array and a value */
char *map_int_to_str(mapping *map, int val)
{
while (1) {
if (map->name == NULL) {
return NULL;
}
if (map->value == val) {
return map->name;
}
map++;
}
}
int is_newline( char *str, int size)
{
int i;
for ( i = 0; i < size; i++ ) {
if ( str[i] == '\n' ) {
return 1;
}
}
/* if we get all the way to here, there must not have been a newline! */
return 0;
}
void logClean (void)
{
int i;
LOG_I(PHY,"\n");
for (i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
if (g_log->log_component[i].stream != NULL) {
fclose(g_log->log_component[i].stream);
}
}
}
#ifdef LOG_TEST
int main(int argc, char *argv[])
{
logInit();
test_log();
return 1;
}
int test_log(void)
{
LOG_ENTER(MAC); // because the default level is DEBUG
LOG_I(EMU, "1 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_D(MAC, "1 debug MAC \n");
LOG_W(MAC, "1 warning MAC \n");
set_log(EMU, OAILOG_INFO, FLAG_ONLINE);
set_log(MAC, OAILOG_WARNING, 0);
LOG_I(EMU, "2 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_E(MAC, "2 error MAC\n");
LOG_D(MAC, "2 debug MAC \n");
LOG_W(MAC, "2 warning MAC \n");
LOG_I(MAC, "2 info MAC \n");
set_log(MAC, OAILOG_NOTICE, 1);
LOG_ENTER(MAC);
LOG_I(EMU, "3 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_D(MAC, "3 debug MAC \n");
LOG_W(MAC, "3 warning MAC \n");
LOG_I(MAC, "3 info MAC \n");
set_log(MAC, LOG_DEBUG,1);
set_log(EMU, LOG_DEBUG,1);
LOG_ENTER(MAC);
LOG_I(EMU, "4 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_D(MAC, "4 debug MAC \n");
LOG_W(MAC, "4 warning MAC \n");
LOG_I(MAC, "4 info MAC \n");
set_log(MAC, LOG_DEBUG,0);
set_log(EMU, LOG_DEBUG,0);
LOG_I(LOG, "5 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_D(MAC, "5 debug MAC \n");
LOG_W(MAC, "5 warning MAC \n");
LOG_I(MAC, "5 info MAC \n");
set_log(MAC, LOG_TRACE,0X07F);
set_log(EMU, LOG_TRACE,0X07F);
LOG_ENTER(MAC);
LOG_I(LOG, "6 Starting OAI logs version %s Build date: %s on %s\n",
BUILD_VERSION, BUILD_DATE, BUILD_HOST);
LOG_D(MAC, "6 debug MAC \n");
LOG_W(MAC, "6 warning MAC \n");
LOG_I(MAC, "6 info MAC \n");
LOG_EXIT(MAC);
return 0;
}
#endif
+101 -114
View File
@@ -52,7 +52,7 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#endif #endif
#include <pthread.h> #include <pthread.h>
#include "T.h"
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
#ifdef __cplusplus #ifdef __cplusplus
@@ -73,8 +73,7 @@ extern "C" {
* @ingroup _macro * @ingroup _macro
* @brief the macros that describe the maximum length of LOG * @brief the macros that describe the maximum length of LOG
* @{*/ * @{*/
#define MAX_LOG_ITEM 100 /*!< \brief the maximum length of a LOG item, what is LOG_ITEM ??? */
#define MAX_LOG_INFO 1000 /*!< \brief the maximum length of a log */
#define MAX_LOG_TOTAL 1500 /*!< \brief the maximum length of a log */ #define MAX_LOG_TOTAL 1500 /*!< \brief the maximum length of a log */
/* @}*/ /* @}*/
@@ -82,18 +81,15 @@ extern "C" {
* @ingroup _macro * @ingroup _macro
* @brief LOG defines 9 levels of messages for users. Importance of these levels decrease gradually from 0 to 8 * @brief LOG defines 9 levels of messages for users. Importance of these levels decrease gradually from 0 to 8
* @{*/ * @{*/
# define LOG_EMERG 0 /*!< \brief system is unusable */
# define LOG_ALERT 1 /*!< \brief action must be taken immediately */ # define OAILOG_ERR 0 /*!< \brief critical error conditions, impact on "must have" fuctinalities */
# define LOG_CRIT 2 /*!< \brief critical conditions */ # define OAILOG_FILE 1 /*!< \brief important informational messages, but everything OK */
# define LOG_ERR 3 /*!< \brief error conditions */ # define OAILOG_WARNING 2 /*!< \brief warning conditions, shouldn't happen but doesn't impact "must have" functionalities */
# define LOG_WARNING 4 /*!< \brief warning conditions */ # define OAILOG_INFO 3 /*!< \brief informational messages most people don't need, shouldn't impact real-time behavior */
# define LOG_NOTICE 5 /*!< \brief normal but significant condition */ # define OAILOG_DEBUG 4 /*!< \brief first level debug-level messages, for developers , may impact real-time behavior */
# define LOG_INFO 6 /*!< \brief informational */ # define OAILOG_TRACE 5 /*!< \brief second level debug-level messages, for developers ,likely impact real-time behavior*/
# define LOG_DEBUG 7 /*!< \brief debug-level messages */
# define LOG_FILE 8 /*!< \brief message sequence chart -level */ #define NUM_LOG_LEVEL 6 /*!< \brief the number of message levels users have with LOG */
# define LOG_TRACE 9 /*!< \brief trace-level messages */
# define LOG_MATLAB 10 /*!< \brief output to matlab file */
#define NUM_LOG_LEVEL 11 /*!< \brief the number of message levels users have with LOG */
/* @}*/ /* @}*/
@@ -104,7 +100,7 @@ extern "C" {
/* .log_format = 0x13 uncolored standard messages /* .log_format = 0x13 uncolored standard messages
* .log_format = 0x93 colored standard messages */ * .log_format = 0x93 colored standard messages */
/* keep white space in first position; switching it to 0 allows colors to be disabled*/
#define LOG_RED "\033[1;31m" /*!< \brief VT100 sequence for bold red foreground */ #define LOG_RED "\033[1;31m" /*!< \brief VT100 sequence for bold red foreground */
#define LOG_GREEN "\033[32m" /*!< \brief VT100 sequence for green foreground */ #define LOG_GREEN "\033[32m" /*!< \brief VT100 sequence for green foreground */
#define LOG_ORANGE "\033[93m" /*!< \brief VT100 sequence for orange foreground */ #define LOG_ORANGE "\033[93m" /*!< \brief VT100 sequence for orange foreground */
@@ -118,23 +114,33 @@ extern "C" {
* @ingroup _macro * @ingroup _macro
* @brief Macros used to write lines (local/remote) in syslog.conf * @brief Macros used to write lines (local/remote) in syslog.conf
* @{*/ * @{*/
#define LOG_LOCAL 0x01
#define LOG_REMOTE 0x02
#define FLAG_COLOR 0x001 /*!< \brief defaults */
#define FLAG_PID 0x002 /*!< \brief defaults */
#define FLAG_COMP 0x004
#define FLAG_THREAD 0x008 /*!< \brief all : 255/511 */
#define FLAG_LEVEL 0x010
#define FLAG_FUNCT 0x020
#define FLAG_FILE_LINE 0x040
#define FLAG_TIME 0x100
#define LOG_NONE 0x00 #define FLAG_NOCOLOR 0x0001 /*!< \brief use colors in log messages, depending on level */
#define LOG_LOW 0x5 #define FLAG_THREAD 0x0008 /*!< \brief display thread name in log messages */
#define LOG_MED 0x15 #define FLAG_LEVEL 0x0010 /*!< \brief display log level in log messages */
#define LOG_HIGH 0x35 #define FLAG_FUNCT 0x0020
#define LOG_FULL 0x75 #define FLAG_FILE_LINE 0x0040
#define FLAG_TIME 0x0100
#define SET_LOG_OPTION(O) g_log->flag = (g_log->flag | O)
#define CLEAR_LOG_OPTION(O) g_log->flag = (g_log->flag & (~O))
/** @defgroup macros to identify a debug entity
* @ingroup each macro is a bit mask where the unique bit set identifies an entity to be debugged
* it allows to dynamically activate or not blocks of code
* @brief
* @{*/
#define DEBUG_PRACH (1<<0)
#define DEBUG_RU (1<<1)
#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 SET_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask | O)
#define CLEAR_LOG_MATLAB(O) g_log->matlab_mask = (g_log->matlab_mask & (~O))
/* @}*/
#define OAI_OK 0 /*!< \brief all ok */ #define OAI_OK 0 /*!< \brief all ok */
#define OAI_ERR 1 /*!< \brief generic error */ #define OAI_ERR 1 /*!< \brief generic error */
@@ -143,10 +149,6 @@ extern "C" {
/* @}*/ /* @}*/
//static char *log_level_highlight_start[] = {LOG_RED, LOG_RED, LOG_RED, LOG_RED, LOG_BLUE, "", "", "", LOG_GREEN}; /*!< \brief Optional start-format strings for highlighting */
//static char *log_level_highlight_end[] = {LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, LOG_RESET, "", "", "", LOG_RESET}; /*!< \brief Optional end-format strings for highlighting */
typedef enum { typedef enum {
MIN_LOG_COMPONENTS = 0, MIN_LOG_COMPONENTS = 0,
PHY = MIN_LOG_COMPONENTS, PHY = MIN_LOG_COMPONENTS,
@@ -193,60 +195,40 @@ comp_name_t;
#define MAX_LOG_DYNALLOC_COMPONENTS 20 #define MAX_LOG_DYNALLOC_COMPONENTS 20
#define MAX_LOG_COMPONENTS (MAX_LOG_PREDEF_COMPONENTS + MAX_LOG_DYNALLOC_COMPONENTS) #define MAX_LOG_COMPONENTS (MAX_LOG_PREDEF_COMPONENTS + MAX_LOG_DYNALLOC_COMPONENTS)
//#define msg printf
typedef struct { typedef struct {
char *name; /*!< \brief string name of item */ char *name; /*!< \brief string name of item */
int value; /*!< \brief integer value of mapping */ int value; /*!< \brief integer value of mapping */
} mapping; } mapping;
typedef int(*log_write_func_t)(FILE *stream, const char *format, va_list ap );
typedef struct { typedef struct {
const char *name; const char *name;
int level; int level;
int flag; int flag;
int interval; int interval;
int fd; int filelog;
int filelog; char *filelog_name;
char *filelog_name; FILE *stream;
log_write_func_t fwrite;
/* SR: make the log buffer component relative */ /* SR: make the log buffer component relative */
char log_buffer[MAX_LOG_TOTAL]; char log_buffer[MAX_LOG_TOTAL];
} log_component_t; } log_component_t;
typedef struct {
unsigned int remote_ip;
unsigned int audit_ip;
int remote_level;
int facility;
int audit_facility;
int format;
} log_config_t;
typedef struct { typedef struct {
log_component_t log_component[MAX_LOG_COMPONENTS]; log_component_t log_component[MAX_LOG_COMPONENTS];
log_config_t config;
char* level2string[NUM_LOG_LEVEL]; char* level2string[NUM_LOG_LEVEL];
int level;
int onlinelog; int onlinelog;
int flag; int flag;
int syslog;
int filelog; int filelog;
char* filelog_name; char* filelog_name;
int async; // asynchronous mode, via dedicated log thread + log buffer uint64_t debug_mask;
uint64_t matlab_mask;
} log_t; } log_t;
typedef struct LOG_params {
const char *file;
const char *func;
int line;
int comp;
int level;
const char *format;
char l_buff_info [MAX_LOG_INFO];
int len;
} LOG_params;
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
typedef enum log_instance_type_e { typedef enum log_instance_type_e {
@@ -258,10 +240,6 @@ typedef enum log_instance_type_e {
void log_set_instance_type (log_instance_type_t instance); void log_set_instance_type (log_instance_type_t instance);
#endif #endif
#define LOG_MEM_SIZE 100*1024*1024
#define LOG_MEM_FILE "./logmem.log"
int logInit_log_mem(void);
void output_log_mem(void);
#ifdef LOG_MAIN #ifdef LOG_MAIN
log_t *g_log; log_t *g_log;
@@ -279,28 +257,20 @@ extern log_t *g_log;
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
int logInit (void); int logInit (void);
void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7))); void logRecord_mt(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
void logRecord(const char *file, const char *func, int line,int comp, int level, const char *format, ...) __attribute__ ((format (printf, 6, 7)));
int set_comp_log(int component, int level, int verbosity, int interval);
int set_log(int component, int level, int interval); int set_log(int component, int level, int interval);
void set_glog(int level, int verbosity); void set_glog(int level);
void set_log_syslog(int enable);
void set_glog_onlinelog(int enable); void set_glog_onlinelog(int enable);
void set_glog_filelog(int enable); void set_glog_filelog(int enable);
void set_component_filelog(int comp); void set_component_filelog(int comp);
int map_str_to_int(mapping *map, const char *str); int map_str_to_int(mapping *map, const char *str);
char *map_int_to_str(mapping *map, int val); char *map_int_to_str(mapping *map, int val);
void logClean (void); void logClean (void);
int is_newline( char *str, int size); int is_newline( char *str, int size);
void *log_thread_function(void * list);
int register_log_component(char *name, char *fext, int compidx); int register_log_component(char *name, char *fext, int compidx);
/** @defgroup _logIt logIt function
* @ingroup _macro
* @brief Macro used to call tr_log_full_ex with file, function and line information
* @{*/
#define logIt(component, level, format, args...) (g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0)
/* @}*/ /* @}*/
@@ -319,24 +289,34 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
#define CONFIG_STRING_LOG_PREFIX "log_config" #define CONFIG_STRING_LOG_PREFIX "log_config"
#define LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL "global_log_level" #define LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL "global_log_level"
#define LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY "global_log_verbosity"
#define LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE "global_log_online" #define LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE "global_log_online"
#define LOG_CONFIG_STRING_GLOBAL_LOG_INFILE "global_log_infile" #define LOG_CONFIG_STRING_GLOBAL_LOG_INFILE "global_log_infile"
#define LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS "global_log_options"
#define LOG_CONFIG_LEVEL_FORMAT "%s_log_level" #define LOG_CONFIG_LEVEL_FORMAT "%s_log_level"
#define LOG_CONFIG_VERBOSITY_FORMAT "%s_log_verbosity"
#define LOG_CONFIG_LOGFILE_FORMAT "%s_log_infile" #define LOG_CONFIG_LOGFILE_FORMAT "%s_log_infile"
#define LOG_CONFIG_DEBUG_FORMAT "%s_debug"
#define LOG_CONFIG_MATLAB_FORMAT "%s_matlab"
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define LOG_CONFIG_HELP_OPTIONS " list of comma separated options to enable log module behavior. Available options: \n"\
/* LOG globalconfiguration parameters */ " nocolor: disable color usage in log messages\n"\
/* optname help paramflags XXXptr defXXXval type numelt */ " level: add log level indication in log messages\n"\
/*--------------------------------------------------------------------------------------------------------------------------------------------------------------*/ " thread: add threads names in log messages\n"
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* LOG globalconfiguration parameters */
/* optname help paramflags XXXptr defXXXval type numelt */
/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
#define LOG_GLOBALPARAMS_DESC { \ #define LOG_GLOBALPARAMS_DESC { \
{LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, NULL, 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \ {LOG_CONFIG_STRING_GLOBAL_LOG_LEVEL, "Default log level for all componemts\n", 0, strptr:(char **)&gloglevel, defstrval:log_level_names[2].name, TYPE_STRING, 0}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,NULL, 0, strptr:(char **)&glogverbo, defstrval:log_verbosity_names[2].name, TYPE_STRING, 0}, \ {LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, "Default console output option, for all components\n", 0, iptr:&(g_log->onlinelog), defintval:1, TYPE_INT, 0}, \
{LOG_CONFIG_STRING_GLOBAL_LOG_ONLINE, NULL, 0, iptr:&(g_log->onlinelog), defintval:1, TYPE_INT, 0}, \ {LOG_CONFIG_STRING_GLOBAL_LOG_OPTIONS, LOG_CONFIG_HELP_OPTIONS, 0, strlistptr:NULL, defstrlistval:NULL, TYPE_STRINGLIST,0} \
{LOG_CONFIG_STRING_GLOBAL_LOG_INFILE, NULL, 0, iptr:&(g_log->filelog), defintval:0, TYPE_INT, 0}, \
} }
#define LOG_OPTIONS_IDX 2
/*----------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------------*/
/** @defgroup _debugging debugging macros /** @defgroup _debugging debugging macros
* @ingroup _macro * @ingroup _macro
@@ -344,32 +324,39 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int
* @{*/ * @{*/
// debugging macros(g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0) // debugging macros(g_log->log_component[component].interval?logRecord_mt(__FILE__, __FUNCTION__, __LINE__, component, level, format, ##args):(void)0)
# if T_TRACER # if T_TRACER
# include "T.h" /* per component, level dependant macros */
# define LOG_I(c, x...) do { if (T_stdout) { logIt(c, LOG_INFO, x) ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x)) ;}} while (0) # define LOG_I(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_INFO ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_INFO, x) ;} else { T(T_LEGACY_ ## c ## _INFO, T_PRINTF(x)) ;}} while (0)
# define LOG_W(c, x...) do { if (T_stdout) { logIt(c, LOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0) # define LOG_W(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_WARNING) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_WARNING, x) ;} else { T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x)) ;}} while (0)
# define LOG_E(c, x...) do { if (T_stdout) { logIt(c, LOG_ERR, x) ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x)) ;}} while (0) # define LOG_E(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_ERR ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_ERR, x) ;} else { T(T_LEGACY_ ## c ## _ERROR, T_PRINTF(x)) ;}} while (0)
# define LOG_D(c, x...) do { if (T_stdout) { logIt(c, LOG_DEBUG, x) ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x)) ;}} while (0) # define LOG_D(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_DEBUG ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_DEBUG, x) ;} else { T(T_LEGACY_ ## c ## _DEBUG, T_PRINTF(x)) ;}} while (0)
# define LOG_T(c, x...) do { if (T_stdout) { logIt(c, LOG_TRACE, x) ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x)) ;}} while (0) # define LOG_T(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_TRACE ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_TRACE, x) ;} else { T(T_LEGACY_ ## c ## _TRACE, T_PRINTF(x)) ;}} while (0)
# define LOG_G(c, x...) do { if (T_stdout) { logIt(c, LOG_EMERG, x) ;}} while (0) /* */ # define LOG_F(c, x...) do { if (T_stdout) { if( g_log->log_component[c].level >= OAILOG_FILE ) logRecord_mt(__FILE__, __FUNCTION__, __LINE__,c, OAILOG_FILE, x) ;}} while (0) /* */
# define LOG_A(c, x...) do { if (T_stdout) { logIt(c, LOG_ALERT, x) ;}} while (0) /* */ # define nfapi_log(FILE, FNC, LN, COMP, LVL, F...) do { if (T_stdout) { logRecord_mt(__FILE__, __FUNCTION__, __LINE__,COMP, LVL, F) ;}} while (0) /* */
# define LOG_C(c, x...) do { if (T_stdout) { logIt(c, LOG_CRIT, x) ;}} while (0) /* */ /* bitmask dependant macros, to isolate debugging code */
# define LOG_N(c, x...) do { if (T_stdout) { logIt(c, LOG_NOTICE, x) ;}} while (0) /* */ # define LOG_DEBUG_BEGIN(D) if (g_log->debug_mask & D) {
# define LOG_F(c, x...) do { if (T_stdout) { logIt(c, LOG_FILE, x) ;}} while (0) /* */ # define LOG_DEBUG_END }
# define LOG_M(file, vector, data, len, dec, format) write_file_matlab(file, vector, data, len, dec, format)/* */ /* bitmask dependant macros, to generate matlab files */
# else /* T_TRACER */ # define LOG_M_BEGIN(D) if (g_log->matlab_mask & D) {
# 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)/* */
# 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...) /* */
# define LOG_E(c, x...) /* */ # define LOG_E(c, x...) /* */
# define LOG_D(c, x...) /* */ # define LOG_D(c, x...) /* */
# define LOG_T(c, x...) /* */ # define LOG_T(c, x...) /* */
# define LOG_G(c, x...) /* */
# define LOG_A(c, x...) /* */
# define LOG_C(c, x...) /* */
# define LOG_N(c, x...) /* */
# define LOG_F(c, x...) /* */ # define LOG_F(c, x...) /* */
# define LOG_M(file, vector, data, len, dec, format) /* */ # define nfapi_log(FILE, FNC, LN, COMP, LVL, FMT...)
# define LOG_DEBUG_BEGIN(D) if (0) {
# define LOG_DEBUG_END }
# define LOG_M_BEGIN(D) if (0) {
# define LOG_M_END }
# define LOG_M(file, vector, data, len, dec, format)
# endif /* T_TRACER */ # endif /* T_TRACER */
/* @}*/ /* @}*/
@@ -23,15 +23,8 @@
extern log_t *g_log; extern log_t *g_log;
#if !defined(LOG_NO_THREAD)
extern LOG_params log_list[2000];
extern pthread_mutex_t log_lock;
extern pthread_cond_t log_notify;
extern int log_shutdown;
#endif
extern mapping log_level_names[]; extern mapping log_level_names[];
extern mapping log_verbosity_names[]; extern mapping log_options[];
extern mapping log_maskmap[];
extern int log_mem_flag;
extern char * log_mem_filename;
-2
View File
@@ -749,7 +749,6 @@ ID = LEGACY_OSA_TRACE
DESC = OSA legacy logs - trace level DESC = OSA legacy logs - trace level
GROUP = ALL:LEGACY_OSA:LEGACY_GROUP_TRACE:LEGACY GROUP = ALL:LEGACY_OSA:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log FORMAT = string,log
ID = LEGACY_SIM_INFO ID = LEGACY_SIM_INFO
DESC = SIM legacy logs - info level DESC = SIM legacy logs - info level
GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_INFO:LEGACY GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_INFO:LEGACY
@@ -770,7 +769,6 @@ ID = LEGACY_SIM_TRACE
DESC = SIM legacy logs - trace level DESC = SIM legacy logs - trace level
GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_TRACE:LEGACY GROUP = ALL:LEGACY_SIM:LEGACY_GROUP_TRACE:LEGACY
FORMAT = string,log FORMAT = string,log
# this is a bad hack but I won't fix (function util_print_hex_octets # this is a bad hack but I won't fix (function util_print_hex_octets
# in openairinterface5g/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c # in openairinterface5g/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c
# does funky things with the LOG_x macros but we work on the C pre-processor # does funky things with the LOG_x macros but we work on the C pre-processor
-1
View File
@@ -39,7 +39,6 @@ void output_log_mem(void);
#define _Assert_Exit_ \ #define _Assert_Exit_ \
{ \ { \
fprintf(stderr, "\nExiting execution\n"); \ fprintf(stderr, "\nExiting execution\n"); \
output_log_mem(); \
display_backtrace(); \ display_backtrace(); \
fflush(stdout); \ fflush(stdout); \
fflush(stderr); \ fflush(stderr); \
-3
View File
@@ -117,19 +117,16 @@ int signal_handle(int *end)
case SIGUSR1: case SIGUSR1:
SIG_DEBUG("Received SIGUSR1\n"); SIG_DEBUG("Received SIGUSR1\n");
*end = 1; *end = 1;
output_log_mem();
break; break;
case SIGSEGV: /* Fall through */ case SIGSEGV: /* Fall through */
case SIGABRT: case SIGABRT:
SIG_DEBUG("Received SIGABORT\n"); SIG_DEBUG("Received SIGABORT\n");
output_log_mem();
backtrace_handle_signal(&info); backtrace_handle_signal(&info);
break; break;
case SIGINT: case SIGINT:
printf("Received SIGINT\n"); printf("Received SIGINT\n");
output_log_mem();
itti_send_terminate_message(TASK_UNKNOWN); itti_send_terminate_message(TASK_UNKNOWN);
*end = 1; *end = 1;
break; break;
+1 -1
View File
@@ -32,7 +32,7 @@
#ifdef TELNETSRV_LOADER_MAIN #ifdef TELNETSRV_LOADER_MAIN
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "common/utils/load_module_shlib.h" #include "common/utils/load_module_shlib.h"
+1 -1
View File
@@ -32,7 +32,7 @@
#ifdef TELNETSRV_PHYCMD_MAIN #ifdef TELNETSRV_PHYCMD_MAIN
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "openair1/PHY/phy_extern.h" #include "openair1/PHY/phy_extern.h"
+77 -19
View File
@@ -52,8 +52,7 @@
#define TELNETSERVERCODE #define TELNETSERVERCODE
#include "telnetsrv.h" #include "telnetsrv.h"
#define TELNETSRV_PROCCMD_MAIN #define TELNETSRV_PROCCMD_MAIN
#include "log.h" #include "common/utils/LOG/log.h"
#include "log_extern.h"
#include "common/config/config_userapi.h" #include "common/config/config_userapi.h"
#include "openair1/PHY/phy_extern.h" #include "openair1/PHY/phy_extern.h"
#include "telnetsrv_proccmd.h" #include "telnetsrv_proccmd.h"
@@ -200,16 +199,30 @@ int proccmd_show(char *buf, int debug, telnet_printfunc_t prnt)
print_threads(buf,debug,prnt); print_threads(buf,debug,prnt);
} }
if (strcasestr(buf,"loglvl") != NULL) { if (strcasestr(buf,"loglvl") != NULL) {
prnt("component verbosity level enabled\n"); prnt(" component level enabled\n");
for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) { for (int i=MIN_LOG_COMPONENTS; i < MAX_LOG_COMPONENTS; i++) {
if (g_log->log_component[i].name != NULL) { if (g_log->log_component[i].name != NULL) {
prnt("%02i %17.17s:%10.10s%10.10s %s\n",i ,g_log->log_component[i].name, prnt("%02i %17.17s:%10.10s %s\n",i ,g_log->log_component[i].name,
map_int_to_str(log_verbosity_names,g_log->log_component[i].flag),
map_int_to_str(log_level_names,g_log->log_component[i].level), map_int_to_str(log_level_names,g_log->log_component[i].level),
((g_log->log_component[i].interval>0)?"Y":"N") ); ((g_log->log_component[i].interval>0)?"Y":"N") );
} }
} }
} }
if (strcasestr(buf,"logopt") != NULL) {
prnt(" option enabled\n");
for (int i=0; log_options[i].name != NULL; i++) {
prnt("%02i %17.17s %10.10s \n",i ,log_options[i].name,
((g_log->flag & log_options[i].value)?"Y":"N") );
}
}
if (strcasestr(buf,"dbgopt") != NULL) {
prnt(" option debug matlab\n");
for (int i=0; log_maskmap[i].name != NULL ; i++) {
prnt("%02i %17.17s %5.5s %5.5s\n",i ,log_maskmap[i].name,
((g_log->debug_mask & log_maskmap[i].value)?"Y":"N"),
((g_log->matlab_mask & log_maskmap[i].value)?"Y":"N") );
}
}
if (strcasestr(buf,"config") != NULL) { if (strcasestr(buf,"config") != NULL) {
prnt("Command line arguments:\n"); prnt("Command line arguments:\n");
for (int i=0; i < config_get_if()->argc; i++) { for (int i=0; i < config_get_if()->argc; i++) {
@@ -324,24 +337,76 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
prnt("Available log levels: \n "); prnt("Available log levels: \n ");
for (int i=0; log_level_names[i].name != NULL; i++) for (int i=0; log_level_names[i].name != NULL; i++)
prnt("%s ",log_level_names[i].name); prnt("%s ",log_level_names[i].name);
prnt("\nAvailable verbosity: \n "); prnt("\n");
for (int i=0; log_verbosity_names[i].name != NULL; i++) prnt("Available display options: \n ");
prnt("%s ",log_verbosity_names[i].name); for (int i=0; log_options[i].name != NULL; i++)
prnt("%s ",log_options[i].name);
prnt("\n");
prnt("Available debug or matlab options: \n ");
for (int i=0; log_maskmap[i].name != NULL; i++)
prnt("%s ",log_maskmap[i].name);
prnt("\n"); prnt("\n");
proccmd_show("loglvl",debug,prnt); proccmd_show("loglvl",debug,prnt);
proccmd_show("logopt",debug,prnt);
proccmd_show("dbgopt",debug,prnt);
} }
else if (strcasestr(logsubcmd,"help") != NULL) { else if (strcasestr(logsubcmd,"help") != NULL) {
prnt(PROCCMD_LOG_HELP_STRING); prnt(PROCCMD_LOG_HELP_STRING);
} else { } else {
prnt("%s: wrong log command...\n",logsubcmd); prnt("%s: wrong log command...\n",logsubcmd);
} }
} else if ( s == 2 && logsubcmd != NULL) {
char *opt=NULL;
char *logparam=NULL;
int l;
int optbit;
l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&opt);
if (l == 2 && strcmp(logparam,"print") == 0){
optbit=map_str_to_int(log_options,opt);
if (optbit < 0) {
prnt("option %s unknown\n",opt);
} else {
if (idx1 > 0)
SET_LOG_OPTION(optbit);
else
CLEAR_LOG_OPTION(optbit);
proccmd_show("logopt",debug,prnt);
}
}
else if (l == 2 && strcmp(logparam,"debug") == 0){
optbit=map_str_to_int(log_maskmap,opt);
if (optbit < 0) {
prnt("debug flag %s unknown\n",opt);
} else {
if (idx1 > 0)
SET_LOG_DEBUG(optbit);
else
CLEAR_LOG_DEBUG(optbit);
proccmd_show("dbgopt",debug,prnt);
}
}
else if (l == 2 && strcmp(logparam,"matlab") == 0){
optbit=map_str_to_int(log_maskmap,opt);
if (optbit < 0) {
prnt("matlab flag %s unknown\n",opt);
} else {
if (idx1 > 0)
SET_LOG_MATLAB(optbit);
else
CLEAR_LOG_MATLAB(optbit);
proccmd_show("dbgopt",debug,prnt);
}
}
if (logparam != NULL) free(logparam);
if (opt != NULL) free(opt);
} else if ( s == 3 && logsubcmd != NULL) { } else if ( s == 3 && logsubcmd != NULL) {
int level, verbosity, interval; int level, interval;
char *tmpstr=NULL; char *tmpstr=NULL;
char *logparam=NULL; char *logparam=NULL;
int l; int l;
level = verbosity = interval = -1; level = interval = -1;
l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&tmpstr); l=sscanf(logsubcmd,"%m[^'_']_%m[^'_']",&logparam,&tmpstr);
if (debug > 0) if (debug > 0)
prnt("l=%i, %s %s\n",l,((logparam==NULL)?"\"\"":logparam), ((tmpstr==NULL)?"\"\"":tmpstr)); prnt("l=%i, %s %s\n",l,((logparam==NULL)?"\"\"":logparam), ((tmpstr==NULL)?"\"\"":tmpstr));
@@ -349,9 +414,6 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
if (strcmp(logparam,"level") == 0) { if (strcmp(logparam,"level") == 0) {
level=map_str_to_int(log_level_names,tmpstr); level=map_str_to_int(log_level_names,tmpstr);
if (level < 0) prnt("level %s unknown\n",tmpstr); if (level < 0) prnt("level %s unknown\n",tmpstr);
} else if (strcmp(logparam,"verbos") == 0) {
verbosity=map_str_to_int(log_verbosity_names,tmpstr);
if (verbosity < 0) prnt("verbosity %s unknown\n",tmpstr);
} else { } else {
prnt("%s%s unknown log sub command \n",logparam, tmpstr); prnt("%s%s unknown log sub command \n",logparam, tmpstr);
} }
@@ -372,17 +434,13 @@ int s = sscanf(buf,"%ms %i-%i\n",&logsubcmd, &idx1,&idx2);
if (level < 0) { if (level < 0) {
level=g_log->log_component[i].level; level=g_log->log_component[i].level;
} }
if (verbosity < 0) {
verbosity=g_log->log_component[i].flag;
}
if (interval < 0) { if (interval < 0) {
interval=g_log->log_component[i].interval; interval=g_log->log_component[i].interval;
} }
set_comp_log(i, level, verbosity, interval); set_log(i, level, interval);
prnt("log level/verbosity comp %i %s set to %s / %s (%s)\n", prnt("log level comp %i %s set to %s (%s)\n",
i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name), i,((g_log->log_component[i].name==NULL)?"":g_log->log_component[i].name),
map_int_to_str(log_level_names,g_log->log_component[i].level), map_int_to_str(log_level_names,g_log->log_component[i].level),
map_int_to_str(log_verbosity_names,g_log->log_component[i].flag),
((g_log->log_component[i].interval>0)?"enabled":"disabled")); ((g_log->log_component[i].interval>0)?"enabled":"disabled"));
+6 -3
View File
@@ -49,9 +49,12 @@ telnetshell_vardef_t proc_vardef[] = {
online, noonline: enable or disable console logs \n\ online, noonline: enable or disable console logs \n\
enable, disable id1-id2: enable or disable logs for components index id1 to id2 \n\ enable, disable id1-id2: enable or disable logs for components index id1 to id2 \n\
level_<level> id1-id2: set log level to <level> for components index id1 to id2 \n\ level_<level> id1-id2: set log level to <level> for components index id1 to id2 \n\
level_<verbosity> id1-id2: set log verbosity to <verbosity> for components index id1 to id2 \n\ use the show command to get the authorized values for <level> and the list of component \
use the show command to get the values for <level>, <verbosity> and the list of component indexes \ indexes that can be used for id1 and id2 \n\
that can be used for id1 and id2 \n" print_<opt> <0|1> disable or enable the \"opt\" log option, use the show command to get \
the available options\n\
matlab_<opt> debug_<func> disable or enable the debug code or matlab file generation \
for \"func\" function. use the show command to get the available options\n"
#define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\ #define PROCCMD_THREAD_HELP_STRING " thread sub commands: \n\
<thread id> aff <core> : set affinity of thread <thread id> to core <core> \n\ <thread id> aff <core> : set affinity of thread <thread id> to core <core> \n\
+1 -3
View File
@@ -47,7 +47,7 @@ extern RAN_CONTEXT_t RC;
#include <vendor_ext.h> #include <vendor_ext.h>
#include "fapi_stub.h" #include "fapi_stub.h"
//#include "fapi_l1.h" //#include "fapi_l1.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "openair2/LAYER2/MAC/mac_proto.h" #include "openair2/LAYER2/MAC/mac_proto.h"
#include "PHY/INIT/phy_init.h" #include "PHY/INIT/phy_init.h"
@@ -193,8 +193,6 @@ typedef struct {
static pnf_info pnf; static pnf_info pnf;
static pthread_t pnf_start_pthread; static pthread_t pnf_start_pthread;
extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args);
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; int oai_level;
-1
View File
@@ -680,7 +680,6 @@ void vnf_deallocate(void* ptr) {
free(ptr); free(ptr);
} }
extern void nfapi_log(char *file, char *func, int line, int comp, int level, const char* format, va_list args);
void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) { void vnf_trace(nfapi_trace_level_t nfapi_level, const char* message, ...) {
+2 -2
View File
@@ -31,7 +31,7 @@
#include "RadioResourceConfigDedicated.h" #include "RadioResourceConfigDedicated.h"
#include "TDD-Config.h" #include "TDD-Config.h"
#include "MBSFN-SubframeConfigList.h" #include "MBSFN-SubframeConfigList.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "assertions.h" #include "assertions.h"
#include <math.h> #include <math.h>
@@ -477,7 +477,7 @@ void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
if (mbsfn_Area_idx == 0) { if (mbsfn_Area_idx == 0) {
fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9;
LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
} }
lte_gold_mbsfn(fp,RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); lte_gold_mbsfn(fp,RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn);
+1 -1
View File
@@ -27,7 +27,7 @@
#include "RadioResourceConfigDedicated.h" #include "RadioResourceConfigDedicated.h"
#include "TDD-Config.h" #include "TDD-Config.h"
#include "MBSFN-SubframeConfigList.h" #include "MBSFN-SubframeConfigList.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "assertions.h" #include "assertions.h"
#include <math.h> #include <math.h>
+2 -2
View File
@@ -27,7 +27,7 @@
#include "RadioResourceConfigDedicated.h" #include "RadioResourceConfigDedicated.h"
#include "TDD-Config.h" #include "TDD-Config.h"
#include "MBSFN-SubframeConfigList.h" #include "MBSFN-SubframeConfigList.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "assertions.h" #include "assertions.h"
#include <math.h> #include <math.h>
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
@@ -190,7 +190,7 @@ void phy_config_sib13_ue(module_id_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_A
if (mbsfn_Area_idx == 0) { if (mbsfn_Area_idx == 0) {
fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9;
LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); LOG_I(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n");
} }
lte_gold_mbsfn(fp,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); lte_gold_mbsfn(fp,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn);
@@ -23,7 +23,7 @@
#include "PHY/defs_eNB.h" #include "PHY/defs_eNB.h"
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#define DEBUG_PHY #define DEBUG_PHY
@@ -25,7 +25,7 @@
#include "PHY/impl_defs_top.h" #include "PHY/impl_defs_top.h"
#include "openair2/LAYER2/MAC/mac_proto.h" #include "openair2/LAYER2/MAC/mac_proto.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#define DEBUG_PHY #define DEBUG_PHY
@@ -23,9 +23,8 @@
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "PHY/sse_intrin.h" #include "PHY/sse_intrin.h"
//#define DEBUG_CH //#define DEBUG_CH
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
#include "T.h"
#include "lte_estimation.h" #include "lte_estimation.h"
// round(exp(sqrt(-1)*(pi/2)*[0:1:N-1]/N)*pow2(15)) // round(exp(sqrt(-1)*(pi/2)*[0:1:N-1]/N)*pow2(15))
+2 -2
View File
@@ -41,8 +41,8 @@
#include "transport_common_proto.h" #include "transport_common_proto.h"
#include "assertions.h" #include "assertions.h"
#include "T.h" #include "T.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/LTE_TRANSPORT/transport_extern.h" #include "PHY/LTE_TRANSPORT/transport_extern.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
+2 -2
View File
@@ -38,8 +38,8 @@
#include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h" #include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "SCHED/sched_eNB.h" #include "SCHED/sched_eNB.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include <syscall.h> #include <syscall.h>
#include "targets/RT/USER/rt_wrapper.h" #include "targets/RT/USER/rt_wrapper.h"
@@ -35,7 +35,7 @@
#include "PHY/CODING/coding_extern.h" #include "PHY/CODING/coding_extern.h"
#include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/CODING/lte_interleaver_inline.h"
#include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h" #include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
//#define DEBUG_DLSCH_MODULATION //#define DEBUG_DLSCH_MODULATION
@@ -39,7 +39,7 @@
#include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/CODING/lte_interleaver_inline.h"
#include "transport_eNB.h" #include "transport_eNB.h"
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms,
int mbsfn_flag, int mbsfn_flag,
+1 -2
View File
@@ -40,8 +40,7 @@
#include "transport_proto.h" #include "transport_proto.h"
#include "transport_common_proto.h" #include "transport_common_proto.h"
#include "assertions.h" #include "assertions.h"
#include "T.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/log.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
//#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_ENCODING 1
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -37,7 +37,7 @@
//#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h" //#include "targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h"
#include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h" #include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
//#define DEBUG_DL_MOBIPASS //#define DEBUG_DL_MOBIPASS
//#define DEBUG_UL_MOBIPASS //#define DEBUG_UL_MOBIPASS
#define SUBFRAME_SKIP_NUM_MOBIPASS 8 #define SUBFRAME_SKIP_NUM_MOBIPASS 8
+58 -87
View File
@@ -35,14 +35,9 @@
//#include "prach.h" //#include "prach.h"
#include "PHY/LTE_TRANSPORT/if4_tools.h" #include "PHY/LTE_TRANSPORT/if4_tools.h"
#include "SCHED/sched_eNB.h" #include "SCHED/sched_eNB.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "prach_extern.h" #include "prach_extern.h"
//#define PRACH_DEBUG 1
//#define PRACH_WRITE_OUTPUT_DEBUG 1
#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION < MAKE_VERSION(14, 0, 0))
#define rx_prach0 rx_prach #define rx_prach0 rx_prach
#endif #endif
@@ -70,10 +65,6 @@ void rx_prach0(PHY_VARS_eNB *eNB,
uint8_t Ncs_config; uint8_t Ncs_config;
uint8_t restricted_set; uint8_t restricted_set;
uint8_t n_ra_prb; uint8_t n_ra_prb;
#ifdef PRACH_DEBUG
int frame;
#endif
int subframe; int subframe;
int16_t *prachF=NULL; int16_t *prachF=NULL;
int16_t **rxsigF=NULL; int16_t **rxsigF=NULL;
@@ -92,7 +83,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
uint8_t not_found; uint8_t not_found;
int k=0; int k=0;
uint16_t u; uint16_t u;
int16_t *Xu; int16_t *Xu=0;
uint16_t offset; uint16_t offset;
int16_t Ncp; int16_t Ncp;
uint16_t first_nonzero_root_idx=0; uint16_t first_nonzero_root_idx=0;
@@ -107,10 +98,7 @@ void rx_prach0(PHY_VARS_eNB *eNB,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
int prach_ifft_cnt=0; int prach_ifft_cnt=0;
#endif #endif
#ifdef PRACH_DEBUG
int en=0;
int en0=0;
#endif
if (ru) { if (ru) {
fp = &ru->frame_parms; fp = &ru->frame_parms;
@@ -162,61 +150,49 @@ void rx_prach0(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) {
prach_ifftp = eNB->prach_vars_br.prach_ifft[ce_level]; prach_ifftp = eNB->prach_vars_br.prach_ifft[ce_level];
#ifdef PRACH_DEBUG
frame = eNB->proc.frame_prach_br;
#endif
subframe = eNB->proc.subframe_prach_br; subframe = eNB->proc.subframe_prach_br;
prachF = eNB->prach_vars_br.prachF; prachF = eNB->prach_vars_br.prachF;
rxsigF = eNB->prach_vars_br.rxsigF[ce_level]; rxsigF = eNB->prach_vars_br.rxsigF[ce_level];
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n",
br_flag,ce_level,frame,subframe, br_flag,ce_level,ru->proc.frame_prach,subframe,
fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],
prach_ConfigIndex,rootSequenceIndex, prach_ConfigIndex,rootSequenceIndex,
eNB->prach_vars_br.repetition_number[ce_level], eNB->prach_vars_br.repetition_number[ce_level],
fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]);
#endif LOG_DEBUG_END
} }
else else
#endif #endif
{ {
prach_ifftp = eNB->prach_vars.prach_ifft[0]; prach_ifftp = eNB->prach_vars.prach_ifft[0];
#ifdef PRACH_DEBUG
frame = eNB->proc.frame_prach;
#endif
subframe = eNB->proc.subframe_prach; subframe = eNB->proc.subframe_prach;
prachF = eNB->prach_vars.prachF; prachF = eNB->prach_vars.prachF;
rxsigF = eNB->prach_vars.rxsigF[0]; rxsigF = eNB->prach_vars.rxsigF[0];
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
//if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex);
#endif LOG_DEBUG_END
} }
} }
else { else {
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
if (br_flag == 1) { if (br_flag == 1) {
#ifdef PRACH_DEBUG
frame = ru->proc.frame_prach_br;
#endif
subframe = ru->proc.subframe_prach_br; subframe = ru->proc.subframe_prach_br;
rxsigF = ru->prach_rxsigF_br[ce_level]; rxsigF = ru->prach_rxsigF_br[ce_level];
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
br_flag,ce_level,frame,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex);
#endif LOG_DEBUG_END
} }
else else
#endif #endif
{ {
#ifdef PRACH_DEBUG
frame = ru->proc.frame_prach;
#endif
subframe = ru->proc.subframe_prach; subframe = ru->proc.subframe_prach;
rxsigF = ru->prach_rxsigF; rxsigF = ru->prach_rxsigF;
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n",
subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex);
#endif LOG_DEBUG_END
} }
} }
@@ -227,12 +203,11 @@ void rx_prach0(PHY_VARS_eNB *eNB,
if (ru->if_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node if (ru->if_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node
// DJP - indexing below in subframe zero takes us off the beginning of the array??? // DJP - indexing below in subframe zero takes us off the beginning of the array???
prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset];
#ifdef PRACH_DEBUG
int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
int8_t dbEn0 = dB_fixed(en0);
int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
#ifdef PRACH_WRITE_OUTPUT_DEBUG LOG_M_BEGIN(PRACH)
int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti);
int8_t dbEn0 = dB_fixed(en0);
int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB;
if (dbEn0>32 && prach[0]!= NULL) if (dbEn0>32 && prach[0]!= NULL)
{ {
static int counter=0; static int counter=0;
@@ -242,16 +217,12 @@ void rx_prach0(PHY_VARS_eNB *eNB,
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);
} }
#endif if (dB_fixed(en0)>32)
if (dbEn0>32)
{ {
#ifdef PRACH_WRITE_OUTPUT_DEBUG
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);
#endif 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 rach_dBm:%d rxdata:%p index:%d\n",ru->idx,br_flag,ce_level,frame,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);
} }
#endif LOG_M_END
} }
} }
@@ -333,9 +304,9 @@ void rx_prach0(PHY_VARS_eNB *eNB,
if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))|| if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))||
((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources ((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources
// Do forward transform // Do forward transform
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp); LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp);
#endif LOG_DEBUG_END
for (aa=0; aa<nb_rx; aa++) { for (aa=0; aa<nb_rx; aa++) {
AssertFatal(prach[aa]!=NULL,"prach[%d] is null\n",aa); AssertFatal(prach[aa]!=NULL,"prach[%d] is null\n",aa);
prach2 = prach[aa] + (Ncp<<1); prach2 = prach[aa] + (Ncp<<1);
@@ -466,10 +437,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
return; return;
} else if (eNB!=NULL) { } else if (eNB!=NULL) {
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en);
#endif LOG_DEBUG_END
} }
// in case of RAU and prach received rx_thread wakes up prach // in case of RAU and prach received rx_thread wakes up prach
@@ -504,9 +475,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
*max_preamble_energy=0; *max_preamble_energy=0;
for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { for (preamble_index=0 ; preamble_index<64 ; preamble_index++) {
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",frame,subframe,preamble_index,br_flag); int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
#endif if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag);
LOG_DEBUG_END
if (restricted_set == 0) { if (restricted_set == 0) {
// This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index
preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS))); preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS)));
@@ -589,10 +561,11 @@ void rx_prach0(PHY_VARS_eNB *eNB,
} }
// Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n", if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n",
frame,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en);
#endif LOG_DEBUG_END
log2_ifft_size = 10; log2_ifft_size = 10;
fft_size = 6144; fft_size = 6144;
@@ -614,12 +587,12 @@ void rx_prach0(PHY_VARS_eNB *eNB,
} }
memset(prachF, 0, sizeof(int16_t)*2*1024 ); memset(prachF, 0, sizeof(int16_t)*2*1024 );
#if defined(PRACH_WRITE_OUTPUT_DEBUG) LOG_M_BEGIN(PRACH)
if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1); if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1);
#endif LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1);
// LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1); LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1);
// LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1); LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1);
// LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1); LOG_M_END
for (aa=0;aa<nb_rx; aa++) { for (aa=0;aa<nb_rx; aa++) {
// Do componentwise product with Xu* on each antenna // Do componentwise product with Xu* on each antenna
@@ -647,11 +620,11 @@ void rx_prach0(PHY_VARS_eNB *eNB,
for (i=0;i<256;i++) for (i=0;i<256;i++)
prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10; prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10;
} }
#if defined(PRACH_WRITE_OUTPUT_DEBUG) LOG_M_BEGIN(PRACH)
if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
#endif if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1);
// if (aa=1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); LOG_M_END
}// antennas_rx }// antennas_rx
} // new dft } // new dft
@@ -662,9 +635,10 @@ void rx_prach0(PHY_VARS_eNB *eNB,
eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]))
#endif #endif
{ {
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",frame,subframe,br_flag,en); int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
#endif if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en);
LOG_DEBUG_END
preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<<log2_ifft_size)/N_ZC)); preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<<log2_ifft_size)/N_ZC));
@@ -676,17 +650,18 @@ void rx_prach0(PHY_VARS_eNB *eNB,
*max_preamble_energy = levdB; *max_preamble_energy = levdB;
*max_preamble_delay = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2; *max_preamble_delay = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2;
*max_preamble = preamble_index; *max_preamble = preamble_index;
#ifdef PRACH_DEBUG LOG_DEBUG_BEGIN(PRACH)
if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev); int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
#endif if ((en>60) && (br_flag==1)) LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",ru->proc.frame_prach,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev);
LOG_DEBUG_END
} }
} }
} }
}// preamble_index }// preamble_index
#ifdef PRACH_DEBUG LOG_M_BEGIN(PRACH)
int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840));
if (en>60) { if (en>60) {
k = (12*n_ra_prb) - 6*fp->N_RB_UL; k = (12*n_ra_prb) - 6*fp->N_RB_UL;
@@ -697,26 +672,22 @@ void rx_prach0(PHY_VARS_eNB *eNB,
k*=2; k*=2;
if (br_flag == 0) { if (br_flag == 0) {
#if defined(PRACH_WRITE_OUTPUT_DEBUG)
LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1);
LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
LOG_M("Xu.m","xu",Xu,N_ZC,1,1); LOG_M("Xu.m","xu",Xu,N_ZC,1,1);
LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1); LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1);
#endif
} }
else { else {
#if defined(PRACH_WRITE_OUTPUT_DEBUG) LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
printf("Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb);
LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1);
LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1);
LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1); LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1);
LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1);
exit(-1); exit(-1);
#endif
} }
} }
#endif LOG_M_END
if (eNB) stop_meas(&eNB->rx_prach); if (eNB) stop_meas(&eNB->rx_prach);
} }
+1 -1
View File
@@ -33,7 +33,7 @@
#include "PHY/defs_common.h" #include "PHY/defs_common.h"
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "PHY/phy_extern_ue.h" #include "PHY/phy_extern_ue.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
uint16_t NCS_unrestricted[16] = {0,13,15,18,22,26,32,38,46,59,76,93,119,167,279,419}; uint16_t NCS_unrestricted[16] = {0,13,15,18,22,26,32,38,46,59,76,93,119,167,279,419};
+2 -3
View File
@@ -34,10 +34,9 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "T.h"
//uint8_t ncs_cell[20][7]; //uint8_t ncs_cell[20][7];
//#define DEBUG_PUCCH_TXS //#define DEBUG_PUCCH_TXS
+2 -3
View File
@@ -33,11 +33,10 @@
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/log.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
#include "T.h"
void init_ncs_cell(LTE_DL_FRAME_PARMS *frame_parms,uint8_t ncs_cell[20][7]) void init_ncs_cell(LTE_DL_FRAME_PARMS *frame_parms,uint8_t ncs_cell[20][7])
{ {
+1 -1
View File
@@ -33,7 +33,7 @@
#include "PHY/phy_extern.h" #include "PHY/phy_extern.h"
#include "SCHED/sched_eNB.h" #include "SCHED/sched_eNB.h"
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h" #include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "assertions.h" #include "assertions.h"
+1 -1
View File
@@ -40,7 +40,7 @@
#include "RRC/LTE/rrc_extern.h" #include "RRC/LTE/rrc_extern.h"
#include "PHY_INTERFACE/phy_interface.h" #include "PHY_INTERFACE/phy_interface.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
//#define DEBUG_ULSCH_DECODING //#define DEBUG_ULSCH_DECODING
#include "targets/RT/USER/rt_wrapper.h" #include "targets/RT/USER/rt_wrapper.h"
#include "transport_proto.h" #include "transport_proto.h"
+3 -3
View File
@@ -3128,7 +3128,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
// this is the cba mcs uci for cba transmission // this is the cba mcs uci for cba transmission
((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs;
((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti = rnti; ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti = rnti;
LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
break; break;
case ue_selected: case ue_selected:
@@ -3182,7 +3182,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
// this is the cba mcs uci for cba transmission // this is the cba mcs uci for cba transmission
((HLC_subband_cqi_mcs_CBA_10MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs;
((HLC_subband_cqi_mcs_CBA_10MHz *)o)->crnti = rnti; ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->crnti = rnti;
LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
break; break;
case ue_selected: case ue_selected:
@@ -3236,7 +3236,7 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_
// this is the cba mcs uci for cba transmission // this is the cba mcs uci for cba transmission
((HLC_subband_cqi_mcs_CBA_20MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs;
((HLC_subband_cqi_mcs_CBA_20MHz *)o)->crnti = rnti; ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->crnti = rnti;
LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); LOG_I(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs);
break; break;
case ue_selected: case ue_selected:
+2 -3
View File
@@ -43,9 +43,8 @@
#include "SCHED/sched_common.h" #include "SCHED/sched_common.h"
#include "assertions.h" #include "assertions.h"
#include "T.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
//#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_ENCODING 1
//#define DEBUG_DCI_DECODING 1 //#define DEBUG_DCI_DECODING 1
@@ -35,7 +35,7 @@
#include "PHY/CODING/coding_extern.h" #include "PHY/CODING/coding_extern.h"
#include "SCHED/sched_common_extern.h" #include "SCHED/sched_common_extern.h"
#include "SIMULATION/TOOLS/sim.h" #include "SIMULATION/TOOLS/sim.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
//#define DEBUG_DLSCH_DECODING //#define DEBUG_DLSCH_DECODING
#define UE_DEBUG_TRACE 1 #define UE_DEBUG_TRACE 1
+1 -1
View File
@@ -37,7 +37,7 @@
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "SCHED/sched_common_extern.h" #include "SCHED/sched_common_extern.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "../LTE_TRANSPORT/prach_extern.h" #include "../LTE_TRANSPORT/prach_extern.h"
+2 -2
View File
@@ -33,8 +33,8 @@
#include "PHY/phy_extern_ue.h" #include "PHY/phy_extern_ue.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "T.h" #include "T.h"
+1 -1
View File
@@ -33,7 +33,7 @@
#include "PHY/phy_extern_ue.h" #include "PHY/phy_extern_ue.h"
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "transport_proto_ue.h" #include "transport_proto_ue.h"
#include "assertions.h" #include "assertions.h"
@@ -31,7 +31,7 @@
*/ */
#include "PHY/defs_UE.h" #include "PHY/defs_UE.h"
#include "PHY/phy_extern_ue.h" #include "PHY/phy_extern_ue.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
unsigned short msrsb_6_40[8][4] = {{36,12,4,4}, unsigned short msrsb_6_40[8][4] = {{36,12,4,4},
{32,16,8,4}, {32,16,8,4},
+1 -1
View File
@@ -37,7 +37,7 @@
#include "PHY/CODING/coding_extern.h" #include "PHY/CODING/coding_extern.h"
#include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/CODING/lte_interleaver_inline.h"
#include "PHY/LTE_UE_TRANSPORT/transport_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_ue.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
//#define DEBUG_ULSCH_CODING //#define DEBUG_ULSCH_CODING
//#define DEBUG_ULSCH_FREE 1 //#define DEBUG_ULSCH_FREE 1
@@ -36,7 +36,7 @@
#include "PHY/LTE_UE_TRANSPORT/transport_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_ue.h"
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
#include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
+1 -1
View File
@@ -37,7 +37,7 @@
#include "PHY/CODING/lte_interleaver_inline.h" #include "PHY/CODING/lte_interleaver_inline.h"
#include "PHY/LTE_TRANSPORT/transport_eNB.h" #include "PHY/LTE_TRANSPORT/transport_eNB.h"
#include "modulation_eNB.h" #include "modulation_eNB.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
int beam_precoding(int32_t **txdataF, int beam_precoding(int32_t **txdataF,
int32_t **txdataF_BF, int32_t **txdataF_BF,
+2 -2
View File
@@ -31,8 +31,8 @@ This section deals with basic functions for OFDM Modulation.
#include "PHY/defs_eNB.h" #include "PHY/defs_eNB.h"
#include "PHY/impl_defs_top.h" #include "PHY/impl_defs_top.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "modulation_common.h" #include "modulation_common.h"
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
//#define DEBUG_OFDM_MOD //#define DEBUG_OFDM_MOD
+1 -1
View File
@@ -930,7 +930,7 @@ typedef enum {
void exit_fun(const char* s); void exit_fun(const char* s);
#include "UTIL/LOG/log_extern.h" #include "common/utils/LOG/log_extern.h"
extern pthread_cond_t sync_cond; extern pthread_cond_t sync_cond;
extern pthread_mutex_t sync_mutex; extern pthread_mutex_t sync_mutex;
extern int sync_var; extern int sync_var;
+6 -10
View File
@@ -37,10 +37,8 @@
#include "PHY/LTE_ESTIMATION/lte_estimation.h" #include "PHY/LTE_ESTIMATION/lte_estimation.h"
#include "nfapi_interface.h" #include "nfapi_interface.h"
#include "fapi_l1.h" #include "fapi_l1.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "T.h"
#include "assertions.h" #include "assertions.h"
#include "msc.h" #include "msc.h"
@@ -324,7 +322,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
int frame=proc->frame_tx; int frame=proc->frame_tx;
int subframe=proc->subframe_tx; int subframe=proc->subframe_tx;
LTE_DL_eNB_HARQ_t *dlsch_harq=dlsch->harq_processes[harq_pid]; LTE_DL_eNB_HARQ_t *dlsch_harq=dlsch->harq_processes[harq_pid];
int input_buffer_length = dlsch_harq->TBS/8;
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
if (dlsch->rnti == 0x02) {//frame < 200) { if (dlsch->rnti == 0x02) {//frame < 200) {
@@ -332,7 +329,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
LOG_D(PHY, LOG_D(PHY,
"[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n",
eNB->Mod_id, dlsch->rnti,harq_pid, eNB->Mod_id, dlsch->rnti,harq_pid,
frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, frame, subframe, dlsch_harq->TBS/8, dlsch_harq->pdsch_start,
get_G(fp, get_G(fp,
dlsch_harq->nb_rb, dlsch_harq->nb_rb,
dlsch_harq->rb_alloc, dlsch_harq->rb_alloc,
@@ -356,7 +353,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
NULL,0, NULL,0,
"%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")", "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")",
frame, subframe, frame, subframe,
input_buffer_length, dlsch_harq->TBS/8,
get_G(fp, get_G(fp,
dlsch_harq->nb_rb, dlsch_harq->nb_rb,
dlsch_harq->rb_alloc, dlsch_harq->rb_alloc,
@@ -482,12 +479,11 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
LTE_UL_eNB_HARQ_t *ulsch_harq; LTE_UL_eNB_HARQ_t *ulsch_harq;
int offset = eNB->CC_id;//proc == &eNB->proc.proc_rxtx[0] ? 0 : 1;
if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)==SF_UL)) return; if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)==SF_UL)) return;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,1); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),1);
if (do_meas==1) start_meas(&eNB->phy_proc_tx); if (do_meas==1) start_meas(&eNB->phy_proc_tx);
// clear the transmit data array for the current subframe // clear the transmit data array for the current subframe
@@ -649,7 +645,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
AMP); AMP);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_PHICH,0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_PHICH,0);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+(eNB->CC_id),0);
if (do_meas==1) stop_meas(&eNB->phy_proc_tx); if (do_meas==1) stop_meas(&eNB->phy_proc_tx);
} }
+2 -3
View File
@@ -36,10 +36,9 @@
#include "nfapi_interface.h" #include "nfapi_interface.h"
#include "fapi_l1.h" #include "fapi_l1.h"
#include "nfapi_pnf.h" #include "nfapi_pnf.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "T.h"
#include "assertions.h" #include "assertions.h"
#include "msc.h" #include "msc.h"
+2 -3
View File
@@ -39,10 +39,9 @@
#include "PHY/LTE_TRANSPORT/transport_common_proto.h" #include "PHY/LTE_TRANSPORT/transport_common_proto.h"
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "T.h"
#include "assertions.h" #include "assertions.h"
#include "msc.h" #include "msc.h"
+2 -2
View File
@@ -50,9 +50,9 @@
#endif #endif
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
@@ -54,7 +54,7 @@
#include "socket.h" #include "socket.h"
#include "multicast_link.h" #include "multicast_link.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
extern unsigned short Master_id; extern unsigned short Master_id;
+3 -5
View File
@@ -47,7 +47,7 @@
#include "LAYER2/MAC/mac_vars.h" #include "LAYER2/MAC/mac_vars.h"
#include "OCG_vars.h" #include "OCG_vars.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LISTS/list.h" #include "UTIL/LISTS/list.h"
#include "unitary_defs.h" #include "unitary_defs.h"
@@ -647,7 +647,6 @@ int main(int argc, char **argv)
int two_thread_flag=0; int two_thread_flag=0;
int DLSCH_RB_ALLOC = 0; int DLSCH_RB_ALLOC = 0;
int log_level = LOG_ERR;
int dci_received; int dci_received;
PHY_VARS_eNB *eNB; PHY_VARS_eNB *eNB;
RU_t *ru; RU_t *ru;
@@ -999,7 +998,7 @@ int main(int argc, char **argv)
break; break;
case 'L': case 'L':
log_level=atoi(optarg); set_glog(atoi(optarg));
break; break;
case 'h': case 'h':
@@ -1047,8 +1046,7 @@ int main(int argc, char **argv)
"cannot load configuration module, exiting\n"); "cannot load configuration module, exiting\n");
logInit(); logInit();
// enable these lines if you need debug info // enable these lines if you need debug info
set_comp_log(PHY,LOG_INFO,LOG_HIGH,1); set_glog(LOG_DEBUG);
set_glog(log_level,LOG_HIGH);
// moreover you need to init itti with the following line // moreover you need to init itti with the following line
// however itti will catch all signals, so ctrl-c won't work anymore // however itti will catch all signals, so ctrl-c won't work anymore
// alternatively you can disable ITTI completely in CMakeLists.txt // alternatively you can disable ITTI completely in CMakeLists.txt
+4
View File
@@ -1143,6 +1143,10 @@ int main(int argc, char **argv)
if (mcs < 11) modulation_type = 2; if (mcs < 11) modulation_type = 2;
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 {
LOG_E(USIM,"mcs %i is not valid\n",mcs);
exit(-1);
}
fill_ulsch_dci(eNB,proc_rxtx->frame_rx,subframe,&sched_resp,14,(void*)&UL_alloc_pdu,first_rb,nb_rb,(round==0)?mcs:(28+rvidx[round]),modulation_type,ndi,get_TBS_UL(mcs,nb_rb),cqi_flag,beta_CQI,beta_RI,cqi_size); fill_ulsch_dci(eNB,proc_rxtx->frame_rx,subframe,&sched_resp,14,(void*)&UL_alloc_pdu,first_rb,nb_rb,(round==0)?mcs:(28+rvidx[round]),modulation_type,ndi,get_TBS_UL(mcs,nb_rb),cqi_flag,beta_CQI,beta_RI,cqi_size);
+1 -1
View File
@@ -29,7 +29,7 @@
#include "PHY/TOOLS/tools_defs.h" #include "PHY/TOOLS/tools_defs.h"
#include "sim.h" #include "sim.h"
#include "scm_corrmat.h" #include "scm_corrmat.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
//#define DEBUG_CH //#define DEBUG_CH
#include "assertions.h" #include "assertions.h"
+1 -2
View File
@@ -31,8 +31,7 @@
#include <string.h> #include <string.h>
#include <inttypes.h> #include <inttypes.h>
#include "log.h" #include "common/utils/LOG/log.h"
#include "log_extern.h"
#include "assertions.h" #include "assertions.h"
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
# include "intertask_interface.h" # include "intertask_interface.h"
+1 -2
View File
@@ -30,8 +30,7 @@
#include <string.h> #include <string.h>
#include <inttypes.h> #include <inttypes.h>
#include "log.h" #include "common/utils/LOG/log.h"
#include "log_extern.h"
#include "assertions.h" #include "assertions.h"
#include "enb_config.h" #include "enb_config.h"
#include "UTIL/OTG/otg.h" #include "UTIL/OTG/otg.h"
+1 -1
View File
@@ -29,7 +29,7 @@
#include "flexran_agent_async.h" #include "flexran_agent_async.h"
#include "flexran_agent_defs.h" #include "flexran_agent_defs.h"
#include "log.h" #include "common/utils/LOG/log.h"
flexran_agent_async_channel_t * flexran_agent_async_channel_info(mid_t mod_id, char *dst_ip, uint16_t dst_port) { flexran_agent_async_channel_t * flexran_agent_async_channel_info(mid_t mod_id, char *dst_ip, uint16_t dst_port) {
+1 -1
View File
@@ -27,7 +27,7 @@
*/ */
#include "flexran_agent_net_comm.h" #include "flexran_agent_net_comm.h"
#include "log.h" #include "common/utils/LOG/log.h"
flexran_agent_channel_t *agent_channel[NUM_MAX_ENB][FLEXRAN_AGENT_MAX]; flexran_agent_channel_t *agent_channel[NUM_MAX_ENB][FLEXRAN_AGENT_MAX];
flexran_agent_channel_instance_t channel_instance; flexran_agent_channel_instance_t channel_instance;
+2 -2
View File
@@ -45,8 +45,8 @@
#include "mac.h" #include "mac.h"
#include "mac_proto.h" #include "mac_proto.h"
#include "mac_extern.h" #include "mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "common/ran_context.h" #include "common/ran_context.h"
#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0))
+2 -2
View File
@@ -46,8 +46,8 @@
#include "mac.h" #include "mac.h"
#include "mac_proto.h" #include "mac_proto.h"
#include "mac_extern.h" #include "mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY/INIT/phy_init.h" #include "PHY/INIT/phy_init.h"
#include "common/ran_context.h" #include "common/ran_context.h"
+2 -2
View File
@@ -35,8 +35,8 @@
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+2 -2
View File
@@ -40,8 +40,8 @@
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+2 -2
View File
@@ -33,8 +33,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+9 -9
View File
@@ -33,8 +33,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
@@ -474,7 +474,7 @@ schedule_dlsch(module_id_t module_idP,
slice_sched_dl[i] = dlsym(NULL, dl_scheduler_type[i]); slice_sched_dl[i] = dlsym(NULL, dl_scheduler_type[i]);
update_dl_scheduler[i] = 0 ; update_dl_scheduler[i] = 0 ;
update_dl_scheduler_current[i] = 0; update_dl_scheduler_current[i] = 0;
LOG_N(MAC,"update dl scheduler slice %d\n", i); LOG_I(MAC,"update dl scheduler slice %d\n", i);
} }
if (total_slice_percentage <= 1.0){ // the new total RB share is within the range if (total_slice_percentage <= 1.0){ // the new total RB share is within the range
@@ -482,7 +482,7 @@ schedule_dlsch(module_id_t module_idP,
// check if the number of slices has changed, and log // check if the number of slices has changed, and log
if (n_active_slices_current != n_active_slices ){ if (n_active_slices_current != n_active_slices ){
if ((n_active_slices > 0) && (n_active_slices <= MAX_NUM_SLICES)) { if ((n_active_slices > 0) && (n_active_slices <= MAX_NUM_SLICES)) {
LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n", LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active DL slices has changed: %d-->%d\n",
module_idP, frameP, subframeP, n_active_slices_current, n_active_slices); module_idP, frameP, subframeP, n_active_slices_current, n_active_slices);
n_active_slices_current = n_active_slices; n_active_slices_current = n_active_slices;
@@ -495,7 +495,7 @@ schedule_dlsch(module_id_t module_idP,
// check if the slice rb share has changed, and log the console // check if the slice rb share has changed, and log the console
if (slice_percentage_current[i] != slice_percentage[i]){ // new slice percentage if (slice_percentage_current[i] != slice_percentage[i]){ // new slice percentage
LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
module_idP, i, frameP, subframeP, total_slice_percentage_current, total_slice_percentage, slice_percentage_current[i], slice_percentage[i]); module_idP, i, frameP, subframeP, total_slice_percentage_current, total_slice_percentage, slice_percentage_current[i], slice_percentage[i]);
total_slice_percentage_current= total_slice_percentage; total_slice_percentage_current= total_slice_percentage;
slice_percentage_current[i] = slice_percentage[i]; slice_percentage_current[i] = slice_percentage[i];
@@ -505,7 +505,7 @@ schedule_dlsch(module_id_t module_idP,
// check if the slice max MCS, and log the console // check if the slice max MCS, and log the console
if (slice_maxmcs_current[i] != slice_maxmcs[i]){ if (slice_maxmcs_current[i] != slice_maxmcs[i]){
if ((slice_maxmcs[i] >= 0) && (slice_maxmcs[i] < 29)){ if ((slice_maxmcs[i] >= 0) && (slice_maxmcs[i] < 29)){
LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
module_idP, i, frameP, subframeP, slice_maxmcs_current[i], slice_maxmcs[i]); module_idP, i, frameP, subframeP, slice_maxmcs_current[i], slice_maxmcs[i]);
slice_maxmcs_current[i] = slice_maxmcs[i]; slice_maxmcs_current[i] = slice_maxmcs[i];
} else { } else {
@@ -516,7 +516,7 @@ schedule_dlsch(module_id_t module_idP,
// check if a new scheduler, and log the console // check if a new scheduler, and log the console
if (update_dl_scheduler_current[i] != update_dl_scheduler[i]){ if (update_dl_scheduler_current[i] != update_dl_scheduler[i]){
LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n", LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: DL scheduler for this slice is updated: %s \n",
module_idP, i, frameP, subframeP, dl_scheduler_type[i]); module_idP, i, frameP, subframeP, dl_scheduler_type[i]);
update_dl_scheduler_current[i] = update_dl_scheduler[i]; update_dl_scheduler_current[i] = update_dl_scheduler[i];
} }
@@ -542,7 +542,7 @@ schedule_dlsch(module_id_t module_idP,
// Check for new sorting policy // Check for new sorting policy
if (sorting_policy_current[i] != sorting_policy[i]) { if (sorting_policy_current[i] != sorting_policy[i]) {
LOG_N(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n", LOG_I(MAC,"[eNB %d][SLICE %d][DL] frame %d subframe %d: UE sorting policy has changed (%x-->%x)\n",
module_idP, i, frameP, subframeP, sorting_policy_current[i], sorting_policy[i]); module_idP, i, frameP, subframeP, sorting_policy_current[i], sorting_policy[i]);
sorting_policy_current[i] = sorting_policy[i]; sorting_policy_current[i] = sorting_policy[i];
} }
@@ -1780,7 +1780,7 @@ set_ue_dai(sub_frame_t subframeP,
default: default:
UE_list->UE_template[CC_id][UE_id].DAI = 0; UE_list->UE_template[CC_id][UE_id].DAI = 0;
LOG_N(MAC, "unknow TDD config %d\n", tdd_config); LOG_I(MAC, "unknow TDD config %d\n", tdd_config);
break; break;
} }
} }
+2 -2
View File
@@ -39,8 +39,8 @@
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "LAYER2/MAC/eNB_scheduler_fairRR.h" #include "LAYER2/MAC/eNB_scheduler_fairRR.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+2 -2
View File
@@ -33,8 +33,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+2 -2
View File
@@ -39,8 +39,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
@@ -35,8 +35,8 @@
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+8 -8
View File
@@ -36,8 +36,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
@@ -800,7 +800,7 @@ rx_sdu(const module_id_t enb_mod_idP,
/* /*
if (msg3_flagP != NULL) { if (msg3_flagP != NULL) {
if( *msg3_flagP == 1 ) { if( *msg3_flagP == 1 ) {
LOG_N(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP); LOG_I(MAC,"[eNB %d] CC_id %d frame %d : false msg3 detection: signal phy to canceling RA and remove the UE\n", enb_mod_idP, CC_idP, frameP);
*msg3_flagP=0; *msg3_flagP=0;
} }
} */ } */
@@ -1095,7 +1095,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
//total_slice_percentage_current_uplink+=slice_percentage_uplink[i]; //total_slice_percentage_current_uplink+=slice_percentage_uplink[i];
//if (total_slice_percentage_current_uplink> 1) //if (total_slice_percentage_current_uplink> 1)
//total_slice_percentage_current_uplink=1; //total_slice_percentage_current_uplink=1;
LOG_N(MAC,"update ul scheduler slice %d\n", i); LOG_I(MAC,"update ul scheduler slice %d\n", i);
} }
// the new total RB share is within the range // the new total RB share is within the range
if (total_slice_percentage_uplink <= 1.0){ if (total_slice_percentage_uplink <= 1.0){
@@ -1103,7 +1103,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
// check if the number of slices has changed, and log // check if the number of slices has changed, and log
if (n_active_slices_current_uplink != n_active_slices_uplink ){ if (n_active_slices_current_uplink != n_active_slices_uplink ){
if ((n_active_slices_uplink > 0) && (n_active_slices_uplink <= MAX_NUM_SLICES)) { if ((n_active_slices_uplink > 0) && (n_active_slices_uplink <= MAX_NUM_SLICES)) {
LOG_N(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n", LOG_I(MAC,"[eNB %d]frame %d subframe %d: number of active UL slices has changed: %d-->%d\n",
module_idP, frameP, subframeP, n_active_slices_current_uplink, n_active_slices_uplink); module_idP, frameP, subframeP, n_active_slices_current_uplink, n_active_slices_uplink);
n_active_slices_current_uplink = n_active_slices_uplink; n_active_slices_current_uplink = n_active_slices_uplink;
} else { } else {
@@ -1115,7 +1115,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
// check if the slice rb share has changed, and log the console // check if the slice rb share has changed, and log the console
if (slice_percentage_current_uplink[i] != slice_percentage_uplink[i]){ if (slice_percentage_current_uplink[i] != slice_percentage_uplink[i]){
LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n", LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: total percentage %f-->%f, slice RB percentage has changed: %f-->%f\n",
module_idP, i, frameP, subframeP, total_slice_percentage_current_uplink, module_idP, i, frameP, subframeP, total_slice_percentage_current_uplink,
total_slice_percentage_uplink, slice_percentage_current_uplink[i], slice_percentage_uplink[i]); total_slice_percentage_uplink, slice_percentage_current_uplink[i], slice_percentage_uplink[i]);
total_slice_percentage_current_uplink = total_slice_percentage_uplink; total_slice_percentage_current_uplink = total_slice_percentage_uplink;
@@ -1125,7 +1125,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
// check if the slice max MCS, and log the console // check if the slice max MCS, and log the console
if (slice_maxmcs_current_uplink[i] != slice_maxmcs_uplink[i]){ if (slice_maxmcs_current_uplink[i] != slice_maxmcs_uplink[i]){
if ((slice_maxmcs_uplink[i] >= 0) && (slice_maxmcs_uplink[i] <= 16)){ if ((slice_maxmcs_uplink[i] >= 0) && (slice_maxmcs_uplink[i] <= 16)){
LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n", LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: slice MAX MCS has changed: %d-->%d\n",
module_idP, i, frameP, subframeP, slice_maxmcs_current_uplink[i], slice_maxmcs_uplink[i]); module_idP, i, frameP, subframeP, slice_maxmcs_current_uplink[i], slice_maxmcs_uplink[i]);
slice_maxmcs_current_uplink[i] = slice_maxmcs_uplink[i]; slice_maxmcs_current_uplink[i] = slice_maxmcs_uplink[i];
} else { } else {
@@ -1137,7 +1137,7 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP,
// check if a new scheduler, and log the console // check if a new scheduler, and log the console
if (update_ul_scheduler_current[i] != update_ul_scheduler[i]){ if (update_ul_scheduler_current[i] != update_ul_scheduler[i]){
LOG_N(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n", LOG_I(MAC,"[eNB %d][SLICE %d][UL] frame %d subframe %d: UL scheduler for this slice is updated: %s \n",
module_idP, i, frameP, subframeP, ul_scheduler_type[i]); module_idP, i, frameP, subframeP, ul_scheduler_type[i]);
update_ul_scheduler_current[i] = update_ul_scheduler[i]; update_ul_scheduler_current[i] = update_ul_scheduler[i];
} }
+1 -1
View File
@@ -31,7 +31,7 @@
#include "mac.h" #include "mac.h"
#include "mac_extern.h" #include "mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "mac_proto.h" #include "mac_proto.h"
int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP, uint8_t CC_id) int8_t get_Po_NOMINAL_PUSCH(module_id_t module_idP, uint8_t CC_id)
+1 -1
View File
@@ -38,7 +38,7 @@
//#include "SCHED/sched_eNB.h" //#include "SCHED/sched_eNB.h"
#include "LAYER2/PDCP_v10.1.0/pdcp.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h"
#include "RRC/LTE/rrc_defs.h" #include "RRC/LTE/rrc_defs.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "common/ran_context.h" #include "common/ran_context.h"
+1 -1
View File
@@ -38,7 +38,7 @@
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "LAYER2/PDCP_v10.1.0/pdcp.h" #include "LAYER2/PDCP_v10.1.0/pdcp.h"
#include "RRC/LTE/rrc_defs.h" #include "RRC/LTE/rrc_defs.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
+2 -2
View File
@@ -36,8 +36,8 @@
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_proto.h" #include "LAYER2/MAC/mac_proto.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+2 -2
View File
@@ -33,13 +33,13 @@
#include "mac_extern.h" #include "mac_extern.h"
#include "mac.h" #include "mac.h"
#include "mac_proto.h" #include "mac_proto.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "PHY_INTERFACE/phy_interface_extern.h" #include "PHY_INTERFACE/phy_interface_extern.h"
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "COMMON/mac_rrc_primitives.h" #include "COMMON/mac_rrc_primitives.h"
#include "RRC/LTE/rrc_extern.h" #include "RRC/LTE/rrc_extern.h"
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
+1 -1
View File
@@ -32,7 +32,7 @@
#include "mac_proto.h" #include "mac_proto.h"
#include "mac_extern.h" #include "mac_extern.h"
#include "SIMULATION/TOOLS/sim.h" #include "SIMULATION/TOOLS/sim.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
+1 -1
View File
@@ -32,7 +32,7 @@
#include "mac_proto.h" #include "mac_proto.h"
#include "mac_extern.h" #include "mac_extern.h"
#include "SIMULATION/TOOLS/sim.h" #include "SIMULATION/TOOLS/sim.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
+3 -3
View File
@@ -45,8 +45,8 @@
#include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #include "RRC/L2_INTERFACE/openair_rrc_L2_interface.h"
#include "RRC/LTE/rrc_extern.h" #include "RRC/LTE/rrc_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "UTIL/OPT/opt.h" #include "UTIL/OPT/opt.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
@@ -2386,7 +2386,7 @@ ue_scheduler(const module_id_t module_idP,
return (PHY_RESYNCH); return (PHY_RESYNCH);
case RRC_Handover_failed: case RRC_Handover_failed:
LOG_N(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP, LOG_I(MAC, "Handover failure for UE %d eNB_index %d\n", module_idP,
eNB_indexP); eNB_indexP);
//Invalid...need to add another MAC UE state for re-connection procedure //Invalid...need to add another MAC UE state for re-connection procedure
phy_config_afterHO_ue(module_idP, 0, eNB_indexP, phy_config_afterHO_ue(module_idP, 0, eNB_indexP,
+4 -4
View File
@@ -42,10 +42,10 @@
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
#include "otg_rx.h" #include "otg_rx.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include <inttypes.h> #include <inttypes.h>
#include "platform_constants.h" #include "platform_constants.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "msc.h" #include "msc.h"
#if defined(ENABLE_SECURITY) #if defined(ENABLE_SECURITY)
@@ -1583,7 +1583,7 @@ pdcp_config_req_asn1 (
pdcp_pP->first_missing_pdu = -1; pdcp_pP->first_missing_pdu = -1;
pdcp_pP->rx_hfn_offset = 0; pdcp_pP->rx_hfn_offset = 0;
LOG_N(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD LCID %d (%s id %d) " LOG_I(PDCP, PROTOCOL_PDCP_CTXT_FMT" Action ADD LCID %d (%s id %d) "
"configured with SN size %d bits and RLC %s\n", "configured with SN size %d bits and RLC %s\n",
PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP), PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP),
lc_idP, lc_idP,
@@ -1632,7 +1632,7 @@ pdcp_config_req_asn1 (
pdcp_pP->seq_num_size=5; pdcp_pP->seq_num_size=5;
} }
LOG_N(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d " LOG_I(PDCP,PROTOCOL_PDCP_CTXT_FMT" Action MODIFY LCID %d "
"RB id %d reconfigured with SN size %d and RLC %s \n", "RB id %d reconfigured with SN size %d and RLC %s \n",
PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP), PROTOCOL_PDCP_CTXT_ARGS(ctxt_pP,pdcp_pP),
lc_idP, lc_idP,
+2 -2
View File
@@ -52,10 +52,10 @@ extern int otg_enabled;
//#include "SIMULATION/ETH_TRANSPORT/extern.h" //#include "SIMULATION/ETH_TRANSPORT/extern.h"
#include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG.h"
#include "UTIL/OCG/OCG_extern.h" #include "UTIL/OCG/OCG_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/OTG/otg_tx.h" #include "UTIL/OTG/otg_tx.h"
#include "UTIL/FIFO/pad_list.h" #include "UTIL/FIFO/pad_list.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "platform_constants.h" #include "platform_constants.h"
#include "msc.h" #include "msc.h"
#include "pdcp.h" #include "pdcp.h"
+1 -1
View File
@@ -52,7 +52,7 @@
#include "queue.h" #include "queue.h"
#include "liblfds611.h" #include "liblfds611.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG.h"
#include "UTIL/OCG/OCG_extern.h" #include "UTIL/OCG/OCG_extern.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
@@ -26,7 +26,7 @@
* \version 0.1 * \version 0.1
*/ */
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "platform_types.h" #include "platform_types.h"
#include "platform_constants.h" #include "platform_constants.h"
#include "pdcp.h" #include "pdcp.h"
+2 -2
View File
@@ -29,10 +29,10 @@
#include "assertions.h" #include "assertions.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UTIL/OSA/osa_defs.h" #include "UTIL/OSA/osa_defs.h"
#include "UTIL/LOG/vcd_signal_dumper.h" #include "common/utils/LOG/vcd_signal_dumper.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
@@ -27,7 +27,7 @@
*/ */
#include "pdcp_sequence_manager.h" #include "pdcp_sequence_manager.h"
#include "UTIL/LOG/log_if.h" #include "common/utils//LOG/log_if.h"
#include "pdcp_util.h" #include "pdcp_util.h"
/* /*
+1 -1
View File
@@ -27,7 +27,7 @@
#include <assert.h> #include <assert.h>
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "pdcp_util.h" #include "pdcp_util.h"
/* /*
+1 -1
View File
@@ -28,7 +28,7 @@
#ifndef PDCP_UTIL_H #ifndef PDCP_UTIL_H
#define PDCP_UTIL_H #define PDCP_UTIL_H
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "../../COMMON/platform_types.h" #include "../../COMMON/platform_types.h"
#include "pdcp.h" #include "pdcp.h"
+2 -2
View File
@@ -38,7 +38,7 @@
#include "rlc_primitives.h" #include "rlc_primitives.h"
#include "list.h" #include "list.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "UL-AM-RLC.h" #include "UL-AM-RLC.h"
#include "DL-AM-RLC.h" #include "DL-AM-RLC.h"
@@ -499,7 +499,7 @@ rlc_am_rx (
switch (rlc->protocol_state) { switch (rlc->protocol_state) {
case RLC_NULL_STATE: case RLC_NULL_STATE:
LOG_N(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc)); LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc));
list_free (&data_indP.data); list_free (&data_indP.data);
break; break;
@@ -31,7 +31,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#define TRACE_RLC_AM_FREE_SDU 0 #define TRACE_RLC_AM_FREE_SDU 0
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
+1 -1
View File
@@ -25,7 +25,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void void
rlc_am_init( rlc_am_init(
@@ -31,7 +31,7 @@
#include "rlc_am.h" #include "rlc_am.h"
#include "list.h" #include "list.h"
//#include "LAYER2/MAC/extern.h" //#include "LAYER2/MAC/extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "msc.h" #include "msc.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -29,7 +29,7 @@
#include "rlc_am.h" #include "rlc_am.h"
#include "list.h" #include "list.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -27,7 +27,7 @@
#include "rlc_am.h" #include "rlc_am.h"
#include "rlc.h" #include "rlc.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "msc.h" #include "msc.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
boolean_t rlc_am_nack_pdu ( boolean_t rlc_am_nack_pdu (
@@ -28,7 +28,7 @@
#include "list.h" #include "list.h"
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
boolean_t rlc_am_rx_check_vr_reassemble( boolean_t rlc_am_rx_check_vr_reassemble(
@@ -30,7 +30,7 @@
#include "list.h" #include "list.h"
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void rlc_am_pdu_polling ( void rlc_am_pdu_polling (
@@ -209,7 +209,7 @@ void rlc_am_segment_10 (
} }
if (!(pdu_mem_p = get_free_mem_block (data_pdu_size + sizeof(struct mac_tb_req), __func__))) { if (!(pdu_mem_p = get_free_mem_block (data_pdu_size + sizeof(struct mac_tb_req), __func__))) {
LOG_C(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n", LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEGMENT] ERROR COULD NOT GET NEW PDU, EXIT\n",
PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP));
RLC_AM_MUTEX_UNLOCK(&rlc_pP->lock_input_sdus); RLC_AM_MUTEX_UNLOCK(&rlc_pP->lock_input_sdus);
return; return;
@@ -32,7 +32,7 @@
#include "assertions.h" #include "assertions.h"
#include "list.h" #include "list.h"
#include "rlc_am.h" #include "rlc_am.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
# if ENABLE_ITTI # if ENABLE_ITTI
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -28,7 +28,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "msc.h" #include "msc.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void void
@@ -27,7 +27,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "rlc_am.h" #include "rlc_am.h"
# include "LAYER2/MAC/mac_extern.h" # include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils//LOG/log.h"
#include "msc.h" #include "msc.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void void
@@ -27,7 +27,7 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "rlc_am.h" #include "rlc_am.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log.h" #include "common/utils/LOG/log.h"
#include "msc.h" #include "msc.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void void

Some files were not shown because too many files have changed in this diff Show More