Commit d4291ddb authored by Joanne Hugé's avatar Joanne Hugé

Working 5G NR78 ORS to UEsim config

parent 9245ffef
......@@ -23,22 +23,6 @@
},
*/
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 12,
pdcp_SN_SizeDL: 12,
statusReportRequired: false,
outOfOrderDelivery: false,
/* ROHC header compression */
/*
headerCompression: {
maxCID: 15,
profile0x0001: true, // RTP profile
profile0x0002: true, // UDP profile
profile0x0004: false, // IP profile
},
*/
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
......@@ -65,14 +49,6 @@
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -97,14 +73,6 @@
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -129,13 +97,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -172,23 +133,6 @@
},
*/
},
nr_pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 12,
pdcp_SN_SizeDL: 12,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
/* ROHC header compression */
/*
headerCompression: {
maxCID: 15,
profile0x0001: true, // RTP profile
profile0x0002: true, // UDP profile
profile0x0004: false, // IP profile
},
*/
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
......@@ -215,14 +159,6 @@
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -249,14 +185,6 @@
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -282,13 +210,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -316,13 +237,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -350,14 +264,6 @@
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_Size: 12,
},
nr_pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: false,
outOfOrderDelivery: false,
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -382,13 +288,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -454,13 +353,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -488,13 +380,6 @@
discardTimer: 0, /* in ms, 0 means infinity */
statusReportRequired: true,
},
nr_pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
pdcp_SN_SizeDL: 18,
statusReportRequired: true,
outOfOrderDelivery: false,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file example for Category M1 UEs
* version 2021-07-12
* version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -461,7 +461,6 @@
//br_dl_sf_bitmap : "0001110000011100000111000001110000011100",
},
edrx: true
},
#endif
}
/* lteenb configuration file example for Category M1 UEs
* version 2021-07-12
* version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -352,7 +352,5 @@
allowing higher throughput (up to 3 DL and UL subframes every 8 subframes) */
//br_dl_sf_bitmap : "0001110000011100000111000001110000011100",
},
edrx: true
},
}
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
{
......
/* lteenb configuration file example for NB-IoT (standalone mode)
* version 2021-07-12
* version 2021-03-17
* Copyright (C) 2016-2021 Amarisoft
*/
{
......
/* lteenb configuration file example for NB-IoT (in-band, guard-band and standalone mode)
* version 2021-07-12
* version 2021-03-17
* Copyright (C) 2016-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2020-09-14
* Copyright (C) 2015-2020 Amarisoft
*/
/* PDSCH test mode and DL channel simulator (close to TS 36.141
section 6.1.1.1 (E-TM1.1) or section 6.1.1.2 (E-TM1.2)). Use the
"pdsch_mcs" parameter to force the PDSCH MCS. */
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 50 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 2 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
#define SIB_ENABLE true // Value: false (disable SIB transmission), true (enable SIB transmission)
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
all. The 'all' layer is used to address all the layers at the
same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
//log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/enb0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9001",
/* RF driver configuration */
include "rf_driver/config.cfg",
rf_ports: [
{
n_antenna_dl: N_ANTENNA_DL,
tx_gain_offset: -12,
#if CHANNEL_SIM == 1 || N_ANTENNA_DL >= 2
/* use the channel simulator to replicate the signal on all the
TX antennas */
channel_dl: {
type: "awgn",
noise_level: -200, /* no noise by default */
},
#endif
}
],
mme_list: [
{
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_addr: "127.0.1.100",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
/* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
/* list of cells */
cell_list: [
{
/* Broadcasted PLMN identities */
plmn_list: [
"00101",
],
#if TDD == 1
dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
//dl_earfcn: 38350,
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
//dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */
//dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
//dl_earfcn: 2150, /* DL center frequency: 2130 MHz (Band 4) */
//dl_earfcn: 2525, /* DL center frequency: 881.5 MHz (Band 5) */
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
//dl_earfcn: 6300, /* 806 MHz (Band 20) */
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
#endif
n_id_cell: 1,
cell_id: 0x01,
tac: 0x0001,
root_sequence_index: 204, /* PRACH root sequence index */
},
], /* cell_list */
/* default cell parameters */
cell_default: {
n_antenna_dl: 1, /* number of DL antennas : always one for TM1.1 */
n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */
#if TDD == 1
/* TDD configuration, see TS 36.141 section 6.1.1 */
uldl_config: 3, /* TDD only */
sp_config: 8, /* TDD only */
#endif
n_rb_dl: N_RB_DL, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
cyclic_prefix: "normal",
phich_duration: "normal",
phich_resource: "1", /* ratio of NG */
/* SIB1 */
si_value_tag: 0, /* increment modulo 32 if SI is modified */
cell_barred: false, /* SIB1.cellBarred-r13 */
intra_freq_reselection: true, /* SIB1.intraFreqReselection */
q_rx_lev_min: -70, /* SIB1.q-RxLevMin */
p_max: 10, /* maximum power allowed for the UE (dBm) */
si_window_length: 40, /* ms */
sib_sched_list: [
{
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
],
#if N_RB_DL == 6
si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
#else
si_coderate: 0.20, /* maximum code rate for SI/RA/P-RNTI messages */
#endif
si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
for SI/RA/P-RNTI */
/* number of symbols for CCH (0 = auto) */
#if N_RB_DL == 6
#if SIB_ENABLE
n_symb_cch: 4,
#else
n_symb_cch: 2,
#endif
#elif (N_RB_DL == 15 || N_RB_DL == 25) && SIB_ENABLE
n_symb_cch: 2,
#else
n_symb_cch: 1,
#endif
/* PDSCH dedicated config (currently same for all UEs) */
pdsch_dedicated: {
p_a: 0,
p_b: 0, /* -1 means automatic */
},
/* If defined, force for number of CCEs for UE specific PDCCH to
2^pdcch_format. Otherwise it is computed from the reported
CQI. Range: 0 to 3. */
#if N_RB_DL <= 15
pdcch_format: 0,
#else
pdcch_format: 1,
#endif
/* if defined, force the PDSCH MCS for all UEs. Otherwise it is
computed from the reported CQI */
/* pdsch_mcs: 12, */
#if N_RB_DL == 6 && TDD == 1
prach_config_index: 5, /* subframe 2 every 10 ms */
#elif N_RB_DL == 6
prach_config_index: 15, /* subframe 9 every 20 ms */
#else
prach_config_index: 4, /* subframe 4 every 10 ms */
#endif
prach_freq_offset: -1, /* -1 means automatic */
/* PUCCH dedicated config (currently same for all UEs) */
pucch_dedicated: {
n1_pucch_sr_count: 11, /* increase if more UEs are needed */
cqi_pucch_n_rb: 1, /* increase if more UEs are needed */
#if TDD == 1
//tdd_ack_nack_feedback_mode: "bundling", /* TDD only */
tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */
#endif
},
/* PUSCH dedicated config (currently same for all UEs) */
pusch_dedicated: {
beta_offset_ack_index: 9,
beta_offset_ri_index: 6,
beta_offset_cqi_index: 6,
},
pusch_hopping_offset: -1, /* -1 means automatic */
/* MCS for Msg3 (=CCCH RRC Connection Request) */
pusch_msg3_mcs: 0,
/* this CQI value is assumed when none is received from the UE */
#if N_RB_DL == 6
initial_cqi: 5,
#else
initial_cqi: 3,
#endif
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
dl_256qam: false,
ul_64qam: false,
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
/* CQI report config */
cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
/* transmission mode */
transmission_mode: 1,
/* SRS dedicated config. All UEs share these
parameters. srs_config_index and freq_domain_position are
allocated for each UE) */
srs_dedicated: {
#if N_RB_DL == 6
srs_bandwidth_config: 7,
srs_bandwidth: 1,
#elif N_RB_DL == 15
srs_bandwidth_config: 6,
srs_bandwidth: 1,
#elif N_RB_DL == 25
srs_bandwidth_config: 3,
srs_bandwidth: 1,
#elif N_RB_DL == 50
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#elif N_RB_DL == 75
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#else
srs_bandwidth_config: 2,
srs_bandwidth: 3,
#endif
srs_subframe_config: 3, /* 0 - 15 */
srs_period: 40, /* period (ms). Must be >= 40 for HD-FDD */
srs_hopping_bandwidth: 0,
},
/* MAC configuration (same for all UEs) */
mac_config: {
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
},
/* CPU load limitation */
pusch_max_its: 6, /* max number of turbo decoder iterations */
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 15,
dpc_pucch_snr_target: 10,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
/* RRC integrity algorithm preference. EIA0 is always the last. */
integ_algo_pref: [2, 1],
/* (in ms) send RRC connection release after this time of network
inactivity */
inactivity_timer: 10000,
/* SRB configuration */
srb_config: [
{
id: 1,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
},
{
id: 2 ,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
}
],
/* DRB configuration */
drb_config: "drb.cfg",
/* PDSCH test mode */
sib_enable: SIB_ENABLE,
pdcch_fill: true, /* fill the bandwidth with dummy PDCCH */
phich_fill: true, /* fill the bandwidth with dummy PHICH */
power_phich: -3.01,
power_pdcch: 0,
boosted_prbs: false, /* set to true for E-TM1.2 boosted PRBs */
forced_cqi: 15,
test_mode: {
type: "pdsch", /* PDSCH continuous transmission */
pdsch_retx: false, /* if false, don't retransmit the unacknowledged PDSCH */
rnti: 0x100, /* RNTI for PDSCH */
random_data: false, /* if true, send random data instead of zeros */
},
},
}
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 100 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
all. The 'all' layer is used to address all the layers at the
same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
log_options: "all.level=debug,all.max_size=32",
//log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/enb0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9001",
/* RF driver configuration */
#if !defined(N_CELL)
#define N_CELL 1
#endif
#if !defined(TDD)
#define TDD 0
#endif
#if !defined(N_ANTENNA_DL)
#define N_ANTENNA_DL 1
#endif
#if N_ANTENNA_DL <= 2
#define N_CHAN N_CELL
#else
#define N_CHAN 2*N_CELL
#endif
rf_driver: {
name: "sdr",
/* list of devices. 'dev0' is always the master. */
#if N_CHAN == 1
args: "dev0=/dev/sdr0",
#elif N_CHAN == 2
args: "dev0=/dev/sdr0,dev1=/dev/sdr1",
#elif N_CHAN == 3
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2",
#elif N_CHAN == 4
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2,dev3=/dev/sdr3",
#elif N_CHAN == 6
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2,dev3=/dev/sdr3,dev4=/dev/sdr4,dev5=/dev/sdr5",
#else
args: "",
#endif
/* synchronisation source: none, internal, gps, external (default = none) */
// sync: "gps",
#if TDD == 1
rx_antenna:"rx", // force to use the RX connector in TDD as RX antenna
#endif
},
tx_gain: 73.0, /* TX gain (in dB) */
rx_gain: 50.0, /* RX gain (in dB) */
#if CHANNEL_SIM == 1
rf_ports: [
{
channel_dl: {
type: "awgn",
noise_level: -30,
},
}
],
#endif
mme_list: [
{
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_addr: "127.0.1.100",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
/* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
/* list of cells */
cell_list: [
{
/* Broadcasted PLMN identities */
plmn_list: [
"00101",
],
#if TDD == 1
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
dl_earfcn: 42590, /* 3500 MHz (band 42) */
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
//dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */
//dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
//dl_earfcn: 2150, /* DL center frequency: 2130 MHz (Band 4) */
//dl_earfcn: 2525, /* DL center frequency: 881.5 MHz (Band 5) */
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
//dl_earfcn: 6300, /* 806 MHz (Band 20) */
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
#endif
n_id_cell: 1,
cell_id: 0x01,
tac: 0x0001,
root_sequence_index: 204, /* PRACH root sequence index */
},
], /* cell_list */
/* default cell parameters */
cell_default: {
n_antenna_dl: N_ANTENNA_DL, /* number of DL antennas */
n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */
#if TDD == 1
uldl_config: 2, /* TDD only */
sp_config: 7, /* TDD only */
#endif
n_rb_dl: N_RB_DL, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
cyclic_prefix: "normal",
phich_duration: "normal",
phich_resource: "1", /* ratio of NG */
/* SIB1 */
si_value_tag: 0, /* increment modulo 32 if SI is modified */
cell_barred: false, /* SIB1.cellBarred-r13 */
intra_freq_reselection: true, /* SIB1.intraFreqReselection */
q_rx_lev_min: -70, /* SIB1.q-RxLevMin */
p_max: 10, /* maximum power allowed for the UE (dBm) */
si_window_length: 40, /* ms */
sib_sched_list: [
{
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
],
#if N_RB_DL == 6
si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
#else
si_coderate: 0.20, /* maximum code rate for SI/RA/P-RNTI messages */
#endif
si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
for SI/RA/P-RNTI */
n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
/* PDSCH dedicated config (currently same for all UEs) */
pdsch_dedicated: {
#if N_ANTENNA_DL == 4
p_a: -6,
#elif N_ANTENNA_DL == 2
p_a: -3,
#else
p_a: 0,
#endif
p_b: -1, /* -1 means automatic */
},
/* If defined, force for number of CCEs for UE specific PDCCH to
2^pdcch_format. Otherwise it is computed from the reported
CQI. Range: 0 to 3. */
#if N_RB_DL == 6
pdcch_format: 1,
#else
pdcch_format: 2,
#endif
/* if defined, force the PDSCH MCS for all UEs. Otherwise it is
computed from the reported CQI */
/* pdsch_mcs: 12, */
#if N_RB_DL == 6
prach_config_index: 15, /* subframe 9 every 20 ms */
#else
prach_config_index: 4, /* subframe 4 every 10 ms */
#endif
prach_freq_offset: -1, /* -1 means automatic */
/* PUCCH dedicated config (currently same for all UEs) */
pucch_dedicated: {
n1_pucch_sr_count: 11, /* increase if more UEs are needed */
cqi_pucch_n_rb: 1, /* increase if more UEs are needed */
#if TDD == 1
//tdd_ack_nack_feedback_mode: "bundling", /* TDD only */
tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */
#endif
},
/* PUSCH dedicated config (currently same for all UEs) */
pusch_dedicated: {
beta_offset_ack_index: 9,
beta_offset_ri_index: 6,
beta_offset_cqi_index: 6,
},
pusch_hopping_offset: -1, /* -1 means automatic */
/* MCS for Msg3 (=CCCH RRC Connection Request) */
pusch_msg3_mcs: 0,
/* this CQI value is assumed when none is received from the UE */
#if N_RB_DL == 6
initial_cqi: 5,
#else
initial_cqi: 3,
#endif
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
dl_256qam: true,
ul_64qam: true,
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
/* CQI report config */
cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
#if N_ANTENNA_DL >= 2
/* RI reporting is done with a period of m_ri * cqi_period.
m_ri = 0 (default) disables RI reporting. */
m_ri: 8,
/* transmission mode */
transmission_mode: 3,
#endif
/* SRS dedicated config. All UEs share these
parameters. srs_config_index and freq_domain_position are
allocated for each UE) */
srs_dedicated: {
#if N_RB_DL == 6
srs_bandwidth_config: 7,
srs_bandwidth: 1,
#elif N_RB_DL == 15
srs_bandwidth_config: 6,
srs_bandwidth: 1,
#elif N_RB_DL == 25
srs_bandwidth_config: 3,
srs_bandwidth: 1,
#elif N_RB_DL == 50
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#elif N_RB_DL == 75
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#else
srs_bandwidth_config: 2,
srs_bandwidth: 3,
#endif
srs_subframe_config: 3, /* 0 - 15 */
srs_period: 40, /* period (ms). Must be >= 40 for HD-FDD */
srs_hopping_bandwidth: 0,
},
/* MAC configuration (same for all UEs) */
mac_config: {
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
},
/* CPU load limitation */
pusch_max_its: 6, /* max number of turbo decoder iterations */
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 25,
dpc_pucch_snr_target: 20,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
/* RRC integrity algorithm preference. EIA0 is always the last. */
integ_algo_pref: [2, 1],
/* (in ms) send RRC connection release after this time of network
inactivity */
inactivity_timer: 10000,
/* SRB configuration */
srb_config: [
{
id: 1,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
},
{
id: 2 ,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
}
],
/* DRB configuration */
drb_config: "drb.cfg",
},
}
enb.default.cfg
\ No newline at end of file
gnb.5G-BANDN78-lower-TOMO.cfg
\ No newline at end of file
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
#define TDD 0 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 25 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 100 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 2 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
#define NG_ENB 0 // 1 for ng-eNB
{
/* Log filter: syntax: layer.field=value[,...]
......@@ -52,15 +51,6 @@
mme_addr: "127.0.1.100",
},
],
#if NG_ENB == 1
amf_list: [
{
/* address of AMF for NGAP connection. Must be modified if the AMF
runs on a different host. */
amf_addr: "127.0.1.100",
},
],
#endif
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
......@@ -75,16 +65,10 @@
plmn_list: [
"00101",
],
#if NG_ENB == 1
plmn_list_5gc: [ {
tac: 10,
plmn_ids: [{ plmn: "00101", reserved: false }],
}],
#endif
#if TDD == 1
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
dl_earfcn: 40620, /* 2593 MHz (band 41) */
dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
......
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 50 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 2 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
all. The 'all' layer is used to address all the layers at the
same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
log_options: "all.level=debug,all.max_size=32",
//log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1, phy.max_size=1,phy.level=debug",
log_filename: "/tmp/enb0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9001",
/* RF driver configuration */
include "rf_driver/config.cfg",
#if CHANNEL_SIM == 1
rf_ports: [
{
channel_dl: {
type: "awgn",
noise_level: -30,
},
}
],
#endif
mme_list: [
{
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_addr: "127.0.1.100",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
/* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
/* list of cells */
cell_list: [
{
/* Broadcasted PLMN identities */
plmn_list: [
"00101",
],
#if TDD == 1
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
dl_earfcn: 42590, /* 3500 MHz (band 42) */
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
//dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */
//dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
//dl_earfcn: 2150, /* DL center frequency: 2130 MHz (Band 4) */
//dl_earfcn: 2525, /* DL center frequency: 881.5 MHz (Band 5) */
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
//dl_earfcn: 6300, /* 806 MHz (Band 20) */
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
#endif
n_id_cell: 1,
cell_id: 0x01,
tac: 0x0001,
root_sequence_index: 204, /* PRACH root sequence index */
},
], /* cell_list */
/* default cell parameters */
cell_default: {
n_antenna_dl: N_ANTENNA_DL, /* number of DL antennas */
n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */
#if TDD == 1
uldl_config: 2, /* TDD only */
sp_config: 7, /* TDD only */
#endif
n_rb_dl: N_RB_DL, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
cyclic_prefix: "normal",
phich_duration: "normal",
phich_resource: "1", /* ratio of NG */
/* SIB1 */
si_value_tag: 0, /* increment modulo 32 if SI is modified */
cell_barred: false, /* SIB1.cellBarred-r13 */
intra_freq_reselection: true, /* SIB1.intraFreqReselection */
q_rx_lev_min: -70, /* SIB1.q-RxLevMin */
p_max: 10, /* maximum power allowed for the UE (dBm) */
si_window_length: 40, /* ms */
sib_sched_list: [
{
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
],
#if N_RB_DL == 6
si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
#else
si_coderate: 0.20, /* maximum code rate for SI/RA/P-RNTI messages */
#endif
si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
for SI/RA/P-RNTI */
n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
/* PDSCH dedicated config (currently same for all UEs) */
pdsch_dedicated: {
#if N_ANTENNA_DL == 4
p_a: -6,
#elif N_ANTENNA_DL == 2
p_a: -3,
#else
p_a: 0,
#endif
p_b: -1, /* -1 means automatic */
},
/* If defined, force for number of CCEs for UE specific PDCCH to
2^pdcch_format. Otherwise it is computed from the reported
CQI. Range: 0 to 3. */
#if N_RB_DL == 6
pdcch_format: 1,
#else
pdcch_format: 2,
#endif
/* if defined, force the PDSCH MCS for all UEs. Otherwise it is
computed from the reported CQI */
/* pdsch_mcs: 12, */
#if N_RB_DL == 6
prach_config_index: 15, /* subframe 9 every 20 ms */
#else
prach_config_index: 4, /* subframe 4 every 10 ms */
#endif
prach_freq_offset: -1, /* -1 means automatic */
/* PUCCH dedicated config (currently same for all UEs) */
pucch_dedicated: {
n1_pucch_sr_count: 11, /* increase if more UEs are needed */
cqi_pucch_n_rb: 1, /* increase if more UEs are needed */
#if TDD == 1
//tdd_ack_nack_feedback_mode: "bundling", /* TDD only */
tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */
#endif
},
/* PUSCH dedicated config (currently same for all UEs) */
pusch_dedicated: {
beta_offset_ack_index: 9,
beta_offset_ri_index: 6,
beta_offset_cqi_index: 6,
},
pusch_hopping_offset: -1, /* -1 means automatic */
/* MCS for Msg3 (=CCCH RRC Connection Request) */
pusch_msg3_mcs: 0,
/* this CQI value is assumed when none is received from the UE */
#if N_RB_DL == 6
initial_cqi: 5,
#else
initial_cqi: 3,
#endif
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
dl_256qam: true,
ul_64qam: true,
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
/* CQI report config */
cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
#if N_ANTENNA_DL >= 2
/* RI reporting is done with a period of m_ri * cqi_period.
m_ri = 0 (default) disables RI reporting. */
m_ri: 8,
/* transmission mode */
transmission_mode: 3,
#endif
/* SRS dedicated config. All UEs share these
parameters. srs_config_index and freq_domain_position are
allocated for each UE) */
srs_dedicated: {
#if N_RB_DL == 6
srs_bandwidth_config: 7,
srs_bandwidth: 1,
#elif N_RB_DL == 15
srs_bandwidth_config: 6,
srs_bandwidth: 1,
#elif N_RB_DL == 25
srs_bandwidth_config: 3,
srs_bandwidth: 1,
#elif N_RB_DL == 50
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#elif N_RB_DL == 75
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#else
srs_bandwidth_config: 2,
srs_bandwidth: 3,
#endif
srs_subframe_config: 3, /* 0 - 15 */
srs_period: 40, /* period (ms). Must be >= 40 for HD-FDD */
srs_hopping_bandwidth: 0,
},
/* MAC configuration (same for all UEs) */
mac_config: {
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
},
/* CPU load limitation */
pusch_max_its: 6, /* max number of turbo decoder iterations */
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 25,
dpc_pucch_snr_target: 20,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
/* RRC integrity algorithm preference. EIA0 is always the last. */
integ_algo_pref: [2, 1],
/* (in ms) send RRC connection release after this time of network
inactivity */
inactivity_timer: 10000,
/* SRB configuration */
srb_config: [
{
id: 1,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
},
{
id: 2 ,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
}
],
/* DRB configuration */
drb_config: "drb.cfg",
},
}
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL 50 // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 2 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
{
/* Log filter: syntax: layer.field=value[,...]
Possible layers are phy, mac, rlc, pdcp, rrc, nas, s1ap, x2ap, gtpu and
all. The 'all' layer is used to address all the layers at the
same time.
field values:
- 'level': the log level of each layer can be set to 'none',
'error', 'info' or 'debug'. Use 'debug' to log all the messages.
- 'max_size': set the maximum size of the hex dump. 0 means no
hex dump. -1 means no limit.
*/
log_options: "all.level=debug,all.max_size=32",
//log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1, phy.max_size=1,phy.level=debug",
log_filename: "/tmp/enb0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9001",
/* RF driver configuration */
include "rf_driver/config.cfg",
#if CHANNEL_SIM == 1
rf_ports: [
{
channel_dl: {
type: "awgn",
noise_level: -30,
},
}
],
#endif
mme_list: [
{
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_addr: "127.0.1.100",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
/* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
/* list of cells */
cell_list: [
{
/* Broadcasted PLMN identities */
plmn_list: [
"00101",
],
#if TDD == 1
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
dl_earfcn: 42590, /* 3500 MHz (band 42) */
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
//dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */
//dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
//dl_earfcn: 2150, /* DL center frequency: 2130 MHz (Band 4) */
//dl_earfcn: 2525, /* DL center frequency: 881.5 MHz (Band 5) */
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
//dl_earfcn: 6300, /* 806 MHz (Band 20) */
//dl_earfcn: 38050, /* 2600 MHz (band 38) */
//dl_earfcn: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
#endif
n_id_cell: 1,
cell_id: 0x01,
tac: 0x0001,
root_sequence_index: 204, /* PRACH root sequence index */
},
], /* cell_list */
/* default cell parameters */
cell_default: {
n_antenna_dl: N_ANTENNA_DL, /* number of DL antennas */
n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */
#if TDD == 1
uldl_config: 2, /* TDD only */
sp_config: 7, /* TDD only */
#endif
n_rb_dl: N_RB_DL, /* Bandwidth: 25: 5 MHz, 50: 10 MHz, 75: 15 MHz, 100: 20 MHz */
cyclic_prefix: "normal",
phich_duration: "normal",
phich_resource: "1", /* ratio of NG */
/* SIB1 */
si_value_tag: 0, /* increment modulo 32 if SI is modified */
cell_barred: false, /* SIB1.cellBarred-r13 */
intra_freq_reselection: true, /* SIB1.intraFreqReselection */
q_rx_lev_min: -70, /* SIB1.q-RxLevMin */
p_max: 10, /* maximum power allowed for the UE (dBm) */
si_window_length: 40, /* ms */
sib_sched_list: [
{
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
],
#if N_RB_DL == 6
si_coderate: 0.30, /* maximum code rate for SI/RA/P-RNTI messages */
#else
si_coderate: 0.20, /* maximum code rate for SI/RA/P-RNTI messages */
#endif
si_pdcch_format: 2, /* 2 or 3. Log2 of the number of CCEs for PDCCH
for SI/RA/P-RNTI */
n_symb_cch: 0, /* number of symbols for CCH (0 = auto) */
/* PDSCH dedicated config (currently same for all UEs) */
pdsch_dedicated: {
#if N_ANTENNA_DL == 4
p_a: -6,
#elif N_ANTENNA_DL == 2
p_a: -3,
#else
p_a: 0,
#endif
p_b: -1, /* -1 means automatic */
},
/* If defined, force for number of CCEs for UE specific PDCCH to
2^pdcch_format. Otherwise it is computed from the reported
CQI. Range: 0 to 3. */
#if N_RB_DL == 6
pdcch_format: 1,
#else
pdcch_format: 2,
#endif
/* if defined, force the PDSCH MCS for all UEs. Otherwise it is
computed from the reported CQI */
/* pdsch_mcs: 12, */
#if N_RB_DL == 6
prach_config_index: 15, /* subframe 9 every 20 ms */
#else
prach_config_index: 4, /* subframe 4 every 10 ms */
#endif
prach_freq_offset: -1, /* -1 means automatic */
/* PUCCH dedicated config (currently same for all UEs) */
pucch_dedicated: {
n1_pucch_sr_count: 11, /* increase if more UEs are needed */
cqi_pucch_n_rb: 1, /* increase if more UEs are needed */
#if TDD == 1
//tdd_ack_nack_feedback_mode: "bundling", /* TDD only */
tdd_ack_nack_feedback_mode: "multiplexing", /* TDD only */
#endif
},
/* PUSCH dedicated config (currently same for all UEs) */
pusch_dedicated: {
beta_offset_ack_index: 9,
beta_offset_ri_index: 6,
beta_offset_cqi_index: 6,
},
pusch_hopping_offset: -1, /* -1 means automatic */
/* MCS for Msg3 (=CCCH RRC Connection Request) */
pusch_msg3_mcs: 0,
/* this CQI value is assumed when none is received from the UE */
#if N_RB_DL == 6
initial_cqi: 5,
#else
initial_cqi: 3,
#endif
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
dl_256qam: true,
ul_64qam: true,
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
/* CQI report config */
cqi_period: 40, /* period (ms). Must be >= 32 for HD-FDD */
#if N_ANTENNA_DL >= 2
/* RI reporting is done with a period of m_ri * cqi_period.
m_ri = 0 (default) disables RI reporting. */
m_ri: 8,
/* transmission mode */
transmission_mode: 3,
#endif
/* SRS dedicated config. All UEs share these
parameters. srs_config_index and freq_domain_position are
allocated for each UE) */
srs_dedicated: {
#if N_RB_DL == 6
srs_bandwidth_config: 7,
srs_bandwidth: 1,
#elif N_RB_DL == 15
srs_bandwidth_config: 6,
srs_bandwidth: 1,
#elif N_RB_DL == 25
srs_bandwidth_config: 3,
srs_bandwidth: 1,
#elif N_RB_DL == 50
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#elif N_RB_DL == 75
srs_bandwidth_config: 2,
srs_bandwidth: 2,
#else
srs_bandwidth_config: 2,
srs_bandwidth: 3,
#endif
srs_subframe_config: 3, /* 0 - 15 */
srs_period: 40, /* period (ms). Must be >= 40 for HD-FDD */
srs_hopping_bandwidth: 0,
},
/* MAC configuration (same for all UEs) */
mac_config: {
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
},
/* CPU load limitation */
pusch_max_its: 6, /* max number of turbo decoder iterations */
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 25,
dpc_pucch_snr_target: 20,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
/* RRC integrity algorithm preference. EIA0 is always the last. */
integ_algo_pref: [2, 1],
/* (in ms) send RRC connection release after this time of network
inactivity */
inactivity_timer: 10000,
/* SRB configuration */
srb_config: [
{
id: 1,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
},
{
id: 2 ,
maxRetxThreshold: 32,
t_Reordering: 45,
t_PollRetransmit: 60,
}
],
/* DRB configuration */
drb_config: "drb.cfg",
},
}
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* LTE cell MIMO 2x2 + 2CC NR cell */
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define NR_TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_RB_DL 100 // Values: 6 (1.4MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 4 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1 (SISO), 2 (diversity 2RX), 4 (diversity 4RX)
......@@ -356,19 +356,6 @@
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 0,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -394,17 +381,13 @@
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -449,8 +432,6 @@
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* NR SA 2CC FDD or TDD cell */
#define NR_TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1 (SISO), 2 (diversity 2RX), 4 (diversity 4RX)
#define NR_BANDWIDTH 20 // NR cell bandwidth
#define BANDWIDTH 20 // NR cell bandwidth
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +64,7 @@
{cell_id: 2},
],
#if NR_TDD == 1
#if TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +80,7 @@
{cell_id: 1},
],
#if NR_TDD == 1
#if TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,47 +92,34 @@
nr_cell_default: {
subcarrier_spacing: 30, /* kHz */
bandwidth: NR_BANDWIDTH, /* MHz */
bandwidth: BANDWIDTH, /* MHz */
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* force the timing TA offset (optional) */
// n_timing_advance_offset: 39936,
#if NR_TDD == 1
#if TDD == 1
tdd_ul_dl_config: {
pattern1: {
#if NR_TDD_CONFIG == 1
#if TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 0,
#elif NR_TDD_CONFIG == 2
#elif TDD_CONFIG == 2
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
#elif NR_TDD_CONFIG == 3
#elif TDD_CONFIG == 3
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 0,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -186,18 +173,14 @@
//pdsch_harq_ack_max: 2,
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
#if TDD == 1
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -240,15 +223,13 @@
dmrs_max_len: 1,
k0: 0, /* delay in slots from DCI to PDSCH */
/* delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK */
#if NR_TDD == 1
#if NR_TDD_CONFIG == 1
#if TDD == 1
#if TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
#elif TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
#elif TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* LTE FDD cell + NR FDD cell at the same frequency
*/
......@@ -6,8 +6,8 @@
/* Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4) */
#define N_ANTENNA_DL 1
/* Values: 0 (NSA NR), 1 (SA and NSA NR) */
#define ALLOW_SA 1
/* define it to allow SA NR (otherwise NSA NR) */
#define ALLOW_SA
/* define it to disable LTE-CRS: schedule NR only in LTE MBMS subframes */
//#define MBMS_ONLY
......@@ -59,7 +59,7 @@
/* high 24 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
#if ALLOW_SA
#ifdef ALLOW_SA
gnb_id_bits: 28,
gnb_id: 0x12345,
......@@ -93,7 +93,7 @@
nr_cell_list: [
{
rf_port: 0,
#if ALLOW_SA
#ifdef ALLOW_SA
plmn_list: [ {
tac: 100,
plmn: "00101",
......@@ -275,7 +275,7 @@
ssb_pos_bitmap: "0001",
ssb_period: 20, /* in ms */
#if ALLOW_SA
#ifdef ALLOW_SA
cell_barred: false,
intra_freq_reselection: true,
q_rx_lev_min: -70,
......@@ -313,7 +313,7 @@
},
pdcch: {
#if ALLOW_SA
#ifdef ALLOW_SA
n_rb_coreset0: 48,
n_symb_coreset0: 1,
search_space0_index: 1, /* 1 symbol, starting at symbol 1 for odd SSB */
......@@ -363,7 +363,7 @@
x_overhead: 6, /* 6 REs reserved for LTE CRS */
#endif
rar_mcs: 2,
#if ALLOW_SA
#ifdef ALLOW_SA
si_mcs: 6,
#endif
/* If defined, force the PDSCH MCS for all UEs. Otherwise it is computed
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* 2 LTE cell + NR cell */
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define NR_TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_RB_DL 100 // Values: 6 (1.4MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define NR_BANDWIDTH 40 // NR cell bandwidth. With the PCIe SDR50 board, up to 50 MHz is supported.
......@@ -388,19 +388,6 @@
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -426,17 +413,13 @@
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -483,8 +466,6 @@
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......@@ -764,8 +745,6 @@
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* LTE cell + NR cell */
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define FR2 0 // Values: 0 (FR1), 1 (FR2)
#define NR_TDD_CONFIG 2 // Values: FR1: 1, 2, 3, 4 (compatible with LTE TDD config 2) FR2: 10
#define NR_TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_RB_DL 100 // Values: 6 (1.4MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define TRX_MAX_BANDWIDTH 100 // Values: 50 (50MHz), 100 (100MHz). Maximum bandwidth supported by one single SDR board.
......@@ -15,10 +14,6 @@
// With the PCIe SDR100 board, up to 100 MHz is supported.
// For a bandwidth higher than the maximum bandwidth of a single board (TRX_MAX_BANDWIDTH), two SDR boards are used in parallel (experimental).
#define ALLOW_SA 0 // 1 to allow SA NR in addition to NSA NR
#define USE_SRS 0 // define to 1 to enable periodic SRS
{
//log_options: "all.level=debug,all.max_size=1",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1",
......@@ -68,17 +63,7 @@
#else
sample_rate: 122.88, /* MHz */
#endif
#endif
#if FR2
/* an external frequency translator must be used */
rf_dl_freq: 3500, /* MHz */
rf_ul_freq: 3500, /* MHz */
/* uncomment to have a higher per-UE bitrate at the expense of
higher gNB real time constraints. The default value is 4
ms. 1 ms gives the maximum per-UE bitrate. */
// rx_to_tx_latency: 1, /* ms */
#endif
#endif
},
],
......@@ -95,18 +80,6 @@
/* high 24 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0,
#if ALLOW_SA
gnb_id_bits: 28,
gnb_id: 0x12345,
amf_list: [
{
/* address of AMF for NGAP connection. Must be modified if the AMF runs on a different host. */
amf_addr: "127.0.1.100",
},
],
#endif
nr_support: true,
/* list of cells */
......@@ -135,32 +108,13 @@
nr_cell_list: [
{
rf_port: 1,
#if ALLOW_SA
plmn_list: [ {
tac: 100,
plmn: "00101",
reserved: false,
},
],
#endif
cell_id: 0x02,
#if NR_TDD == 1
#if FR2
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
subcarrier_spacing: 120, /* kHz */
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
band: 78,
dl_nr_arfcn: 632628, /* 3489.42 MHz */
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "10000000",
#endif
#else
band: 5,
dl_nr_arfcn: 176300, /* 881.5 MHz */
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "1000",
#endif
},
], /* nr_cell_list */
......@@ -378,79 +332,45 @@
},
nr_cell_default: {
subcarrier_spacing: 30, /* kHz */
bandwidth: NR_BANDWIDTH, /* MHz */
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
/* force the timing TA offset (optional) */
// n_timing_advance_offset: 39936,
/* subframe offset to align with the LTE TDD pattern (optional) */
// subframe_offset: 2,
#if NR_TDD == 1
tdd_ul_dl_config: {
#if NR_TDD_CONFIG == 1
pattern1: {
#if NR_TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 2
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
},
#elif NR_TDD_CONFIG == 3
pattern1: {
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 4
pattern1: {
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
},
#elif NR_TDD_CONFIG == 10
/* only for FR2 */
pattern1: {
period: 0.625, /* in ms */
dl_slots: 3,
dl_symbols: 10,
ul_slots: 1,
ul_symbols: 2,
},
#endif
},
},
ssb_pos_bitmap: "10000000",
#else
ssb_pos_bitmap: "1000",
#endif
ssb_period: 20, /* in ms */
n_id_cell: 500,
#if ALLOW_SA
cell_barred: false,
intra_freq_reselection: true,
q_rx_lev_min: -70,
q_qual_min: -20,
inactivity_timer: 10000,
si_window_length: 40,
#endif
// p_max: 10, /* maximum UE power in dBm */
root_sequence_index: 1, /* PRACH root sequence index */
......@@ -466,31 +386,18 @@
prach: {
#if NR_TDD == 1
#if FR2
prach_config_index: 149, /* format C0, every 4 frames */
msg1_subcarrier_spacing: 120, /* kHz */
#else
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#endif
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
power_ramping_step: 4, /* in dB */
#if FR2
ra_response_window: 40, /* in slots */
#else
ra_response_window: 20, /* in slots */
#endif
restricted_set_config: "unrestricted_set",
ra_contention_resolution_timer: 64, /* in ms */
ssb_per_prach_occasion: 1,
......@@ -498,23 +405,12 @@
},
pdcch: {
#if ALLOW_SA
search_space0_index: 0,
si_al_index: 2,
dedicated_coreset: {
rb_start: -1, /* -1 to have the maximum bandwidth */
l_crb: -1, /* -1 means all the bandwidth */
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
precoder_granularity: "sameAsREG_bundle",
},
#else
common_coreset: {
rb_start: -1, /* -1 to have the maximum bandwidth */
l_crb: -1, /* -1 means all the bandwidth */
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
duration: 1,
precoder_granularity: "sameAsREG_bundle",
},
#endif
css: {
n_candidates: [ 0, 0, 1, 0, 0 ],
},
......@@ -529,6 +425,8 @@
pdsch: {
mapping_type: "typeA",
start_symb: 1,
n_symb: 13,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
......@@ -541,10 +439,6 @@
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#elif NR_TDD_CONFIG == 10
k1: [ 9, 8, 12, 11 ],
#endif
#else
k1: 4,
......@@ -553,9 +447,6 @@
mcs_table: "qam256",
rar_mcs: 2,
#if ALLOW_SA
si_mcs: 6,
#endif
/* If defined, force the PDSCH MCS for all UEs. Otherwise it is computed
* based on DL channel quality estimation */
/* mcs: 24, */
......@@ -598,9 +489,7 @@
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#if FR2 == 0
#define USE_TRS
#endif
#define USE_TRS
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
......@@ -787,9 +676,6 @@
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if 1
......@@ -823,20 +709,15 @@
#endif
},
#define USE_SRS 0 /* define to 1 to enable periodic SRS */
#if USE_SRS
srs: {
#if NR_TDD
#if NR_TDD_CONFIG == 1 || NR_TDD_CONFIG == 2
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 10
srs_symbols: [ 0, 0, 0, 2, 0 ],
#endif
#else
srs_symbols: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
......@@ -864,14 +745,9 @@
mcs_table: "qam256", /* without transform precoding */
mcs_table_tp: "qam256", /* with transform precoding */
ldpc_max_its: 5,
#if NR_TDD && NR_TDD_CONFIG == 10
k2: 8, /* delay in slots from DCI to PUSCH */
msg3_k2: 13,
#else
k2: 4, /* delay in slots from DCI to PUSCH */
msg3_k2: 7,
#endif
p0_nominal_with_grant: -76,
msg3_k2: 7,
msg3_mcs: 4,
msg3_delta_power: 0, /* in dB */
beta_offset_ack_index: 9,
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* LTE cell + 2 NR cell */
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define NR_TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_RB_DL 100 // Values: 6 (1.4MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define NR_BANDWIDTH 40 // NR cell bandwidth. With the PCIe SDR50 board, up to 50 MHz is supported.
......@@ -98,7 +98,6 @@
#else
band: 7,
dl_nr_arfcn: 528000, /* 2640 MHz */
ssb_subcarrier_spacing: 15,
#endif
ncell_list: [
......@@ -115,9 +114,8 @@
band: 78,
dl_nr_arfcn: 640000, /* 3600 MHz */
#else
band: 7,
band: 5,
dl_nr_arfcn: 532000, /* 2660 MHz */
ssb_subcarrier_spacing: 15,
#endif
ncell_list: [
......@@ -368,19 +366,6 @@
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -406,17 +391,13 @@
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -463,8 +444,6 @@
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......@@ -744,8 +723,6 @@
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
......
......@@ -3,11 +3,11 @@
* NR SA 2 cells, FDD or TDD, for HO */
#define NR_TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1 (SISO), 2 (diversity 2RX), 4 (diversity 4RX)
#define NR_BANDWIDTH 20 // NR cell bandwidth
#define BANDWIDTH 20 // NR cell bandwidth
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +64,7 @@
{cell_id: 2},
],
#if NR_TDD == 1
#if TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +80,7 @@
{cell_id: 1},
],
#if NR_TDD == 1
#if TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,47 +92,34 @@
nr_cell_default: {
subcarrier_spacing: 30, /* kHz */
bandwidth: NR_BANDWIDTH, /* MHz */
bandwidth: BANDWIDTH, /* MHz */
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* force the timing TA offset (optional) */
// n_timing_advance_offset: 39936,
#if NR_TDD == 1
#if TDD == 1
tdd_ul_dl_config: {
pattern1: {
#if NR_TDD_CONFIG == 1
#if TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 0,
#elif NR_TDD_CONFIG == 2
#elif TDD_CONFIG == 2
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
#elif NR_TDD_CONFIG == 3
#elif TDD_CONFIG == 3
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 0,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -186,18 +173,14 @@
//pdsch_harq_ack_max: 2,
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
#if TDD == 1
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -241,15 +224,13 @@
dmrs_max_len: 1,
k0: 0, /* delay in slots from DCI to PDSCH */
/* delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK */
#if NR_TDD == 1
#if NR_TDD_CONFIG == 1
#if TDD == 1
#if TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
#elif TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
#elif TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* LTE cell + NR SA cell */
......@@ -8,7 +8,7 @@
#define N_RB_DL 100 // Values: 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define NR_TDD_CONFIG 2 // Values: 1, 2 or 3 NR TDD Config
#define NR_BANDWIDTH 20 // NR cell bandwidth
#define EPS_FALLBACK 0 // Values: 0 (disable EPS fallback), 1 (enable EPS fallback)
......@@ -126,9 +126,9 @@
rat: "eutra",
n_id_cell: 1,
#if TDD == 1
dl_earfcn: 40620, /* 2593 MHz (band 41) */
dl_earfcn: 40620, /* 2593 MHz (band 41) */
#else
dl_earfcn: 300, /* DL center frequency: 2140 MHz (Band 1) */
dl_earfcn: 300, /* DL center frequency: 2140 MHz (Band 1) */
#endif
cell_id: 0x1a2d001,
tac: 1,
......@@ -206,10 +206,6 @@
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
/*{
filename: "sib24.asn",
si_periodicity: 16
}*/
],
#if N_RB_DL == 6
......@@ -401,19 +397,6 @@
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
#elif NR_TDD_CONFIG == 4
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
#endif
},
},
......@@ -449,10 +432,17 @@
si_periodicity: 16,
},
{
filename: "sib5_nr.asn",
filename: "sib3_nr.asn",
si_periodicity: 16,
},
],*/
{
filename: "sib4_nr.asn",
si_periodicity: 32,
},
],
sib9: {
si_periodicity: 32
},*/
si_window_length: 40,
cell_barred: false,
......@@ -474,17 +464,13 @@
prach: {
#if NR_TDD == 1
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -535,8 +521,6 @@
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#elif NR_TDD_CONFIG == 4
k1: [ 5, 4, 12, 11, 8, 7, 7, 6 ],
#endif
#else
k1: 4,
......@@ -814,8 +798,6 @@
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
......
/* lteenb configuration file version 2021-07-12
/* lteenb configuration file version 2021-03-17
* Copyright (C) 2019-2021 Amarisoft
* NR SA FDD or TDD cell */
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define FR2 0 // Values: 0 (FR1), 1 (FR2)
#define NR_TDD_CONFIG 2 // Values: FR1: 1, 2, 3, 4 (compatible with LTE TDD config 2) FR2: 10
#define TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1, 2, 4
#define NR_BANDWIDTH 20 // NR cell bandwidth
#define BANDWIDTH 20 // NR cell bandwidth
/* define to 1 to enable periodic SRS with N_ANTENNA_UL ports. Uplink
SU-MIMO is also enabled if N_ANTENNA_UL >= 2. Not all UEs support
......@@ -58,21 +57,6 @@
nr_support: true,
rf_ports: [
{
#if FR2
/* an external frequency translator must be used for FR2 */
rf_dl_freq: 3500, /* MHz */
rf_ul_freq: 3500, /* MHz */
/* uncomment to have a higher per-UE bitrate at the expense of
higher gNB real time constraints. The default value is 4
ms. 1 ms gives the maximum per-UE bitrate. */
// rx_to_tx_latency: 1, /* ms */
#endif
},
],
/* list of cells */
cell_list: [],
......@@ -80,90 +64,53 @@
{
rf_port: 0,
cell_id: 0x01,
#if NR_TDD == 1
#if FR2
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
subcarrier_spacing: 120, /* kHz */
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
#if TDD == 1
band: 78,
dl_nr_arfcn: 632628, /* 3489.42 MHz */
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "10000000",
#endif
#else
band: 7,
dl_nr_arfcn: 536020, /* 2680 MHz */
ssb_subcarrier_spacing: 15,
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "1000",
#endif
},
], /* nr_cell_list */
nr_cell_default: {
bandwidth: NR_BANDWIDTH, /* MHz */
subcarrier_spacing: 30, /* kHz */
bandwidth: BANDWIDTH, /* MHz */
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* force the timing TA offset (optional) */
// n_timing_advance_offset: 39936,
/* subframe offset to align with the LTE TDD pattern (optional) */
// subframe_offset: 2,
#if NR_TDD == 1
#if TDD == 1
tdd_ul_dl_config: {
#if NR_TDD_CONFIG == 1
pattern1: {
#if TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 2
pattern1: {
#elif TDD_CONFIG == 2
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
},
#elif NR_TDD_CONFIG == 3
pattern1: {
#elif TDD_CONFIG == 3
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 4
pattern1: {
period: 3, /* in ms */
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2, /* in ms */
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
},
#elif NR_TDD_CONFIG == 10
/* only for FR2 */
pattern1: {
period: 0.625, /* in ms */
dl_slots: 3,
dl_symbols: 10,
ul_slots: 1,
ul_symbols: 2,
},
#endif
},
},
ssb_pos_bitmap: "10000000",
#else
ssb_pos_bitmap: "1000",
#endif
ssb_period: 20, /* in ms */
n_id_cell: 500,
......@@ -224,32 +171,19 @@
//pdsch_harq_ack_max: 2,
prach: {
#if NR_TDD == 1
#if FR2
prach_config_index: 149, /* format C0, every 4 frames */
msg1_subcarrier_spacing: 120, /* kHz */
#else
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
#if TDD == 1
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#endif
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
power_ramping_step: 4, /* in dB */
#if FR2
ra_response_window: 40, /* in slots */
#else
ra_response_window: 20, /* in slots */
#endif
restricted_set_config: "unrestricted_set",
ra_contention_resolution_timer: 64, /* in ms */
ssb_per_prach_occasion: 1,
......@@ -257,12 +191,14 @@
},
pdcch: {
n_rb_coreset0: 48,
n_symb_coreset0: 1,
search_space0_index: 0,
dedicated_coreset: {
rb_start: -1, /* -1 to have the maximum bandwidth */
l_crb: -1, /* -1 means all the bandwidth */
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
duration: 1,
precoder_granularity: "sameAsREG_bundle",
},
......@@ -284,8 +220,21 @@
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
k0: 0, /* delay in slots from DCI to PDSCH */
/* delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK */
#if TDD == 1
#if TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#endif
#else
k1: 4,
#endif
mcs_table: "qam256",
rar_mcs: 2,
si_mcs: 6,
/* If defined, force the PDSCH MCS for all UEs. Otherwise it is computed
......@@ -330,9 +279,7 @@
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#if FR2 == 0
#define USE_TRS
#endif
#define USE_TRS
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
......@@ -519,9 +466,6 @@
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if 1
......@@ -557,18 +501,10 @@
#if USE_SRS
srs: {
#if NR_TDD
#if NR_TDD_CONFIG == 1 || NR_TDD_CONFIG == 2
#if TDD_CONFIG == 1 || TDD_CONFIG == 2
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
#elif TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 10
srs_symbols: [ 0, 0, 0, 2, 0 ],
#endif
#else
srs_symbols: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
......@@ -596,8 +532,9 @@
mcs_table: "qam256", /* without transform precoding */
mcs_table_tp: "qam256", /* with transform precoding */
ldpc_max_its: 5,
/* k2 : delay in slots from DCI to PUSCH : automatic setting */
k2: 4, /* delay in slots from DCI to PUSCH */
p0_nominal_with_grant: -76,
msg3_k2: 7,
msg3_mcs: 4,
msg3_delta_power: 0, /* in dB */
beta_offset_ack_index: 9,
......
/* gNodeB test mode for PDSCH */
/* gNodeB test mode for PDSCH or PUSCH */
{
// log_options: "all.level=debug,all.max_size=0",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/gnb0.log",
log_filename: "/tmp/enb0.log",
#define FR2 0 /* 0=FR1, 1=FR2 */
#if FR2
/* FR2 parameters */
#define TDD 1
#define BANDWIDTH 50 /* MHz */
#define SCS 120 /* kHz */
#else
/* FR1 parameters */
#define TDD 0
#define BANDWIDTH 20 /* MHz */
#define SCS 30 /* kHz */
#endif
/* the signal is replicated on all the TX antennas */
#define N_ANTENNA_DL 1
/* Test models from TS 38.141-1 section 4.9.2.2 */
#define TEST_MODEL "UE-SIM"
//#define TEST_MODEL "FR1-TM1.1"
//#define TEST_MODEL "FR1-TM1.2"
//#define TEST_MODEL "FR1-TM2"
//#define TEST_MODEL "FR1-TM2a"
//#define TEST_MODEL "FR1-TM3.1"
//#define TEST_MODEL "FR1-TM3.1a"
//#define TEST_MODEL "FR1-TM3.2"
//#define TEST_MODEL "FR1-TM3.3"
#define FR2 0
/* test PUSCH (1) or of PDSCH (0) */
#define TM_PUSCH 0
#if TEST_MODEL == "UE-SIM"
#define SSB_ENABLED 1
#else
#define SSB_ENABLED 0 /* no SSB is generated */
#endif
/* RF driver configuration */
/* RF driver configuration */
#if 1
rf_driver: {
name: "sdr",
......@@ -51,25 +22,20 @@
},
tx_gain: 90.0, /* TX gain (in dB) */
rx_gain: 20.0, /* RX gain (in dB) */
#else
include "rf_driver/1chan.cfg",
#endif
// rx_gain: 30.0, /* RX gain (in dB) -> 10 dB for PHR limit with 30 dB attenuator */
#if FR2
rf_ports: [
{
#if FR2
/* an external frequency translator must be used */
rf_dl_freq: 3500,
rf_ul_freq: 3500,
#endif
#if N_ANTENNA_DL >= 2
/* use the channel simulator to replicate the signal on all the
TX antennas */
n_antenna_dl: N_ANTENNA_DL,
channel_dl: {
type: "awgn",
noise_level: -200, /* no noise by default */
},
#endif
}
],
#endif
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
......@@ -96,68 +62,30 @@
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
ssb_nr_arfcn: 2079167,
ssb_subcarrier_spacing: 120, /* kHz */
#if SSB_ENABLED
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
ssb_pos_bitmap: "0000000000000000000000000000000000000000000000000000000000000000",
#endif
subcarrier_spacing: 120, /* kHz */
bandwidth: 50, /* MHz */
#else
band: 78,
dl_nr_arfcn: 633332, /* 3499.98 MHz */
ssb_nr_arfcn: 633332,
ssb_subcarrier_spacing: 30, /* kHz */
#if SSB_ENABLED
ssb_pos_bitmap: "10000000",
#else
ssb_pos_bitmap: "00000000",
#endif
subcarrier_spacing: 30, /* kHz */
bandwidth: 20, /* MHz */
#endif
#else
band: 2,
dl_nr_arfcn: 396000, /* 1980 MHz */
ssb_nr_arfcn: 396000,
ssb_subcarrier_spacing: 15, /* kHz */
#if SSB_ENABLED
ssb_pos_bitmap: "1000",
#else
ssb_pos_bitmap: "0000",
#endif
subcarrier_spacing: 30, /* kHz */
bandwidth: 20, /* MHz */
#endif
no_ssb_allowed: true,
ssb_period: 10, /* in ms */
subcarrier_spacing: SCS, /* kHz */
bandwidth: BANDWIDTH, /* MHz */
n_antenna_dl: 1, /* 1-8 */
n_antenna_ul: 1, /* 1-8 */
n_id_cell: 500,
#if TDD
#if FR2
#if SCS == 60
tdd_ul_dl_config: {
pattern1: {
period: 1.25, /* in ms */
dl_slots: 3,
dl_symbols: 10,
ul_slots: 1,
ul_symbols: 2,
},
},
#elif SCS == 120
#if 0
tdd_ul_dl_config: {
pattern1: {
period: 1.25, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
},
},
#else
/* alternate 120 kHz TDD configuration */
tdd_ul_dl_config: {
pattern1: {
period: 0.625, /* in ms */
......@@ -167,42 +95,23 @@
ul_symbols: 2,
},
},
#endif
#endif /* SCS */
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
#if SCS == 15
tdd_ul_dl_config: {
pattern1: {
period: 5, /* in ms */
dl_slots: 3,
dl_symbols: 10,
ul_slots: 1,
ul_symbols: 2,
},
},
#elif SCS == 30
tdd_ul_dl_config: {
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
ul_symbols: 0,
},
},
#elif SCS == 60
tdd_ul_dl_config: {
pattern1: {
period: 5, /* in ms */
dl_slots: 14,
dl_symbols: 12,
ul_slots: 4,
ul_symbols: 8,
},
},
#endif /* SCS */
#endif /* !FR2 */
#endif /* TDD */
ssb_pos_bitmap: "10000000",
#endif
#else
ssb_pos_bitmap: "1000",
#endif
ssb_period: 10, /* in ms */
p_max: 10, /* dBm */
......@@ -224,7 +133,7 @@
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110,
preamble_trans_max: 7,
......@@ -241,33 +150,25 @@
},
pdcch: {
common_coreset: {
rb_start: 0,
l_crb: 6,
#if TEST_MODEL == "UE-SIM"
duration: 1,
#else
duration: 2,
#endif
precoder_granularity: "sameAsREG_bundle",
},
rb_start: -1,
l_crb: -1, /* -1 means all the bandwidth */
duration: 1,
css: {
n_candidates: [ 1, 0, 0, 0, 0 ],
n_candidates: [ 0, 4, 2, 1, 0 ],
},
rar_al_index: 0,
rar_al_index: 2,
uss: {
n_candidates: [ 1, 0, 0, 0, 0 ],
n_candidates: [ 0, 2, 1, 0, 0 ],
dci_0_1_and_1_1: true,
#if TEST_MODEL != "UE-SIM"
force_cce0: true, /* force PDCCH in CCE 0 */
#endif
},
al_index: 0,
al_index: 1,
},
pdsch: {
mapping_type: "typeA",
start_symb: 1,
n_symb: 13,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
......@@ -281,50 +182,18 @@
#endif
#else
k1: 4,
#endif /* TDD */
/* hardcoded scheduling parameters */
#if TEST_MODEL == "UE-SIM"
mcs: 28, /* 256QAM */
#elif TEST_MODEL == "FR1-TM1.1"
mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM1.2"
mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM2"
mcs: 14, /* 64QAM */
#elif TEST_MODEL == "FR1-TM2a"
mcs: 23, /* 256QAM */
#elif TEST_MODEL == "FR1-TM3.1"
mcs: 14, /* 64QAM */
#elif TEST_MODEL == "FR1-TM3.1a"
mcs: 23, /* 256QAM */
#elif TEST_MODEL == "FR1-TM3.2"
mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM3.3"
mcs: 3, /* QPSK */
#else
#error unsupported test model
#endif
/* hardcoded scheduling parameters */
mcs: 28,
rar_mcs: 2,
fer: 0,
fixed_rb_alloc: true,
#if TEST_MODEL == "UE-SIM"
rb_start: 0,
#if FR2
l_crb: 32,
#else
l_crb: 51,
#endif /* FR2 */
#elif TEST_MODEL == "FR1-TM2" || TEST_MODEL == "FR1-TM2a"
/* Note: adjust according to the bandwidth and SCS (period = 10 ms) */
rb_start: [ 0, 25, 50, 0, 25, 50, 0, 25, 50,
0, 25, 50, 0, 25, 50, 0, 25, 50,
0, 25 ],
l_crb: 1,
#else /* other test models */
rb_start: 0,
l_crb: 3,
#endif /* TEST_MODEL */
#endif
},
pucch: {
......@@ -384,47 +253,17 @@
phr_tx_power_factor_change: "dB3"
},
/* additional PDSCH with RNTI=0 and optionally RNTI=1 for boosted PRBS */
#if TEST_MODEL != "UE-SIM" && TEST_MODEL != "FR1-TM2" && TEST_MODEL != "FR1-TM2a"
tm_pdsch: {
rb_start: 3,
#if TEST_MODEL == "FR1-TM1.1"
mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM1.2"
mcs: 3, /* QPSK */
boosted_ratio: 0.4,
boosted_power: 3, /* dB */
deboosted_mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM3.1"
mcs: 14, /* 64QAM */
#elif TEST_MODEL == "FR1-TM3.1a"
mcs: 23, /* 256QAM */
#elif TEST_MODEL == "FR1-TM3.2"
mcs: 7, /* 16QAM */
boosted_ratio: 0.6,
boosted_power: -3, /* dB */
deboosted_mcs: 3, /* QPSK */
#elif TEST_MODEL == "FR1-TM3.3"
mcs: 3, /* QPSK */
boosted_ratio: 0.5,
boosted_power: -6, /* dB */
deboosted_mcs: 3, /* QPSK */
#else
#error unsupported test model
#endif
},
#endif /* !UE-SIM */
test_mode: {
#if TM_PUSCH
type: "pusch",
rnti: 0x100,
#else
type: "pdsch",
rnti: 0x100,
random_data: false, /* if true, send random data instead of zeros */
#if FR2
pdsch_harq_ack_disable: true, /* needed to use all DL slots */
#endif
#if TEST_MODEL == "UE-SIM"
rnti: 0x100,
#else
rnti: 0x2,
#endif
},
......
/* gNodeB test mode for PDSCH or PUSCH */
{
// log_options: "all.level=debug,all.max_size=0",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/enb0.log",
#define TDD 1
#define FR2 0
/* test PUSCH (1) or of PDSCH (0) */
#define TM_PUSCH 0
/* RF driver configuration */
#if 1
rf_driver: {
name: "sdr",
/* list of devices. 'dev0' is always the master. */
args: "dev0=/dev/sdr0",
/* synchronisation source: none, internal, gps, external (default = none) */
// sync: "gps",
},
tx_gain: 60.0, /* TX gain (in dB) */
rx_gain: 20.0, /* RX gain (in dB) */
#else
include "rf_driver/1chan.cfg",
#endif
// rx_gain: 30.0, /* RX gain (in dB) -> 10 dB for PHR limit with 30 dB attenuator */
#if FR2
rf_ports: [
{
/* an external frequency translator must be used */
rf_dl_freq: 3500,
rf_ul_freq: 3500,
}
],
#endif
/* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */
mme_list: [ ],
/* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "127.0.1.1",
/* PLMN */
mcc: "001",
mnc: "01",
/* list of cells */
cell_list: [
], /* cell_list */
/* NR cells */
nr_cell_list: [
{
rf_port: 0,
cell_id: 0x02,
#if TDD
#if FR2
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
ssb_nr_arfcn: 2079167,
subcarrier_spacing: 120, /* kHz */
bandwidth: 50, /* MHz */
#else
band: 78,
dl_nr_arfcn: 632628, /* 3489.42 MHz */
//dl_nr_arfcn: 633332, /* 3499.98 MHz */
//ssb_nr_arfcn: 633332,
subcarrier_spacing: 30, /* kHz */
bandwidth: 20, /* MHz */
#endif
#else
band: 2,
dl_nr_arfcn: 396000, /* 1980 MHz */
ssb_nr_arfcn: 396000,
ssb_subcarrier_spacing: 15, /* kHz */
subcarrier_spacing: 30, /* kHz */
bandwidth: 20, /* MHz */
#endif
n_antenna_dl: 1, /* 1-8 */
n_antenna_ul: 1, /* 1-8 */
n_id_cell: 500,
#if TDD
#if FR2
tdd_ul_dl_config: {
pattern1: {
period: 0.625, /* in ms */
dl_slots: 3,
dl_symbols: 10,
ul_slots: 1,
ul_symbols: 2,
},
},
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
tdd_ul_dl_config: {
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 0,
},
},
ssb_pos_bitmap: "10000000",
#endif
#else
ssb_pos_bitmap: "1000",
#endif
ssb_period: 10, /* in ms */
p_max: 10, /* dBm */
root_sequence_index: 1, /* PRACH root sequence index */
dmrs_type_a_pos: 2,
sr_period: 0,
prach: {
#if TDD
#if FR2
prach_config_index: 149, /* format B4, subframe 9 */
msg1_subcarrier_spacing: 120, /* kHz */
#else
prach_config_index: 160, /* format B4, subframe 9 */
msg1_subcarrier_spacing: 30, /* kHz */
#endif
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: 0,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110,
preamble_trans_max: 7,
power_ramping_step: 4,
ra_response_window: 20,
restricted_set_config: "unrestricted_set",
ra_contention_resolution_timer: 64, /* in ms */
ssb_per_prach_occasion: 1,
#if FR2
cb_preambles_per_ssb: 4,
#else
cb_preambles_per_ssb: 8,
#endif
},
pdcch: {
rb_start: -1,
l_crb: -1, /* -1 means all the bandwidth */
duration: 1,
css: {
n_candidates: [ 0, 4, 2, 1, 0 ],
},
rar_al_index: 2,
uss: {
n_candidates: [ 0, 2, 1, 0, 0 ],
dci_0_1_and_1_1: true,
},
al_index: 1,
},
pdsch: {
mapping_type: "typeA",
start_symb: 1,
n_symb: 13,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
mcs_table: "qam256",
k0: 0, /* delay in slots from DCI to PDSCH */
#if TDD
#if FR2
k1: [ 14, 13, 12, 11],
#else
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#endif
#else
k1: 4,
#endif
/* hardcoded scheduling parameters */
mcs: 28,
rar_mcs: 2,
fer: 0,
fixed_rb_alloc: true,
rb_start: 0,
#if FR2
l_crb: 32,
#else
l_crb: 51,
#endif
},
pucch: {
pucch_group_hopping: "neither",
hopping_id: -1, /* -1 = n_cell_id */
p0_nominal: -90,
pucch1: {
n_cs: 3,
n_occ: 3,
},
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
max_code_rate: 0.25,
},
},
pusch: {
mapping_type: "typeA",
beta_offset_ack_index: 9,
n_symb: 14,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
tf_precoding: false,
mcs_table: "qam256", /* without transform precoding */
mcs_table_tp: "qam256", /* with transform precoding */
ldpc_max_its: 5,
#if FR2
k2: 11, /* delay in slots from DCI to PUSCH */
msg3_k2: 14,
#else
k2: 4, /* delay in slots from DCI to PUSCH */
msg3_k2: 6,
#endif
msg3_mcs: 5,
msg3_delta_power: 0, /* in dB */
p0_nominal_with_grant: -76,
/* hardcoded scheduling parameters */
mcs: 27,
},
/* MAC configuration */
mac_config: {
msg3_max_harq_tx: 5,
ul_max_harq_tx: 1, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
ul_max_consecutive_retx: 30, /* disconnect UE if reached */
dl_max_consecutive_retx: 30, /* disconnect UE if reached */
periodic_bsr_timer: 20,
retx_bsr_timer: 320,
periodic_phr_timer: 500,
prohibit_phr_timer: 200,
phr_tx_power_factor_change: "dB3"
},
test_mode: {
#if TM_PUSCH
type: "pusch",
rnti: 0x100,
#else
type: "pdsch",
rnti: 0x100,
random_data: false, /* if true, send random data instead of zeros */
#if FR2
pdsch_harq_ack_disable: true, /* needed to use all DL slots */
#endif
#endif
},
cipher_algo_pref: [],
integ_algo_pref: [2, 1],
drb_config: "drb_nr.cfg",
},
], /* nr_cell_list */
}
This diff is collapsed.
/* Parameters for SDR device version 2021-07-12
/* Parameters for SDR device version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-07-12
/* Parameters for SDR device version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-07-12
/* Parameters for SDR device version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-07-12
/* Parameters for SDR device version 2021-03-17
* Copyright (C) 2015-2021 Amarisoft
*/
......
......@@ -8,10 +8,9 @@
{
carrierFreq-r15 632544,
subcarrierSpacingSSB-r15 kHz30,
cellReselectionPriority-r15 7,
threshX-High-r15 0,
threshX-Low-r15 0,
q-RxLevMin-r15 -40,
q-RxLevMin-r15 -70,
p-MaxNR-r15 10,
deriveSSB-IndexFromCell-r15 TRUE
}
......
......@@ -14,7 +14,7 @@
},
cellReselectionServingFreqInfo {
threshServingLowP 0,
cellReselectionPriority 6
cellReselectionPriority 4
},
intraFreqCellReselectionInfo {
q-RxLevMin -70,
......@@ -24,7 +24,7 @@
periodicityAndOffset sf20: 0,
duration sf1
},
ssb-ToMeasure mediumBitmap: '10000000'B,
ssb-ToMeasure shortBitmap: '1000'B,
deriveSSB-IndexFromCell TRUE
}
}
......
......@@ -9,10 +9,9 @@
carrierFreq 300,
allowedMeasBandwidth mbw100,
presenceAntennaPort1 TRUE,
cellReselectionPriority 7,
threshX-High 0,
threshX-Low 0,
q-RxLevMin -40,
q-RxLevMin -70,
q-QualMin -34,
p-MaxEUTRA 10
}
......
#!/bin/bash
ue_id="$1" # UE id
duration="$2" # Sim duration
shift
shift
function end
{
exit 0
}
trap end INT TERM
echo "ip netns exec $ue_id $@"
ip netns exec $ue_id $@
sdr
\ No newline at end of file
#!/bin/bash
name="$1"
path=$(dirname "$0")
link="rf_driver"
function help
{
cur=$(readlink "$path/$link")
echo "Usage: $(basename $0)"
echo -e " <type>: " $(cd $path && find . -maxdepth 1 -type d | grep "./" | cut -d '/' -f2 | sort | sed -e "s/^${cur}$/\\\\033[32m${cur}\\\\033[0m/")
exit 1
}
if [ "$name" = "" ] ; then
help
fi
if [ ! -e "$path/$name" ] ; then
echo "$name rf driver does not exist"
help
exit 1
fi
rm -f "$path/$link"
ln -s "$name" "$path/$link"
echo "RF frontend $name selected"
/* UE simulator configuration */
{
"bind_addr": "127.1.0.0",
}
/* Parameters for SDR device version 2021-02-26
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
name: "sdr",
/* list of devices. 'dev0' is always the master. */
args: "dev0=/dev/sdr0",
/* synchronisation source: internal, gps, external (default = internal) */
// sync: "gps",
},
tx_gain: 90.0, /* TX gain (in dB) */
rx_gain: 60.0, /* RX gain (in dB) */
/* Parameters for SDR device version 2021-02-26
* Copyright (C) 2015-2021 Amarisoft
*/
#if !defined(N_CELL)
#define N_CELL 1
#endif
#if N_ANTENNA_DL <= 2
#define N_CHAN N_CELL
#else
#define N_CHAN 2*N_CELL
#endif
rf_driver: {
name: "sdr",
/* list of devices. 'dev0' is always the master. */
#if N_CHAN == 1
args: "dev0=/dev/sdr0",
#elif N_CHAN == 2
args: "dev0=/dev/sdr0,dev1=/dev/sdr1",
#elif N_CHAN == 3
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2",
#elif N_CHAN == 4
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2,dev3=/dev/sdr3",
#elif N_CHAN == 6
args: "dev0=/dev/sdr0,dev1=/dev/sdr1,dev2=/dev/sdr2,dev3=/dev/sdr3,dev4=/dev/sdr4,dev5=/dev/sdr5",
#else
args: "",
#endif
/* synchronisation source: internal, gps, external (default = internal) */
// sync: "gps",
rx_antenna:"rx", // force to use the RX connector in TDD as RX antenna
},
#if 0
tx_pad_duration:300,
#endif
tx_gain: 56.0, /* TX gain (in dB) */
rx_gain: 50.0, /* RX gain (in dB) */
/* lteue configuration file version 2021-02-26
* Copyright (C) 2015-2021 Amarisoft
*/
#define N_CELL 2 // should not be changed, used in config.cfg
#define TDD 0 // Values: 0 (FDD), 1(TDD)
#define CELL_BANDWIDTH 5 // Values: 1.4 (1.4MHz), 3 (3MHz), 5 (5MHz), 10 (10MHz), 15 (15MHz), 20 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define UE_COUNT 1 // number of simulated UEs
{
// log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
/* Each cell group must define cells of same type (lte, catm, nbiot or nr)
* Cells of same type can be spread accross multiple groups
*/
cell_groups: [{
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
multi_ue: true,
cells: [
{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* DL center frequency: 2593 MHz (band 41) */
#else
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
global_timing_advance: -1, // -1: use the timing advance from the first received RAR
},
{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 39150, /* DL center frequency: 2350 MHz (band 40) */
#else
dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* must be provided if multi_ue = true */
global_timing_advance: -1, // -1: use the timing advance from the first received RAR
}
],
/* If case your system have a high SNR and you are running high number of
* UEs, enable this option to optimize PDCCH decoding and save CPU
*/
#if UE_COUNT > 10
pdcch_decode_opt: true,
pdcch_decode_opt_threshold: 0.1,
#endif
}],
ue_list: [
{
"imsi": "001010123456789",
"K": "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 13,
ue_category: 12,
forced_cqi: 15,
forced_ri: N_ANTENNA_DL,
ue_count: UE_COUNT,
/* If enabled, will try to use external SIM card using libpcsclite */
//external_sim: true,
/* Enable it to create a TUN interface for each UE PDN */
//tun_setup_script: "ue-ifup",
},
],
}
/* lteue configuration file version 2021-02-26
* Copyright (C) 2015-2021 Amarisoft
*/
#define N_CELL 3 // should not be changed, used in config.cfg
#define TDD 0 // Values: 0 (FDD), 1(TDD)
#define CELL_BANDWIDTH 5 // Values: 1.4 (1.4MHz), 3 (3MHz), 5 (5MHz), 10 (10MHz), 15 (15MHz), 20 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define UE_COUNT 1 // number of simulated UEs
{
// log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
/* Each cell group must define cells of same type (lte, catm, nbiot or nr)
* Cells of same type can be spread accross multiple groups
*/
cell_groups: [{
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
multi_ue: true,
cells: [
{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* DL center frequency: 2593 MHz (band 41) */
#else
dl_earfcn: 3350, /* DL center frequency: 2680 MHz (Band 7) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
global_timing_advance: -1, // -1: use the timing advance from the first received RAR
},
{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 39150, /* DL center frequency: 2350 MHz (band 40) */
#else
dl_earfcn: 1575, /* DL center frequency: 1842.5 MHz (Band 3) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* must be provided if multi_ue = true */
global_timing_advance: -1, // -1: use the timing advance from the first received RAR
},
{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 46090, /* DL center frequency: 753.0 (band 44) */
#else
dl_earfcn: 300, /* DL center frequency: 2140.0 MHz (Band 1) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
global_timing_advance: -1, // -1: use the timing advance from the first received RAR
},
],
/* If case your system have a high SNR and you are running high number of
* UEs, enable this option to optimize PDCCH decoding and save CPU
*/
#if UE_COUNT > 10
pdcch_decode_opt: true,
pdcch_decode_opt_threshold: 0.1,
#endif
}],
ue_list: [
{
"imsi": "001010123456789",
"K": "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 13,
ue_category: 12,
forced_cqi: 15,
forced_ri: N_ANTENNA_DL,
ue_count: UE_COUNT,
/* If enabled, will try to use external SIM card using libpcsclite */
//external_sim: true,
/* Enable it to create a TUN interface for each UE PDN */
//tun_setup_script: "ue-ifup",
},
],
}
/* Cat M1 UE simulator configuration file version 2021-02-26
* Copyright (C) 2015-2021 Amarisoft
*/
#define TDD 0 // Values: 0 (FDD), 1(TDD)
#define CELL_BANDWIDTH 5 // Values: 1.4 (1.4MHz), 3 (3MHz), 5 (5MHz), 10 (10MHz), 15 (15MHz), 20 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1, 2
#define UE_COUNT 1 // number of simulated UEs
{
// log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [
{
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
multi_ue: true,
group_type: "cat_m1",
cells: [{
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* 2593 MHz (band 41) */
#else
dl_earfcn: 3350, /* 2680 MHz (Band 7) */
#endif
n_antenna_dl: N_ANTENNA_DL, /* number of downlink antennas */
n_antenna_ul: N_ANTENNA_UL,
/* must be provided if multi_ue = true */
// global_timing_advance: -1,
}]
}
],
ue_list: [
{
/* USIM data */
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 13,
ue_category: -1,
ue_count: UE_COUNT,
/* If enabled, will try to use external SIM card using libpcsclite */
//external_sim: true,
/* Enable it to create a TUN interface for each UE PDN */
//tun_setup_script: "ue-ifup",
}
],
}
#!/bin/bash
ue_id="$1" # UE ID
pdn_id="$2" # PDN unique id (start from 0)
ifname="$3" # Interface name
ipv4_addr="$4" # IPv4 address
ipv4_dns="$5" # IPv4 DNS
ipv6_local_addr="$6" # IPv6 local address
ipv6_dns="$7" # IPv6 DNS
old_link_local=""
if [ "$pdn_id" = "0" ] ; then
if [ -e /var/run/netns/$ue_id ] ; then
ip netns del $ue_id
fi
ip netns add $ue_id
fi
echo "Configure $ue_id/$pdn_id, tun=$ifname, ip=$ipv4_addr, dns=$ipv4_dns"
# Set DNS ?
if [ "$ipv4_dns" != "" ] || [ "$ipv6_dns" != "" ] ; then
mkdir -p /etc/netns/$ue_id
rm -f /etc/netns/$ue_id/resolv.conf
if [ "$ipv4_dns" != "" ] ; then
echo "nameserver $ipv4_dns" >> /etc/netns/$ue_id/resolv.conf
fi
if [ "$ipv6_dns" != "" ] ; then
echo "nameserver $ipv6_dns" >> /etc/netns/$ue_id/resolv.conf
fi
else
rm -f /etc/netns/$ue_id/resolv.conf
fi
ifname1="pdn$pdn_id"
ip link set dev $ifname name $ifname1 netns $ue_id
ifname="$ifname1"
if [ "$ipv6_local_addr" != "" ] ; then
ip netns exec $ue_id bash -c "echo '0' > /proc/sys/net/ipv6/conf/$ifname/disable_ipv6"
ip netns exec $ue_id bash -c "echo '1' > /proc/sys/net/ipv6/conf/$ifname/accept_ra"
ip netns exec $ue_id bash -c "echo '1' > /proc/sys/net/ipv6/conf/$ifname/router_solicitation_delay"
ip netns exec $ue_id bash -c "echo '1' > /proc/sys/net/ipv6/conf/$ifname/autoconf"
else
ip netns exec $ue_id bash -c "echo '1' > /proc/sys/net/ipv6/conf/$ifname/disable_ipv6"
fi
if [ "$pdn_id" = "0" ] ; then
ip netns exec $ue_id ifconfig lo up
fi
ip netns exec $ue_id ifconfig $ifname up
if [ "$ipv4_addr" != "" ] ; then
ip netns exec $ue_id ifconfig $ifname $ipv4_addr/24
if [ "$pdn_id" = "0" ] ; then
ip netns exec $ue_id ip route add default via $ipv4_addr
fi
fi
if [ "$ipv6_local_addr" != "" ] ; then
old_link_local=`ip netns exec $ue_id ip addr show dev $ifname | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'`
if [ "$old_link_local" != "" ] ; then
ip netns exec $ue_id ifconfig $ifname inet6 del $old_link_local/64
fi
ip netns exec $ue_id ifconfig $ifname inet6 add $ipv6_local_addr/64
fi
/* UE simulator configuration */
{
// log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
cell_groups: [
{
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
multi_ue: false,
cells: [
{
bandwidth: 5,
dl_earfcn: 3350,
n_antenna_dl: 1,
n_antenna_ul: 1,
}
],
}
],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
as_release: 8,
ue_category: 3,
/* USIM data */
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [{
event: "power_on",
start_time: 0,
}, {
event: "ext_app",
start_time: 1,
end_time: 6,
prog: "ext_app.sh",
args: ["iperf", "-c 192.168.2.1", "-i 1", "-d", "-t 5"]
}, {
event: "power_off",
start_time: 5,
}]
}
],
}
ue_list: [
{
"imsi": "001010123456789",
"K": "00112233445566778899aabbccddeeff",
"imeisv": "8682430000000101",
/* UE capabilities */
as_release: 13,
ue_category: 12,
forced_cqi: 15,
forced_ri: N_ANTENNA_DL,
ue_count: UE_COUNT,
/* If enabled, will try to use external SIM card using libpcsclite */
//external_sim: true,
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
apn: "internet",
sim_events: [
{
"start_time": 3,
"event": "power_on"
},
{
"start_time": 3000,
"event": "power_off"
}
]
}],
/* UE simulator configuration file version 2021-02-26
* NB-IoT example
* Copyright (C) 2016-2021 Amarisoft
*/
#define CELL_BANDWIDTH 1.4 // Values: 1.4 (1.4MHz)
#define NB_NON_ANCHOR 0 // Values: 0 (non anchor carrier disabled), 1 (non anchor carrier enabled)
#define NB_TWO_HARQ 0 // Values: 0 (two harq process disabled), 1 (two harq process enabled)
#define N_ANTENNA_DL 1 // Values: 1, 2
#define N_ANTENNA_UL 1 // Values: 1, 2
{
// log_options: "all.level=debug,all.max_size=32",
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [
{
group_type: "nbiot",
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
multi_ue: true,
cells: [{
bandwidth: CELL_BANDWIDTH,
dl_earfcn: 3359, /* 2680.9 MHz (Band 7) */
ul_carrier_freq_offset: 0,
/* must set ul_earfcn and ul_carrier_freq_offset if the UL/DL
spacing is different from the default one of the selected band */
n_antenna_dl: N_ANTENNA_DL, /* number of downlink antennas */
n_antenna_ul: N_ANTENNA_UL,
/* must be provided if multi_ue = true */
global_timing_advance: -1,
}]
}
],
ue_list: [
{
/* UE capabilities */
as_release: 14,
ue_category: "nb2", /* Category NB1 */
/* if true, enable control plane CIoT optimization. */
cp_ciot_opt: false,
/* USIM data */
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
#if NB_NON_ANCHOR == 1
multi_carrier : true,
#endif
multi_tone : true,
#if NB_TWO_HARQ == 1
two_harq : true,
#endif
/* If enabled, will try to use external SIM card using libpcsclite */
//external_sim: true,
/* Enable it to create a TUN interface for each UE PDN */
//tun_setup_script: "ue-ifup",
}
],
}
/* UE simulator configuration file version 2021-02-26
* LTE / 2CC 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_CELL 3
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define LTE_BANDWIDTH 20 // Values: 1.4 (1.4MHz), 5 (5MHz), 10 (10MHz), 15 (15MHz), 20 (20MHz)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1 (SISO), 2 (diversity 2RX), 4 (diversity 4RX)
#define NR_BANDWIDTH 20 // NR cell bandwidth.
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "lte",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: LTE_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* 2593 MHz (band 41) */
#else
dl_earfcn: 300, /* DL center frequency: 2140 MHz (Band 1) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}]
}, {
group_type: "nr",
multi_ue: true,
cells: [
{
rf_port: 1,
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
ssb_nr_arfcn: 620928,
#else
band: 5,
dl_nr_arfcn: 176300,
ssb_nr_arfcn: 175250,
#endif
bandwidth: NR_BANDWIDTH,
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
},
{
rf_port: 2,
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
ssb_nr_arfcn: 626976,
#else
band: 5,
dl_nr_arfcn: 178000,
ssb_nr_arfcn: 176890,
#endif
bandwidth: NR_BANDWIDTH,
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
},
],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: 13,
half_duplex: false,
forced_cqi: 15,
forced_ri: N_ANTENNA_DL,
// nr_forced_cqi: 15,
// nr_forced_ri: N_ANTENNA_DL,
nr_support: true,
}],
}
/* UE simulator configuration file version 2021-02-26
* 2CC 5G StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_CELL 2
#define NR_TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define N_ANTENNA_DL 1 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1 (SISO), 2 (diversity 2RX), 4 (diversity 4RX)
#define NR_BANDWIDTH 20 // NR cell bandwidth.
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [
{
rf_port: 0,
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
ssb_nr_arfcn: 621216,
#else
band: 5,
dl_nr_arfcn: 176300,
ssb_nr_arfcn: 176210,
#endif
bandwidth: NR_BANDWIDTH,
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
},
{
rf_port: 1,
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
ssb_nr_arfcn: 627264,
#else
band: 5,
dl_nr_arfcn: 178000,
ssb_nr_arfcn: 177850,
#endif
bandwidth: NR_BANDWIDTH,
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
},
],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: "nr",
// nr_forced_cqi: 15,
// nr_forced_ri: N_ANTENNA_DL,
}],
}
/* UE simulator configuration file version 2021-02-26
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define NR_TDD 1
#define TDD 0
#define N_CELL 2
#define LTE_BANDWIDTH 20
#define NR_BANDWIDTH 100
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "lte",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: LTE_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* 2593 MHz (band 41) */
#else
dl_earfcn: 300, /* DL center frequency: 2140 MHz (Band 1) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}]
}, {
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 1,
#if NR_TDD == 1
band: 78,
bandwidth: NR_BANDWIDTH,
//dl_nr_arfcn: 632628,
//ssb_nr_arfcn: 632256,
dl_nr_arfcn: 636666, /* 3550 MHz */
ssb_nr_arfcn: 636666,
#else
band: 5,
bandwidth: NR_BANDWIDTH,
dl_nr_arfcn: 176300, /* 881.5 MHz */
ssb_nr_arfcn: 175250, /* 3489.42 MHz */
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: 6,
half_duplex: false,
forced_cqi: 15,
forced_ri: 2,
// nr_forced_cqi: 15,
// nr_forced_ri: 2,
nr_support: true,
}],
}
/* UE simulator configuration file version 2021-02-26
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 4
#define NR_TDD 1
#define TDD 0
#define N_CELL 2
#define LTE_BANDWIDTH 20
#define NR_BANDWIDTH 100
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "lte",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: LTE_BANDWIDTH,
#if TDD == 1
dl_earfcn: 40620, /* 2593 MHz (band 41) */
#else
dl_earfcn: 300, /* DL center frequency: 2140 MHz (Band 1) */
#endif
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}]
}, {
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 1,
#if NR_TDD == 1
band: 78,
bandwidth: NR_BANDWIDTH,
dl_nr_arfcn: 632628,
ssb_nr_arfcn: 632256,
#else
band: 5,
bandwidth: NR_BANDWIDTH,
dl_nr_arfcn: 176300, /* 881.5 MHz */
ssb_nr_arfcn: 175250, /* 3489.42 MHz */
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: 6,
half_duplex: false,
forced_cqi: 15,
forced_ri: 2,
// nr_forced_cqi: 15,
// nr_forced_ri: 2,
nr_support: true,
}],
}
/* UE simulator configuration file version 2021-02-26
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 2
#define TDD 1
#define CELL_BANDWIDTH 20
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
//dl_nr_arfcn: 632628,
dl_nr_arfcn: 646670, /* 3700.05 Mghz (band n78) */
//ssb_nr_arfcn: 646670,
ssb_nr_arfcn: 646656,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
}],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: "nr",
// nr_forced_cqi: 15,
// nr_forced_ri: 1,
}],
}
/* UE simulator configuration file version 2021-02-26
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 2
#define TDD 1
#define CELL_BANDWIDTH 20
log_options: "all.level=debug,all.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/config.cfg",
cell_groups: [{
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn: 632628,
ssb_nr_arfcn: 632544,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 2,
}],
}],
ue_list: [{
imsi: "001010123456789",
K: "00112233445566778899aabbccddeeff",
/* UE capabilities */
as_release: 15,
ue_category: "nr",
// nr_forced_cqi: 15,
// nr_forced_ri: 1,
}],
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
ue.5G-BANDN78-lower-TOMO.cfg
\ No newline at end of file
This diff is collapsed.
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