Commit c820d8e5 authored by Joanne Hugé's avatar Joanne Hugé

Update Release Candidate

parents b78556f7 8d9ed791
...@@ -42,6 +42,7 @@ patches = ...@@ -42,6 +42,7 @@ patches =
${:_profile_base_location_}/pytracemalloc_pep445.patch#9f3145817afa2b7fad801fde8447e396 ${:_profile_base_location_}/pytracemalloc_pep445.patch#9f3145817afa2b7fad801fde8447e396
${:_profile_base_location_}/disabled_module_list.patch#e038a8016475574c810cbaaf0e42f4ac ${:_profile_base_location_}/disabled_module_list.patch#e038a8016475574c810cbaaf0e42f4ac
${:_profile_base_location_}/asyncore_poll_insteadof_select.patch#ab6991c0ee6e25aeb8951e71f280a2f1 ${:_profile_base_location_}/asyncore_poll_insteadof_select.patch#ab6991c0ee6e25aeb8951e71f280a2f1
${:_profile_base_location_}/py27-subproc-closefds-fast.patch#e495e44491694a8972da11739206f2e6
url = url =
http://www.python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz http://www.python.org/ftp/python/${:package_version}/Python-${:package_version}${:package_version_suffix}.tar.xz
configure-options = configure-options =
......
From 9a79fa64c6298998d04a5ae6d699222a93cd0cb8 Mon Sep 17 00:00:00 2001
From: Kirill Smelkov <kirr@nexedi.com>
Date: Fri, 24 Dec 2021 13:55:08 +0300
Subject: [PATCH] [py27] subprocess: Use /proc/self/fd/ to know opened file
descriptors
... to avoid O(MAXFD) slowdown on closefds=True.
This is semantic backport of what Python3 does.
---
Lib/subprocess.py | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 1f2da0ffbe8..300557220ac 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -869,7 +869,28 @@ def pipe_cloexec(self):
def _close_fds(self, but):
- if hasattr(os, 'closerange'):
+ # try to retrieve list of opened file descriptors to avoid being slow on large MAXFD
+ # https://www.erp5.com/project_section/vifib/forum/python2--subprocess.Popen-is-slow-when-close_fds-True-and-nofile-ulimit-is-high-PO01sREVXn
+ # https://bugs.python.org/issue8052
+ # https://github.com/python/cpython/commit/8facece99a59
+ fdv = None
+ try:
+ fdv = os.listdir('/proc/self/fd')
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
+ if fdv is not None:
+ for fd_ in fdv:
+ fd = int(fd_)
+ if (0 <= fd <= 2) or fd == but:
+ continue
+ try:
+ os.close(fd)
+ except Exception: # e.g. not KeyboardInterrupt nor SystemExit
+ pass
+
+ # fallback to closing all file descriptors in 3..MAXFD range
+ elif hasattr(os, 'closerange'):
os.closerange(3, but)
os.closerange(but + 1, MAXFD)
else:
--
2.30.2
...@@ -35,6 +35,7 @@ import subprocess ...@@ -35,6 +35,7 @@ import subprocess
import tempfile import tempfile
import time import time
import six import six
import sys
from six.moves.SimpleHTTPServer import SimpleHTTPRequestHandler from six.moves.SimpleHTTPServer import SimpleHTTPRequestHandler
from six.moves.socketserver import StreamRequestHandler, TCPServer from six.moves.socketserver import StreamRequestHandler, TCPServer
...@@ -171,7 +172,7 @@ class SensorConfTestCase(WendelinTutorialTestCase): ...@@ -171,7 +172,7 @@ class SensorConfTestCase(WendelinTutorialTestCase):
<source> <source>
@type exec @type exec
tag tag.name tag tag.name
command python %s command %s %s
run_interval %ss run_interval %ss
<parse> <parse>
keys pressure, humidity, temperature keys pressure, humidity, temperature
...@@ -186,7 +187,7 @@ class SensorConfTestCase(WendelinTutorialTestCase): ...@@ -186,7 +187,7 @@ class SensorConfTestCase(WendelinTutorialTestCase):
<buffer> <buffer>
flush_mode immediate flush_mode immediate
</buffer> </buffer>
</match>''' % (script_path, FLUSH_INTERVAL, cls._ipv6_address) </match>''' % (sys.executable, script_path, FLUSH_INTERVAL, cls._ipv6_address)
@classmethod @classmethod
def sensor_script(cls, measurementList): def sensor_script(cls, measurementList):
...@@ -280,4 +281,4 @@ class GatewayConfTestCase(WendelinTutorialTestCase): ...@@ -280,4 +281,4 @@ class GatewayConfTestCase(WendelinTutorialTestCase):
data, data,
msgpack.unpackb( msgpack.unpackb(
self.serve(self._wendelin_port, WendelinHTTPRequestHandler)), self.serve(self._wendelin_port, WendelinHTTPRequestHandler)),
) )
\ No newline at end of file
...@@ -16,27 +16,27 @@ ...@@ -16,27 +16,27 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = b65347ea7c1936c2926ef11258cea602 md5sum = 6ea4fa210a91c15278c847a809de5991
[template-lte-enb-epc] [template-lte-enb-epc]
_update_hash_filename_ = instance-enb-epc.jinja2.cfg _update_hash_filename_ = instance-enb-epc.jinja2.cfg
md5sum = 0883225f978255ecd343416759c1c5a4 md5sum = 25fae79db2b30be0f365ad967b278c3c
[template-lte-enb] [template-lte-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = 4dc82af266a63b7045279fbf4f1e25e1 md5sum = fe249168a3f50b0efe6aeae39afb03ae
[template-lte-gnb-epc] [template-lte-gnb-epc]
_update_hash_filename_ = instance-gnb-epc.jinja2.cfg _update_hash_filename_ = instance-gnb-epc.jinja2.cfg
md5sum = 5f8a4d85b26a7181fc8b16e588b88e1e md5sum = 5ec4508b02f6e7fbdbe1f37c65b9d897
[template-lte-gnb] [template-lte-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg _update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = d04961535968b1b3e59d18663ec45eae md5sum = 6deb38b3de44f6e0a43b49fd13f0f072
[template-lte-epc] [template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg _update_hash_filename_ = instance-epc.jinja2.cfg
md5sum = 106d1079275d169a9c07854125aa4fa1 md5sum = 089f62e736cdc620eafc2c47b050fe13
[ue_db.jinja2.cfg] [ue_db.jinja2.cfg]
filename = config/ue_db.jinja2.cfg filename = config/ue_db.jinja2.cfg
...@@ -44,11 +44,11 @@ md5sum = d33163012d6c98efc59161974c649557 ...@@ -44,11 +44,11 @@ md5sum = d33163012d6c98efc59161974c649557
[enb.jinja2.cfg] [enb.jinja2.cfg]
filename = config/enb.jinja2.cfg filename = config/enb.jinja2.cfg
md5sum = d841debc51d9f12555a47d1556a6a3c1 md5sum = 97d9cdd07704cae36c5e4234c87025e8
[gnb.jinja2.cfg] [gnb.jinja2.cfg]
filename = config/gnb.jinja2.cfg filename = config/gnb.jinja2.cfg
md5sum = da64ea9c5003f40987a8bba3f18e8839 md5sum = b0df7f3b679b25d5296dd67e074364b4
[ltelogs.jinja2.sh] [ltelogs.jinja2.sh]
filename = ltelogs.jinja2.sh filename = ltelogs.jinja2.sh
......
...@@ -56,15 +56,15 @@ ...@@ -56,15 +56,15 @@
{ {
/* address of MME for S1AP connection. Must be modified if the MME /* address of MME for S1AP connection. Must be modified if the MME
runs on a different host. */ runs on a different host. */
mme_addr: "127.0.1.100" mme_addr: "{{ slapparameter_dict.get('mme_addr', '127.0.1.100') }}"
}, },
], ],
/* GTP bind address (=address of the ethernet interface connected to /* GTP bind address (=address of the ethernet interface connected to
the MME). Must be modified if the MME runs on a different host. */ the MME). Must be modified if the MME runs on a different host. */
gtp_addr: "{{ slapparameter_dict.get('gtp_addr', '127.0.1.1') }}", gtp_addr: "{{ gtp_addr }}",
/* high 20 bits of SIB1.cellIdentifier */ /* high 20 bits of SIB1.cellIdentifier */
enb_id: 0x1A2D0, enb_id: {{ slapparameter_dict.get('enb_id', '0x1A2D0') }},
/* list of cells */ /* list of cells */
cell_list: [ cell_list: [
......
...@@ -37,15 +37,15 @@ ...@@ -37,15 +37,15 @@
amf_list: [ amf_list: [
{ {
/* address of AMF for NGAP connection. Must be modified if the AMF runs on a different host. */ /* address of AMF for NGAP connection. Must be modified if the AMF runs on a different host. */
amf_addr: "127.0.1.100", amf_addr: "{{ slapparameter_dict.get('amf_addr', '127.0.1.100') }}",
}, },
], ],
/* GTP bind address (=address of the ethernet interface connected to /* GTP bind address (=address of the ethernet interface connected to
the AMF). Must be modified if the AMF runs on a different host. */ the AMF). Must be modified if the AMF runs on a different host. */
gtp_addr: "{{ slapparameter_dict.get('gtp_addr', '127.0.1.1') }}", gtp_addr: "{{ gtp_addr }}",
gnb_id_bits: 28, gnb_id_bits: 28,
gnb_id: 0x12345, gnb_id: {{ slapparameter_dict.get('gnb_id', '0x12345') }},
nr_support: true, nr_support: true,
......
...@@ -12,7 +12,7 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -12,7 +12,7 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = {{ slap_connection['computer-id'] }} computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }} partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }} url = {{ slap_connection['server-url'] }}
...@@ -34,7 +34,7 @@ promise = ${:etc}/promise ...@@ -34,7 +34,7 @@ promise = ${:etc}/promise
log = ${:var}/log log = ${:var}/log
[request-common-base] [request-common-base]
recipe = slapos.cookbook:request.serialised recipe = slapos.cookbook:request
software-url = {{ slap_connection['software-release-url'] }} software-url = {{ slap_connection['software-release-url'] }}
server-url = {{ slap_connection['server-url'] }} server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }} computer-id = {{ slap_connection['computer-id'] }}
......
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": {{ default_lte_n_rb_dl }} "default": {{ default_lte_n_rb_dl }}
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = {{ slap_connection['computer-id'] }} computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }} partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }} url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }} key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }} cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB configuration.network_name = RAPIDSPACE
configuration.domain = vifib.com configuration.domain = rapid.space
configuration.mme_ws_port = 9000 configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002 configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003 configuration.ims_ws_port = 9003
...@@ -66,6 +66,7 @@ rendered = ${directory:bin}/${:_buildout_section_name_} ...@@ -66,6 +66,7 @@ rendered = ${directory:bin}/${:_buildout_section_name_}
mode = 0700 mode = 0700
template = template =
inline:#!/bin/sh inline:#!/bin/sh
sudo /opt/amarisoft/rm-tmp-lte | true;
{{ enb }}/lteenb ${directory:etc}/enb.cfg >> ${directory:log}/enb-output.cfg 2>> ${directory:log}/enb-output.cfg {{ enb }}/lteenb ${directory:etc}/enb.cfg >> ${directory:log}/enb-output.cfg 2>> ${directory:log}/enb-output.cfg
### eNodeB (enb) ### eNodeB (enb)
...@@ -92,6 +93,7 @@ context = ...@@ -92,6 +93,7 @@ context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
raw gtp_addr {{ local_ipv4 }}
import netaddr netaddr import netaddr netaddr
[lte-enb-config] [lte-enb-config]
...@@ -100,12 +102,17 @@ template = {{ enb_template }} ...@@ -100,12 +102,17 @@ template = {{ enb_template }}
rendered = ${directory:etc}/enb.cfg rendered = ${directory:etc}/enb.cfg
[publish-connection-information] [publish-connection-information]
recipe = slapos.cookbook:publish.serialised <= monitor-publish
monitor-base-url = ${monitor-instance-parameter:monitor-base-url} recipe = slapos.cookbook:publish
ipv4 = {{ local_ipv4 }}
[monitor-instance-parameter] [monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %}
monitor-title = {{ slapparameter_dict['name'] | string }} monitor-title = {{ slapparameter_dict['name'] | string }}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
password = {{ slapparameter_dict['monitor-password'] | string }} password = {{ slapparameter_dict['monitor-password'] | string }}
{% endif %}
# Add custom promise to check if /dev/sdr0 is busy # Add custom promise to check if /dev/sdr0 is busy
[sdr-busy-promise] [sdr-busy-promise]
......
...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = {{ slap_connection['computer-id'] }} computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }} partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }} url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }} key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }} cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB configuration.network_name = RAPIDSPACE
configuration.domain = vifib.com configuration.domain = rapid.space
configuration.log_size = 50M configuration.log_size = 50M
configuration.mme_ws_port = 9000 configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002 configuration.enb_ws_port = 9002
...@@ -131,14 +131,14 @@ context = ...@@ -131,14 +131,14 @@ context =
import netaddr netaddr import netaddr netaddr
key ifup_empty lte-mme-ifup-empty:wrapper-path key ifup_empty lte-mme-ifup-empty:wrapper-path
[publish-connection-information]
recipe = slapos.cookbook:publish.serialised
monitor-base-url = ${monitor-instance-parameter:monitor-base-url}
[monitor-instance-parameter] [monitor-instance-parameter]
monitor-title = {{ slapparameter_dict['name'] }} monitor-title = {{ slapparameter_dict['name'] }}
password = {{ slapparameter_dict['monitor-password'] }} password = {{ slapparameter_dict['monitor-password'] }}
[publish-connection-information]
<= monitor-publish
recipe = slapos.cookbook:publish
# Add custom promise to check if /dev/sdr0 is busy # Add custom promise to check if /dev/sdr0 is busy
[tun-up-promise] [tun-up-promise]
recipe = slapos.cookbook:promise.plugin recipe = slapos.cookbook:promise.plugin
......
...@@ -12,7 +12,7 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -12,7 +12,7 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = {{ slap_connection['computer-id'] }} computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }} partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }} url = {{ slap_connection['server-url'] }}
...@@ -34,7 +34,7 @@ promise = ${:etc}/promise ...@@ -34,7 +34,7 @@ promise = ${:etc}/promise
log = ${:var}/log log = ${:var}/log
[request-common-base] [request-common-base]
recipe = slapos.cookbook:request.serialised recipe = slapos.cookbook:request
software-url = {{ slap_connection['software-release-url'] }} software-url = {{ slap_connection['software-release-url'] }}
server-url = {{ slap_connection['server-url'] }} server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }} computer-id = {{ slap_connection['computer-id'] }}
......
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": {{ default_nr_bandwidth }} "default": {{ default_nr_bandwidth }}
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -15,15 +15,15 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = {{ slap_connection['computer-id'] }} computer = {{ slap_connection['computer-id'] }}
partition = {{ slap_connection['partition-id'] }} partition = {{ slap_connection['partition-id'] }}
url = {{ slap_connection['server-url'] }} url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }} key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }} cert = {{ slap_connection['cert-file'] }}
configuration.network_name = VIFIB configuration.network_name = RAPIDSPACE
configuration.domain = vifib.com configuration.domain = rapid.space
configuration.mme_ws_port = 9000 configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002 configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003 configuration.ims_ws_port = 9003
...@@ -66,6 +66,7 @@ rendered = ${directory:bin}/${:_buildout_section_name_} ...@@ -66,6 +66,7 @@ rendered = ${directory:bin}/${:_buildout_section_name_}
mode = 0700 mode = 0700
template = template =
inline:#!/bin/sh inline:#!/bin/sh
sudo /opt/amarisoft/rm-tmp-lte | true;
{{ enb }}/lteenb ${directory:etc}/gnb.cfg >> ${directory:log}/gnb-output.cfg 2>> ${directory:log}/gnb-output.cfg {{ enb }}/lteenb ${directory:etc}/gnb.cfg >> ${directory:log}/gnb-output.cfg 2>> ${directory:log}/gnb-output.cfg
### eNodeB (enb) ### eNodeB (enb)
...@@ -92,6 +93,7 @@ context = ...@@ -92,6 +93,7 @@ context =
section directory directory section directory directory
section slap_configuration slap-configuration section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
raw gtp_addr {{ local_ipv4 }}
import netaddr netaddr import netaddr netaddr
[lte-gnb-config] [lte-gnb-config]
...@@ -100,12 +102,17 @@ template = {{ gnb_template }} ...@@ -100,12 +102,17 @@ template = {{ gnb_template }}
rendered = ${directory:etc}/gnb.cfg rendered = ${directory:etc}/gnb.cfg
[publish-connection-information] [publish-connection-information]
recipe = slapos.cookbook:publish.serialised <= monitor-publish
monitor-base-url = ${monitor-instance-parameter:monitor-base-url} recipe = slapos.cookbook:publish
ipv4 = {{ local_ipv4 }}
[monitor-instance-parameter] [monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %}
monitor-title = {{ slapparameter_dict['name'] | string }} monitor-title = {{ slapparameter_dict['name'] | string }}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
password = {{ slapparameter_dict['monitor-password'] | string }} password = {{ slapparameter_dict['monitor-password'] | string }}
{% endif %}
# Add custom promise to check if /dev/sdr0 is busy # Add custom promise to check if /dev/sdr0 is busy
[sdr-busy-promise] [sdr-busy-promise]
......
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -26,6 +26,18 @@ ...@@ -26,6 +26,18 @@
"description": "number of DL resource blocks", "description": "number of DL resource blocks",
"type": "number", "type": "number",
"default": 100 "default": 100
},
"mme_addr": {
"title": "MME Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"enb_id": {
"title": "eNB ID",
"description": "eNB ID",
"type": "string",
"default": "0x1A2D0"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -32,6 +32,18 @@ ...@@ -32,6 +32,18 @@
"description": "Downlink Bandwidth (in MHz)", "description": "Downlink Bandwidth (in MHz)",
"type": "number", "type": "number",
"default": 40 "default": 40
},
"amf_addr": {
"title": "AMF Address",
"description": "IPv4 of the core network",
"type": "string",
"default": "127.0.0.100"
},
"gnb_id": {
"title": "gNB ID",
"description": "gNB ID",
"type": "string",
"default": "0x12345"
} }
} }
} }
\ No newline at end of file
...@@ -7,7 +7,7 @@ develop-eggs-directory = ${buildout:develop-eggs-directory} ...@@ -7,7 +7,7 @@ develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration.serialised recipe = slapos.cookbook:slapconfiguration
computer = $${slap-connection:computer-id} computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id} partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url} url = $${slap-connection:server-url}
...@@ -36,6 +36,20 @@ gnb = dynamic-template-lte-gnb:rendered ...@@ -36,6 +36,20 @@ gnb = dynamic-template-lte-gnb:rendered
epc = dynamic-template-lte-epc:rendered epc = dynamic-template-lte-epc:rendered
RootSoftwareInstance = $${:enb-epc} RootSoftwareInstance = $${:enb-epc}
[local-ipv4-address]
recipe = slapos.recipe.build
init =
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.connect(('1.1.1.1', 1))
ip = s.getsockname()[0]
except Exception:
ip = '127.0.0.1'
finally:
s.close()
options['local-ipv4'] = ip
[dynamic-template-lte-enb-epc] [dynamic-template-lte-enb-epc]
< = jinja2-template-base < = jinja2-template-base
template = ${template-lte-enb-epc:target} template = ${template-lte-enb-epc:target}
...@@ -43,6 +57,7 @@ filename = instance-lte-enb-epc.cfg ...@@ -43,6 +57,7 @@ filename = instance-lte-enb-epc.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
raw monitor_template ${monitor2-template:rendered} raw monitor_template ${monitor2-template:rendered}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-gnb-epc] [dynamic-template-lte-gnb-epc]
< = jinja2-template-base < = jinja2-template-base
...@@ -51,6 +66,7 @@ filename = instance-lte-gnb-epc.cfg ...@@ -51,6 +66,7 @@ filename = instance-lte-gnb-epc.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
raw monitor_template ${monitor2-template:rendered} raw monitor_template ${monitor2-template:rendered}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-enb] [dynamic-template-lte-enb]
< = jinja2-template-base < = jinja2-template-base
...@@ -72,6 +88,7 @@ extra-context = ...@@ -72,6 +88,7 @@ extra-context =
raw default_lte_rx_gain ${enb:default-lte-rx-gain} raw default_lte_rx_gain ${enb:default-lte-rx-gain}
raw min_frequency ${enb:min-frequency} raw min_frequency ${enb:min-frequency}
raw max_frequency ${enb:max-frequency} raw max_frequency ${enb:max-frequency}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-gnb] [dynamic-template-lte-gnb]
< = jinja2-template-base < = jinja2-template-base
...@@ -93,6 +110,7 @@ extra-context = ...@@ -93,6 +110,7 @@ extra-context =
raw default_nr_rx_gain ${enb:default-nr-rx-gain} raw default_nr_rx_gain ${enb:default-nr-rx-gain}
raw min_frequency ${enb:min-frequency} raw min_frequency ${enb:min-frequency}
raw max_frequency ${enb:max-frequency} raw max_frequency ${enb:max-frequency}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-epc] [dynamic-template-lte-epc]
< = jinja2-template-base < = jinja2-template-base
......
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