!
! OsmoTRX example configuration
!
log stderr
  logging filter all 1
  logging color 1
  logging print category 1
  logging print category-hex 0
  logging print level 1
  logging print file basename last
  logging timestamp 1
  logging print extended-timestamp 1
  logging level set-all info
  logging level ctr notice
  logging level trxddl notice
  logging level trxdul notice
!
line vty
 bind ${osmo_trx.trx_ip}
ctrl
 bind ${osmo_trx.trx_ip}
trx
 bind-ip ${osmo_trx.trx_ip}
 remote-ip ${osmo_trx.bts_ip}
 base-port 5700
 egprs ${osmo_trx.egprs}
%if osmo_trx.get('multi_arfcn', False):
 multi-arfcn enable
%else:
 multi-arfcn disable
%endif
%if osmo_trx.get('dev_args', False):
 dev-args ${osmo_trx.dev_args}
%endif
 tx-sps 4
 rx-sps 4
 clock-ref ${osmo_trx.clock_reference}
 rt-prio 18
%for chan in osmo_trx.channels:
 chan ${loop.index}
% if chan.get('tx_path', False):
  tx-path ${chan.tx_path}
% endif
% if chan.get('rx_path', False):
  rx-path ${chan.rx_path}
 %endif
%endfor
