instance.cfg 7.52 KB
Newer Older
1 2 3 4 5 6 7 8 9
[buildout]
parts =
  switch-softwaretype

eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true

[slap-configuration]
10
recipe = slapos.cookbook:slapconfiguration.serialised
11 12 13 14 15 16 17 18
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
19
output = $${buildout:directory}/$${:filename}
20 21 22 23 24 25 26 27
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
28
    key epc_ipv4 ethernet-ip:ipv4
29 30
    $${:extra-context}

31 32 33 34 35 36 37 38 39 40 41
[amarisoft]
recipe = slapos.recipe.build
init =
  import os
  lte_version = "2021-09-18"
  path = "/opt/amarisoft/v" + lte_version
  options['lte-version'] = lte_version
  options['path'] = path
  options['enb'] = path + "/enb"
  options['mme'] = path + "/mme"
  options['ims'] = path + "/ims"
42
  options['ue'] = path + "/ue"
43

44 45 46 47 48 49 50 51 52 53 54 55 56
[ethernet-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"

57 58
[switch-softwaretype]
recipe = slapos.cookbook:switch-softwaretype
59 60
enb-epc = dynamic-template-lte-enb-epc:output
gnb-epc = dynamic-template-lte-gnb-epc:output
61
epc = dynamic-template-lte-epc:output
62 63
enb = dynamic-template-lte-enb:output
gnb = dynamic-template-lte-gnb:output
64
mme = dynamic-template-lte-mme:output
65 66
ue-lte = dynamic-template-lte-ue-lte:output
ue-nr = dynamic-template-lte-ue-nr:output
67 68 69 70
RootSoftwareInstance = $${:enb-epc}

[dynamic-template-lte-enb-epc]
< = jinja2-template-base
71
url = ${template-lte-enb-epc:target}
72 73 74
filename = instance-lte-enb-epc.cfg
extensions = jinja2.ext.do
extra-context =
75
    raw monitor_template ${monitor2-template:output}
76
    key slave_instance_list slap-configuration:slave-instance-list
77

78 79
[dynamic-template-lte-gnb-epc]
< = jinja2-template-base
80
url = ${template-lte-gnb-epc:target}
81 82 83
filename = instance-lte-gnb-epc.cfg
extensions = jinja2.ext.do
extra-context =
84
    raw monitor_template ${monitor2-template:output}
85 86 87 88 89 90 91 92 93 94
    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
95

96 97
[dynamic-template-lte-enb]
< = jinja2-template-base
98
url = ${template-lte-enb:target}
99 100 101
filename = instance-lte-enb.cfg
extensions = jinja2.ext.do
extra-context =
102
    raw monitor_template ${monitor2-template:output}
103
    key enb amarisoft:enb
104
    raw enb_template   ${enb.jinja2.cfg:target}
105
    raw sib23   ${sib23.asn:target}
106
    raw ltelogs_template   ${ltelogs.jinja2.sh:target}
107
    raw sdr_busy_promise   ${sdr-busy-promise:target}
108 109 110 111 112 113 114 115 116 117 118 119
    raw openssl_location ${openssl:location}
    raw default_dl_earfcn ${enb:default-dl-earfcn}
    raw default_lte_dl_freq ${enb:default-lte-dl-freq}
    raw default_lte_band ${enb:default-lte-band}
    raw default_lte_n_rb_dl ${enb:default-lte-n-rb-dl}
    raw default_lte_tx_gain ${enb:default-lte-tx-gain}
    raw default_lte_rx_gain ${enb:default-lte-rx-gain}
    raw min_frequency ${enb:min-frequency}
    raw max_frequency ${enb:max-frequency}

[dynamic-template-lte-gnb]
< = jinja2-template-base
120
url = ${template-lte-gnb:target}
121 122 123
filename = instance-lte-gnb.cfg
extensions = jinja2.ext.do
extra-context =
124
    raw monitor_template ${monitor2-template:output}
125
    key enb amarisoft:enb
126 127
    raw gnb_template   ${gnb.jinja2.cfg:target}
    raw ltelogs_template   ${ltelogs.jinja2.sh:target}
128
    raw sdr_busy_promise   ${sdr-busy-promise:target}
129 130 131 132 133 134 135
    raw openssl_location ${openssl:location}
    raw default_dl_nr_arfcn ${enb:default-dl-nr-arfcn}
    raw default_nr_band ${enb:default-nr-band}
    raw default_nr_dl_freq ${enb:default-nr-dl-freq}
    raw default_nr_bandwidth ${enb:default-nr-bandwidth}
    raw default_nr_tx_gain ${enb:default-nr-tx-gain}
    raw default_nr_rx_gain ${enb:default-nr-rx-gain}
136
    raw default_nr_ssb_pos_bitmap ${enb:default-nr-ssb-pos-bitmap}
137 138 139
    raw min_frequency ${enb:min-frequency}
    raw max_frequency ${enb:max-frequency}

140
[dynamic-template-lte-mme]
141
< = jinja2-template-base
142 143
url = ${template-lte-mme:target}
filename = instance-lte-mme.cfg
144 145
extensions = jinja2.ext.do
extra-context =
146
    raw monitor_template ${monitor2-template:output}
147
    raw interface_up_promise   ${interface-up-promise:target}
148
    key mme amarisoft:mme
149 150 151 152 153
    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}
154
    raw iperf3_location ${iperf3:location}
155
    key ue_db_path ue-db-config:output
156

157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
[dynamic-template-lte-ue-lte]
< = jinja2-template-base
url = ${template-lte-ue-lte:target}
filename = instance-lte-ue-lte.cfg
extensions = jinja2.ext.do
extra-context =
    raw monitor_template ${monitor2-template:output}
    raw interface_up_promise   ${interface-up-promise:target}
    key ue amarisoft:ue
    raw ue_lte_template   ${ue-lte.jinja2.cfg:target}
    raw ltelogs_template   ${ltelogs.jinja2.sh:target}
    raw sdr_busy_promise   ${sdr-busy-promise:target}
    raw openssl_location ${openssl:location}
    raw default_dl_earfcn ${enb:default-dl-earfcn}
    raw default_lte_dl_freq ${enb:default-lte-dl-freq}
    raw default_lte_n_rb_dl ${enb:default-lte-n-rb-dl}
    raw default_lte_tx_gain ${enb:default-lte-tx-gain}
    raw default_lte_rx_gain ${enb:default-lte-rx-gain}
    raw default_n_antenna_dl ${enb:default-n-antenna-dl}
    raw default_n_antenna_ul ${enb:default-n-antenna-ul}
    raw default_lte_imsi ${enb:default-lte-imsi}
    raw default_lte_k ${enb:default-lte-k}

[dynamic-template-lte-ue-nr]
< = jinja2-template-base
url = ${template-lte-ue-nr:target}
filename = instance-lte-ue-nr.cfg
extensions = jinja2.ext.do
extra-context =
    raw monitor_template ${monitor2-template:output}
    raw interface_up_promise   ${interface-up-promise:target}
    key ue amarisoft:ue
    raw ue_nr_template   ${ue-nr.jinja2.cfg:target}
    raw ltelogs_template   ${ltelogs.jinja2.sh:target}
    raw sdr_busy_promise   ${sdr-busy-promise:target}
    raw openssl_location ${openssl:location}
    raw default_dl_nr_arfcn ${enb:default-dl-nr-arfcn}
    raw default_nr_band ${enb:default-nr-band}
    raw default_nr_bandwidth ${enb:default-nr-bandwidth}
    raw default_nr_tx_gain ${enb:default-nr-tx-gain}
    raw default_nr_rx_gain ${enb:default-nr-rx-gain}
    raw default_n_antenna_dl ${enb:default-n-antenna-dl}
    raw default_n_antenna_ul ${enb:default-n-antenna-ul}
    raw default_nr_imsi ${enb:default-nr-imsi}
    raw default_nr_k ${enb:default-nr-k}
    raw default_ssb_nr_arfcn ${enb:default-ssb-nr-arfcn}

204 205
[ue-db-config]
recipe = slapos.recipe.template:jinja2
206
url = ${ue_db.jinja2.cfg:target}
207 208
filename = ue_db.cfg
extensions = jinja2.ext.do
209
output = $${buildout:directory}/$${:filename}
210
context =
211 212
    import json_module json
    key slave_instance_list slap-configuration:configuration.slave-list