Commit 47a77ea3 authored by Joanne Hugé's avatar Joanne Hugé

ors-amarisoft: attach SIM cards on master instance

parent 8752dd76
......@@ -16,11 +16,11 @@
[template]
filename = instance.cfg
md5sum = 676e9d59bf7f6ce67dbf982abfa6a56e
md5sum = 3321c394922374a868e0b15fe09bd46e
[template-lte-enb-epc]
_update_hash_filename_ = instance-enb-epc.jinja2.cfg
md5sum = 2dce6e5aa97ffb331bae8fc95b9f8cf0
md5sum = 946c70155a691e508e934a7ef2e442ba
[template-lte-enb]
_update_hash_filename_ = instance-enb.jinja2.cfg
......@@ -28,19 +28,23 @@ md5sum = 79f3c30ab08efbb22b0cbcbbc45a66cb
[template-lte-gnb-epc]
_update_hash_filename_ = instance-gnb-epc.jinja2.cfg
md5sum = c43e4233ec44abdc87aa3068ebb8640b
md5sum = 4a258326fe571790e07a0e903d94fde0
[template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg
md5sum = 1039c60e2dcb8ef144a8c56e34acce9b
[template-lte-gnb]
_update_hash_filename_ = instance-gnb.jinja2.cfg
md5sum = 7d25976008c3aa588527db2b461ad72c
[template-lte-epc]
_update_hash_filename_ = instance-epc.jinja2.cfg
md5sum = 5e7a832ca1be147948ae562f3b45c88b
[template-lte-mme]
_update_hash_filename_ = instance-mme.jinja2.cfg
md5sum = e95761b8670ec8b90694e119a818e684
[ue_db.jinja2.cfg]
filename = config/ue_db.jinja2.cfg
md5sum = d33163012d6c98efc59161974c649557
md5sum = dcaac06553a3222b14c0013a13f4a149
[enb.jinja2.cfg]
filename = config/enb.jinja2.cfg
......
{%- set filtered_slave_instance_list = [] %}
{%- for slave_instance in slave_instance_list %}
{%- if slave_instance.get('imsi', '') != '' %}
{%- do filtered_slave_instance_list.append(slave_instance) %}
{%- if slave_instance.get('_', '') != '' %}
{%- set slave = json_module.loads(slave_instance.pop('_')) %}
{%- else %}
{%- set slave = slave_instance %}
{%- endif %}
{%- if slave.get('imsi', '') != '' %}
{%- do filtered_slave_instance_list.append(slave) %}
{%- endif %}
{%- endfor -%}
ue_db: [
{%- for i, slave_instance in enumerate(filtered_slave_instance_list) %}
{%- for i, slave in enumerate(filtered_slave_instance_list) %}
{%- if i == 0 -%}
{
{%- else -%}
, {
{%- endif %}
sim_algo: "{{ slave_instance.get('sim_algo', 'milenage') }}",
imsi: "{{ slave_instance.get('imsi', '') }}",
opc: "{{ slave_instance.get('opc', '') }}",
amf: {{ slave_instance.get('amf', '0x9001') }},
sqn: "{{ slave_instance.get('sqn', '000000000000') }}",
K: "{{ slave_instance.get('k', '') }}",
impu: "{{ slave_instance.get('impu', '') }}",
impi: "{{ slave_instance.get('impi', '') }}",
sim_algo: "{{ slave.get('sim_algo', 'milenage') }}",
imsi: "{{ slave.get('imsi', '') }}",
opc: "{{ slave.get('opc', '') }}",
amf: {{ slave.get('amf', '0x9001') }},
sqn: "{{ slave.get('sqn', '000000000000') }}",
K: "{{ slave.get('k', '') }}",
impu: "{{ slave.get('impu', '') }}",
impi: "{{ slave.get('impi', '') }}",
}
{%- endfor -%}
]
......
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "SIM Card Parameters",
"required": [
"sim_algo",
"imsi",
"opc",
"amf",
"sqn",
"k",
"impu",
"impi"
],
"properties": {
"sim_algo": {
"title": "Sim Algorithm",
"description": "xor, milenage or tuak. Set the USIM authentication algorithm.",
"type": "string",
"default": "milenage"
},
"imsi": {
"title": "IMSI",
"description": "IMSI",
"type": "string",
"default": ""
},
"opc": {
"title": "OPC",
"description": "Operator key preprocessed with the user secret key (as a 16 byte hexadecimal string). When the Milenage authentication algorithm is used, opc must be set.",
"type": "string",
"default": ""
},
"amf": {
"title": "AMF",
"description": "Range: 0 to 65535. Set the Authentication Management Field.",
"type": "string",
"default": "0x9001"
},
"sqn": {
"title": "SQN",
"description": "Optional String (6 byte hexadecimal string). Set the initial sequence number. For the XOR algorithm, the actual value does not matter. For the Milenage or TUAK algorithm, a sequence number resynchronization is initiated if the sequence number does not match the one stored in the USIM.",
"type": "string",
"default": "000000000000"
},
"k": {
"title": "K",
"description": "Set the user secret key (as a 16 bytes hexadecimal string, or eventually 32 bytes hexadecimal string for TUAK).",
"type": "string",
"default": ""
},
"impu": {
"title": "IMPU",
"description": "sip URI or a telephone number. Note that sip URI must not include hostname. If IMPU does not start by a scheme, it is assumed to be a sip URI.",
"type": "string",
"default": ""
},
"impi": {
"title": "IMPI",
"description": "Defines user IMPI. Must be fully filled with hostname if necessary.",
"type": "string",
"default": ""
}
}
}
......@@ -2,7 +2,7 @@
parts =
directory
lte-enb-request
lte-epc-request
lte-mme-request
publish-connection-information
extends = {{ monitor_template }}
......@@ -45,16 +45,17 @@ cert-file = {{ slap_connection['cert-file'] }}
sla-computer_guid = {{ slap_connection['computer-id'] }}
config-monitor-password = ${monitor-htpasswd:passwd}
return = monitor-base-url
[lte-epc-request]
[lte-mme-request]
<= request-common-base
name = EPC
software-type = epc
config-name = epc
name = MME
software-type = mme
config-name = mme
{%- for key, value in slapparameter_dict.iteritems() %}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
config-slave-list = {{ dumps(slave_instance_list) }}
return = monitor-base-url epc-ip
[lte-enb-request]
<= request-common-base
......@@ -64,11 +65,13 @@ config-name = enb
{%- for key, value in slapparameter_dict.iteritems() %}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
return = monitor-base-url
[monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
lte-mme-request = ${lte-mme-request:connection-monitor-base-url}
lte-enb-request = ${lte-enb-request:connection-monitor-base-url}
[publish-connection-information]
recipe = slapos.cookbook:publish.serialised
<= monitor-publish
epc-ip = ${lte-mme-request:connection-epc-ip}
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "EPC SIM Card Parameters",
"title": "SIM Card Parameters",
"required": [
"sim_algo",
"imsi",
......
[buildout]
parts =
directory
ltelogs
lte-mme-config
lte-mme-service
tun-up-promise
monitor-base
lte-mme-request
publish-connection-information
extends = {{ monitor_template }}
......@@ -22,19 +18,6 @@ url = {{ slap_connection['server-url'] }}
key = {{ slap_connection['key-file'] }}
cert = {{ slap_connection['cert-file'] }}
configuration.network_name = RAPIDSPACE
configuration.domain = rapid.space
configuration.log_size = 50M
configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003
configuration.mme_addr = 127.0.1.100
configuration.ims_addr = 127.0.0.1
configuration.ims_bind = 127.0.0.2
configuration.enb_addr = 127.0.1.1
ue_db_path = {{ ue_db_path }}
[directory]
recipe = slapos.cookbook:mkdirectory
software = {{ buildout_directory }}
......@@ -49,110 +32,34 @@ service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log
[ltelogs]
recipe = slapos.recipe.template:jinja2
url = {{ ltelogs_template }}
output = ${directory:home}/ltelogs.sh
extensions = jinja2.ext.do
context =
section directory directory
{% if slapparameter_dict.get("mme_config_link", None) %}
[mme-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("mme_config_link") }}
version = {{ slapparameter_dict.get("mme_config_version") }}
offline = false
{% endif %}
### IMS
[lte-ims-service]
recipe = slapos.cookbook:wrapper
init = ${ltelogs:output} ${directory:log}/ims.log; sleep 1
command-line = {{ mme }}/lteims ${directory:etc}/ims.cfg
wrapper-path = ${directory:service}/lte-ims
mode = 0775
pidfile = ${directory:run}/ims.pid
hash-files =
${lte-ims-config:output}
{{ ue_db_path }}
environment = AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[lte-mme-sh-wrapper]
recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_}
inline =
#!/bin/sh
rm -f ${directory:var}/lte_ue.db;
{{ mme }}/ltemme ${directory:etc}/mme.cfg >> ${directory:log}/mme-output.log 2>> ${directory:log}/mme-output.log
### MME
[lte-mme-service]
recipe = slapos.cookbook:wrapper
# When the machine shutdowns abruptly, lte_ue is not cleaned up which causes
# amarisoft ltemme to fail. TODO: find a cleaner way to handle this
init = ${ltelogs:output} ${directory:log}/mme.log
command-line = ${lte-mme-sh-wrapper:output}
wrapper-path = ${directory:service}/lte-mme
mode = 0775
pidfile = ${directory:run}/mme.pid
hash-files =
${lte-mme-config:output}
{{ ue_db_path }}
${lte-mme-sh-wrapper:output}
environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib:{{ nghttp2_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft
### EMPTY mme-ifup script
[lte-mme-ifup-empty]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:bin}/mme-ifup-empty
command-line = echo Using interface
mode = 775
[config-base]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
context =
section directory directory
section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration
key gtp_addr slap-configuration:ipv6-random
import netaddr netaddr
key ifup_empty lte-mme-ifup-empty:wrapper-path
[lte-ims-config]
<= config-base
url = {{ ims_template }}
output = ${directory:etc}/ims.cfg
[lte-mme-config]
<= config-base
{% if slapparameter_dict.get("mme_config_link", None) %}
url = ${mme-config-dl:target}
{% else %}
url = {{ mme_template }}
{% endif %}
output = ${directory:etc}/mme.cfg
[monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %}
monitor-title = {{ slapparameter_dict['name'] | string }}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
password = {{ slapparameter_dict['monitor-password'] | string }}
{% endif %}
[request-common-base]
recipe = slapos.cookbook:request.serialised
software-url = {{ slap_connection['software-release-url'] }}
server-url = {{ slap_connection['server-url'] }}
computer-id = {{ slap_connection['computer-id'] }}
partition-id = {{ slap_connection['partition-id'] }}
key-file = {{ slap_connection['key-file'] }}
cert-file = {{ slap_connection['cert-file'] }}
sla-computer_guid = {{ slap_connection['computer-id'] }}
config-monitor-password = ${monitor-htpasswd:passwd}
return = monitor-base-url epc-ip
[lte-mme-request]
<= request-common-base
name = MME
software-type = mme
config-name = mme
{%- for key, value in slapparameter_dict.iteritems() %}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
config-slave-list = {{ dumps(slave_instance_list) }}
[monitor-base-url-dict]
lte-mme-request = ${lte-mme-request:connection-monitor-base-url}
[publish-connection-information]
<= monitor-publish
recipe = slapos.cookbook:publish.serialised
epc-ip = ${slap-configuration:ipv6-random}
# Add custom promise to check if /dev/sdr0 is busy
[tun-up-promise]
recipe = slapos.cookbook:promise.plugin
eggs = slapos.core
file = {{ interface_up_promise }}
output = ${directory:plugins}/check-tun-up.py
config-ifname = ${slap-configuration:tun-name}
<= monitor-publish
epc-ip = ${lte-mme-request:connection-epc-ip}
{
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema",
"title": "SIM Card Parameters",
"required": [
"sim_algo",
"imsi",
"opc",
"amf",
"sqn",
"k",
"impu",
"impi"
],
"properties": {
"sim_algo": {
"title": "Sim Algorithm",
"description": "xor, milenage or tuak. Set the USIM authentication algorithm.",
"type": "string",
"default": "milenage"
},
"imsi": {
"title": "IMSI",
"description": "IMSI",
"type": "string",
"default": ""
},
"opc": {
"title": "OPC",
"description": "Operator key preprocessed with the user secret key (as a 16 byte hexadecimal string). When the Milenage authentication algorithm is used, opc must be set.",
"type": "string",
"default": ""
},
"amf": {
"title": "AMF",
"description": "Range: 0 to 65535. Set the Authentication Management Field.",
"type": "string",
"default": "0x9001"
},
"sqn": {
"title": "SQN",
"description": "Optional String (6 byte hexadecimal string). Set the initial sequence number. For the XOR algorithm, the actual value does not matter. For the Milenage or TUAK algorithm, a sequence number resynchronization is initiated if the sequence number does not match the one stored in the USIM.",
"type": "string",
"default": "000000000000"
},
"k": {
"title": "K",
"description": "Set the user secret key (as a 16 bytes hexadecimal string, or eventually 32 bytes hexadecimal string for TUAK).",
"type": "string",
"default": ""
},
"impu": {
"title": "IMPU",
"description": "sip URI or a telephone number. Note that sip URI must not include hostname. If IMPU does not start by a scheme, it is assumed to be a sip URI.",
"type": "string",
"default": ""
},
"impi": {
"title": "IMPI",
"description": "Defines user IMPI. Must be fully filled with hostname if necessary.",
"type": "string",
"default": ""
}
}
}
......@@ -2,7 +2,7 @@
parts =
directory
lte-gnb-request
lte-epc-request
lte-mme-request
publish-connection-information
extends = {{ monitor_template }}
......@@ -45,16 +45,17 @@ cert-file = {{ slap_connection['cert-file'] }}
sla-computer_guid = {{ slap_connection['computer-id'] }}
config-monitor-password = ${monitor-htpasswd:passwd}
return = monitor-base-url
[lte-epc-request]
[lte-mme-request]
<= request-common-base
name = EPC
software-type = epc
config-name = epc
name = MME
software-type = mme
config-name = mme
{%- for key, value in slapparameter_dict.iteritems() %}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
config-slave-list = {{ dumps(slave_instance_list) }}
return = monitor-base-url epc-ip
[lte-gnb-request]
<= request-common-base
......@@ -64,11 +65,13 @@ config-name = gnb
{%- for key, value in slapparameter_dict.iteritems() %}
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
return = monitor-base-url
[monitor-base-url-dict]
lte-epc-request = ${lte-epc-request:connection-monitor-base-url}
lte-mme-request = ${lte-mme-request:connection-monitor-base-url}
lte-gnb-request = ${lte-gnb-request:connection-monitor-base-url}
[publish-connection-information]
recipe = slapos.cookbook:publish.serialised
<= monitor-publish
epc-ip = ${lte-mme-request:connection-epc-ip}
[buildout]
parts =
directory
ltelogs
lte-mme-config
lte-mme-service
tun-up-promise
monitor-base
publish-connection-information
extends = {{ monitor_template }}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[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.network_name = RAPIDSPACE
configuration.domain = rapid.space
configuration.log_size = 50M
configuration.mme_ws_port = 9000
configuration.enb_ws_port = 9002
configuration.ims_ws_port = 9003
configuration.mme_addr = 127.0.1.100
configuration.ims_addr = 127.0.0.1
configuration.ims_bind = 127.0.0.2
configuration.enb_addr = 127.0.1.1
ue_db_path = {{ ue_db_path }}
[directory]
recipe = slapos.cookbook:mkdirectory
software = {{ buildout_directory }}
home = ${buildout:directory}
etc = ${:home}/etc
var = ${:home}/var
etc = ${:home}/etc
bin = ${:home}/bin
tmp = ${:home}/tmp
run = ${:var}/run
script = ${:etc}/run
service = ${:etc}/service
promise = ${:etc}/promise
log = ${:var}/log
[ltelogs]
recipe = slapos.recipe.template:jinja2
url = {{ ltelogs_template }}
output = ${directory:home}/ltelogs.sh
extensions = jinja2.ext.do
context =
section directory directory
{% if slapparameter_dict.get("mme_config_link", None) %}
[mme-config-dl]
recipe = slapos.recipe.build:download
url = {{ slapparameter_dict.get("mme_config_link") }}
version = {{ slapparameter_dict.get("mme_config_version") }}
offline = false
{% endif %}
### IMS
[lte-ims-service]
recipe = slapos.cookbook:wrapper
init = ${ltelogs:output} ${directory:log}/ims.log; sleep 1
command-line = {{ mme }}/lteims ${directory:etc}/ims.cfg
wrapper-path = ${directory:service}/lte-ims
mode = 0775
pidfile = ${directory:run}/ims.pid
hash-files =
${lte-ims-config:output}
{{ ue_db_path }}
environment = AMARISOFT_PATH=/opt/amarisoft/.amarisoft
[lte-mme-sh-wrapper]
recipe = slapos.recipe.template
output = ${directory:bin}/${:_buildout_section_name_}
inline =
#!/bin/sh
rm -f ${directory:var}/lte_ue.db;
{{ mme }}/ltemme ${directory:etc}/mme.cfg >> ${directory:log}/mme-output.log 2>> ${directory:log}/mme-output.log
### MME
[lte-mme-service]
recipe = slapos.cookbook:wrapper
# When the machine shutdowns abruptly, lte_ue is not cleaned up which causes
# amarisoft ltemme to fail. TODO: find a cleaner way to handle this
init = ${ltelogs:output} ${directory:log}/mme.log
command-line = ${lte-mme-sh-wrapper:output}
wrapper-path = ${directory:service}/lte-mme
mode = 0775
pidfile = ${directory:run}/mme.pid
hash-files =
${lte-mme-config:output}
{{ ue_db_path }}
${lte-mme-sh-wrapper:output}
environment =
LD_LIBRARY_PATH={{ openssl_location }}/lib:{{ nghttp2_location }}/lib
AMARISOFT_PATH=/opt/amarisoft/.amarisoft
### EMPTY mme-ifup script
[lte-mme-ifup-empty]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:bin}/mme-ifup-empty
command-line = echo Using interface
mode = 775
[config-base]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
context =
section directory directory
section slap_configuration slap-configuration
key slapparameter_dict slap-configuration:configuration
key gtp_addr slap-configuration:ipv6-random
import netaddr netaddr
key ifup_empty lte-mme-ifup-empty:wrapper-path
[lte-ims-config]
<= config-base
url = {{ ims_template }}
output = ${directory:etc}/ims.cfg
[lte-mme-config]
<= config-base
{% if slapparameter_dict.get("mme_config_link", None) %}
url = ${mme-config-dl:target}
{% else %}
url = {{ mme_template }}
{% endif %}
output = ${directory:etc}/mme.cfg
[monitor-instance-parameter]
{% if slapparameter_dict.get("name", None) %}
monitor-title = {{ slapparameter_dict['name'] | string }}
{% endif %}
{% if slapparameter_dict.get("monitor-password", None) %}
password = {{ slapparameter_dict['monitor-password'] | string }}
{% endif %}
[publish-connection-information]
<= monitor-publish
recipe = slapos.cookbook:publish.serialised
epc-ip = ${slap-configuration:ipv6-random}
# Add custom promise to check if /dev/sdr0 is busy
[tun-up-promise]
recipe = slapos.cookbook:promise.plugin
eggs = slapos.core
file = {{ interface_up_promise }}
output = ${directory:plugins}/check-tun-up.py
config-ifname = ${slap-configuration:tun-name}
......@@ -43,9 +43,10 @@ init =
recipe = slapos.cookbook:switch-softwaretype
enb-epc = dynamic-template-lte-enb-epc:output
gnb-epc = dynamic-template-lte-gnb-epc:output
epc = dynamic-template-lte-epc:output
enb = dynamic-template-lte-enb:output
gnb = dynamic-template-lte-gnb:output
epc = dynamic-template-lte-epc:output
mme = dynamic-template-lte-mme:output
RootSoftwareInstance = $${:enb-epc}
[dynamic-template-lte-enb-epc]
......@@ -55,6 +56,7 @@ filename = instance-lte-enb-epc.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:output}
key slave_instance_list slap-configuration:slave-instance-list
[dynamic-template-lte-gnb-epc]
< = jinja2-template-base
......@@ -63,6 +65,16 @@ filename = instance-lte-gnb-epc.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:output}
key slave_instance_list slap-configuration:slave-instance-list
[dynamic-template-lte-epc]
< = jinja2-template-base
url = ${template-lte-epc:target}
filename = instance-lte-epc.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:output}
key slave_instance_list slap-configuration:slave-instance-list
[dynamic-template-lte-enb]
< = jinja2-template-base
......@@ -107,10 +119,10 @@ extra-context =
raw min_frequency ${enb:min-frequency}
raw max_frequency ${enb:max-frequency}
[dynamic-template-lte-epc]
[dynamic-template-lte-mme]
< = jinja2-template-base
url = ${template-lte-epc:target}
filename = instance-lte-epc.cfg
url = ${template-lte-mme:target}
filename = instance-lte-mme.cfg
extensions = jinja2.ext.do
extra-context =
raw monitor_template ${monitor2-template:output}
......@@ -130,4 +142,5 @@ filename = ue_db.cfg
extensions = jinja2.ext.do
output = $${buildout:directory}/$${:filename}
context =
key slave_instance_list slap-configuration:slave-instance-list
import json_module json
key slave_instance_list slap-configuration:configuration.slave-list
......@@ -43,14 +43,32 @@
"response": "instance-epc-schema.json",
"index": 4
},
"gnb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "gnb-epc",
"request": "instance-gnb-epc-slave-input-schema.json",
"response": "instance-gnb-epc-slave-schema.json",
"shared": true,
"index": 5
},
"enb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "enb-epc",
"request": "instance-enb-epc-slave-input-schema.json",
"response": "instance-enb-epc-slave-schema.json",
"shared": true,
"index": 6
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"description": "Sim Card Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
"index": 7
}
}
}
}
\ No newline at end of file
......@@ -43,14 +43,32 @@
"response": "instance-epc-schema.json",
"index": 4
},
"gnb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "gnb-epc",
"request": "instance-gnb-epc-slave-input-schema.json",
"response": "instance-gnb-epc-slave-schema.json",
"shared": true,
"index": 5
},
"enb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "enb-epc",
"request": "instance-enb-epc-slave-input-schema.json",
"response": "instance-enb-epc-slave-schema.json",
"shared": true,
"index": 6
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"description": "Sim Card Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
"index": 7
}
}
}
}
\ No newline at end of file
......@@ -43,14 +43,32 @@
"response": "instance-epc-schema.json",
"index": 4
},
"gnb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "gnb-epc",
"request": "instance-gnb-epc-slave-input-schema.json",
"response": "instance-gnb-epc-slave-schema.json",
"shared": true,
"index": 5
},
"enb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "enb-epc",
"request": "instance-enb-epc-slave-input-schema.json",
"response": "instance-enb-epc-slave-schema.json",
"shared": true,
"index": 6
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"description": "Sim Card Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
"index": 7
}
}
}
}
\ No newline at end of file
......@@ -43,14 +43,32 @@
"response": "instance-epc-schema.json",
"index": 4
},
"gnb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "gnb-epc",
"request": "instance-gnb-epc-slave-input-schema.json",
"response": "instance-gnb-epc-slave-schema.json",
"shared": true,
"index": 5
},
"enb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "enb-epc",
"request": "instance-enb-epc-slave-input-schema.json",
"response": "instance-enb-epc-slave-schema.json",
"shared": true,
"index": 6
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"description": "Sim Card Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
"index": 7
}
}
}
}
\ No newline at end of file
......@@ -35,13 +35,16 @@ url = ${:_profile_base_location_}/${:_update_hash_filename_}
[template-lte-gnb-epc]
<= download-base
[template-lte-epc]
<= download-base
[template-lte-enb]
<= download-base
[template-lte-gnb]
<= download-base
[template-lte-epc]
[template-lte-mme]
<= download-base
[sdr-busy-promise]
......
......@@ -43,14 +43,32 @@
"response": "instance-epc-schema.json",
"index": 4
},
"gnb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "gnb-epc",
"request": "instance-gnb-epc-slave-input-schema.json",
"response": "instance-gnb-epc-slave-schema.json",
"shared": true,
"index": 5
},
"enb-epc-slave": {
"title": "Sim Card",
"description": "Sim Card Configuration",
"software-type": "enb-epc",
"request": "instance-enb-epc-slave-input-schema.json",
"response": "instance-enb-epc-slave-schema.json",
"shared": true,
"index": 6
},
"epc-slave": {
"title": "Sim Card",
"description": "EPC Configuration",
"description": "Sim Card Configuration",
"software-type": "epc",
"request": "instance-epc-slave-input-schema.json",
"response": "instance-epc-slave-schema.json",
"shared": true,
"index": 5
"index": 7
}
}
}
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