Skip to content
Success

Changes

Summary

  1. trau2rtp TW-TS-001: handle corner case of BFI with stale SID bits (details)
  2. trau2rtp unit test: add patterns that showcase BFI=1 SID=0 (details)
  3. trau2rtp EFR unit test: add patterns with bad CRC (details)
Commit e34d2407e64ef403e62acaa1436ba40442c07bac by falcon
trau2rtp TW-TS-001: handle corner case of BFI with stale SID bits

Many BTS models will emit the previous content of their internal
buffer, perhaps corrupted in some peculiar way, when they need to
emit "BFI with no data" because they received FACCH, or because
they received nothing at all and no channel decoding attempt was
made.  This situation is described in detail here:

https://osmocom.org/projects/retro-gsm/wiki/No-data_output

However, when these TRAU-UL BFIs (from Abis or from incoming TFO)
are to be converted to TW-TS-001 with osmo_trau2rtp(), a corner case
arises: if the BTS indicated SID=0 by way of C13 & C14 bits but the
stale payload bit content indicates SID != 0, the full decoder or
TFO transform on the receiving end of the RTP stream will get an
erroneous "invalid SID" indication (instead of "plain" BFI) if the
marked-bad payload is passed through without alteration.

Handle this corner case by modifying marked-bad (BFI=1) payloads
to make them non-SID in the special case when the BTS indicated SID=0,
but the bit pattern says otherwise.

Change-Id: I2800301f7ac25537c4d7fb14acefd73a80590d7c
The file was modifiedsrc/trau/trau_rtp_conv.c
The file was modifiedtests/trau_conv/trau16_fr_twts001.ok
The file was modifiedtests/trau_conv/trau16_efr_twts001.ok
Commit 9cfcbdd2b94195f77be37cbb2c7014946f476c1e by falcon
trau2rtp unit test: add patterns that showcase BFI=1 SID=0

The previous patch added special handling for the corner case
in which the BTS indicates BFI=1 SID=0, but the bit pattern is
still SID by the bit counting rules of GSM 06.31 or 06.81
section 6.1.1.  The selection of test patterns in the unit test
already had some frames that exhibit this effect, taken from
actual Abis output of Nokia InSite BTS, but the exact effect
of our handling becomes more visible when the bit pattern forms
a perfect (not corrupted) SID frame, which I haven't been able
to produce with the InSite.  Therefore, add some hand-crafted
test frames that fully showcase the effect of our transform.

Change-Id: Ic6a0ad289864fe3e11192d158e3bbe221994eaaa
The file was modifiedtests/trau_conv/trau16_efr_twts001.ok
The file was modifiedtests/trau_conv/trau16_fr_std.ok
The file was modifiedtests/trau_conv/trau16_efr.in
The file was modifiedtests/trau_conv/trau16_fr.in
The file was modifiedtests/trau_conv/trau16_efr_std.ok
The file was modifiedtests/trau_conv/trau16_fr_twts001.ok
Commit 0d739ca669622faa29ef350d66a47979c54e8aaf by falcon
trau2rtp EFR unit test: add patterns with bad CRC

Unlike its FRv1 counterpart, the TRAU frame format for EFR includes
CRC, intended to catch transmission errors in terrestrial circuits.
Add some bad CRC patterns to the unit test for osmo_trau2rtp() EFR.

Change-Id: Iee69b6a1593bdc8d11904a5f2ad46cd0fc6052a9
The file was modifiedtests/trau_conv/trau16_efr_twts001.ok
The file was modifiedtests/trau_conv/trau16_efr_std.ok
The file was modifiedtests/trau_conv/trau16_efr.in