Commit 32360c76 authored by Xavier Thompson's avatar Xavier Thompson

software/ors-amarisoft: Add xamari xlog service

See merge request !1352
parents 2148fffb f36c4308
Pipeline #27958 failed with stage
...@@ -36,11 +36,11 @@ md5sum = e0b68a87238282568e0e04c792ec7288 ...@@ -36,11 +36,11 @@ md5sum = e0b68a87238282568e0e04c792ec7288
[template-enb] [template-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = a7448167f7433a50938bf6d3e6903065 md5sum = ba704d02815e85f3ab30227f117c88ff
[template-gnb] [template-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg _update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = afa508e78851fe151fd25d8781aaa34a md5sum = b2a1816ceb8e7f475e71454e5389d091
[template-core-network] [template-core-network]
_update_hash_filename_ = instance-core-network.jinja2.cfg _update_hash_filename_ = instance-core-network.jinja2.cfg
......
Changelog Changelog
========= =========
Version 1.0.310 (2023-02-22) Version ?.?.??? (unreleased)
------------- ----------------------------
* Add carrier control for Lopcomm RRH * Add xamari xlog service
Version 1.0.312 (2023-03-20) Version 1.0.320 (2023-04-26)
------------- ----------------------------
* Add promise to test if reception is saturated * Add support for inter gNB XnAP and NGAP NR handover
* Add IMSI in connection parameters when SIM gets attached
Version 1.0.317 (2023-04-18)
---------------------------
* Add support for inter gNB NR handover
Version 1.0.316 (2023-04-14) Version 1.0.316 (2023-04-14)
------------- ----------------------------
* Remove enb-epc, gnb-epc and epc software types, the software types are now: * Remove enb-epc, gnb-epc and epc software types, the software types are now:
- enb - enb
- gnb - gnb
- core-network (replaces epc software type) - core-network (replaces epc software type)
Version 1.0.320 (2023-04-26) Version 1.0.312 (2023-03-20)
------------- ----------------------------
* Add promise to test if reception is saturated
* Add gadget from SR to display on Monitor APP
* Add IMSI in connection parameters when SIM gets attached
* Add carrier control for Lopcomm RRH
Version 1.0.308 (2023-02-09)
----------------------------
* Add support for IPv6 in UEs if available
* Use latest amarisoft version on ORS if available
* Add gnb_id_bits parameter
* Use promises from slapos.toolbox repository
* Rotate and add timestamps in enb-output.log, gnb-output.log, mme-output.log etc...
* Add support for Lopcomm RRH
* Remove UE power emission limitation
* Add support for inter gNB XnAP and NGAP NR handover
...@@ -122,6 +122,12 @@ ...@@ -122,6 +122,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -4,6 +4,7 @@ parts = ...@@ -4,6 +4,7 @@ parts =
ltelogs ltelogs
enb-config enb-config
enb-service enb-service
xamari-xlog-service
amarisoft-stats-service amarisoft-stats-service
amarisoft-rf-info-service amarisoft-rf-info-service
{% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %} {% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %}
...@@ -133,6 +134,31 @@ environment = ...@@ -133,6 +134,31 @@ environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib LD_LIBRARY_PATH={{ openssl_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[xamari-xlog-script]
recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_}
period = {{ slapparameter_dict.get("enb_stats_fetch_period", 60) }}
stats_logspec = stats[samples,rf]/${:period}s
{%- if slapparameter_dict.get("enb_drb_stats_enabled", True) %}
drb_stats_logspec = x.drb_stats/${:period}s
{%- else %}
drb_stats_logspec =
{%- endif %}
rotatespec = 100MB.9
logspec = ${:stats_logspec} ${:drb_stats_logspec}
websock = ws://127.0.1.2:9001
xamari = {{ buildout_directory }}/bin/xamari
logfile = ${monitor-directory:public}/enb.xlog
inline =
#!/bin/sh
exec ${:xamari} xlog --rotate ${:rotatespec} ${:websock} ${:logfile} ${:logspec}
[xamari-xlog-service]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:service}/${:_buildout_section_name_}
command-line = ${xamari-xlog-script:output}
hash-files = ${:command-line}
[amarisoft-stats-template] [amarisoft-stats-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
......
...@@ -254,6 +254,12 @@ ...@@ -254,6 +254,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -4,6 +4,7 @@ parts = ...@@ -4,6 +4,7 @@ parts =
ltelogs ltelogs
gnb-config gnb-config
enb-service enb-service
xamari-xlog-service
amarisoft-stats-service amarisoft-stats-service
amarisoft-rf-info-service amarisoft-rf-info-service
{% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %} {% if slapparameter_dict.get('rrh', '') == "Lopcomm ORAN" %}
...@@ -134,6 +135,32 @@ environment = ...@@ -134,6 +135,32 @@ environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib LD_LIBRARY_PATH={{ openssl_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[xamari-xlog-script]
recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_}
period = {{ slapparameter_dict.get("gnb_stats_fetch_period", 60) }}
stats_logspec = stats[samples,rf]/${:period}s
{%- if slapparameter_dict.get("gnb_drb_stats_enabled", True) %}
drb_stats_logspec = x.drb_stats/${:period}s
{%- else %}
drb_stats_logspec =
{%- endif %}
rotatespec = 100MB.9
logspec = ${:stats_logspec} ${:drb_stats_logspec}
logspec = ${:stats_logspec} ${:drb_stats_logspec}
websock = ws://127.0.1.2:9001
xamari = {{ buildout_directory }}/bin/xamari
logfile = ${monitor-directory:public}/gnb.xlog
inline =
#!/bin/sh
exec ${:xamari} xlog --rotate ${:rotatespec} ${:websock} ${:logfile} ${:logspec}
[xamari-xlog-service]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:service}/${:_buildout_section_name_}
command-line = ${xamari-xlog-script:output}
hash-files = ${:command-line}
[amarisoft-stats-template] [amarisoft-stats-template]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do extensions = jinja2.ext.do
......
...@@ -122,6 +122,12 @@ ...@@ -122,6 +122,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -254,6 +254,12 @@ ...@@ -254,6 +254,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -122,6 +122,12 @@ ...@@ -122,6 +122,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -254,6 +254,12 @@ ...@@ -254,6 +254,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -122,6 +122,12 @@ ...@@ -122,6 +122,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -254,6 +254,12 @@ ...@@ -254,6 +254,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -122,6 +122,12 @@ ...@@ -122,6 +122,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -254,6 +254,12 @@ ...@@ -254,6 +254,12 @@
"type": "number", "type": "number",
"default": 60 "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": { "max_rx_sample_db": {
"title": "Maximum RX sample value (dB)", "title": "Maximum RX sample value (dB)",
"description": "Maximum RX sample threshold above which RX saturated promise will fail", "description": "Maximum RX sample threshold above which RX saturated promise will fail",
......
...@@ -9,6 +9,9 @@ extends = ...@@ -9,6 +9,9 @@ extends =
../../component/python3/buildout.cfg ../../component/python3/buildout.cfg
../../component/python-pynacl/buildout.cfg ../../component/python-pynacl/buildout.cfg
../../component/bcrypt/buildout.cfg ../../component/bcrypt/buildout.cfg
../../component/numpy/buildout.cfg
../../component/pygolang/buildout.cfg
../../component/git/buildout.cfg
parts += parts +=
template template
...@@ -34,7 +37,7 @@ parts += ...@@ -34,7 +37,7 @@ parts +=
rsvp.js rsvp.js
iperf3 iperf3
eggs eggs
xamari
# unimplemented parts - the http monitor and better log handling using logrotate # unimplemented parts - the http monitor and better log handling using logrotate
# apache-php # apache-php
# logrotate # logrotate
...@@ -175,6 +178,25 @@ eggs = ...@@ -175,6 +178,25 @@ eggs =
ncclient ncclient
interpreter = pythonwitheggs interpreter = pythonwitheggs
[xlte-repository]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/kirr/xlte.git
revision = e716ab51
git-executable = ${git:location}/bin/git
[xlte]
recipe = zc.recipe.egg:develop
setup = ${xlte-repository:location}
egg = xlte
depends =
${numpy:egg}
${pygolang:egg}
[xamari]
recipe = zc.recipe.egg
eggs = ${xlte:egg}
scripts = xamari
[versions] [versions]
websocket-client = 1.4.2 websocket-client = 1.4.2
ncclient = 0.6.13 ncclient = 0.6.13
......
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