| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I7e66432f37e13fd4c31389e3d89593fa0981e58f
|
|
|
|
| |
Change-Id: I7d6c61e6a1b5d1fae26f385b420ff55246c4b62f
|
|
|
|
| |
Change-Id: I6ca873b3decaf50e7b79b5ab2269919c862a4fe0
|
|
|
|
|
|
|
|
| |
Previously we didn't take into account puncturing and BER was always around
30% for GPRS/EDGE bursts because of they use puncturing coding unlike
"classical" GSM bursts.
Change-Id: I9da22e7051522d06d923fcec3b63cbed8db93910
|
|
|
|
|
|
|
| |
Remark: For libosmogb and libosmogsm, LIBVERSION was
already bumped in c4fce1425e19d604c199c895e227dc2519110456.
Change-Id: Ib4fa53a9bb9954ae48d0a610ba9a81dd8e8b4ef6
|
|
|
|
|
|
|
|
|
|
|
|
| |
For all other decode operations we report the BER, but not for the
RACH. This results in osmo-bts-trx not being able to report BER
to the higher layers, which is possible on other BTS backends.
Let's close this gap by introducing gsm0503_rach_ext_decode_ber()
and gsm0503_rach_decode_ber() with the usual n_errors / n_bits_total
arguments.
Change-Id: I2b1926a37bde860dcfeb0d613eb55a71271928c5
|
|
|
|
|
|
|
|
| |
Since commit e094157e125a70b9a384ba3cec01261624f4eb59, TCH frame
length definitions were added to libosmocodec.
No need to define them again.
Change-Id: Id8c6132534e36ea1e368432bb259fd4f3a531f90
|
|
|
|
| |
Change-Id: I535d4eba5bad9094a1e9e662f32cd2bfac5b0cef
|
|
|
|
|
|
|
|
|
|
| |
As a leftover from code move from OsmoBTS we have eB adjustement outside
of eB check in gsm0503_tch_burst_map() which is rightfully noted by
Coverity. Let's fix this by moving the adjustement under the
corresponding if.
Change-Id: I385cd6ffea4d13ef911910fc87c92b73809888a2
Fixes: CID57691
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for extended RACH (11 bit) according 3GPP TS 45.003 §5.3.2:
* convolutional code with puncturing
* encoding/decoding routines
* corresponding tests
Change-Id: I85a34a82d5cd39a594ee89d91a2338226066ab5d
Related: OS#1548
|
|
|
|
|
|
|
|
| |
Let's fix some erroneous/accidential references to wrong license,
update copyright information where applicable and introduce a
SPDX-License-Identifier to all files.
Change-Id: I39af26c6aaaf5c926966391f6565fc5936be21af
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EFR coding contains some repeated bits. In case there are
transmission errors, some bits may of course get corrupted. It looks
like there's an improvement can be made by taking a majority vote on
those "repetition bits", i.e. if 2 out of 3 bits are the same, then use
that instead of expecting to match all 3 bits.
See 3GPP TS 45.003 Section 3.1.1.3 for reference.
Change-Id: I2a28a4d7fb82aed4d39fe8efeea702effdba3858
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's an error in tch_efr_unreorder() function in gsm0503_coding.c
that results in increased RBER. One of the indices used by repetition
bit recombining in this function doesn't match 3GPP TS 45.003 section
3.1.1.3, specifically "w(k) = s(223) for k = 231 and 232".
This bug resulted in RBER even under ideal conditions, with no
fading or AWGN present.
Change-Id: I153da7bbc1bb3e01ed31eb5a7417e90841cfcde3
|
|
|
|
|
|
|
|
| |
Despite the libosmocoding.map is preset since the library release,
one was not used in a proper way. The LTLDFLAGS were missing, so
let's add them.
Change-Id: Idf677825ff642d50bea43c7f970810783e864fdd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Considering the various styles and implications found in the sources, edit
scores of files to follow the same API doc guidelines around the doxygen
grouping and the \file tag.
Many files now show a short description in the generated API doc that was so
far only available as C comment.
The guidelines and reasoning behind it is documented at
https://osmocom.org/projects/cellular-infrastructure/wiki/Guidelines_for_API_documentation
In some instances, remove file comments and add to the corresponding group
instead, to be shared among several files (e.g. bitvec).
Change-Id: Ifa70e77e90462b5eb2b0457c70fd25275910c72b
|
|
|
|
|
|
|
|
|
|
| |
Especially for short descriptions, it is annoying to have to type \brief for
every single API doc.
Drop all \brief and enable the AUTOBRIEF feature of doxygen, which always takes
the first sentence of an API doc as the brief description.
Change-Id: I11a8a821b065a128108641a2a63fb5a2b1916e87
|
|
|
|
|
|
|
|
|
| |
It's universally useful so it make sense to have it in the shared core:
* move macro from libosmocoding to libosmocore
* add OSMO_ prefix
* add doxygen docs
Change-Id: I5386ba3e1f1cc153ba96c29dc71c9075a052aa02
|
|
|
|
|
|
|
| |
The table describing the various MCS convolutional codes are constant
data and should be marked as such.
Change-Id: I4918521ee4572a67cbee5f9b49257fc5bfcde511
|
|
|
|
|
|
|
| |
The interleaving/deinterleaving functions were missing 'const'
qualifiers on their input data buffers
Change-Id: I2118c34a6353167787b23f877f1d81d60151aaf9
|
|
|
|
|
|
|
| |
This adds the minimum amount of API documentation that we should have on
all our code, particularly new code merged into a library.
Change-Id: I526804f64313867913574e50e5b9e9205ad3aa74
|
|
|
|
|
|
|
|
| |
It is generally our coding style to mark pointers to constant input data
as 'const *'. For some reason the gsm0503 coding and mapping was not
adhering to this, so let's bring it into compliance.
Change-Id: Id8731d7ae6171dff94741b6ddbb95ab5f03bfd4e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously MCS0 was incorrectly set for some of type1 header values
while according to 3GPP TS 44.060 it can only be set for type3. Fix
this:
* use EGPRS_MCS* constants instead of magic values
* do not set MCS0 for reserved bits values in EGPRS header type1
* return different error codes for invalid and unsupported MCS as well
as for other decoding errors
Note: there's no need to adjust tests because MCS0 decoding is not
supported but it's better to explicitly distinguish between unsupported
and invalid values nevertheless.
Change-Id: Id665d5c0cf50efa18b1bcbf4f17359418a380f9e
Related: OS#1524
|
|
|
|
|
|
|
|
|
|
|
| |
In tightly embedded builds (--enable-embedded), we want the ability to
replace talloc with a very simple heap allocator to avoid the complexity
of talloc without modifying all our code that assumes talloc.
This will break the hierarchical notion of the allocator, but
libosmo{core,gsm,coding,codec} don't rely on that anyway.
Change-Id: Ie341034076f242a813f081919dd09d845775ad35
|
|
|
|
|
|
|
|
| |
To allow building coding/gsm0503_interleaving.c which includes the generated
bit*gen.h (via bits.h), add -I to the builddir include path in order to find
the generated bit*gen.h headers there.
Change-Id: I0d465bc109765b1315d615243bea6af027afa368
|
|
|
|
|
|
| |
Matches our general scheme and helps readability of an upcoming patch.
Change-Id: I174086a988b51b6e80f3661609069b69a3d41cc7
|
|
There are some projects, such as GR-GSM and OsmocomBB, which would
benefit from using one shared implementation of GSM 05.03 code. So,
this commit introduces a new sub-library called libosmocoding, which
(for now) provides GSM, GPRS and EDGE transcoding routines, migrated
from OsmoBTS.
The original GSM 05.03 code from OsmoBTS was relicensed under
GPLv2-or-later with permission of copyright holders (Andreas Eversberg,
Alexander Chemeris and Tom Tsou).
The following data types are currently supported:
- xCCH
- PDTCH (CS 1-4 and MCS 1-9)
- TCH/FR
- TCH/HR
- TCH/AFS
- RCH/AHS
- RACH
- SCH
Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1
|