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

ors-amarisoft: Add NSSAI and PLMN support

parent b3042e57
...@@ -16,27 +16,27 @@ ...@@ -16,27 +16,27 @@
[template] [template]
filename = instance.cfg filename = instance.cfg
md5sum = 7b96a100c24e3b282246ae79e97b887b md5sum = 9d5f4fc9ed3664140d33dd7c447dbd63
[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 = 1358f8e0a4cecefe4cdf389b69067f34 md5sum = 8ea71fb85a30e5f57d823ea2f48cb9de
[template-lte-enb] [template-lte-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg _update_hash_filename_ = instance-enb.jinja2.cfg
md5sum = 80ee6b6aae270e5a44e84ba8edc6b3c6 md5sum = 78b83842ca2e49dd9f19eab117dc2733
[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 = c160dac9b21ca748452e466bb3016ac8 md5sum = 33a6236150551c5328d27d3b7f07f690
[template-lte-gnb] [template-lte-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg _update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = 8c8d05845be9b7c2c3f79bd3309ba88d md5sum = 690761b983087465a118a49f1379f0b6
[template-lte-epc] [template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg _update_hash_filename_ = instance-epc.jinja2.cfg
md5sum = 0c69dee1e1afcdcca250fa78e76a0615 md5sum = 83ad87a675ce1ccf1449e80f3848af80
[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 = aeb1e8ff149db6ecaf2734cf7dc326aa md5sum = b78082a9c5d6af79f11a1c79d6d25a86
[gnb.jinja2.cfg] [gnb.jinja2.cfg]
filename = config/gnb.jinja2.cfg filename = config/gnb.jinja2.cfg
md5sum = 2830e108184cca7740e5373e9bc4920a md5sum = 944e342d426d5a7c4c16bdcb01398ba3
[ltelogs.jinja2.sh] [ltelogs.jinja2.sh]
filename = ltelogs.jinja2.sh filename = ltelogs.jinja2.sh
...@@ -56,7 +56,7 @@ md5sum = 1ba2e065bdf14a6411e95e80db17dcfd ...@@ -56,7 +56,7 @@ md5sum = 1ba2e065bdf14a6411e95e80db17dcfd
[mme.jinja2.cfg] [mme.jinja2.cfg]
filename = config/mme.jinja2.cfg filename = config/mme.jinja2.cfg
md5sum = 518c71ce57204304b703b977c665a164 md5sum = 13ce0230f06e1089c10924b17f80e49b
[ims.jinja2.cfg] [ims.jinja2.cfg]
filename = config/ims.jinja2.cfg filename = config/ims.jinja2.cfg
......
...@@ -26,9 +26,6 @@ ...@@ -26,9 +26,6 @@
log_options: "all.level=debug,all.max_size=32,file.rotate=1G,file.path={{ directory['tmp'] }}", log_options: "all.level=debug,all.max_size=32,file.rotate=1G,file.path={{ directory['tmp'] }}",
log_filename: "{{ directory['log'] }}/enb.log", log_filename: "{{ directory['log'] }}/enb.log",
/* Enable remote API and Web interface */
com_addr: "[{{ slap_configuration['ipv6-random'] }}]:{{ slap_configuration['configuration.enb_ws_port'] }}",
/* RF driver configuration */ /* RF driver configuration */
rf_driver: { rf_driver: {
name: "sdr", name: "sdr",
...@@ -52,16 +49,26 @@ ...@@ -52,16 +49,26 @@
], ],
#endif #endif
mme_list: [ mme_list: [
{ {% if slapparameter_dict.get('mme_list', '') %}
/* address of MME for S1AP connection. Must be modified if the MME {%- for i, k in enumerate(slapparameter_dict['mme_list']) %}
runs on a different host. */ {%- if i == 0 %}
mme_addr: "{{ slapparameter_dict.get('mme_addr', '127.0.1.100') }}" {
{%- else -%}
, {
{%- endif %}
mme_addr: "{{ slapparameter_dict['mme_list'][k]['mme_addr'] }}",
}
{%- endfor -%}
{% else %}
{
mme_addr: "127.0.1.100",
}, },
{% endif %}
], ],
/* 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. */
{% if slapparameter_dict.get('mme_addr', '') %} {% if slapparameter_dict.get('mme_list', '') %}
gtp_addr: "{{ gtp_addr }}", gtp_addr: "{{ gtp_addr }}",
{% else %} {% else %}
gtp_addr: "127.0.1.1", gtp_addr: "127.0.1.1",
...@@ -75,7 +82,23 @@ ...@@ -75,7 +82,23 @@
{ {
/* Broadcasted PLMN identities */ /* Broadcasted PLMN identities */
plmn_list: [ plmn_list: [
"00101", {%- if slapparameter_dict.get('plmn_list', '') %}
{%- for i, k in enumerate(slapparameter_dict['plmn_list']) %}
{%- if i == 0 -%}
{
{%- else -%}
, {
{%- endif %}
plmn: "{{ slapparameter_dict['plmn_list'][k]['plmn'] }}",
reserved: {{ str(slapparameter_dict['plmn_list'][k].get('reserved', false)).lower() }},
{%- if slapparameter_dict['plmn_list'][k].get('attach_without_pdn', '') %}
attach_without_pdn: {{ str(slapparameter_dict['plmn_list'][k]['attach_without_pdn']).lower() }},
{%- endif %}
}
{%- endfor -%}
{% else %}
"00101",
{% endif %}
], ],
dl_earfcn: {{ slapparameter_dict.get('dl_earfcn', slap_configuration['configuration.default_dl_earfcn']) }}, dl_earfcn: {{ slapparameter_dict.get('dl_earfcn', slap_configuration['configuration.default_dl_earfcn']) }},
......
...@@ -20,9 +20,6 @@ ...@@ -20,9 +20,6 @@
log_options: "all.level=debug,all.max_size=32,file.rotate=1G,file.path={{ directory['tmp'] }}", log_options: "all.level=debug,all.max_size=32,file.rotate=1G,file.path={{ directory['tmp'] }}",
log_filename: "{{ directory['log'] }}/gnb.log", log_filename: "{{ directory['log'] }}/gnb.log",
/* Enable remote API and Web interface */
com_addr: "[{{ slap_configuration['ipv6-random'] }}]:{{ slap_configuration['configuration.enb_ws_port'] }}",
rf_driver: { rf_driver: {
name: "sdr", name: "sdr",
/* list of devices. 'dev0' is always the master. */ /* list of devices. 'dev0' is always the master. */
...@@ -35,14 +32,25 @@ ...@@ -35,14 +32,25 @@
rx_gain: {{ slapparameter_dict.get('rx_gain', slap_configuration['configuration.default_nr_rx_gain']) }}, /* RX gain (in dB) */ rx_gain: {{ slapparameter_dict.get('rx_gain', slap_configuration['configuration.default_nr_rx_gain']) }}, /* RX gain (in dB) */
amf_list: [ amf_list: [
{% if slapparameter_dict.get('amf_list', '') %}
{%- for i, k in enumerate(slapparameter_dict['amf_list']) %}
{%- if i == 0 %}
{
{%- else -%}
, {
{%- endif %}
amf_addr: "{{ slapparameter_dict['amf_list'][k]['amf_addr'] }}",
}
{%- endfor -%}
{% else %}
{ {
/* 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') }}",
}, },
{% endif %}
], ],
/* 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. */
{% if slapparameter_dict.get('amf_addr', '') %} {% if slapparameter_dict.get('amf_list', '') %}
gtp_addr: "{{ gtp_addr }}", gtp_addr: "{{ gtp_addr }}",
{% else %} {% else %}
gtp_addr: "127.0.1.1", gtp_addr: "127.0.1.1",
...@@ -163,23 +171,69 @@ ...@@ -163,23 +171,69 @@
ssb_period: 20, /* in ms */ ssb_period: 20, /* in ms */
n_id_cell: 500, n_id_cell: 500,
plmn_list: [ { plmn_list: [
tac: 100, {%- if slapparameter_dict.get('plmn_list', '') %}
{%- for i, k in enumerate(slapparameter_dict['plmn_list']) %}
{%- if i == 0 -%}
{
{%- else -%}
, {
{%- endif %}
plmn: "{{ slapparameter_dict['plmn_list'][k]['plmn'] }}",
tac: {{ slapparameter_dict['plmn_list'][k].get('tac', 100) }},
{%- if slapparameter_dict['plmn_list'][k].get('ranac', '') %}
ranac: {{ slapparameter_dict['plmn_list'][k]['ranac'] }},
{%- endif %}
reserved: {{ str(slapparameter_dict['plmn_list'][k].get('reserved', false)).lower() }},
nssai: [
{%- if slapparameter_dict.get('nssai', '') %}
{%- for j, k in enumerate(slapparameter_dict['nssai']) %}
{%- if j == 0 %}
{
{%- else -%}
, {
{%- endif %}
sst: {{ slapparameter_dict['nssai'][k]['sst'] }},
{%- if slapparameter_dict['nssai'][k].get('sd', '') %}
sd: {{ slapparameter_dict['nssai'][k]['sd'] }},
{%- endif %}
}
{%- endfor -%}
{% else %}
{
sst: 1,
},
{% endif %}
],
}
{%- endfor -%}
{% else %}
{
plmn: "00101", plmn: "00101",
tac: 100,
reserved: false, reserved: false,
nssai: [ nssai: [
{%- if slapparameter_dict.get('nssai', '') %}
{%- for j, k in enumerate(slapparameter_dict['nssai']) %}
{%- if j == 0 %}
{
{%- else -%}
, {
{%- endif %}
sst: {{ slapparameter_dict['nssai'][k]['sst'] }},
{%- if slapparameter_dict['nssai'][k].get('sd', '') %}
sd: {{ slapparameter_dict['nssai'][k]['sd'] }},
{%- endif %}
}
{%- endfor -%}
{% else %}
{ {
sst: 1, sst: 1,
}, },
/*{ {% endif %}
sst: 2,
},
{
sst: 3,
sd: 50,
},*/
], ],
}, },
{%- endif %}
], ],
/*sib_sched_list: [ /*sib_sched_list: [
......
...@@ -19,16 +19,17 @@ ...@@ -19,16 +19,17 @@
log_options: "all.level=debug,all.max_size=32", log_options: "all.level=debug,all.max_size=32",
log_filename: "{{ directory['log'] }}/mme.log", log_filename: "{{ directory['log'] }}/mme.log",
/* Enable remote API and Web interface */
com_addr: "[{{ slap_configuration['ipv6-random'] }}]:{{ slap_configuration['configuration.mme_ws_port'] }}",
/* bind address for GTP-U. Normally = address of the PC, here bound /* bind address for GTP-U. Normally = address of the PC, here bound
on local interface to be able to run ltemme on the same PC as on local interface to be able to run ltemme on the same PC as
lteenb. By default, the S1AP SCTP connection is bound on the same lteenb. By default, the S1AP SCTP connection is bound on the same
address. */ address. */
{% if slapparameter_dict.get('external_enb_gnb', '') %}
gtp_addr: "{{ gtp_addr }}",
{% else %}
gtp_addr: "127.0.1.100", gtp_addr: "127.0.1.100",
{% endif %}
plmn: "00101", plmn: "{{ slapparameter_dict.get('epc_plmn', "00101") }}",
mme_group_id: 32769, mme_group_id: 32769,
mme_code: 1, mme_code: 1,
......
...@@ -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 recipe = slapos.cookbook:slapconfiguration.serialised
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 recipe = slapos.cookbook:request.serialised
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'] }}
...@@ -52,42 +52,18 @@ return = monitor-base-url ...@@ -52,42 +52,18 @@ return = monitor-base-url
name = EPC name = EPC
software-type = epc software-type = epc
config-name = epc config-name = epc
{% if slapparameter_dict.get("mme_config_link", None) %} {%- for key, value in slapparameter_dict.iteritems() %}
config-mme_config_link = {{ dumps(slapparameter_dict["mme_config_link"]) }} config-{{ key }} = {{ dumps(value) }}
{% endif %} {% endfor -%}
{% if slapparameter_dict.get("mme_config_version", None) %}
config-mme_config_version = {{ dumps(slapparameter_dict["mme_config_version"]) }}
{% endif %}
[lte-enb-request] [lte-enb-request]
<= request-common-base <= request-common-base
name = eNB name = eNB
software-type = enb software-type = enb
config-name = enb config-name = enb
{% if slapparameter_dict.get("tx_gain", None) %} {%- for key, value in slapparameter_dict.iteritems() %}
config-tx_gain = {{ dumps(slapparameter_dict["tx_gain"]) }} config-{{ key }} = {{ dumps(value) }}
{% endif %} {% endfor -%}
{% if slapparameter_dict.get("rx_gain", None) %}
config-rx_gain = {{ dumps(slapparameter_dict["rx_gain"]) }}
{% endif %}
{% if slapparameter_dict.get("dl_earfcn", None) %}
config-dl_earfcn = {{ dumps(slapparameter_dict["dl_earfcn"]) }}
{% endif %}
{% if slapparameter_dict.get("n_rb_dl", None) %}
config-n_rb_dl = {{ dumps(slapparameter_dict["n_rb_dl"]) }}
{% endif %}
{% if slapparameter_dict.get("mme_addr", None) %}
config-mme_addr = {{ dumps(slapparameter_dict["mme_addr"]) }}
{% endif %}
{% if slapparameter_dict.get("enb_id", None) %}
config-enb_id = {{ dumps(slapparameter_dict["enb_id"]) }}
{% endif %}
{% if slapparameter_dict.get("enb_config_link", None) %}
config-enb_config_link = {{ dumps(slapparameter_dict["enb_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("enb_config_version", None) %}
config-enb_config_version = {{ dumps(slapparameter_dict["enb_config_version"]) }}
{% endif %}
[monitor-base-url-dict] [monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url} lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
......
...@@ -3,6 +3,20 @@ ...@@ -3,6 +3,20 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
{%- if epc %}
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
{%- endif %}
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +47,60 @@ ...@@ -33,11 +47,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
...@@ -21,7 +21,7 @@ recipe = plone.recipe.command ...@@ -21,7 +21,7 @@ recipe = plone.recipe.command
command = rm -rf ${directory:tmp}/* command = rm -rf ${directory:tmp}/*
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration recipe = slapos.cookbook:slapconfiguration.serialised
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'] }}
...@@ -105,7 +105,7 @@ context = ...@@ -105,7 +105,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 }} key gtp_addr slap-configuration:ipv6-random
import netaddr netaddr import netaddr netaddr
[lte-enb-config] [lte-enb-config]
...@@ -120,7 +120,6 @@ output = ${directory:etc}/enb.cfg ...@@ -120,7 +120,6 @@ output = ${directory:etc}/enb.cfg
[publish-connection-information] [publish-connection-information]
<= monitor-publish <= monitor-publish
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
ipv4 = {{ local_ipv4 }}
[monitor-instance-parameter] [monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %} {% if slapparameter_dict.get("name", None) %}
......
...@@ -2,5 +2,18 @@ ...@@ -2,5 +2,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "EPC Input Parameters", "title": "EPC Input Parameters",
"type": "object", "type": "object",
"properties": {} "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
}
}
} }
...@@ -15,7 +15,7 @@ develop-eggs-directory = {{ develop_eggs_directory }} ...@@ -15,7 +15,7 @@ develop-eggs-directory = {{ develop_eggs_directory }}
offline = true offline = true
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration recipe = slapos.cookbook:slapconfiguration.serialised
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'] }}
...@@ -118,7 +118,9 @@ context = ...@@ -118,7 +118,9 @@ 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
key gtp_addr slap-configuration:ipv6-random
import netaddr netaddr import netaddr netaddr
key ifup_empty lte-mme-ifup-empty:wrapper-path
[lte-ims-config] [lte-ims-config]
<= config-base <= config-base
...@@ -133,20 +135,19 @@ url = ${mme-config-dl:target} ...@@ -133,20 +135,19 @@ url = ${mme-config-dl:target}
url = {{ mme_template }} url = {{ mme_template }}
{% endif %} {% endif %}
output = ${directory:etc}/mme.cfg output = ${directory:etc}/mme.cfg
context =
section directory directory
section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration
import netaddr netaddr
key ifup_empty lte-mme-ifup-empty:wrapper-path
[monitor-instance-parameter] [monitor-instance-parameter]
monitor-title = {{ slapparameter_dict['name'] }} {% if slapparameter_dict.get("name", None) %}
password = {{ slapparameter_dict['monitor-password'] }} monitor-title = {{ slapparameter_dict['name'] | string }}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
password = {{ slapparameter_dict['monitor-password'] | string }}
{% endif %}
[publish-connection-information] [publish-connection-information]
<= monitor-publish <= monitor-publish
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
epc-ip = ${slap-configuration:ipv6-random}
# 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]
......
...@@ -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 recipe = slapos.cookbook:slapconfiguration.serialised
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 recipe = slapos.cookbook:request.serialised
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'] }}
...@@ -52,48 +52,18 @@ return = monitor-base-url ...@@ -52,48 +52,18 @@ return = monitor-base-url
name = EPC name = EPC
software-type = epc software-type = epc
config-name = epc config-name = epc
{% if slapparameter_dict.get("mme_config_link", None) %} {%- for key, value in slapparameter_dict.iteritems() %}
config-mme_config_link = {{ dumps(slapparameter_dict["mme_config_link"]) }} config-{{ key }} = {{ dumps(value) }}
{% endif %} {% endfor -%}
{% if slapparameter_dict.get("mme_config_version", None) %}
config-mme_config_version = {{ dumps(slapparameter_dict["mme_config_version"]) }}
{% endif %}
[lte-gnb-request] [lte-gnb-request]
<= request-common-base <= request-common-base
name = gNB name = gNB
software-type = gnb software-type = gnb
config-name = gnb config-name = gnb
{% if slapparameter_dict.get("tx_gain", None) %} {%- for key, value in slapparameter_dict.iteritems() %}
config-tx_gain = {{ dumps(slapparameter_dict["tx_gain"]) }} config-{{ key }} = {{ dumps(value) }}
{% endif %} {% endfor -%}
{% if slapparameter_dict.get("rx_gain", None) %}
config-rx_gain = {{ dumps(slapparameter_dict["rx_gain"]) }}
{% endif %}
{% if slapparameter_dict.get("dl_nr_arfcn", None) %}
config-dl_nr_arfcn = {{ dumps(slapparameter_dict["dl_nr_arfcn"]) }}
{% endif %}
{% if slapparameter_dict.get("nr_band", None) %}
config-nr_band = {{ dumps(slapparameter_dict["nr_band"]) }}
{% endif %}
{% if slapparameter_dict.get("nr_bandwidth", None) %}
config-nr_bandwidth = {{ dumps(slapparameter_dict["nr_bandwidth"]) }}
{% endif %}
{% if slapparameter_dict.get("amf_addr", None) %}
config-amf_addr = {{ dumps(slapparameter_dict["amf_addr"]) }}
{% endif %}
{% if slapparameter_dict.get("gnb_id", None) %}
config-gnb_id = {{ dumps(slapparameter_dict["gnb_id"]) }}
{% endif %}
{% if slapparameter_dict.get("gnb_config_link", None) %}
config-gnb_config_link = {{ dumps(slapparameter_dict["gnb_config_link"]) }}
{% endif %}
{% if slapparameter_dict.get("gnb_config_version", None) %}
config-gnb_config_version = {{ dumps(slapparameter_dict["gnb_config_version"]) }}
{% endif %}
{% if slapparameter_dict.get("ssb_pos_bitmap", None) %}
config-ssb_pos_bitmap = {{ dumps(slapparameter_dict["ssb_pos_bitmap"]) }}
{% endif %}
[monitor-base-url-dict] [monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url} lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
......
...@@ -3,6 +3,20 @@ ...@@ -3,6 +3,20 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
{%- if epc %}
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
{%- endif %}
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +47,23 @@ ...@@ -33,11 +47,23 @@
"type": "number", "type": "number",
"default": {{ default_nr_bandwidth }} "default": {{ default_nr_bandwidth }}
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +76,67 @@ ...@@ -50,6 +76,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": {{ default_nr_ssb_pos_bitmap }} "default": {{ default_nr_ssb_pos_bitmap }}
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
...@@ -21,7 +21,7 @@ recipe = plone.recipe.command ...@@ -21,7 +21,7 @@ recipe = plone.recipe.command
command = rm -rf ${directory:tmp}/* command = rm -rf ${directory:tmp}/*
[slap-configuration] [slap-configuration]
recipe = slapos.cookbook:slapconfiguration recipe = slapos.cookbook:slapconfiguration.serialised
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'] }}
...@@ -106,7 +106,7 @@ context = ...@@ -106,7 +106,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 }} key gtp_addr slap-configuration:ipv6-random
import netaddr netaddr import netaddr netaddr
[lte-gnb-config] [lte-gnb-config]
...@@ -121,7 +121,6 @@ output = ${directory:etc}/gnb.cfg ...@@ -121,7 +121,6 @@ output = ${directory:etc}/gnb.cfg
[publish-connection-information] [publish-connection-information]
<= monitor-publish <= monitor-publish
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
ipv4 = {{ local_ipv4 }}
[monitor-instance-parameter] [monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %} {% if slapparameter_dict.get("name", None) %}
......
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,60 @@ ...@@ -33,11 +45,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,60 @@ ...@@ -33,11 +33,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,23 @@ ...@@ -33,11 +45,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +74,67 @@ ...@@ -50,6 +74,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 1000 "default": 1000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,23 @@ ...@@ -33,11 +33,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +62,67 @@ ...@@ -50,6 +62,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 1000 "default": 1000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,60 @@ ...@@ -33,11 +45,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,60 @@ ...@@ -33,11 +33,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,23 @@ ...@@ -33,11 +45,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +74,67 @@ ...@@ -50,6 +74,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,23 @@ ...@@ -33,11 +33,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +62,67 @@ ...@@ -50,6 +62,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,60 @@ ...@@ -33,11 +45,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,60 @@ ...@@ -33,11 +33,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,23 @@ ...@@ -33,11 +45,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +74,67 @@ ...@@ -50,6 +74,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,23 @@ ...@@ -33,11 +33,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +62,67 @@ ...@@ -50,6 +62,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,60 @@ ...@@ -33,11 +45,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,60 @@ ...@@ -33,11 +33,60 @@
"type": "string", "type": "string",
"default": "127.0.0.100" "default": "127.0.0.100"
}, },
"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": {}
},
"enb_id": { "enb_id": {
"title": "eNB ID", "title": "eNB ID",
"description": "eNB ID", "description": "eNB ID",
"type": "string", "type": "string",
"default": "0x1A2D0" "default": "0x1A2D0"
},
"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": {}
} }
} }
} }
\ No newline at end of file
...@@ -3,6 +3,18 @@ ...@@ -3,6 +3,18 @@
"$schema": "http://json-schema.org/draft-04/schema", "$schema": "http://json-schema.org/draft-04/schema",
"title": "Input Parameters", "title": "Input Parameters",
"properties": { "properties": {
"epc_plmn": {
"default": "00101",
"title": "Core Network PLMN",
"description": "Core Network Public Land Mobile Network",
"type": "string"
},
"external_enb_gnb": {
"default": false,
"title": "External eNB / gNB",
"description": "Set to true if external eNB / gNB will need to connect to this core network.",
"type": "boolean"
},
"tx_gain": { "tx_gain": {
"title": "Tx gain", "title": "Tx gain",
"description": "Tx gain (in dB)", "description": "Tx gain (in dB)",
...@@ -33,11 +45,23 @@ ...@@ -33,11 +45,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +74,67 @@ ...@@ -50,6 +74,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ No newline at end of file
...@@ -33,11 +33,23 @@ ...@@ -33,11 +33,23 @@
"type": "number", "type": "number",
"default": 40 "default": 40
}, },
"amf_addr": { "amf_list": {
"title": "AMF Address", "title": "AMF list",
"description": "IPv4 of the core network", "description": "Optionnal. List of AMF to which the gNodeB is connected",
"type": "string", "patternProperties": {
"default": "127.0.0.100" ".*": {
"properties": {
"amf_addr": {
"title": "AMF Address",
"description": "IP address (and optional port) of NGAP SCTP connection to the AMF. The default port is 38412.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
}, },
"gnb_id": { "gnb_id": {
"title": "gNB ID", "title": "gNB ID",
...@@ -50,6 +62,67 @@ ...@@ -50,6 +62,67 @@
"description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).", "description": "SSB position bitmap in bits (4, 8 or 64 bits depending on the DL frequency).",
"type": "string", "type": "string",
"default": 10000000 "default": 10000000
},
"plmn_list": {
"title": "PLMN list",
"description": "List of PLMNs broadcasted by the gNodeB, at most 12 (default: 00101)",
"patternProperties": {
".*": {
"properties": {
"plmn": {
"default": "00101",
"title": "Public Land Mobile Network",
"description": "Public Land Mobile Network",
"type": "string"
},
"tac": {
"default": 100,
"title": "Tracking Area Code",
"description": "Integer (range 0 to 16777215)",
"type": "number"
},
"ranac": {
"title": "Optional integer (range 0 to 255)",
"description": "RAN Area Code",
"type": "number"
},
"reserved": {
"default": false,
"title": "Reserved",
"description": "True if the cell is reserved for operator use.",
"type": "boolean"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
},
"nssai": {
"title": "AMF slices configuration",
"description": "AMF slices configuration.",
"patternProperties": {
".*": {
"properties": {
"sst": {
"default": 1,
"title": "Slice Service Type",
"description": "Integer (range 1 to 255).",
"type": "number"
},
"sd": {
"default": 50,
"title": "Slice Differentiator",
"description": "Optional integer (range 0 to 0xFFFFFE)",
"type": "number"
}
},
"type": "object"
}
},
"type": "object",
"default": {}
} }
} }
} }
\ 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 recipe = slapos.cookbook:slapconfiguration.serialised
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,20 +36,6 @@ gnb = dynamic-template-lte-gnb:output ...@@ -36,20 +36,6 @@ gnb = dynamic-template-lte-gnb:output
epc = dynamic-template-lte-epc:output epc = dynamic-template-lte-epc:output
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
url = ${template-lte-enb-epc:target} url = ${template-lte-enb-epc:target}
...@@ -57,7 +43,6 @@ filename = instance-lte-enb-epc.cfg ...@@ -57,7 +43,6 @@ filename = instance-lte-enb-epc.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
raw monitor_template ${monitor2-template:output} raw monitor_template ${monitor2-template:output}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-gnb-epc] [dynamic-template-lte-gnb-epc]
< = jinja2-template-base < = jinja2-template-base
...@@ -66,7 +51,6 @@ filename = instance-lte-gnb-epc.cfg ...@@ -66,7 +51,6 @@ filename = instance-lte-gnb-epc.cfg
extensions = jinja2.ext.do extensions = jinja2.ext.do
extra-context = extra-context =
raw monitor_template ${monitor2-template:output} raw monitor_template ${monitor2-template:output}
key local_ipv4 local-ipv4-address:local-ipv4
[dynamic-template-lte-enb] [dynamic-template-lte-enb]
< = jinja2-template-base < = jinja2-template-base
...@@ -88,7 +72,6 @@ extra-context = ...@@ -88,7 +72,6 @@ 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
...@@ -111,7 +94,6 @@ extra-context = ...@@ -111,7 +94,6 @@ extra-context =
raw default_nr_ssb_pos_bitmap ${enb:default-nr-ssb-pos-bitmap} raw default_nr_ssb_pos_bitmap ${enb:default-nr-ssb-pos-bitmap}
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
......
...@@ -122,6 +122,6 @@ for rf_mode_context in rf_mode_context_list: ...@@ -122,6 +122,6 @@ for rf_mode_context in rf_mode_context_list:
software_type), software_type),
'w+') as f: 'w+') as f:
if software_type in ['enb', 'enb-epc']: if software_type in ['enb', 'enb-epc']:
f.write(instance_enb_json_template.render(**rf_mode_context, **global_context)) f.write(instance_enb_json_template.render(**rf_mode_context, **global_context, epc='epc' in software_type))
else: else:
f.write(instance_gnb_json_template.render(**rf_mode_context, **global_context)) f.write(instance_gnb_json_template.render(**rf_mode_context, **global_context, epc='epc' in software_type))
{ {
"name": "ORS Amarisoft", "name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS", "description": "4G and 5G amarisoft stack for ORS",
"serialisation": "xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
{ {
"name": "ORS Amarisoft", "name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS", "description": "4G and 5G amarisoft stack for ORS",
"serialisation": "xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
{ {
"name": "ORS Amarisoft", "name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS", "description": "4G and 5G amarisoft stack for ORS",
"serialisation": "xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
{ {
"name": "ORS Amarisoft", "name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS", "description": "4G and 5G amarisoft stack for ORS",
"serialisation": "xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
{ {
"name": "ORS Amarisoft", "name": "ORS Amarisoft",
"description": "4G and 5G amarisoft stack for ORS", "description": "4G and 5G amarisoft stack for ORS",
"serialisation": "xml", "serialisation": "json-in-xml",
"software-type": { "software-type": {
"enb": { "enb": {
"title": "eNB", "title": "eNB",
......
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