Commit d015c20c authored by Kirill Smelkov's avatar Kirill Smelkov

software/ors-amarisoft: enb: Start to generalize the code to handle multiple cells

As with Radio Units organize a registry of cells and start to handle that
registry generally everywhere. Make parameters that configure cells, for
example tdd_ul_dl_config, dl_earfcn, bandwidth, pci, etc to be per-cell.

Cell registry is still populated from cell_list and slapparameter_dict.

Tests will be added later as full tests for generic MultiRU.

Rendered enb.cfg and gnb.cfg stay practically the same.

Backward compatibility: no change for ORS; For everything else cell parameters
stop to be global and are moved to cell_list.

--------

Appendix. Diff for rendered enb.cfg and gnb.cfg before and after this patch:

```
$ ./pythonwitheggs slapos-render-config.py && xdiff -w config/{old,out}
```

```diff
diff --git a/config/old/enb.cfg b/config/out/enb.cfg
index 5c6743c21..1b39f7044 100644
--- a/config/old/enb.cfg
+++ b/config/out/enb.cfg
@@ -1,6 +1,3 @@
-
-
-
 {
   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,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
   log_filename: "log/enb.log",
@@ -93,11 +90,11 @@
       srs_hopping_bandwidth: 0,
     },

-    drb_config: "drb",
+    drb_config: "default-drb.cfg",

     sib_sched_list: [
       {
-        filename: "sib",
+        filename: "default-sib23.asn",
         si_periodicity: 16,
       },
     ],
diff --git a/config/old/gnb.cfg b/config/out/gnb.cfg
index 6b04559c6..1fa637925 100644
--- a/config/old/gnb.cfg
+++ b/config/out/gnb.cfg
@@ -1,6 +1,3 @@
-
-
-
 {
   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,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
   log_filename: "log/enb.log",
@@ -77,7 +74,6 @@
     manual_ref_signal_power: true,
     ss_pbch_block_power: 8,

-
     tdd_ul_dl_config: {
       pattern1: {
          period: 5, /* in ms */
@@ -148,7 +144,7 @@
       ],
     },

-    drb_config: "drb",
+    drb_config: "default-drb.cfg",
   },
   ],
   nr_cell_default: {
```
parent cbe59f7c
// DRB configuration for LTE cell. // DRB configuration for LTE cell {{ cell_ref }} @ {{ ru_ref }}.
// DRB configuration vary in beteen FDD and TDD modes. // DRB configuration vary in beteen FDD and TDD modes.
{% set T_REORDERING = {'fdd': 35, 'tdd': 65} [rf_mode] %} {% set T_REORDERING = {'fdd': 35, 'tdd': 65} [cell.rf_mode] %}
// {{ rf_mode | upper }} T_REORDERING={{ T_REORDERING }} // {{ cell.rf_mode | upper }} T_REORDERING={{ T_REORDERING }}
[ [
{ {
......
// DRB configuration for NR cell. // DRB configuration for NR cell {{ cell_ref }} @ {{ ru_ref }}.
[ [
{ {
......
...@@ -86,25 +86,6 @@ ...@@ -86,25 +86,6 @@
{{- (_.host, _.port) | tojson }} {{- (_.host, _.port) | tojson }}
{%- endmacro -%} {%- endmacro -%}
{%- if do_lte %}
{%- if slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)') == '[Configuration 2] 5ms 2UL 6DL (default)' %}
{%- set tdd_config = 2 %}
{%- elif slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)') == '[Configuration 6] 5ms 5UL 3DL (maximum uplink)' %}
{%- set tdd_config = 6 %}
{%- endif %}
{%- endif %}
{%- if do_nr %}
{%- if slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)') == '5ms 2UL 7DL 4/6 (default)' %}
{%- set tdd_config = 1 %}
{%- elif slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)') == '2.5ms 1UL 3DL 2/10' %}
{%- set tdd_config = 2 %}
{%- elif slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)') == '5ms 8UL 1DL 2/10 (maximum uplink)' %}
{%- set tdd_config = 3 %}
{%- endif %}
{%- endif %}
{ {
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,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1, log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,s1ap.level=debug,s1ap.max_size=1,x2ap.level=debug,x2ap.max_size=1,rrc.level=debug,rrc.max_size=1,ngap.level=debug,ngap.max_size=1,xnap.level=debug,xnap.max_size=1,
{%- if slapparameter_dict.get('log_phy_debug', False) -%} {%- if slapparameter_dict.get('log_phy_debug', False) -%}
...@@ -213,12 +194,12 @@ ...@@ -213,12 +194,12 @@
n_antenna_dl: {{ ru.n_antenna_dl }}, n_antenna_dl: {{ ru.n_antenna_dl }},
n_antenna_ul: {{ ru.n_antenna_ul }}, n_antenna_ul: {{ ru.n_antenna_ul }},
cell_id: {{ cell.get('cell_id', slapparameter_dict.get('cell_id', '0x0' + i|string)) }}, cell_id: {{ cell.cell_id }},
tac: {{ cell.get('tac', slapparameter_dict.get('tac', '0x0001')) }}, tac: {{ cell.tac }},
n_id_cell: {{ cell.get('pci', slapparameter_dict.get('pci', i)) }}, n_id_cell: {{ cell.pci }},
root_sequence_index: {{ cell.get('root_sequence_index', slapparameter_dict.get('root_sequence_index', 204 + i)) }}, root_sequence_index: {{ cell.root_sequence_index }},
dl_earfcn: {{ cell.get('dl_earfcn', slapparameter_dict.get('dl_earfcn', earfcn)) }}, dl_earfcn: {{ cell.dl_earfcn }},
inactivity_timer: {{ slapparameter_dict.get('inactivity_timer', default_lte_inactivity_timer) }}, inactivity_timer: {{ cell.inactivity_timer }},
// Handover // Handover
{{- handover_config() }} {{- handover_config() }}
...@@ -237,7 +218,7 @@ ...@@ -237,7 +218,7 @@
{%- else -%} {%- else -%}
, { , {
{%- endif %} {%- endif %}
cell_id: {{ cell_dict[l[1]].get('cell_id', '0x0' + l[0]|string) }}, cell_id: {{ cell_dict[l[1]].cell_id }},
cross_carrier_scheduling: false, cross_carrier_scheduling: false,
} }
{%- endfor %} {%- endfor %}
...@@ -248,13 +229,17 @@ ...@@ -248,13 +229,17 @@
manual_ref_signal_power: true, manual_ref_signal_power: true,
{% endif %} {% endif %}
{%- set tdd = (rf_mode == 'tdd') %} {%- set tdd = (cell.rf_mode == 'tdd') %}
{%- if tdd %} {%- if tdd %}
uldl_config: {{ tdd_config }}, uldl_config: {{
{'[Configuration 2] 5ms 2UL 6DL (default)': 2,
'[Configuration 6] 5ms 5UL 3DL (maximum uplink)': 6}
[cell.tdd_ul_dl_config]
}},
sp_config: 7, sp_config: 7,
{%- endif %} {%- endif %}
{%- set n_rb_dl = J(jlte_n_rb_dl(slapparameter_dict.get('bandwidth', default_lte_bandwidth))) %} {%- set n_rb_dl = J(jlte_n_rb_dl(cell.bandwidth)) %}
n_rb_dl: {{ n_rb_dl }}, n_rb_dl: {{ n_rb_dl }},
si_coderate: {{ 0.30 if n_rb_dl == 6 else 0.20 }}, si_coderate: {{ 0.30 if n_rb_dl == 6 else 0.20 }},
...@@ -314,11 +299,11 @@ ...@@ -314,11 +299,11 @@
srs_hopping_bandwidth: 0, srs_hopping_bandwidth: 0,
}, },
drb_config: "{{ drb_file }}", drb_config: "{{ '%s-drb.cfg' % cell_ref }}",
sib_sched_list: [ sib_sched_list: [
{ {
filename: "{{ sib23_file }}", filename: "{{ '%s-sib23.asn' % cell_ref }}",
si_periodicity: 16, si_periodicity: 16,
}, },
], ],
...@@ -430,8 +415,9 @@ ...@@ -430,8 +415,9 @@
{%- endif %} {%- endif %}
{% if do_nr %} {% if do_nr %}
{%- do assert(len(ru_dict) == 1, 'MultiCELL/MultiRU is TODO for NR') %} {%- do assert(len(ru_dict) == len(cell_dict) == 1, 'MultiCELL/MultiRU is TODO for NR') %}
{%- set ru = list(ru_dict.values())[0] %} {%- set ru = list(ru_dict.values())[0] %}
{%- set cell_ref, cell = list(cell_dict.items())[0] %}
// NR cells // NR cells
nr_cell_list: [ nr_cell_list: [
{ {
...@@ -439,16 +425,16 @@ ...@@ -439,16 +425,16 @@
n_antenna_dl: {{ ru.n_antenna_dl }}, n_antenna_dl: {{ ru.n_antenna_dl }},
n_antenna_ul: {{ ru.n_antenna_ul }}, n_antenna_ul: {{ ru.n_antenna_ul }},
cell_id: {{ slapparameter_dict.get('cell_id', '0x01') }}, cell_id: {{ cell.cell_id }},
n_id_cell: {{ slapparameter_dict.get('pci', 500) }}, n_id_cell: {{ cell.pci }},
band: {{ nr_band }}, band: {{ cell.nr_band }},
dl_nr_arfcn: {{ nr_arfcn }}, dl_nr_arfcn: {{ cell.dl_nr_arfcn }},
bandwidth: {{ slapparameter_dict.get('nr_bandwidth', default_nr_bandwidth) }}, bandwidth: {{ cell.bandwidth }},
subcarrier_spacing: 30, subcarrier_spacing: 30,
ssb_pos_bitmap: "{{ slapparameter_dict.get('ssb_pos_bitmap', default_nr_ssb_pos_bitmap) }}", ssb_pos_bitmap: "{{ cell.ssb_pos_bitmap }}",
inactivity_timer: {{ slapparameter_dict.get('inactivity_timer', default_nr_inactivity_timer) }}, inactivity_timer: {{ cell.inactivity_timer }},
// Handover // Handover
{{- handover_config() }} {{- handover_config() }}
...@@ -463,6 +449,13 @@ ...@@ -463,6 +449,13 @@
{%- endif -%} {%- endif -%}
{%- endif %} {%- endif %}
{%- set tdd = (cell.rf_mode == 'tdd') %}
{%- set tdd_config =
{'5ms 2UL 7DL 4/6 (default)': 1,
'2.5ms 1UL 3DL 2/10': 2,
'5ms 8UL 1DL 2/10 (maximum uplink)': 3}
[cell.tdd_ul_dl_config]
if tdd else None %}
{% if tdd_config == 1 %} {% if tdd_config == 1 %}
tdd_ul_dl_config: { tdd_ul_dl_config: {
pattern1: { pattern1: {
...@@ -684,7 +677,7 @@ ...@@ -684,7 +677,7 @@
], ],
}, },
drb_config: "{{ drb_file }}", drb_config: "{{ '%s-drb.cfg' % cell_ref }}",
}, },
], ],
nr_cell_default: { nr_cell_default: {
......
/* SIB2/SIB3 for {{ cell.cell_type | upper }} cell {{ cell_ref }} @ {{ ru_ref }}. */
{ {
message c1: systemInformation: { message c1: systemInformation: {
criticalExtensions systemInformation-r8: { criticalExtensions systemInformation-r8: {
...@@ -38,9 +39,9 @@ ...@@ -38,9 +39,9 @@
pdsch-ConfigCommon { pdsch-ConfigCommon {
{% if ors %} {% if ors %}
{%- if ors['one-watt'] %} {%- if ors['one-watt'] %}
referenceSignalPower {{ (tx_gain | int) - 54 }}, /* patched by eNB */ referenceSignalPower {{ (ru.tx_gain | int) - 54 }}, /* patched by eNB */
{%- else %} {%- else %}
referenceSignalPower {{ (tx_gain | int) - 35 }}, /* patched by eNB */ referenceSignalPower {{ (ru.tx_gain | int) - 35 }}, /* patched by eNB */
{%- endif %} {%- endif %}
{% else %} {% else %}
referenceSignalPower -8, /* patched by eNB */ referenceSignalPower -8, /* patched by eNB */
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
{%- if bbu == 'ors' %}
"bandwidth": { "bandwidth": {
"title": "Bandwidth", "title": "Bandwidth",
"description": "Downlink Bandwidth", "description": "Downlink Bandwidth",
...@@ -17,6 +18,7 @@ ...@@ -17,6 +18,7 @@
], ],
"default": "{{ default_lte_bandwidth }}" "default": "{{ default_lte_bandwidth }}"
}, },
{%- endif %}
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
{%- if bbu == 'ors' %} {%- if bbu == 'ors' %}
...@@ -37,6 +39,7 @@ ...@@ -37,6 +39,7 @@
"type": "number", "type": "number",
"default": {{ default_n_antenna_ul }} "default": {{ default_n_antenna_ul }}
}, },
{%- if bbu == 'ors' %}
{%- if rf_mode == 'tdd' %} {%- if rf_mode == 'tdd' %}
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
...@@ -49,7 +52,6 @@ ...@@ -49,7 +52,6 @@
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)"
}, },
{%- endif %} {%- endif %}
{%- if bbu == 'ors' %}
"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",
...@@ -86,6 +88,18 @@ ...@@ -86,6 +88,18 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
{%- if rf_mode == 'tdd' %}
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
],
"default": "[Configuration 2] 5ms 2UL 6DL (default)"
},
{%- endif %}
{%- if trx == 'cpri' %} {%- if trx == 'cpri' %}
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
...@@ -191,6 +205,20 @@ ...@@ -191,6 +205,20 @@
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "{{ default_lte_bandwidth }}"
},
"pci": { "pci": {
"title": "Physical Cell ID", "title": "Physical Cell ID",
"description": "Physical Cell IDs", "description": "Physical Cell IDs",
...@@ -200,6 +228,24 @@ ...@@ -200,6 +228,24 @@
"title": "Cell ID", "title": "Cell ID",
"description": "Cell IDs", "description": "Cell IDs",
"type": "string" "type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Tracking Area Code in hexadecimal representation (range 0x0000 to 0xffff)",
"default": "0x0001",
"type": "string"
},
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": {{ default_lte_inactivity_timer }}
} }
}, },
"type": "object" "type": "object"
...@@ -358,12 +404,14 @@ ...@@ -358,12 +404,14 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
{%- if bbu == 'ors' %}
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number", "type": "number",
"default": {{ default_lte_inactivity_timer }} "default": {{ default_lte_inactivity_timer }}
}, },
{%- endif %}
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -202,11 +202,6 @@ context = ...@@ -202,11 +202,6 @@ context =
raw gtp_addr_v6 {{ my_ipv6 }} raw gtp_addr_v6 {{ my_ipv6 }}
raw gtp_addr_v4 {{ lan_ipv4 }} raw gtp_addr_v4 {{ lan_ipv4 }}
raw gtp_addr_lo {{ gtp_addr_lo }} raw gtp_addr_lo {{ gtp_addr_lo }}
raw tx_gain {{ RF.tx_gain }}
raw rx_gain {{ RF.rx_gain }}
raw earfcn {{ RF.dl_earfcn }}
raw nr_arfcn {{ RF.dl_nr_arfcn }}
raw nr_band {{ RF.nr_band }}
raw software_name {{ software_name }} raw software_name {{ software_name }}
raw rf_mode {{ rf_mode }} raw rf_mode {{ rf_mode }}
raw ru_type {{ ru_type }} raw ru_type {{ ru_type }}
...@@ -222,20 +217,6 @@ context = ...@@ -222,20 +217,6 @@ context =
import netaddr netaddr import netaddr netaddr
${:extra-context} ${:extra-context}
[sib-config]
<= config-base
url = {{ sib23_template }}
output = ${directory:etc}/sib23.cfg
[drb-config]
<= config-base
{%- if enb_mode == 'enb' %}
url = {{ drb_lte_template }}
{%- elif enb_mode == 'gnb' %}
url = {{ drb_nr_template }}
{%- endif %}
output = ${directory:etc}/drb.cfg
[enb-config] [enb-config]
<= config-base <= config-base
{% if slapparameter_dict.get("enb_config_link", None) %} {% if slapparameter_dict.get("enb_config_link", None) %}
...@@ -248,8 +229,6 @@ extra-context = ...@@ -248,8 +229,6 @@ extra-context =
import json_module json import json_module json
json ru_dict {{ rulib.ru_dict | tojson }} json ru_dict {{ rulib.ru_dict | tojson }}
json cell_dict {{ rulib.cell_dict | tojson }} json cell_dict {{ rulib.cell_dict | tojson }}
key sib23_file sib-config:output
key drb_file drb-config:output
import-list = import-list =
rawfile slaplte.jinja2 {{ slaplte_template }} rawfile slaplte.jinja2 {{ slaplte_template }}
...@@ -262,12 +241,6 @@ websocket_url = ws://[{{my_ipv6}}]:9001 ...@@ -262,12 +241,6 @@ websocket_url = ws://[{{my_ipv6}}]:9001
{%- endif %} {%- endif %}
enb-ipv6 = {{ my_ipv6 }} enb-ipv6 = {{ my_ipv6 }}
enb-ipv4 = {{ lan_ipv4 }} enb-ipv4 = {{ lan_ipv4 }}
{%- if enb_mode == 'enb' %}
current-earfcn = {{ RF.dl_earfcn }}
{%- elif enb_mode == 'gnb' %}
current-nr-arfcn = {{ RF.dl_nr_arfcn }}
current-nr-band = {{ RF.nr_band }}
{%- endif %}
amarisoft-version = {{ lte_version }} amarisoft-version = {{ lte_version }}
license-expiration = {{ lte_expiration }} license-expiration = {{ lte_expiration }}
monitor-gadget-url = ${:monitor-base-url}/gadget/software.cfg.html monitor-gadget-url = ${:monitor-base-url}/gadget/software.cfg.html
......
...@@ -3,20 +3,6 @@ ...@@ -3,20 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -40,6 +26,20 @@ ...@@ -40,6 +26,20 @@
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"pci": { "pci": {
"title": "Physical Cell ID", "title": "Physical Cell ID",
"description": "Physical Cell IDs", "description": "Physical Cell IDs",
...@@ -49,6 +49,24 @@ ...@@ -49,6 +49,24 @@
"title": "Cell ID", "title": "Cell ID",
"description": "Cell IDs", "description": "Cell IDs",
"type": "string" "type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Tracking Area Code in hexadecimal representation (range 0x0000 to 0xffff)",
"default": "0x0001",
"type": "string"
},
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
} }
}, },
"type": "object" "type": "object"
...@@ -202,12 +220,6 @@ ...@@ -202,12 +220,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -21,6 +15,12 @@ ...@@ -21,6 +15,12 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"dl_nr_arfcn": { "dl_nr_arfcn": {
"title": "DL NR ARFCN", "title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell", "description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
...@@ -31,6 +31,12 @@ ...@@ -31,6 +31,12 @@
"description": "NR band number", "description": "NR band number",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_pos_bitmap": { "ssb_pos_bitmap": {
"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).",
...@@ -49,12 +55,12 @@ ...@@ -49,12 +55,12 @@
"type": "string", "type": "string",
"default": "0x01" "default": "0x01"
}, },
"cell_list": { "inactivity_timer": {
"title": "Cell List", "title": "Inactivity Timer",
"description": "Cell List", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
"patternProperties": { "type": "number",
".*": { "default": 10000
"properties": { }
}, },
"type": "object" "type": "object"
} }
...@@ -270,12 +276,6 @@ ...@@ -270,12 +276,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,20 +3,6 @@ ...@@ -3,20 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -136,6 +122,20 @@ ...@@ -136,6 +122,20 @@
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"pci": { "pci": {
"title": "Physical Cell ID", "title": "Physical Cell ID",
"description": "Physical Cell IDs", "description": "Physical Cell IDs",
...@@ -145,6 +145,24 @@ ...@@ -145,6 +145,24 @@
"title": "Cell ID", "title": "Cell ID",
"description": "Cell IDs", "description": "Cell IDs",
"type": "string" "type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Tracking Area Code in hexadecimal representation (range 0x0000 to 0xffff)",
"default": "0x0001",
"type": "string"
},
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
} }
}, },
"type": "object" "type": "object"
...@@ -288,12 +306,6 @@ ...@@ -288,12 +306,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -21,34 +15,6 @@ ...@@ -21,34 +15,6 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"ssb_pos_bitmap": {
"title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string",
"default": 10000000
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 500
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"cell_list": { "cell_list": {
"title": "Cell List", "title": "Cell List",
"description": "Cell List", "description": "Cell List",
...@@ -151,6 +117,46 @@ ...@@ -151,6 +117,46 @@
"description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am", "description": "Refer https://crontab.guru/ to make a reset schedule for RRH, for example, '0 1 * * *' means the RRH will reset every day at 1 am",
"type": "string" "type": "string"
}, },
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_pos_bitmap": {
"title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string",
"default": 10000000
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 500
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
}
}, },
"type": "object" "type": "object"
} }
...@@ -356,12 +362,6 @@ ...@@ -356,12 +362,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,12 +3,14 @@ ...@@ -3,12 +3,14 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
{%- if bbu == 'ors' %}
"nr_bandwidth": { "nr_bandwidth": {
"title": "Bandwidth", "title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": {{ default_nr_bandwidth }} "default": {{ default_nr_bandwidth }}
}, },
{%- endif %}
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
{%- if bbu == 'ors' %} {%- if bbu == 'ors' %}
...@@ -29,6 +31,7 @@ ...@@ -29,6 +31,7 @@
"type": "number", "type": "number",
"default": {{ default_n_antenna_ul }} "default": {{ default_n_antenna_ul }}
}, },
{%- if bbu == 'ors' %}
{%- if rf_mode == 'tdd' %} {%- if rf_mode == 'tdd' %}
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
...@@ -70,13 +73,26 @@ ...@@ -70,13 +73,26 @@
"type": "string", "type": "string",
"default": "0x01" "default": "0x01"
}, },
{%- if bbu != 'ors' %} {%- else %}
"cell_list": { "cell_list": {
"title": "Cell List", "title": "Cell List",
"description": "Cell List", "description": "Cell List",
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
{%- if rf_mode == 'tdd' %}
"tdd_ul_dl_config": {
"title": "TDD",
"description": "TDD",
"type": "string",
"enum": [
"5ms 2UL 7DL 4/6 (default)",
"2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)"
],
"default": "5ms 2UL 7DL 4/6 (default)"
},
{%- endif %}
{%- if trx == 'cpri' %} {%- if trx == 'cpri' %}
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
...@@ -177,6 +193,46 @@ ...@@ -177,6 +193,46 @@
"type": "string" "type": "string"
}, },
{%- endif %} {%- endif %}
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": {{ default_nr_bandwidth }}
},
"ssb_pos_bitmap": {
"title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string",
"default": {{ default_nr_ssb_pos_bitmap }}
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 500
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": {{ default_nr_inactivity_timer }}
}
}, },
"type": "object" "type": "object"
} }
...@@ -397,12 +453,14 @@ ...@@ -397,12 +453,14 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
{%- if bbu == 'ors' %}
"inactivity_timer": { "inactivity_timer": {
"title": "Inactivity Timer", "title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number", "type": "number",
"default": {{ default_nr_inactivity_timer }} "default": {{ default_nr_inactivity_timer }}
}, },
{%- endif %}
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -59,3 +59,16 @@ current-earfcn = {{ ors_version['current-earfcn'] }} ...@@ -59,3 +59,16 @@ current-earfcn = {{ ors_version['current-earfcn'] }}
current-nr-arfcn = {{ ors_version['current-nr-arfcn'] }} current-nr-arfcn = {{ ors_version['current-nr-arfcn'] }}
current-nr-band = {{ ors_version['current-nr-band'] }} current-nr-band = {{ ors_version['current-nr-band'] }}
{%- endif %} {%- endif %}
# hide <cell>-* from published information
[publish-connection-information]
depends += ${publish-connection-information-ors-cleanup:recipe}
[publish-connection-information-ors-cleanup]
recipe = slapos.recipe.build
init =
publish = self.buildout['publish-connection-information']
cell_ref = "default"
for k in publish.keys():
if k.startswith('%s-' % cell_ref):
del publish[k]
...@@ -3,20 +3,6 @@ ...@@ -3,20 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -29,6 +15,12 @@ ...@@ -29,6 +15,12 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -39,17 +31,25 @@ ...@@ -39,17 +31,25 @@
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)"
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"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",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"pci": { "pci": {
"title": "Physical Cell ID", "title": "Physical Cell ID",
"description": "Physical Cell IDs", "description": "Physical Cell IDs",
...@@ -59,6 +59,24 @@ ...@@ -59,6 +59,24 @@
"title": "Cell ID", "title": "Cell ID",
"description": "Cell IDs", "description": "Cell IDs",
"type": "string" "type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Tracking Area Code in hexadecimal representation (range 0x0000 to 0xffff)",
"default": "0x0001",
"type": "string"
},
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
} }
}, },
"type": "object" "type": "object"
...@@ -212,12 +230,6 @@ ...@@ -212,12 +230,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -21,6 +15,12 @@ ...@@ -21,6 +15,12 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -42,6 +42,12 @@ ...@@ -42,6 +42,12 @@
"description": "NR band number", "description": "NR band number",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_pos_bitmap": { "ssb_pos_bitmap": {
"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).",
...@@ -60,12 +66,12 @@ ...@@ -60,12 +66,12 @@
"type": "string", "type": "string",
"default": "0x01" "default": "0x01"
}, },
"cell_list": { "inactivity_timer": {
"title": "Cell List", "title": "Inactivity Timer",
"description": "Cell List", "description": "Send RRC connection release after this time (in ms) of network inactivity.",
"patternProperties": { "type": "number",
".*": { "default": 10000
"properties": { }
}, },
"type": "object" "type": "object"
} }
...@@ -281,12 +287,6 @@ ...@@ -281,12 +287,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,20 +3,6 @@ ...@@ -3,20 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -29,6 +15,12 @@ ...@@ -29,6 +15,12 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -39,12 +31,6 @@ ...@@ -39,12 +31,6 @@
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)"
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
"description": "SDR Number", "description": "SDR Number",
...@@ -97,6 +83,20 @@ ...@@ -97,6 +83,20 @@
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell", "description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number" "type": "number"
}, },
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth",
"type": "string",
"enum": [
"1.4 MHz",
"3 MHz",
"5 MHz",
"10 MHz",
"15 MHz",
"20 MHz"
],
"default": "20 MHz"
},
"pci": { "pci": {
"title": "Physical Cell ID", "title": "Physical Cell ID",
"description": "Physical Cell IDs", "description": "Physical Cell IDs",
...@@ -106,6 +106,24 @@ ...@@ -106,6 +106,24 @@
"title": "Cell ID", "title": "Cell ID",
"description": "Cell IDs", "description": "Cell IDs",
"type": "string" "type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Tracking Area Code in hexadecimal representation (range 0x0000 to 0xffff)",
"default": "0x0001",
"type": "string"
},
"root_sequence_index": {
"title": "Root Sequence Index",
"description": "Range: 0 to 837. Set the PRACH root sequence index (SIB2.rootSequenceIndex field). It must be different for each neighbour cell operating on the same frequency and sharing the same PRACH configuration.",
"type": "number",
"default": 204
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
} }
}, },
"type": "object" "type": "object"
...@@ -249,12 +267,6 @@ ...@@ -249,12 +267,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.", "description": "1, 2, 4 or 8. Number of DL antennas.",
...@@ -21,6 +15,12 @@ ...@@ -21,6 +15,12 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -32,40 +32,6 @@ ...@@ -32,40 +32,6 @@
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)"
}, },
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"ssb_pos_bitmap": {
"title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string",
"default": 10000000
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 500
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
"description": "SDR Number", "description": "SDR Number",
...@@ -113,6 +79,46 @@ ...@@ -113,6 +79,46 @@
"description": "RU MAC address used for NETCONF", "description": "RU MAC address used for NETCONF",
"type": "string" "type": "string"
}, },
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_pos_bitmap": {
"title": "SSB Position Bitmap",
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string",
"default": 10000000
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 500
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
}
}, },
"type": "object" "type": "object"
} }
...@@ -318,12 +324,6 @@ ...@@ -318,12 +324,6 @@
"description": "Activates websocket for remote control and sets password", "description": "Activates websocket for remote control and sets password",
"type": "string" "type": "string"
}, },
"inactivity_timer": {
"title": "Inactivity Timer",
"description": "Send RRC connection release after this time (in ms) of network inactivity.",
"type": "number",
"default": 10000
},
"log_phy_debug": { "log_phy_debug": {
"title": "Physical layer log debug", "title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs", "description": "Enable debug mode for physical layer logs",
......
...@@ -206,7 +206,46 @@ config-max-rx-sample-db = {{ slapparameter_dict.get("max_rx_sample_db", 0) }} ...@@ -206,7 +206,46 @@ config-max-rx-sample-db = {{ slapparameter_dict.get("max_rx_sample_db", 0) }}
{{ rudrv.buildout() }} {{ rudrv.buildout() }}
{%- do rudrv_init.update({ru.ru_type: 1}) %} {%- do rudrv_init.update({ru.ru_type: 1}) %}
{%- endif %} {%- endif %}
{{ rudrv.buildout_ru(ru_ref, ru) }} {{ rudrv.buildout_ru(ru_ref, ru, ru.cell_ref, cell_dict[ru.cell_ref]) }}
{%- endfor %}
{#- handle configured cells #}
{%- for cell_ref, cell in cell_dict|dictsort %}
{%- set ru_ref = cell.ru_ref %}
{%- set ru = ru_dict[ru_ref] %}
{#- generate CELL-drb.cfg and CELL-sib23.asn #}
{{ part('drb-config-%s' % cell_ref) }}
<= config-base
url = {{ {'lte': drb_lte_template, 'nr': drb_nr_template} [cell.cell_type] }}
output = ${directory:etc}/{{'%s-drb.cfg' % cell_ref}}
extra-context =
json cell_ref {{ cell_ref | tojson }}
json cell {{ cell | tojson }}
json ru_ref {{ ru_ref | tojson }}
json ru {{ ru | tojson }}
{{ part('sib23-config-%s' % cell_ref) }}
<= config-base
url = {{ sib23_template }}
output = ${directory:etc}/{{'%s-sib23.asn' % cell_ref}}
extra-context =
json cell_ref {{ cell_ref | tojson }}
json cell {{ cell | tojson }}
json ru_ref {{ ru_ref | tojson }}
json ru {{ ru | tojson }}
{#- publish information about the cell #}
[publish-connection-information]
{%- if cell.cell_type == 'lte' %}
{{cell_ref}}-dl_earfcn = {{ dumps(cell.dl_earfcn) }}
{%- elif cell.cell_type == 'nr' %}
{{cell_ref}}-band = {{ dumps('n%d' % cell.nr_band) }}
{{cell_ref}}-dl_nr_arfcn = {{ dumps(cell.dl_nr_arfcn) }}
{%- else %}
{%- do bug('unreachable') %}
{%- endif %}
{%- endfor %} {%- endfor %}
{#- retrieve rf and stats[rf,samples] data from amarisoft service for promises {#- retrieve rf and stats[rf,samples] data from amarisoft service for promises
......
...@@ -88,14 +88,23 @@ ...@@ -88,14 +88,23 @@
<!-- TX/RX carriers --> <!-- TX/RX carriers -->
{%- if cell.cell_type == 'lte' %}
{%- set dl_arfcn = cell.dl_earfcn %}
{%- set bw = int(float(cell.bandwidth.removesuffix(' MHz')) * 1e6) %}
{%- elif cell.cell_type == 'nr' %}
{%- set dl_arfcn = cell.dl_nr_arfcn %}
{%- set bw = int(cell.bandwidth * 1e6) %}
{%- else %}
{%- do bug('unreachable') %}
{%- endif %}
<tx-array-carriers> <tx-array-carriers>
<name>{{ TxCarrier }}</name> <name>{{ TxCarrier }}</name>
<absolute-frequency-center>{{ slapparameter_dict.get('dl_earfcn', 300) }}</absolute-frequency-center> <absolute-frequency-center>{{ dl_arfcn }}</absolute-frequency-center>
<center-of-channel-bandwidth>{{ 1000000*ru.get('txa0cc00_center_frequency', 2140) }}</center-of-channel-bandwidth> <center-of-channel-bandwidth>{{ 1000000*ru.get('txa0cc00_center_frequency', 2140) }}</center-of-channel-bandwidth>
<channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth> <channel-bandwidth>{{ bw }}</channel-bandwidth>
<active>{{ ru.get('txa0cc00_active', 'INACTIVE') }}</active> <active>{{ ru.get('txa0cc00_active', 'INACTIVE') }}</active>
<rw-type>LTE</rw-type> <rw-type>{{ cell.cell_type | upper }}</rw-type>
<rw-duplex-scheme>FDD</rw-duplex-scheme> <rw-duplex-scheme>{{ cell.rf_mode | upper }}</rw-duplex-scheme>
<gain>{{ ru.get('txa0cc00_gain', '-20') }}</gain> <gain>{{ ru.get('txa0cc00_gain', '-20') }}</gain>
<downlink-radio-frame-offset>0</downlink-radio-frame-offset> <downlink-radio-frame-offset>0</downlink-radio-frame-offset>
<downlink-sfn-offset>0</downlink-sfn-offset> <downlink-sfn-offset>0</downlink-sfn-offset>
...@@ -104,7 +113,7 @@ ...@@ -104,7 +113,7 @@
<name>{{ RxCarrier }}</name> <name>{{ RxCarrier }}</name>
<absolute-frequency-center>{{ ru.get('rxa0cc00_center_frequency_earfcn', 18300) }}</absolute-frequency-center> <absolute-frequency-center>{{ ru.get('rxa0cc00_center_frequency_earfcn', 18300) }}</absolute-frequency-center>
<center-of-channel-bandwidth>{{ 1000000*ru.get('rxa0cc00_center_frequency', 1950) }}</center-of-channel-bandwidth> <center-of-channel-bandwidth>{{ 1000000*ru.get('rxa0cc00_center_frequency', 1950) }}</center-of-channel-bandwidth>
<channel-bandwidth>{{ {'1.4 MHz': 1400000, '3 MHz': 3000000, '5 MHz': 5000000, '10 MHz': 10000000, '15 MHz': 15000000, '20 MHz': 20000000}.get(slapparameter_dict.get('bandwidth'), '20 MHz') }}</channel-bandwidth> <channel-bandwidth>{{ bw }}</channel-bandwidth>
<active>{{ ru.get('rxa0cc00_active', 'INACTIVE') }}</active> <active>{{ ru.get('rxa0cc00_active', 'INACTIVE') }}</active>
<downlink-radio-frame-offset>0</downlink-radio-frame-offset> <downlink-radio-frame-offset>0</downlink-radio-frame-offset>
<downlink-sfn-offset>0</downlink-sfn-offset> <downlink-sfn-offset>0</downlink-sfn-offset>
......
{#- Package ru/lopcomm/libinstance provides instance code for handling Lopcomm ORAN Radio Units. #} {#- Package ru/lopcomm/libinstance provides instance code for handling Lopcomm ORAN Radio Units. #}
{%- macro buildout_ru(ru_ref, ru) %} {%- macro buildout_ru(ru_ref, ru, cell_ref, cell) %}
{#- indicate whether RU is listening for netconf #} {#- indicate whether RU is listening for netconf #}
...@@ -66,6 +66,7 @@ url = {{ ru_lopcomm_cu_config_template }} ...@@ -66,6 +66,7 @@ url = {{ ru_lopcomm_cu_config_template }}
output = ${directory:etc}/{{ru_ref}}-cu_config.xml output = ${directory:etc}/{{ru_ref}}-cu_config.xml
extra-context = extra-context =
json ru {{ ru | tojson }} json ru {{ ru | tojson }}
json cell {{ cell | tojson }}
[{{ru_ref}}-config-template] [{{ru_ref}}-config-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
......
{#- Package ru/sdr/libinstance provides instance code for handling SDR Radio Units. #} {#- Package ru/sdr/libinstance provides instance code for handling SDR Radio Units. #}
{%- macro buildout_ru(ru_ref, ru) %} {%- macro buildout_ru(ru_ref, ru, cell_ref, cell) %}
{#- nothing SDR-specific #} {#- nothing SDR-specific #}
{%- endmacro %} {%- endmacro %}
......
{#- Package ru/sunwave/libinstance provides instance code for handling SunWave Radio Units. #} {#- Package ru/sunwave/libinstance provides instance code for handling SunWave Radio Units. #}
{%- macro buildout_ru(ru_ref, ru) %} {%- macro buildout_ru(ru_ref, ru, cell_ref, cell) %}
{#- nothing SunWave-specific #} {#- nothing SunWave-specific #}
{%- endmacro %} {%- endmacro %}
......
...@@ -139,6 +139,34 @@ ...@@ -139,6 +139,34 @@
{%- do _ru_set_defaults(ru) %} {%- do _ru_set_defaults(ru) %}
{%- do ru_dict.update({ru_ref: ru}) %} {%- do ru_dict.update({ru_ref: ru}) %}
{%- do cell.update({'cell_type': 'lte' if do_lte else 'nr'}) %}
{%- do cell.update({'rf_mode': rf_mode}) %}
{%- if do_lte %}
{%- if cell.rf_mode == 'tdd' %}
{%- do cell.setdefault('tdd_ul_dl_config', slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)')) %}
{%- endif %}
{%- do cell.setdefault('cell_id', slapparameter_dict.get('cell_id', '0x0' + i|string)) %}
{%- do cell.setdefault('tac', slapparameter_dict.get('tac', '0x0001')) %}
{%- do cell.setdefault('pci', slapparameter_dict.get('pci', i)) %}
{%- do cell.setdefault('dl_earfcn', slapparameter_dict.get('dl_earfcn', RF.dl_earfcn)) %}
{%- do cell.setdefault('bandwidth', slapparameter_dict.get('bandwidth', default_lte_bandwidth)) %}
{%- do cell.setdefault('root_sequence_index', slapparameter_dict.get('root_sequence_index', 204 + i)) %}
{%- do cell.setdefault('inactivity_timer', slapparameter_dict.get('inactivity_timer', default_lte_inactivity_timer)) %}
{%- elif do_nr %}
{%- if cell.rf_mode == 'tdd' %}
{%- do cell.setdefault('tdd_ul_dl_config', slapparameter_dict.get('tdd_ul_dl_config', '5ms 2UL 7DL 4/6 (default)')) %}
{%- endif %}
{%- do cell.setdefault('cell_id', slapparameter_dict.get('cell_id', '0x01')) %}
{%- do cell.setdefault('pci', slapparameter_dict.get('pci', 500)) %}
{%- do cell.setdefault('nr_band', RF.nr_band) %}
{%- do cell.setdefault('dl_nr_arfcn', RF.dl_nr_arfcn) %}
{%- do cell.setdefault('bandwidth', slapparameter_dict.get('nr_bandwidth', default_nr_bandwidth)) %}
{%- do cell.setdefault('ssb_pos_bitmap', slapparameter_dict.get('ssb_pos_bitmap', default_nr_ssb_pos_bitmap)) %}
{%- do cell.setdefault('inactivity_timer', slapparameter_dict.get('inactivity_timer', default_nr_inactivity_timer)) %}
{%- else %}
{%- do bug('unreachable') %}
{%- endif %}
{%- endfor %} {%- endfor %}
{#- assign RUs rf_port and tx/rx channel indices #} {#- assign RUs rf_port and tx/rx channel indices #}
......
...@@ -68,15 +68,13 @@ def do(src, out, rat, slapparameter_dict): ...@@ -68,15 +68,13 @@ def do(src, out, rat, slapparameter_dict):
"do_nr": %(jdo_nr)s, "do_nr": %(jdo_nr)s,
"ru_type": "ors", "ru_type": "ors",
"ors": {"one-watt": true}, "ors": {"one-watt": true},
"earfcn": 36100,
"nr_arfcn": 380000,
"nr_band": 39,
"RF": { "RF": {
"dl_earfcn": 36100,
"dl_nr_arfcn": 380000,
"nr_band": 39,
"tx_gain": 62, "tx_gain": 62,
"rx_gain": 43 "rx_gain": 43
}, },
"sib23_file": "sib",
"drb_file": "drb",
"slap_configuration": { "slap_configuration": {
"tap-name": "slaptap9" "tap-name": "slaptap9"
}, },
...@@ -128,6 +126,8 @@ def do_enb(): ...@@ -128,6 +126,8 @@ def do_enb():
"ncell_list": {'1': peer_nr}, "ncell_list": {'1': peer_nr},
}) })
# TODO render drb.cfg + sib.asn for all cells
def do_ue(): def do_ue():
do('ue.jinja2.cfg', 'ue-lte.cfg', 'lte', {'ue_type': 'lte', 'rue_addr': 'host1'}) do('ue.jinja2.cfg', 'ue-lte.cfg', 'lte', {'ue_type': 'lte', 'rue_addr': 'host1'})
......
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