[buildout] parts = switch-softwaretype eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout: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} [jinja2-template-base] recipe = slapos.recipe.template:jinja2 output = $${buildout:directory}/$${:filename} extra-context = context = import json_module json key eggs_directory buildout:eggs-directory key develop_eggs_directory buildout:develop-eggs-directory raw buildout_directory ${buildout:directory} section slap_connection slap-connection key slapparameter_dict slap-configuration:configuration key lan_ipv4 lan-ip:ipv4 $${:extra-context} [amarisoft] recipe = slapos.recipe.build init = import os, re try: lte_version = sorted(filter(lambda x: re.match(r"v[0-9]{4}-[0-9]{2}-[0-9]{2}", x), os.listdir('/opt/amarisoft')))[-1][1:] except FileNotFoundError: lte_version = 'LTEVERSION' path = "/opt/amarisoft/v" + lte_version options['lte-version'] = lte_version options['path'] = path options['sdr'] = path + "/trx_sdr" options['enb'] = path + "/enb" options['mme'] = path + "/mme" options['ims'] = path + "/ims" options['ue'] = path + "/ue" [lan-ip] recipe = slapos.recipe.build init = import netifaces for i in netifaces.interfaces(): if not (i.startswith("slaptun") or i.startswith("re6stnet") or i == "lo"): a = netifaces.ifaddresses(i) if netifaces.AF_INET in a: try: options['ipv4'] = a[netifaces.AF_INET][0]['addr'] except: options['ipv4'] = "0.0.0.0" [switch-softwaretype] recipe = slapos.cookbook:switch-softwaretype enb = dynamic-template-enb:output gnb = dynamic-template-gnb:output core-network = dynamic-template-core-network:output ue-lte = dynamic-template-ue-lte:output ue-nr = dynamic-template-ue-nr:output RootSoftwareInstance = $${:core-network} obsolete = dynamic-template-obsolete:output enb-epc = $${:obsolete} gnb-epc = $${:obsolete} epc = $${:obsolete} mme = $${:obsolete} [dynamic-template-obsolete] < = jinja2-template-base url = ${template-obsolete:target} filename = instance-obsolete.cfg extensions = jinja2.ext.do extra-context = key slave_instance_list slap-configuration:slave-instance-list [dynamic-template-enb] < = jinja2-template-base url = ${template-enb:target} filename = instance-enb.cfg extensions = jinja2.ext.do extra-context = raw monitor_template ${monitor2-template:output} key enb amarisoft:enb key sdr amarisoft:sdr raw enb_template ${enb.jinja2.cfg:target} raw sib23 ${sib23.asn:target} raw ltelogs_template ${ltelogs.jinja2.sh:target} raw amarisoft_stats_template ${amarisoft-stats.jinja2.py:target} raw amarisoft_rf_info_template ${amarisoft-rf-info.jinja2.py:target} raw lopcomm_rrh_stats_template ${lopcomm-rrh-stats.jinja2.py:target} raw lopcomm_rrh_config_template ${lopcomm-rrh-config.jinja2.py:target} raw CreateProcessingEle_template ${CreateProcessingEle.jinja2.xml:target} raw cu_config_template ${cu_config.jinja2.xml:target} raw openssl_location ${openssl:location} raw default_dl_earfcn ${default-params:default-dl-earfcn} raw default_lte_dl_freq ${default-params:default-lte-dl-freq} raw default_lte_band ${default-params:default-lte-band} raw default_lte_n_rb_dl ${default-params:default-lte-n-rb-dl} raw default_lte_tx_gain ${default-params:default-lte-tx-gain} raw default_lte_rx_gain ${default-params:default-lte-rx-gain} raw default_lte_inactivity_timer ${default-params:default-lte-inactivity-timer} raw default_n_antenna_dl ${default-params:default-n-antenna-dl} raw default_n_antenna_ul ${default-params:default-n-antenna-ul} raw min_frequency ${default-params:min-frequency} raw max_frequency ${default-params:max-frequency} [dynamic-template-gnb] < = jinja2-template-base url = ${template-gnb:target} filename = instance-gnb.cfg extensions = jinja2.ext.do extra-context = raw monitor_template ${monitor2-template:output} key enb amarisoft:enb key sdr amarisoft:sdr raw gnb_template ${gnb.jinja2.cfg:target} raw ltelogs_template ${ltelogs.jinja2.sh:target} raw amarisoft_stats_template ${amarisoft-stats.jinja2.py:target} raw amarisoft_rf_info_template ${amarisoft-rf-info.jinja2.py:target} raw openssl_location ${openssl:location} raw default_dl_nr_arfcn ${default-params:default-dl-nr-arfcn} raw default_nr_band ${default-params:default-nr-band} raw default_nr_dl_freq ${default-params:default-nr-dl-freq} raw default_nr_bandwidth ${default-params:default-nr-bandwidth} raw default_nr_tx_gain ${default-params:default-nr-tx-gain} raw default_nr_rx_gain ${default-params:default-nr-rx-gain} raw default_nr_ssb_pos_bitmap ${default-params:default-nr-ssb-pos-bitmap} raw default_nr_inactivity_timer ${default-params:default-nr-inactivity-timer} raw default_n_antenna_dl ${default-params:default-n-antenna-dl} raw default_n_antenna_ul ${default-params:default-n-antenna-ul} raw min_frequency ${default-params:min-frequency} raw max_frequency ${default-params:max-frequency} raw python_path ${python3:location} [dynamic-template-core-network] < = jinja2-template-base url = ${template-core-network:target} filename = instance-core-network.cfg extensions = jinja2.ext.do extra-context = raw monitor_template ${monitor2-template:output} key mme amarisoft:mme raw mme_template ${mme.jinja2.cfg:target} raw ims_template ${ims.jinja2.cfg:target} raw ltelogs_template ${ltelogs.jinja2.sh:target} raw openssl_location ${openssl:location} raw nghttp2_location ${nghttp2:location} raw iperf3_location ${iperf3:location} key ue_db_path ue-db-config:output key slave_instance_list slap-configuration:slave-instance-list [dynamic-template-ue-lte] < = jinja2-template-base url = ${template-ue-lte:target} filename = instance-ue-lte.cfg extensions = jinja2.ext.do extra-context = raw monitor_template ${monitor2-template:output} key ue amarisoft:ue key sdr amarisoft:sdr raw ue_lte_template ${ue-lte.jinja2.cfg:target} raw ltelogs_template ${ltelogs.jinja2.sh:target} raw openssl_location ${openssl:location} raw default_dl_earfcn ${default-params:default-dl-earfcn} raw default_lte_dl_freq ${default-params:default-lte-dl-freq} raw default_lte_n_rb_dl ${default-params:default-lte-n-rb-dl} raw default_lte_tx_gain ${default-params:default-lte-tx-gain} raw default_lte_rx_gain ${default-params:default-lte-rx-gain} raw default_n_antenna_dl ${default-params:default-n-antenna-dl} raw default_n_antenna_ul ${default-params:default-n-antenna-ul} raw default_lte_imsi ${default-params:default-lte-imsi} raw default_lte_k ${default-params:default-lte-k} [dynamic-template-ue-nr] < = jinja2-template-base url = ${template-ue-nr:target} filename = instance-ue-nr.cfg extensions = jinja2.ext.do extra-context = raw monitor_template ${monitor2-template:output} key ue amarisoft:ue key sdr amarisoft:sdr raw ue_nr_template ${ue-nr.jinja2.cfg:target} raw ltelogs_template ${ltelogs.jinja2.sh:target} raw openssl_location ${openssl:location} raw default_dl_nr_arfcn ${default-params:default-dl-nr-arfcn} raw default_nr_band ${default-params:default-nr-band} raw default_nr_bandwidth ${default-params:default-nr-bandwidth} raw default_nr_tx_gain ${default-params:default-nr-tx-gain} raw default_nr_rx_gain ${default-params:default-nr-rx-gain} raw default_n_antenna_dl ${default-params:default-n-antenna-dl} raw default_n_antenna_ul ${default-params:default-n-antenna-ul} raw default_nr_imsi ${default-params:default-nr-imsi} raw default_nr_k ${default-params:default-nr-k} raw default_ssb_nr_arfcn ${default-params:default-ssb-nr-arfcn} [ue-db-config] recipe = slapos.recipe.template:jinja2 url = ${ue_db.jinja2.cfg:target} filename = ue_db.cfg extensions = jinja2.ext.do output = $${buildout:directory}/$${:filename} context = import json_module json key slave_instance_list slap-configuration:slave-instance-list