Commit d4906425 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 91d588e7
......@@ -244,6 +244,7 @@
{%- endif %}
},
// XXX handle tx_gain/rx_gain from RU
{# TODO amarisoft doc says tx_gain/rx_gain are per-channel -> allow separate configuration
NOTE one RF port can consist of multiple DL and multiple UL channels #}
tx_gain: {{ tx_gain }},
......
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters",
"properties": {
"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
},
"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": {{ default_lte_inactivity_timer }}
},
"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_txrx_delay": {
"title": "Minimum available time for radio front end processing (ms)",
"description": "Baseband latency promise will fail if minimum TX/RX diff reaches threshold (higher than this value)",
"type": "number",
"default": 5
},
"avg_txrx_delay": {
"title": "Average available time for radio front end processing (ms)",
"description": "Baseband latency promise will fail if average TX/RX diff reaches threshold (higher than this value)",
"type": "number",
"default": 7
},
"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"
}
}
}
#!/usr/bin/env -S slapos console
"""request erp5 for kirr"""
"""request ors/core for kirr"""
import sys, json
from pprint import pprint
import kslap
# ref_of_instance returns reference an instance was requested with
def ref_of_instance(inst):
i_comp_id = inst.slap_computer_id
i_part_id = inst.slap_computer_partition_id
for x in slap.getOpenOrderDict().values(): # XXX linear search
if x._computer_reference == i_comp_id and \
x._reference == i_part_id:
return x._partition_reference
raise KeyError('not found reference of instance_guid=%s-%s' % (i_comp_id, i_part_id))
"""
x =slap.getOpenOrderDict()
......@@ -37,7 +29,7 @@ core = request(ors,
})})
print("core:", core)
print("ref(core):", ref_of_instance(core))
print("ref(core):", kslap.ref_of_instance(core))
print("core.getInstanceParameterDict:")
pprint(core.getInstanceParameterDict())
print()
......@@ -82,7 +74,7 @@ for x in '_computer_id', '_instance_guid', '_parameter_dict', '_partition_id', '
def request_sim(core, sim_n):
core_ref = ref_of_instance(core)
core_ref = kslap.ref_of_instance(core)
core_guid = core.getInstanceGuid()
sim = request(ors,
software_type="core-network",
......
#!/usr/bin/env -S slapos console
"""request ors/enb for kirr"""
import kslap
ors = "/srv/slapgrid/slappart35/srv/project/slapos/software/ors-amarisoft/software.cfg"
env = request(ors,
software_type="enb",
partition_reference="kenb",
filter_kw={"computer_guid": "slaprunner"},
partition_parameter_kw={"_": json.dumps({
'testing': True,
'core_network_plmn': '31415',
})})
# Module kslap provides utility routines for dealing with SlapOS.
# ref_of_instance returns reference an instance was requested with
def ref_of_instance(inst):
i_comp_id = inst.slap_computer_id
i_part_id = inst.slap_computer_partition_id
for x in slap.getOpenOrderDict().values(): # XXX linear search
if x._computer_reference == i_comp_id and \
x._reference == i_part_id:
return x._partition_reference
raise KeyError('not found reference of instance_guid=%s-%s' % (i_comp_id, i_part_id))
......@@ -217,7 +217,7 @@
<active>{{ slapparameter_dict.get('txa0cc00_active', 'INACTIVE') }}</active>
<rw-type>LTE</rw-type>
<rw-duplex-scheme>FDD</rw-duplex-scheme>
<gain>{{ slapparameter_dict.get('txa0cc00_gain', '-20') }}</gain>
<gain>{{ slapparameter_dict.get('txa0cc00_gain XXX -> global tx_gain', '-20') }}</gain>
<downlink-radio-frame-offset>0</downlink-radio-frame-offset>
<downlink-sfn-offset>0</downlink-sfn-offset>
</tx-array-carriers>
......
......@@ -38,6 +38,18 @@
"type": "integer"
},
"tx_gain": {
"title": "Tx gain",
"description": "Tx gain (in dB)",
"type": "number"
},
"rx_gain": {
"title": "Rx gain",
"description": "Rx gain (in dB)",
"type": "number"
},
"cpri_link": {
"title": "CPRI link settings",
......
......@@ -9,12 +9,9 @@
"mac_addr",
"txa0cc00_active",
"rxa0cc00_active",
"txa0cc00_center_frequency_earfcn",
"txa0cc00_center_frequency",
"txa0cc00_bandwidth",
"rxa0cc00_center_frequency_earfcn",
"rxa0cc00_center_frequency",
"rxa0cc00_bandwidth"
"rxa0cc00_center_frequency"
],
"properties": {
"ru_type": {
......@@ -65,23 +62,11 @@
"INACTIVE"
]
},
"txa0cc00_center_frequency_earfcn": {
"title": "Center Frequency EARFCN (TXA0CC00)",
"description": "Center Frequency EARFCN (TXA0CC00)",
"type": "number",
"default": 300
},
"txa0cc00_center_frequency": {
"title": "Center Frequency in Hz (TXA0CC00)",
"description": "Center Frequency in Hz (TXA0CC00)",
"type": "number",
"default": 2140000000
},
"txa0cc00_bandwidth": {
"title": "bandwidth in Hz (TXA0CC00)",
"description": "bandwidth in Hz (TXA0CC00)",
"title": "DL Center Frequency in MHz (TXA0CC00)",
"description": "Center Frequency in MHz (TXA0CC00)",
"type": "number",
"default": 20000000
"default": 2140
},
"rxa0cc00_center_frequency_earfcn": {
"title": "Center Frequency EARFCN (RXA0CC00)",
......@@ -90,16 +75,16 @@
"default": 18300
},
"rxa0cc00_center_frequency": {
"title": "Center Frequency in Hz (RXA0CC00)",
"description": "Center Frequency in Hz (RXA0CC00)",
"title": "UL Center Frequency in MHz (RXA0CC00)",
"description": "Center Frequency in MHz (RXA0CC00)",
"type": "number",
"default": 1950000000
"default": 1950
},
"rxa0cc00_bandwidth": {
"title": "Lopcomm ORAN bandwidth in Hz (RXA0CC00)",
"description": "Lopcomm ORAN bandwidth in Hz (RXA0CC00)",
"type": "number",
"default": 20000000
"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"
}
}
}
......@@ -34,6 +34,8 @@ def iRU1_SDR_tLTE2_tNR():
'sdr_dev_list': [0, 1],
'n_antenna_dl': 4,
'n_antenna_ul': 2,
'tx_gain': 51,
'rx_gain': 52,
}
iSHARED('Cell 1a', '_CELL1_a', {
......@@ -92,11 +94,15 @@ def iRU2_LOPCOMM_fLTE_fNR():
},
'n_antenna_dl': 2,
'n_antenna_ul': 1,
'tx_gain': -21,
'rx_gain': -22,
}
RU2_b = copy.deepcopy(RU2_a)
RU2_b['mac_addr'] = 'YYY'
RU2_b['cpri_link']['sfp_port'] = 1
RU2_b['tx_gain'] += 10
RU2_b['rx_gain'] += 10
iSHARED('Radio Unit 2a', '_RU2_a', RU2_a)
iSHARED('Radio Unit 2b', '_RU2_b', RU2_b)
......@@ -140,6 +146,8 @@ def iRU3_SDR1_fLTE2():
'sdr_dev_list': [1],
'n_antenna_dl': 1,
'n_antenna_ul': 1,
'tx_gain': 67,
'rx_gain': 61,
}
iSHARED('Cell 3a', '_CELL3_a', {
......@@ -174,24 +182,15 @@ iRU3_SDR1_fLTE2()
jshared_instance_list = json.dumps(shared_instance_list)
json_params = """{
"earfcn": 126357,
"tx_gain": 67,
"rx_gain": 60,
"sib23_file": "sib2_3.asn",
"rf_mode": "fdd",
"slap_configuration": {
"tap-name": "slaptap9",
"slap-computer-partition-id": "slappart9",
"configuration.default_lte_bandwidth": "10 MHz",
"configuration.default_lte_imsi": "001010123456789",
"configuration.default_lte_k": "00112233445566778899aabbccddeeff",
"configuration.default_lte_inactivity_timer": 10000,
"configuration.default_nr_bandwidth": 40,
"configuration.default_nr_imsi": "001010123456789",
"configuration.default_nr_k": "00112233445566778899aabbccddeeff",
"configuration.default_nr_ssb_pos_bitmap": "10000000",
"configuration.default_n_antenna_dl": 2,
"configuration.default_n_antenna_ul": 2,
"configuration.default_nr_inactivity_timer": 10000,
"slave-instance-list": %(jshared_instance_list)s
},
......
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