Commit 9245ffef authored by Joanne Hugé's avatar Joanne Hugé

Change folder structure

parent 02fbe72e
......@@ -23,6 +23,22 @@
},
*/
},
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,
......@@ -49,6 +65,14 @@
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,
......@@ -73,6 +97,14 @@
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,
......@@ -97,6 +129,13 @@
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 */
......@@ -133,6 +172,23 @@
},
*/
},
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,
......@@ -159,6 +215,14 @@
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,
......@@ -185,6 +249,14 @@
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,
......@@ -210,6 +282,13 @@
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 */
......@@ -237,6 +316,13 @@
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 */
......@@ -264,6 +350,14 @@
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,
......@@ -288,6 +382,13 @@
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 */
......@@ -353,6 +454,13 @@
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 */
......@@ -380,6 +488,13 @@
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-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file example for Category M1 UEs
* version 2021-03-17
* version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -461,6 +461,7 @@
//br_dl_sf_bitmap : "0001110000011100000111000001110000011100",
},
edrx: true
},
#endif
}
/* lteenb configuration file example for Category M1 UEs
* version 2021-03-17
* version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -352,5 +352,7 @@
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-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
{
......
/* lteenb configuration file example for NB-IoT (standalone mode)
* version 2021-03-17
* version 2021-07-12
* Copyright (C) 2016-2021 Amarisoft
*/
{
......
/* lteenb configuration file example for NB-IoT (in-band, guard-band and standalone mode)
* version 2021-03-17
* version 2021-07-12
* Copyright (C) 2016-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* 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 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 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[,...]
......@@ -51,6 +52,15 @@
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",
......@@ -65,12 +75,17 @@
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: 40620, /* 2593 MHz (band 41) */
//dl_earfcn: 42590, /* 3500 MHz (band 42) */
dl_earfcn: 38350, /* 1890 MHz (band 39) */
#else
//dl_earfcn: 300, /* DL center frequency: 2132 MHz (Band 1) */
//dl_earfcn: 900, /* DL center frequency: 1960 MHz (Band 2) */
......@@ -112,8 +127,7 @@
cell_barred: false, /* SIB1.cellBarred-r13 */
intra_freq_reselection: true, /* SIB1.intraFreqReselection */
q_rx_lev_min: -70, /* SIB1.q-RxLevMin */
p_max: 23, /* maximum power allowed for the UE (dBm) */
manual_ref_signal_power: true,
p_max: 10, /* maximum power allowed for the UE (dBm) */
si_window_length: 40, /* ms */
sib_sched_list: [
{
......@@ -197,8 +211,8 @@
computed from the last received SRS/PUSCH. */
// pusch_mcs: 18,
dl_256qam: false,
ul_64qam: false,
dl_256qam: true,
ul_64qam: true,
/* Scheduling request period (ms). Must be >= 40 for HD-FDD */
sr_period: 20,
......@@ -254,7 +268,7 @@
/* dynamic power control */
dpc: true,
dpc_pusch_snr_target: 25,
dpc_pucch_snr_target: 10,
dpc_pucch_snr_target: 20,
/* RRC/UP ciphering algorithm preference. EEA0 is always the last. */
cipher_algo_pref: [],
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* 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 or 3
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#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,6 +356,19 @@
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
},
},
......@@ -381,13 +394,17 @@
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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -432,6 +449,8 @@
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-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2019-2021 Amarisoft
* NR SA 2CC FDD or TDD cell */
#define TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#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 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 BANDWIDTH 20 // NR cell bandwidth
#define NR_BANDWIDTH 20 // NR cell bandwidth
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +64,7 @@
{cell_id: 2},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +80,7 @@
{cell_id: 1},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,34 +92,47 @@
nr_cell_default: {
subcarrier_spacing: 30, /* kHz */
bandwidth: BANDWIDTH, /* MHz */
bandwidth: NR_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 TDD == 1
#if NR_TDD == 1
tdd_ul_dl_config: {
pattern1: {
#if TDD_CONFIG == 1
#if NR_TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 0,
#elif TDD_CONFIG == 2
#elif NR_TDD_CONFIG == 2
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
#elif TDD_CONFIG == 3
#elif NR_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
},
},
......@@ -173,14 +186,18 @@
//pdsch_harq_ack_max: 2,
prach: {
#if TDD == 1
#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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -223,13 +240,15 @@
dmrs_max_len: 1,
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
#if NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif TDD_CONFIG == 2
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif TDD_CONFIG == 3
#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-03-17
/* lteenb configuration file version 2021-07-12
* 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
/* define it to allow SA NR (otherwise NSA NR) */
#define ALLOW_SA
/* Values: 0 (NSA NR), 1 (SA and NSA NR) */
#define ALLOW_SA 1
/* 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,
#ifdef ALLOW_SA
#if ALLOW_SA
gnb_id_bits: 28,
gnb_id: 0x12345,
......@@ -93,7 +93,7 @@
nr_cell_list: [
{
rf_port: 0,
#ifdef ALLOW_SA
#if ALLOW_SA
plmn_list: [ {
tac: 100,
plmn: "00101",
......@@ -275,7 +275,7 @@
ssb_pos_bitmap: "0001",
ssb_period: 20, /* in ms */
#ifdef ALLOW_SA
#if ALLOW_SA
cell_barred: false,
intra_freq_reselection: true,
q_rx_lev_min: -70,
......@@ -313,7 +313,7 @@
},
pdcch: {
#ifdef ALLOW_SA
#if 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,
#ifdef ALLOW_SA
#if ALLOW_SA
si_mcs: 6,
#endif
/* If defined, force the PDSCH MCS for all UEs. Otherwise it is computed
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* 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 or 3
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#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,6 +388,19 @@
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
},
},
......@@ -413,13 +426,17 @@
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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -466,6 +483,8 @@
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,
......@@ -745,6 +764,8 @@
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-03-17
/* lteenb configuration file version 2021-07-12
* 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 NR_TDD_CONFIG 2 // Values: 1, 2 or 3
#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 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.
......@@ -14,6 +15,10 @@
// 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",
......@@ -63,6 +68,16 @@
#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
},
],
......@@ -80,6 +95,18 @@
/* 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 */
......@@ -108,13 +135,32 @@
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 */
......@@ -332,45 +378,79 @@
},
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: {
pattern1: {
#if NR_TDD_CONFIG == 1
pattern1: {
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,
#endif
},
#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 */
......@@ -386,18 +466,31 @@
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: 0,
msg1_frequency_start: -1,
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,
......@@ -405,12 +498,23 @@
},
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: 1,
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
precoder_granularity: "sameAsREG_bundle",
},
#endif
css: {
n_candidates: [ 0, 0, 1, 0, 0 ],
},
......@@ -425,8 +529,6 @@
pdsch: {
mapping_type: "typeA",
start_symb: 1,
n_symb: 13,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
......@@ -439,6 +541,10 @@
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,
......@@ -447,6 +553,9 @@
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, */
......@@ -489,7 +598,9 @@
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#if FR2 == 0
#define USE_TRS
#endif
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
......@@ -676,6 +787,9 @@
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if 1
......@@ -709,15 +823,20 @@
#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: [
{
......@@ -745,9 +864,14 @@
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 */
p0_nominal_with_grant: -76,
msg3_k2: 7,
#endif
p0_nominal_with_grant: -76,
msg3_mcs: 4,
msg3_delta_power: 0, /* in dB */
beta_offset_ack_index: 9,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-07-12
* 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 or 3
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#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,6 +98,7 @@
#else
band: 7,
dl_nr_arfcn: 528000, /* 2640 MHz */
ssb_subcarrier_spacing: 15,
#endif
ncell_list: [
......@@ -114,8 +115,9 @@
band: 78,
dl_nr_arfcn: 640000, /* 3600 MHz */
#else
band: 5,
band: 7,
dl_nr_arfcn: 532000, /* 2660 MHz */
ssb_subcarrier_spacing: 15,
#endif
ncell_list: [
......@@ -366,6 +368,19 @@
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
},
},
......@@ -391,13 +406,17 @@
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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -444,6 +463,8 @@
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,
......@@ -723,6 +744,8 @@
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 TDD 0 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#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 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 BANDWIDTH 20 // NR cell bandwidth
#define NR_BANDWIDTH 20 // NR cell bandwidth
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +64,7 @@
{cell_id: 2},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +80,7 @@
{cell_id: 1},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,34 +92,47 @@
nr_cell_default: {
subcarrier_spacing: 30, /* kHz */
bandwidth: BANDWIDTH, /* MHz */
bandwidth: NR_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 TDD == 1
#if NR_TDD == 1
tdd_ul_dl_config: {
pattern1: {
#if TDD_CONFIG == 1
#if NR_TDD_CONFIG == 1
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 0,
#elif TDD_CONFIG == 2
#elif NR_TDD_CONFIG == 2
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
#elif TDD_CONFIG == 3
#elif NR_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
},
},
......@@ -173,14 +186,18 @@
//pdsch_harq_ack_max: 2,
prach: {
#if TDD == 1
#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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -224,13 +241,15 @@
dmrs_max_len: 1,
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
#if NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif TDD_CONFIG == 2
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif TDD_CONFIG == 3
#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-03-17
/* lteenb configuration file version 2021-07-12
* 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 or 3 NR TDD Config
#define NR_TDD_CONFIG 2 // Values: 1, 2, 3 or 4 (compatible with LTE TDD config 2)
#define NR_BANDWIDTH 20 // NR cell bandwidth
#define EPS_FALLBACK 0 // Values: 0 (disable EPS fallback), 1 (enable EPS fallback)
......@@ -206,6 +206,10 @@
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
/*{
filename: "sib24.asn",
si_periodicity: 16
}*/
],
#if N_RB_DL == 6
......@@ -397,6 +401,19 @@
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
},
},
......@@ -432,17 +449,10 @@
si_periodicity: 16,
},
{
filename: "sib3_nr.asn",
filename: "sib5_nr.asn",
si_periodicity: 16,
},
{
filename: "sib4_nr.asn",
si_periodicity: 32,
},
],
sib9: {
si_periodicity: 32
},*/
],*/
si_window_length: 40,
cell_barred: false,
......@@ -464,13 +474,17 @@
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: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110, /* in dBm */
preamble_trans_max: 7,
......@@ -521,6 +535,8 @@
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,
......@@ -798,6 +814,8 @@
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-03-17
/* lteenb configuration file version 2021-07-12
* Copyright (C) 2019-2021 Amarisoft
* NR SA FDD or TDD cell */
#define TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define TDD_CONFIG 2 // Values: 1, 2 or 3
#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 N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 1 // Values: 1, 2, 4
#define BANDWIDTH 20 // NR cell bandwidth
#define NR_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
......@@ -57,6 +58,21 @@
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: [],
......@@ -64,53 +80,90 @@
{
rf_port: 0,
cell_id: 0x01,
#if TDD == 1
#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: 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: {
subcarrier_spacing: 30, /* kHz */
bandwidth: BANDWIDTH, /* MHz */
bandwidth: NR_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 TDD == 1
#if NR_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 TDD_CONFIG == 2
},
#elif NR_TDD_CONFIG == 2
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
#elif TDD_CONFIG == 3
},
#elif NR_TDD_CONFIG == 3
pattern1: {
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
#endif
},
#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,
......@@ -171,19 +224,32 @@
//pdsch_harq_ack_max: 2,
prach: {
#if TDD == 1
#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: 0,
msg1_frequency_start: -1,
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,
......@@ -191,14 +257,12 @@
},
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: 1,
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
precoder_granularity: "sameAsREG_bundle",
},
......@@ -220,21 +284,8 @@
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
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
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
si_mcs: 6,
/* If defined, force the PDSCH MCS for all UEs. Otherwise it is computed
......@@ -279,7 +330,9 @@
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#if FR2 == 0
#define USE_TRS
#endif
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
......@@ -466,6 +519,9 @@
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if 1
......@@ -501,10 +557,18 @@
#if USE_SRS
srs: {
#if TDD_CONFIG == 1 || TDD_CONFIG == 2
#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 TDD_CONFIG == 3
#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: [
{
......@@ -532,9 +596,8 @@
mcs_table: "qam256", /* without transform precoding */
mcs_table_tp: "qam256", /* with transform precoding */
ldpc_max_its: 5,
k2: 4, /* delay in slots from DCI to PUSCH */
/* k2 : delay in slots from DCI to PUSCH : automatic setting */
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 or PUSCH */
/* gNodeB test mode for PDSCH */
{
// 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",
log_filename: "/tmp/gnb0.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 FR2 0
/* test PUSCH (1) or of PDSCH (0) */
#define TM_PUSCH 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"
/* RF driver configuration */
#if 1
#if TEST_MODEL == "UE-SIM"
#define SSB_ENABLED 1
#else
#define SSB_ENABLED 0 /* no SSB is generated */
#endif
/* RF driver configuration */
rf_driver: {
name: "sdr",
......@@ -22,20 +51,25 @@
},
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. */
......@@ -62,23 +96,38 @@
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
ssb_nr_arfcn: 2079167,
subcarrier_spacing: 120, /* kHz */
bandwidth: 50, /* MHz */
ssb_subcarrier_spacing: 120, /* kHz */
#if SSB_ENABLED
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
ssb_pos_bitmap: "0000000000000000000000000000000000000000000000000000000000000000",
#endif
#else
band: 78,
dl_nr_arfcn: 633332, /* 3499.98 MHz */
ssb_nr_arfcn: 633332,
subcarrier_spacing: 30, /* kHz */
bandwidth: 20, /* MHz */
ssb_subcarrier_spacing: 30, /* kHz */
#if SSB_ENABLED
ssb_pos_bitmap: "10000000",
#else
ssb_pos_bitmap: "00000000",
#endif
#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 */
#if SSB_ENABLED
ssb_pos_bitmap: "1000",
#else
ssb_pos_bitmap: "0000",
#endif
#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 */
......@@ -86,6 +135,29 @@
#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 */
......@@ -95,23 +167,42 @@
ul_symbols: 2,
},
},
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#endif
#endif /* SCS */
#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: 0,
ul_symbols: 4,
},
},
ssb_pos_bitmap: "10000000",
#endif
#else
ssb_pos_bitmap: "1000",
#endif
ssb_period: 10, /* in ms */
#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 */
p_max: 10, /* dBm */
......@@ -133,7 +224,7 @@
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: 0,
msg1_frequency_start: -1,
zero_correlation_zone_config: 15,
preamble_received_target_power: -110,
preamble_trans_max: 7,
......@@ -150,25 +241,33 @@
},
pdcch: {
rb_start: -1,
l_crb: -1, /* -1 means all the bandwidth */
common_coreset: {
rb_start: 0,
l_crb: 6,
#if TEST_MODEL == "UE-SIM"
duration: 1,
#else
duration: 2,
#endif
precoder_granularity: "sameAsREG_bundle",
},
css: {
n_candidates: [ 0, 4, 2, 1, 0 ],
n_candidates: [ 1, 0, 0, 0, 0 ],
},
rar_al_index: 2,
rar_al_index: 0,
uss: {
n_candidates: [ 0, 2, 1, 0, 0 ],
n_candidates: [ 1, 0, 0, 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: 1,
al_index: 0,
},
pdsch: {
mapping_type: "typeA",
start_symb: 1,
n_symb: 13,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
......@@ -182,18 +281,50 @@
#endif
#else
k1: 4,
#endif
#endif /* TDD */
/* hardcoded scheduling parameters */
mcs: 28,
#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
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
#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 */
},
pucch: {
......@@ -253,17 +384,47 @@
phr_tx_power_factor_change: "dB3"
},
test_mode: {
#if TM_PUSCH
type: "pusch",
rnti: 0x100,
/* 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: {
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
},
......
/* Parameters for SDR device version 2021-03-17
/* Parameters for SDR device version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-03-17
/* Parameters for SDR device version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-03-17
/* Parameters for SDR device version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* lteenb configuration file version 2021-03-17
/* Parameters for SDR device version 2021-07-12
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -38,10 +38,10 @@ rf_driver: {
args: "",
#endif
/* synchronisation source: internal, gps, external (default = internal) */
/* synchronisation source: none, internal, gps, external (default = none) */
// sync: "gps",
#if TDD == 1
rx_antenna:"tx_rx", // force to use the RX connector in TDD as RX antenna
rx_antenna:"rx", // force to use the RX connector in TDD as RX antenna
#endif
},
......@@ -49,5 +49,5 @@ rf_driver: {
tx_pad_duration:300,
#endif
tx_gain: 70.0, /* TX gain (in dB) */
rx_gain: 30.0, /* RX gain (in dB) */
tx_gain: 90.0, /* TX gain (in dB) */
rx_gain: 60.0, /* RX gain (in dB) */
......@@ -26,7 +26,7 @@
cellSelectionInfo {
q-RxLevMin -70
},
p-Max 23, /* maximum power allowed for the UE (dBm) */
p-Max 10, /* maximum power allowed for the UE (dBm) */
freqBandIndicator 1, /* patched by eNB */
schedulingInfoList {
{
......
......@@ -36,7 +36,7 @@
}
},
pdsch-ConfigCommon {
referenceSignalPower 2, /* patched by eNB */
referenceSignalPower -8, /* patched by eNB */
p-b 1 /* patched by eNB */
},
pusch-ConfigCommon {
......
......@@ -8,9 +8,10 @@
{
carrierFreq-r15 632544,
subcarrierSpacingSSB-r15 kHz30,
cellReselectionPriority-r15 7,
threshX-High-r15 0,
threshX-Low-r15 0,
q-RxLevMin-r15 -70,
q-RxLevMin-r15 -40,
p-MaxNR-r15 10,
deriveSSB-IndexFromCell-r15 TRUE
}
......
......@@ -14,7 +14,7 @@
},
cellReselectionServingFreqInfo {
threshServingLowP 0,
cellReselectionPriority 4
cellReselectionPriority 6
},
intraFreqCellReselectionInfo {
q-RxLevMin -70,
......@@ -24,7 +24,7 @@
periodicityAndOffset sf20: 0,
duration sf1
},
ssb-ToMeasure shortBitmap: '1000'B,
ssb-ToMeasure mediumBitmap: '10000000'B,
deriveSSB-IndexFromCell TRUE
}
}
......
......@@ -9,9 +9,10 @@
carrierFreq 300,
allowedMeasBandwidth mbw100,
presenceAntennaPort1 TRUE,
cellReselectionPriority 7,
threshX-High 0,
threshX-Low 0,
q-RxLevMin -70,
q-RxLevMin -40,
q-QualMin -34,
p-MaxEUTRA 10
}
......
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