diff --git a/software/ors-amarisoft/buildout.hash.cfg b/software/ors-amarisoft/buildout.hash.cfg index 58dcb0c5027d87e75256857d0fe345b3af41142d..45613b87d7121f17ffd965ce0b187ea24a1b7646 100644 --- a/software/ors-amarisoft/buildout.hash.cfg +++ b/software/ors-amarisoft/buildout.hash.cfg @@ -16,7 +16,7 @@ [template] filename = instance.cfg -md5sum = 883fc0c659b94ad732809db09d4f4665 +md5sum = f1309feb2d86e61f0c542a97594622f9 [template-ors] filename = instance-ors.cfg @@ -28,7 +28,7 @@ md5sum = 9c1cf42bbf5286f8ddd4e14f19447d30 [ru_libinstance.jinja2.cfg] _update_hash_filename_ = ru/libinstance.jinja2.cfg -md5sum = af0d3626f504af02f22780696820e401 +md5sum = 415d002d8f89e11194de24223edb3b02 [ru_sdr_libinstance.jinja2.cfg] _update_hash_filename_ = ru/sdr/libinstance.jinja2.cfg @@ -36,7 +36,7 @@ md5sum = b7906ca3a6b17963f78f680fc0842b74 [ru_lopcomm_libinstance.jinja2.cfg] _update_hash_filename_ = ru/lopcomm/libinstance.jinja2.cfg -md5sum = 667bf3d0af1ae3e6d740c667957449dc +md5sum = ec34535512448db3fa40caa00bee3151 [ru_sunwave_libinstance.jinja2.cfg] _update_hash_filename_ = ru/sunwave/libinstance.jinja2.cfg @@ -88,19 +88,19 @@ md5sum = 52da9fe3a569199e35ad89ae1a44c30e [template-enb] _update_hash_filename_ = instance-enb.jinja2.cfg -md5sum = 29b5a5a61b0498681d480726be9e56bf +md5sum = d6b3e494db278d2ecc28ea1a9e4a7826 [template-ors-enb] _update_hash_filename_ = instance-ors-enb.jinja2.cfg -md5sum = 0c7f21fab83a3310bf83663ac3fa49c7 +md5sum = 2600aabd8ad60d9acaae10e4af8c13d0 [template-core-network] _update_hash_filename_ = instance-core-network.jinja2.cfg -md5sum = c807be73b9304f5a4c7483a3776bbc17 +md5sum = 9402b750221765b6b124cf5ecb3e520c [template-ue] _update_hash_filename_ = instance-ue.jinja2.cfg -md5sum = be16ae9b38dd4e46c09bc9eb4bb7eb93 +md5sum = 096c7cbf869e2c2ae783821ec8391bbd [template-obsolete] _update_hash_filename_ = instance-obsolete.jinja2.cfg @@ -112,7 +112,7 @@ md5sum = dcaac06553a3222b14c0013a13f4a149 [enb.jinja2.cfg] filename = config/enb.jinja2.cfg -md5sum = f13d4b8acd065dc4e71e7c7a47b1eb5c +md5sum = b876c63b0ebc133ce058a1203183d193 [drb_lte.jinja2.cfg] filename = config/drb_lte.jinja2.cfg diff --git a/software/ors-amarisoft/config/enb.jinja2.cfg b/software/ors-amarisoft/config/enb.jinja2.cfg index cded4bdde2e726d3cd0d5f0c9893729872cf1351..79e13b10aa224474ff9ee2b5b9bf88dbfcb81c42 100644 --- a/software/ors-amarisoft/config/enb.jinja2.cfg +++ b/software/ors-amarisoft/config/enb.jinja2.cfg @@ -117,20 +117,18 @@ {{ slaplte.ru_config(iru_dict, slapparameter_dict) }} {%- if slapparameter_dict.get('websocket_password', '') %} - com_addr: "[{{ gtp_addr_v6 }}]:{{ slap_configuration['configuration.com_ws_port'] }}", + com_addr: "[{{ gtp_addr_v6 }}]:{{ slapparameter_dict.com_ws_port }}", com_auth: { password: "{{ slapparameter_dict['websocket_password'] }}", }, {%- else %} - com_addr: "{{ slap_configuration['configuration.com_addr'] }}:{{ slap_configuration['configuration.com_ws_port'] }}", + com_addr: "{{ slapparameter_dict.com_addr }}:{{ slapparameter_dict.com_ws_port }}", {%- endif %} {% if do_lte %} // LTE core network mme_list: [ -{%- for _, mme in slapparameter_dict.get('mme_list', - {'1':{'mme_addr': slap_configuration['configuration.mme_addr']}}) - | dictsort %} +{%- for _, mme in slapparameter_dict.mme_list |dictsort %} { mme_addr: "{{ mme['mme_addr'] }}", }, @@ -141,9 +139,7 @@ {% if do_nr %} // NR core network amf_list: [ -{%- for _, amf in slapparameter_dict.get('amf_list', - {'1':{'amf_addr': slap_configuration['configuration.amf_addr']}}) - | dictsort %} +{%- for _, amf in slapparameter_dict.amf_list |dictsort %} { amf_addr: "{{ amf['amf_addr'] }}", }, @@ -162,15 +158,38 @@ | map(attribute='1._.xn_addr') | list | tojson }}, -{% if slapparameter_dict.get('mme_list', '') or slapparameter_dict.get('amf_list', '') %} -{% if slapparameter_dict.get('use_ipv4', False) %} +{#- listen-address for GTP-U - either explicitly given, or autodetect #} +{%- if slapparameter_dict.get('gtp_addr') %} + gtp_addr: "{{ slapparameter_dict.gtp_addr }}", +{%- else %} +{#- use loopback if address of core network is on loopback as well #} +{%- set vcore = [] %} +{%- if do_lte %} +{%- do vcore.extend(slapparameter_dict.mme_list |dictsort |map(attribute='1.mme_addr')) %} +{%- endif %} +{%- if do_nr %} +{%- do vcore.extend(slapparameter_dict.amf_list |dictsort |map(attribute='1.amf_addr')) %} +{%- endif %} +{#- remove optional :port from addresses and see if they are on loopback #} +{%- set vip = [] %} +{%- for a in vcore %} +{%- set _ = namespace() %} +{%- set _.ip = urllib.parse.urlparse('z://%s' % a).hostname %} +{%- set _.islo = netaddr.IPAddress(_.ip).is_loopback() %} +{%- do vip.append(_) %} +{%- endfor %} +{%- if len(vip) > 0 and all(vip |map(attribute='islo')) %} + gtp_addr: "{{ vip[0] }}", +{%- else %} +{#- core is external - use external ipv4/ipv6 #} +{%- if slapparameter_dict.use_ipv4 %} gtp_addr: "{{ gtp_addr_v4 }}", -{% else %} +{%- else %} gtp_addr: "{{ gtp_addr_v6 }}", -{% endif %} -{% else %} - gtp_addr: "{{ slap_configuration['configuration.gtp_addr'] }}", -{% endif %} +{%- endif %} +{%- endif %} +{%- endif %} + {%- if do_lte %} enb_id: {{ slapparameter_dict.enb_id }}, @@ -714,10 +733,13 @@ { plmn: "{{ plmn.plmn }}", tac: {{ plmn.tac }}, +{%- if plmn.get('ranac') %} + ranac: {{ plmn.ranac }}, +{%- endif %} reserved: {{ plmn.get('reserved', false) |tojson }}, nssai: [ +{%- for _, nssai in slapparameter_dict.nssai |dictsort %} { -{%- for _, nssai in slapparameter_dict.get('nssai', {1: {'sst': 1}}) |dictsort %} sst: {{ nssai.sst }}, {%- if nssai.get('sd') %} sd: {{ nssai.sd }}, diff --git a/software/ors-amarisoft/instance-core-network.jinja2.cfg b/software/ors-amarisoft/instance-core-network.jinja2.cfg index dc771e7b0a8f074fd5b626374ba224eced9ee2b4..105b21574ff9a7ede48ec488e32879e66f158ef3 100644 --- a/software/ors-amarisoft/instance-core-network.jinja2.cfg +++ b/software/ors-amarisoft/instance-core-network.jinja2.cfg @@ -183,7 +183,7 @@ context = section directory directory section slap_configuration slap-configuration key slapparameter_dict slap-configuration:configuration - key gtp_addr_v6 slap-configuration:ipv6-random + raw gtp_addr_v6 {{ my_ipv6 }} raw gtp_addr_v4 {{ lan_ipv4 }} import netaddr netaddr key ifup_empty mme-ifup-empty:wrapper-path @@ -245,7 +245,7 @@ password = {{ slapparameter_dict['monitor-password'] | string }} [publish-connection-information] <= monitor-publish recipe = slapos.cookbook:publish.serialised -core-network-ipv6 = ${slap-configuration:ipv6-random} +core-network-ipv6 = {{ my_ipv6 }} core-network-ipv4 = {{ lan_ipv4 }} amarisoft-version = {{ lte_version }} license-expiration = {{ lte_expiration }} diff --git a/software/ors-amarisoft/instance-enb-input-schema.json b/software/ors-amarisoft/instance-enb-input-schema.json index c54551f2a365451e23a125e88a91f2cca3a19b49..268f099fc33627e885cf726d79bd953417aad253 100644 --- a/software/ors-amarisoft/instance-enb-input-schema.json +++ b/software/ors-amarisoft/instance-enb-input-schema.json @@ -16,7 +16,7 @@ }, "mme_list": { "title": "MME list", - "description": "Optional. List of MME to which the gNodeB is connected", + "description": "List of MME to which the eNodeB is connected. (must be set if there are LTE cells)", "patternProperties": { ".*": { "properties": { @@ -29,12 +29,11 @@ "type": "object" } }, - "type": "object", - "default": {} + "type": "object" }, "plmn_list": { "title": "PLMN list (4G)", - "description": "List of PLMNs broadcasted by the eNodeB, at most 6", + "description": "List of PLMNs broadcasted by the eNodeB, at most 6. (must be set if there are LTE cells)", "patternProperties": { ".*": { "properties": { @@ -74,7 +73,7 @@ }, "amf_list": { "title": "AMF list", - "description": "Optional. List of AMF to which the gNodeB is connected", + "description": "List of AMF to which the gNodeB is connected. (must set if there are NR cells)", "patternProperties": { ".*": { "properties": { @@ -87,12 +86,11 @@ "type": "object" } }, - "type": "object", - "default": {} + "type": "object" }, "plmn_list_5g": { "title": "PLMN list (5G)", - "description": "List of PLMNs broadcasted by the gNodeB, at most 12", + "description": "List of PLMNs broadcasted by the gNodeB, at most 12. (must set if there are NR cells)", "patternProperties": { ".*": { "properties": { diff --git a/software/ors-amarisoft/instance-enb.jinja2.cfg b/software/ors-amarisoft/instance-enb.jinja2.cfg index c06770e7457d84242eecb4cf8c6fa1146b1c97e3..4253cd23adcb0f2640c8c291de95307c733e0801 100644 --- a/software/ors-amarisoft/instance-enb.jinja2.cfg +++ b/software/ors-amarisoft/instance-enb.jinja2.cfg @@ -1,5 +1,18 @@ # instance-enb implements eNB/gNB service. +{#- defaults for global eNB/gNB parameters. + TODO automatically enb defaults from JSON schema #} +{%- set enb_defaults = { + "com_ws_port": 9001, + "com_addr": '127.0.1.2', + "use_ipv4": False, + "nssai": {'1': {'sst': 1}} +} %} +{%- for k,v in enb_defaults|dictsort %} +{%- do slapparameter_dict.setdefault(k, v) %} +{%- endfor %} + + [buildout] parts = directory @@ -31,6 +44,12 @@ offline = true {{ rulib.buildout() }} +[myslap] +# NOTE we don't query slapos.cookbook:slapconfiguration the second time because +# slapparameter_dict is potentially modified with defaults. +parameter_dict = {{ dumps(slapparameter_dict) }} +configuration = {{ dumps(slap_configuration) }} + [monitor-httpd-conf-parameter] httpd-include-file = {{ buildout_directory }}/etc/httpd-include-file.conf @@ -46,19 +65,6 @@ minimum = 8035 maximum = 8055 ip = ${monitor-instance-parameter:monitor-httpd-ipv6} -[slap-configuration] -recipe = slapos.cookbook:slapconfiguration.serialised -computer = {{ slap_connection['computer-id'] }} -partition = {{ slap_connection['partition-id'] }} -url = {{ slap_connection['server-url'] }} -key = {{ slap_connection['key-file'] }} -cert = {{ slap_connection['cert-file'] }} - -configuration.com_ws_port = 9001 -configuration.com_addr = 127.0.1.2 -configuration.mme_addr = 127.0.1.100 -configuration.amf_addr = 127.0.1.100 -configuration.gtp_addr = 127.0.1.1 [directory] recipe = slapos.cookbook:mkdirectory @@ -125,7 +131,7 @@ drb_stats_logspec = rotatespec = 100MB.9 logspec = ${:stats_logspec} ${:drb_stats_logspec} {%- if slapparameter_dict.get("websocket_password", "") %} -websock = ws://[${slap-configuration:ipv6-random}]:9001 +websock = ws://[{{my_ipv6}}]:9001 {%- else %} websock = ws://127.0.1.2:9001 {%- endif %} @@ -185,12 +191,13 @@ extra-context = context = json ors false section directory directory - section slap_configuration slap-configuration - key slapparameter_dict slap-configuration:configuration - key gtp_addr_v6 slap-configuration:ipv6-random + key slap_configuration myslap:configuration + key slapparameter_dict myslap:parameter_dict + raw gtp_addr_v6 {{ my_ipv6 }} raw gtp_addr_v4 {{ lan_ipv4 }} import xbuildout xbuildout import netaddr netaddr + import urllib urllib ${:extra-context} [enb-config] @@ -219,9 +226,9 @@ ipeercell_dict = {{ dumps(ipeercell_dict) }} <= monitor-publish recipe = slapos.cookbook:publish.serialised {%- if slapparameter_dict.get("websocket_password", "") %} -websocket_url = ws://[${slap-configuration:ipv6-random}]:9001 +websocket_url = ws://[{{my_ipv6}}]:9001 {%- endif %} -enb-ipv6 = ${slap-configuration:ipv6-random} +enb-ipv6 = {{ my_ipv6 }} enb-ipv4 = {{ lan_ipv4 }} amarisoft-version = {{ lte_version }} license-expiration = {{ lte_expiration }} diff --git a/software/ors-amarisoft/instance-ors-enb-input-schema.json b/software/ors-amarisoft/instance-ors-enb-input-schema.json index c2e7208241ca87787092e98d4dd81e0571f20023..da07034f54644f2385e7a24a6734b77718b9e8b2 100644 --- a/software/ors-amarisoft/instance-ors-enb-input-schema.json +++ b/software/ors-amarisoft/instance-ors-enb-input-schema.json @@ -74,7 +74,8 @@ "default": "127.0.1.1" }, "mme_list": { - "$ref": "instance-enb-input-schema.json#/properties/mme_list" + "$ref": "instance-enb-input-schema.json#/properties/mme_list", + "default": {"1": {"mme_addr": "127.0.1.100"}} }, "plmn_list": { "$ref": "instance-enb-input-schema.json#/properties/plmn_list", diff --git a/software/ors-amarisoft/instance-ors-enb.jinja2.cfg b/software/ors-amarisoft/instance-ors-enb.jinja2.cfg index acd1d2362f5e3194fb44b1b7cfa81aaeed5b1563..d9eb173ad826bc0a9532d2dfb44415d5a5bcc760 100644 --- a/software/ors-amarisoft/instance-ors-enb.jinja2.cfg +++ b/software/ors-amarisoft/instance-ors-enb.jinja2.cfg @@ -17,8 +17,8 @@ "tac": "0x0001", "root_sequence_index": 204, "enb_id": "0x1A2D0", - "gtp_addr": "127.0.1.1", - "plmn_list": {"1": {"plmn": "00101"}}, + "mme_list": {'1': {'mme_addr': '127.0.1.100'}}, + "plmn_list": {"1": {'plmn': '00101'}}, "lte_handover_a3_offset": 6, "lte_handover_a3_time_to_trigger": 480, "ncell_list": {}, @@ -37,7 +37,8 @@ "cell_id": "0x01", "gnb_id": "0x12345", "gnb_id_bits": 28, - "plmn_list": {"1": {"plmn": "00101", "tac": 100}}, + "amf_list": {'1': {'amf_addr': '127.0.1.100'}}, + "plmn_list": {'1': {'plmn': '00101', 'tac': 100}}, "nr_handover_a3_offset": 6, "nr_handover_time_to_trigger": 100, "ncell_list": {}, @@ -45,7 +46,6 @@ "inactivity_timer": 10000, "disable_sdr": false } %} -# XXX plmn_list -> plmn_list_5g + .tac=100 {%- set ors_defaults = {'enb': ors_enb_defaults, 'gnb': ors_gnb_defaults} [enb_mode] %} {%- for k,v in ors_defaults|dictsort %} @@ -191,6 +191,14 @@ {%- endif %} +{#- gnb: plmn_list -> plmn_list_5g #} +{%- if enb_mode == 'gnb' %} +{%- set _ = slapparameter_dict %} +{%- do _.update({'plmn_list_5g': _.plmn_list}) %} +{%- do _.pop('plmn_list') %} +{%- endif %} + + {#- backward compatibility: if ORS is running in gnb mode, and gnb_* parameters are present, replace their generic enb_* counterparts with gnb_* ones #} {%- if enb_mode == 'gnb' %} @@ -219,7 +227,8 @@ context -= json ors false context += - json ors {{ ors_version | tojson }} + key ors :ors +ors = {{ dumps(ors_version) }} # add ORS-specific bits to published information diff --git a/software/ors-amarisoft/instance-ors-gnb-input-schema.json b/software/ors-amarisoft/instance-ors-gnb-input-schema.json index 4a342fdf20c0f899696a34b82797f3fe4f242ef4..92de781c02cfc2ac9c38bc13681893e393d58ddf 100644 --- a/software/ors-amarisoft/instance-ors-gnb-input-schema.json +++ b/software/ors-amarisoft/instance-ors-gnb-input-schema.json @@ -51,7 +51,8 @@ "default": 28 }, "amf_list": { - "$ref": "instance-enb-input-schema.json#/properties/amf_list" + "$ref": "instance-enb-input-schema.json#/properties/amf_list", + "default": {"1": {"amf_addr": "127.0.1.100"}} }, "plmn_list": { "$ref": "instance-enb-input-schema.json#/properties/plmn_list_5g", diff --git a/software/ors-amarisoft/instance-ue.jinja2.cfg b/software/ors-amarisoft/instance-ue.jinja2.cfg index 051d791a7a27c352ae22a6d6b3a90e60ed439ebe..8611430e6dd7040a22eb52416c1b83150561c763 100644 --- a/software/ors-amarisoft/instance-ue.jinja2.cfg +++ b/software/ors-amarisoft/instance-ue.jinja2.cfg @@ -23,6 +23,11 @@ offline = true {{ rulib.buildout() }} +[myslap] +# see instance-enb.jinja2.cfg about myslap +parameter_dict = {{ dumps(slapparameter_dict) }} +configuration = {{ dumps(slap_configuration) }} + [monitor-httpd-conf-parameter] httpd-include-file = {{ buildout_directory }}/etc/httpd-include-file.conf @@ -38,14 +43,6 @@ minimum = 8035 maximum = 8055 ip = ${monitor-instance-parameter:monitor-httpd-ipv6} -[slap-configuration] -recipe = slapos.cookbook:slapconfiguration.serialised -computer = {{ slap_connection['computer-id'] }} -partition = {{ slap_connection['partition-id'] }} -url = {{ slap_connection['server-url'] }} -key = {{ slap_connection['key-file'] }} -cert = {{ slap_connection['cert-file'] }} - [directory] recipe = slapos.cookbook:mkdirectory software = {{ buildout_directory }} @@ -104,9 +101,9 @@ extensions = jinja2.ext.do extra-context = context = section directory directory - section slap_configuration slap-configuration section pub_info publish-connection-information - key slapparameter_dict slap-configuration:configuration + key slap_configuration myslap:configuration + key slapparameter_dict myslap:parameter_dict import xbuildout xbuildout ${:extra-context} @@ -133,8 +130,8 @@ iue_dict = {{ dumps(iue_dict) }} [publish-connection-information] <= monitor-publish recipe = slapos.cookbook:publish.serialised -rue_bind_addr = ${slap-configuration:ipv6-random} -com_addr = [${slap-configuration:ipv6-random}]:9002 +rue_bind_addr = {{my_ipv6}} +com_addr = [{{my_ipv6}}]:9002 monitor-gadget-url = ${:monitor-base-url}/gadget/software.cfg.html [monitor-instance-parameter] diff --git a/software/ors-amarisoft/instance.cfg b/software/ors-amarisoft/instance.cfg index 2272f6944f30a19b010d13117659e3c8ed462ac3..a2bd46f5f8b714220397c8abf03e4045c54a5ba2 100644 --- a/software/ors-amarisoft/instance.cfg +++ b/software/ors-amarisoft/instance.cfg @@ -38,6 +38,7 @@ context = section slap_connection slap-connection key slapparameter_dict slap-configuration:configuration key lan_ipv4 lan-ip:ipv4 + key my_ipv6 slap-configuration:ipv6-random $${:extra-context} import-list = rawfile slaplte.jinja2 ${slaplte.jinja2:target} diff --git a/software/ors-amarisoft/ru/libinstance.jinja2.cfg b/software/ors-amarisoft/ru/libinstance.jinja2.cfg index c0458d73827a3df4ca582c138d5b275de080a6cc..c19670bb602e7faf6361970e3e50382b0af2fbc1 100644 --- a/software/ors-amarisoft/ru/libinstance.jinja2.cfg +++ b/software/ors-amarisoft/ru/libinstance.jinja2.cfg @@ -160,7 +160,6 @@ iru_dict = {{ dumps(iru_dict) }} {{ part('dnsmasq-service') }} recipe = slapos.cookbook:wrapper port = 5353 -#ip = ${slap-configuration:tun-ipv4-addr} command-line = {{ dnsmasq_location }}/sbin/dnsmasq --conf-file=${dnsmasq-config:output} -x ${directory:run}/dnsmasq.pid --local-service --keep-in-foreground wrapper-path = ${directory:service}/dnsmasq mode = 0775 @@ -302,7 +301,7 @@ extensions = jinja2.ext.do log-output = ${directory:var}/log/amarisoft-rf-info.json.log context = section directory directory - key slapparameter_dict slap-configuration:configuration + key slapparameter_dict myslap:parameter_dict key log_file :log-output raw stats_period {{ slapparameter_dict.get("enb_stats_fetch_period", 60) }} raw testing {{ testing }} @@ -325,7 +324,7 @@ extensions = jinja2.ext.do log-output = ${directory:var}/log/amarisoft-stats.json.log context = section directory directory - key slapparameter_dict slap-configuration:configuration + key slapparameter_dict myslap:parameter_dict key log_file :log-output raw stats_period {{ slapparameter_dict.get("enb_stats_fetch_period", 60) }} raw testing {{ testing }} diff --git a/software/ors-amarisoft/ru/lopcomm/libinstance.jinja2.cfg b/software/ors-amarisoft/ru/lopcomm/libinstance.jinja2.cfg index 81705df8cd9cef9f088cf43e335e32a050957efb..b913a10c54591c589e0ccadc56a02b2117fa028e 100644 --- a/software/ors-amarisoft/ru/lopcomm/libinstance.jinja2.cfg +++ b/software/ors-amarisoft/ru/lopcomm/libinstance.jinja2.cfg @@ -31,7 +31,7 @@ is_firmware_updated = ${directory:etc}/{{B('%s.is_firmware_updated' % ru_ref)}} context = section directory directory section vtap vtap.{{ ru.cpri_link._tap }} - key slapparameter_dict slap-configuration:configuration + key slapparameter_dict myslap:parameter_dict key log_file :log-output key software_reply_json_log_file :software-reply-json-log-output key remote_file_path :remote-file-path @@ -116,7 +116,7 @@ is_netconf_connected = ${directory:etc}/{{B('%s.is_netconf_connected' % ru_ref)} context = section directory directory section vtap vtap.{{ ru.cpri_link._tap }} - key slapparameter_dict slap-configuration:configuration + key slapparameter_dict myslap:parameter_dict key log_file :log-output key json_log_file :json-log-output key cfg_json_log_file :cfg-json-log-output @@ -248,7 +248,7 @@ recipe = slapos.cookbook:userinfo recipe = slapos.cookbook:free_port minimum = 22222 maximum = 22231 -ip = ${slap-configuration:ipv6-random} +ip = {{my_ipv6}} [sshd-config] recipe = slapos.recipe.template:jinja2 @@ -257,7 +257,7 @@ path_pid = ${directory:run}/sshd.pid inline = PidFile ${:path_pid} Port ${sshd-port:port} - ListenAddress ${slap-configuration:ipv6-random} + ListenAddress {{my_ipv6}} Protocol 2 HostKey ${sshd-ssh-host-rsa-key:output} HostKey ${sshd-ssh-host-ecdsa-key:output} diff --git a/software/ors-amarisoft/slapos-render-config.py b/software/ors-amarisoft/slapos-render-config.py index 74cc27f25bf2fc2c6b2a9f986d7bcc267288fcf5..becdb51bcf21f2bd0d620513aad61da53fca68c5 100755 --- a/software/ors-amarisoft/slapos-render-config.py +++ b/software/ors-amarisoft/slapos-render-config.py @@ -412,11 +412,6 @@ def do_enb(): "slap_configuration": { "tap-name": "slaptap9", "slap-computer-partition-id": "slappart9", - "configuration.com_ws_port": 9001, - "configuration.com_addr": "127.0.1.2", - "configuration.mme_addr": "127.0.1.100", - "configuration.amf_addr": "127.0.1.100", - "configuration.gtp_addr": "127.0.1.1", "slave-instance-list": %(jshared_instance_list)s }, "directory": { diff --git a/software/ors-amarisoft/test/test.py b/software/ors-amarisoft/test/test.py index aedc42a98f6e42aab31c284bef2581456c490796..498d11508f6f8d0ff1087a780012deaa87f48a2d 100644 --- a/software/ors-amarisoft/test/test.py +++ b/software/ors-amarisoft/test/test.py @@ -273,6 +273,22 @@ class ENBTestCase4(RFTestCase4): 'enb_id': '0x17', 'gnb_id': '0x23', 'gnb_id_bits': 30, + 'mme_list': { + '1': {'mme_addr': '1.2.3.4'}, + '2': {'mme_addr': '[1234::1]:78'}, + }, + 'amf_list': { + '1': {'amf_addr': '4.3.2.1:77'}, + '2': {'amf_addr': '4321::1'}, + }, + 'plmn_list': { + '1': {'plmn': '31415'}, + '2': {'plmn': '44444', 'attach_without_pdn': True, 'reserved': True}, + }, + 'plmn_list_5g': { + '1': {'plmn': '51413', 'tac': 0x124}, + '2': {'plmn': '55555', 'tac': 0x125, 'ranac': 210, 'reserved': True}, + }, })} @classmethod @@ -301,8 +317,22 @@ class ENBTestCase4(RFTestCase4): # basic enb parameters def test_enb_cfg_basic(t): assertMatch(t, t.enb_cfg, dict( - enb_id=0x17, gnb_id=0x23, gnb_id_bits=30, - x2_peers=['44.1.1.1'], xn_peers=['55.1.1.1'], + enb_id=0x17, gnb_id=0x23, gnb_id_bits=30, + mme_list=[{'mme_addr': '1.2.3.4'}, {'mme_addr': '[1234::1]:78'}], + amf_list=[{'amf_addr': '4.3.2.1:77'}, {'amf_addr': '4321::1'}], + x2_peers=['44.1.1.1'], xn_peers=['55.1.1.1'], + cell_default={ + 'plmn_list': [ + dict(plmn='31415', attach_without_pdn=False, reserved=False), + dict(plmn='44444', attach_without_pdn=True, reserved=True), + ] + }, + nr_cell_default={ + 'plmn_list': [ + dict(plmn='51413', tac=0x124, ranac=NO, reserved=False), + dict(plmn='55555', tac=0x125, ranac=210, reserved=True), + ] + }, )) # basic cell parameters diff --git a/software/ors-amarisoft/test/test.sh b/software/ors-amarisoft/test/test.sh index ae4cec7f315fd75b48ba942ef802a0813d831485..1496624aee9c5c08963ede55e85f125260fba3c9 100755 --- a/software/ors-amarisoft/test/test.sh +++ b/software/ors-amarisoft/test/test.sh @@ -13,13 +13,14 @@ export SLAPOS_TEST_LOG_DIRECTORY=`pwd`/snapshot #time ../k/kpython_for_test -m unittest discover -v #time ../k/kpython_for_test -m unittest discover -vf -time ../k/kpython_for_test -m unittest discover -vf -k TestENBParameters +#time ../k/kpython_for_test -m unittest discover -vf -k TestENBParameters +#time ../k/kpython_for_test -m unittest discover -vf -k TestGNBParameters #time ../k/kpython_for_test -m unittest discover -vf -k NBParameters #time ../k/kpython_for_test -m unittest discover -vf -k CoreNetwork #time ../k/kpython_for_test -m unittest discover -vf -k MonitorGadget #time ../k/kpython_for_test -m unittest discover -vf -k SimCard #time ../k/kpython_for_test -m unittest discover -vf -k TestENB_ -#time ../k/kpython_for_test -m unittest discover -vf -k TestENB_SDR +time ../k/kpython_for_test -m unittest discover -vf -k TestENB_SDR #time ../k/kpython_for_test -m unittest discover -vf -k TestENB_Lopcomm #time ../k/kpython_for_test -m unittest discover -vf -k TestENB_Sunwave #time ../k/kpython_for_test -m unittest discover -vf -k TestENB_RUMultiType