diff --git a/modules/rhizo_base/manifests/openbsc.pp b/modules/rhizo_base/manifests/openbsc.pp index f1a76db..f793b1e 100644 --- a/modules/rhizo_base/manifests/openbsc.pp +++ b/modules/rhizo_base/manifests/openbsc.pp @@ -36,6 +36,7 @@ class rhizo_base::openbsc { $sgsn_ip_address = hiera('rhizo::sgsn_ip_address') $ggsn_ip_address = hiera('rhizo::ggsn_ip_address') $repo = hiera('rhizo::osmo_repo', 'latest') + $bts = hiera('rhizo::bts') $nitb_version = $repo ? { 'latest' => '1.3.2', @@ -112,7 +113,10 @@ class rhizo_base::openbsc { unless hiera('rhizo::local_bsc_cfg') == "1" { file { '/etc/osmocom/osmo-nitb.cfg': - content => template('rhizo_base/osmo-nitb.cfg.erb'), + content => template( + 'rhizo_base/osmo-nitb-head.erb', + 'rhizo_base/osmo-nitb-bts.erb', + 'rhizo_base/osmo-nitb-tail.erb'), require => Package['osmocom-nitb'], notify => Exec['notify-nitb'], } diff --git a/modules/rhizo_base/templates/osmo-nitb-bts.erb b/modules/rhizo_base/templates/osmo-nitb-bts.erb new file mode 100644 index 0000000..f0c031d --- /dev/null +++ b/modules/rhizo_base/templates/osmo-nitb-bts.erb @@ -0,0 +1,101 @@ +<% @bts.each_with_index do |bts, index| -%> + bts <%= index %> + type <%= bts["type"] %> + description <%= bts["name"] %> + band <%= bts["band"] %> + cell_identity <%= index %> + location_area_code <%= bts["lac"] %> + base_station_id_code <%= bts["bsic"] %> + ms max power <%= bts["ms_maxp"] %> + cell reselection hysteresis 14 + rxlev access min 0 + periodic location update 30 + radio-link-timeout 32 + channel allocator ascending + rach tx integer 9 + rach max transmission 7 + channel-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + rach emergency call allowed 1 + no access-control-class-ramping + access-control-class-ramping-step-interval dynamic + access-control-class-ramping-step-size 1 + early-classmark-sending forbidden + early-classmark-sending-3g allowed + ip.access unit_id 1000 <%= bts["uid"] %> + oml ip.access stream_id 255 line 0 + neighbor-list mode automatic + codec-support fr amr + amr tch-f modes 4 5 + amr tch-f start-mode 1 + amr tch-h modes 4 5 + amr tch-h start-mode 1 + gprs mode <%= bts["gprs_m"] %> + gprs 11bit_rach_support_for_egprs 0 + gprs routing area 21 + gprs network-control-order nc0 + gprs cell bvci <%= index+2 %> + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 10<%= index+2 %> + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 10<%= index+2 %> + gprs nsvc 0 local udp port 23<%= bts["lac"] %> + gprs nsvc 0 remote udp port 23001 + gprs nsvc 0 remote ip <%= @sgsn_ip_address %> + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si +<% if bts["model"] == "2050S" %> depends-on-bts <%= index-1 %> +<% end -%> +<% bts["trx"].each_with_index do |trx, index| -%> + trx <%= index %> + rf_locked 0 + arfcn <%= trx["chan"] %> + nominal power <%= bts["nom"] %> + max_power_red <%= bts["red"] %> + rsl e1 tei 0 + timeslot 0 + phys_chan_config CCCH + hopping enabled 0 + timeslot 1 + phys_chan_config <%= @phys_chan %> + hopping enabled 0 + timeslot 2 + phys_chan_config <%= @phys_chan %> + hopping enabled 0 + timeslot 3 + phys_chan_config <%= @phys_chan %> + hopping enabled 0 + timeslot 4 + phys_chan_config <%= @phys_chan %> + hopping enabled 0 + timeslot 5 + phys_chan_config <%= @phys_chan %> + hopping enabled 0 + timeslot 6 + phys_chan_config TCH/F_TCH/H_PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 +<% end -%> +<% end -%> diff --git a/modules/rhizo_base/templates/osmo-nitb-head.erb b/modules/rhizo_base/templates/osmo-nitb-head.erb new file mode 100644 index 0000000..6b4c452 --- /dev/null +++ b/modules/rhizo_base/templates/osmo-nitb-head.erb @@ -0,0 +1,92 @@ +! +! OpenBSC (UNKNOWN) configuration by puppet +!! +password foo +! +log stderr + logging filter all 1 + logging color 1 + logging print category-hex 0 + logging print category 1 + logging timestamp 0 + logging print file 1 + logging level all everything + logging level rll notice + logging level cc info + logging level mm info + logging level rr notice + logging level rsl error + logging level nm notice + logging level mncc notice + logging level pag notice + logging level meas notice + logging level sccp notice + logging level msc notice + logging level mgcp notice + logging level ho notice + logging level db notice + logging level ref notice + logging level gprs notice + logging level ns notice + logging level bssgp notice + logging level llc notice + logging level sndcp notice + logging level nat notice + logging level ctrl notice + logging level smpp fatal + logging level filter notice + logging level ranap debug + logging level sua debug + logging level pcu debug + logging level lglobal error + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms debug + logging level lctrl notice + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice + logging level ljibuf notice + logging level lrspro notice +! +stats interval 5 +! +line vty + no login +! +e1_input + e1_line 0 driver ipa + e1_line 0 port 0 + no e1_line 0 keepalive +network + network country code <%= @mcc %> + mobile network code <%= @mnc %> + short name <%= @network_name %> + long name <%= @network_name %> + auth policy <%= @auth_policy %> + authorized-regexp .* + location updating reject cause 13 + encryption a5 0 + neci 1 + paging any use tch 1 + rrlp mode none + mm info 1 + handover 0 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + timer t3109 4 + dyn_ts_allow_tch_f 0 + subscriber-keep-in-ram 0 diff --git a/modules/rhizo_base/templates/osmo-nitb-tail.erb b/modules/rhizo_base/templates/osmo-nitb-tail.erb new file mode 100644 index 0000000..64a37f9 --- /dev/null +++ b/modules/rhizo_base/templates/osmo-nitb-tail.erb @@ -0,0 +1,21 @@ +mncc-int + default-codec tch-f amr + default-codec tch-h amr + meas-feed destination 127.0.0.1 8888 +nitb + subscriber-create-on-demand + no assign-tmsi +smpp + local-tcp-port 2775 + policy closed + smpp-first + esme OSMPP + password <%= @smsc_password %> + default-route + no alert-notifications + esme ISMPP + password <%= @smsc_password %> + no alert-notifications + esme NOTIFY + password <%= @smpp_password %> + no deliver-src-imsi