Commit 53641314 authored by Kirill Smelkov's avatar Kirill Smelkov

software/ors-amarisoft: ue: Switch UE type to be runtime parameter

Previously type of emulated UE was static parameter of particular software
release - it was possible to simulate UE and attach to cells only of the RAT of
particular template.

In MultiRU it will be possible to generally emulate all kind of UEs - both LTE
and NR all at the same time, and attach them to LTE and NR cells
simultaneously.

-> Switch type of UE to be runtime parameter as a preparatory step for that.

URLs of software releases changes (we remove lte and nr in names), but here we
do not care about backward compatibility because currently there are just a few
UEsim deployments and migration should be easy.
parent c3de8831
{#- do_lte/do_nr indicate whether we have LTE or NR UE/cells #} {#- ue_type indicates with which mode ue is instantiated with - lte | nr #}
{%- do assert(do_lte or do_nr) %} {%- set ue_type = slapparameter_dict.ue_type %}
{%- do assert(not (do_lte and do_nr)) %} {%- do assert(ue_type in ('lte', 'nr'), ue_type) %}
{ {
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null", log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1,phy.level=info,file.rotate=1G,file.path=/dev/null",
...@@ -17,7 +17,7 @@ rf_driver: { ...@@ -17,7 +17,7 @@ rf_driver: {
tx_gain: {{ slapparameter_dict.get('tx_gain', 60) }}, tx_gain: {{ slapparameter_dict.get('tx_gain', 60) }},
rx_gain: {{ slapparameter_dict.get('rx_gain', 40) }}, rx_gain: {{ slapparameter_dict.get('rx_gain', 40) }},
cell_groups: [ cell_groups: [
{%- if do_lte %} {%- if ue_type == 'lte' %}
{ {
// LTE cell // LTE cell
multi_ue: true, multi_ue: true,
...@@ -34,7 +34,7 @@ rf_driver: { ...@@ -34,7 +34,7 @@ rf_driver: {
pdcch_decode_opt_threshold: 0.1, pdcch_decode_opt_threshold: 0.1,
}, },
{%- endif %} {%- endif %}
{%- if do_nr %} {%- if ue_type == 'nr' %}
{ {
// NR cell // NR cell
group_type: "nr", group_type: "nr",
...@@ -63,10 +63,10 @@ rf_driver: { ...@@ -63,10 +63,10 @@ rf_driver: {
impi: "{{ slapparameter_dict.get('impi', '') }}", impi: "{{ slapparameter_dict.get('impi', '') }}",
imsi: "{{ slapparameter_dict.get('imsi', default_imsi) }}", imsi: "{{ slapparameter_dict.get('imsi', default_imsi) }}",
K: "{{ slapparameter_dict.get('k', default_k) }}", K: "{{ slapparameter_dict.get('k', default_k) }}",
{%- if do_lte %} {%- if ue_type == 'lte' %}
ue_category: 12, ue_category: 12,
{%- endif %} {%- endif %}
{%- if do_nr %} {%- if ue_type == 'nr' %}
as_release: 15, as_release: 15,
ue_category: "nr", ue_category: "nr",
{%- endif %} {%- endif %}
......
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"$ref": "sim/input-schema.json#/properties", "ue": {
"title": "UE",
"rue_addr": { "oneOf": [
"title": "[Required] Remote UE address", {
"description": "[Required] Address of remote UE server. Default port is 2152.", "$ref": "ue/lte/input-schema.json"
"type": "string", },
"default": "" {
"$ref": "ue/nr/input-schema.json"
}
]
}, },
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
...@@ -21,25 +24,6 @@ ...@@ -21,25 +24,6 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
...@@ -51,22 +35,6 @@ ...@@ -51,22 +35,6 @@
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number", "type": "number",
"default": 2 "default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
} }
} }
} }
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"$ref": "sim/input-schema.json#/properties",
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"$ref": "sim/input-schema.json#/properties", "ue": {
"title": "UE",
"rue_addr": { "oneOf": [
"title": "[Required] Remote UE address", {
"description": "[Required] Address of remote UE server. Default port is 2152.", "$ref": "ue/lte/input-schema.json"
"type": "string", },
"default": "" {
"$ref": "ue/nr/input-schema.json"
}
]
}, },
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
...@@ -21,25 +24,6 @@ ...@@ -21,25 +24,6 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
...@@ -51,22 +35,6 @@ ...@@ -51,22 +35,6 @@
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number", "type": "number",
"default": 2 "default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
} }
} }
} }
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"$ref": "sim/input-schema.json#/properties",
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
...@@ -10,8 +10,7 @@ enb-epc = $${:obsolete} ...@@ -10,8 +10,7 @@ enb-epc = $${:obsolete}
gnb-epc = $${:obsolete} gnb-epc = $${:obsolete}
epc = $${:obsolete} epc = $${:obsolete}
mme = $${:obsolete} mme = $${:obsolete}
ue-lte = ue =
ue-nr =
[dynamic-template-obsolete] [dynamic-template-obsolete]
< = jinja2-template-base < = jinja2-template-base
......
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"$ref": "sim/input-schema.json#/properties", "ue": {
"title": "UE",
"rue_addr": { "oneOf": [
"title": "[Required] Remote UE address", {
"description": "[Required] Address of remote UE server. Default port is 2152.", "$ref": "ue/lte/input-schema.json"
"type": "string", },
"default": "" {
"$ref": "ue/nr/input-schema.json"
}
]
}, },
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
...@@ -21,25 +24,6 @@ ...@@ -21,25 +24,6 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
...@@ -51,22 +35,6 @@ ...@@ -51,22 +35,6 @@
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number", "type": "number",
"default": 2 "default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
} }
} }
} }
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"$ref": "sim/input-schema.json#/properties",
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"$ref": "sim/input-schema.json#/properties", "ue": {
"title": "UE",
"rue_addr": { "oneOf": [
"title": "[Required] Remote UE address", {
"description": "[Required] Address of remote UE server. Default port is 2152.", "$ref": "ue/lte/input-schema.json"
"type": "string", },
"default": "" {
"$ref": "ue/nr/input-schema.json"
}
]
}, },
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
...@@ -21,25 +24,6 @@ ...@@ -21,25 +24,6 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
...@@ -51,22 +35,6 @@ ...@@ -51,22 +35,6 @@
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number", "type": "number",
"default": 2 "default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
} }
} }
} }
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"$ref": "sim/input-schema.json#/properties",
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": 2
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"$ref": "sim/input-schema.json#/properties", "ue": {
"title": "UE",
"rue_addr": { "oneOf": [
"title": "[Required] Remote UE address", {
"description": "[Required] Address of remote UE server. Default port is 2152.", "$ref": "ue/lte/input-schema.json"
"type": "string", },
"default": "" {
"$ref": "ue/nr/input-schema.json"
}
]
}, },
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
...@@ -21,25 +24,6 @@ ...@@ -21,25 +24,6 @@
"description": "Rx gain (in dB)", "description": "Rx gain (in dB)",
"type": "number" "type": "number"
}, },
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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 }}"
},
"n_antenna_dl": { "n_antenna_dl": {
"title": "Number of DL antennas", "title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
...@@ -51,22 +35,6 @@ ...@@ -51,22 +35,6 @@
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.", "description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number", "type": "number",
"default": {{ default_n_antenna_ul }} "default": {{ default_n_antenna_ul }}
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "{{ default_imsi }}"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "{{ default_k }}"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
} }
} }
} }
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"$ref": "sim/input-schema.json#/properties",
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"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_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of DL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_dl }}
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "Enumeration: 1, 2, 4 or 8. Number of UL antennas. It must be the same for all NB-IoT and LTE cells sharing the same RF port.",
"type": "number",
"default": {{ default_n_antenna_ul }}
},
"imsi": {
"$ref": "sim/input-schema.json#/properties/imsi",
"default": "{{ default_imsi }}"
},
"k": {
"$ref": "sim/input-schema.json#/properties/k",
"default": "{{ default_k }}"
},
"sim_algo": {
"$ref": "sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm.",
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
{#- rat indicates with which mode ue is instantiated with - lte | nr #}
{%- set rat = slap_configuration['slap-software-type'] .removeprefix('ue-') %}
{%- do assert(rat in ('lte', 'nr'), rat) %}
{%- set do_lte = (rat == 'lte') %}
{%- set do_nr = (rat == 'nr') %}
[buildout] [buildout]
parts = parts =
directory directory
...@@ -106,8 +99,6 @@ context = ...@@ -106,8 +99,6 @@ context =
raw default_n_antenna_ul {{ default_n_antenna_ul }} raw default_n_antenna_ul {{ default_n_antenna_ul }}
raw default_imsi {{ default_imsi }} raw default_imsi {{ default_imsi }}
raw default_k {{default_k}} raw default_k {{default_k}}
json do_lte {{ do_lte | tojson }}
json do_nr {{ do_nr | tojson }}
[lte-ue-config] [lte-ue-config]
<= config-base <= config-base
......
...@@ -108,8 +108,7 @@ recipe = slapos.cookbook:switch-softwaretype ...@@ -108,8 +108,7 @@ recipe = slapos.cookbook:switch-softwaretype
enb = dynamic-template-enb:output enb = dynamic-template-enb:output
gnb = dynamic-template-enb:output gnb = dynamic-template-enb:output
core-network = dynamic-template-core-network:output core-network = dynamic-template-core-network:output
ue-lte = dynamic-template-ue:output ue = dynamic-template-ue:output
ue-nr = dynamic-template-ue:output
RootSoftwareInstance = $${:core-network} RootSoftwareInstance = $${:core-network}
[dynamic-template-enb] [dynamic-template-enb]
...@@ -181,7 +180,7 @@ extra-context = ...@@ -181,7 +180,7 @@ extra-context =
[dynamic-template-ue] [dynamic-template-ue]
< = jinja2-template-base < = jinja2-template-base
url = ${template-ue:target} url = ${template-ue:target}
filename = instance-ue-lte.cfg filename = instance-ue.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
section slap_configuration slap-configuration section slap_configuration slap-configuration
......
...@@ -52,8 +52,7 @@ software_list = [ ...@@ -52,8 +52,7 @@ software_list = [
} }
] ]
for i in range (len(software_list)): defaults = {
software_list[i].update({
'default_lte_bandwidth' : "20 MHz", 'default_lte_bandwidth' : "20 MHz",
'default_lte_inactivity_timer' : 10000, 'default_lte_inactivity_timer' : 10000,
'default_nr_bandwidth' : 40, 'default_nr_bandwidth' : 40,
...@@ -63,13 +62,15 @@ for i in range (len(software_list)): ...@@ -63,13 +62,15 @@ for i in range (len(software_list)):
'default_nr_inactivity_timer' : 10000, 'default_nr_inactivity_timer' : 10000,
'default_imsi' : "001010123456789", 'default_imsi' : "001010123456789",
'default_k' : "00112233445566778899aabbccddeeff", 'default_k' : "00112233445566778899aabbccddeeff",
}) }
for i in range (len(software_list)):
software_list[i].update(defaults)
with open('software.cfg.json.jinja2', 'r') as f: with open('software.cfg.json.jinja2', 'r') as f:
software_json_template = Template(f.read()) software_json_template = Template(f.read())
instance_json_template_map = {} instance_json_template_map = {}
for software_type in ['enb', 'gnb', 'ue-lte', 'ue-nr']: for software_type in ['enb', 'gnb', 'ue']:
with open('instance-{}-input-schema.json.jinja2'.format(software_type), 'r') as f: with open('instance-{}-input-schema.json.jinja2'.format(software_type), 'r') as f:
instance_json_template_map[software_type] = Template(f.read()) instance_json_template_map[software_type] = Template(f.read())
...@@ -94,11 +95,20 @@ for software in software_list: ...@@ -94,11 +95,20 @@ for software in software_list:
test_template.render(**software, **global_context)) test_template.render(**software, **global_context))
emit('software-{}.cfg'.format(software['software_name']), emit('software-{}.cfg'.format(software['software_name']),
software_template.render(**software, **global_context)) software_template.render(**software, **global_context))
for software_type in ['enb', 'gnb', 'ue-lte', 'ue-nr']: for software_type in ['enb', 'gnb', 'ue']:
# no ue for ors # no ue for ors
if software['bbu'] == 'ors' and software_type.startswith('ue-'): if software['bbu'] == 'ors' and software_type == 'ue':
continue continue
emit('instance-{}-{}-input-schema.json'.format( emit('instance-{}-{}-input-schema.json'.format(
software['software_name'], software['software_name'],
software_type), software_type),
instance_json_template_map[software_type].render(**software, **global_context)) instance_json_template_map[software_type].render(**software, **global_context))
# render emits file @ path from path.jinja2
def render(path):
with open('%s.jinja2' % path, 'r') as f:
template = Template(f.read())
emit(path, template.render(**defaults, **global_context))
for path in ('ue/common.json', 'ue/lte/input-schema.json', 'ue/nr/input-schema.json'):
render(path)
...@@ -130,8 +130,8 @@ def do_enb(): ...@@ -130,8 +130,8 @@ def do_enb():
def do_ue(): def do_ue():
do('ue.jinja2.cfg', 'ue-lte.cfg', 'lte', {'rue_addr': 'host1'}) do('ue.jinja2.cfg', 'ue-lte.cfg', 'lte', {'ue_type': 'lte', 'rue_addr': 'host1'})
do('ue.jinja2.cfg', 'ue-nr.cfg', 'nr', {'rue_addr': 'host2'}) do('ue.jinja2.cfg', 'ue-nr.cfg', 'nr', {'ue_type': 'nr', 'rue_addr': 'host2'})
def main(): def main():
......
...@@ -4,22 +4,14 @@ ...@@ -4,22 +4,14 @@
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"ue-lte": { "ue": {
"title": "UE-LTE", "title": "UE",
"description": "UE LTE Configuration", "description": "UE Configuration",
"software-type": "ue-lte", "software-type": "ue",
"request": "instance-fdd-lopcomm-ue-lte-input-schema.json", "request": "instance-fdd-lopcomm-ue-input-schema.json",
"response": "instance-fdd-lopcomm-ue-lte-schema.json", "response": "instance-fdd-lopcomm-ue-schema.json",
"index": 4 "index": 4
}, },
"ue-nr": {
"title": "UE-NR",
"description": "UE NR Configuration",
"software-type": "ue-nr",
"request": "instance-fdd-lopcomm-ue-nr-input-schema.json",
"response": "instance-fdd-lopcomm-ue-nr-schema.json",
"index": 5
},
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
...@@ -4,22 +4,14 @@ ...@@ -4,22 +4,14 @@
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"ue-lte": { "ue": {
"title": "UE-LTE", "title": "UE",
"description": "UE LTE Configuration", "description": "UE Configuration",
"software-type": "ue-lte", "software-type": "ue",
"request": "instance-fdd-ue-lte-input-schema.json", "request": "instance-fdd-ue-input-schema.json",
"response": "instance-fdd-ue-lte-schema.json", "response": "instance-fdd-ue-schema.json",
"index": 4 "index": 4
}, },
"ue-nr": {
"title": "UE-NR",
"description": "UE NR Configuration",
"software-type": "ue-nr",
"request": "instance-fdd-ue-nr-input-schema.json",
"response": "instance-fdd-ue-nr-schema.json",
"index": 5
},
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
...@@ -4,22 +4,14 @@ ...@@ -4,22 +4,14 @@
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"ue-lte": { "ue": {
"title": "UE-LTE", "title": "UE",
"description": "UE LTE Configuration", "description": "UE Configuration",
"software-type": "ue-lte", "software-type": "ue",
"request": "instance-tdd-m2ru-ue-lte-input-schema.json", "request": "instance-tdd-m2ru-ue-input-schema.json",
"response": "instance-tdd-m2ru-ue-lte-schema.json", "response": "instance-tdd-m2ru-ue-schema.json",
"index": 4 "index": 4
}, },
"ue-nr": {
"title": "UE-NR",
"description": "UE NR Configuration",
"software-type": "ue-nr",
"request": "instance-tdd-m2ru-ue-nr-input-schema.json",
"response": "instance-tdd-m2ru-ue-nr-schema.json",
"index": 5
},
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
...@@ -4,22 +4,14 @@ ...@@ -4,22 +4,14 @@
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"ue-lte": { "ue": {
"title": "UE-LTE", "title": "UE",
"description": "UE LTE Configuration", "description": "UE Configuration",
"software-type": "ue-lte", "software-type": "ue",
"request": "instance-tdd-ue-lte-input-schema.json", "request": "instance-tdd-ue-input-schema.json",
"response": "instance-tdd-ue-lte-schema.json", "response": "instance-tdd-ue-schema.json",
"index": 4 "index": 4
}, },
"ue-nr": {
"title": "UE-NR",
"description": "UE NR Configuration",
"software-type": "ue-nr",
"request": "instance-tdd-ue-nr-input-schema.json",
"response": "instance-tdd-ue-nr-schema.json",
"index": 5
},
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
...@@ -4,22 +4,14 @@ ...@@ -4,22 +4,14 @@
"serialisation": "json-in-xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
{% if bbu != 'ors' %} {% if bbu != 'ors' %}
"ue-lte": { "ue": {
"title": "UE-LTE", "title": "UE",
"description": "UE LTE Configuration", "description": "UE Configuration",
"software-type": "ue-lte", "software-type": "ue",
"request": "instance-{{ software_name }}-ue-lte-input-schema.json", "request": "instance-{{ software_name }}-ue-input-schema.json",
"response": "instance-{{ software_name }}-ue-lte-schema.json", "response": "instance-{{ software_name }}-ue-schema.json",
"index": 4 "index": 4
}, },
"ue-nr": {
"title": "UE-NR",
"description": "UE NR Configuration",
"software-type": "ue-nr",
"request": "instance-{{ software_name }}-ue-nr-input-schema.json",
"response": "instance-{{ software_name }}-ue-nr-schema.json",
"index": 5
},
{% endif %} {% endif %}
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
...@@ -360,11 +360,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase): ...@@ -360,11 +360,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase):
class TestUELTEMonitorGadgetUrl(ORSTestCase): class TestUELTEMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -372,11 +372,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase): ...@@ -372,11 +372,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase):
class TestUENRMonitorGadgetUrl(ORSTestCase): class TestUENRMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -405,10 +405,10 @@ class TestSimCard(ORSTestCase): ...@@ -405,10 +405,10 @@ class TestSimCard(ORSTestCase):
class TestUELTEParameters(ORSTestCase): class TestUELTEParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_ue_lte_conf(self): def test_ue_lte_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
...@@ -433,10 +433,10 @@ class TestUELTEParameters(ORSTestCase): ...@@ -433,10 +433,10 @@ class TestUELTEParameters(ORSTestCase):
class TestUENRParameters(ORSTestCase): class TestUENRParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_ue_nr_conf(self): def test_ue_nr_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
......
...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase): ...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase):
class TestUELTEMonitorGadgetUrl(ORSTestCase): class TestUELTEMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase): ...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase):
class TestUENRMonitorGadgetUrl(ORSTestCase): class TestUENRMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase): ...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase):
class TestUELTEParameters(ORSTestCase): class TestUELTEParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_ue_lte_conf(self): def test_ue_lte_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase): ...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase):
class TestUENRParameters(ORSTestCase): class TestUENRParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_ue_nr_conf(self): def test_ue_nr_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
......
...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase): ...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase):
class TestUELTEMonitorGadgetUrl(ORSTestCase): class TestUELTEMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase): ...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase):
class TestUENRMonitorGadgetUrl(ORSTestCase): class TestUENRMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase): ...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase):
class TestUELTEParameters(ORSTestCase): class TestUELTEParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_ue_lte_conf(self): def test_ue_lte_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase): ...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase):
class TestUENRParameters(ORSTestCase): class TestUENRParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_ue_nr_conf(self): def test_ue_nr_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
......
...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase): ...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase):
class TestUELTEMonitorGadgetUrl(ORSTestCase): class TestUELTEMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase): ...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase):
class TestUENRMonitorGadgetUrl(ORSTestCase): class TestUENRMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase): ...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase):
class TestUELTEParameters(ORSTestCase): class TestUELTEParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_ue_lte_conf(self): def test_ue_lte_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase): ...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase):
class TestUENRParameters(ORSTestCase): class TestUENRParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_ue_nr_conf(self): def test_ue_nr_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
......
...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase): ...@@ -356,11 +356,11 @@ class TestCoreNetworkMonitorGadgetUrl(ORSTestCase):
class TestUELTEMonitorGadgetUrl(ORSTestCase): class TestUELTEMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase): ...@@ -368,11 +368,11 @@ class TestUELTEMonitorGadgetUrl(ORSTestCase):
class TestUENRMonitorGadgetUrl(ORSTestCase): class TestUENRMonitorGadgetUrl(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps({'testing': True})} return {'_': json.dumps({'testing': True, 'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_monitor_gadget_url(self): def test_monitor_gadget_url(self):
test_monitor_gadget_url(self) test_monitor_gadget_url(self)
...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase): ...@@ -401,10 +401,10 @@ class TestSimCard(ORSTestCase):
class TestUELTEParameters(ORSTestCase): class TestUELTEParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'lte'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-lte" return "ue"
def test_ue_lte_conf(self): def test_ue_lte_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase): ...@@ -429,10 +429,10 @@ class TestUELTEParameters(ORSTestCase):
class TestUENRParameters(ORSTestCase): class TestUENRParameters(ORSTestCase):
@classmethod @classmethod
def getInstanceParameterDict(cls): def getInstanceParameterDict(cls):
return {'_': json.dumps(param_dict)} return {'_': json.dumps(param_dict | {'ue_type': 'nr'})}
@classmethod @classmethod
def getInstanceSoftwareType(cls): def getInstanceSoftwareType(cls):
return "ue-nr" return "ue"
def test_ue_nr_conf(self): def test_ue_nr_conf(self):
conf_file = glob.glob(os.path.join( conf_file = glob.glob(os.path.join(
self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0] self.slap.instance_directory, '*', 'etc', 'ue.cfg'))[0]
......
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "UE. Common properties",
"type": "object",
"required": [
"ue_type",
"rue_addr"
],
"properties": {
"$ref": "../sim/input-schema.json#/properties",
"ue_type": {
"type": "string",
"options": { "hidden": true }
},
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"imsi": {
"$ref": "../sim/input-schema.json#/properties/imsi",
"default": "001010123456789"
},
"k": {
"$ref": "../sim/input-schema.json#/properties/k",
"default": "00112233445566778899aabbccddeeff"
},
"sim_algo": {
"$ref": "../sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm."
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "UE. Common properties",
"type": "object",
"required": [
"ue_type",
"rue_addr"
],
"properties": {
"$ref": "../sim/input-schema.json#/properties",
"ue_type": {
"type": "string",
"options": { "hidden": true }
},
"rue_addr": {
"title": "[Required] Remote UE address",
"description": "[Required] Address of remote UE server. Default port is 2152.",
"type": "string",
"default": ""
},
"imsi": {
"$ref": "../sim/input-schema.json#/properties/imsi",
"default": "{{ default_imsi }}"
},
"k": {
"$ref": "../sim/input-schema.json#/properties/k",
"default": "{{ default_k }}"
},
"sim_algo": {
"$ref": "../sim/input-schema.json#/properties/sim_algo",
"description": "Optional enumeration. xor, milenage or tuak (default = milenage). Set the USIM authentication algorithm. Note: test USIM cards use the XOR algorithm."
},
"opc": {
"$ref": "../sim/input-schema.json#/properties/opc",
"default": "milenage"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "LTE UE",
"type": "object",
"properties": {
"$ref": "../../ue/common.json#/properties",
"ue_type": {
"$ref": "#/properties/ue_type",
"const": "lte",
"template": "lte"
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "LTE UE",
"type": "object",
"properties": {
"$ref": "../../ue/common.json#/properties",
"ue_type": {
"$ref": "#/properties/ue_type",
"const": "lte",
"template": "lte"
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"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 }}"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "NR UE",
"type": "object",
"properties": {
"$ref": "../../ue/common.json#/properties",
"ue_type": {
"$ref": "#/properties/ue_type",
"const": "lte",
"template": "lte"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "NR UE",
"type": "object",
"properties": {
"$ref": "../../ue/common.json#/properties",
"ue_type": {
"$ref": "#/properties/ue_type",
"const": "lte",
"template": "lte"
},
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"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_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR ARFCN, you can retrieve from ENB/GNB side",
"type": "number"
}
}
}
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