Commit 1bd8c3dd authored by Lu Xu's avatar Lu Xu 👀

Amarisoft 2021-09-18 config

parent 18acadb0
......@@ -10,6 +10,7 @@
/**************************************** GBR */
{
qci: 1, /* UM - real time (RTP for VOIP) */
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_Size: 7,
......@@ -23,6 +24,23 @@
},
*/
},
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
},
*/
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
......@@ -45,10 +63,20 @@
},
{
qci: 2, /* UM - real time (video) */
ims_dedicated_bearer: true,
pdcp_config: {
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -73,6 +101,15 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -97,6 +134,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -120,6 +165,7 @@
},
{
qci: 65, /* UM - real time (MC-PTT voice) */
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_Size: 7,
......@@ -133,6 +179,24 @@
},
*/
},
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
},
*/
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 5,
......@@ -155,10 +219,20 @@
},
{
qci: 66, /* UM - real time (non MC-PTT voice) */
ims_dedicated_bearer: true,
pdcp_config: {
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -181,10 +255,20 @@
},
{
qci: 67, /* UM - Mission Critical Video user plane */
ims_dedicated_bearer: true,
pdcp_config: {
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -210,6 +294,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -237,6 +329,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -264,6 +364,15 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_um: {
sn_FieldLength: 10,
......@@ -288,6 +397,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -353,6 +470,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......@@ -380,6 +505,14 @@
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,
restrict_to_ng_enb: true,
},
rlc_config: {
ul_am: {
t_PollRetransmit: 80, /* in ms */
......
......@@ -10,11 +10,10 @@
{
qci: 1, /* UM - real time (RTP for VOIP) */
use_for_en_dc: false,
#if EPS_FALLBACK > 0
trigger_eps_fallback: true,
#endif
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 12,
......@@ -50,6 +49,11 @@
},
{
qci: 2, /* UM - real time (video) */
use_for_en_dc: false,
#if EPS_FALLBACK > 0
trigger_eps_fallback: true,
#endif
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
......@@ -133,6 +137,10 @@
{
qci: 65, /* UM - real time (MC-PTT voice) */
use_for_en_dc: false,
#if EPS_FALLBACK > 0
trigger_eps_fallback: true,
#endif
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 12,
......@@ -169,6 +177,10 @@
{
qci: 66, /* UM - real time (non MC-PTT voice) */
use_for_en_dc: false,
#if EPS_FALLBACK > 0
trigger_eps_fallback: true,
#endif
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 150, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
......@@ -196,6 +208,10 @@
{
qci: 67, /* UM - Mission Critical Video user plane */
use_for_en_dc: false,
#if EPS_FALLBACK > 0
trigger_eps_fallback: true,
#endif
ims_dedicated_bearer: true,
pdcp_config: {
discardTimer: 100, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
......@@ -401,7 +417,6 @@
},
{
qci: 70, /* AM - MC data */
use_for_en_dc: false,
pdcp_config: {
discardTimer: 0, /* in ms, 0 means infinity */
pdcp_SN_SizeUL: 18,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
......@@ -8,6 +8,7 @@
#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[,...]
......@@ -58,6 +59,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",
......@@ -91,7 +101,10 @@
dl_earfcn: 1575,
#endif
cell_id: 0x1a2e002,
tac: 1
tac: 1,
#if NG_ENB == 1
tac_5gc: 10,
#endif
},
],
},
......@@ -118,7 +131,10 @@
dl_earfcn: 3100,
#endif
cell_id: 0x1a2e001,
tac: 1
tac: 1,
#if NG_ENB == 1
tac_5gc: 10,
#endif
},
],
}
......@@ -131,6 +147,12 @@
plmn_list: [
"00101",
],
#if NG_ENB == 1
plmn_list_5gc: [ {
tac: 10,
plmn_ids: [{ plmn: "00101", reserved: false }],
}],
#endif
n_antenna_dl: N_ANTENNA_DL, /* number of DL antennas */
n_antenna_ul: N_ANTENNA_UL, /* number of UL antennas */
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file example for Category M1 UEs
* version 2021-03-17
* version 2021-09-18
* 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-09-18
* 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-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
{
......
/* lteenb configuration file example for NB-IoT (standalone mode)
* version 2021-03-17
* version 2021-09-18
* 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-09-18
* Copyright (C) 2016-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 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,10 +75,16 @@
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
/* lteenb configuration file version 2021-09-18
* 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 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)
#define NR_BANDWIDTH 100 // NR cell bandwidth
#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 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)
#define NR_BANDWIDTH 100 // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{
log_options: "all.level=debug,all.max_size=1",
......@@ -356,6 +357,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 +395,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,
......@@ -423,20 +441,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 NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#endif
#else
k1: 4,
#endif
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
......@@ -671,32 +677,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -712,9 +716,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, msg3_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,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 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_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 NR_BANDWIDTH 20 // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +65,7 @@
{cell_id: 2},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +81,7 @@
{cell_id: 1},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,34 +93,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 +187,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,
......@@ -221,21 +239,9 @@
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
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* 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
......@@ -469,32 +475,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -510,9 +514,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, msg3_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,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 */
......@@ -353,9 +353,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 */
k1: 4,
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
#if N_ANTENNA_DL >= 2
x_overhead: 12, /* 12 REs reserved for LTE CRS */
......@@ -363,7 +362,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
......@@ -428,9 +427,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, msg3_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,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 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.
// With the PCIe SDR100 board, up to 100 MHz is supported.
#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 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.
// With the PCIe SDR100 board, up to 100 MHz is supported.
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{
//log_options: "all.level=debug,all.max_size=1",
......@@ -388,6 +389,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 +427,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,
......@@ -457,20 +475,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 NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#endif
#else
k1: 4,
#endif
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
......@@ -705,32 +711,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -745,6 +749,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: [
{
......@@ -772,9 +778,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, msg3_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,
......
This diff is collapsed.
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 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.
#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 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.
// With the PCIe SDR100 board, up to 100 MHz is supported.
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{
//log_options: "all.level=debug,all.max_size=1",
......@@ -98,6 +99,7 @@
#else
band: 7,
dl_nr_arfcn: 528000, /* 2640 MHz */
ssb_subcarrier_spacing: 15,
#endif
ncell_list: [
......@@ -114,8 +116,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 +369,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 +407,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,
......@@ -435,20 +455,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 NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#endif
#else
k1: 4,
#endif
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
......@@ -683,32 +691,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -723,6 +729,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: [
{
......@@ -750,9 +758,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, msg3_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,
......
......@@ -3,11 +3,12 @@
* 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 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_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 NR_BANDWIDTH 20 // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{
log_options: "all.level=debug,all.max_size=1",
......@@ -64,7 +65,7 @@
{cell_id: 2},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 621300,
#else
......@@ -80,7 +81,7 @@
{cell_id: 1},
],
#if TDD == 1
#if NR_TDD == 1
band: 78,
dl_nr_arfcn: 627300,
#else
......@@ -92,34 +93,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 +187,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,
......@@ -222,19 +240,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
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
......@@ -470,32 +477,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -511,9 +516,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, msg3_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,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2019-2021 Amarisoft
* LTE cell + NR SA cell */
#define N_CELL 2
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#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_BANDWIDTH 20 // NR cell bandwidth
#define EPS_FALLBACK 0 // Values: 0 (disable EPS fallback), 1 (enable EPS fallback)
#define N_CELL 2
#define TDD 0 // Values: 0 (LTE FDD), 1(LTE TDD)
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#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_BANDWIDTH 20 // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
#define EPS_FALLBACK 0 // Values: 0 (disable EPS fallback), 1 (enable EPS fallback)
/* 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
......@@ -113,6 +114,9 @@
meas_gap_config: "gp0",
ho_from_meas: true,
#if EPS_FALLBACK > 0
eps_fallback_fast_return_preferred_method: "handover",
#endif
}
], /* cell_list */
......@@ -126,9 +130,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,6 +210,10 @@
filename: "sib23.asn",
si_periodicity: 16, /* frames */
},
/*{
filename: "sib24.asn",
si_periodicity: 16
}*/
],
#if N_RB_DL == 6
......@@ -397,6 +405,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 +453,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 +478,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,
......@@ -512,20 +530,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 NR_TDD == 1
#if NR_TDD_CONFIG == 1
k1: [ 8, 7, 7, 6, 5, 4, 12 /* , 11 */ ],
#elif NR_TDD_CONFIG == 2
k1: [ 8, 7, 7, 6, 5, 4, 12, 11 ],
#elif NR_TDD_CONFIG == 3
k1: [ 7, 6, 6, 5, 5, 4 ],
#endif
#else
k1: 4,
#endif
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* k1 delay in slots from PDSCH to PUCCH/PUSCH ACK/NACK: automatic setting */
mcs_table: "qam256",
rar_mcs: 2,
......@@ -761,32 +767,30 @@
freq_hopping: true,
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -798,6 +802,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: [
{
......@@ -825,9 +831,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, msg3_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,
......
/* lteenb configuration file version 2021-03-17
/* lteenb configuration file version 2021-09-18
* 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 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_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 NR_BANDWIDTH 20 // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
/* 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 +59,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 +81,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,
#if TDD == 1
/* 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 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 +225,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 +258,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 +285,9 @@
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
/* k0 delay in slots from DCI to PDSCH: automatic setting */
/* 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 +332,9 @@
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#define USE_TRS
#if FR2 == 0
#define USE_TRS
#endif
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
......@@ -466,34 +521,35 @@
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if 1
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: false,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
#if 0
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
......@@ -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, msg3_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,30 +96,68 @@
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 */
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 */
......@@ -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 */
duration: 1,
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-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-03-17
/* Parameters for SDR device version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
/* Parameters for SDR device version 2021-03-17
/* Parameters for SDR device version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
rf_driver: {
......
#!/bin/bash
# Copyright (C) 2021 Amarisoft
# Luna configurator wrapper version 2021-09-18
set -e
# Default params
# Override them in enb configuration file, rf_driver/config_script_param section
OUT_FREQ="28000"
LUNA_DEV="/dev/ttyACM0"
SDR_NUM="0"
PARAMS="$1"
SDR_DEV="$2"
IN_FREQ="$3"
IFS=';' read -ra LIST <<< "$PARAMS "
for l in $LIST ; do
for p in $l ; do
eval "$p"
done
if [ "$SDR_DEV" = "/dev/sdr${SDR_NUM}" ] ; then
LO_FREQ=$(( $OUT_FREQ - ($IN_FREQ / 1000000) ))
echo "Configure LUNA for device $SDR_DEV, LO=${LO_FREQ}MHz"
$(dirname $0)/luna-cfg $LUNA_DEV $LO_FREQ
fi
done
exit 0
......@@ -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
}
......
-----BEGIN CERTIFICATE-----
MIIDcTCCAlmgAwIBAgIUPtvvnOaxFyZ16srNuTJAV4eY0pIwDQYJKoZIhvcNAQEL
BQAwVTELMAkGA1UEBhMCRlIxFzAVBgNVBAgMDkhhdXRzLWRlLVNlaW5lMRkwFwYD
VQQHDBBMZXZhbGxvaXMtUGVycmV0MRIwEAYDVQQKDAlBbWFyaXNvZnQwHhcNMjEw
MjE0MTQzNzEwWhcNMjIwMjE0MTQzNzEwWjBVMQswCQYDVQQGEwJGUjEXMBUGA1UE
CAwOSGF1dHMtZGUtU2VpbmUxGTAXBgNVBAcMEExldmFsbG9pcy1QZXJyZXQxEjAQ
BgNVBAoMCUFtYXJpc29mdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AKESvClBnBauDkrTkQucrshP9m07ZHN1A9DawFXtIUFJj8Ot3Dr2xjCq2UXD5zYQ
4g64BBAUVYsXT+Bw9vFe028qNEGo6frNAqtU9jDw0ctok+oq1YWoNBxwfkYuztmS
dFyOvjpN4QtFSUAFzO9HWUwzG6euzAcrMuBc5td2mca01eukjnpt+SL4hrqi3zSg
FCSNCwd3sdlvo3EM5h0i1amGXfOhUpuDqiSgBbaDGlJITbcbzfsSxo7KEkbK6iln
hWTrwQnAbgonMrxVwzGNFEehBzSlusHXDOGNEV49JUL94feZmE1j/FeArd0HGr7N
jywrxpkWm6x7OUVeviN6AoUCAwEAAaM5MDcwNQYDVR0RBC4wLIIqZXBkZy5lcGMu
bW5jMDAxLm1jYzAwMS5wdWIuM2dwcG5ldHdvcmsub3JnMA0GCSqGSIb3DQEBCwUA
A4IBAQCgHgx4gQWkM+6nYBhaaBhZbAkAfv69PVup9GzPjgc578Ul+N9j1ptWo4vX
jJKIntN0+AFfU5QMxL6aSlqHycWB0PpZl8DjTxiD6NKvMOrW6KIdKfbhVbl6G6xT
Enb6BP4qt+5MTbxxLCpSsxNSOFMt7tsJB6AeJO1L8V8ZePJZQscKpMeGRPgSR2aX
g071rFC0cEAAecLLYPL8SVZKkGxlA0R0gPsO/TTmND5A+kO6PSXs8oSW+MZ8RZl1
utKhcOESPvZLVzCGgWnix3PxrNOhdcW1kaLOhjz6Tr4/EvxR2BBLXTG9jiRt81AU
jfbCmKvSItJEDYZa4+VxPVCOqXNl
-----END CERTIFICATE-----
/* lteims configuration file
* version 2021-03-17
* version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
{
......@@ -42,16 +42,21 @@
"tel:+666",
{impu: "tel:404", code: 404}, /* 404 test */
{impu: "urn:service:sos", anonymous: true, authentication: false}, /* Emergency call */
{impu: "urn:service:sos.police", anonymous: true, authentication: false}, /* Emergency call */
],
/* Delay */
//sms_expires: 86400,
//binding_expires: 3600,
precondition: true, /* true: 3GPP mode, false: IETF mode */
/* on: 3GPP mode allowed
* silent: 3GPP mode forced
* off: IETF mode
*/
precondition: "on",
"100rel": true,
/* IPSec */
/* IPsec */
ipsec_aalg_list: ["hmac-md5-96", "hmac-sha-1-96"],
ipsec_ealg_list: ["null", "aes-cbc", "des-cbc", "des-ede3-cbc"],
......
......@@ -16,7 +16,7 @@ if [ "$type" = "ipv4" ] ; then
# Configure interface
ifconfig ${ifname} ${ifaddr}/${mask} up
ipt=$(iptables -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
ipt=$(iptables -w 5 -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
if [ "$ipt" = "" ] ; then
iptables -I INPUT -i ${ifname} -j ACCEPT
fi
......@@ -36,9 +36,9 @@ else
# Add route for all prefixes
ip -6 route add ${addr1}/${mask} dev ${ifname}
ipt=$(ip6tables -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
ipt=$(ip6tables -w 5 -S | grep "\-A INPUT \-i ${ifname} \-j ACCEPT")
if [ "$ipt" = "" ] ; then
ip6tables -I INPUT -i ${ifname} -j ACCEPT
ip6tables -w 5 -I INPUT -i ${ifname} -j ACCEPT
fi
fi
/* ltemme configuration file for ims
* version 2021-03-17
* version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
{
......@@ -33,9 +33,12 @@
mme_group_id: 32769,
mme_code: 1,
ims_vops: true, /* IMS supported */
ims_vops_eps: true, /* IMS supported */
ims_vops_5gs_3gpp: true, /* IMS supported */
ims_vops_5gs_n3gpp: true, /* IMS supported */
//emc_bs: true, /* emergency calls supported */
//emc: 1, /* NR connected to 5GCN emergency calls supported */
//emc: 3, /* NR/E-UTRA connected to 5GCN emergency calls supported */
//emc_n3gpp: true, /* non-3GPP emergency calls supported */
emergency_number_list: [
/* Category bits: (Table 10.5.135d/3GPP TS 24.008)
Bit 1 Police
......@@ -85,6 +88,15 @@
}
],*/
/* ePDG configuration */
//epdg: {
// bind_addr: "127.0.1.100:500",
// esp_duration: 900,
// certificate: "epdg.pem",
// /* required for some buggy Mediatek phones */
// //omit_auth_in_first_auth_rsp: true
//},
/* Public Data Networks. The first one is the default. */
pdn_list: [
{
......
/* ltemme configuration file
* version 2021-03-17
* version 2021-09-18
* Copyright (C) 2015-2021 Amarisoft
*/
{
......@@ -33,6 +33,15 @@
mme_group_id: 32769,
mme_code: 1,
/* ePDG configuration */
//epdg: {
// bind_addr: "127.0.1.100:500",
// esp_duration: 900,
// certificate: "epdg.pem",
// /* required for some buggy Mediatek phones */
// //omit_auth_in_first_auth_rsp: true
//},
/* network name and network short name sent in the EMM information
message to the UE */
network_name: "Amarisoft Network",
......
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