Improve NITB config template.

Introduces a multiple file template and iterates over the defined
BTS array from the hiera data.

This is really a backport of the as yet uncommitted work on creating osmo-*
config files for the split stack. Making this change here for the nitb will
allow for removal for some deprecated variables in hiera.

At this time, I don't think there is any site that is actually using
a puppet-generated nitb config file, but if there were, the results of this code
should be more less funcionally equivalent, providing the BTS definition is correct.
This commit is contained in:
Keith Whyte 2020-08-24 15:16:33 +02:00
parent 31d8550a75
commit 1cedf0c0fc
4 changed files with 219 additions and 1 deletions

View file

@ -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 -%>

View file

@ -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

View file

@ -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