Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
104
Merge Requests
104
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
df8d1418
Commit
df8d1418
authored
Feb 12, 2025
by
Joanne Hugé
Browse files
Options
Browse Files
Download
Plain Diff
Update Release Candidate
parents
f5a00747
41f21555
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
425 additions
and
341 deletions
+425
-341
component/curl/buildout.cfg
component/curl/buildout.cfg
+2
-7
component/gettext/buildout.cfg
component/gettext/buildout.cfg
+2
-0
component/gtk/buildout.cfg
component/gtk/buildout.cfg
+7
-10
component/haproxy/buildout.cfg
component/haproxy/buildout.cfg
+2
-2
component/openjpeg/buildout.cfg
component/openjpeg/buildout.cfg
+2
-2
component/texinfo/buildout.cfg
component/texinfo/buildout.cfg
+2
-0
software/end-to-end-testing/tests/test_ors.py
software/end-to-end-testing/tests/test_ors.py
+199
-157
software/kvm/buildout.hash.cfg
software/kvm/buildout.hash.cfg
+2
-2
software/kvm/instance.cfg.in
software/kvm/instance.cfg.in
+2
-0
software/kvm/software.cfg
software/kvm/software.cfg
+2
-2
software/kvm/template/kvm-export.sh.jinja2
software/kvm/template/kvm-export.sh.jinja2
+0
-3
software/kvm/test/test.py
software/kvm/test/test.py
+36
-10
software/simpleran/buildout.hash.cfg
software/simpleran/buildout.hash.cfg
+3
-3
software/simpleran/changelog.rst
software/simpleran/changelog.rst
+6
-0
software/simpleran/instance-enb.jinja2.cfg
software/simpleran/instance-enb.jinja2.cfg
+0
-13
software/simpleran/instance-ors-enb.jinja2.cfg
software/simpleran/instance-ors-enb.jinja2.cfg
+6
-1
software/simpleran/instance-ors-gnb-input-schema.json
software/simpleran/instance-ors-gnb-input-schema.json
+3
-0
software/simpleran/instance-ors.cfg
software/simpleran/instance-ors.cfg
+140
-120
software/simpleran/software.cfg
software/simpleran/software.cfg
+1
-1
software/simpleran/test/test_ors.py
software/simpleran/test/test_ors.py
+8
-8
No files found.
component/curl/buildout.cfg
View file @
df8d1418
...
...
@@ -4,7 +4,6 @@
[buildout]
extends =
../openssl/buildout.cfg
../patch/buildout.cfg
../perl/buildout.cfg
../pkgconfig/buildout.cfg
../xz-utils/buildout.cfg
...
...
@@ -21,8 +20,8 @@ parts =
[curl]
recipe = slapos.recipe.cmmi
shared = true
url = https://curl.se/download/curl-8.1
1
.0.tar.xz
md5sum =
49dd886ac84ed3de693464f78f1ee926
url = https://curl.se/download/curl-8.1
2
.0.tar.xz
md5sum =
3005f775ce65b301a27f8d43a8c85511
configure-options =
--disable-static
--disable-ech
...
...
@@ -78,10 +77,6 @@ environment =
PATH=${perl:location}/bin:${pkgconfig:location}/bin:${xz-utils:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkgconfig}
LDFLAGS=-Wl,-rpath=${libidn2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${:OPENSSL}/lib -Wl,-rpath=${nghttp2:location}/lib -Wl,-rpath=${zstd:location}/lib ${:LDFLAGS}
patch-options = -p1
patch-binary = ${patch:location}/bin/patch
patches =
https://github.com/curl/curl/commit/f5c616930b5cf148b1b2632da4f5963ff48bdf88.patch?full_index=1#e6ebcd491dd9d105c26287fe830fd557
[curl-http3]
<= curl
...
...
component/gettext/buildout.cfg
View file @
df8d1418
...
...
@@ -2,6 +2,7 @@
parts =
gettext
extends =
../libiconv/buildout.cfg
../libxml2/buildout.cfg
../lunzip/buildout.cfg
../ncurses/buildout.cfg
...
...
@@ -22,6 +23,7 @@ configure-options =
--disable-more-warnings
--with-libncurses-prefix=${ncurses:location}
--with-libxml2-prefix=${libxml2:location}
--with-libiconv-prefix=${libiconv:location}
--with-included-gettext
--without-emacs
--disable-acl
...
...
component/gtk/buildout.cfg
View file @
df8d1418
...
...
@@ -53,19 +53,16 @@ environment =
[harfbuzz]
recipe = slapos.recipe.cmmi
shared = true
url = https://
www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.6.4
.tar.xz
md5sum =
2b3a4dfdb3e5e50055f941978944da9f
url = https://
github.com/harfbuzz/harfbuzz/releases/download/10.2.0/harfbuzz-10.2.0
.tar.xz
md5sum =
f68c05409f18b4a044d71628548aacd9
pkg_config_depends = ${cairo:location}/lib/pkgconfig:${cairo:pkg_config_depends}:${icu4c:location}/lib/pkgconfig
configure-options =
--disable-static
--disable-gtk-doc-html
--with-cairo
--with-freetype
--with-icu
configure-command =
meson builddir --libdir=lib -Dprefix="@@LOCATION@@" -Dintrospection=disabled
make-binary = ninja -C builddir
environment =
PATH=${
xz-utils:location}/bin:${glib:location}/bin:${freetype:location}/bin:${pkgconfig
:location}/bin:%(PATH)s
PATH=${
glib:location}/bin:${python3:location}/bin:${freetype:location}/bin:${meson:location}/bin:${ninja:location}/bin:${pkgconfig:location}/bin:${xz-utils
:location}/bin:%(PATH)s
PKG_CONFIG_PATH=${:pkg_config_depends}
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${icu4c:location}/lib -Wl,-rpath=${glib:location}/lib
LDFLAGS=-Wl,-rpath=${gettext:location}/lib -Wl,-rpath=${bzip2:location}/lib -Wl,-rpath=${zlib:location}/lib -Wl,-rpath=${icu4c:location}/lib -Wl,-rpath=${glib:location}/lib
-Wl,-rpath=${cairo:location}/lib -Wl,-rpath=${freetype:location}/lib -Wl,-rpath=@@LOCATION@@/lib
[fribidi]
recipe = slapos.recipe.cmmi
...
...
component/haproxy/buildout.cfg
View file @
df8d1418
...
...
@@ -13,8 +13,8 @@ parts = haproxy
[haproxy]
recipe = slapos.recipe.cmmi
shared = true
url = https://www.haproxy.org/download/2.6/src/haproxy-2.6.2
0
.tar.gz
md5sum =
b25c95f231c0c36eeb2957321849d87d
url = https://www.haproxy.org/download/2.6/src/haproxy-2.6.2
1
.tar.gz
md5sum =
3e52dca0e052f758a7e4519251e92128
configure-command = true
# for Linux kernel 2.6.28 and above, we use "linux-glibc" as the TARGET,
# otherwise use "generic".
...
...
component/openjpeg/buildout.cfg
View file @
df8d1418
...
...
@@ -8,9 +8,9 @@ parts =
[openjpeg]
recipe = slapos.recipe.cmmi
shared = true
version = 2.5.
2
version = 2.5.
3
url = https://github.com/uclouvain/openjpeg/archive/refs/tags/v${:version}.tar.gz
md5sum =
f9ee64845881a15109ed0aa73a12202f
md5sum =
12ae257cb21738c41b5f6ca977d01081
location = @@LOCATION@@
configure-command = ${cmake:location}/bin/cmake
configure-options =
...
...
component/texinfo/buildout.cfg
View file @
df8d1418
[buildout]
extends =
../ncurses/buildout.cfg
../perl/buildout.cfg
[texinfo]
# Most other components are not happy with texinfo 5, because it treats some
...
...
@@ -28,3 +29,4 @@ configure-options =
environment =
CFLAGS=-I${ncurses:location}/include
LDFLAGS=-L${ncurses:location}/lib -Wl,-rpath=${ncurses:location}/lib
PATH=${perl:location}/bin/:%(PATH)s
software/end-to-end-testing/tests/test_ors.py
View file @
df8d1418
This diff is collapsed.
Click to expand it.
software/kvm/buildout.hash.cfg
View file @
df8d1418
...
...
@@ -15,7 +15,7 @@
[template]
filename = instance.cfg.in
md5sum =
bf0a70140e4775efaacdd5fe03ac3b62
md5sum =
2ef12d7fc16d74e0887a8cb16a848445
[template-kvm]
filename = instance-kvm.cfg.jinja2
...
...
@@ -43,7 +43,7 @@ md5sum = a02f0694dcb944c18d99f7f79afa2384
[template-kvm-export-script]
filename = template/kvm-export.sh.jinja2
md5sum =
ba1e0359178925788792a1c6cc29ba59
md5sum =
667e4668cfdf396d18785d8cfa096396
[template-nginx]
filename = template/nginx_conf.in
...
...
software/kvm/instance.cfg.in
View file @
df8d1418
...
...
@@ -126,6 +126,7 @@ import-list = file parts :template-parts-destination
recipe = slapos.cookbook:wrapper
environment =
PATH=${qemu:location}/bin
NO_COLOR=true
wrapper-path =
$${buildout:bin-directory}/qmpbackup
command-line =
...
...
@@ -150,6 +151,7 @@ context =
recipe = slapos.cookbook:wrapper
environment =
PATH=${qemu:location}/bin
NO_COLOR=true
wrapper-path =
$${buildout:bin-directory}/qmprestore
command-line =
...
...
software/kvm/software.cfg
View file @
df8d1418
...
...
@@ -39,12 +39,12 @@ eggs =
colorlog
qmpbackup
find-links +=
https://github.com/abbbi/qmpbackup/releases/download/v0.4
3/qmpbackup-0.43
.tar.gz
https://github.com/abbbi/qmpbackup/releases/download/v0.4
4/qmpbackup-0.44
.tar.gz
[versions]
qemu.qmp = 0.0.3:whl
colorlog = 6.9.0:whl
qmpbackup = 0.4
3
qmpbackup = 0.4
4
[python-with-eggs]
recipe = zc.recipe.egg
...
...
software/kvm/template/kvm-export.sh.jinja2
View file @
df8d1418
...
...
@@ -6,9 +6,6 @@ set -e
LC_ALL
=
C
export
LC_ALL
BACKUP_DIR
={{
directory[
'backup'
]
}}
# decolorize colorlog in qmpbackup
NO_COLOR
=
true
export
NO_COLOR
log
=
$(
mktemp
--tmpdir
={{
directory[
'tmp'
]
}}
)
trap
"rm -f
$log
"
EXIT TERM INT
...
...
software/kvm/test/test.py
View file @
df8d1418
...
...
@@ -885,6 +885,18 @@ class TestInstanceResilientBackupMixin(CronMixin, KvmMixin):
return result[0].stdout.decode('
utf
-
8
')
def awaitBackup(equeue_file):
for f in range(30):
with open(equeue_file, 'r') as fh:
equeue_log = fh.read()
if '
finished
successfully
' in equeue_log:
break
time.sleep(1)
else:
raise ValueError('
Backup
not
finished
:
%
s
' % (equeue_log))
return equeue_log
@skipUnlessKvm
class TestInstanceResilientBackupImporter(
TestInstanceResilientBackupMixin, KVMTestCase):
...
...
@@ -900,16 +912,6 @@ class TestInstanceResilientBackupImporter(
self.assertFalse(os.path.exists(self.getBackupPartitionPath()))
self.call_exporter()
def awaitBackup(equeue_file):
for f in range(30):
with open(equeue_file, 'r') as fh:
equeue_log = fh.read()
if '
finished
successfully
' in equeue_log:
break
time.sleep(1)
else:
self.fail('
Backup
not
finished
:
%
s
' % (equeue_log))
return equeue_log
equeue_log = awaitBackup(equeue_file)
self.assertNotIn('
qemu
-
img
rebase
', equeue_log)
self.assertEqual(
...
...
@@ -957,8 +959,22 @@ class TestInstanceResilientBackupImporterIde(
class TestInstanceResilientBackupExporterMixin(
TestInstanceResilientBackupMixin):
def assertImported(self):
self.assertEqual(
set(sorted(os.listdir(self.getPartitionPath('
kvm
-
import
', '
srv
')))),
set([
'
backup
', '
proof
.
signature
', '
virtual
.
qcow2
', '
sshkeys
', '
backup
.
diff
'
,'
monitor
', '
cgi
-
bin
', '
passwd
', '
ssl
', '
equeue
.
db
'])
)
def initialBackup(self):
status_text = self.call_exporter()
equeue_file = self.getPartitionPath(
'
kvm
-
import
', '
var
', '
log
', '
equeue
.
log
')
# clean up equeue file for precise assertion
with open(equeue_file, '
w
') as fh:
fh.write('')
awaitBackup(equeue_file)
self.assertEqual(
len(glob.glob(self.getBackupPartitionPath('
FULL
-*
.
qcow2
'))),
1)
...
...
@@ -977,6 +993,7 @@ class TestInstanceResilientBackupExporterMixin(
'
Post
take
-
over
cleanup
',
status_text
)
self.assertImported()
@skipUnlessKvm
...
...
@@ -984,6 +1001,15 @@ class TestInstanceResilientBackupExporter(
TestInstanceResilientBackupExporterMixin, KVMTestCase):
def test(self):
self.initialBackup()
# assure that additional backup run does not leave temporary files
equeue_file = self.getPartitionPath(
'
kvm
-
import
', '
var
', '
log
', '
equeue
.
log
')
# clean up equeue file for precise assertion
with open(equeue_file, '
w
') as fh:
fh.write('')
self.call_exporter()
awaitBackup(equeue_file)
self.assertImported()
@skipUnlessKvm
...
...
software/simpleran/buildout.hash.cfg
View file @
df8d1418
...
...
@@ -20,7 +20,7 @@ md5sum = 109828c2a97c09b0976d266aaba00328
[template-ors]
filename = instance-ors.cfg
md5sum =
307e38207945a9adcfea0263cba9d3a6
md5sum =
dae4865ef39ad8fe07ed17b2e170d155
[slaplte.jinja2]
_update_hash_filename_ = slaplte.jinja2
...
...
@@ -60,11 +60,11 @@ md5sum = 52da9fe3a569199e35ad89ae1a44c30e
[template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg
md5sum =
de757719d6cf4bd731394f50dbce8d99
md5sum =
22c399fc3a84aeec0f6545fe72fbf2f3
[template-ors-enb]
_update_hash_filename_ = instance-ors-enb.jinja2.cfg
md5sum =
bdc8ca95cad8374f24af7ab6a276b61c
md5sum =
4f0e65d831889a7d0932f106c11856eb
[template-ors-ue]
_update_hash_filename_ = instance-ors-ue.jinja2.cfg
...
...
software/simpleran/changelog.rst
View file @
df8d1418
Changelog
=========
Version 1.0.396 (2025-02-12)
-------------
* Publish SSB NR ARFCN
* Fix SSB NR ARFCN computation, affects band N79
Version 1.0.390 (2025-01-21)
-------------
...
...
software/simpleran/instance-enb.jinja2.cfg
View file @
df8d1418
...
...
@@ -204,19 +204,6 @@ wrapper-path = ${directory:service}/${:_buildout_section_name_}
command-line = ${xamari-xlog-script:output}
hash-files = ${:command-line}
[request-parameters]
<= slap-connection
recipe = slapos.cookbook:requestoptional
name = Wendelin Telecom Registration
software-url = {{ slapparameter_dict.wendelin_telecom_software_release_url }}
shared = true
{%- if not slapparameter_dict.xlog_forwarding_enabled or slapparameter_dict.get("xlog_fluentbit_forward_host") %}
state = destroyed
{%- else %}
config-fluentbit-tag = ${xlog-fluentbit-tag:xlog-fluentbit-tag}
return = gateway-host
{%- endif %}
[request-wendelin-telecom-shared]
<= slap-connection
recipe = slapos.cookbook:requestoptional
...
...
software/simpleran/instance-ors-enb.jinja2.cfg
View file @
df8d1418
...
...
@@ -230,7 +230,6 @@ eutra-cell-id = {{ ors_id['eutra_cell_id'] }}
gnb-id = {{ slapparameter_dict['gnb_id'] }}
nr-cell-id = {{ ors_id['nr_cell_id'] }}
{%- endif %}
{%- if enb_mode == 'enb' %}
current-frequency = {{ xearfcn_module.frequency(ors_version['current-earfcn']) }} MHz
current-band = {{ xearfcn_module.band(ors_version['current-earfcn'])[0]["band"] }}
...
...
@@ -239,6 +238,12 @@ current-earfcn = {{ ors_version['current-earfcn'] }}
current-frequency = {{ xnrarfcn_module.frequency(ors_version['current-nr-arfcn']) }} MHz
current-nr-band = {{ ors_version['current-nr-band'] }}
current-nr-arfcn = {{ ors_version['current-nr-arfcn'] }}
{%- if slapparameter_dict.get('ssb_nr_arfcn', False) %}
current-ssb-nr-arfcn = {{ slapparameter_dict['ssb_nr_arfcn'] }}
{%- else %}
{%- set ssb_nr_arfcn, max_ssb_scs_khz = xnrarfcn_module.dl2ssb(ors_version['current-nr-arfcn'], ors_version['current-nr-band']) %}
current-ssb-nr-arfcn = {{ ssb_nr_arfcn | tojson }}
{%- endif %}
{%- endif %}
...
...
software/simpleran/instance-ors-gnb-input-schema.json
View file @
df8d1418
...
...
@@ -22,6 +22,9 @@
"dl_nr_arfcn"
:
{
"$ref"
:
"cell/nr/input-schema.json#/properties/dl_nr_arfcn"
},
"ssb_nr_arfcn"
:
{
"$ref"
:
"cell/nr/input-schema.json#/properties/ssb_nr_arfcn"
},
"nr_band"
:
{
"$ref"
:
"cell/nr/input-schema.json#/properties/nr_band"
},
...
...
software/simpleran/instance-ors.cfg
View file @
df8d1418
...
...
@@ -51,119 +51,137 @@ configuration = $${slap-configuration:configuration}
sdr-dir = $${sdr:dir}
init =
import subprocess
range_map = {
"B28": "758MHz - 803MHz",
"B38": "2570MHz - 2620MHz",
"B39": "1880MHz - 1920MHz",
"B40": "2300MHz - 2400MHz",
"B41": "2496MHz - 2690MHz",
"B42": "3400MHz - 3600MHz",
"B43": "3600MHz - 3800MHz",
"N77": "3800MHz - 4000MHz",
"N79": "4600MHz - 5000MHz",
"UNKNOWN": "Information not available for this band",
}
default_tx_gain_map = {
"B28": (60, 62),
"B38": (59, 65),
"B39": (59, 64),
"B40": (59, 64),
"B41": (59, 64),
"B42": (63, 62),
"B43": (63, 62),
"N77": (60, 62),
"N79": (60, 62),
"UNKNOWN": (60, 62),
}
default_rx_gain_map = {
"B28": (25, 25),
"B38": (25, 25),
"B39": (25, 25),
"B40": (25, 25),
"B41": (25, 25),
"B42": (25, 25),
"B43": (25, 25),
"N77": (25, 25),
"N79": (25, 25),
"UNKNOWN": (25, 25),
}
default_earfcn_map = {
"B28": 9550,
"B38": 38050,
"B39": 38350,
"B40": 39150,
"B41": 40620,
"B42": 42590,
"B43": 44590,
"N77": 0,
"N79": 0,
"UNKNOWN": 0,
}
default_nr_arfcn_map = {
"B28": 0,
"B38": 519000,
"B39": 378000,
"B40": 470000,
"B41": 518600,
"B42": 632628,
"B43": 646666,
"N77": 660000,
"N79": 720000,
"UNKNOWN": 0,
}
default_nr_band_map = {
"B28": 0,
"B38": 41,
"B39": 39,
"B40": 40,
"B41": 41,
"B42": 78,
"B43": 78,
"N77": 77,
"N79": 79,
"UNKNOWN": 0,
}
power_map = {
"B28": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
"B38": (
lambda x: (-0.008712931375092506) * x**2 + (2.1973585140044642) * x + (-94.29420762479742),
lambda x: (-0.004472751640641793) * x**2 + (1.6308290630103919) * x + (-81.84549245154561),
),
"B39": (
lambda x: (-0.008712931375092506) * x**2 + (2.1973585140044642) * x + (-94.29420762479742),
lambda x: (-0.0022523817802900985) * x**2 + (1.2674016231310092) * x + (-66.57165215468584),
),
"B40": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
"B41": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
"B42": (
lambda x: (-0.014198126839751619) * x**2 + (2.980758813262773) * x + (-125.25800492285738),
lambda x: (0.003977721774394756) * x**2 + (0.527208191717173) * x + (-42.761142655285376),
),
"B43": (
lambda x: (-0.014198126839751619) * x**2 + (2.980758813262773) * x + (-125.25800492285738),
lambda x: (-0.0036530114002551943) * x**2 + (1.510856844601873) * x + (-74.58790185136355),
),
"N77": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
"N79": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
"UNKNOWN": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
default_map = {
"B28": {
"range": "758MHz - 803MHz",
"dl_earfcn": 9550,
"dl_nr_arfcn": 158400,
"nr_band": 28,
"tx_gain": [60, 62],
"rx_gain": [25, 25],
"rf_mode": "fdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: (-0.004711416231164319) * x**2 + (1.5976906979683085) * x + (-67.71316951508676),
),
},
"B38": {
"range": "2570MHz - 2620MHz",
"dl_earfcn": 38050,
"dl_nr_arfcn": 519000,
"nr_band": 41,
"tx_gain": [59, 65],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: (-0.008712931375092506) * x**2 + (2.1973585140044642) * x + (-94.29420762479742),
lambda x: (-0.004472751640641793) * x**2 + (1.6308290630103919) * x + (-81.84549245154561),
),
},
"B39": {
"range": "1880MHz - 1920MHz",
"dl_earfcn": 38350,
"dl_nr_arfcn": 378000,
"nr_band": 39,
"tx_gain": [59, 64],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: (-0.008712931375092506) * x**2 + (2.1973585140044642) * x + (-94.29420762479742),
lambda x: (-0.0022523817802900985) * x**2 + (1.2674016231310092) * x + (-66.57165215468584),
),
},
"B40": {
"range": "2300MHz - 2400MHz",
"dl_earfcn": 39150,
"dl_nr_arfcn": 470000,
"nr_band": 40,
"tx_gain": [59, 64],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: (-0.0016475305254340404) * x**2 + (1.1580162105112186) * x + (-62.10679297527826),
),
},
"B41": {
"range": "2496MHz - 2690MHz",
"dl_earfcn": 40620,
"dl_nr_arfcn": 518600,
"nr_band": 41,
"tx_gain": [59, 64],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
},
"B42": {
"range": "3400MHz - 3600MHz",
"dl_earfcn": 42590,
"dl_nr_arfcn": 632628,
"nr_band": 78,
"tx_gain": [63, 62],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: (-0.014198126839751619) * x**2 + (2.980758813262773) * x + (-125.25800492285738),
lambda x: (0.003977721774394756) * x**2 + (0.527208191717173) * x + (-42.761142655285376),
),
},
"B43": {
"range": "3600MHz - 3800MHz",
"dl_earfcn": 44590,
"dl_nr_arfcn": 646666,
"nr_band": 78,
"tx_gain": [63, 62],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: (-0.014198126839751619) * x**2 + (2.980758813262773) * x + (-125.25800492285738),
lambda x: (-0.0036530114002551943) * x**2 + (1.510856844601873) * x + (-74.58790185136355),
),
},
"N77": {
"range": "3800MHz - 4000MHz",
"dl_earfcn": 0,
"dl_nr_arfcn": 660000,
"nr_band": 77,
"tx_gain": [60, 62],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: lambda x: (-0.003358281211508112) * x**2 + (1.4533760798172672) * x + (-70.18774498873421),
),
},
"N79": {
"range": "4600MHz - 5000MHz",
"dl_earfcn": 0,
"dl_nr_arfcn": 720000,
"nr_band": 79,
"tx_gain": [60, 62],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: (-0.004745509248998074) * x**2 + (1.659474968728413) * x + (-76.46937551110834),
),
},
"UNKNOWN": {
"range": "Information not available for this band",
"dl_earfcn": 0,
"dl_nr_arfcn": 0,
"nr_band": 0,
"tx_gain": [60, 62],
"rx_gain": [25, 25],
"rf_mode": "tdd",
"power_estimation": (
lambda x: "UNKNOWN",
lambda x: "UNKNOWN",
),
},
}
def get_sdr_info(cmd):
if options['configuration'].get('testing', False):
...
...
@@ -181,18 +199,20 @@ init =
options['band'],
"2x1W" if options['one-watt'] else "2x0.5W",
)
default_tx_gain = default_tx_gain_map [options['band']][int(options['one-watt'])]
default_rx_gain = default_rx_gain_map [options['band']][int(options['one-watt'])]
default_earfcn = default_earfcn_map [options['band']]
default_nr_arfcn = default_nr_arfcn_map[options['band']]
default_nr_band = default_nr_band_map [options['band']]
options['range'] = range_map [options['band']]
default_tx_gain = default_map[options['band']]['tx_gain' ][int(options['one-watt'])]
default_rx_gain = default_map[options['band']]['rx_gain' ][int(options['one-watt'])]
default_earfcn = default_map[options['band']]['dl_earfcn' ]
default_nr_arfcn = default_map[options['band']]['dl_nr_arfcn']
default_nr_band = default_map[options['band']]['nr_band' ]
default_rf_mode = default_map[options['band']]['rf_mode' ]
options['range'] = default_map[options['band']]['range']
options['current-tx-gain'] = options['configuration'].get('tx_gain' , default_tx_gain )
options['current-rx-gain'] = options['configuration'].get('rx_gain' , default_rx_gain )
options['current-earfcn'] = options['configuration'].get('dl_earfcn' , default_earfcn )
options['current-nr-arfcn'] = options['configuration'].get('dl_nr_arfcn', default_nr_arfcn)
options['current-nr-band'] = options['configuration'].get('nr_band' , default_nr_band )
power_estimate_dbm = power_map[options['band']][int(options['one-watt'])](float(options['current-tx-gain']))
options['current-rf-mode'] = options['configuration'].get('rf_mode' , default_rf_mode )
power_estimate_dbm = default_map[options['band']]['power_estimation'][int(options['one-watt'])](float(options['current-tx-gain']))
if power_estimate_dbm == "UNKNOWN":
power_estimate = "Information not available for this band"
else:
...
...
software/simpleran/software.cfg
View file @
df8d1418
...
...
@@ -197,7 +197,7 @@ scripts =
[xlte-repository]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/kirr/xlte.git
revision =
598588a3
revision =
ee1e4652
git-executable = ${git:location}/bin/git
[xlte]
...
...
software/simpleran/test/test_ors.py
View file @
df8d1418
...
...
@@ -82,9 +82,9 @@ param_dict = {
'cell_type'
:
'nr'
,
'cell_kind'
:
'enb_peer'
,
'rat'
:
'nr'
,
'dl_nr_arfcn'
:
5
20
000
,
'ssb_nr_arfcn'
:
5
2000
0
,
'ul_nr_arfcn'
:
5
20
000
,
'dl_nr_arfcn'
:
5
19
000
,
'ssb_nr_arfcn'
:
5
1891
0
,
'ul_nr_arfcn'
:
5
19
000
,
'pci'
:
1
,
'n_id_cell'
:
1
,
'nr_cell_id'
:
'0x0000001'
,
...
...
@@ -97,9 +97,9 @@ param_dict = {
'cell_type'
:
'nr'
,
'cell_kind'
:
'enb_peer'
,
'rat'
:
'nr'
,
'dl_nr_arfcn'
:
3
80
000
,
'ssb_nr_arfcn'
:
3
8000
0
,
'ul_nr_arfcn'
:
3
80
000
,
'dl_nr_arfcn'
:
3
78
000
,
'ssb_nr_arfcn'
:
3
7803
0
,
'ul_nr_arfcn'
:
3
78
000
,
'pci'
:
2
,
'n_id_cell'
:
2
,
'nr_cell_id'
:
'0x0000002'
,
...
...
@@ -128,10 +128,10 @@ enb_param_dict = {
}
gnb_param_dict
=
{
# ors_version for tests is B39, so dl_nr_arfcn needs to be within N39
'dl_nr_arfcn'
:
3
80
000
,
'dl_nr_arfcn'
:
3
78
000
,
'nr_band'
:
39
,
'nr_bandwidth'
:
40
,
'ssb_nr_arfcn'
:
3
8002
0
,
'ssb_nr_arfcn'
:
3
7803
0
,
'gnb_id'
:
'0x17'
,
'gnb_id_bits'
:
30
,
'ssb_pos_bitmap'
:
'10'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment