Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
nexedi
slapos
Commits
26c57261
Commit
26c57261
authored
8 months ago
by
Joanne Hugé
Browse files
Options
Download
Email Patches
Plain Diff
simpleran: support handover between 4G and 5G
parent
9cc4c9ab
simpleran-dev
No related merge requests found
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
software/simpleran/buildout.hash.cfg
+4
-4
software/simpleran/buildout.hash.cfg
software/simpleran/config/enb.jinja2.cfg
+219
-10
software/simpleran/config/enb.jinja2.cfg
software/simpleran/instance-enb.jinja2.cfg
+7
-0
software/simpleran/instance-enb.jinja2.cfg
software/simpleran/instance-ors-enb-input-schema.json
+238
-23
software/simpleran/instance-ors-enb-input-schema.json
software/simpleran/instance-ors-enb.jinja2.cfg
+1
-28
software/simpleran/instance-ors-enb.jinja2.cfg
software/simpleran/instance-ors-gnb-input-schema.json
+238
-32
software/simpleran/instance-ors-gnb-input-schema.json
software/simpleran/peer/cell/common.json
+2
-1
software/simpleran/peer/cell/common.json
software/simpleran/peer/cell/lte/input-schema.json
+10
-1
software/simpleran/peer/cell/lte/input-schema.json
software/simpleran/peer/cell/nr/input-schema.json
+10
-1
software/simpleran/peer/cell/nr/input-schema.json
software/simpleran/slaplte.jinja2
+1
-0
software/simpleran/slaplte.jinja2
with
730 additions
and
100 deletions
+730
-100
software/simpleran/buildout.hash.cfg
+
4
-
4
View file @
26c57261
...
...
@@ -24,7 +24,7 @@ md5sum = 307e38207945a9adcfea0263cba9d3a6
[slaplte.jinja2]
_update_hash_filename_ = slaplte.jinja2
md5sum = 8
d6eb90fc1191c3a1b24200df2ebf4fa
md5sum = 8
0f86d108ce8634f9577356ce074a560
[ru_amarisoft-stats.jinja2.py]
_update_hash_filename_ = ru/amarisoft-stats.jinja2.py
...
...
@@ -60,11 +60,11 @@ md5sum = 52da9fe3a569199e35ad89ae1a44c30e
[template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg
md5sum =
5ff63ef0f043a198436a6b05e350a220
md5sum =
248c284cb8612034695e3bcec279e3a2
[template-ors-enb]
_update_hash_filename_ = instance-ors-enb.jinja2.cfg
md5sum =
585457493ce5302ba1f1073b8a3b877c
md5sum =
f4221fa9088546a40449845dcfb15447
[template-ors-ue]
_update_hash_filename_ = instance-ors-ue.jinja2.cfg
...
...
@@ -88,7 +88,7 @@ md5sum = dd50b4e4780830ddbde28b84af118f18
[enb.jinja2.cfg]
filename = config/enb.jinja2.cfg
md5sum =
573cb004c21aa5f9ad8baf7b4dbbeb43
md5sum =
282a16a767ac2c183a3a5198fcecfcb7
[drb_lte.jinja2.cfg]
filename = config/drb_lte.jinja2.cfg
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/config/enb.jinja2.cfg
+
219
-
10
View file @
26c57261
...
...
@@ -69,6 +69,7 @@
n_id_cell: {{ ncell.pci }},
dl_earfcn: {{ ncell.dl_earfcn }},
tac: {{ ncell.tac }},
plmn: "{{ ncell.plmn }}",
{#- TODO: consider extending peer/cell/lte with
.allowed_meas_bandwidth and .antenna_port_1 #}
allowed_meas_bandwidth: {{ jlte_n_rb_dl(1.4) }}, // (minimum possible bw)
...
...
@@ -83,6 +84,7 @@
ssb_nr_arfcn: {{ ncell.ssb_nr_arfcn }},
ul_nr_arfcn: {{ ncell.ul_nr_arfcn }},
tac: {{ ncell.tac }},
plmn: "{{ ncell.plmn }}",
ssb_subcarrier_spacing: 30,
ssb_period: 20,
ssb_offset: 0,
...
...
@@ -465,22 +467,103 @@
],
{# TODO fully expose lte meas_config_desc in generic SR #}
{%- if (len(icell_dict) + len(ipeercell_dict)) > 0 %}
meas_config_desc: {
a1_report_type: "rsrp",
a1_rsrp:
-70
,
a1_hysteresis:
0
,
a1_time_to_trigger:
640,
a1_rsrp:
{{ slapparameter_dict.handover_a1_rsrp }}
,
a1_hysteresis:
{{ slapparameter_dict.handover_a1_hysteresis }}
,
a1_time_to_trigger:
{{ slapparameter_dict.handover_a1_time_to_trigger }},
a2_report_type: "rsrp",
a2_rsrp: -80,
a2_hysteresis: 0,
a2_time_to_trigger: 640,
a3_report_type: "rsrp",
a3_offset: {{ slapparameter_dict.get('lte_handover_a3_offset', 6) }},
a3_hysteresis: 0,
a3_time_to_trigger: {{ slapparameter_dict.get('lte_handover_a3_time_to_trigger', 480) }},
a2_rsrp: {{ slapparameter_dict.handover_a2_rsrp }},
a2_hysteresis: {{ slapparameter_dict.handover_a2_hysteresis }},
a2_time_to_trigger: {{ slapparameter_dict.handover_a2_time_to_trigger }},
eutra_handover: {
{%- if 'a3_rsrp' in slapparameter_dict.eutra_handover.event %}
a3_report_type: "rsrp",
a3_offset: {{ slapparameter_dict.eutra_handover.event.a3_rsrp }},
{%- elif 'a4_rsrp' in slapparameter_dict.eutra_handover.event %}
a4_threshold_rsrp: {{ slapparameter_dict.eutra_handover.event.a4_rsrp }},
{%- elif 'a5_rsrp' in slapparameter_dict.eutra_handover.event %}
a5_threshold1_rsrp: {{ slapparameter_dict.eutra_handover.event.a5_threshold1_rsrp }},
a5_threshold2_rsrp: {{ slapparameter_dict.eutra_handover.event.a5_threshold2_rsrp }},
{%- endif %}
hysteresis: {{ slapparameter_dict.eutra_handover.hysteresis }},
time_to_trigger: {{ slapparameter_dict.eutra_handover.time_to_trigger }}
{%- if len(list(ipeercell_dict|dictsort | selectattr('1._.cell_type', '==', 'nr'))) > 0 %}
},
nr_handover: {
{%- if 'b1_rsrp' in slapparameter_dict.nr_handover.event %}
b1_threshold_rsrp: {{ slapparameter_dict.nr_handover.event.b1_rsrp }},
{%- elif 'b2_rsrp' in slapparameter_dict.nr_handover.event %}
b2_threshold1_rsrp: {{ slapparameter_dict.nr_handover.event.b2_threshold1_rsrp }},
b2_threshold2_rsrp: {{ slapparameter_dict.nr_handover.event.b2_threshold2_rsrp }},
{%- endif %}
hysteresis: {{ slapparameter_dict.nr_handover.hysteresis }},
time_to_trigger: {{ slapparameter_dict.nr_handover.time_to_trigger }}
},
{%- else %}
}
{%- endif %}
},
{%- if slapparameter_dict.handover_meas_gap_config == 'Gap Pattern 1' %}
meas_gap_config: "gp1",
{%- elif slapparameter_dict.handover_meas_gap_config == 'Gap Pattern 0' %}
meas_gap_config: "gp0",
{%- else %}
meas_gap_config: "none",
{%- endif %}
ho_from_meas: true,
{%- set nr_bands = list(ipeercell_dict | dictsort | selectattr('1._.cell_type', '==', 'nr') | map(attribute='1._.nr_band')) | unique %}
{%- set lte_bands = list(ipeercell_dict | dictsort | selectattr('1._.cell_type', '==', 'lte') | map(attribute='1._.lte_band')) %}
requested_freq_bands_nr_mrdc: [
{%- for band in nr_bands -%}
{
rat: "nr",
band_nr: {{ band }},
max_bandwidth_requested_dl: 100,
max_bandwidth_requested_ul: 100,
max_carriers_requested_dl: 2,
max_carriers_requested_ul: 2,
},
{%- endfor %}
{%- for band in lte_bands -%}
{
rat: "eutra",
band_eutra: {{ band }},
ca_bandwidth_class_dl: "b",
ca_bandwidth_class_ul: "b",
},
{%- endfor %}
],
requested_freq_bands_nr: [
{%- for band in nr_bands -%}
{
rat: "nr",
band_nr: {{ band }},
max_bandwidth_requested_dl: 100,
max_bandwidth_requested_ul: 100,
max_carriers_requested_dl: 2,
max_carriers_requested_ul: 2,
},
{%- endfor %}
{%- for band in lte_bands -%}
{
rat: "eutra",
band_eutra: {{ band }},
ca_bandwidth_class_dl: "b",
ca_bandwidth_class_ul: "b",
},
{%- endfor %}
],
requested_eutra_freq_bands: [
{%- for band in lte_bands -%}
{{ band }},
{%- endfor -%}
],
{%- endif %}
},
{%- endif %}
...
...
@@ -992,6 +1075,132 @@
integ_algo_pref: [2, 1],
{# TODO fully expose nr meas_config_desc in generic SR #}
{%- if (len(icell_dict) + len(ipeercell_dict)) > 1 %}
meas_config_desc: {
a1_report_type: "rsrp",
a1_rsrp: {{ slapparameter_dict.handover_a1_rsrp }},
a1_hysteresis: {{ slapparameter_dict.handover_a1_hysteresis }},
a1_time_to_trigger: {{ slapparameter_dict.handover_a1_time_to_trigger }},
a2_report_type: "rsrp",
a2_rsrp: {{ slapparameter_dict.handover_a2_rsrp }},
a2_hysteresis: {{ slapparameter_dict.handover_a2_hysteresis }},
a2_time_to_trigger: {{ slapparameter_dict.handover_a2_time_to_trigger }},
nr_handover: {
{%- if 'a3_rsrp' in slapparameter_dict.nr_handover.event %}
a3_report_type: "rsrp",
a3_offset: {{ slapparameter_dict.nr_handover.event.a3_rsrp }},
{%- elif 'a4_rsrp' in slapparameter_dict.nr_handover.event %}
a4_threshold_rsrp: {{ slapparameter_dict.nr_handover.event.a4_rsrp }},
{%- elif 'a5_rsrp' in slapparameter_dict.nr_handover.event %}
a5_threshold1_rsrp: {{ slapparameter_dict.nr_handover.event.a5_threshold1_rsrp }},
a5_threshold2_rsrp: {{ slapparameter_dict.nr_handover.event.a5_threshold2_rsrp }},
{%- endif %}
hysteresis: {{ slapparameter_dict.nr_handover.hysteresis }},
time_to_trigger: {{ slapparameter_dict.nr_handover.time_to_trigger }}
{%- if len(list(ipeercell_dict|dictsort | selectattr('1._.cell_type', '==', 'lte'))) > 0 %}
},
eutra_handover: {
{%- if 'b1_rsrp' in slapparameter_dict.eutra_handover.event %}
b1_threshold_rsrp: {{ slapparameter_dict.eutra_handover.event.b1_rsrp }},
{%- elif 'b2_rsrp' in slapparameter_dict.eutra_handover.event %}
b2_threshold1_rsrp: {{ slapparameter_dict.eutra_handover.event.b2_threshold1_rsrp }},
b2_threshold2_rsrp: {{ slapparameter_dict.eutra_handover.event.b2_threshold2_rsrp }},
{%- endif %}
hysteresis: {{ slapparameter_dict.eutra_handover.hysteresis }},
time_to_trigger: {{ slapparameter_dict.eutra_handover.time_to_trigger }}
},
{%- else %}
}
{%- endif %}
ssb_rsrq_filter_coeff: 3,
ssb_sinr_filter_coeff: 5
},
{%- if slapparameter_dict.handover_meas_gap_config == 'Gap Pattern 1' %}
meas_gap_config: {
pattern_id: 1
},
{%- elif slapparameter_dict.handover_meas_gap_config == 'Gap Pattern 0' %}
meas_gap_config: {
pattern_id: 0
},
{%- endif %}
ho_from_meas: true,
{%- set nr_bands = list(ipeercell_dict | dictsort | selectattr('1._.cell_type', '==', 'nr') | map(attribute='1._.nr_band')) | unique %}
{%- set lte_bands = list(ipeercell_dict | dictsort | selectattr('1._.cell_type', '==', 'lte') | map(attribute='1._.lte_band')) %}
requested_freq_bands_nr_mrdc: [
{%- for band in nr_bands -%}
{
rat: "nr",
band_nr: {{ band }},
max_bandwidth_requested_dl: 100,
max_bandwidth_requested_ul: 100,
max_carriers_requested_dl: 2,
max_carriers_requested_ul: 2,
},
{%- endfor %}
{%- for band in lte_bands -%}
{
rat: "eutra",
band_eutra: {{ band }},
ca_bandwidth_class_dl: "b",
ca_bandwidth_class_ul: "b",
},
{%- endfor %}
],
requested_freq_bands_nr: [
{%- for band in nr_bands -%}
{
rat: "nr",
band_nr: {{ band }},
max_bandwidth_requested_dl: 100,
max_bandwidth_requested_ul: 100,
max_carriers_requested_dl: 2,
max_carriers_requested_ul: 2,
},
{%- endfor %}
{%- for band in lte_bands -%}
{
rat: "eutra",
band_eutra: {{ band }},
ca_bandwidth_class_dl: "b",
ca_bandwidth_class_ul: "b",
},
{%- endfor %}
],
requested_eutra_freq_bands: [
{%- for band in lte_bands -%}
{{ band }},
{%- endfor -%}
],
{%- endif %}
meas_config_desc: {
a1_report_type: "rsrp",
a1_rsrp: -60,
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/instance-enb.jinja2.cfg
+
7
-
0
View file @
26c57261
...
...
@@ -7,6 +7,13 @@
'use_ipv4': False,
'gnb_id_bits': 28,
'nssai': {'1': {'sst': 1}},
'handover_a1_rsrp': -70,
'handover_a1_hysteresis': 0,
'handover_a1_time_to_trigger': 640,
'handover_a2_rsrp': -80,
'handover_a2_hysteresis': 0,
'handover_a2_time_to_trigger': 640,
'handover_meas_gap_config': 'Gap Pattern 1',
'xlog_forwarding_enabled': True,
'wendelin_telecom_software_release_url': 'wendelin-telecom-enb-shared-instance',
'xlog_fluentbit_forward_port': 24224,
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/instance-ors-enb-input-schema.json
+
238
-
23
View file @
26c57261
...
...
@@ -93,15 +93,21 @@
}
}
},
"
lte_
handover_a
3_offset
"
:
{
"title"
:
"
A3 offset for LTE handover
"
,
"description"
:
"
RSRP gain offset between gNBs which will trigger handover
"
,
"handover_a
1_rsrp
"
:
{
"title"
:
"
Handover A1 event RSRP threshold
"
,
"description"
:
"
Integer, range from -140 to -43. RSRP threshold value in dBm.
"
,
"type"
:
"number"
,
"default"
:
6
"default"
:
-70
},
"lte_handover_time_to_trigger"
:
{
"title"
:
"Time to Trigger for LTE handover"
,
"description"
:
"Time to triger after which LTE handover will be triggered if A3 offset is reached"
,
"handover_a1_hysteresis"
:
{
"title"
:
"Handover A1 event hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A1 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
,
"default"
:
0
},
"handover_a1_time_to_trigger"
:
{
"title"
:
"Handover A1 event time to trigger"
,
"description"
:
"Time in ms during which the A1 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
...
...
@@ -121,30 +127,239 @@
2560
,
5120
],
"default"
:
480
"default"
:
640
},
"handover_a2_rsrp"
:
{
"title"
:
"Handover A2 event RSRP threshold"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold value in dBm."
,
"type"
:
"number"
,
"default"
:
-80
},
"handover_a2_hysteresis"
:
{
"title"
:
"Handover A2 event hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A2 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
,
"default"
:
0
},
"handover_a2_time_to_trigger"
:
{
"title"
:
"Handover A2 event time to trigger"
,
"description"
:
"Time in ms during which the A2 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
],
"default"
:
640
},
"eutra_handover"
:
{
"title"
:
"EUTRA Handover"
,
"type"
:
"object"
,
"default"
:
{
"event"
:
{
"a3_rsrp"
:
6
},
"hysteresis"
:
0
,
"time_to_trigger"
:
480
},
"properties"
:
{
"event"
:
{
"title"
:
"EUTRA Handover event"
,
"type"
:
"object"
,
"oneOf"
:
[
{
"title"
:
"A3 event"
,
"type"
:
"object"
,
"required"
:
[
"a3_rsrp"
],
"properties"
:
{
"a3_rsrp"
:
{
"title"
:
"Handover A3 event RSRP offset"
,
"description"
:
"Integer, range from -140 to -43. RSRP gain offset between eNBs and gNBs which will trigger handover"
,
"type"
:
"number"
}
}
},
{
"title"
:
"A4 event"
,
"type"
:
"object"
,
"required"
:
[
"a4_rsrp"
],
"properties"
:
{
"a4_rsrp"
:
{
"title"
:
"Handover A4 event RSRP threshold"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold value in dBm"
,
"type"
:
"number"
}
}
},
{
"title"
:
"A5 event"
,
"type"
:
"object"
,
"required"
:
[
"a5_threshold1_rsrp"
,
"a5_threshold2_rsrp"
],
"properties"
:
{
"a5_threshold1_rsrp"
:
{
"title"
:
"Handover A5 event RSRP threshold1"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold1 value in dBm"
,
"type"
:
"number"
},
"a5_threshold2_rsrp"
:
{
"title"
:
"Handover A5 event RSRP threshold2"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold2 value in dBm"
,
"type"
:
"number"
}
}
}
]
},
"hysteresis"
:
{
"title"
:
"EUTRA Handover hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A3/A4/A5 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
},
"time_to_trigger"
:
{
"title"
:
"EUTRA Handover time to trigger"
,
"description"
:
"Time in ms during which the A3/A4/A5 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
]
}
}
},
"nr_handover"
:
{
"title"
:
"NR Handover"
,
"type"
:
"object"
,
"default"
:
{
"event"
:
{
"b1_rsrp"
:
-80
},
"hysteresis"
:
0
,
"time_to_trigger"
:
100
},
"properties"
:
{
"event"
:
{
"title"
:
"NR Handover event"
,
"type"
:
"object"
,
"oneOf"
:
[
{
"title"
:
"B1 event"
,
"type"
:
"object"
,
"required"
:
[
"b1_rsrp"
],
"properties"
:
{
"b1_rsrp"
:
{
"title"
:
"Handover B1 event RSRP threshold"
,
"description"
:
"Integer, range from -156 to -30. RSRP threshold value in dBm."
,
"type"
:
"number"
}
}
},
{
"title"
:
"B2 event"
,
"type"
:
"object"
,
"required"
:
[
"b2_threshold1_rsrp"
,
"b2_threshold2_rsrp"
],
"properties"
:
{
"b2_threshold1_rsrp"
:
{
"title"
:
"Handover B2 event RSRP threshold1"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold1 value in dBm"
,
"type"
:
"number"
},
"b2_threshold2_rsrp"
:
{
"title"
:
"Handover B2 event RSRP threshold2"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold2 value in dBm"
,
"type"
:
"number"
}
}
}
]
},
"hysteresis"
:
{
"title"
:
"NR Handover hysteresis"
,
"description"
:
"Integer, range from 0 to 30. NR B1 or B2 hysteresis in 0.5dB steps."
,
"type"
:
"number"
},
"time_to_trigger"
:
{
"title"
:
"NR Handover time to trigger"
,
"description"
:
"Time in ms during which the NR B1 or B2 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
]
}
}
},
"handover_meas_gap_config"
:
{
"title"
:
"Handover measurement gap configuration"
,
"description"
:
"Configuration of the measurement gap. Ignored if no neighbour cells are configured."
,
"type"
:
"string"
,
"enum"
:
[
"None"
,
"Gap Pattern 0"
,
"Gap Pattern 1"
],
"default"
:
"Gap Pattern 1"
},
"ncell_list"
:
{
"title"
:
"Neighbour Cell Info"
,
"description"
:
"Neighbour Cell Info"
,
"patternProperties"
:
{
".*"
:
{
"properties"
:
{
"dl_earfcn"
:
{
"$ref"
:
"peer/cell/lte/input-schema.json#/properties/dl_earfcn"
},
"pci"
:
{
"$ref"
:
"peer/cell/lte/input-schema.json#/properties/pci"
},
"cell_id"
:
{
"$ref"
:
"peer/cell/lte/input-schema.json#/properties/e_cell_id"
},
"tac"
:
{
"$ref"
:
"peer/cell/lte/input-schema.json#/properties/tac"
,
"default"
:
"0x0001"
}
"$ref"
:
"peer/cell/input-schema.json"
},
"type"
:
"object"
}
},
"type"
:
"object"
,
"default"
:
{}
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/instance-ors-enb.jinja2.cfg
+
1
-
28
View file @
26c57261
...
...
@@ -123,37 +123,10 @@
{#- inject synthesized peer cells #}
{%- for k, ncell in slapparameter_dict.ncell_list|dictsort %}
{%- set peercell = {'cell_kind': 'enb_peer'} %}
{%- macro _(name, default) %}
{%- if default is defined %}
{%- do peercell.update({name: default}) %}
{%- endif %}
{%- if name in ncell %}
{%- do peercell.update({name: ncell[name]}) %}
{%- endif %}
{%- endmacro %}
{%- if enb_mode == 'enb' %}
{%- do peercell.update({'cell_type': 'lte'}) %}
{%- if 'cell_id' in ncell %}
{%- do peercell.update({'e_cell_id': ncell.cell_id}) %}
{%- endif %}
{%- do _('pci') %}
{%- do _('dl_earfcn') %}
{%- do _('tac', '0x0001') %}
{%- elif enb_mode == 'gnb' %}
{%- do peercell.update({'cell_type': 'nr'}) %}
{%- do _('nr_cell_id') %}
{%- do _('gnb_id_bits') %}
{%- do _('pci') %}
{%- do _('dl_nr_arfcn') %}
{%- do _('ssb_nr_arfcn') %}
{%- do _('tac', 1) %}
{%- do _('nr_band') %}
{%- endif %}
{%- do ishared_list.append({
'slave_title': '%s%s' % (iref('PEERCELL'), k),
'slave_reference': False,
'_':
peer
cell | tojson
'_':
n
cell | tojson
})
%}
{%- endfor %}
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/instance-ors-gnb-input-schema.json
+
238
-
32
View file @
26c57261
...
...
@@ -78,15 +78,57 @@
"nssai"
:
{
"$ref"
:
"instance-enb-input-schema.json#/properties/nssai"
},
"
nr_
handover_a
3_offset
"
:
{
"title"
:
"
A3 offset for NR handover
"
,
"description"
:
"
RSRP gain offset between gNBs which will trigger handover
"
,
"handover_a
1_rsrp
"
:
{
"title"
:
"
Handover A1 event RSRP threshold
"
,
"description"
:
"
Integer, range from -140 to -43. RSRP threshold value in dBm.
"
,
"type"
:
"number"
,
"default"
:
6
"default"
:
-70
},
"nr_handover_time_to_trigger"
:
{
"title"
:
"Time to Trigger for NR handover"
,
"description"
:
"Time to triger after which NR handover will be triggerd if A3 offset is reached"
,
"handover_a1_hysteresis"
:
{
"title"
:
"Handover A1 event hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A1 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
,
"default"
:
0
},
"handover_a1_time_to_trigger"
:
{
"title"
:
"Handover A1 event time to trigger"
,
"description"
:
"Time in ms during which the A1 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
],
"default"
:
640
},
"handover_a2_rsrp"
:
{
"title"
:
"Handover A2 event RSRP threshold"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold value in dBm."
,
"type"
:
"number"
,
"default"
:
-80
},
"handover_a2_hysteresis"
:
{
"title"
:
"Handover A2 event hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A2 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
,
"default"
:
0
},
"handover_a2_time_to_trigger"
:
{
"title"
:
"Handover A2 event time to trigger"
,
"description"
:
"Time in ms during which the A2 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
...
...
@@ -106,39 +148,203 @@
2560
,
5120
],
"default"
:
100
"default"
:
640
},
"nr_handover"
:
{
"title"
:
"NR Handover"
,
"type"
:
"object"
,
"default"
:
{
"event"
:
{
"a3_rsrp"
:
6
},
"hysteresis"
:
0
,
"time_to_trigger"
:
480
},
"properties"
:
{
"event"
:
{
"title"
:
"NR Handover event"
,
"type"
:
"object"
,
"oneOf"
:
[
{
"title"
:
"A3 event"
,
"type"
:
"object"
,
"required"
:
[
"a3_rsrp"
],
"properties"
:
{
"a3_rsrp"
:
{
"title"
:
"Handover A3 event RSRP offset"
,
"description"
:
"Integer, range from -140 to -43. RSRP gain offset between eNBs and gNBs which will trigger handover"
,
"type"
:
"number"
}
}
},
{
"title"
:
"A4 event"
,
"type"
:
"object"
,
"required"
:
[
"a4_rsrp"
],
"properties"
:
{
"a4_rsrp"
:
{
"title"
:
"Handover A4 event RSRP threshold"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold value in dBm"
,
"type"
:
"number"
}
}
},
{
"title"
:
"A5 event"
,
"type"
:
"object"
,
"required"
:
[
"a5_threshold1_rsrp"
,
"a5_threshold2_rsrp"
],
"properties"
:
{
"a5_threshold1_rsrp"
:
{
"title"
:
"Handover A5 event RSRP threshold1"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold1 value in dBm"
,
"type"
:
"number"
},
"a5_threshold2_rsrp"
:
{
"title"
:
"Handover A5 event RSRP threshold2"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold2 value in dBm"
,
"type"
:
"number"
}
}
}
]
},
"hysteresis"
:
{
"title"
:
"NR Handover hysteresis"
,
"description"
:
"Integer, range from 0 to 30. A3/A4/A5 hysteresis in 0.5dB steps used for the measurement report triggering condition."
,
"type"
:
"number"
},
"time_to_trigger"
:
{
"title"
:
"NR Handover time to trigger"
,
"description"
:
"Time in ms during which the A3/A4/A5 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
]
}
}
},
"eutra_handover"
:
{
"title"
:
"EUTRA Handover"
,
"type"
:
"object"
,
"default"
:
{
"event"
:
{
"b1_rsrp"
:
-80
},
"hysteresis"
:
0
,
"time_to_trigger"
:
100
},
"properties"
:
{
"event"
:
{
"title"
:
"EUTRA Handover event"
,
"type"
:
"object"
,
"oneOf"
:
[
{
"title"
:
"B1 event"
,
"type"
:
"object"
,
"required"
:
[
"b1_rsrp"
],
"properties"
:
{
"b1_rsrp"
:
{
"title"
:
"Handover B1 event RSRP threshold"
,
"description"
:
"Integer, range from -156 to -30. RSRP threshold value in dBm."
,
"type"
:
"number"
}
}
},
{
"title"
:
"B2 event"
,
"type"
:
"object"
,
"required"
:
[
"b2_threshold1_rsrp"
,
"b2_threshold2_rsrp"
],
"properties"
:
{
"b2_threshold1_rsrp"
:
{
"title"
:
"Handover B2 event RSRP threshold1"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold1 value in dBm"
,
"type"
:
"number"
},
"b2_threshold2_rsrp"
:
{
"title"
:
"Handover B2 event RSRP threshold2"
,
"description"
:
"Integer, range from -140 to -43. RSRP threshold2 value in dBm"
,
"type"
:
"number"
}
}
}
]
},
"hysteresis"
:
{
"title"
:
"EUTRA Handover hysteresis"
,
"description"
:
"Integer, range from 0 to 30. EUTRA B1 or B2 hysteresis in 0.5dB steps."
,
"type"
:
"number"
},
"time_to_trigger"
:
{
"title"
:
"EUTRA Handover time to trigger"
,
"description"
:
"Time in ms during which the EUTRA B1 or B2 event condition must be met before triggering the measurement report."
,
"type"
:
"number"
,
"enum"
:
[
0
,
40
,
64
,
80
,
100
,
128
,
160
,
256
,
320
,
480
,
512
,
640
,
1024
,
1280
,
2560
,
5120
]
}
}
},
"handover_meas_gap_config"
:
{
"title"
:
"Handover measurement gap configuration"
,
"description"
:
"Configuration of the measurement gap. Ignored if no neighbour cells are configured."
,
"type"
:
"string"
,
"enum"
:
[
"None"
,
"Gap Pattern 0"
,
"Gap Pattern 1"
],
"default"
:
"Gap Pattern 1"
},
"ncell_list"
:
{
"title"
:
"Neighbour Cell Info"
,
"description"
:
"Neighbour Cell Info"
,
"patternProperties"
:
{
".*"
:
{
"properties"
:
{
"dl_nr_arfcn"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/dl_nr_arfcn"
},
"ssb_nr_arfcn"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/ssb_nr_arfcn"
},
"pci"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/pci"
},
"nr_cell_id"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/nr_cell_id"
},
"gnb_id_bits"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/gnb_id_bits"
},
"nr_band"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/nr_band"
},
"tac"
:
{
"$ref"
:
"peer/cell/nr/input-schema.json#/properties/tac"
,
"default"
:
1
}
"$ref"
:
"peer/cell/input-schema.json"
},
"type"
:
"object"
}
},
"type"
:
"object"
,
"default"
:
{}
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/peer/cell/common.json
+
2
-
1
View file @
26c57261
...
...
@@ -6,7 +6,8 @@
"cell_type"
,
"cell_kind"
,
"pci"
,
"tac"
"tac"
,
"plmn"
],
"properties"
:
{
"cell_type"
:
{
...
...
This diff is collapsed.
Click to expand it.
software/simpleran/peer/cell/lte/input-schema.json
+
10
-
1
View file @
26c57261
...
...
@@ -8,13 +8,17 @@
"pci"
,
"tac"
,
"e_cell_id"
,
"dl_earfcn"
"dl_earfcn"
,
"plmn"
],
"properties"
:
{
"cell_type"
:
{
"$ref"
:
"../../../peer/cell/common.json#/properties/cell_type"
,
"const"
:
"lte"
},
"cell_kind"
:
{
"$ref"
:
"../../../peer/cell/common.json#/properties/cell_kind"
},
"e_cell_id"
:
{
"title"
:
"E-UTRAN Cell ID"
,
"description"
:
"28 bit E-UTRAN cell identity. Concatenation of enb_id and cell_id of the neighbour cell."
,
...
...
@@ -28,6 +32,11 @@
},
"tac"
:
{
"$ref"
:
"../../../cell/lte/input-schema.json#/properties/tac"
},
"plmn"
:
{
"title"
:
"Public Land Mobile Network"
,
"description"
:
"Public Land Mobile Network"
,
"type"
:
"string"
}
}
}
This diff is collapsed.
Click to expand it.
software/simpleran/peer/cell/nr/input-schema.json
+
10
-
1
View file @
26c57261
...
...
@@ -10,13 +10,17 @@
"nr_cell_id"
,
"gnb_id_bits"
,
"dl_nr_arfcn"
,
"nr_band"
"nr_band"
,
"plmn"
],
"properties"
:
{
"cell_type"
:
{
"$ref"
:
"../../../peer/cell/common.json#/properties/cell_type"
,
"const"
:
"nr"
},
"cell_kind"
:
{
"$ref"
:
"../../../peer/cell/common.json#/properties/cell_kind"
},
"nr_cell_id"
:
{
"title"
:
"NR Cell ID"
,
"description"
:
"Concatenation of gnb_id and cell_id of the neighbour cell"
,
...
...
@@ -44,6 +48,11 @@
},
"tac"
:
{
"$ref"
:
"../../../cell/nr/input-schema.json#/$defs/tac"
},
"plmn"
:
{
"title"
:
"Public Land Mobile Network"
,
"description"
:
"Public Land Mobile Network"
,
"type"
:
"string"
}
}
}
This diff is collapsed.
Click to expand it.
software/simpleran/slaplte.jinja2
+
1
-
0
View file @
26c57261
...
...
@@ -383,6 +383,7 @@
{%- set ipeercell = ishared %}
{%- if _.cell_type == 'lte' %}
{%- do _.setdefault('ul_earfcn', J(jdefault_ul_earfcn(_.dl_earfcn))) %}
{%- do _.setdefault('lte_band', xearfcn_module.band(_.dl_earfcn)[0]["band"]) %}
{%- elif _.cell_type == 'nr' %}
{%- do _.setdefault('ul_nr_arfcn', J(jdefault_ul_nr_arfcn(_.dl_nr_arfcn, _.nr_band))) %}
{%- do _.setdefault('subcarrier_spacing',
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help