parametrized gains
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
|
||||
/** iris_lib.cpp
|
||||
*
|
||||
* \author: Rahman Doost-Mohammady : doost@rice.edu
|
||||
* \authors: Rahman Doost-Mohammady : doost@rice.edu
|
||||
* Clay Shepard : cws@rice.edu
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
@@ -30,6 +31,7 @@
|
||||
# include <immintrin.h>
|
||||
#endif
|
||||
|
||||
#define MOVE_DC
|
||||
#define SAMPLE_RATE_DOWN 1
|
||||
|
||||
/*! \brief Iris Configuration */
|
||||
@@ -595,7 +597,8 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
|
||||
}
|
||||
|
||||
for (r = 0; r < s->device_num; r++) {
|
||||
switch ((int) openair0_cfg[0].sample_rate) {
|
||||
//this is unnecessary -- it will set the correct master clock based on sample rate
|
||||
/*switch ((int) openair0_cfg[0].sample_rate) {
|
||||
case 1920000:
|
||||
s->iris[r]->setMasterClockRate(256 * openair0_cfg[0].sample_rate);
|
||||
break;
|
||||
@@ -615,54 +618,34 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
|
||||
printf("Error: unknown sampling rate %f\n", openair0_cfg[0].sample_rate);
|
||||
exit(-1);
|
||||
break;
|
||||
}
|
||||
// display Iris settings
|
||||
printf("Actual master clock: %fMHz...\n", (s->iris[r]->getMasterClockRate() / 1e6));
|
||||
|
||||
/* Setting TX/RX BW after streamers are created due to iris calibration issue */
|
||||
for (i = 0; i < s->tx_num_channels; i++) {
|
||||
if (i < s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
|
||||
if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) != 0)
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_TX, i, 30e6);
|
||||
else
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_TX, i, openair0_cfg[0].tx_bw);
|
||||
|
||||
printf("Setting tx bandwidth on channel %lu/%lu: BW %f (readback %f)\n", i,
|
||||
s->iris[r]->getNumChannels(SOAPY_SDR_TX), openair0_cfg[0].tx_bw / 1e6,
|
||||
s->iris[r]->getBandwidth(SOAPY_SDR_TX, i) / 1e6);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < s->rx_num_channels; i++) {
|
||||
if (i < s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
|
||||
if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) != 0)
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_TX, i, 30e6);
|
||||
else
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_RX, i, openair0_cfg[0].rx_bw);
|
||||
printf("Setting rx bandwidth on channel %lu/%lu : BW %f (readback %f)\n", i,
|
||||
s->iris[r]->getNumChannels(SOAPY_SDR_RX), openair0_cfg[0].rx_bw / 1e6,
|
||||
s->iris[r]->getBandwidth(SOAPY_SDR_RX, i) / 1e6);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
|
||||
if (i < s->rx_num_channels) {
|
||||
s->iris[r]->setSampleRate(SOAPY_SDR_RX, i, openair0_cfg[0].sample_rate / SAMPLE_RATE_DOWN);
|
||||
#ifdef MOVE_DC
|
||||
printf("Moving DC out of main carrier for rx...\n");
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_RX, i, "RF", openair0_cfg[0].rx_freq[i]-.75*openair0_cfg[0].sample_rate);
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_RX, i, "BB", .75*openair0_cfg[0].sample_rate);
|
||||
#else
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_RX, i, "RF", openair0_cfg[0].rx_freq[i]);
|
||||
#endif
|
||||
|
||||
set_rx_gain_offset(&openair0_cfg[0], i, bw_gain_adjust);
|
||||
//s->iris[r]->setGain(SOAPY_SDR_RX, i, openair0_cfg[0].rx_gain[i] - openair0_cfg[0].rx_gain_offset[i]);
|
||||
printf("rx gain offset: %f, rx_gain: %f, tx_tgain: %f\n", openair0_cfg[0].rx_gain_offset[i], openair0_cfg[0].rx_gain[i], openair0_cfg[0].tx_gain[i]);
|
||||
if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) != 0) {
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "LNA", openair0_cfg[0].rx_gain[i] - openair0_cfg[0].rx_gain_offset[i]);
|
||||
//s->iris[r]->setGain(SOAPY_SDR_RX, i, "LNA", 0);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "LNA1", 30);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "LNA2", 17);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "TIA", 0);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "PGA", 0);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "TIA", 7);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "PGA", 18);
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "ATTN", 0);
|
||||
} else {
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "LNA", openair0_cfg[0].rx_gain[i] - openair0_cfg[0].rx_gain_offset[i]); // [0,30]
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "TIA", 0); // [0,12,6]
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "PGA", 0); // [-12,19,1]
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "TIA", 7); // [0,12,6]
|
||||
s->iris[r]->setGain(SOAPY_SDR_RX, i, "PGA", 18); // [-12,19,1]
|
||||
//s->iris[r]->setGain(SOAPY_SDR_RX, i, 50); // [-12,19,1]
|
||||
|
||||
}
|
||||
@@ -673,22 +656,29 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
|
||||
for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
|
||||
if (i < s->tx_num_channels) {
|
||||
s->iris[r]->setSampleRate(SOAPY_SDR_TX, i, openair0_cfg[0].sample_rate / SAMPLE_RATE_DOWN);
|
||||
#ifdef MOVE_DC
|
||||
printf("Moving DC out of main carrier for tx...\n");
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_TX, i, "RF", openair0_cfg[0].tx_freq[i]-.75*openair0_cfg[0].sample_rate);
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_TX, i, "BB", .75*openair0_cfg[0].sample_rate);
|
||||
#else
|
||||
s->iris[r]->setFrequency(SOAPY_SDR_TX, i, "RF", openair0_cfg[0].tx_freq[i]);
|
||||
#endif
|
||||
|
||||
if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) == 0) {
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", openair0_cfg[0].tx_gain[i]);
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", 52);
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", openair0_cfg[0].tx_gain[i]);
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", 50);
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "IAMP", 12);
|
||||
//s->iris[r]->writeSetting("TX_ENABLE_DELAY", "0");
|
||||
//s->iris[r]->writeSetting("TX_DISABLE_DELAY", "100");
|
||||
} else {
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", openair0_cfg[0].tx_gain[i]);
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "ATTN", 0); // [-18, 0, 6] dB
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "IAMP", 9); // [-12, 12, 1] dB
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", 52); //openair0_cfg[0].tx_gain[i]);
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "IAMP", 6); // [-12, 12, 1] dB
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", 44); //openair0_cfg[0].tx_gain[i]);
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PAD", 35); // [0, 52, 1] dB
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PA1", 9); // 17 ??? dB
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PA1", 17); // 17 ??? dB
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PA2", 0); // [0, 17, 17] dB
|
||||
s->iris[r]->setGain(SOAPY_SDR_TX, i, "PA3", 20); // 33 ??? dB
|
||||
//s->iris[r]->setGain(SOAPY_SDR_TX, i, "PA3", 20); // 33 ??? dB
|
||||
s->iris[r]->writeSetting("TX_ENABLE_DELAY", "0");
|
||||
s->iris[r]->writeSetting("TX_DISABLE_DELAY", "100");
|
||||
}
|
||||
@@ -702,32 +692,47 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
|
||||
if (i < s->rx_num_channels) {
|
||||
|
||||
printf("Actual master clock: %fMHz...\n", (s->iris[r]->getMasterClockRate() / 1e6));
|
||||
|
||||
//if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) != 0) {
|
||||
// printf("\nUsing SKLK calibration...\n");
|
||||
// s->iris[r]->writeSetting(SOAPY_SDR_RX, i, "CALIBRATE", "SKLK");
|
||||
//} else {
|
||||
// s->iris[r]->writeSetting(SOAPY_SDR_RX, i, "CALIBRATE", "");
|
||||
// printf("\nUsing LMS calibration...\n");
|
||||
|
||||
//}
|
||||
int tx_filt_bw = openair0_cfg[0].tx_bw;
|
||||
int rx_filt_bw = openair0_cfg[0].rx_bw;
|
||||
#ifdef MOVE_DC //the filter is centered around the carrier, so we have to expand it if we have moved the DC tone.
|
||||
tx_filt_bw *= 3;
|
||||
rx_filt_bw *= 3;
|
||||
#endif
|
||||
/* Setting TX/RX BW */
|
||||
for (i = 0; i < s->tx_num_channels; i++) {
|
||||
if (i < s->iris[r]->getNumChannels(SOAPY_SDR_TX)) {
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_TX, i, tx_filt_bw);
|
||||
printf("Setting tx bandwidth on channel %lu/%lu: BW %f (readback %f)\n", i,
|
||||
s->iris[r]->getNumChannels(SOAPY_SDR_TX), tx_filt_bw / 1e6,
|
||||
s->iris[r]->getBandwidth(SOAPY_SDR_TX, i) / 1e6);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < s->rx_num_channels; i++) {
|
||||
if (i < s->iris[r]->getNumChannels(SOAPY_SDR_RX)) {
|
||||
s->iris[r]->setBandwidth(SOAPY_SDR_RX, i, rx_filt_bw);
|
||||
printf("Setting rx bandwidth on channel %lu/%lu : BW %f (readback %f)\n", i,
|
||||
s->iris[r]->getNumChannels(SOAPY_SDR_RX), rx_filt_bw / 1e6,
|
||||
s->iris[r]->getBandwidth(SOAPY_SDR_RX, i) / 1e6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_TX); i++) {
|
||||
if (i < s->tx_num_channels) {
|
||||
printf("\nUsing SKLK calibration...\n");
|
||||
s->iris[r]->writeSetting(SOAPY_SDR_TX, i, "CALIBRATE", "SKLK");
|
||||
|
||||
if (s->iris[r]->getHardwareInfo()["frontend"].compare(devFE) != 0) {
|
||||
printf("\nUsing SKLK calibration...\n");
|
||||
s->iris[r]->writeSetting(SOAPY_SDR_TX, i, "CALIBRATE", "SKLK");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (i = 0; i < s->iris[r]->getNumChannels(SOAPY_SDR_RX); i++) {
|
||||
if (i < s->rx_num_channels) {
|
||||
printf("\nUsing SKLK calibration...\n");
|
||||
s->iris[r]->writeSetting(SOAPY_SDR_RX, i, "CALIBRATE", "SKLK");
|
||||
|
||||
} else {
|
||||
printf("\nUsing LMS calibration...\n");
|
||||
s->iris[r]->writeSetting(SOAPY_SDR_TX, i, "CALIBRATE", "");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
Active_eNBs = ( "eNB_Eurecom_LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = 1;
|
||||
|
||||
plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );
|
||||
|
||||
tr_s_preference = "local_mac"
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "eNodeB_3GPP";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "TDD";
|
||||
tdd_config = 1;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 42;
|
||||
downlink_frequency = 3500000000L;
|
||||
uplink_frequency_offset = 0;
|
||||
Nid_cell = 10;
|
||||
N_RB_DL = 25;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 48; # [~50 for DEV-FE, ~30 for CBRS-FE]
|
||||
rx_gain = 80; # [115 for DEV-FE, 90 for CBRS-FE]
|
||||
pbch_repetition = "FALSE";
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -30;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -70;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -96;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
ue_TransmissionMode = 1;
|
||||
|
||||
//Parameters for SIB18
|
||||
rxPool_sc_CP_Len = "normal";
|
||||
rxPool_sc_Period = "sf40";
|
||||
rxPool_data_CP_Len = "normal";
|
||||
rxPool_ResourceConfig_prb_Num = 20;
|
||||
rxPool_ResourceConfig_prb_Start = 5;
|
||||
rxPool_ResourceConfig_prb_End = 44;
|
||||
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
rxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
|
||||
rxPool_dataHoppingConfig_numSubbands = "ns1";
|
||||
rxPool_dataHoppingConfig_rbOffset = 0;
|
||||
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
|
||||
*/
|
||||
// Parameters for SIB19
|
||||
discRxPool_cp_Len = "normal"
|
||||
discRxPool_discPeriod = "rf32"
|
||||
discRxPool_numRetx = 1;
|
||||
discRxPool_numRepetition = 2;
|
||||
discRxPool_ResourceConfig_prb_Num = 5;
|
||||
discRxPool_ResourceConfig_prb_Start = 3;
|
||||
discRxPool_ResourceConfig_prb_End = 21;
|
||||
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "127.0.0.20";
|
||||
ipv6 = "fe80::d65d:dfff:fe1d:f4d4";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.10/8";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "enp5s0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.10/8";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
|
||||
ENB_IPV4_ADDRESS_FOR_X2C = "127.0.0.10/8";
|
||||
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
phy_test_mode = 0;
|
||||
puSch10xSnr = 200;
|
||||
puCch10xSnr = 200;
|
||||
}
|
||||
);
|
||||
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
}
|
||||
);
|
||||
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "yes"
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 44; #apparently this is being used as tx_gain...
|
||||
att_rx = 0; #apparently max_rxgain - att_rx -83 is what is used for rx_gain (at least for 5 MHz)
|
||||
bands = [7];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 107;
|
||||
eNB_instances = [0];
|
||||
#sdr_addrs = "RF3E000025";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_CONTROLLER :
|
||||
{
|
||||
FLEXRAN_ENABLED = "no";
|
||||
FLEXRAN_INTERFACE_NAME = "lo";
|
||||
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
|
||||
FLEXRAN_PORT = 2210;
|
||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||
FLEXRAN_AWAIT_RECONF = "no";
|
||||
};
|
||||
|
||||
THREAD_STRUCT = (
|
||||
{
|
||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||
worker_config = "WORKER_ENABLE";
|
||||
}
|
||||
);
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user