Commit 455ebd3b authored by Kirill Smelkov's avatar Kirill Smelkov

software/ors-amarisoft: enb: Switch rf_mode to be runtime parameter

Previously rf_mode was static parameter of particular software - it was
possible to instantiate cells only of the mode selected for particular template.

In MultiRU it will be possible to generally instantiate all kind of cells -
LTE/NR and TDD/FDD all at the same time.

-> Switch rf_mode to be runtime parameter as a preparatory step for that.

Software for ORS becomes just software-ors.cfg with software-tdd-ors.cfg
providing backward compatibility proxy as we have many ORS'es currently
deployed with that software-release URL. For other softwares backward
compatibility is not preserved including for software-fdd-ors.cfg because we
practically have very few deployments with those.

To show tdd_ul_dl_config only for TDD we use conditional feature of new JSON-editor.

Backward compatibility: nothing changes for ORS, for everything else rf_mode
now needs to be explicitly set in cell parameters if it is not TDD.

Rendered enb.cfg and gnb.cfg stay the same.
parent 4a646974
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -29,7 +39,12 @@ ...@@ -29,7 +39,12 @@
"[Configuration 2] 5ms 2UL 6DL (default)", "[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)" "[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -30,7 +40,12 @@ ...@@ -30,7 +40,12 @@
"2.5ms 1UL 3DL 2/10", "2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)" "5ms 8UL 1DL 2/10 (maximum uplink)"
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"dl_nr_arfcn": { "dl_nr_arfcn": {
"title": "DL NR ARFCN", "title": "DL NR ARFCN",
......
...@@ -40,7 +40,16 @@ ...@@ -40,7 +40,16 @@
"default": {{ default_n_antenna_ul }} "default": {{ default_n_antenna_ul }}
}, },
{%- if bbu == 'ors' %} {%- if bbu == 'ors' %}
{%- if rf_mode == 'tdd' %} "rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -49,9 +58,13 @@ ...@@ -49,9 +58,13 @@
"[Configuration 2] 5ms 2UL 6DL (default)", "[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)" "[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
{%- endif %}
"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",
...@@ -88,7 +101,16 @@ ...@@ -88,7 +101,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
{%- if rf_mode == 'tdd' %} "rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -97,9 +119,13 @@ ...@@ -97,9 +119,13 @@
"[Configuration 2] 5ms 2UL 6DL (default)", "[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)" "[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
{%- endif %}
{%- if trx == 'cpri' %} {%- if trx == 'cpri' %}
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
......
...@@ -203,7 +203,6 @@ context = ...@@ -203,7 +203,6 @@ context =
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 software_name {{ software_name }} raw software_name {{ software_name }}
raw rf_mode {{ rf_mode }}
raw ru_type {{ ru_type }} raw ru_type {{ ru_type }}
raw default_lte_bandwidth {{ default_lte_bandwidth }} raw default_lte_bandwidth {{ default_lte_bandwidth }}
raw default_lte_inactivity_timer {{ default_lte_inactivity_timer }} raw default_lte_inactivity_timer {{ default_lte_inactivity_timer }}
......
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "1, 2, 4 or 8. Number of DL antennas.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "1, 2, 4 or 8. Number of UL antennas.",
"type": "number",
"default": 2
},
"cell_list": {
"title": "Cell List",
"description": "Cell List",
"patternProperties": {
".*": {
"properties": {
"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"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell IDs",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Cell IDs",
"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",
"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"
},
"user-authorized-key": {
"title": "User Authorized Key",
"description": "SSH public key in order to connect to the SSH server of this instance.",
"textarea": true,
"type": "string"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
},
"gtp_addr": {
"title": "GTP Address",
"description": "String. Set the IP address (and optional port) on which the GTP-U packets are received. The default port is 2152. It is normally the IP address of the network interface connected to the core network.",
"type": "string",
"default": "127.0.1.1"
},
"mme_list": {
"title": "MME list",
"description": "Optionnal. List of MME to which the gNodeB is connected",
"patternProperties": {
".*": {
"properties": {
"mme_addr": {
"title": "MME Address",
"description": "IP address (and optional port) of S1AP SCTP connection to the MME. The default port is 36412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the eNodeB, at most 6 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"attach_without_pdn": {
"default": false,
"title": "Attach Without PDN",
"description": "Optional boolean. Indicates if PLMN supports attach without PDN connectivity.",
"type": "boolean"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"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",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"websocket_password": {
"title": "Websocket password",
"description": "Activates websocket for remote control and sets password",
"type": "string"
},
"log_phy_debug": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"gps_sync": {
"default": false,
"title": "GPS synchronisation",
"description": "True if GPS should be used for synchronisation",
"type": "boolean"
},
"disable_sdr": {
"default": false,
"title": "Disable SDR",
"description": "Disables radio",
"type": "boolean"
},
"use_ipv4": {
"default": false,
"title": "Use IPv4",
"description": "Set to true to use IPv4 for AMF / MME addresses",
"type": "boolean"
},
"enb_stats_fetch_period": {
"title": "eNB statistics fetch period (seconds)",
"description": "Describes how often a call to Amarisoft remote API is made to get eNB statistics",
"type": "number",
"default": 60
},
"enb_drb_stats_enabled": {
"title": "Enable eNB drb statistics",
"description": "Enable eNB drb statistics through 100Hz polling, needed for E-UTRAN IP Throughput KPI",
"type": "boolean",
"default": true
},
"max_rx_sample_db": {
"title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail",
"type": "number",
"default": 0
},
"min_rxtx_delay": {
"title": "Minimum available time for radio front end processing (ms)",
"description": "Baseband latency promise will fail if minimum TX/RX diff reaches threshold (lower than this value)",
"type": "number",
"default": 0
},
"xlog_fluentbit_forward_host": {
"title": "Address to Forward Xlog by Fluenbit",
"description": "Address of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_port": {
"title": "Port to Forward Xlog by Fluentbit",
"description": "Optional Port of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_shared_key": {
"title": "Shared Key to Forward Xlog by Fluentbit",
"description": "Secret Key Shared with Remote Fluentd or Fluentbit Server for Authentication when Forwarding Xlog",
"type": "string"
}
}
}
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"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": {
"title": "Number of DL antennas",
"description": "1 or 2. Number of DL antennas.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "1 or 2. Number of UL antennas.",
"type": "number",
"default": 2
},
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID",
"type": "number",
"default": 1
},
"cell_id": {
"title": "Cell ID",
"description": "Cell ID",
"type": "string",
"default": "0x01"
},
"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
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
},
"gtp_addr": {
"title": "GTP Address",
"description": "String. Set the IP address (and optional port) on which the GTP-U packets are received. The default port is 2152. It is normally the IP address of the network interface connected to the core network.",
"type": "string",
"default": "127.0.1.1"
},
"mme_list": {
"title": "MME list",
"description": "Optionnal. List of MME to which the gNodeB is connected",
"patternProperties": {
".*": {
"properties": {
"mme_addr": {
"title": "MME Address",
"description": "IP address (and optional port) of S1AP SCTP connection to the MME. The default port is 36412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the eNodeB, at most 6 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"attach_without_pdn": {
"default": false,
"title": "Attach Without PDN",
"description": "Optional boolean. Indicates if PLMN supports attach without PDN connectivity.",
"type": "boolean"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"lte_handover_a3_offset": {
"title": "A3 offset for LTE handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"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",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 480
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_earfcn": {
"title": "DL EARFCN",
"description": "Downlink E-UTRA Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"cell_id": {
"title": "Cell ID",
"description": "Concatenation of enb_id and cell_id of the neighbour cell",
"type": "string"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"websocket_password": {
"title": "Websocket password",
"description": "Activates websocket for remote control and sets password",
"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": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"gps_sync": {
"default": false,
"title": "GPS synchronisation",
"description": "True if GPS should be used for synchronisation",
"type": "boolean"
},
"disable_sdr": {
"default": false,
"title": "Disable SDR",
"description": "Disables radio",
"type": "boolean"
},
"use_ipv4": {
"default": false,
"title": "Use IPv4",
"description": "Set to true to use IPv4 for AMF / MME addresses",
"type": "boolean"
},
"enb_stats_fetch_period": {
"title": "eNB statistics fetch period (seconds)",
"description": "Describes how often a call to Amarisoft remote API is made to get eNB statistics",
"type": "number",
"default": 60
},
"enb_drb_stats_enabled": {
"title": "Enable eNB drb statistics",
"description": "Enable eNB drb statistics through 100Hz polling, needed for E-UTRAN IP Throughput KPI",
"type": "boolean",
"default": true
},
"max_rx_sample_db": {
"title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail",
"type": "number",
"default": 0
},
"min_rxtx_delay": {
"title": "Minimum available time for radio front end processing (ms)",
"description": "Baseband latency promise will fail if minimum TX/RX diff reaches threshold (lower than this value)",
"type": "number",
"default": 0
},
"xlog_fluentbit_forward_host": {
"title": "Address to Forward Xlog by Fluenbit",
"description": "Address of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_port": {
"title": "Port to Forward Xlog by Fluentbit",
"description": "Optional Port of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_shared_key": {
"title": "Shared Key to Forward Xlog by Fluentbit",
"description": "Secret Key Shared with Remote Fluentd or Fluentbit Server for Authentication when Forwarding Xlog",
"type": "string"
}
}
}
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"nr_bandwidth": {
"title": "Bandwidth",
"description": "Downlink Bandwidth (in MHz)",
"type": "number",
"default": 40
},
"n_antenna_dl": {
"title": "Number of DL antennas",
"description": "1 or 2. Number of DL antennas.",
"type": "number",
"default": 2
},
"n_antenna_ul": {
"title": "Number of UL antennas",
"description": "1 or 2. Number of UL antennas.",
"type": "number",
"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"
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
},
"gnb_id_bits": {
"title": "gNB ID bits",
"description": "Number of bits for the gNodeB global identifier. (range 22 to 32)",
"type": "number",
"default": 28
},
"amf_list": {
"title": "AMF list",
"description": "Optionnal. List of AMF to which the gNodeB is connected",
"patternProperties": {
".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": "0x000032",
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nr_handover_a3_offset": {
"title": "A3 offset for NR handover",
"description": "RSRP gain offset between gNBs which will trigger handover",
"type": "number",
"default": 6
},
"nr_handover_time_to_trigger": {
"title": "Time to Trigger for NR handover",
"description": "Time to triger after which NR handover will be triggerd if A3 offset is reached",
"type": "number",
"enum": [
0,
40,
64,
80,
100,
128,
160,
256,
320,
480,
512,
640,
1024,
1280,
2560,
5120
],
"default": 100
},
"ncell_list": {
"title": "Neighbour Cell Info",
"description": "Neighbour Cell Info",
"patternProperties": {
".*": {
"properties": {
"dl_nr_arfcn": {
"title": "DL NR ARFCN",
"description": "Downlink NR Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"ssb_nr_arfcn": {
"title": "SSB NR ARFCN",
"description": "SSB NR Absolute Radio Frequency Channel Number of the neighbour cell",
"type": "number"
},
"pci": {
"title": "Physical Cell ID",
"description": "Physical Cell ID of the neighbour cell",
"type": "number"
},
"nr_cell_id": {
"title": "NR Cell ID",
"description": "Concatenation of gnb_id and cell_id of the neighbour cell",
"type": "string"
},
"gnb_id_bits": {
"title": "gNB ID bits",
"description": "Number of bits for the gNodeB global identifier. (range 22 to 32)",
"type": "number"
},
"nr_band": {
"title": "NR band",
"description": "NR band number",
"type": "number"
},
"tac": {
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"xn_peers": {
"title": "XN Peers",
"description": "XN Peers",
"patternProperties": {
".*": {
"properties": {
"xn_addr": {
"title": "XN Address",
"description": "XN Address of the neighbour cell (gNB Address)",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"websocket_password": {
"title": "Websocket password",
"description": "Activates websocket for remote control and sets password",
"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": {
"title": "Physical layer log debug",
"description": "Enable debug mode for physical layer logs",
"type": "boolean",
"default": false
},
"gps_sync": {
"default": false,
"title": "GPS synchronisation",
"description": "True if GPS should be used for synchronisation",
"type": "boolean"
},
"disable_sdr": {
"default": false,
"title": "Disable SDR",
"description": "Disables radio",
"type": "boolean"
},
"use_ipv4": {
"default": false,
"title": "Use IPv4",
"description": "Set to true to use IPv4 for AMF / MME addresses",
"type": "boolean"
},
"gnb_stats_fetch_period": {
"title": "gNB statistics fetch period (seconds)",
"description": "Describes how often a call to Amarisoft remote API is made to get gNB statistics",
"type": "number",
"default": 60
},
"gnb_drb_stats_enabled": {
"title": "Enable gNB drb statistics",
"description": "Enable gNB drb statistics through 100Hz polling, needed for E-UTRAN IP Throughput KPI",
"type": "boolean",
"default": true
},
"max_rx_sample_db": {
"title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail",
"type": "number",
"default": 0
},
"min_rxtx_delay": {
"title": "Minimum available time for radio front end processing (ms)",
"description": "Baseband latency promise will fail if minimum TX/RX diff reaches threshold (lower than this value)",
"type": "number",
"default": 0
},
"xlog_fluentbit_forward_host": {
"title": "Address to Forward Xlog by Fluenbit",
"description": "Address of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_port": {
"title": "Port to Forward Xlog by Fluentbit",
"description": "Optional Port of Remote Fluentd or Fluentbit Server to Forward Xlog",
"type": "string"
},
"xlog_fluentbit_forward_shared_key": {
"title": "Shared Key to Forward Xlog by Fluentbit",
"description": "Secret Key Shared with Remote Fluentd or Fluentbit Server for Authentication when Forwarding Xlog",
"type": "string"
}
}
}
...@@ -32,7 +32,16 @@ ...@@ -32,7 +32,16 @@
"default": {{ default_n_antenna_ul }} "default": {{ default_n_antenna_ul }}
}, },
{%- if bbu == 'ors' %} {%- if bbu == 'ors' %}
{%- if rf_mode == 'tdd' %} "rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -42,9 +51,13 @@ ...@@ -42,9 +51,13 @@
"2.5ms 1UL 3DL 2/10", "2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)" "5ms 8UL 1DL 2/10 (maximum uplink)"
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
{%- endif %}
"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",
...@@ -80,7 +93,16 @@ ...@@ -80,7 +93,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
{%- if rf_mode == 'tdd' %} "rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -90,9 +112,13 @@ ...@@ -90,9 +112,13 @@
"2.5ms 1UL 3DL 2/10", "2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)" "5ms 8UL 1DL 2/10 (maximum uplink)"
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
{%- endif %}
{%- if trx == 'cpri' %} {%- if trx == 'cpri' %}
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
......
...@@ -21,6 +21,31 @@ ...@@ -21,6 +21,31 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "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)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
},
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
"description": "SDR Number", "description": "SDR Number",
......
...@@ -21,6 +21,32 @@ ...@@ -21,6 +21,32 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "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)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
},
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
"description": "SDR Number", "description": "SDR Number",
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -29,7 +39,12 @@ ...@@ -29,7 +39,12 @@
"[Configuration 2] 5ms 2UL 6DL (default)", "[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)" "[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
"patternProperties": { "patternProperties": {
".*": { ".*": {
"properties": { "properties": {
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -30,7 +40,12 @@ ...@@ -30,7 +40,12 @@
"2.5ms 1UL 3DL 2/10", "2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)" "5ms 8UL 1DL 2/10 (maximum uplink)"
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"sdr_number": { "sdr_number": {
"title": "SDR Number", "title": "SDR Number",
......
...@@ -29,6 +29,16 @@ ...@@ -29,6 +29,16 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -37,7 +47,12 @@ ...@@ -37,7 +47,12 @@
"[Configuration 2] 5ms 2UL 6DL (default)", "[Configuration 2] 5ms 2UL 6DL (default)",
"[Configuration 6] 5ms 5UL 3DL (maximum uplink)" "[Configuration 6] 5ms 5UL 3DL (maximum uplink)"
], ],
"default": "[Configuration 2] 5ms 2UL 6DL (default)" "default": "[Configuration 2] 5ms 2UL 6DL (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"dl_earfcn": { "dl_earfcn": {
"title": "DL EARFCN", "title": "DL EARFCN",
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
"type": "number", "type": "number",
"default": 2 "default": 2
}, },
"rf_mode": {
"title": "RF mode",
"description": "Mode for TX/RX radio multiplexing: Frequency- or Time- Domain Division",
"type": "string",
"enum": [
"fdd",
"tdd"
],
"default": "tdd"
},
"tdd_ul_dl_config": { "tdd_ul_dl_config": {
"title": "TDD", "title": "TDD",
"description": "TDD", "description": "TDD",
...@@ -30,7 +40,12 @@ ...@@ -30,7 +40,12 @@
"2.5ms 1UL 3DL 2/10", "2.5ms 1UL 3DL 2/10",
"5ms 8UL 1DL 2/10 (maximum uplink)" "5ms 8UL 1DL 2/10 (maximum uplink)"
], ],
"default": "5ms 2UL 7DL 4/6 (default)" "default": "5ms 2UL 7DL 4/6 (default)",
"options": {
"dependencies": {
"rf_mode": "tdd"
}
}
}, },
"dl_nr_arfcn": { "dl_nr_arfcn": {
"title": "DL NR ARFCN", "title": "DL NR ARFCN",
......
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"ue": {
"title": "UE",
"oneOf": [
{
"$ref": "ue/lte/input-schema.json"
},
{
"$ref": "ue/nr/input-schema.json"
}
]
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"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
}
}
}
...@@ -35,7 +35,6 @@ context = ...@@ -35,7 +35,6 @@ context =
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
key lan_ipv4 lan-ip:ipv4 key lan_ipv4 lan-ip:ipv4
key my_ipv6 slap-configuration:ipv6-random key my_ipv6 slap-configuration:ipv6-random
raw rf_mode ${rf-mode:rf-mode}
raw software_name ${rf-mode:software-name} raw software_name ${rf-mode:software-name}
raw ru_type ${rf-mode:ru} raw ru_type ${rf-mode:ru}
$${:extra-context} $${:extra-context}
......
...@@ -14,38 +14,22 @@ global_context = { ...@@ -14,38 +14,22 @@ global_context = {
software_list = [ software_list = [
{ {
'software_name' : 'tdd-ors', 'software_name' : 'ors',
'rf_mode' : 'tdd',
'trx' : 'sdr', 'trx' : 'sdr',
'bbu' : 'ors', 'bbu' : 'ors',
'ru' : 'sdr', 'ru' : 'sdr',
}, { }, {
'software_name' : 'fdd-ors', 'software_name' : 'm2ru',
'rf_mode' : 'fdd',
'trx' : 'sdr',
'bbu' : 'ors',
'ru' : 'sdr',
}, {
'software_name' : 'tdd-m2ru',
'rf_mode' : 'tdd',
'trx' : 'cpri', 'trx' : 'cpri',
'bbu' : 'server', 'bbu' : 'server',
'ru' : 'm2ru', 'ru' : 'm2ru',
}, { }, {
'software_name' : 'fdd-lopcomm', 'software_name' : 'lopcomm',
'rf_mode' : 'fdd',
'trx' : 'cpri', 'trx' : 'cpri',
'bbu' : 'server', 'bbu' : 'server',
'ru' : 'lopcomm', 'ru' : 'lopcomm',
}, { }, {
'software_name' : 'fdd', 'software_name' : 'any',
'rf_mode' : 'fdd',
'trx' : 'sdr',
'bbu' : 'server',
'ru' : 'sdr',
}, {
'software_name' : 'tdd',
'rf_mode' : 'tdd',
'trx' : 'sdr', 'trx' : 'sdr',
'bbu' : 'server', 'bbu' : 'server',
'ru' : 'sdr', 'ru' : 'sdr',
......
...@@ -141,7 +141,7 @@ ...@@ -141,7 +141,7 @@
{%- 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({'cell_type': 'lte' if do_lte else 'nr'}) %}
{%- do cell.update({'rf_mode': rf_mode}) %} {%- do cell.setdefault('rf_mode', slapparameter_dict.get('rf_mode', 'tdd')) %}
{%- if do_lte %} {%- if do_lte %}
{%- if cell.rf_mode == 'tdd' %} {%- 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)')) %} {%- do cell.setdefault('tdd_ul_dl_config', slapparameter_dict.get('tdd_ul_dl_config', '[Configuration 2] 5ms 2UL 6DL (default)')) %}
......
...@@ -55,7 +55,6 @@ def do(src, out, rat, slapparameter_dict): ...@@ -55,7 +55,6 @@ def do(src, out, rat, slapparameter_dict):
slapparameter_dict.setdefault(k, v) slapparameter_dict.setdefault(k, v)
jslapparameter_dict = json.dumps(slapparameter_dict) jslapparameter_dict = json.dumps(slapparameter_dict)
json_params_empty = """{ json_params_empty = """{
"rf_mode": 'fdd',
"slap_configuration": { "slap_configuration": {
}, },
"directory": { "directory": {
...@@ -63,7 +62,6 @@ def do(src, out, rat, slapparameter_dict): ...@@ -63,7 +62,6 @@ def do(src, out, rat, slapparameter_dict):
"slapparameter_dict": %(jslapparameter_dict)s "slapparameter_dict": %(jslapparameter_dict)s
}""" }"""
json_params = """{ json_params = """{
"rf_mode": "tdd",
"do_lte": %(jdo_lte)s, "do_lte": %(jdo_lte)s,
"do_nr": %(jdo_nr)s, "do_nr": %(jdo_nr)s,
"ru_type": "ors", "ru_type": "ors",
...@@ -118,10 +116,12 @@ def do_enb(): ...@@ -118,10 +116,12 @@ def do_enb():
} }
do('enb.jinja2.cfg', 'enb.cfg', 'lte', { do('enb.jinja2.cfg', 'enb.cfg', 'lte', {
"rf_mode": "tdd",
"tdd_ul_dl_config": "[Configuration 6] 5ms 5UL 3DL (maximum uplink)", "tdd_ul_dl_config": "[Configuration 6] 5ms 5UL 3DL (maximum uplink)",
"ncell_list": {'1': peer_lte}, "ncell_list": {'1': peer_lte},
}) })
do('enb.jinja2.cfg', 'gnb.cfg', 'nr', { do('enb.jinja2.cfg', 'gnb.cfg', 'nr', {
"rf_mode": "tdd",
"tdd_ul_dl_config": "5ms 8UL 1DL 2/10 (maximum uplink)", "tdd_ul_dl_config": "5ms 8UL 1DL 2/10 (maximum uplink)",
"ncell_list": {'1': peer_nr}, "ncell_list": {'1': peer_nr},
}) })
......
...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2 ...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2
default-n-antenna-ul = 2 default-n-antenna-ul = 2
[rf-mode] [rf-mode]
software-name = tdd software-name = any
rf-mode = tdd
ru = sdr ru = sdr
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
"title": "UE", "title": "UE",
"description": "UE Configuration", "description": "UE Configuration",
"software-type": "ue", "software-type": "ue",
"request": "instance-tdd-ue-input-schema.json", "request": "instance-any-ue-input-schema.json",
"response": "instance-tdd-ue-schema.json", "response": "instance-any-ue-schema.json",
"index": 4 "index": 4
}, },
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
"title": "eNB", "title": "eNB",
"software-type": "enb", "software-type": "enb",
"description": "eNodeB Configuration", "description": "eNodeB Configuration",
"request": "instance-tdd-enb-input-schema.json", "request": "instance-any-enb-input-schema.json",
"response": "instance-tdd-enb-schema.json", "response": "instance-any-enb-schema.json",
"index": 0 "index": 0
}, },
"gnb": { "gnb": {
"title": "gNB", "title": "gNB",
"software-type": "gnb", "software-type": "gnb",
"description": "gNodeB Configuration", "description": "gNodeB Configuration",
"request": "instance-tdd-gnb-input-schema.json", "request": "instance-any-gnb-input-schema.json",
"response": "instance-tdd-gnb-schema.json", "response": "instance-any-gnb-schema.json",
"index": 1 "index": 1
}, },
"core-network": { "core-network": {
......
{
"name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS",
"serialisation": "json-in-xml",
"software-type": {
"ue": {
"title": "UE",
"description": "UE Configuration",
"software-type": "ue",
"request": "instance-fdd-lopcomm-ue-input-schema.json",
"response": "instance-fdd-lopcomm-ue-schema.json",
"index": 4
},
"enb": {
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-fdd-lopcomm-enb-input-schema.json",
"response": "instance-fdd-lopcomm-enb-schema.json",
"index": 0
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-fdd-lopcomm-gnb-input-schema.json",
"response": "instance-fdd-lopcomm-gnb-schema.json",
"index": 1
},
"core-network": {
"title": "Core Network",
"software-type": "core-network",
"description": "Core Network Configuration",
"request": "instance-core-network-input-schema.json",
"response": "instance-core-network-schema.json",
"index": 2
},
"core-network-slave": {
"title": "Core Network Sim Card",
"description": "Core Network Sim Card Configuration",
"software-type": "core-network",
"request": "sim/input-schema.json",
"response": "sim/schema.json",
"shared": true,
"index": 3
}
}
}
# This file was generated using a jinja2 template and the render-templates script, don't modify directly.
[buildout]
extends =
software-ors.cfg
[default-params]
default-lte-bandwidth = 20 MHz
default-lte-inactivity-timer = 10000
default-nr-bandwidth = 40
default-nr-ssb-pos-bitmap = 10000000
default-nr-inactivity-timer = 10000
default-imsi = 001010123456789
default-k = 00112233445566778899aabbccddeeff
default-n-antenna-dl = 2
default-n-antenna-ul = 2
[rf-mode]
software-name = fdd-ors
rf-mode = fdd
ru = sdr
{
"name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS",
"serialisation": "json-in-xml",
"software-type": {
"enb": {
"title": "eNB",
"software-type": "enb",
"description": "eNodeB Configuration",
"request": "instance-fdd-ors-enb-input-schema.json",
"response": "instance-fdd-ors-enb-schema.json",
"index": 0
},
"gnb": {
"title": "gNB",
"software-type": "gnb",
"description": "gNodeB Configuration",
"request": "instance-fdd-ors-gnb-input-schema.json",
"response": "instance-fdd-ors-gnb-schema.json",
"index": 1
},
"core-network": {
"title": "Core Network",
"software-type": "core-network",
"description": "Core Network Configuration",
"request": "instance-core-network-input-schema.json",
"response": "instance-core-network-schema.json",
"index": 2
},
"core-network-slave": {
"title": "Core Network Sim Card",
"description": "Core Network Sim Card Configuration",
"software-type": "core-network",
"request": "sim/input-schema.json",
"response": "sim/schema.json",
"shared": true,
"index": 3
}
}
}
# This file was generated using a jinja2 template and the render-templates script, don't modify directly.
[buildout]
extends =
software-base.cfg
[default-params]
default-lte-bandwidth = 20 MHz
default-lte-inactivity-timer = 10000
default-nr-bandwidth = 40
default-nr-ssb-pos-bitmap = 10000000
default-nr-inactivity-timer = 10000
default-imsi = 001010123456789
default-k = 00112233445566778899aabbccddeeff
default-n-antenna-dl = 2
default-n-antenna-ul = 2
[rf-mode]
software-name = fdd
rf-mode = fdd
ru = sdr
...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2 ...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2
default-n-antenna-ul = 2 default-n-antenna-ul = 2
[rf-mode] [rf-mode]
software-name = fdd-lopcomm software-name = lopcomm
rf-mode = fdd
ru = lopcomm ru = lopcomm
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
"title": "UE", "title": "UE",
"description": "UE Configuration", "description": "UE Configuration",
"software-type": "ue", "software-type": "ue",
"request": "instance-tdd-m2ru-ue-input-schema.json", "request": "instance-lopcomm-ue-input-schema.json",
"response": "instance-tdd-m2ru-ue-schema.json", "response": "instance-lopcomm-ue-schema.json",
"index": 4 "index": 4
}, },
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
"title": "eNB", "title": "eNB",
"software-type": "enb", "software-type": "enb",
"description": "eNodeB Configuration", "description": "eNodeB Configuration",
"request": "instance-tdd-m2ru-enb-input-schema.json", "request": "instance-lopcomm-enb-input-schema.json",
"response": "instance-tdd-m2ru-enb-schema.json", "response": "instance-lopcomm-enb-schema.json",
"index": 0 "index": 0
}, },
"gnb": { "gnb": {
"title": "gNB", "title": "gNB",
"software-type": "gnb", "software-type": "gnb",
"description": "gNodeB Configuration", "description": "gNodeB Configuration",
"request": "instance-tdd-m2ru-gnb-input-schema.json", "request": "instance-lopcomm-gnb-input-schema.json",
"response": "instance-tdd-m2ru-gnb-schema.json", "response": "instance-lopcomm-gnb-schema.json",
"index": 1 "index": 1
}, },
"core-network": { "core-network": {
......
...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2 ...@@ -18,6 +18,5 @@ default-n-antenna-dl = 2
default-n-antenna-ul = 2 default-n-antenna-ul = 2
[rf-mode] [rf-mode]
software-name = tdd-m2ru software-name = m2ru
rf-mode = tdd
ru = m2ru ru = m2ru
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
"title": "UE", "title": "UE",
"description": "UE Configuration", "description": "UE Configuration",
"software-type": "ue", "software-type": "ue",
"request": "instance-fdd-ue-input-schema.json", "request": "instance-m2ru-ue-input-schema.json",
"response": "instance-fdd-ue-schema.json", "response": "instance-m2ru-ue-schema.json",
"index": 4 "index": 4
}, },
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
"title": "eNB", "title": "eNB",
"software-type": "enb", "software-type": "enb",
"description": "eNodeB Configuration", "description": "eNodeB Configuration",
"request": "instance-fdd-enb-input-schema.json", "request": "instance-m2ru-enb-input-schema.json",
"response": "instance-fdd-enb-schema.json", "response": "instance-m2ru-enb-schema.json",
"index": 0 "index": 0
}, },
"gnb": { "gnb": {
"title": "gNB", "title": "gNB",
"software-type": "gnb", "software-type": "gnb",
"description": "gNodeB Configuration", "description": "gNodeB Configuration",
"request": "instance-fdd-gnb-input-schema.json", "request": "instance-m2ru-gnb-input-schema.json",
"response": "instance-fdd-gnb-schema.json", "response": "instance-m2ru-gnb-schema.json",
"index": 1 "index": 1
}, },
"core-network": { "core-network": {
......
# software for Open Radio Station.
#
# It is a wrapper around base software which adds ORS-specific features.
[buildout]
extends =
software-base.cfg
parts +=
template-ors
# switch instance.cfg to be installed from instance-ors.cfg instead of template.cfg
# remember original template.cfg as template-base.cfg
[template]
output = ${buildout:directory}/template-base.cfg
[template-ors]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
[template-ors-enb]
<= download-base
# software for Open Radio Station. # This file was generated using a jinja2 template and the render-templates script, don't modify directly.
#
# It is a wrapper around base software which adds ORS-specific features.
[buildout] [buildout]
extends = extends =
software-base.cfg software-ors-base.cfg
parts +=
template-ors [default-params]
default-lte-bandwidth = 20 MHz
default-lte-inactivity-timer = 10000
default-nr-bandwidth = 40
default-nr-ssb-pos-bitmap = 10000000
default-nr-inactivity-timer = 10000
default-imsi = 001010123456789
default-k = 00112233445566778899aabbccddeeff
# switch instance.cfg to be installed from instance-ors.cfg instead of template.cfg default-n-antenna-dl = 2
# remember original template.cfg as template-base.cfg default-n-antenna-ul = 2
[template]
output = ${buildout:directory}/template-base.cfg
[template-ors]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
[template-ors-enb] [rf-mode]
<= download-base software-name = ors
ru = sdr
...@@ -8,16 +8,16 @@ ...@@ -8,16 +8,16 @@
"title": "eNB", "title": "eNB",
"software-type": "enb", "software-type": "enb",
"description": "eNodeB Configuration", "description": "eNodeB Configuration",
"request": "instance-tdd-ors-enb-input-schema.json", "request": "instance-ors-enb-input-schema.json",
"response": "instance-tdd-ors-enb-schema.json", "response": "instance-ors-enb-schema.json",
"index": 0 "index": 0
}, },
"gnb": { "gnb": {
"title": "gNB", "title": "gNB",
"software-type": "gnb", "software-type": "gnb",
"description": "gNodeB Configuration", "description": "gNodeB Configuration",
"request": "instance-tdd-ors-gnb-input-schema.json", "request": "instance-ors-gnb-input-schema.json",
"response": "instance-tdd-ors-gnb-schema.json", "response": "instance-ors-gnb-schema.json",
"index": 1 "index": 1
}, },
"core-network": { "core-network": {
......
# This file was generated using a jinja2 template and the render-templates script, don't modify directly. # software-tdd-ors.cfg is backward compatibility proxy to software-ors.cfg
# because most existing ORS deployements were instantiated via
# software-tdd-ors.cfg before rf_mode became runtime parameter.
#
# TODO remove it once ORS deployments are migrated to software-ors.cfg
[buildout] [buildout]
extends = extends =
software-ors.cfg software-ors.cfg
[default-params]
default-lte-bandwidth = 20 MHz
default-lte-inactivity-timer = 10000
default-nr-bandwidth = 40
default-nr-ssb-pos-bitmap = 10000000
default-nr-inactivity-timer = 10000
default-imsi = 001010123456789
default-k = 00112233445566778899aabbccddeeff
default-n-antenna-dl = 2
default-n-antenna-ul = 2
[rf-mode]
software-name = tdd-ors
rf-mode = tdd
ru = sdr
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
[buildout] [buildout]
extends = extends =
{%- if bbu == 'ors' %} {%- if bbu == 'ors' %}
software-ors.cfg software-ors-base.cfg
{%- else %} {%- else %}
software-base.cfg software-base.cfg
{%- endif %} {%- endif %}
...@@ -23,5 +23,4 @@ default-n-antenna-ul = {{ default_n_antenna_ul }} ...@@ -23,5 +23,4 @@ default-n-antenna-ul = {{ default_n_antenna_ul }}
[rf-mode] [rf-mode]
software-name = {{ software_name }} software-name = {{ software_name }}
rf-mode = {{ rf_mode }}
ru = {{ ru }} ru = {{ ru }}
...@@ -147,11 +147,7 @@ def test_enb_conf(self): ...@@ -147,11 +147,7 @@ def test_enb_conf(self):
self.assertEqual(conf['rx_gain'], [enb_param_dict['rx_gain']] * enb_param_dict['n_antenna_ul']) self.assertEqual(conf['rx_gain'], [enb_param_dict['rx_gain']] * enb_param_dict['n_antenna_ul'])
{%- endif %} {%- endif %}
self.assertEqual(conf['cell_list'][0]['inactivity_timer'], enb_param_dict['inactivity_timer']) self.assertEqual(conf['cell_list'][0]['inactivity_timer'], enb_param_dict['inactivity_timer'])
{%- if rf_mode == 'tdd' %}
self.assertEqual(conf['cell_list'][0]['uldl_config'], 6) self.assertEqual(conf['cell_list'][0]['uldl_config'], 6)
{%- else %}
self.assertNotIn('uldl_config', conf['cell_list'][0])
{%- endif %}
self.assertEqual(conf['cell_list'][0]['dl_earfcn'], enb_param_dict['dl_earfcn']) self.assertEqual(conf['cell_list'][0]['dl_earfcn'], enb_param_dict['dl_earfcn'])
self.assertEqual(conf['cell_list'][0]['n_rb_dl'], 50) self.assertEqual(conf['cell_list'][0]['n_rb_dl'], 50)
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
......
...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass ...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath( os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software-tdd.cfg'))) os.path.join(os.path.dirname(__file__), '..', 'software-any.cfg')))
param_dict = { param_dict = {
'testing': True, 'testing': True,
......
This diff is collapsed.
This diff is collapsed.
...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass ...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath( os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software-tdd-m2ru.cfg'))) os.path.join(os.path.dirname(__file__), '..', 'software-lopcomm.cfg')))
param_dict = { param_dict = {
'testing': True, 'testing': True,
......
...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass ...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath( os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software-fdd-lopcomm.cfg'))) os.path.join(os.path.dirname(__file__), '..', 'software-m2ru.cfg')))
param_dict = { param_dict = {
'testing': True, 'testing': True,
...@@ -143,7 +143,7 @@ def test_enb_conf(self): ...@@ -143,7 +143,7 @@ def test_enb_conf(self):
conf = yamlpp_load(conf_file) conf = yamlpp_load(conf_file)
self.assertEqual(conf['cell_list'][0]['inactivity_timer'], enb_param_dict['inactivity_timer']) self.assertEqual(conf['cell_list'][0]['inactivity_timer'], enb_param_dict['inactivity_timer'])
self.assertNotIn('uldl_config', conf['cell_list'][0]) self.assertEqual(conf['cell_list'][0]['uldl_config'], 6)
self.assertEqual(conf['cell_list'][0]['dl_earfcn'], enb_param_dict['dl_earfcn']) self.assertEqual(conf['cell_list'][0]['dl_earfcn'], enb_param_dict['dl_earfcn'])
self.assertEqual(conf['cell_list'][0]['n_rb_dl'], 50) self.assertEqual(conf['cell_list'][0]['n_rb_dl'], 50)
self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16)) self.assertEqual(conf['enb_id'], int(enb_param_dict['enb_id'], 16))
......
...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass ...@@ -36,7 +36,7 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass( setUpModule, ORSTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath( os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'software-tdd-ors.cfg'))) os.path.join(os.path.dirname(__file__), '..', 'software-ors.cfg')))
param_dict = { param_dict = {
'testing': True, 'testing': True,
......
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