Commit 0092ab02 authored by Joanne Hugé's avatar Joanne Hugé

ors-amarisoft: update gNB conf and add new parameters

parent bec917b4
...@@ -64,7 +64,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149 ...@@ -64,7 +64,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149
[enb.jinja2.cfg] [enb.jinja2.cfg]
filename = config/enb.jinja2.cfg filename = config/enb.jinja2.cfg
md5sum = 1333ef2400f2088221ed879f1b03e777 md5sum = 879c015828ba33edf751358f163a45ba
[sib23.asn] [sib23.asn]
filename = config/sib23.asn filename = config/sib23.asn
...@@ -72,7 +72,7 @@ md5sum = b377dac7f1fcf94fb9ce9ebed617f36a ...@@ -72,7 +72,7 @@ md5sum = b377dac7f1fcf94fb9ce9ebed617f36a
[gnb.jinja2.cfg] [gnb.jinja2.cfg]
filename = config/gnb.jinja2.cfg filename = config/gnb.jinja2.cfg
md5sum = 53669190f81b7cdae8982ec74081a4d1 md5sum = 8e9cdf44578c7a4f5de2d7828b9d6aa7
[ltelogs.jinja2.sh] [ltelogs.jinja2.sh]
filename = ltelogs.jinja2.sh filename = ltelogs.jinja2.sh
......
...@@ -3,7 +3,11 @@ ...@@ -3,7 +3,11 @@
#define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_ul']) }} #define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_ul']) }}
{ {
{% if slapparameter_dict.get('log_phy_debug', False) %}
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=debug,file.rotate=1G,file.path=/dev/null",
{% else %}
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null", log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
{% endif %}
log_filename: "{{ directory['log'] }}/enb.log", log_filename: "{{ directory['log'] }}/enb.log",
{% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %} {% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %}
......
#define FR2 0 // Values: 0 (FR1), 1 (FR2) #define N_ANTENNA_DL {{ slapparameter_dict.get('n_antenna_dl', slap_configuration['configuration.default_n_antenna_dl']) }}
#define NR_TDD_CONFIG 2 // Values: FR1: 1, 2, 3, 4 (compatible with LTE TDD config 2) FR2: 10
#define N_ANTENNA_DL {{ slapparameter_dict.get('n_antenna_dl', slap_configuration['configuration.default_n_antenna_dl']) }} // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
{% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %} {% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %}
#define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', 1) }} // Values: 1, 2, 4 #define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', 1) }}
{% else %} {% else %}
#define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_dl']) }} // Values: 1, 2, 4 #define N_ANTENNA_UL {{ slapparameter_dict.get('n_antenna_ul', slap_configuration['configuration.default_n_antenna_dl']) }}
{% endif %} {% endif %}
#define NR_BANDWIDTH {{ slapparameter_dict.get('nr_bandwidth', slap_configuration['configuration.default_nr_bandwidth']) }} // NR cell bandwidth
#define NR_LONG_PUCCH_FORMAT 2 // Values: 2, 3, 4
{ {
{% if slapparameter_dict.get('log_phy_debug', False) %}
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=debug,file.rotate=1G,file.path=/dev/null",
{% else %}
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null", log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
{% endif %}
log_filename: "{{ directory['log'] }}/gnb.log", log_filename: "{{ directory['log'] }}/gnb.log",
{% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %} {% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %}
rf_driver: { rf_driver: {
name: "sdr", name: "sdr",
...@@ -39,7 +37,6 @@ ...@@ -39,7 +37,6 @@
rx_gain: {{ slapparameter_dict.get('rx_gain', slap_configuration['configuration.default_nr_rx_gain']) }}, rx_gain: {{ slapparameter_dict.get('rx_gain', slap_configuration['configuration.default_nr_rx_gain']) }},
{% endif %} {% endif %}
com_addr: "127.0.1.2:9001", com_addr: "127.0.1.2:9001",
amf_list: [ amf_list: [
{% if slapparameter_dict.get('amf_list', '') %} {% if slapparameter_dict.get('amf_list', '') %}
{%- for i, k in enumerate(slapparameter_dict['amf_list']) %} {%- for i, k in enumerate(slapparameter_dict['amf_list']) %}
...@@ -78,25 +75,8 @@ ...@@ -78,25 +75,8 @@
gnb_id_bits: {{ slapparameter_dict.get('gnb_id_bits', 28) }}, gnb_id_bits: {{ slapparameter_dict.get('gnb_id_bits', 28) }},
gnb_id: {{ slapparameter_dict.get('gnb_id', '0x12345') }}, gnb_id: {{ slapparameter_dict.get('gnb_id', '0x12345') }},
en_dc_support: true,
nr_support: true,
rf_ports: [
{
#if FR2
rf_dl_freq: 3500,
rf_ul_freq: 3500,
// rx_to_tx_latency: 1,
#endif
},
],
cell_list: [], cell_list: [],
nr_cell_list: [ nr_cell_list: [
{ {
rf_port: 0, rf_port: 0,
...@@ -105,7 +85,6 @@ ...@@ -105,7 +85,6 @@
dl_nr_arfcn: {{ slapparameter_dict.get('dl_nr_arfcn', slap_configuration['configuration.default_dl_nr_arfcn']) }}, dl_nr_arfcn: {{ slapparameter_dict.get('dl_nr_arfcn', slap_configuration['configuration.default_dl_nr_arfcn']) }},
subcarrier_spacing: 30, subcarrier_spacing: 30,
ssb_pos_bitmap: "{{ slapparameter_dict.get('ssb_pos_bitmap', slap_configuration['configuration.default_nr_ssb_pos_bitmap']) }}", ssb_pos_bitmap: "{{ slapparameter_dict.get('ssb_pos_bitmap', slap_configuration['configuration.default_nr_ssb_pos_bitmap']) }}",
{%- if slapparameter_dict.get('ncell_list', '') %} {%- if slapparameter_dict.get('ncell_list', '') %}
ncell_list: [ ncell_list: [
{%- for i, k in enumerate(slapparameter_dict['ncell_list']) %} {%- for i, k in enumerate(slapparameter_dict['ncell_list']) %}
...@@ -131,26 +110,14 @@ ...@@ -131,26 +110,14 @@
{%- endfor -%} {%- endfor -%}
], ],
{% endif %} {% endif %}
}, },
], ],
nr_cell_default: { nr_cell_default: {
bandwidth: NR_BANDWIDTH, bandwidth: {{ slapparameter_dict.get('nr_bandwidth', slap_configuration['configuration.default_nr_bandwidth']) }},
n_antenna_dl: N_ANTENNA_DL, n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL, n_antenna_ul: N_ANTENNA_UL,
{% if slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)') == '5ms 2UL 7DL 4/6 (default)' %}
tdd_ul_dl_config: { tdd_ul_dl_config: {
#if NR_TDD_CONFIG == 1
pattern1: {
period: 5,
dl_slots: 7,
dl_symbols: 2,
ul_slots: 2,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 2
pattern1: { pattern1: {
period: 5, period: 5,
dl_slots: 7, dl_slots: 7,
...@@ -158,43 +125,20 @@ ...@@ -158,43 +125,20 @@
ul_slots: 2, ul_slots: 2,
ul_symbols: 4, ul_symbols: 4,
}, },
#elif NR_TDD_CONFIG == 3 },
pattern1: { {% elif slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)') == '2.5ms 1UL 3DL 2/10' %}
period: 5, tdd_ul_dl_config: {
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 4
pattern1: {
period: 3,
dl_slots: 3,
dl_symbols: 6,
ul_symbols: 4,
ul_slots: 2,
},
pattern2: {
period: 2,
dl_slots: 4,
dl_symbols: 0,
ul_symbols: 0,
ul_slots: 0,
},
#elif NR_TDD_CONFIG == 10
pattern1: { pattern1: {
period: 0.625, period: 2.5,
dl_slots: 3, dl_slots: 3,
dl_symbols: 10, dl_symbols: 10,
ul_slots: 1, ul_slots: 1,
ul_symbols: 2, ul_symbols: 2,
}, },
#endif
}, },
{% endif %}
ssb_period: 20, ssb_period: 20,
n_id_cell: {{ slapparameter_dict.get('pci', 500) }}, n_id_cell: {{ slapparameter_dict.get('pci', 500) }},
plmn_list: [ plmn_list: [
{%- if slapparameter_dict.get('plmn_list', '') %} {%- if slapparameter_dict.get('plmn_list', '') %}
{%- for i, k in enumerate(slapparameter_dict['plmn_list']) %} {%- for i, k in enumerate(slapparameter_dict['plmn_list']) %}
...@@ -259,31 +203,16 @@ ...@@ -259,31 +203,16 @@
}, },
{%- endif %} {%- endif %}
], ],
si_window_length: 40, si_window_length: 40,
cell_barred: false, cell_barred: false,
intra_freq_reselection: true, intra_freq_reselection: true,
q_rx_lev_min: -70, q_rx_lev_min: -70,
q_qual_min: -20, q_qual_min: -20,
root_sequence_index: 1, root_sequence_index: 1,
sr_period: 40, sr_period: 40,
dmrs_type_a_pos: 2, dmrs_type_a_pos: 2,
//pdsch_harq_ack_max: 2,
prach: { prach: {
#if NR_TDD_CONFIG == 4
prach_config_index: 156,
#else
prach_config_index: 160, prach_config_index: 160,
#endif
msg1_subcarrier_spacing: 30, msg1_subcarrier_spacing: 30,
msg1_fdm: 1, msg1_fdm: 1,
{% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %} {% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %}
...@@ -301,14 +230,12 @@ ...@@ -301,14 +230,12 @@
ssb_per_prach_occasion: 1, ssb_per_prach_occasion: 1,
cb_preambles_per_ssb: 8, cb_preambles_per_ssb: 8,
}, },
pdcch: { pdcch: {
{% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %} {% if slapparameter_dict.get('rrh', '') == "M2RU Sunwave" %}
n_rb_coreset0: 48, n_rb_coreset0: 48,
n_symb_coreset0: 1, n_symb_coreset0: 1,
{% endif %} {% endif %}
search_space0_index: 0, search_space0_index: 0,
dedicated_coreset: { dedicated_coreset: {
rb_start: -1, rb_start: -1,
l_crb: -1, l_crb: -1,
...@@ -319,20 +246,17 @@ ...@@ -319,20 +246,17 @@
{% endif %} {% endif %}
precoder_granularity: "sameAsREG_bundle", precoder_granularity: "sameAsREG_bundle",
}, },
css: { css: {
n_candidates: [ 0, 0, 1, 0, 0 ], n_candidates: [ 0, 0, 4, 0, 0 ],
}, },
rar_al_index: 2, rar_al_index: 2,
si_al_index: 2, si_al_index: 2,
uss: { uss: {
n_candidates: [ 0, 2, 1, 0, 0 ], n_candidates: [ 0, 2, 1, 0, 0 ],
dci_0_1_and_1_1: true, dci_0_1_and_1_1: true,
}, },
al_index: 1, al_index: 1,
}, },
pdsch: { pdsch: {
mapping_type: "typeA", mapping_type: "typeA",
dmrs_add_pos: 1, dmrs_add_pos: 1,
...@@ -346,7 +270,6 @@ ...@@ -346,7 +270,6 @@
rar_mcs: 2, rar_mcs: 2,
si_mcs: 6, si_mcs: 6,
}, },
csi_rs: { csi_rs: {
nzp_csi_rs_resource: [ nzp_csi_rs_resource: [
{ {
...@@ -384,11 +307,6 @@ ...@@ -384,11 +307,6 @@
offset: 1, offset: 1,
qcl_info_periodic_csi_rs: 0, qcl_info_periodic_csi_rs: 0,
}, },
#if FR2 == 0
#define USE_TRS
#endif
#ifdef USE_TRS
{ {
csi_rs_id: 1, csi_rs_id: 1,
n_ports: 1, n_ports: 1,
...@@ -453,7 +371,6 @@ ...@@ -453,7 +371,6 @@
offset: 12, offset: 12,
qcl_info_periodic_csi_rs: 0, qcl_info_periodic_csi_rs: 0,
}, },
#endif
], ],
nzp_csi_rs_resource_set: [ nzp_csi_rs_resource_set: [
{ {
...@@ -461,16 +378,13 @@ ...@@ -461,16 +378,13 @@
nzp_csi_rs_resources: [ 0 ], nzp_csi_rs_resources: [ 0 ],
repetition: false, repetition: false,
}, },
#ifdef USE_TRS
{ {
csi_rs_set_id: 1, csi_rs_set_id: 1,
nzp_csi_rs_resources: [ 1, 2, 3, 4 ], nzp_csi_rs_resources: [ 1, 2, 3, 4 ],
repetition: false, repetition: false,
trs_info: true, trs_info: true,
}, },
#endif
], ],
csi_im_resource: [ csi_im_resource: [
{ {
csi_im_id: 0, csi_im_id: 0,
...@@ -489,7 +403,6 @@ ...@@ -489,7 +403,6 @@
csi_im_resources: [ 0 ], csi_im_resources: [ 0 ],
} }
], ],
zp_csi_rs_resource: [ zp_csi_rs_resource: [
{ {
csi_rs_id: 0, csi_rs_id: 0,
...@@ -510,7 +423,6 @@ ...@@ -510,7 +423,6 @@
zp_csi_rs_resources: [ 0 ], zp_csi_rs_resources: [ 0 ],
}, },
], ],
csi_resource_config: [ csi_resource_config: [
{ {
csi_rsc_config_id: 0, csi_rsc_config_id: 0,
...@@ -522,13 +434,11 @@ ...@@ -522,13 +434,11 @@
csi_im_resource_set_list: [ 0 ], csi_im_resource_set_list: [ 0 ],
resource_type: "periodic", resource_type: "periodic",
}, },
#ifdef USE_TRS
{ {
csi_rsc_config_id: 2, csi_rsc_config_id: 2,
nzp_csi_rs_resource_set_list: [ 1 ], nzp_csi_rs_resource_set_list: [ 1 ],
resource_type: "periodic", resource_type: "periodic",
}, },
#endif
], ],
csi_report_config: [ csi_report_config: [
{ {
...@@ -558,24 +468,15 @@ ...@@ -558,24 +468,15 @@
}, },
], ],
}, },
pucch: { pucch: {
pucch_group_hopping: "neither", pucch_group_hopping: "neither",
hopping_id: -1, hopping_id: -1,
p0_nominal: -90, p0_nominal: -90,
#if 0
pucch0: {
initial_cyclic_shift: 1,
n_symb: 1,
},
#else
pucch1: { pucch1: {
n_cs: 3, n_cs: 3,
n_occ: 3, n_occ: 3,
freq_hopping: true, freq_hopping: true,
}, },
#endif
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: { pucch2: {
n_symb: 2, n_symb: 2,
n_prb: 1, n_prb: 1,
...@@ -583,27 +484,7 @@ ...@@ -583,27 +484,7 @@
simultaneous_harq_ack_csi: false, simultaneous_harq_ack_csi: false,
max_code_rate: 0.25, max_code_rate: 0.25,
}, },
#elif NR_LONG_PUCCH_FORMAT == 3
pucch3: {
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
n_prb: 1,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#elif NR_LONG_PUCCH_FORMAT == 4
pucch4: {
occ_len: 4,
bpsk: false,
additional_dmrs: false,
freq_hopping: true,
simultaneous_harq_ack_csi: true,
max_code_rate: 0.25,
},
#endif
}, },
pusch: { pusch: {
mapping_type: "typeA", mapping_type: "typeA",
n_symb: 14, n_symb: 14,
...@@ -618,13 +499,11 @@ ...@@ -618,13 +499,11 @@
k2: 4, k2: 4,
msg3_k2: 7, msg3_k2: 7,
{% endif %} {% endif %}
p0_nominal_with_grant: -76, p0_nominal_with_grant: -84,
msg3_mcs: 4, msg3_mcs: 4,
msg3_delta_power: 0, msg3_delta_power: 0,
beta_offset_ack_index: 9, beta_offset_ack_index: 9,
}, },
mac_config: { mac_config: {
msg3_max_harq_tx: 5, msg3_max_harq_tx: 5,
ul_max_harq_tx: 5, ul_max_harq_tx: 5,
...@@ -639,465 +518,414 @@ ...@@ -639,465 +518,414 @@
sr_prohibit_timer: 0, sr_prohibit_timer: 0,
sr_trans_max: 64, sr_trans_max: 64,
}, },
cipher_algo_pref: [], cipher_algo_pref: [],
integ_algo_pref: [2, 1], integ_algo_pref: [2, 1],
inactivity_timer: {{ slapparameter_dict.get('inactivity_timer', slap_configuration['configuration.default_nr_inactivity_timer']) }}, inactivity_timer: {{ slapparameter_dict.get('inactivity_timer', slap_configuration['configuration.default_nr_inactivity_timer']) }},
#ifndef EPS_FALLBACK
#define EPS_FALLBACK 0
#endif
drb_config: [ drb_config: [
{
{ qci: 1,
qci: 1, use_for_mr_dc_scg: false,
use_for_en_dc: false, ims_dedicated_bearer: true,
#if EPS_FALLBACK > 0 pdcp_config: {
trigger_eps_fallback: true, discardTimer: 100,
#endif pdcp_SN_SizeUL: 12,
ims_dedicated_bearer: true, pdcp_SN_SizeDL: 12,
pdcp_config: { statusReportRequired: false,
discardTimer: 100, outOfOrderDelivery: false,
pdcp_SN_SizeUL: 12, t_Reordering: 0,
pdcp_SN_SizeDL: 12, },
statusReportRequired: false, rlc_config: {
outOfOrderDelivery: false, ul_um: {
t_Reordering: 0, sn_FieldLength: 6,
},
dl_um: {
}, sn_FieldLength: 6,
rlc_config: { t_Reassembly: 50,
ul_um: { },
sn_FieldLength: 6,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 6, priority: 7,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
}, },
}, },
logical_channel_config: { {
priority: 7, qci: 2,
prioritisedBitRate: 0, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, ims_dedicated_bearer: true,
logicalChannelGroup: 1, pdcp_config: {
}, discardTimer: 150,
}, pdcp_SN_SizeUL: 18,
{ pdcp_SN_SizeDL: 18,
qci: 2, statusReportRequired: false,
use_for_en_dc: false, outOfOrderDelivery: false,
#if EPS_FALLBACK > 0 t_Reordering: 0,
trigger_eps_fallback: true, },
#endif rlc_config: {
ims_dedicated_bearer: true, ul_um: {
pdcp_config: { sn_FieldLength: 12,
discardTimer: 150, },
pdcp_SN_SizeUL: 18, dl_um: {
pdcp_SN_SizeDL: 18, sn_FieldLength: 12,
statusReportRequired: false, t_Reassembly: 50,
outOfOrderDelivery: false, },
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 12,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 12, priority: 8,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 1,
}, },
}, },
logical_channel_config: { {
priority: 8, qci: 3,
prioritisedBitRate: 0, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 100,
logicalChannelGroup: 1, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: false,
{ outOfOrderDelivery: false,
qci: 3, t_Reordering: 0,
pdcp_config: { },
discardTimer: 100, rlc_config: {
pdcp_SN_SizeUL: 18, ul_um: {
pdcp_SN_SizeDL: 18, sn_FieldLength: 12,
statusReportRequired: false, },
outOfOrderDelivery: false, dl_um: {
t_Reordering: 0, sn_FieldLength: 12,
}, t_Reassembly: 50,
rlc_config: { },
ul_um: {
sn_FieldLength: 12,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 12, priority: 7,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 2,
}, },
}, },
logical_channel_config: { {
priority: 7, qci: 4,
prioritisedBitRate: 0, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 0,
logicalChannelGroup: 2, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 4, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 9,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 3,
}, },
}, },
logical_channel_config: { {
priority: 9, qci: 65,
prioritisedBitRate: 8, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, ims_dedicated_bearer: true,
logicalChannelGroup: 3, pdcp_config: {
}, discardTimer: 100,
}, pdcp_SN_SizeUL: 12,
{ pdcp_SN_SizeDL: 12,
qci: 65, statusReportRequired: false,
use_for_en_dc: false, outOfOrderDelivery: false,
#if EPS_FALLBACK > 0 t_Reordering: 0,
trigger_eps_fallback: true, },
#endif rlc_config: {
ims_dedicated_bearer: true, ul_um: {
pdcp_config: { sn_FieldLength: 6,
discardTimer: 100, },
pdcp_SN_SizeUL: 12, dl_um: {
pdcp_SN_SizeDL: 12, sn_FieldLength: 6,
statusReportRequired: false, t_Reassembly: 50,
outOfOrderDelivery: false, },
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 6,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 6, priority: 5,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 4,
}, },
}, },
logical_channel_config: { {
priority: 5, qci: 66,
prioritisedBitRate: 0, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, ims_dedicated_bearer: true,
logicalChannelGroup: 4, pdcp_config: {
}, discardTimer: 150,
}, pdcp_SN_SizeUL: 18,
{ pdcp_SN_SizeDL: 18,
qci: 66, statusReportRequired: false,
use_for_en_dc: false, outOfOrderDelivery: false,
#if EPS_FALLBACK > 0 t_Reordering: 0,
trigger_eps_fallback: true, },
#endif rlc_config: {
ims_dedicated_bearer: true, ul_um: {
pdcp_config: { sn_FieldLength: 12,
discardTimer: 150, },
pdcp_SN_SizeUL: 18, dl_um: {
pdcp_SN_SizeDL: 18, sn_FieldLength: 12,
statusReportRequired: false, t_Reassembly: 50,
outOfOrderDelivery: false, },
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 12,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 12, priority: 7,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 4,
}, },
}, },
logical_channel_config: { {
priority: 7, qci: 67,
prioritisedBitRate: 0, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, ims_dedicated_bearer: true,
logicalChannelGroup: 4, pdcp_config: {
}, discardTimer: 100,
}, pdcp_SN_SizeUL: 18,
{ pdcp_SN_SizeDL: 18,
qci: 67, statusReportRequired: false,
use_for_en_dc: false, outOfOrderDelivery: false,
#if EPS_FALLBACK > 0 t_Reordering: 0,
trigger_eps_fallback: true, },
#endif rlc_config: {
ims_dedicated_bearer: true, ul_um: {
pdcp_config: { sn_FieldLength: 12,
discardTimer: 100, },
pdcp_SN_SizeUL: 18, dl_um: {
pdcp_SN_SizeDL: 18, sn_FieldLength: 12,
statusReportRequired: false, t_Reassembly: 50,
outOfOrderDelivery: false, },
t_Reordering: 0,
},
rlc_config: {
ul_um: {
sn_FieldLength: 12,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 12, priority: 6,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 5,
}, },
}, },
logical_channel_config: { {
priority: 6, qci: 5,
prioritisedBitRate: 0, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, pdcp_config: {
logicalChannelGroup: 5, discardTimer: 0,
}, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 5, },
use_for_en_dc: false, rlc_config: {
pdcp_config: { ul_am: {
discardTimer: 0, sn_FieldLength: 18,
pdcp_SN_SizeUL: 18, t_PollRetransmit: 80,
pdcp_SN_SizeDL: 18, pollPDU: 64,
statusReportRequired: true, pollByte: 125,
outOfOrderDelivery: false, maxRetxThreshold: 4,
}, },
rlc_config: { dl_am: {
ul_am: { sn_FieldLength: 18,
sn_FieldLength: 18, t_Reassembly: 80,
t_PollRetransmit: 80, t_StatusProhibit: 10,
pollPDU: 64, },
pollByte: 125,
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 6,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 4,
}, },
}, },
logical_channel_config: { {
priority: 6, qci: 6,
prioritisedBitRate: 8, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 0,
logicalChannelGroup: 4, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 6, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 10,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 5,
}, },
}, },
logical_channel_config: { {
priority: 10, qci: 7,
prioritisedBitRate: 8, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 100,
logicalChannelGroup: 5, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: false,
{ outOfOrderDelivery: false,
qci: 7, t_Reordering: 0,
pdcp_config: { },
discardTimer: 100, rlc_config: {
pdcp_SN_SizeUL: 18, ul_um: {
pdcp_SN_SizeDL: 18, sn_FieldLength: 12,
statusReportRequired: false, },
outOfOrderDelivery: false, dl_um: {
t_Reordering: 0, sn_FieldLength: 12,
}, t_Reassembly: 50,
rlc_config: { },
ul_um: {
sn_FieldLength: 12,
}, },
dl_um: { logical_channel_config: {
sn_FieldLength: 12, priority: 11,
t_Reassembly: 50, prioritisedBitRate: 0,
bucketSizeDuration: 100,
logicalChannelGroup: 6,
}, },
}, },
logical_channel_config: { {
priority: 11, qci: 8,
prioritisedBitRate: 0, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 0,
logicalChannelGroup: 6, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 8, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 12,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 7,
}, },
}, },
logical_channel_config: { {
priority: 12, qci: 9,
prioritisedBitRate: 8, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 0,
logicalChannelGroup: 7, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 9, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 13,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 7,
}, },
}, },
logical_channel_config: { {
priority: 13, qci: 69,
prioritisedBitRate: 8, use_for_mr_dc_scg: false,
bucketSizeDuration: 100, pdcp_config: {
logicalChannelGroup: 7, discardTimer: 0,
}, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
{ statusReportRequired: true,
qci: 69, outOfOrderDelivery: false,
use_for_en_dc: false, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 4,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 4,
}, },
}, },
logical_channel_config: { {
priority: 4, qci: 70,
prioritisedBitRate: 8, pdcp_config: {
bucketSizeDuration: 100, discardTimer: 0,
logicalChannelGroup: 4, pdcp_SN_SizeUL: 18,
}, pdcp_SN_SizeDL: 18,
}, statusReportRequired: true,
{ outOfOrderDelivery: false,
qci: 70, },
pdcp_config: { rlc_config: {
discardTimer: 0, ul_am: {
pdcp_SN_SizeUL: 18, sn_FieldLength: 18,
pdcp_SN_SizeDL: 18, t_PollRetransmit: 80,
statusReportRequired: true, pollPDU: 64,
outOfOrderDelivery: false, pollByte: 125,
}, maxRetxThreshold: 4,
rlc_config: { },
ul_am: { dl_am: {
sn_FieldLength: 18, sn_FieldLength: 18,
t_PollRetransmit: 80, t_Reassembly: 80,
pollPDU: 64, t_StatusProhibit: 10,
pollByte: 125, },
maxRetxThreshold: 4,
}, },
dl_am: { logical_channel_config: {
sn_FieldLength: 18, priority: 11,
t_Reassembly: 80, prioritisedBitRate: 8,
t_StatusProhibit: 10, bucketSizeDuration: 100,
logicalChannelGroup: 5,
}, },
}, },
logical_channel_config: { ]
priority: 11,
prioritisedBitRate: 8,
bucketSizeDuration: 100,
logicalChannelGroup: 5,
},
},
],
meas_config_desc: {
a1_report_type: "rsrp",
a1_rsrp: -60,
a1_hysteresis: 10,
a1_time_to_trigger: 100,
a2_report_type: "rsrp",
a2_rsrp: -70,
a2_hysteresis: 0,
a2_time_to_trigger: 100,
a3_report_type: "rsrp",
a3_offset: 6,
a3_hysteresis: 0,
a3_time_to_trigger: 100,
ssb_rsrq_filter_coeff: 3,
ssb_sinr_filter_coeff: 5
},
meas_gap_config: {
pattern_id: 0
},
}, },
} }
...@@ -35,6 +35,12 @@ ...@@ -35,6 +35,12 @@
] ]
}, },
{% endif %} {% endif %}
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -53,6 +59,18 @@ ...@@ -53,6 +59,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_dl }}
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_ul }}
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -185,18 +203,6 @@ ...@@ -185,18 +203,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_dl }}
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_ul }}
} }
} }
} }
...@@ -15,6 +15,34 @@ ...@@ -15,6 +15,34 @@
] ]
}, },
{% endif %} {% endif %}
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
......
...@@ -35,6 +35,12 @@ ...@@ -35,6 +35,12 @@
] ]
}, },
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -53,6 +59,18 @@ ...@@ -53,6 +59,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default":
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default":
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -179,18 +197,6 @@ ...@@ -179,18 +197,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default":
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default":
} }
} }
} }
...@@ -15,6 +15,34 @@ ...@@ -15,6 +15,34 @@
] ]
}, },
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -22,6 +28,18 @@ ...@@ -22,6 +28,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -154,18 +172,6 @@ ...@@ -154,18 +172,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
} }
} }
} }
...@@ -4,6 +4,34 @@ ...@@ -4,6 +4,34 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -164,7 +192,7 @@ ...@@ -164,7 +192,7 @@
"title": "SSB Position Bitmap", "title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 1000 "default": 10000000
}, },
"plmn_list": { "plmn_list": {
"title": "PLMN list", "title": "PLMN list",
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -22,6 +28,18 @@ ...@@ -22,6 +28,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -154,18 +172,6 @@ ...@@ -154,18 +172,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
} }
} }
} }
...@@ -4,6 +4,34 @@ ...@@ -4,6 +4,34 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -22,6 +28,18 @@ ...@@ -22,6 +28,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -154,18 +172,6 @@ ...@@ -154,18 +172,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
} }
} }
} }
...@@ -4,6 +4,34 @@ ...@@ -4,6 +4,34 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -22,6 +28,18 @@ ...@@ -22,6 +28,18 @@
"description": "True if GPS should be used for synchronisation", "description": "True if GPS should be used for synchronisation",
"type": "boolean" "type": "boolean"
}, },
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
...@@ -154,18 +172,6 @@ ...@@ -154,18 +172,6 @@
"description": "Duration during which average temperature should not exceed specified threshold", "description": "Duration during which average temperature should not exceed specified threshold",
"type": "number", "type": "number",
"default": 600 "default": 600
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
} }
} }
} }
...@@ -4,6 +4,34 @@ ...@@ -4,6 +4,34 @@
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6,
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"default": 100,
},
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
......
...@@ -32,7 +32,7 @@ rf_mode_context_list = [ ...@@ -32,7 +32,7 @@ rf_mode_context_list = [
'default_dl_nr_arfcn' : 378000, 'default_dl_nr_arfcn' : 378000,
'default_nr_band' : 39, 'default_nr_band' : 39,
'default_nr_dl_freq' : 1890.0, 'default_nr_dl_freq' : 1890.0,
'default_nr_ssb_pos_bitmap' : "1000", 'default_nr_ssb_pos_bitmap' : "10000000",
'default_ssb_nr_arfcn' : 377790, 'default_ssb_nr_arfcn' : 377790,
'min_frequency' : 1880.0, 'min_frequency' : 1880.0,
'max_frequency' : 1920, 'max_frequency' : 1920,
......
...@@ -20,7 +20,7 @@ default-nr-dl-freq = 1890.0 ...@@ -20,7 +20,7 @@ default-nr-dl-freq = 1890.0
default-nr-bandwidth = 40 default-nr-bandwidth = 40
default-nr-tx-gain = 60 default-nr-tx-gain = 60
default-nr-rx-gain = 45 default-nr-rx-gain = 45
default-nr-ssb-pos-bitmap = 1000 default-nr-ssb-pos-bitmap = 10000000
default-ssb-nr-arfcn = 377790 default-ssb-nr-arfcn = 377790
default-nr-inactivity-timer = 10000 default-nr-inactivity-timer = 10000
default-nr-imsi = 001010123456789 default-nr-imsi = 001010123456789
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( ...@@ -39,19 +39,19 @@ setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
param_dict = { param_dict = {
'testing': True, 'testing': True,
"sim_algo": "milenage", 'sim_algo': 'milenage',
"imsi": "001010000000331", 'imsi': '001010000000331',
"opc": "000102030405060708090A0B0C0D0E0F", 'opc': '000102030405060708090A0B0C0D0E0F',
"amf": "0x9001", 'amf': '0x9001',
"sqn": "000000000000", 'sqn': '000000000000',
"k": "00112233445566778899AABBCCDDEEFF", 'k': '00112233445566778899AABBCCDDEEFF',
"impu": "impu331", 'impu': 'impu331',
"impi": "impi331@amarisoft.com", 'impi': 'impi331@amarisoft.com',
'tx_gain': 17, 'tx_gain': 17,
'rx_gain': 17, 'rx_gain': 17,
'dl_earfcn': 325320, 'dl_earfcn': 325320,
'n_rb_dl': 50, 'n_rb_dl': 50,
'enb_id': "0x17", 'enb_id': '0x17',
'pci': 250, 'pci': 250,
'mme_list': { 'mme_list': {
'10.0.0.1': {'mme_addr': '10.0.0.1'}, '10.0.0.1': {'mme_addr': '10.0.0.1'},
...@@ -62,17 +62,48 @@ param_dict = { ...@@ -62,17 +62,48 @@ param_dict = {
'nr_band': 99, 'nr_band': 99,
'nr_bandwidth': 50, 'nr_bandwidth': 50,
'ssb_nr_arfcn': 377790, 'ssb_nr_arfcn': 377790,
'rue_addr': "192.168.99.88", 'rue_addr': '192.168.99.88',
'n_antenna_dl': 2, 'n_antenna_dl': 2,
'n_antenna_ul': 2, 'n_antenna_ul': 2,
'inactivity_timer': 17, 'inactivity_timer': 17,
'gnb_id': "0x17", 'gnb_id': '0x17',
'gnb_id_bits': 30, 'gnb_id_bits': 30,
'ssb_pos_bitmap': "10", 'ssb_pos_bitmap': '10',
'amf_list': { 'amf_list': {
'10.0.0.1': {'amf_addr': '10.0.0.1'}, '10.0.0.1': {'amf_addr': '10.0.0.1'},
'2001:db8::1': {'amf_addr': '2001:db8::1'}, '2001:db8::1': {'amf_addr': '2001:db8::1'},
}, },
'nr_handover_time_to_trigger': 50,
'nr_handover_a3_offset': 10,
'ncell_list': {
'ORS1': {
'dl_nr_arfcn': 100000,
'ssb_nr_arfcn': 100000,
'pci': 1,
'nr_cell_id': '0x0000001',
'gnb_id_bits': 28,
'nr_band': 1,
'tac': 1
},
'ORS2': {
'dl_nr_arfcn': 200000,
'ssb_nr_arfcn': 200000,
'pci': 2,
'nr_cell_id': '0x0000002',
'gnb_id_bits': 30,
'nr_band': 2,
'tac': 2
},
},
'xn_peers': {
'2001:db8::1': {
'xn_addr': '2001:db8::1',
},
'2001:db8::2': {
'xn_addr': '2001:db8::2',
},
},
'tdd_ul_dl_config': '2.5ms 1UL 3DL 2/10',
} }
enb_param_dict = { enb_param_dict = {
'plmn_list': { 'plmn_list': {
...@@ -141,6 +172,27 @@ def test_gnb_conf1(self): ...@@ -141,6 +172,27 @@ def test_gnb_conf1(self):
self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n]) self.assertEqual(p[n], gnb_param_dict1['plmn_list'][p['plmn']][n])
for p in conf['amf_list']: for p in conf['amf_list']:
self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr']) self.assertEqual(p['amf_addr'], gnb_param_dict1['amf_list'][p['amf_addr']]['amf_addr'])
for p in conf['xn_peers']:
self.assertEqual(p, gnb_param_dict1['xn_peers'][p]['xn_addr'])
for p in conf['nr_cell_list'][0]['ncell_list']:
for k in gnb_param_dict1['ncell_list']:
if p['dl_nr_arfcn'] == gnb_param_dict1['ncell_list'][k]['dl_nr_arfcn']:
break
conf_ncell = gnb_param_dict1['ncell_list'][k]
self.assertEqual(p['dl_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['ssb_nr_arfcn'], conf_ncell['ssb_nr_arfcn'])
self.assertEqual(p['ul_nr_arfcn'], conf_ncell['dl_nr_arfcn'])
self.assertEqual(p['n_id_cell'], conf_ncell['pci'])
self.assertEqual(p['gnb_id_bits'], conf_ncell['gnb_id_bits'])
self.assertEqual(p['nr_cell_id'], int(conf_ncell['nr_cell_id'], 16))
self.assertEqual(p['tac'], conf_ncell['tac'])
self.assertEqual(p['band'], conf_ncell['nr_band'])
tdd_config = conf['nr_cell_default']['tdd_ul_dl_config']['pattern1']
self.assertEqual(float(tdd_config['period']), 2.5)
self.assertEqual(int(tdd_config['dl_slots']), 3)
self.assertEqual(int(tdd_config['dl_symbols']), 10)
self.assertEqual(int(tdd_config['ul_slots']), 1)
self.assertEqual(int(tdd_config['ul_symbols']), 2)
with open(conf_file, 'r') as f: with open(conf_file, 'r') as f:
for l in f: for l in f:
......
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