Attention is currently required from: falconia.
pespin has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email )
Change subject: FR/HR/EFR: implement SID filter in TCH UL path
......................................................................
Patch Set 2: Code-Review+1
(1 comment)
File include/osmo-bts/lchan.h:
https://gerrit.osmocom.org/c/osmo-bts/+/41049/comment/5b5b7750_73989065?usp… :
PS1, Line 295: /* UL SID filter to catch DTXu half-blocks */
> I put the wiki article link in the code function, rather than the struct definition, to avoid excess […]
Fine with me.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I46c62312316b04567bcadf6050597673f071247d
Gerrit-Change-Number: 41049
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Comment-Date: Fri, 05 Sep 2025 19:52:12 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email )
Change subject: FR/HR/EFR: implement SID filter in TCH UL path
......................................................................
Patch Set 2:
(1 comment)
File include/osmo-bts/lchan.h:
https://gerrit.osmocom.org/c/osmo-bts/+/41049/comment/4ebc916f_1bbfe3c3?usp… :
PS1, Line 295: /* UL SID filter to catch DTXu half-blocks */
> Maybe add link reference https://osmocom. […]
I put the wiki article link in the code function, rather than the struct definition, to avoid excessive line length. Is it OK with you?
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I46c62312316b04567bcadf6050597673f071247d
Gerrit-Change-Number: 41049
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 19:48:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/41048?usp=email )
Change subject: FR/HR/EFR: centralize TCH UL SID classification
......................................................................
Patch Set 2:
(2 comments)
File include/osmo-bts/msg_utils.h:
https://gerrit.osmocom.org/c/osmo-bts/+/41048/comment/ecd67c4d_79103d3c?usp… :
PS1, Line 25: * Additionally for HRv1 codec, we use a control buffer word to pass
> IMHO once you improve de comment framing (see first patch); this show go immediatelly above each fie […]
Done
File src/common/l1sap.c:
https://gerrit.osmocom.org/c/osmo-bts/+/41048/comment/345dd303_290c4afd?usp… :
PS1, Line 2349: tch_ul_msg_sid(msg) = sidc;
> I wonder whether this msg field should be called "hr_sid" instead of "sid".
Done
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41048?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Id6c8c146962de2f173760889eb232693bb4229d3
Gerrit-Change-Number: 41048
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 19:45:43 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: dexter, fixeria, pespin.
falconia has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bts/+/41047?usp=email )
Change subject: TCH UL path: add out-of-band BFI flag
......................................................................
Patch Set 2:
(3 comments)
File include/osmo-bts/msg_utils.h:
https://gerrit.osmocom.org/c/osmo-bts/+/41047/comment/b9a2ef54_06bd1b62?usp… :
PS1, Line 27: /* Accessor macros for control buffer words in RTP input path */
> Can you add a a bit more framing to clearly separate the 2 groups of cb fields? […]
Done
https://gerrit.osmocom.org/c/osmo-bts/+/41047/comment/d304aa5a_7737c70d?usp… :
PS1, Line 39: #define tch_ul_msg_bfi(x) ((x)->cb[0])
> I wonder whether this is a boolean, a flag, or an integer.
New patch includes clarifying comments.
File src/common/l1sap.c:
https://gerrit.osmocom.org/c/osmo-bts/+/41047/comment/8082f7f1_20d15c96?usp… :
PS1, Line 2229: teh = 0xE0 | (tch_ul_msg_bfi(msg) << 1);
> and this kind of operation together with "I wonder whether this is a boolean, a flag, or an integer. […]
Done
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41047?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I8097946429e83eae90f89e49d17ffb8eb0636fcb
Gerrit-Change-Number: 41047
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 19:44:54 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: dexter, falconia, fixeria.
Hello Jenkins Builder, dexter, fixeria,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bts/+/41047?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
Change subject: TCH UL path: add out-of-band BFI flag
......................................................................
TCH UL path: add out-of-band BFI flag
In original OsmoBTS architecture prior to Themyscira patches,
BFI (Bad Frame Indication) condition was signaled internally by
zero-length payload passed from BTS model to l1sap, and externally
by absence of RTP output (intentional gap) or a zero-length RTP
payload emitted in 'rtp continuous-streaming' mode. However, this
paradigm is contrary to classic GSM BSS architecture in which BFI
is an out-of-band metadata flag that travels alongside with frame
payload bits, whether the latter are valid or invalid.
Since 2024 OsmoBTS supports the option of TW-TS-001 output for
FR and EFR codecs, which allows the possibility of BFI-with-data
in RTP. OsmoBTS can already emit such BFI-with-data packets when
the BTS model delivered a deemed-good traffic frame, but that frame
was subsequently deemed bad by the link quality check in l1sap -
but there is still no explicit out-of-band BFI flag inside OsmoBTS
TCH UL path.
By introducing an out-of-band BFI flag, we make it possible for BTS
model PHYs to deliver marked-bad traffic frames: when CRC fails
in GSM 05.03 channel decoding step, a PHY that permits modification
(libosmocoding or future FOSS DSP PHY) can be enhanced to preserve
channel-decoded bits while conveying BFI.
The link quality check in l1sap is reworked to use the new OOB BFI
flag. Follow-on patches will introduce further logic that can also
assert BFI at high level, above BTS model PHYs.
While reworking the link quality check in l1sap, restrict it to
speech modes only: per GSM specs, BFI does not exist in CSD.
Change-Id: I8097946429e83eae90f89e49d17ffb8eb0636fcb
---
M include/osmo-bts/msg_utils.h
M src/common/l1sap.c
2 files changed, 58 insertions(+), 21 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/41047/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41047?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I8097946429e83eae90f89e49d17ffb8eb0636fcb
Gerrit-Change-Number: 41047
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Attention is currently required from: falconia.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bts/+/41048?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
Change subject: FR/HR/EFR: centralize TCH UL SID classification
......................................................................
FR/HR/EFR: centralize TCH UL SID classification
In any environment where GSM MS may exercise DTXu on TCH/FS, TCH/HS or
TCH/EFS, the BTS receiving this TCH UL has to classify each received
traffic frame as valid SID, invalid SID or non-SID speech. For E1 BTS
this SID classification requirement is explicit as there are dedicated
bits in TRAU-UL frames carrying the SID code. For an IP BTS the need
for this classification is less obvious as most RTP payload formats
omit SID indicator bits - however:
* For HR codec, RTP output in RFC 5993 and TW-TS-002 formats does
include explicit SID classification;
* Also for HR output in both TS 101 318 and RFC 5993 formats
(but not TW-TS-002), SID classification must be considered in order
to turn valid SID with some bit errors into perfect SID codeword;
* OsmoBTS already had logic for all 3 of FR/HR/EFR whereby if a frame
is received that is an accepted SID frame in GSM 06.31/06.41/06.81
definition, a flag is set so that the next good speech frame will
be emitted in RTP with marker bit set. This logic implies SID
classification in TCH UL path.
Prior to this patch, OsmoBTS performed limited, non-consolidated
SID classification:
* For FR and EFR, the only SID classification in TCH UL path was done
for RTP marker purposes by way of osmo_{fr,efr}_is_any_sid() Boolean
result fed to lchan_set_marker();
* For the same RTP marker logic with HR codec, only perfect, error-free
SID frames were detected;
* The same limitation applied to SID classification for RFC 5993 output.
Centralize this SID classification by moving it from BTS model to common
l1sap code and unifying it across all 3 codecs. Immediate functional
effects from this change are:
* On TCH/HS we now detect imperfect (partially corrupted) SID frames
and classify them as valid or invalid SID as intended by ETSI,
like we already did for TCH/FS and TCH/EFS;
* When emitting TS 101 318 or RFC 5993, we apply the inherent limitations
of those RTP formats to valid and invalid SID;
* With all 3 codecs, the check for a good speech frame as exit criterion
from DTXu state now happens after the link quality check in l1sap,
rather than before.
AMR speech mode is not affected at all by these changes: AMR DTX model
is completely different from that of FR/HR/EFR.
Related: OS#6036
Change-Id: Id6c8c146962de2f173760889eb232693bb4229d3
---
M include/osmo-bts/msg_utils.h
M src/common/l1sap.c
M src/osmo-bts-lc15/tch.c
M src/osmo-bts-oc2g/tch.c
M src/osmo-bts-sysmo/tch.c
M src/osmo-bts-trx/sched_lchan_tchf.c
M src/osmo-bts-trx/sched_lchan_tchh.c
7 files changed, 131 insertions(+), 50 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/48/41048/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41048?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Id6c8c146962de2f173760889eb232693bb4229d3
Gerrit-Change-Number: 41048
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Attention is currently required from: falconia, pespin.
Hello Jenkins Builder, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by pespin, Verified+1 by Jenkins Builder
Change subject: FR/HR/EFR: implement SID filter in TCH UL path
......................................................................
FR/HR/EFR: implement SID filter in TCH UL path
As a result of how FR/HR/EFR DTX interacts with block diagonal
interleaving, at the beginning and end of each DTX pause a
correctly functioning TCH receiver will always pick up an
artifact consisting of 4 received bursts (2 for TCH/HS)
and same number of omitted bursts. Standard channel decoding
of this Rx artifact will produce a "half-block" in which half
of the bits prior to convolutional decoding will come from
a SID repetition whose Tx was notionally suppressed, while
the other half will be garbage. As a result of convolutional
decoding, the result will often appear as valid SID per
classification rules - but passing it as such to the Rx DTX
handler is wrong. Classic E1 BTS and GSM MS implementations
include a kind of SID filter at this point, setting BFI on
these received half-blocks, so that the Rx DTX handler will
see an invalid SID condition. Invalid SID means that comfort
noise generation is to be continued, but no updated CN
parameters are available - which is the truth in half-block
Rx situations. Implement the same filter.
Additional background info can be found here:
https://osmocom.org/projects/retro-gsm/wiki/DTXu_half-blocks
Change-Id: I46c62312316b04567bcadf6050597673f071247d
---
M include/osmo-bts/lchan.h
M src/common/l1sap.c
2 files changed, 58 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/49/41049/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41049?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I46c62312316b04567bcadf6050597673f071247d
Gerrit-Change-Number: 41049
Gerrit-PatchSet: 2
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>