Commit bb52f714 authored by Cedric Roux's avatar Cedric Roux

- Force logs level to 7 in pre-ci

- Output logs from ping/oaisim in two distincts files
- Fix some compiler warnings
- Put assertions in some switch default cases
- Create a wrapper for macphy_exit to display FILE and LINE of the caller
- Enabled -Werror=implicit-function-declaration

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4682 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 54ada88d
...@@ -137,12 +137,12 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue, ...@@ -137,12 +137,12 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue,
u8 slot, u8 slot,
u8 abstraction_flag) { u8 abstraction_flag) {
int aarx,i,rb; int aarx,rb;
s16 *rxF; s16 *rxF;
u16 Nid_cell = phy_vars_ue->lte_frame_parms.Nid_cell; u16 Nid_cell = phy_vars_ue->lte_frame_parms.Nid_cell;
u8 eNB_offset,nu,l,nushift,k; u8 eNB_offset,nu,l,nushift,k;
u16 off,off2; u16 off;
s16 rx_power_correction; s16 rx_power_correction;
...@@ -196,14 +196,11 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue, ...@@ -196,14 +196,11 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue,
#ifndef NEW_FFT #ifndef NEW_FFT
rxF = (s16 *)&phy_vars_ue->lte_ue_common_vars.rxdataF[aarx][(l*phy_vars_ue->lte_frame_parms.ofdm_symbol_size)<<1]; rxF = (s16 *)&phy_vars_ue->lte_ue_common_vars.rxdataF[aarx][(l*phy_vars_ue->lte_frame_parms.ofdm_symbol_size)<<1];
off = (phy_vars_ue->lte_frame_parms.first_carrier_offset+k)<<2; off = (phy_vars_ue->lte_frame_parms.first_carrier_offset+k)<<2;
off2 = (phy_vars_ue->lte_frame_parms.first_carrier_offset)<<2;
#else #else
rxF = (s16 *)&phy_vars_ue->lte_ue_common_vars.rxdataF[aarx][(l*phy_vars_ue->lte_frame_parms.ofdm_symbol_size)]; rxF = (s16 *)&phy_vars_ue->lte_ue_common_vars.rxdataF[aarx][(l*phy_vars_ue->lte_frame_parms.ofdm_symbol_size)];
off = (phy_vars_ue->lte_frame_parms.first_carrier_offset+k)<<1; off = (phy_vars_ue->lte_frame_parms.first_carrier_offset+k)<<1;
off2 = (phy_vars_ue->lte_frame_parms.first_carrier_offset)<<1;
#endif #endif
if (l==(4-phy_vars_ue->lte_frame_parms.Ncp)) { if (l==(4-phy_vars_ue->lte_frame_parms.Ncp)) {
for (rb=0;rb<phy_vars_ue->lte_frame_parms.N_RB_DL;rb++) { for (rb=0;rb<phy_vars_ue->lte_frame_parms.N_RB_DL;rb++) {
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
#include <tmmintrin.h> #include <tmmintrin.h>
#endif #endif
#include "assertions.h"
//#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_ENCODING 1
//#define DEBUG_DCI_DECODING 1 //#define DEBUG_DCI_DECODING 1
...@@ -2484,7 +2485,7 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **lte_ue_pdcch_vars,int do_common,u8 s ...@@ -2484,7 +2485,7 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **lte_ue_pdcch_vars,int do_common,u8 s
u16 crc,CCEind,nCCE; u16 crc,CCEind,nCCE;
u32 *CCEmap=NULL,CCEmap_mask=0; u32 *CCEmap=NULL,CCEmap_mask=0;
int L2=(1<<L); int L2=(1<<L);
unsigned int Yk,nb_candidates,i,m; unsigned int Yk,nb_candidates = 0,i,m;
unsigned int CCEmap_cand; unsigned int CCEmap_cand;
nCCE = get_nCCE(lte_ue_pdcch_vars[eNB_id]->num_pdcch_symbols,frame_parms,mi); nCCE = get_nCCE(lte_ue_pdcch_vars[eNB_id]->num_pdcch_symbols,frame_parms,mi);
...@@ -2517,6 +2518,9 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **lte_ue_pdcch_vars,int do_common,u8 s ...@@ -2517,6 +2518,9 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **lte_ue_pdcch_vars,int do_common,u8 s
case 8: case 8:
nb_candidates = 2; nb_candidates = 2;
break; break;
default:
DevParam(L2, do_common, eNB_id);
break;
} }
} }
/* for (CCEind=0; /* for (CCEind=0;
...@@ -2768,6 +2772,11 @@ u16 dci_decoding_procedure(PHY_VARS_UE *phy_vars_ue, ...@@ -2768,6 +2772,11 @@ u16 dci_decoding_procedure(PHY_VARS_UE *phy_vars_ue,
format1_size_bytes = sizeof(DCI1_20MHz_FDD_t); format1_size_bytes = sizeof(DCI1_20MHz_FDD_t);
} }
break; break;
default:
format1_size_bits = 0;
format1_size_bytes = 0;
DevParam(frame_parms->N_RB_DL, frame_type, 0);
break;
} }
if (do_common == 1) { if (do_common == 1) {
......
...@@ -47,6 +47,8 @@ ...@@ -47,6 +47,8 @@
#include "SCHED/defs.h" #include "SCHED/defs.h"
#endif #endif
#include "assertions.h"
extern uint16_t RIV2nb_rb_LUT6[32]; extern uint16_t RIV2nb_rb_LUT6[32];
extern uint16_t RIV2first_rb_LUT6[32]; extern uint16_t RIV2first_rb_LUT6[32];
extern uint16_t RIV2nb_rb_LUT25[512]; extern uint16_t RIV2nb_rb_LUT25[512];
...@@ -100,6 +102,9 @@ int generate_eNB_ulsch_params_from_rar(unsigned char *rar_pdu, ...@@ -100,6 +102,9 @@ int generate_eNB_ulsch_params_from_rar(unsigned char *rar_pdu,
RIV2first_rb_LUT = &RIV2first_rb_LUT100[0]; RIV2first_rb_LUT = &RIV2first_rb_LUT100[0];
RIV_max = RIV_max100; RIV_max = RIV_max100;
break; break;
default:
DevParam(frame_parms->N_RB_DL, harq_pid, 0);
break;
} }
ulsch->harq_processes[harq_pid]->TPC = (rar[3]>>2)&7;//rar->TPC; ulsch->harq_processes[harq_pid]->TPC = (rar[3]>>2)&7;//rar->TPC;
...@@ -181,7 +186,7 @@ int generate_ue_ulsch_params_from_rar(PHY_VARS_UE *phy_vars_ue, ...@@ -181,7 +186,7 @@ int generate_ue_ulsch_params_from_rar(PHY_VARS_UE *phy_vars_ue,
uint8_t cqireq; uint8_t cqireq;
double sinr_eff; double sinr_eff;
uint16_t *RIV2nb_rb_LUT, *RIV2first_rb_LUT; uint16_t *RIV2nb_rb_LUT, *RIV2first_rb_LUT;
uint16_t RIV_max; uint16_t RIV_max = 0;
LOG_D(PHY,"[eNB][RAPROC] Frame %d: generate_ue_ulsch_params_from_rar: subframe %d (harq_pid %d)\n",phy_vars_ue->frame,subframe,harq_pid); LOG_D(PHY,"[eNB][RAPROC] Frame %d: generate_ue_ulsch_params_from_rar: subframe %d (harq_pid %d)\n",phy_vars_ue->frame,subframe,harq_pid);
...@@ -206,6 +211,9 @@ int generate_ue_ulsch_params_from_rar(PHY_VARS_UE *phy_vars_ue, ...@@ -206,6 +211,9 @@ int generate_ue_ulsch_params_from_rar(PHY_VARS_UE *phy_vars_ue,
RIV2first_rb_LUT = &RIV2first_rb_LUT100[0]; RIV2first_rb_LUT = &RIV2first_rb_LUT100[0];
RIV_max = RIV_max100; RIV_max = RIV_max100;
break; break;
default:
DevParam(frame_parms->N_RB_DL, eNB_id, harq_pid);
break;
} }
......
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
#include "UTIL/LOG/vcd_signal_dumper.h" #include "UTIL/LOG/vcd_signal_dumper.h"
//#endif //#endif
#include "assertions.h"
//#define DIAG_PHY //#define DIAG_PHY
#define NS_PER_SLOT 500000 #define NS_PER_SLOT 500000
...@@ -283,7 +285,7 @@ void init_nCCE_table(void) { ...@@ -283,7 +285,7 @@ void init_nCCE_table(void) {
int get_nCCE_offset(unsigned char L, int nCCE, int common_dci, unsigned short rnti, unsigned char subframe) { int get_nCCE_offset(unsigned char L, int nCCE, int common_dci, unsigned short rnti, unsigned char subframe) {
int search_space_free,m,nb_candidates,l,i; int search_space_free,m,nb_candidates = 0,l,i;
unsigned int Yk; unsigned int Yk;
/* /*
printf("CCE Allocation: "); printf("CCE Allocation: ");
...@@ -331,6 +333,9 @@ int get_nCCE_offset(unsigned char L, int nCCE, int common_dci, unsigned short rn ...@@ -331,6 +333,9 @@ int get_nCCE_offset(unsigned char L, int nCCE, int common_dci, unsigned short rn
case 8: case 8:
nb_candidates = 2; nb_candidates = 2;
break; break;
default:
DevParam(L, nCCE, rnti);
break;
} }
// LOG_I(PHY,"rnti %x, Yk = %d, nCCE %d (nCCE/L %d),nb_cand %d\n",rnti,Yk,nCCE,nCCE/L,nb_candidates); // LOG_I(PHY,"rnti %x, Yk = %d, nCCE %d (nCCE/L %d),nb_cand %d\n",rnti,Yk,nCCE,nCCE/L,nb_candidates);
...@@ -918,8 +923,6 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8 ...@@ -918,8 +923,6 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8
// s16 amp; // s16 amp;
u8 ul_subframe; u8 ul_subframe;
u32 ul_frame; u32 ul_frame;
int re_offset;
uint32_t *txptr;
#ifdef Rel10 #ifdef Rel10
MCH_PDU *mch_pduP; MCH_PDU *mch_pduP;
MCH_PDU mch_pdu; MCH_PDU mch_pdu;
...@@ -1488,7 +1491,7 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8 ...@@ -1488,7 +1491,7 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8
pdcch_alloc2ul_subframe(&phy_vars_eNB->lte_frame_parms,next_slot>>1)); pdcch_alloc2ul_subframe(&phy_vars_eNB->lte_frame_parms,next_slot>>1));
if (harq_pid==255) { if (harq_pid==255) {
LOG_E(PHY,"[eNB %d] Frame %d: Bad harq_pid for ULSCH allocation\n",phy_vars_eNB->Mod_id,phy_vars_eNB->frame); LOG_E(PHY,"[eNB %d] Frame %d: Bad harq_pid for ULSCH allocation\n",phy_vars_eNB->Mod_id,phy_vars_eNB->frame);
mac_xface->macphy_exit(""); mac_exit_wrapper("Invalid harq_pid (255) detected");
} }
#ifdef OPENAIR2 #ifdef OPENAIR2
UE_id = find_ue((s16)DCI_pdu->dci_alloc[i].rnti,phy_vars_eNB); UE_id = find_ue((s16)DCI_pdu->dci_alloc[i].rnti,phy_vars_eNB);
...@@ -1497,7 +1500,7 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8 ...@@ -1497,7 +1500,7 @@ void phy_procedures_eNB_TX(unsigned char next_slot,PHY_VARS_eNB *phy_vars_eNB,u8
#endif #endif
if (UE_id<0) { if (UE_id<0) {
LOG_E(PHY,"[eNB %d] Frame %d: Unknown UE_id for rnti %x\n",phy_vars_eNB->Mod_id,phy_vars_eNB->frame,(s16)DCI_pdu->dci_alloc[i].rnti); LOG_E(PHY,"[eNB %d] Frame %d: Unknown UE_id for rnti %x\n",phy_vars_eNB->Mod_id,phy_vars_eNB->frame,(s16)DCI_pdu->dci_alloc[i].rnti);
mac_xface->macphy_exit(""); mac_exit_wrapper("Invalid UE id (< 0) detected");
} }
#ifdef DEBUG_PHY_PROC #ifdef DEBUG_PHY_PROC
if (phy_vars_eNB->frame%100 == 0) if (phy_vars_eNB->frame%100 == 0)
...@@ -2484,7 +2487,8 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8 ...@@ -2484,7 +2487,8 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
u32 harq_pid, round; u32 harq_pid, round;
u8 SR_payload,*pucch_payload=NULL,pucch_payload0[2]={0,0},pucch_payload1[2]={0,0}; u8 SR_payload,*pucch_payload=NULL,pucch_payload0[2]={0,0},pucch_payload1[2]={0,0};
s16 n1_pucch0,n1_pucch1,n1_pucch2,n1_pucch3; s16 n1_pucch0,n1_pucch1,n1_pucch2,n1_pucch3;
u8 do_SR=0,pucch_sel; u8 do_SR = 0;
u8 pucch_sel = 0;
s16 metric0=0,metric1=0; s16 metric0=0,metric1=0;
ANFBmode_t bundling_flag; ANFBmode_t bundling_flag;
PUCCH_FMT_t format; PUCCH_FMT_t format;
...@@ -2870,7 +2874,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8 ...@@ -2870,7 +2874,7 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
printf("%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]); printf("%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]);
printf("\n"); printf("\n");
dump_ulsch(phy_vars_eNB,last_slot>>1,i); dump_ulsch(phy_vars_eNB,last_slot>>1,i);
mac_xface->macphy_exit(""); mac_exit_wrapper("Msg3 error");
} // This is Msg3 error } // This is Msg3 error
else { //normal ULSCH else { //normal ULSCH
LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n",
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "assertions.h" #include "assertions.h"
#include "pgm_link.h"
#include "multicast_link.h" #include "multicast_link.h"
#include "UTIL/OCG/OCG.h" #include "UTIL/OCG/OCG.h"
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
/* Define prototypes only if enabled */ /* Define prototypes only if enabled */
#if defined(ENABLE_PGM_TRANSPORT) #if defined(ENABLE_PGM_TRANSPORT)
void bypass_tx_nack(unsigned int frame, unsigned int next_slot);
int pgm_oai_init(char *if_name); int pgm_oai_init(char *if_name);
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <errno.h>
#include "PHY/TOOLS/defs.h" #include "PHY/TOOLS/defs.h"
#include "defs.h" #include "defs.h"
...@@ -192,10 +192,14 @@ double a[7]; ...@@ -192,10 +192,14 @@ double a[7];
void load_pbch_desc(FILE *pbch_file_fd) { void load_pbch_desc(FILE *pbch_file_fd) {
int i; int i, ret;
char dummy[25]; char dummy[25];
fscanf(pbch_file_fd,"%d",&pbch_polynomial_degree); ret = fscanf(pbch_file_fd,"%d",&pbch_polynomial_degree);
if (ret < 0) {
printf("fscanf failed: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
if (pbch_polynomial_degree>6) { if (pbch_polynomial_degree>6) {
printf("Illegal degree for pbch interpolation polynomial %d\n",pbch_polynomial_degree); printf("Illegal degree for pbch interpolation polynomial %d\n",pbch_polynomial_degree);
exit(-1); exit(-1);
...@@ -204,7 +208,11 @@ void load_pbch_desc(FILE *pbch_file_fd) { ...@@ -204,7 +208,11 @@ void load_pbch_desc(FILE *pbch_file_fd) {
printf("PBCH polynomial : "); printf("PBCH polynomial : ");
for (i=0;i<=pbch_polynomial_degree;i++) { for (i=0;i<=pbch_polynomial_degree;i++) {
fscanf(pbch_file_fd,"%s",dummy); ret = fscanf(pbch_file_fd,"%s",dummy);
if (ret < 0) {
printf("fscanf failed: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}
a[i] = strtod(dummy,NULL); a[i] = strtod(dummy,NULL);
printf("%f ",a[i]); printf("%f ",a[i]);
} }
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include "UTIL/LOG/log.h" #include "UTIL/LOG/log.h"
#include "OCG.h" #include "OCG.h"
#include "OCG_extern.h" #include "OCG_extern.h"
#include "UTIL/OPT/opt.h"
#define DEBUG_RAR #define DEBUG_RAR
...@@ -62,9 +63,9 @@ unsigned short fill_rar(u8 Mod_id, ...@@ -62,9 +63,9 @@ unsigned short fill_rar(u8 Mod_id,
RA_HEADER_RAPID *rarh = (RA_HEADER_RAPID *)dlsch_buffer; RA_HEADER_RAPID *rarh = (RA_HEADER_RAPID *)dlsch_buffer;
// RAR_PDU *rar = (RAR_PDU *)(dlsch_buffer+1); // RAR_PDU *rar = (RAR_PDU *)(dlsch_buffer+1);
uint8_t *rar = (uint8_t *)(dlsch_buffer+1); uint8_t *rar = (uint8_t *)(dlsch_buffer+1);
int i,ra_idx; int i,ra_idx = -1;
uint16_t rballoc; uint16_t rballoc;
uint8_t mcs,TPC,cqi_req,ULdelay,cqireq; uint8_t mcs,TPC,ULdelay,cqireq;
for (i=0;i<NB_RA_PROC_MAX;i++) { for (i=0;i<NB_RA_PROC_MAX;i++) {
if (eNB_mac_inst[Mod_id].RA_template[i].generate_rar == 1) { if (eNB_mac_inst[Mod_id].RA_template[i].generate_rar == 1) {
......
...@@ -141,10 +141,10 @@ int dump_eNB_l2_stats(char *buffer, int length){ ...@@ -141,10 +141,10 @@ int dump_eNB_l2_stats(char *buffer, int length){
} }
} }
} }
len += sprintf(&buffer[len],"\0");
return len; return len + 1 /* SR: for trailing \0 */;
} }
#ifdef PROC #ifdef PROC
#ifndef USER_MODE #ifndef USER_MODE
static int openair2_stats_read(char *buffer, char **my_buffer, off_t off, int length) static int openair2_stats_read(char *buffer, char **my_buffer, off_t off, int length)
......
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
#define DLSCH 1 #define DLSCH 1
#define ULSCH 2 #define ULSCH 2
#define mac_exit_wrapper(sTRING) \
mac_xface->macphy_exit(sTRING " in file " __FILE__ ", line ##__LINE__")
/*! \brief MACPHY Interface */ /*! \brief MACPHY Interface */
typedef struct typedef struct
...@@ -71,7 +71,7 @@ typedef struct ...@@ -71,7 +71,7 @@ typedef struct
u16 (*fill_rar)(u8 Mod_id,u32 frame,u8 *dlsch_buffer,u16 N_RB_UL, u8 input_buffer_length); u16 (*fill_rar)(u8 Mod_id,u32 frame,u8 *dlsch_buffer,u16 N_RB_UL, u8 input_buffer_length);
/// Terminate the RA procedure upon reception of l3msg on ulsch /// Terminate the RA procedure upon reception of l3msg on ulsch
void (*terminate_ra_proc)(u8 Mod_id,u32 frame,u16 UE_id, u8 *l3msg,u16 l3msg_len); void (*terminate_ra_proc)(u8 Mod_id,u32 frame,u16 UE_id, u8 *l3msg, u16 l3msg_len);
/// Initiate the RA procedure upon reception (hypothetical) of a valid preamble /// Initiate the RA procedure upon reception (hypothetical) of a valid preamble
void (*initiate_ra_proc)(u8 Mod_id,u32 frame,u16 preamble,s16 timing_offset,u8 sect_id,u8 subframe,u8 f_id); void (*initiate_ra_proc)(u8 Mod_id,u32 frame,u16 preamble,s16 timing_offset,u8 sect_id,u8 subframe,u8 f_id);
......
...@@ -910,11 +910,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o ...@@ -910,11 +910,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o
} else if (beam_width_dB_) { } else if (beam_width_dB_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.beam_width_dB = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.beam_width_dB = atof(ch);
} else if (alpha_rad_1_) { } else if (alpha_rad_1_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[1] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[0] = atof(ch);
} else if (alpha_rad_2_) { } else if (alpha_rad_2_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[2] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[1] = atof(ch);
} else if (alpha_rad_3_) { } else if (alpha_rad_3_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[3] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.alpha_rad[2] = atof(ch);
} else if (antenna_gain_dBi_) { } else if (antenna_gain_dBi_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_gain_dBi = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_gain_dBi = atof(ch);
} else if (tx_power_dBm_) { } else if (tx_power_dBm_) {
...@@ -922,11 +922,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o ...@@ -922,11 +922,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o
} else if (rx_noise_level_dB_) { } else if (rx_noise_level_dB_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.rx_noise_level_dB = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.rx_noise_level_dB = atof(ch);
} else if (antenna_orientation_degree_1_) { } else if (antenna_orientation_degree_1_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[1] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[0] = atof(ch);
} else if (antenna_orientation_degree_2_) { } else if (antenna_orientation_degree_2_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[2] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[1] = atof(ch);
} else if (antenna_orientation_degree_3_) { } else if (antenna_orientation_degree_3_) {
oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[3] = atof(ch); oai_emulation.environment_system_config.antenna.eNB_antenna.antenna_orientation_degree[2] = atof(ch);
} }
} else if (UE_antenna_) { } else if (UE_antenna_) {
if (antenna_gain_dBi_) { if (antenna_gain_dBi_) {
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include "../UTIL/MATH/oml.h" #include "../UTIL/MATH/oml.h"
#include <math.h> #include <math.h>
#include "otg_form.h" #include "otg_form.h"
#include "otg_kpi.h"
#ifdef ENABLE_DB_STATS #ifdef ENABLE_DB_STATS
#include <mysql.h> #include <mysql.h>
......
...@@ -18,7 +18,8 @@ COMMON_CFLAGS = \ ...@@ -18,7 +18,8 @@ COMMON_CFLAGS = \
-D'FIRMWARE_VERSION="$(SVN_REV) - $(DATE_REV)"' \ -D'FIRMWARE_VERSION="$(SVN_REV) - $(DATE_REV)"' \
-Wall \ -Wall \
-fno-strict-aliasing \ -fno-strict-aliasing \
-O2 -O2 \
-Werror=implicit-function-declaration
ITTI_MESSAGES_H = messages_xml.h ITTI_MESSAGES_H = messages_xml.h
ITTI_MESSAGES_XML = messages.xml ITTI_MESSAGES_XML = messages.xml
......
...@@ -73,7 +73,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -73,7 +73,7 @@ def execute(oai, user, pw, logfile,logdir):
try: try:
test = '01' test = '01'
name = 'Run oai.rel8.err' name = 'Run oai.rel8.err'
conf = '-a -A AWGN -n 100' conf = '-a -A AWGN -n 100 -l7'
trace = logdir + '/log_' + case + test + '_3.txt;' trace = logdir + '/log_' + case + test + '_3.txt;'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
diag = 'Error(s) found in the execution, check the execution logs' diag = 'Error(s) found in the execution, check the execution logs'
...@@ -90,7 +90,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -90,7 +90,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-a -A AWGN -n' + str((i+1+j) * 40) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-a -A AWGN -l7 -n' + str((i+1+j) * 40) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 50) oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 50)
...@@ -106,16 +106,18 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -106,16 +106,18 @@ def execute(oai, user, pw, logfile,logdir):
oai.driver(oai,user,pw) oai.driver(oai,user,pw)
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-a -A AWGN -u' + str(i+1) +' -b'+ str(j+1) conf = '-a -A AWGN -l7 -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
trace_ping = logdir + '/log_ping_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
tee_ping = ' 2>&1 | tee ' + trace_ping
if user == 'root' : if user == 'root' :
oai.send_nowait('./oaisim.rel8.nas ' + conf + ' > /dev/null &') oai.send_nowait('./oaisim.rel8.nas ' + conf + tee + ' &')
else : else :
oai.send_nowait('echo '+pw+ ' | sudo -S -E ./oaisim.rel8.nas ' + conf + ' > /dev/null &') oai.send_nowait('echo '+pw+ ' | sudo -S -E ./oaisim.rel8.nas ' + conf + tee + ' &')
time.sleep(2) time.sleep(2)
for k in range(NUM_TRIALS) : for k in range(NUM_TRIALS) :
oai.send_expect('ping 10.0.'+str(j+1)+'.'+str(NUM_eNB+i+1) + ' -c ' + str(random.randint(2, 10))+ ' -s ' + str(random.randint(128, 1500)) + tee, ' 0% packet loss', 300) oai.send_expect('ping 10.0.'+str(j+1)+'.'+str(NUM_eNB+i+1) + ' -c ' + str(random.randint(2, 10))+ ' -s ' + str(random.randint(128, 1500)) + tee_ping, ' 0% packet loss', 300)
if user == 'root' : if user == 'root' :
oai.send('pkill oaisim;') oai.send('pkill oaisim;')
oai.send('pkill oaisim.rel8.nas;') oai.send('pkill oaisim.rel8.nas;')
...@@ -138,7 +140,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -138,7 +140,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -s15 -x1' conf = '-A AWGN -l7 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -s15 -x1'
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100) oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
...@@ -153,7 +155,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -153,7 +155,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -F -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -s15 -x1' conf = '-A AWGN -l7 -F -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -s15 -x1'
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100) oai.send_expect('./oaisim.rel8 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
...@@ -171,7 +173,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -171,7 +173,7 @@ def execute(oai, user, pw, logfile,logdir):
log_name = logdir + '/log_' + case + test + '_' + str(i) + str(j) log_name = logdir + '/log_' + case + test + '_' + str(i) + str(j)
itti_name = log_name + '.log' itti_name = log_name + '.log'
trace_name = log_name + '.txt' trace_name = log_name + '.txt'
conf = '-a -A AWGN -n' + str((i+1+j) * 40) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name conf = '-a -l7 -A AWGN -n' + str((i+1+j) * 40) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name
tee = ' 2>&1 | tee -a ' + trace_name tee = ' 2>&1 | tee -a ' + trace_name
command = './oaisim.rel8.itti ' + conf command = './oaisim.rel8.itti ' + conf
oai.send('echo ' + command + ' > ' + trace_name + ';') oai.send('echo ' + command + ' > ' + trace_name + ';')
......
...@@ -53,7 +53,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -53,7 +53,7 @@ def execute(oai, user, pw, logfile,logdir):
try: try:
test = '00' test = '00'
name = 'Run oai.rel10.sf' name = 'Run oai.rel10.sf'
conf = '-a -A AWGN -n 100' conf = '-a -A AWGN -l7 -n 100'
diag = 'OAI is not running normally (Segmentation fault / Exiting / FATAL), debugging might be needed' diag = 'OAI is not running normally (Segmentation fault / Exiting / FATAL), debugging might be needed'
trace = logdir + '/log_' + case + test + '_1.txt' trace = logdir + '/log_' + case + test + '_1.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
...@@ -73,7 +73,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -73,7 +73,7 @@ def execute(oai, user, pw, logfile,logdir):
try: try:
test = '01' test = '01'
name = 'Run oai.rel10.err' name = 'Run oai.rel10.err'
conf = '-a -A AWGN -n 100' conf = '-a -A AWGN -l7 -n 100'
trace = logdir + '/log_' + case + test + '.txt' trace = logdir + '/log_' + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
diag = 'Error(s) found in the execution, check the execution logs' diag = 'Error(s) found in the execution, check the execution logs'
...@@ -90,7 +90,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -90,7 +90,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-a -A AWGN -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-a -l7 -A AWGN -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
...@@ -105,7 +105,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -105,7 +105,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s 15 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -s 15 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
...@@ -120,7 +120,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -120,7 +120,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -F -s 15 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -F -s 15 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
...@@ -135,7 +135,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -135,7 +135,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'eMBMS procedure is not finished completely, make sure that the SIB13/MCCH have been correclty received by UEs' diag = 'eMBMS procedure is not finished completely, make sure that the SIB13/MCCH have been correclty received by UEs'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s 15 -x 1 -Q3 -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -s 15 -x 1 -Q3 -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Found MBSFNAreaConfiguration from eNB ' + str(j), (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Found MBSFNAreaConfiguration from eNB ' + str(j), (i+1) * 100)
...@@ -150,7 +150,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -150,7 +150,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'eMBMS multicast/broadcast data is not received, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs' diag = 'eMBMS multicast/broadcast data is not received, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s 15 -x 1 -T mscbr -Q3 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -s 15 -x 1 -T mscbr -Q3 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received a multicast packet', (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received a multicast packet', (i+1) * 100)
...@@ -165,7 +165,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -165,7 +165,7 @@ def execute(oai, user, pw, logfile,logdir):
diag = 'eMBMS multicast/broadcast data is not received in fdd mode, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs' diag = 'eMBMS multicast/broadcast data is not received in fdd mode, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -F -s 15 -x 1 -T mscbr -Q3 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -F -s 15 -x 1 -T mscbr -Q3 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received a multicast packet', (i+1) * 100) oai.send_expect('./oaisim.rel10 ' + conf + tee, ' Received a multicast packet', (i+1) * 100)
...@@ -195,7 +195,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -195,7 +195,7 @@ def execute(oai, user, pw, logfile,logdir):
log_name = logdir + '/log_' + case + test + '_' + str(i) + str(j) log_name = logdir + '/log_' + case + test + '_' + str(i) + str(j)
itti_name = log_name + '.log' itti_name = log_name + '.log'
trace_name = log_name + '.txt' trace_name = log_name + '.txt'
conf = '-A AWGN -s 15 -x 1 -Q3 -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name conf = '-A AWGN -l7 -s 15 -x 1 -Q3 -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name
tee = ' 2>&1 | tee -a ' + trace_name tee = ' 2>&1 | tee -a ' + trace_name
command = './oaisim.rel10.itti ' + conf command = './oaisim.rel10.itti ' + conf
oai.send('echo ' + command + ' > ' + trace_name + ';') oai.send('echo ' + command + ' > ' + trace_name + ';')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment