remove dead code in common_lib.h

This commit is contained in:
Laurent THOMAS
2026-01-27 13:23:18 +01:00
committed by Robert Schmidt
parent 5b0d34c3ad
commit dd8a25524a
16 changed files with 9 additions and 175 deletions
-36
View File
@@ -866,7 +866,6 @@ void get_samplerate_and_bw(int mu,
int n_rb, int n_rb,
int8_t threequarter_fs, int8_t threequarter_fs,
double *sample_rate, double *sample_rate,
unsigned int *samples_per_frame,
double *tx_bw, double *tx_bw,
double *rx_bw) { double *rx_bw) {
@@ -876,12 +875,10 @@ void get_samplerate_and_bw(int mu,
if (threequarter_fs) { if (threequarter_fs) {
warn_higher_threequarter_fs(n_rb, mu); warn_higher_threequarter_fs(n_rb, mu);
*sample_rate=92.16e6; *sample_rate=92.16e6;
*samples_per_frame = 921600;
*tx_bw = 50e6; *tx_bw = 50e6;
*rx_bw = 50e6; *rx_bw = 50e6;
} else { } else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 50e6; *tx_bw = 50e6;
*rx_bw = 50e6; *rx_bw = 50e6;
} }
@@ -890,10 +887,8 @@ void get_samplerate_and_bw(int mu,
case 188: // 35Mhz case 188: // 35Mhz
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate = 46.08e6; *sample_rate = 46.08e6;
*samples_per_frame = 460800;
} else { } else {
*sample_rate = 61.44e6; *sample_rate = 61.44e6;
*samples_per_frame = 614400;
} }
*tx_bw = (n_rb == 242) ? 45e6 : 35e6; *tx_bw = (n_rb == 242) ? 45e6 : 35e6;
*rx_bw = (n_rb == 242) ? 45e6 : 35e6; *rx_bw = (n_rb == 242) ? 45e6 : 35e6;
@@ -901,13 +896,11 @@ void get_samplerate_and_bw(int mu,
case 216: case 216:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=46.08e6; *sample_rate=46.08e6;
*samples_per_frame = 460800;
*tx_bw = 40e6; *tx_bw = 40e6;
*rx_bw = 40e6; *rx_bw = 40e6;
} }
else { else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 40e6; *tx_bw = 40e6;
*rx_bw = 40e6; *rx_bw = 40e6;
} }
@@ -919,7 +912,6 @@ void get_samplerate_and_bw(int mu,
} }
else { else {
*sample_rate=30.72e6; *sample_rate=30.72e6;
*samples_per_frame = 307200;
*tx_bw = 20e6; *tx_bw = 20e6;
*rx_bw = 20e6; *rx_bw = 20e6;
} }
@@ -927,13 +919,11 @@ void get_samplerate_and_bw(int mu,
case 106: case 106:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=23.04e6; *sample_rate=23.04e6;
*samples_per_frame = 230400;
*tx_bw = 20e6; *tx_bw = 20e6;
*rx_bw = 20e6; *rx_bw = 20e6;
} }
else { else {
*sample_rate=30.72e6; *sample_rate=30.72e6;
*samples_per_frame = 307200;
*tx_bw = 20e6; *tx_bw = 20e6;
*rx_bw = 20e6; *rx_bw = 20e6;
} }
@@ -941,13 +931,11 @@ void get_samplerate_and_bw(int mu,
case 52: case 52:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=11.52e6; *sample_rate=11.52e6;
*samples_per_frame = 115200;
*tx_bw = 10e6; *tx_bw = 10e6;
*rx_bw = 10e6; *rx_bw = 10e6;
} }
else { else {
*sample_rate=15.36e6; *sample_rate=15.36e6;
*samples_per_frame = 153600;
*tx_bw = 10e6; *tx_bw = 10e6;
*rx_bw = 10e6; *rx_bw = 10e6;
} }
@@ -955,13 +943,11 @@ void get_samplerate_and_bw(int mu,
case 25: case 25:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=5.76e6; *sample_rate=5.76e6;
*samples_per_frame = 57600;
*tx_bw = 5e6; *tx_bw = 5e6;
*rx_bw = 5e6; *rx_bw = 5e6;
} }
else { else {
*sample_rate=7.68e6; *sample_rate=7.68e6;
*samples_per_frame = 76800;
*tx_bw = 5e6; *tx_bw = 5e6;
*rx_bw = 5e6; *rx_bw = 5e6;
} }
@@ -976,12 +962,10 @@ void get_samplerate_and_bw(int mu,
if (threequarter_fs) { if (threequarter_fs) {
warn_higher_threequarter_fs(n_rb, mu); warn_higher_threequarter_fs(n_rb, mu);
*sample_rate=184.32e6; *sample_rate=184.32e6;
*samples_per_frame = 1843200;
*tx_bw = 100e6; *tx_bw = 100e6;
*rx_bw = 100e6; *rx_bw = 100e6;
} else { } else {
*sample_rate=122.88e6; *sample_rate=122.88e6;
*samples_per_frame = 1228800;
*tx_bw = 100e6; *tx_bw = 100e6;
*rx_bw = 100e6; *rx_bw = 100e6;
} }
@@ -989,12 +973,10 @@ void get_samplerate_and_bw(int mu,
case 217: case 217:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=92.16e6; *sample_rate=92.16e6;
*samples_per_frame = 921600;
*tx_bw = 80e6; *tx_bw = 80e6;
*rx_bw = 80e6; *rx_bw = 80e6;
} else { } else {
*sample_rate=122.88e6; *sample_rate=122.88e6;
*samples_per_frame = 1228800;
*tx_bw = 80e6; *tx_bw = 80e6;
*rx_bw = 80e6; *rx_bw = 80e6;
} }
@@ -1002,10 +984,8 @@ void get_samplerate_and_bw(int mu,
case 189: case 189:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate = 92.16e6; *sample_rate = 92.16e6;
*samples_per_frame = 921600;
} else { } else {
*sample_rate = 122.88e6; *sample_rate = 122.88e6;
*samples_per_frame = 1228800;
} }
*tx_bw = 70e6; *tx_bw = 70e6;
*rx_bw = 70e6; *rx_bw = 70e6;
@@ -1016,7 +996,6 @@ void get_samplerate_and_bw(int mu,
} }
else { else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 60e6; *tx_bw = 60e6;
*rx_bw = 60e6; *rx_bw = 60e6;
} }
@@ -1029,7 +1008,6 @@ void get_samplerate_and_bw(int mu,
} }
else { else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 50e6; *tx_bw = 50e6;
*rx_bw = 50e6; *rx_bw = 50e6;
} }
@@ -1040,10 +1018,8 @@ void get_samplerate_and_bw(int mu,
case 92: // 35Mhz case 92: // 35Mhz
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate = 46.08e6; *sample_rate = 46.08e6;
*samples_per_frame = 460800;
} else { } else {
*sample_rate = 61.44e6; *sample_rate = 61.44e6;
*samples_per_frame = 614400;
} }
*tx_bw = (n_rb == 119) ? 45e6 : 35e6; *tx_bw = (n_rb == 119) ? 45e6 : 35e6;
*rx_bw = (n_rb == 119) ? 45e6 : 35e6; *rx_bw = (n_rb == 119) ? 45e6 : 35e6;
@@ -1052,13 +1028,11 @@ void get_samplerate_and_bw(int mu,
case 106: case 106:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=46.08e6; *sample_rate=46.08e6;
*samples_per_frame = 460800;
*tx_bw = 40e6; *tx_bw = 40e6;
*rx_bw = 40e6; *rx_bw = 40e6;
} }
else { else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 40e6; *tx_bw = 40e6;
*rx_bw = 40e6; *rx_bw = 40e6;
} }
@@ -1066,13 +1040,11 @@ void get_samplerate_and_bw(int mu,
case 51: case 51:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=23.04e6; *sample_rate=23.04e6;
*samples_per_frame = 230400;
*tx_bw = 20e6; *tx_bw = 20e6;
*rx_bw = 20e6; *rx_bw = 20e6;
} }
else { else {
*sample_rate=30.72e6; *sample_rate=30.72e6;
*samples_per_frame = 307200;
*tx_bw = 20e6; *tx_bw = 20e6;
*rx_bw = 20e6; *rx_bw = 20e6;
} }
@@ -1080,13 +1052,11 @@ void get_samplerate_and_bw(int mu,
case 24: case 24:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=11.52e6; *sample_rate=11.52e6;
*samples_per_frame = 115200;
*tx_bw = 10e6; *tx_bw = 10e6;
*rx_bw = 10e6; *rx_bw = 10e6;
} }
else { else {
*sample_rate=15.36e6; *sample_rate=15.36e6;
*samples_per_frame = 153600;
*tx_bw = 10e6; *tx_bw = 10e6;
*rx_bw = 10e6; *rx_bw = 10e6;
} }
@@ -1100,12 +1070,10 @@ void get_samplerate_and_bw(int mu,
case 128: case 128:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=184.32e6; *sample_rate=184.32e6;
*samples_per_frame = 1843200;
*tx_bw = 200e6; *tx_bw = 200e6;
*rx_bw = 200e6; *rx_bw = 200e6;
} else { } else {
*sample_rate = 245.76e6; *sample_rate = 245.76e6;
*samples_per_frame = 2457600;
*tx_bw = 200e6; *tx_bw = 200e6;
*rx_bw = 200e6; *rx_bw = 200e6;
} }
@@ -1115,12 +1083,10 @@ void get_samplerate_and_bw(int mu,
case 64: case 64:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=92.16e6; *sample_rate=92.16e6;
*samples_per_frame = 921600;
*tx_bw = 100e6; *tx_bw = 100e6;
*rx_bw = 100e6; *rx_bw = 100e6;
} else { } else {
*sample_rate = 122.88e6; *sample_rate = 122.88e6;
*samples_per_frame = 1228800;
*tx_bw = 100e6; *tx_bw = 100e6;
*rx_bw = 100e6; *rx_bw = 100e6;
} }
@@ -1129,12 +1095,10 @@ void get_samplerate_and_bw(int mu,
case 32: case 32:
if (threequarter_fs) { if (threequarter_fs) {
*sample_rate=92.16e6; *sample_rate=92.16e6;
*samples_per_frame = 921600;
*tx_bw = 50e6; *tx_bw = 50e6;
*rx_bw = 50e6; *rx_bw = 50e6;
} else { } else {
*sample_rate=61.44e6; *sample_rate=61.44e6;
*samples_per_frame = 614400;
*tx_bw = 50e6; *tx_bw = 50e6;
*rx_bw = 50e6; *rx_bw = 50e6;
} }
-1
View File
@@ -317,7 +317,6 @@ void get_samplerate_and_bw(int mu,
int n_rb, int n_rb,
int8_t threequarter_fs, int8_t threequarter_fs,
double *sample_rate, double *sample_rate,
unsigned int *samples_per_frame,
double *tx_bw, double *tx_bw,
double *rx_bw); double *rx_bw);
uint32_t get_ssb_offset_to_pointA(uint32_t absoluteFrequencySSB, uint32_t get_ssb_offset_to_pointA(uint32_t absoluteFrequencySSB,
-9
View File
@@ -1251,45 +1251,37 @@ void fill_rf_config(RU_t *ru,
if(ru->numerology == 0) { if(ru->numerology == 0) {
if (fp->threequarter_fs) { if (fp->threequarter_fs) {
cfg->sample_rate=23.04e6; cfg->sample_rate=23.04e6;
cfg->samples_per_frame = 230400;
cfg->tx_bw = 20e6; cfg->tx_bw = 20e6;
cfg->rx_bw = 20e6; cfg->rx_bw = 20e6;
} else { } else {
cfg->sample_rate=30.72e6; cfg->sample_rate=30.72e6;
cfg->samples_per_frame = 307200;
cfg->tx_bw = 20e6; cfg->tx_bw = 20e6;
cfg->rx_bw = 20e6; cfg->rx_bw = 20e6;
} }
} else if(ru->numerology == 1) { } else if(ru->numerology == 1) {
cfg->sample_rate=61.44e6; cfg->sample_rate=61.44e6;
cfg->samples_per_frame = 307200;
cfg->tx_bw = 20e6; cfg->tx_bw = 20e6;
cfg->rx_bw = 20e6; cfg->rx_bw = 20e6;
} else if(ru->numerology == 2) { } else if(ru->numerology == 2) {
cfg->sample_rate=122.88e6; cfg->sample_rate=122.88e6;
cfg->samples_per_frame = 307200;
cfg->tx_bw = 40e6; cfg->tx_bw = 40e6;
cfg->rx_bw = 40e6; cfg->rx_bw = 40e6;
} else { } else {
LOG_I(PHY,"Wrong input for numerology %d\n setting to 20MHz normal CP configuration",numerology); LOG_I(PHY,"Wrong input for numerology %d\n setting to 20MHz normal CP configuration",numerology);
cfg->sample_rate=30.72e6; cfg->sample_rate=30.72e6;
cfg->samples_per_frame = 307200;
cfg->tx_bw = 10e6; cfg->tx_bw = 10e6;
cfg->rx_bw = 10e6; cfg->rx_bw = 10e6;
} }
} else if(fp->N_RB_DL == 50) { } else if(fp->N_RB_DL == 50) {
cfg->sample_rate=15.36e6; cfg->sample_rate=15.36e6;
cfg->samples_per_frame = 153600;
cfg->tx_bw = 10e6; cfg->tx_bw = 10e6;
cfg->rx_bw = 10e6; cfg->rx_bw = 10e6;
} else if (fp->N_RB_DL == 25) { } else if (fp->N_RB_DL == 25) {
cfg->sample_rate=7.68e6; cfg->sample_rate=7.68e6;
cfg->samples_per_frame = 76800;
cfg->tx_bw = 5e6; cfg->tx_bw = 5e6;
cfg->rx_bw = 5e6; cfg->rx_bw = 5e6;
} else if (fp->N_RB_DL == 6) { } else if (fp->N_RB_DL == 6) {
cfg->sample_rate=1.92e6; cfg->sample_rate=1.92e6;
cfg->samples_per_frame = 19200;
cfg->tx_bw = 1.5e6; cfg->tx_bw = 1.5e6;
cfg->rx_bw = 1.5e6; cfg->rx_bw = 1.5e6;
} else AssertFatal(1==0,"Unknown N_RB_DL %d\n",fp->N_RB_DL); } else AssertFatal(1==0,"Unknown N_RB_DL %d\n",fp->N_RB_DL);
@@ -1299,7 +1291,6 @@ void fill_rf_config(RU_t *ru,
else //FDD else //FDD
cfg->duplex_mode = duplex_mode_FDD; cfg->duplex_mode = duplex_mode_FDD;
cfg->Mod_id = 0;
cfg->num_rb_dl=fp->N_RB_DL; cfg->num_rb_dl=fp->N_RB_DL;
cfg->tx_num_channels=ru->nb_tx; cfg->tx_num_channels=ru->nb_tx;
cfg->rx_num_channels=ru->nb_rx; cfg->rx_num_channels=ru->nb_rx;
-6
View File
@@ -343,28 +343,23 @@ static void init_openair0(LTE_DL_FRAME_PARMS *frame_parms, int rxgain)
if(frame_parms->N_RB_DL == 100) { if(frame_parms->N_RB_DL == 100) {
if (frame_parms->threequarter_fs) { if (frame_parms->threequarter_fs) {
openair0_cfg[card].sample_rate=23.04e6; openair0_cfg[card].sample_rate=23.04e6;
openair0_cfg[card].samples_per_frame = 230400;
openair0_cfg[card].tx_bw = 10e6; openair0_cfg[card].tx_bw = 10e6;
openair0_cfg[card].rx_bw = 10e6; openair0_cfg[card].rx_bw = 10e6;
} else { } else {
openair0_cfg[card].sample_rate=30.72e6; openair0_cfg[card].sample_rate=30.72e6;
openair0_cfg[card].samples_per_frame = 307200;
openair0_cfg[card].tx_bw = 10e6; openair0_cfg[card].tx_bw = 10e6;
openair0_cfg[card].rx_bw = 10e6; openair0_cfg[card].rx_bw = 10e6;
} }
} else if(frame_parms->N_RB_DL == 50) { } else if(frame_parms->N_RB_DL == 50) {
openair0_cfg[card].sample_rate=15.36e6; openair0_cfg[card].sample_rate=15.36e6;
openair0_cfg[card].samples_per_frame = 153600;
openair0_cfg[card].tx_bw = 5e6; openair0_cfg[card].tx_bw = 5e6;
openair0_cfg[card].rx_bw = 5e6; openair0_cfg[card].rx_bw = 5e6;
} else if (frame_parms->N_RB_DL == 25) { } else if (frame_parms->N_RB_DL == 25) {
openair0_cfg[card].sample_rate=7.68e6; openair0_cfg[card].sample_rate=7.68e6;
openair0_cfg[card].samples_per_frame = 76800;
openair0_cfg[card].tx_bw = 2.5e6; openair0_cfg[card].tx_bw = 2.5e6;
openair0_cfg[card].rx_bw = 2.5e6; openair0_cfg[card].rx_bw = 2.5e6;
} else if (frame_parms->N_RB_DL == 6) { } else if (frame_parms->N_RB_DL == 6) {
openair0_cfg[card].sample_rate=1.92e6; openair0_cfg[card].sample_rate=1.92e6;
openair0_cfg[card].samples_per_frame = 19200;
openair0_cfg[card].tx_bw = 1.5e6; openair0_cfg[card].tx_bw = 1.5e6;
openair0_cfg[card].rx_bw = 1.5e6; openair0_cfg[card].rx_bw = 1.5e6;
} }
@@ -374,7 +369,6 @@ static void init_openair0(LTE_DL_FRAME_PARMS *frame_parms, int rxgain)
else //FDD else //FDD
openair0_cfg[card].duplex_mode = duplex_mode_FDD; openair0_cfg[card].duplex_mode = duplex_mode_FDD;
openair0_cfg[card].Mod_id = 0;
openair0_cfg[card].num_rb_dl=frame_parms->N_RB_DL; openair0_cfg[card].num_rb_dl=frame_parms->N_RB_DL;
openair0_cfg[card].clock_source = get_softmodem_params()->clock_source; openair0_cfg[card].clock_source = get_softmodem_params()->clock_source;
openair0_cfg[card].time_source = get_softmodem_params()->timing_source; openair0_cfg[card].time_source = get_softmodem_params()->timing_source;
-2
View File
@@ -819,7 +819,6 @@ static void fill_rf_config(RU_t *ru, char *rf_config_file)
N_RB, N_RB,
fp->threequarter_fs, fp->threequarter_fs,
&cfg->sample_rate, &cfg->sample_rate,
&cfg->samples_per_frame,
&cfg->tx_bw, &cfg->tx_bw,
&cfg->rx_bw); &cfg->rx_bw);
@@ -833,7 +832,6 @@ static void fill_rf_config(RU_t *ru, char *rf_config_file)
AssertFatal(ru->nb_tx > 0 && ru->nb_tx <= 8, "openair0 does not support more than 8 antennas\n"); AssertFatal(ru->nb_tx > 0 && ru->nb_tx <= 8, "openair0 does not support more than 8 antennas\n");
AssertFatal(ru->nb_rx > 0 && ru->nb_rx <= 8, "openair0 does not support more than 8 antennas\n"); AssertFatal(ru->nb_rx > 0 && ru->nb_rx <= 8, "openair0 does not support more than 8 antennas\n");
cfg->Mod_id = 0;
cfg->num_rb_dl = N_RB; cfg->num_rb_dl = N_RB;
cfg->tx_num_channels = ru->nb_tx * ru->num_beams_period; cfg->tx_num_channels = ru->nb_tx * ru->num_beams_period;
cfg->rx_num_channels = ru->nb_rx * ru->num_beams_period; cfg->rx_num_channels = ru->nb_rx * ru->num_beams_period;
-2
View File
@@ -238,14 +238,12 @@ void init_openair0(PHY_VARS_NR_UE *ue)
uint64_t dl_carrier, ul_carrier; uint64_t dl_carrier, ul_carrier;
cfg->configFilename = NULL; cfg->configFilename = NULL;
cfg->sample_rate = frame_parms->samples_per_subframe * 1e3; cfg->sample_rate = frame_parms->samples_per_subframe * 1e3;
cfg->samples_per_frame = frame_parms->samples_per_frame;
if (frame_parms->frame_type==TDD) if (frame_parms->frame_type==TDD)
cfg->duplex_mode = duplex_mode_TDD; cfg->duplex_mode = duplex_mode_TDD;
else else
cfg->duplex_mode = duplex_mode_FDD; cfg->duplex_mode = duplex_mode_FDD;
cfg->Mod_id = 0;
cfg->num_rb_dl = frame_parms->N_RB_DL; cfg->num_rb_dl = frame_parms->N_RB_DL;
cfg->clock_source = get_softmodem_params()->clock_source; cfg->clock_source = get_softmodem_params()->clock_source;
cfg->time_source = get_softmodem_params()->timing_source; cfg->time_source = get_softmodem_params()->timing_source;
-44
View File
@@ -45,7 +45,6 @@ int main(int argc, char **argv) {
CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP); CONFIG_CLEARRTFLAG(CONFIG_NOEXITONHELP);
lock_memory_to_ram(); lock_memory_to_ram();
int N_RB=50;
int sampling_rate=30.72e6; int sampling_rate=30.72e6;
int DFT=2048; int DFT=2048;
int TxAdvanceInDFTSize=12; int TxAdvanceInDFTSize=12;
@@ -57,20 +56,8 @@ int main(int argc, char **argv) {
char * usrp_addrs="type=b200"; char * usrp_addrs="type=b200";
openair0_config_t openair0_cfg= { openair0_config_t openair0_cfg= {
//! Module ID for this configuration
.Mod_id=0,
//! duplexing mode
.duplex_mode=0,
//! number of downlink resource blocks
.num_rb_dl=N_RB,
//! number of samples per frame
.samples_per_frame=0,
//! the sample rate for both transmit and receive. //! the sample rate for both transmit and receive.
.sample_rate=sampling_rate, .sample_rate=sampling_rate,
//device is doing mmapped DMA transfers
.mmapped_dma=0,
//! offset in samples between TX and RX paths
.tx_sample_advance=0,
//! samples per packet on the fronthaul interface //! samples per packet on the fronthaul interface
.samples_per_packet=1024, .samples_per_packet=1024,
//! number of RX channels (=RX antennas) //! number of RX channels (=RX antennas)
@@ -83,17 +70,9 @@ int main(int argc, char **argv) {
//! \brief Center frequency in Hz for TX. //! \brief Center frequency in Hz for TX.
//! index: [0..rx_num_channels[ !!! see lte-ue.c:427 FIXME iterates over rx_num_channels //! index: [0..rx_num_channels[ !!! see lte-ue.c:427 FIXME iterates over rx_num_channels
.tx_freq={freq,freq,freq,freq}, .tx_freq={freq,freq,freq,freq},
//! \brief memory
//! \brief Pointer to Calibration table for RX gains
.rx_gain_calib_table=NULL,
//! mode for rxgain (ExpressMIMO2)
.rxg_mode={0},
//! \brief Gain for RX in dB. //! \brief Gain for RX in dB.
//! index: [0..rx_num_channels] //! index: [0..rx_num_channels]
.rx_gain={rxGain,rxGain,rxGain,rxGain}, .rx_gain={rxGain,rxGain,rxGain,rxGain},
//! \brief Gain offset (for calibration) in dB
//! index: [0..rx_num_channels]
.rx_gain_offset={0},
//! gain for TX in dB //! gain for TX in dB
.tx_gain={txGain,txGain,txGain,txGain}, .tx_gain={txGain,txGain,txGain,txGain},
//! RX bandwidth in Hz //! RX bandwidth in Hz
@@ -106,32 +85,9 @@ int main(int argc, char **argv) {
.time_source=internal, //internal gpsdo external .time_source=internal, //internal gpsdo external
//! Manual SDR IP address //! Manual SDR IP address
.sdr_addrs=usrp_addrs, .sdr_addrs=usrp_addrs,
//! Auto calibration flag
.autocal={0},
//! Configuration file for LMS7002M
.configFilename="",
//! remote IP/MAC addr for Ethernet interface
.remote_addr="",
//! remote port number for Ethernet interface
.remote_port=0,
//! local IP/MAC addr for Ethernet interface (eNB/BBU, UE)
.my_addr=0,
//! local port number for Ethernet interface (eNB/BBU, UE)
.my_port=0,
//! record player configuration, definition in record_player.h
.recplay_mode=0,
.recplay_conf=NULL,
//! number of samples per tti
.samples_per_tti=0,
}; };
//----------------------- //-----------------------
openair0_device rfdevice= { openair0_device rfdevice= {
/*!tx write thread*/
//.write_thread={0},
/*!brief Module ID of this device */
.Mod_id=0,
/*!brief Component Carrier ID of this device */
.CC_id=0,
/*!brief Type of this device */ /*!brief Type of this device */
.type=NONE_DEV, .type=NONE_DEV,
/*!brief Transport protocol type that the device supports (in case I/Q samples need to be transported) */ /*!brief Transport protocol type that the device supports (in case I/Q samples need to be transported) */
-1
View File
@@ -551,7 +551,6 @@ typedef struct {
uint8_t CC_id; uint8_t CC_id;
/// \brief Mapping of CC_id antennas to cards /// \brief Mapping of CC_id antennas to cards
openair0_rf_map rf_map; openair0_rf_map rf_map;
//uint8_t local_flag;
/// \brief Indicator of current run mode of UE (normal_txrx, rx_calib_ue, no_L2_connect, debug_prach) /// \brief Indicator of current run mode of UE (normal_txrx, rx_calib_ue, no_L2_connect, debug_prach)
runmode_t mode; runmode_t mode;
/// \brief Indicator that UE is configured for FeMBMS functionality (This flag should be avoided) ... just kept for PBCH initical scan (TODO) /// \brief Indicator that UE is configured for FeMBMS functionality (This flag should be avoided) ... just kept for PBCH initical scan (TODO)
-3
View File
@@ -852,13 +852,10 @@ int main(int argc, char **argv)
if (g_rbSize < 0) g_rbSize = N_RB_DL - g_rbStart; if (g_rbSize < 0) g_rbSize = N_RB_DL - g_rbStart;
double fs,txbw,rxbw; double fs,txbw,rxbw;
uint32_t samples;
get_samplerate_and_bw(mu, get_samplerate_and_bw(mu,
N_RB_DL, N_RB_DL,
frame_parms->threequarter_fs, frame_parms->threequarter_fs,
&fs, &fs,
&samples,
&txbw, &txbw,
&rxbw); &rxbw);
+1 -3
View File
@@ -437,9 +437,7 @@ int main(int argc, char **argv)
double fs=0, eps; double fs=0, eps;
double scs = 30000; double scs = 30000;
double txbw, rxbw; double txbw, rxbw;
uint32_t samples; get_samplerate_and_bw(mu, N_RB_DL, frame_parms->threequarter_fs, &fs, &txbw, &rxbw);
get_samplerate_and_bw(mu, N_RB_DL, frame_parms->threequarter_fs, &fs, &samples, &txbw, &rxbw);
// cfo with respect to sub-carrier spacing // cfo with respect to sub-carrier spacing
eps = cfo/scs; eps = cfo/scs;
-3
View File
@@ -445,13 +445,10 @@ int main(int argc, char **argv)
gNB->common_vars.rxdataF[0][i] = malloc16_clear(gNB->frame_parms.samples_per_frame_wCP * sizeof(c16_t)); gNB->common_vars.rxdataF[0][i] = malloc16_clear(gNB->frame_parms.samples_per_frame_wCP * sizeof(c16_t));
double fs,txbw,rxbw; double fs,txbw,rxbw;
uint32_t samples;
get_samplerate_and_bw(mu, get_samplerate_and_bw(mu,
N_RB_DL, N_RB_DL,
frame_parms->threequarter_fs, frame_parms->threequarter_fs,
&fs, &fs,
&samples,
&txbw, &txbw,
&rxbw); &rxbw);
+1 -2
View File
@@ -325,8 +325,7 @@ int main(int argc, char *argv[])
snr1 = snr0 + 10; snr1 = snr0 + 10;
double sampling_rate, tx_bandwidth, rx_bandwidth; double sampling_rate, tx_bandwidth, rx_bandwidth;
uint32_t samples; get_samplerate_and_bw(mu, N_RB_DL, threequarter_fs, &sampling_rate, &tx_bandwidth, &rx_bandwidth);
get_samplerate_and_bw(mu, N_RB_DL, threequarter_fs, &sampling_rate, &samples, &tx_bandwidth, &rx_bandwidth);
// Initialize gNB // Initialize gNB
gNB = calloc_or_fail(1, sizeof(PHY_VARS_gNB)); gNB = calloc_or_fail(1, sizeof(PHY_VARS_gNB));
-2
View File
@@ -711,12 +711,10 @@ int main(int argc, char *argv[])
snr1 = snr0 + 10; snr1 = snr0 + 10;
double sampling_frequency, tx_bandwidth, rx_bandwidth; double sampling_frequency, tx_bandwidth, rx_bandwidth;
uint32_t samples;
get_samplerate_and_bw(mu, get_samplerate_and_bw(mu,
N_RB_DL, N_RB_DL,
threequarter_fs, threequarter_fs,
&sampling_frequency, &sampling_frequency,
&samples,
&tx_bandwidth, &tx_bandwidth,
&rx_bandwidth); &rx_bandwidth);
+3 -52
View File
@@ -117,7 +117,6 @@ typedef enum {
MAX_TRANSP_TYPE MAX_TRANSP_TYPE
} transport_type_t; } transport_type_t;
/*!\brief openair0 device host type */ /*!\brief openair0 device host type */
typedef enum { typedef enum {
MIN_HOST_TYPE = 0, MIN_HOST_TYPE = 0,
@@ -211,16 +210,10 @@ typedef struct split7_config {
/*! \brief RF frontend parameters set by application */ /*! \brief RF frontend parameters set by application */
typedef struct openair0_config { typedef struct openair0_config {
//! Module ID for this configuration //! duplexing mode
int Mod_id;
//! duplexing mode
duplex_mode_t duplex_mode; duplex_mode_t duplex_mode;
//! number of downlink resource blocks //! number of downlink resource blocks
int num_rb_dl; int num_rb_dl; double sample_rate;
//! number of samples per frame
unsigned int samples_per_frame;
//! the sample rate for both transmit and receive.
double sample_rate;
//! flag to indicate that the device is doing mmapped DMA transfers //! flag to indicate that the device is doing mmapped DMA transfers
int mmapped_dma; int mmapped_dma;
//! offset in samples between TX and RX paths //! offset in samples between TX and RX paths
@@ -254,8 +247,6 @@ typedef struct openair0_config {
//! \brief memory //! \brief memory
//! \brief Pointer to Calibration table for RX gains //! \brief Pointer to Calibration table for RX gains
rx_gain_calib_table_t *rx_gain_calib_table; rx_gain_calib_table_t *rx_gain_calib_table;
//! mode for rxgain (ExpressMIMO2)
rx_gain_t rxg_mode[8];
//! \brief Gain for RX in dB. //! \brief Gain for RX in dB.
//! index: [0..rx_num_channels] //! index: [0..rx_num_channels]
double rx_gain[8]; double rx_gain[8];
@@ -278,23 +269,9 @@ typedef struct openair0_config {
int autocal[8]; int autocal[8];
//! Configuration file for LMS7002M //! Configuration file for LMS7002M
char *configFilename; char *configFilename;
//! remote IP/MAC addr for Ethernet interface
char *remote_addr;
//! remote port number for Ethernet interface
unsigned int remote_port;
//! local IP/MAC addr for Ethernet interface (eNB/BBU, UE)
char *my_addr;
//! local port number for Ethernet interface (eNB/BBU, UE)
unsigned int my_port;
//! record player configuration, definition in record_player.h //! record player configuration, definition in record_player.h
uint32_t recplay_mode; uint32_t recplay_mode;
recplay_conf_t *recplay_conf; recplay_conf_t *recplay_conf;
//! number of samples per tti
unsigned int samples_per_tti;
//! the sample rate for receive.
double rx_sample_rate;
//! the sample rate for transmit.
double tx_sample_rate;
//! Flag to indicate this configuration is for NR //! Flag to indicate this configuration is for NR
int nr_flag; int nr_flag;
//! NR band number //! NR band number
@@ -406,17 +383,11 @@ typedef struct {
} queue[WRITE_QUEUE_SZ]; } queue[WRITE_QUEUE_SZ];
} re_order_t; } re_order_t;
/*!\brief structure holds the parameters to configure USRP devices */ /*!\brief structure holds the parameters to configure RF devices */
struct openair0_device_t { struct openair0_device_t {
/*!tx write thread*/ /*!tx write thread*/
openair0_thread_t write_thread; openair0_thread_t write_thread;
/*!brief Module ID of this device */
int Mod_id;
/*!brief Component Carrier ID of this device */
int CC_id;
/*!brief Type of this device */ /*!brief Type of this device */
dev_type_t type; dev_type_t type;
@@ -435,17 +406,12 @@ struct openair0_device_t {
recplay_state_t *recplay_state; recplay_state_t *recplay_state;
/* !brief Indicates if device already initialized */ /* !brief Indicates if device already initialized */
int is_init; int is_init;
/*!brief Can be used by driver to hold internal structure*/ /*!brief Can be used by driver to hold internal structure*/
void *priv; void *priv;
/*!brief pointer to FH state, used in ECPRI split 8*/ /*!brief pointer to FH state, used in ECPRI split 8*/
fhstate_t fhstate; fhstate_t fhstate;
/*!brief message response for notification fifo*/
notifiedFIFO_t *respudpTX;
/*!brief UDP TX thread context*/ /*!brief UDP TX thread context*/
udp_ctx_t **utx; udp_ctx_t **utx;
@@ -678,14 +644,6 @@ struct openair0_device_t {
re_order_t reOrder; re_order_t reOrder;
}; };
/* type of device init function, implemented in shared lib */
typedef int(*oai_device_initfunc_t)(openair0_device *device, openair0_config_t *openair0_cfg);
/* type of transport init function, implemented in shared lib */
typedef int(*oai_transport_initfunc_t)(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t *eth_params);
#define OPTION_LZ4 0x00000001 // LZ4 compression (option_value is set to compressed size)
typedef struct { typedef struct {
uint32_t size; // Number of samples per antenna to follow this header uint32_t size; // Number of samples per antenna to follow this header
uint32_t nbAnt; // Total number of antennas following this header uint32_t nbAnt; // Total number of antennas following this header
@@ -706,7 +664,6 @@ extern "C"
#define DEVICE_SECTION "device" #define DEVICE_SECTION "device"
#define CONFIG_HLP_DEVICE "Identifies the oai device (the interface to RF) to use, the shared lib \"lib_<name>.so\" will be loaded" #define CONFIG_HLP_DEVICE "Identifies the oai device (the interface to RF) to use, the shared lib \"lib_<name>.so\" will be loaded"
#define CONFIG_DEVICEOPT_NAME "name" #define CONFIG_DEVICEOPT_NAME "name"
/* inclusion for device configuration */ /* inclusion for device configuration */
@@ -727,12 +684,6 @@ int openair0_device_load(openair0_device *device, openair0_config_t *openair0_cf
/*! \brief Initialize transport protocol . It returns 0 if OK */ /*! \brief Initialize transport protocol . It returns 0 if OK */
int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t *eth_params); int openair0_transport_load(openair0_device *device, openair0_config_t *openair0_cfg, eth_params_t *eth_params);
/*! \brief Get current timestamp of USRP
* \param device the hardware to use
*/
openair0_timestamp get_usrp_time(openair0_device *device);
/*! \brief Set RX frequencies /*! \brief Set RX frequencies
* \param device the hardware to use * \param device the hardware to use
* \param openair0_cfg RF frontend parameters set by application * \param openair0_cfg RF frontend parameters set by application
+3 -7
View File
@@ -130,9 +130,6 @@ int trx_eth_start(openair0_device *device)
} }
device->threadPool = (tpool_t*)malloc(sizeof(tpool_t)); device->threadPool = (tpool_t*)malloc(sizeof(tpool_t));
initTpool(pool, device->threadPool, cpumeas(CPUMEAS_GETSTATE)); initTpool(pool, device->threadPool, cpumeas(CPUMEAS_GETSTATE));
// ULSCH decoder result FIFO
device->respudpTX = (notifiedFIFO_elt_t*) malloc(sizeof(notifiedFIFO_elt_t));
initNotifiedFIFO(device->respudpTX);
#endif #endif
} }
/* initialize socket */ /* initialize socket */
@@ -498,7 +495,6 @@ int transport_init(openair0_device *device,
printf("[ETHERNET]: Initializing openair0_device for %s ...\n", ((device->host_type == RAU_HOST) ? "RAU": "RRU")); printf("[ETHERNET]: Initializing openair0_device for %s ...\n", ((device->host_type == RAU_HOST) ? "RAU": "RRU"));
printf("[ETHERNET]: num_fd %d\n",eth->num_fd); printf("[ETHERNET]: num_fd %d\n",eth->num_fd);
device->Mod_id = 0;//num_devices_eth++;
device->transp_type = ETHERNET_TP; device->transp_type = ETHERNET_TP;
device->trx_start_func = trx_eth_start; device->trx_start_func = trx_eth_start;
device->trx_get_stats_func = trx_eth_get_stats; device->trx_get_stats_func = trx_eth_get_stats;
@@ -582,7 +578,7 @@ void dump_dev(openair0_device *device)
{ {
eth_state_t *eth = (eth_state_t*)device->priv; eth_state_t *eth = (eth_state_t*)device->priv;
printf("Ethernet device interface %i configuration:\n" ,device->openair0_cfg->Mod_id); printf("Ethernet device configuration:\n");
printf(" RB number: %i, sample rate: %lf \n" , printf(" RB number: %i, sample rate: %lf \n" ,
device->openair0_cfg->num_rb_dl, device->openair0_cfg->sample_rate); device->openair0_cfg->num_rb_dl, device->openair0_cfg->sample_rate);
printf(" RAU configured for %i tx/%i rx channels)\n", printf(" RAU configured for %i tx/%i rx channels)\n",
@@ -598,7 +594,7 @@ void dump_dev(openair0_device *device)
void inline dump_txcounters(openair0_device *device) void inline dump_txcounters(openair0_device *device)
{ {
eth_state_t *eth = (eth_state_t*)device->priv; eth_state_t *eth = (eth_state_t*)device->priv;
printf(" Ethernet device interface %i, tx counters:\n" ,device->openair0_cfg->Mod_id); printf(" Ethernet device interface tx counters:\n");
printf(" Sent packets: %llu send errors: %i\n", (long long unsigned int)eth->tx_count, eth->num_tx_errors); printf(" Sent packets: %llu send errors: %i\n", (long long unsigned int)eth->tx_count, eth->num_tx_errors);
} }
@@ -606,7 +602,7 @@ void inline dump_txcounters(openair0_device *device)
void inline dump_rxcounters(openair0_device *device) void inline dump_rxcounters(openair0_device *device)
{ {
eth_state_t *eth = (eth_state_t*)device->priv; eth_state_t *eth = (eth_state_t*)device->priv;
printf(" Ethernet device interface %i rx counters:\n" ,device->openair0_cfg->Mod_id); printf(" Ethernet device interface rx counters:\n");
printf(" Received packets: %llu missed packets errors: %i\n", (long long unsigned int)eth->rx_count, eth->num_underflows); printf(" Received packets: %llu missed packets errors: %i\n", (long long unsigned int)eth->rx_count, eth->num_underflows);
} }
-1
View File
@@ -397,7 +397,6 @@ __attribute__((__visibility__("default"))) int transport_init(openair0_device *d
eth->e.if_name = eth_params->local_if_name; eth->e.if_name = eth_params->local_if_name;
eth->last_msg = (rru_config_msg_type_t)-1; eth->last_msg = (rru_config_msg_type_t)-1;
device->Mod_id = 0;
device->transp_type = ETHERNET_TP; device->transp_type = ETHERNET_TP;
device->trx_start_func = trx_oran_start; device->trx_start_func = trx_oran_start;
device->trx_get_stats_func = trx_oran_get_stats; device->trx_get_stats_func = trx_oran_get_stats;