Commit 16a725fb authored by Joanne Hugé's avatar Joanne Hugé

software/ors-amarisoft: add 5G and generate json and cfg with templates

parent 1a7ae544
......@@ -16,19 +16,27 @@
[template]
filename = instance.cfg
md5sum = f883dab264c6c45b03beff88339f2573
md5sum = b533809540cf576f0685cdf9ac901350
[template-lte-default]
_update_hash_filename_ = instance-default.jinja2.cfg
md5sum = 6e8ec82b69af1f92baf1c71e2e5531bf
[template-lte-enb-epc]
_update_hash_filename_ = instance-enb-epc.jinja2.cfg
md5sum = 283d9929e9abfa4ab929a09fbd359a7b
[template-lte-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = cda352579b01f0d93f2be8a71e56b5c5
md5sum = 3794c73b45a76a610cc51d76d941a8a8
[template-lte-gnb-epc]
_update_hash_filename_ = instance-gnb-epc.jinja2.cfg
md5sum = 1d075c0956f6423c75eda6b94b913161
[template-lte-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = d908bb5ad09f5beb75bd8dcd6ad7829f
[template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg
md5sum = 33609f1bcccc9c060c79a40c59d60431
md5sum = 6e54fb8a1e620d1d6beb882f98c9fe55
[ue_db.jinja2.cfg]
filename = config/ue_db.jinja2.cfg
......@@ -36,7 +44,11 @@ md5sum = 4e4b40589ca0817d44f638c0612f0a04
[enb.jinja2.cfg]
filename = config/enb.jinja2.cfg
md5sum = abc4ffd72b5d700fee9dca171adc98ca
md5sum = 1c21696532e37336604df3576dd01496
[gnb.jinja2.cfg]
filename = config/gnb.jinja2.cfg
md5sum = 46cfb8d62e3f873dee36ec02f6df293e
[ltelogs.jinja2.sh]
filename = ltelogs.jinja2.sh
......
......@@ -3,7 +3,7 @@
*/
#define TDD 1 // Values: 0 (FDD), 1(TDD)
#define N_RB_DL {{ slapparameter_dict.get('n_rb_dl', 100) }} // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_RB_DL {{ slapparameter_dict.get('n_rb_dl', instance['configuration.default_lte_n_rb_dl']) }} // Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2)
#define N_ANTENNA_UL 2 // Values: 1, 2
#define CHANNEL_SIM 0 // Values: 0 (channel simulator disabled), 1 (channel simulator enabled)
......@@ -38,8 +38,8 @@
// sync: "gps",
rx_antenna:"tx_rx",
},
tx_gain: {{ slapparameter_dict.get('tx_gain', 70.0) }}, /* TX gain (in dB) */
rx_gain: {{ slapparameter_dict.get('rx_gain', 30.0) }}, /* RX gain (in dB) */
tx_gain: {{ slapparameter_dict.get('tx_gain', instance['configuration.default_lte_tx_gain']) }}, /* TX gain (in dB) */
rx_gain: {{ slapparameter_dict.get('rx_gain', instance['configuration.default_lte_rx_gain']) }}, /* RX gain (in dB) */
#if CHANNEL_SIM == 1
rf_ports: [
......
/* lteenb configuration file version 2021-09-18
* Copyright (C) 2019-2021 Amarisoft
* NR SA FDD or TDD cell */
#define NR_TDD 1 // Values: 0 (NR FDD), 1(NR TDD)
#define FR2 0 // Values: 0 (FR1), 1 (FR2)
#define NR_TDD_CONFIG 2 // Values: FR1: 1, 2, 3, 4 (compatible with LTE TDD config 2) FR2: 10
#define N_ANTENNA_DL 2 // Values: 1 (SISO), 2 (MIMO 2x2), 4 (MIMO 4x4)
#define N_ANTENNA_UL 2 // Values: 1, 2, 4
#define NR_BANDWIDTH {{ slapparameter_dict.get('nr_bandwidth', instance['configuration.default_nr_bandwidth']) }} // 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
uplink SU-MIMO. */
#define USE_SRS 0
{
log_options: "all.level=debug,all.max_size=32",
log_filename: "{{ directory['log'] }}/gnb.log",
/* Enable remote API and Web interface */
com_addr: "[{{ instance['ipv6-random'] }}]:{{ instance['configuration.enb_ws_port'] }}",
rf_driver: {
name: "sdr",
/* list of devices. 'dev0' is always the master. */
args: "dev0=/dev/sdr0",
/* synchronisation source: none, internal, gps, external (default = none) */
// sync: "gps",
rx_antenna: "tx_rx",
},
tx_gain: {{ slapparameter_dict.get('tx_gain', instance['configuration.default_nr_tx_gain']) }}, /* TX gain (in dB) */
rx_gain: {{ slapparameter_dict.get('rx_gain', instance['configuration.default_nr_rx_gain']) }}, /* RX gain (in dB) */
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",
},
],
/* GTP bind address (=address of the ethernet interface connected to
the AMF). Must be modified if the AMF runs on a different host. */
gtp_addr: "{{ slapparameter_dict.get('gtp_addr', '127.0.1.1') }}",
gnb_id_bits: 28,
gnb_id: 0x12345,
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: [],
nr_cell_list: [
{
rf_port: 0,
cell_id: 0x01,
#if NR_TDD == 1
#if FR2
band: 257,
dl_nr_arfcn: 2079167, /* 28000.08 MHz */
subcarrier_spacing: 120, /* kHz */
ssb_pos_bitmap: "0100000000000000000000000000000000000000000000000000000000000000",
#else
band: {{ slapparameter_dict.get('nr_band', instance['configuration.default_nr_band']) }},
dl_nr_arfcn: {{ slapparameter_dict.get('dl_nr_arfcn', instance['configuration.default_dl_nr_arfcn']) }},
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "10000000",
#endif
#else
band: 7,
dl_nr_arfcn: 536020, /* 2680 MHz */
ssb_subcarrier_spacing: 15,
subcarrier_spacing: 30, /* kHz */
ssb_pos_bitmap: "1000",
#endif
},
], /* nr_cell_list */
nr_cell_default: {
bandwidth: NR_BANDWIDTH, /* MHz */
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: N_ANTENNA_UL,
/* force the timing TA offset (optional) */
// n_timing_advance_offset: 39936,
/* subframe offset to align with the LTE TDD pattern (optional) */
// subframe_offset: 2,
#if NR_TDD == 1
tdd_ul_dl_config: {
#if NR_TDD_CONFIG == 1
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: /* 6 */ 2,
ul_slots: 2,
ul_symbols: 2,
},
#elif NR_TDD_CONFIG == 2
pattern1: {
period: 5, /* in ms */
dl_slots: 7,
dl_symbols: 6,
ul_slots: 2,
ul_symbols: 4,
},
#elif NR_TDD_CONFIG == 3
pattern1: {
period: 5, /* in ms */
dl_slots: 6,
dl_symbols: 2,
ul_slots: 3,
ul_symbols: 2,
},
#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
},
#endif
ssb_period: 20, /* in ms */
n_id_cell: 500,
plmn_list: [ {
tac: 100,
plmn: "00101",
reserved: false,
nssai: [
{
sst: 1,
},
/*{
sst: 2,
},
{
sst: 3,
sd: 50,
},*/
],
},
],
/*sib_sched_list: [
{
filename: "{{ directory['software'] }}/enb/config/sib2_nr.asn",
si_periodicity: 16,
},
{
filename: "{{ directory['software'] }}/enb/config/sib3_nr.asn",
si_periodicity: 16,
},
{
filename: "{{ directory['software'] }}/enb/config/sib4_nr.asn",
si_periodicity: 32,
},
],
sib9: {
si_periodicity: 32
},*/
si_window_length: 40,
cell_barred: false,
intra_freq_reselection: true,
q_rx_lev_min: -70,
q_qual_min: -20,
p_max: 10, /* dBm */
root_sequence_index: 1, /* PRACH root sequence index */
/* Scheduling request period (slots). */
sr_period: 40,
dmrs_type_a_pos: 2,
/* to limit the number of HARQ feedback in UL, use pdsch_harq_ack_max;
allows to workaround issues with SM-G977N for example */
//pdsch_harq_ack_max: 2,
prach: {
#if NR_TDD == 1
#if FR2
prach_config_index: 149, /* format C0, every 4 frames */
msg1_subcarrier_spacing: 120, /* kHz */
#else
#if NR_TDD_CONFIG == 4
prach_config_index: 156, /* format B4, subframe 2 */
#else
prach_config_index: 160, /* format B4, subframe 9 */
#endif
msg1_subcarrier_spacing: 30, /* kHz */
#endif
#else
prach_config_index: 16, /* subframe 1 every frame */
#endif
msg1_fdm: 1,
msg1_frequency_start: -1,
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,
cb_preambles_per_ssb: 8,
},
pdcch: {
search_space0_index: 0,
dedicated_coreset: {
rb_start: -1, /* -1 to have the maximum bandwidth */
l_crb: -1, /* -1 means all the bandwidth */
duration: 0, /* 0 means to automatically set it from the coreset bandwidth */
precoder_granularity: "sameAsREG_bundle",
},
css: {
n_candidates: [ 0, 0, 1, 0, 0 ],
},
rar_al_index: 2,
si_al_index: 2,
uss: {
n_candidates: [ 0, 2, 1, 0, 0 ],
dci_0_1_and_1_1: true,
},
al_index: 1,
},
pdsch: {
mapping_type: "typeA",
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
/* 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
* based on DL channel quality estimation */
/* mcs: 24, */
},
csi_rs: {
nzp_csi_rs_resource: [
{
csi_rs_id: 0,
#if N_ANTENNA_DL == 1
n_ports: 1,
frequency_domain_allocation: "row2",
bitmap: "100000000000",
cdm_type: "no_cdm",
#elif N_ANTENNA_DL == 2
n_ports: 2,
frequency_domain_allocation: "other",
bitmap: "100000",
cdm_type: "fd_cdm2",
#elif N_ANTENNA_DL == 4
n_ports: 4,
frequency_domain_allocation: "row4",
bitmap: "100",
cdm_type: "fd_cdm2",
#elif N_ANTENNA_DL == 8
n_ports: 8,
frequency_domain_allocation: "other",
bitmap: "110011",
cdm_type: "fd_cdm2",
#else
#error unsupported number of DL antennas
#endif
density: 1,
first_symb: 4,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
power_control_offset: 0, /* dB */
power_control_offset_ss: 0, /* dB */
period: 80,
offset: 1, /* != 0 to avoid collision with SSB */
qcl_info_periodic_csi_rs: 0,
},
#if FR2 == 0
#define USE_TRS
#endif
#ifdef USE_TRS
/* TRS : period of 40 ms, slots 1 & 2, symbols 4 and 8 */
{
csi_rs_id: 1,
n_ports: 1,
frequency_domain_allocation: "row1",
bitmap: "0001",
cdm_type: "no_cdm",
density: 3,
first_symb: 4,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
power_control_offset: 0, /* dB */
power_control_offset_ss: 0, /* dB */
period: 40,
offset: 11,
qcl_info_periodic_csi_rs: 0,
},
{
csi_rs_id: 2,
n_ports: 1,
frequency_domain_allocation: "row1",
bitmap: "0001",
cdm_type: "no_cdm",
density: 3,
first_symb: 8,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
power_control_offset: 0, /* dB */
power_control_offset_ss: 0, /* dB */
period: 40,
offset: 11,
qcl_info_periodic_csi_rs: 0,
},
{
csi_rs_id: 3,
n_ports: 1,
frequency_domain_allocation: "row1",
bitmap: "0001",
cdm_type: "no_cdm",
density: 3,
first_symb: 4,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
power_control_offset: 0, /* dB */
power_control_offset_ss: 0, /* dB */
period: 40,
offset: 12,
qcl_info_periodic_csi_rs: 0,
},
{
csi_rs_id: 4,
n_ports: 1,
frequency_domain_allocation: "row1",
bitmap: "0001",
cdm_type: "no_cdm",
density: 3,
first_symb: 8,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
power_control_offset: 0, /* dB */
power_control_offset_ss: 0, /* dB */
period: 40,
offset: 12,
qcl_info_periodic_csi_rs: 0,
},
#endif
],
nzp_csi_rs_resource_set: [
{
csi_rs_set_id: 0,
nzp_csi_rs_resources: [ 0 ],
repetition: false,
},
#ifdef USE_TRS
{
csi_rs_set_id: 1,
nzp_csi_rs_resources: [ 1, 2, 3, 4 ],
repetition: false,
trs_info: true,
},
#endif
],
csi_im_resource: [
{
csi_im_id: 0,
pattern: 1,
subcarrier_location: 8,
symbol_location: 8,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
period: 80,
offset: 1, /* != 0 to avoid collision with SSB */
},
],
csi_im_resource_set: [
{
csi_im_set_id: 0,
csi_im_resources: [ 0 ],
}
],
/* ZP CSI-RS to set the CSI-IM REs to zero */
zp_csi_rs_resource: [
{
csi_rs_id: 0,
frequency_domain_allocation: "row4",
bitmap: "100",
n_ports: 4,
cdm_type: "fd_cdm2",
first_symb: 8,
density: 1,
rb_start: 0,
l_crb: -1, /* -1 means from rb_start to the end of the bandwidth */
period: 80,
offset: 1,
},
],
p_zp_csi_rs_resource_set: [
{
zp_csi_rs_resources: [ 0 ],
},
],
csi_resource_config: [
{
csi_rsc_config_id: 0,
nzp_csi_rs_resource_set_list: [ 0 ],
resource_type: "periodic",
},
{
csi_rsc_config_id: 1,
csi_im_resource_set_list: [ 0 ],
resource_type: "periodic",
},
#ifdef USE_TRS
{
csi_rsc_config_id: 2,
nzp_csi_rs_resource_set_list: [ 1 ],
resource_type: "periodic",
},
#endif
],
csi_report_config: [
{
resources_for_channel_measurement: 0,
csi_im_resources_for_interference: 1,
report_config_type: "periodic",
period: 80,
report_quantity: "CRI_RI_PMI_CQI",
#if N_ANTENNA_DL > 1
codebook_config: {
codebook_type: "type1",
sub_type: "typeI_SinglePanel",
#if N_ANTENNA_DL == 2
#elif N_ANTENNA_DL == 4
n1: 2,
n2: 1,
codebook_mode: 1,
#elif N_ANTENNA_DL == 8
n1: 4,
n2: 1,
codebook_mode: 1,
#endif
},
#endif
cqi_table: 2,
subband_size: "value1",
},
],
},
pucch: {
pucch_group_hopping: "neither",
hopping_id: -1, /* -1 = n_cell_id */
p0_nominal: -90,
#if 0
pucch0: {
initial_cyclic_shift: 1,
n_symb: 1,
},
#else
pucch1: {
n_cs: 3,
n_occ: 3,
freq_hopping: true,
#if USE_SRS && NR_TDD == 0
n_symb: 13,
#endif
},
#endif
#if NR_LONG_PUCCH_FORMAT == 2
pucch2: {
n_symb: 2,
n_prb: 1,
freq_hopping: true,
simultaneous_harq_ack_csi: false,
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
},
#if USE_SRS
srs: {
#if NR_TDD
#if NR_TDD_CONFIG == 1 || NR_TDD_CONFIG == 2
srs_symbols: [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 ],
#elif NR_TDD_CONFIG == 3
srs_symbols: [ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 4
srs_symbols: [ 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 ],
#elif NR_TDD_CONFIG == 10
srs_symbols: [ 0, 0, 0, 2, 0 ],
#endif
#else
srs_symbols: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 ],
#endif
srs_resource: [
{
srs_resource_id: 0,
n_ports: N_ANTENNA_UL,
resource_type: "periodic",
period: 80, /* in slots */
}
],
srs_resource_set: [
{
srs_resource_id_list: [ 0 ],
},
],
},
#endif
pusch: {
mapping_type: "typeA",
n_symb: 14,
dmrs_add_pos: 1,
dmrs_type: 1,
dmrs_max_len: 1,
tf_precoding: false,
mcs_table: "qam256", /* without transform precoding */
mcs_table_tp: "qam256", /* with transform precoding */
ldpc_max_its: 5,
/* k2, msg3_k2 delay in slots from DCI to PUSCH: automatic setting */
p0_nominal_with_grant: -76,
msg3_mcs: 4,
msg3_delta_power: 0, /* in dB */
beta_offset_ack_index: 9,
/* if defined, force the PUSCH MCS for all UEs. Otherwise it is
computed from the last received PUSCH. */
/* mcs: 16, */
},
/* MAC configuration */
mac_config: {
msg3_max_harq_tx: 5,
ul_max_harq_tx: 5, /* max number of HARQ transmissions for uplink */
dl_max_harq_tx: 5, /* max number of HARQ transmissions for downlink */
ul_max_consecutive_retx: 30, /* disconnect UE if reached */
dl_max_consecutive_retx: 30, /* disconnect UE if reached */
periodic_bsr_timer: 20,
retx_bsr_timer: 320,
periodic_phr_timer: 500,
prohibit_phr_timer: 200,
phr_tx_power_factor_change: "dB3",
sr_prohibit_timer: 0, /* in ms, 0 to disable the timer */
sr_trans_max: 64,
},
cipher_algo_pref: [],
integ_algo_pref: [2, 1],
inactivity_timer: 10000,
drb_config: "{{ directory['software'] }}/enb/config/drb_nr.cfg",
},
}
......@@ -60,9 +60,6 @@ config-name = epc
name = eNB
software-type = enb
config-name = enb
{% if slapparameter_dict.get("gtp_addr", None) %}
config-gtp_addr = {{ dumps(slapparameter_dict["gtp_addr"]) }}
{% endif %}
{% if slapparameter_dict.get("tx_gain", None) %}
config-tx_gain = {{ dumps(slapparameter_dict["tx_gain"]) }}
{% endif %}
......
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": {{ default_lte_tx_gain }}
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": {{ default_lte_rx_gain }}
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": {{ default_dl_earfcn }}
},
"n_rb_dl": {
"title": "DL RB",
"description": "number of DL resource blocks",
"type": "number",
"default": {{ default_lte_n_rb_dl }}
}
}
}
......@@ -27,17 +27,18 @@ cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB
configuration.domain = vifib.com
configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003
configuration.ims_addr = 127.0.0.1
configuration.ims_bind = 127.0.0.2
configuration.enb_addr = 127.0.1.1
configuration.default_dl_earfcn = {{ default_dl_earfcn }}
configuration.default_lte_dl_freq = {{ default_lte_dl_freq }}
configuration.default_lte_band = {{ default_lte_band }}
configuration.default_lte_n_rb_dl = {{ default_lte_n_rb_dl }}
configuration.default_lte_tx_gain = {{ default_lte_tx_gain }}
configuration.default_lte_rx_gain = {{ default_lte_rx_gain }}
[directory]
recipe = slapos.cookbook:mkdirectory
......@@ -62,7 +63,6 @@ extensions = jinja2.ext.do
context =
section directory directory
### eNodeB (enb)
[lte-enb-service]
recipe = slapos.cookbook:wrapper
......
......@@ -4,147 +4,5 @@
"title": "EPC Input Parameters",
"properties": {
"log": {
"type": "object",
"title": "Log Configuration",
"properties": {
"options": {
"title": "Log Options",
"description": "Log Options",
"type": "string",
"default": "all.level=debug,all.max_size=32"
}
}
},
"plmn": {
"title": "PLMN",
"description": "PLMN",
"type": "string",
"default": ""
},
"mme_group_id": {
"title": "Group ID",
"description": "Group ID",
"type": "string",
"default": ""
},
"mme_code": {
"title": "Code",
"description": "Code",
"type": "string",
"default": ""
},
"gtp_addr": {
"title": "GTP bind address",
"description": "IP address of the network interface connected to the core network",
"type": "string",
"default": "127.0.1.1"
},
"gtp_addr": {
"title": "GTP bind address",
"description": "IP address of the network interface connected to the core network",
"type": "string",
"default": "127.0.1.1"
},
"mme_addr": {
"title": "MME address",
"description": "address of MME for S1AP connection",
"type": "string",
"default": "127.0.1.100"
},
"ims_list": {
"title": "IMS Address List",
"description": "List of IMSAddresses",
"type": "object",
"patternProperties": {
".*": {
"properties": {
"address": {
"title": "IMS address",
"description": "IMS Address",
"type": "string"
}
}
}
}
},
"rx": {
"type": "object",
"title": "RX interface",
"properties": {
"audio_qci": {
"title": "Audio QCI",
"description": "Audio QCI",
"type": "number",
"default": 1
},
"video_qci": {
"title": "Video QCI",
"description": "Video QCI",
"type": "number",
"default": 2
}
}
},
"network_name": {
"title": "Network name",
"description": "Network name",
"type": "string",
"default": "Amarisoft Network"
},
"network_short_name": {
"title": "Network short name",
"description": "Network Short Name",
"type": "string",
"default": "Amarisoft"
},
"cp_ciot_opt": {
"title": "Control Plane Cellular IoT EPS optimization",
"description": "Control Plane Cellular IoT EPS optimisation",
"type": "boolean"
},
"pdn_list": {
"title": "PDN List",
"description": "List of available Packet Data Networks",
"patternProperties": {
".*": {
"properties": {
"access_point_name": {
"title": "APN",
"description": "Access Point Name",
"type": "string",
"default": "defaultt"
},
"pdn_type": {
"title": "PDN TYPE",
"description": "PDN type can be ipv4, ipv6, ipv4v6, non-ip",
"type": "string",
"default": "ipv4"
},
"first_ip_addr": {
"title": "First IP Address",
"description": "First available IPv4 address",
"type": "string",
"default": "192.168.2.2"
},
"last_ip_addr": {
"title": "Last IP Address",
"description": "Last available IPv4 address",
"type": "string",
"default": "192.168.2.254"
},
"dns_addr": {
"title": "DNS Address",
"description": "Last available IPv4 address",
"type": "string",
"default": "8.8.8.8"
}
},
"type": "object"
},
"type": "object"
},
"type": "object"
}
}
}
......@@ -29,27 +29,15 @@ cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB
configuration.domain = vifib.com
# Identifier of frequency and band is given by one number (e.g. 3200 for 2600Mhz band 7)
#configuration.frequency = 2600
#configuration.band = 7
configuration.log_size = 50M
configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003
configuration.mme_addr = 127.0.1.100
configuration.ims_addr = 127.0.0.1
configuration.ims_bind = 127.0.0.2
configuration.enb_addr = 127.0.1.1
#tun-ipv4-network = 172.0.0.0/8
#tun-ipv4-addr = 172.0.0.1
#tun-name = tunabc
ue_db_path = {{ ue_db_path }}
[directory]
......
#
# Deploy LTE instance
#
[buildout]
parts =
directory
lte-gnb-request
lte-epc-request
monitor-base
publish-connection-information
extends = {{ monitor_template }}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[instance]
recipe = slapos.cookbook:slapconfiguration.serialised
computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }}
[directory]
recipe = slapos.cookbook:mkdirectory
software = {{ buildout_directory }}
home = ${buildout:directory}
etc = ${:home}/etc
var = ${:home}/var
etc = ${:home}/etc
bin = ${:home}/bin
run = ${:var}/run
script = ${:etc}/run
service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log
[request-common-base]
recipe = slapos.cookbook:request.serialised
software-url = {{ slap_connection['software-release-url'] }}
server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }}
partition-id = {{ slap_connection['partition-id'] }}
key-file = {{ slap_connection['key-file'] }}
cert-file = {{ slap_connection['cert-file'] }}
config-monitor-password = ${monitor-htpasswd:passwd}
return = monitor-base-url
[lte-epc-request]
<= request-common-base
name = EPC
software-type = epc
config-name = epc
[lte-gnb-request]
<= request-common-base
name = gNB
software-type = gnb
config-name = gnb
{% if slapparameter_dict.get("tx_gain", None) %}
config-tx_gain = {{ dumps(slapparameter_dict["tx_gain"]) }}
{% endif %}
{% if slapparameter_dict.get("rx_gain", None) %}
config-rx_gain = {{ dumps(slapparameter_dict["rx_gain"]) }}
{% endif %}
{% if slapparameter_dict.get("dl_nr_arfcn", None) %}
config-dl_nr_arfcn = {{ dumps(slapparameter_dict["dl_nr_arfcn"]) }}
{% endif %}
{% if slapparameter_dict.get("nr_band", None) %}
config-nr_band = {{ dumps(slapparameter_dict["nr_band"]) }}
{% endif %}
{% if slapparameter_dict.get("nr_bandwidth", None) %}
config-nr_bandwidth = {{ dumps(slapparameter_dict["nr_bandwidth"]) }}
{% endif %}
[monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
lte-gnb-request = ${lte-gnb-request:connection-monitor-base-url}
[publish-connection-information]
recipe = slapos.cookbook:publish
monitor-setup-url = https://monitor.app.officejs.com/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${monitor-publish-parameters:monitor-password}
......@@ -4,35 +4,35 @@
"title": "Input Parameters",
"properties": {
"gtp_addr": {
"title": "GTP bind address",
"description": "IP address of the network interface connected to the core network",
"type": "string",
"default": "127.0.1.1"
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": {{ default_nr_tx_gain }}
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": {{ default_nr_rx_gain }}
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": {{ default_dl_nr_arfcn }}
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 38050
"default": {{ default_nr_band }}
},
"n_rb_dl": {
"title": "DL RB",
"description": "number of DL resource blocks",
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 100
"default": {{ default_nr_bandwidth }}
}
}
}
#
# Deploy LTE instance
#
[buildout]
parts =
directory
# publish-connection-parameter
ltelogs
lte-gnb-config
lte-enb-service
monitor-base
publish-connection-information
extends = {{ monitor_template }}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[instance]
recipe = slapos.cookbook:slapconfiguration.serialised
computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB
configuration.domain = vifib.com
configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003
configuration.ims_addr = 127.0.0.1
configuration.ims_bind = 127.0.0.2
configuration.enb_addr = 127.0.1.1
configuration.default_dl_nr_arfcn = {{ default_dl_nr_arfcn }}
configuration.default_nr_band = {{ default_nr_band }}
configuration.default_nr_dl_freq = {{ default_nr_dl_freq }}
configuration.default_nr_bandwidth = {{ default_nr_bandwidth }}
configuration.default_nr_tx_gain = {{ default_nr_tx_gain }}
configuration.default_nr_rx_gain = {{ default_nr_rx_gain }}
[directory]
recipe = slapos.cookbook:mkdirectory
software = {{ buildout_directory }}
home = ${buildout:directory}
etc = ${:home}/etc
var = ${:home}/var
etc = ${:home}/etc
bin = ${:home}/bin
run = ${:var}/run
script = ${:etc}/run
service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log
[ltelogs]
recipe = slapos.recipe.template:jinja2
template = {{ ltelogs_template }}
rendered = ${directory:home}/ltelogs.sh
mode = 0775
extensions = jinja2.ext.do
context =
section directory directory
### eNodeB (enb)
[lte-enb-service]
recipe = slapos.cookbook:wrapper
init = ${ltelogs:rendered} ${directory:log}/enb.log; sleep 2
command-line = {{ enb }}/lteenb ${directory:etc}/gnb.cfg
wrapper-path = ${directory:service}/lte-enb
mode = 0775
reserve-cpu = True
pidfile = ${directory:run}/enb.pid
hash-files =
${lte-gnb-config:rendered}
environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[config-base]
recipe = slapos.recipe.template:jinja2
mode = 0664
extensions = jinja2.ext.do
context =
section directory directory
section instance instance
key slapparameter_dict instance:configuration
import netaddr netaddr
[lte-gnb-config]
<= config-base
template = {{ gnb_template }}
rendered = ${directory:etc}/gnb.cfg
[publish-connection-information]
recipe = slapos.cookbook:publish.serialised
{% if slapparameter_dict.get("monitor-password", None) %}
monitor-base-url = ${monitor-instance-parameter:monitor-base-url}
{% else %}
monitor-setup-url = https://monitor.app.officejs.com/#page=settings_configurator&url=${monitor-publish-parameters:monitor-url}&username=${monitor-publish-parameters:monitor-user}&password=${monitor-publish-parameters:monitor-password}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
[monitor-instance-parameter]
monitor-title = {{ slapparameter_dict['name'] }}
password = {{ slapparameter_dict['monitor-password'] }}
{% endif %}
......@@ -8,17 +8,17 @@
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 38350
},
......@@ -29,4 +29,4 @@
"default": 100
}
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 38350
},
"n_rb_dl": {
"title": "DL RB",
"description": "number of DL resource blocks",
"type": "number",
"default": 100
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 378000
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 39
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 378000
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 39
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
......@@ -8,17 +8,17 @@
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 38050
},
......@@ -29,4 +29,4 @@
"default": 100
}
}
}
}
\ No newline at end of file
......@@ -8,17 +8,17 @@
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 38050
},
......@@ -29,4 +29,4 @@
"default": 100
}
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 520000
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 38
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 520000
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 38
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
......@@ -8,17 +8,17 @@
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 42590
},
......@@ -29,4 +29,4 @@
"default": 100
}
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 42590
},
"n_rb_dl": {
"title": "DL RB",
"description": "number of DL resource blocks",
"type": "number",
"default": 100
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 632628
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 78
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 632628
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 78
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
......@@ -8,17 +8,17 @@
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70.0
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30.0
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink EARFCN of the cell",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 44590
},
......@@ -29,4 +29,4 @@
"default": 100
}
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 30
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 44590
},
"n_rb_dl": {
"title": "DL RB",
"description": "number of DL resource blocks",
"type": "number",
"default": 100
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 646666
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 78
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number",
"default": 70
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number",
"default": 50
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number",
"default": 646666
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number",
"default": 78
},
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
}
}
}
\ No newline at end of file
[buildout]
parts =
dynamic-template-lte-default
switch-softwaretype
eggs-directory = ${buildout:eggs-directory}
......@@ -30,14 +29,24 @@ context =
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
default = $${dynamic-template-lte-default:rendered}
enb-epc = $${dynamic-template-lte-enb-epc:rendered}
gnb-epc = $${dynamic-template-lte-gnb-epc:rendered}
enb = $${dynamic-template-lte-enb:rendered}
gnb = $${dynamic-template-lte-gnb:rendered}
epc = $${dynamic-template-lte-epc:rendered}
[dynamic-template-lte-default]
[dynamic-template-lte-enb-epc]
< = jinja2-template-base
template = ${template-lte-default:target}
filename = instance-lte-default.cfg
template = ${template-lte-enb-epc:target}
filename = instance-lte-enb-epc.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:rendered}
[dynamic-template-lte-gnb-epc]
< = jinja2-template-base
template = ${template-lte-gnb-epc:target}
filename = instance-lte-gnb-epc.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:rendered}
......@@ -53,9 +62,34 @@ extra-context =
raw enb_template ${enb.jinja2.cfg:target}
raw ltelogs_template ${ltelogs.jinja2.sh:target}
raw openssl_location ${openssl:location}
raw default_dl_earfcn ${enb:default-dl-earfcn}
raw default_lte_dl_freq ${enb:default-lte-dl-freq}
raw default_lte_band ${enb:default-lte-band}
raw default_lte_n_rb_dl ${enb:default-lte-n-rb-dl}
raw default_lte_tx_gain ${enb:default-lte-tx-gain}
raw default_lte_rx_gain ${enb:default-lte-rx-gain}
raw min_frequency ${enb:min-frequency}
raw max_frequency ${enb:max-frequency}
[dynamic-template-lte-gnb]
< = jinja2-template-base
template = ${template-lte-gnb:target}
filename = instance-lte-gnb.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:rendered}
raw enb ${enb:destination}
raw gnb_template ${gnb.jinja2.cfg:target}
raw ltelogs_template ${ltelogs.jinja2.sh:target}
raw openssl_location ${openssl:location}
raw default_dl_nr_arfcn ${enb:default-dl-nr-arfcn}
raw default_nr_band ${enb:default-nr-band}
raw default_nr_dl_freq ${enb:default-nr-dl-freq}
raw default_nr_bandwidth ${enb:default-nr-bandwidth}
raw default_nr_tx_gain ${enb:default-nr-tx-gain}
raw default_nr_rx_gain ${enb:default-nr-rx-gain}
raw min_frequency ${enb:min-frequency}
raw max_frequency ${enb:max-frequency}
raw default_dl_earfcn ${enb:default-dl-earfcn}
[dynamic-template-lte-epc]
< = jinja2-template-base
......
#!/usr/bin/env python2
from jinja2 import Template
import os
# Values: 6 (1.4 MHz), 15 (3MHz), 25 (5MHz), 50 (10MHz), 75 (15MHz), 100 (20MHz)
LTE_N_RB_DL=100
LTE_TX_GAIN=70
LTE_RX_GAIN=30
NR_BANDWIDTH=40
NR_TX_GAIN=70
NR_RX_GAIN=50
rf_mode_context_list = [
{
'rf_mode': 'tdd1900',
'default_dl_earfcn': 38350,
'default_lte_dl_freq': 1890.0,
'default_lte_band': 39,
'default_lte_n_rb_dl': LTE_N_RB_DL,
'default_lte_tx_gain': LTE_TX_GAIN,
'default_lte_rx_gain': LTE_RX_GAIN,
'default_dl_nr_arfcn': 378000,
'default_nr_band': 39,
'default_nr_dl_freq': 1890.0,
'default_nr_bandwidth': NR_BANDWIDTH,
'default_nr_tx_gain': NR_TX_GAIN,
'default_nr_rx_gain': NR_RX_GAIN,
'min_frequency': 1880.0,
'max_frequency': 1920,
}, {
'rf_mode': 'tdd2600',
'default_dl_earfcn': 38050,
'default_lte_dl_freq': 2600.0,
'default_lte_band': 38,
'default_lte_n_rb_dl': LTE_N_RB_DL,
'default_lte_tx_gain': LTE_TX_GAIN,
'default_lte_rx_gain': LTE_RX_GAIN,
'default_dl_nr_arfcn': 520000,
'default_nr_band': 38,
'default_nr_dl_freq': 2600.0,
'default_nr_bandwidth': NR_BANDWIDTH,
'default_nr_tx_gain': NR_TX_GAIN,
'default_nr_rx_gain': NR_RX_GAIN,
'min_frequency': 2570,
'max_frequency': 2620,
}, {
'rf_mode': 'tdd3500',
'default_dl_earfcn': 42590,
'default_lte_dl_freq': 3500.0,
'default_lte_band': 42,
'default_lte_n_rb_dl': LTE_N_RB_DL,
'default_lte_tx_gain': LTE_TX_GAIN,
'default_lte_rx_gain': LTE_RX_GAIN,
'default_dl_nr_arfcn': 632628,
'default_nr_band': 78,
'default_nr_dl_freq': 3489.42,
'default_nr_bandwidth': NR_BANDWIDTH,
'default_nr_tx_gain': NR_TX_GAIN,
'default_nr_rx_gain': NR_RX_GAIN,
'min_frequency': 3400,
'max_frequency': 3600,
}, {
'rf_mode': 'tdd3700',
'default_dl_earfcn': 44590,
'default_lte_dl_freq': 3700.0,
'default_lte_band': 43,
'default_lte_n_rb_dl': LTE_N_RB_DL,
'default_lte_tx_gain': LTE_TX_GAIN,
'default_lte_rx_gain': LTE_RX_GAIN,
'default_dl_nr_arfcn': 646666,
'default_nr_band': 78,
'default_nr_dl_freq': 3699.99,
'default_nr_bandwidth': NR_BANDWIDTH,
'default_nr_tx_gain': NR_TX_GAIN,
'default_nr_rx_gain': NR_RX_GAIN,
'min_frequency': 3600,
'max_frequency': 3800,
}
]
with open('software.cfg.jinja2.json', 'r') as f:
software_json_template = Template(f.read())
with open('instance-enb-input-schema.jinja2.json', 'r') as f:
instance_enb_json_template = Template(f.read())
with open('instance-gnb-input-schema.jinja2.json', 'r') as f:
instance_gnb_json_template = Template(f.read())
with open('software.jinja2.cfg', 'r') as f:
software_template = Template(f.read())
for rf_mode_context in rf_mode_context_list:
with open('software-{}.cfg.json'.format(rf_mode_context['rf_mode']),
'w+') as f:
f.write(software_json_template.render(**rf_mode_context))
with open('software-{}.cfg'.format(rf_mode_context['rf_mode']),
'w+') as f:
f.write(software_template.render(**rf_mode_context))
for software_type in ['enb', 'enb-epc', 'gnb', 'gnb-epc']:
with open('instance-{}-{}-input-schema.json'.format(
rf_mode_context['rf_mode'],
software_type),
'w+') as f:
if software_type in ['enb', 'enb-epc']:
f.write(instance_enb_json_template.render(**rf_mode_context))
else:
f.write(instance_gnb_json_template.render(**rf_mode_context))
......@@ -3,7 +3,19 @@ extends =
software.cfg
[enb]
# 1890 MHz (band 39)
default-dl-earfcn = 38350
min-frequency = 1880
max-frequency = 1920
default-lte-dl-freq = 1890.0
default-lte-band = 39
default-lte-n-rb-dl = 100
default-lte-tx-gain = 70
default-lte-rx-gain = 30
default-dl-nr-arfcn = 378000
default-nr-band = 39
default-nr-dl-freq = 1890.0
default-nr-bandwidth = 40
default-nr-tx-gain = 70
default-nr-rx-gain = 50
min-frequency = 1880.0
max-frequency = 1920
\ No newline at end of file
......@@ -7,26 +7,42 @@
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-enb-tdd1900-input-schema.json",
"response": "instance-enb-schema.json",
"request": "instance-tdd1900-enb-input-schema.json",
"response": "instance-tdd1900-enb-schema.json",
"index": 0
},
"enb-epc": {
"title": "eNB and EPC",
"software-type": "enb-epc",
"description": "eNodeB and EPC Configuration",
"request": "instance-tdd1900-enb-epc-input-schema.json",
"response": "instance-tdd1900-enb-epc-schema.json",
"index": 1
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-tdd1900-gnb-input-schema.json",
"response": "instance-tdd1900-gnb-schema.json",
"index": 2
},
"gnb-epc": {
"title": "gNB and EPC",
"software-type": "gnb-epc",
"description": "gNodeB and EPC Configuration",
"request": "instance-tdd1900-gnb-epc-input-schema.json",
"response": "instance-tdd1900-gnb-epc-schema.json",
"index": 3
},
"epc": {
"title": "EPC",
"software-type": "epc",
"description": "EPC Configuration",
"request": "instance-epc-input-schema.json",
"response": "instance-epc-schema.json",
"index": 1
"index": 4
},
"default": {
"title": "Default",
"software-type": "default",
"description": "Default",
"request": "instance-lte-input-schema.json",
"response": "instance-lte-schema.json",
"index": 2
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
......@@ -34,7 +50,7 @@
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 3
"index": 5
}
}
}
}
\ No newline at end of file
......@@ -3,7 +3,19 @@ extends =
software.cfg
[enb]
# 2600 Mhz (band 38)
default-dl-earfcn = 38050
default-lte-dl-freq = 2600.0
default-lte-band = 38
default-lte-n-rb-dl = 100
default-lte-tx-gain = 70
default-lte-rx-gain = 30
default-dl-nr-arfcn = 520000
default-nr-band = 38
default-nr-dl-freq = 2600.0
default-nr-bandwidth = 40
default-nr-tx-gain = 70
default-nr-rx-gain = 50
min-frequency = 2570
max-frequency = 2620
max-frequency = 2620
\ No newline at end of file
......@@ -7,26 +7,42 @@
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-enb-tdd2600-input-schema.json",
"response": "instance-enb-schema.json",
"request": "instance-tdd2600-enb-input-schema.json",
"response": "instance-tdd2600-enb-schema.json",
"index": 0
},
"enb-epc": {
"title": "eNB and EPC",
"software-type": "enb-epc",
"description": "eNodeB and EPC Configuration",
"request": "instance-tdd2600-enb-epc-input-schema.json",
"response": "instance-tdd2600-enb-epc-schema.json",
"index": 1
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-tdd2600-gnb-input-schema.json",
"response": "instance-tdd2600-gnb-schema.json",
"index": 2
},
"gnb-epc": {
"title": "gNB and EPC",
"software-type": "gnb-epc",
"description": "gNodeB and EPC Configuration",
"request": "instance-tdd2600-gnb-epc-input-schema.json",
"response": "instance-tdd2600-gnb-epc-schema.json",
"index": 3
},
"epc": {
"title": "EPC",
"software-type": "epc",
"description": "EPC Configuration",
"request": "instance-epc-input-schema.json",
"response": "instance-epc-schema.json",
"index": 1
"index": 4
},
"default": {
"title": "Default",
"software-type": "default",
"description": "Default",
"request": "instance-lte-input-schema.json",
"response": "instance-lte-schema.json",
"index": 2
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
......@@ -34,7 +50,7 @@
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 3
"index": 5
}
}
}
}
\ No newline at end of file
......@@ -3,7 +3,19 @@ extends =
software.cfg
[enb]
# 3500 Mhz (band 42)
default-dl-earfcn = 42590
default-lte-dl-freq = 3500.0
default-lte-band = 42
default-lte-n-rb-dl = 100
default-lte-tx-gain = 70
default-lte-rx-gain = 30
default-dl-nr-arfcn = 632628
default-nr-band = 78
default-nr-dl-freq = 3489.42
default-nr-bandwidth = 40
default-nr-tx-gain = 70
default-nr-rx-gain = 50
min-frequency = 3400
max-frequency = 3600
max-frequency = 3600
\ No newline at end of file
......@@ -7,26 +7,42 @@
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-enb-tdd3500-input-schema.json",
"response": "instance-enb-schema.json",
"request": "instance-tdd3500-enb-input-schema.json",
"response": "instance-tdd3500-enb-schema.json",
"index": 0
},
"enb-epc": {
"title": "eNB and EPC",
"software-type": "enb-epc",
"description": "eNodeB and EPC Configuration",
"request": "instance-tdd3500-enb-epc-input-schema.json",
"response": "instance-tdd3500-enb-epc-schema.json",
"index": 1
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-tdd3500-gnb-input-schema.json",
"response": "instance-tdd3500-gnb-schema.json",
"index": 2
},
"gnb-epc": {
"title": "gNB and EPC",
"software-type": "gnb-epc",
"description": "gNodeB and EPC Configuration",
"request": "instance-tdd3500-gnb-epc-input-schema.json",
"response": "instance-tdd3500-gnb-epc-schema.json",
"index": 3
},
"epc": {
"title": "EPC",
"software-type": "epc",
"description": "EPC Configuration",
"request": "instance-epc-input-schema.json",
"response": "instance-epc-schema.json",
"index": 1
"index": 4
},
"default": {
"title": "Default",
"software-type": "default",
"description": "Default",
"request": "instance-lte-input-schema.json",
"response": "instance-lte-schema.json",
"index": 2
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
......@@ -34,7 +50,7 @@
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 3
"index": 5
}
}
}
}
\ No newline at end of file
......@@ -3,7 +3,19 @@ extends =
software.cfg
[enb]
# 3700 MHz (band 43)
default-dl-earfcn = 44590
default-lte-dl-freq = 3700.0
default-lte-band = 43
default-lte-n-rb-dl = 100
default-lte-tx-gain = 70
default-lte-rx-gain = 30
default-dl-nr-arfcn = 646666
default-nr-band = 78
default-nr-dl-freq = 3699.99
default-nr-bandwidth = 40
default-nr-tx-gain = 70
default-nr-rx-gain = 50
min-frequency = 3600
max-frequency = 3800
max-frequency = 3800
\ No newline at end of file
......@@ -7,26 +7,42 @@
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-enb-tdd3700-input-schema.json",
"response": "instance-enb-schema.json",
"request": "instance-tdd3700-enb-input-schema.json",
"response": "instance-tdd3700-enb-schema.json",
"index": 0
},
"enb-epc": {
"title": "eNB and EPC",
"software-type": "enb-epc",
"description": "eNodeB and EPC Configuration",
"request": "instance-tdd3700-enb-epc-input-schema.json",
"response": "instance-tdd3700-enb-epc-schema.json",
"index": 1
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-tdd3700-gnb-input-schema.json",
"response": "instance-tdd3700-gnb-schema.json",
"index": 2
},
"gnb-epc": {
"title": "gNB and EPC",
"software-type": "gnb-epc",
"description": "gNodeB and EPC Configuration",
"request": "instance-tdd3700-gnb-epc-input-schema.json",
"response": "instance-tdd3700-gnb-epc-schema.json",
"index": 3
},
"epc": {
"title": "EPC",
"software-type": "epc",
"description": "EPC Configuration",
"request": "instance-epc-input-schema.json",
"response": "instance-epc-schema.json",
"index": 1
"index": 4
},
"default": {
"title": "Default",
"software-type": "default",
"description": "Default",
"request": "instance-lte-input-schema.json",
"response": "instance-lte-schema.json",
"index": 2
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
......@@ -34,7 +50,7 @@
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 3
"index": 5
}
}
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ parts +=
mme.jinja2.cfg
ims.jinja2.cfg
enb.jinja2.cfg
gnb.jinja2.cfg
ue_db.jinja2.cfg
# sdr driver is dependent on ENB thus should be added explicitely by software.cfg
sdr-driver
......@@ -35,12 +36,18 @@ recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_update_hash_filename_}
mode = 0644
[template-lte-default]
[template-lte-enb-epc]
<= download-base
[template-lte-gnb-epc]
<= download-base
[template-lte-enb]
<= download-base
[template-lte-gnb]
<= download-base
[template-lte-epc]
<= download-base
......@@ -70,6 +77,9 @@ on-update = true
[enb.jinja2.cfg]
<= copy-config-to-instance
filename = enb.jinja2.cfg
[gnb.jinja2.cfg]
<= copy-config-to-instance
filename = gnb.jinja2.cfg
[ltelogs.jinja2.sh]
<= copy-to-instance
filename = ltelogs.jinja2.sh
......@@ -91,9 +101,8 @@ md5sum = ${trx_sdr-linux:md5sum}
[sdr-driver]
# move trx_sdr.so next to lteenb binary
recipe = slapos.recipe.build:download
url = ${sdr:destination}/trx_sdr.so
destination = ${enb:destination}/trx_sdr.so
recipe = plone.recipe.command
command = cp -p ${sdr:destination}/trx_sdr.so ${enb:destination}
[enb]
<= unpack-to-instance
......
{
"name": "LTE",
"description": "LTE",
"serialisation": "xml",
"software-type": {
"enb": {
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-{{ rf_mode }}-enb-input-schema.json",
"response": "instance-{{ rf_mode }}-enb-schema.json",
"index": 0
},
"enb-epc": {
"title": "eNB and EPC",
"software-type": "enb-epc",
"description": "eNodeB and EPC Configuration",
"request": "instance-{{ rf_mode }}-enb-epc-input-schema.json",
"response": "instance-{{ rf_mode }}-enb-epc-schema.json",
"index": 1
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-{{ rf_mode }}-gnb-input-schema.json",
"response": "instance-{{ rf_mode }}-gnb-schema.json",
"index": 2
},
"gnb-epc": {
"title": "gNB and EPC",
"software-type": "gnb-epc",
"description": "gNodeB and EPC Configuration",
"request": "instance-{{ rf_mode }}-gnb-epc-input-schema.json",
"response": "instance-{{ rf_mode }}-gnb-epc-schema.json",
"index": 3
},
"epc": {
"title": "EPC",
"software-type": "epc",
"description": "EPC Configuration",
"request": "instance-epc-input-schema.json",
"response": "instance-epc-schema.json",
"index": 4
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
}
}
}
[buildout]
extends =
software.cfg
[enb]
default-dl-earfcn = {{ default_dl_earfcn }}
default-lte-dl-freq = {{ default_lte_dl_freq }}
default-lte-band = {{ default_lte_band }}
default-lte-n-rb-dl = {{ default_lte_n_rb_dl }}
default-lte-tx-gain = {{ default_lte_tx_gain }}
default-lte-rx-gain = {{ default_lte_rx_gain }}
default-dl-nr-arfcn = {{ default_dl_nr_arfcn }}
default-nr-band = {{ default_nr_band }}
default-nr-dl-freq = {{ default_nr_dl_freq }}
default-nr-bandwidth = {{ default_nr_bandwidth }}
default-nr-tx-gain = {{ default_nr_tx_gain }}
default-nr-rx-gain = {{ default_nr_rx_gain }}
min-frequency = {{ min_frequency }}
max-frequency = {{ max_frequency }}
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