[buildout] parts = directory ltelogs lte-enb-config lte-enb-service sdr-busy-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 = VIFIB configuration.domain = vifib.com configuration.mme_ws_port = 9000 configuration.enb_ws_port = 9002 configuration.ims_ws_port = 9003 configuration.ims_addr = 127.0.0.1 configuration.ims_bind = 127.0.0.2 configuration.enb_addr = 127.0.1.1 configuration.default_dl_earfcn = {{ default_dl_earfcn }} configuration.default_lte_dl_freq = {{ default_lte_dl_freq }} configuration.default_lte_band = {{ default_lte_band }} configuration.default_lte_n_rb_dl = {{ default_lte_n_rb_dl }} configuration.default_lte_tx_gain = {{ default_lte_tx_gain }} configuration.default_lte_rx_gain = {{ default_lte_rx_gain }} [directory] recipe = slapos.cookbook:mkdirectory software = {{ buildout_directory }} home = ${buildout:directory} etc = ${:home}/etc var = ${:home}/var etc = ${:home}/etc bin = ${:home}/bin run = ${:var}/run script = ${:etc}/run service = ${:etc}/service promise = ${:etc}/promise log = ${:var}/log [ltelogs] recipe = slapos.recipe.template:jinja2 template = {{ ltelogs_template }} rendered = ${directory:home}/ltelogs.sh mode = 0775 extensions = jinja2.ext.do context = section directory directory ### eNodeB (enb) [lte-enb-service] recipe = slapos.cookbook:wrapper init = ${ltelogs:rendered} ${directory:log}/enb.log; sleep 2 command-line = {{ enb }}/lteenb ${directory:etc}/enb.cfg wrapper-path = ${directory:service}/lte-enb mode = 0775 reserve-cpu = True pidfile = ${directory:run}/enb.pid hash-files = ${lte-enb-config:rendered} environment = LD_LIBRARY_PATH={{ openssl_location }}/lib AMARISOFT_PATH=/opt/amarisoft/.amarisoft [config-base] recipe = slapos.recipe.template:jinja2 mode = 0664 extensions = jinja2.ext.do context = section directory directory section slap_configuration slap-configuration key slapparameter_dict slap-configuration:configuration import netaddr netaddr [lte-enb-config] <= config-base template = {{ enb_template }} rendered = ${directory:etc}/enb.cfg [publish-connection-information] recipe = slapos.cookbook:publish.serialised monitor-base-url = ${monitor-instance-parameter:monitor-base-url} [monitor-instance-parameter] monitor-title = {{ slapparameter_dict['name'] | string }} password = {{ slapparameter_dict['monitor-password'] | string }} # Add custom promise to check if /dev/sdr0 is busy [sdr-busy-promise] recipe = slapos.cookbook:promise.plugin eggs = slapos.core file = {{ sdr_busy_promise }} output = ${directory:plugins}/check-sdr-busy.py