osmo-bts/contrib/ber
Sylvain Munaut acf0f0f0bb contrib: Add BER testing tool
This implements RTP based GSM BER testing for osmo-bts, implementing
ideas described in https://osmocom.org/projects/osmobts/wiki/BER_Testing

In short: The command transmits a PRBS sequence encapsulated in RTP
frames, which are sent to the BTS, which transmits that data in the
(unimpaired) downlink.  The mobile station receives the data and is
instructed to loop it back in the (possibly impaired) uplink.  The BTS
receives that uplink, puts in in RTP frames which end up being received
back by this very tool.  By correlating the received RTP with the PRBS
sequence, this tool can compute the BER (Bit Error Rate) of the
(possibly impaired) uplink.  Doing this with different RF channel model
simulators in the uplink allows to establish BER at different levels and
channel conditions.

Original code by Sylvain Munaut extended with some comments and Automake
integration by Harald Welte.

Change-Id: I1cffa0ae959e29ec61775b13185fd1057ed7485a
2023-03-30 12:56:14 +02:00
..
Makefile.am contrib: Add BER testing tool 2023-03-30 12:56:14 +02:00
README contrib: Add BER testing tool 2023-03-30 12:56:14 +02:00
rtp_ber.c contrib: Add BER testing tool 2023-03-30 12:56:14 +02:00
rtp_gen_map.c contrib: Add BER testing tool 2023-03-30 12:56:14 +02:00

README

BER testing tool
----------------

* Check all configs (MSC/BSC/BTS) for proper codec support
  - FR enabled
  - EFR enabled
  - AMR 12.2 enabled (and all other modes disabled !)
  - Use `amr-payload octet-aligned` in BSC config

* Check BTS config
  - Disable jitter buffer : `bts N / rtp jitter-buffer 0`

* Check BSC config
  - Disable radio timeout : `network / bts n / radio-link-timeout infinite`

* Start BER testing tool
  - `./rtp_ber 4000`

* On the MSC CLI, start a silent-call, then request GSM to test loop
  - `subscriber imsi <XXX> silent-call start tch/f speech-amr`
  - `subscriber imsi <XXX> ms-test close-loop b`

  Don't forget to terminate the loop and terminate the silent call !

  - `subscriber imsi <XXX> ms-test open-loop`
  - `subscriber imsi <XXX> silent-call stop`