Attention is currently required from: falconia.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 3: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 3
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: Thu, 25 May 2023 20:09:53 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: fixeria.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmocore/+/33004
to look at the new patch set (#2).
Change subject: coding: test FACCH/[FH] bitstealing in test_csd()
......................................................................
coding: test FACCH/[FH] bitstealing in test_csd()
In test_csd() we encode three data frames filled-in with three specific
patterns and then try decoding them. Additionally execute the same set
of tests, but with FACCH/[FH] bitstealing (pattern 0x2b).
As can be seen from the test output, we have problems decoding FACCH:
* FACCH/F: decoding fails (n_errors=0 / n_bits_total=0),
* FACCH/H: decoding with errors (n_errors=2 / n_bits_total=456).
A patch fixing the problem follows.
Change-Id: Idc6decec3b84981d2aab4e27caab9ad65180f945
Related: OS#1572
---
M tests/coding/coding_test.c
M tests/coding/coding_test.ok
2 files changed, 148 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/04/33004/2
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/33004
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Idc6decec3b84981d2aab4e27caab9ad65180f945
Gerrit-Change-Number: 33004
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: pespin.
falconia has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32988 )
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
Patch Set 3:
(2 comments)
File src/common/l1sap.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/6fb30cbf_dd458549
PS2, Line 1891: case PL_DECISION_ACCEPT_ASIS:
> I'd go for PL_DECISION_ACCEPT. Sounds shorter and more familiar to other systems (eg. iptables).
Done
File src/common/rtp_input_preen.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32988/comment/e0e1fda7_1bc49a8e
PS2, Line 37: static bool rtppayload_is_octet_aligned(const uint8_t *rtp_pl, unsigned payload_len)
> Adding it to my mental notes for the next version.
Done
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 3
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: Thu, 25 May 2023 19:15:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: laforge, pespin, dexter.
Hello Jenkins Builder, pespin, dexter,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bts/+/32968
to look at the new patch set (#4).
Change subject: all models, HR1 codec: accept both TS101318 and RFC5993 formats
......................................................................
all models, HR1 codec: accept both TS101318 and RFC5993 formats
There exist two different RTP encoding formats for HR1 codec: one
"simple" format defined in ETSI TS 101 318, and an extended format
(adding a ToC octet) defined in IETF RFC 5993. Following the
liberal-accept clause of Postel's law, we would like to accept
both formats. Implement this feature by first converting all HR1
RTP inputs to the more basic TS 101 318 format at the point of
input preening, and then consistently using this basic format
internally.
Related: OS#5688
Depends: I13eaad366f9f68615b9e9e4a5f87396a0e9dea0f (libosmocore)
Change-Id: I702e26c3ad5b9d8347e73c6cd23efa38a3a3407e
---
M TODO-RELEASE
M src/common/rtp_input_preen.c
2 files changed, 39 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/32968/4
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32968
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I702e26c3ad5b9d8347e73c6cd23efa38a3a3407e
Gerrit-Change-Number: 32968
Gerrit-PatchSet: 4
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newpatchset
Attention is currently required from: falconia.
Hello Jenkins Builder, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bts/+/32988
to look at the new patch set (#3).
Change subject: refactor: replace rtppayload_is_valid() with preening before enqueue
......................................................................
refactor: replace rtppayload_is_valid() with preening before enqueue
Up until now, our approach to validating incoming RTP payloads and
dropping invalid ones has been to apply the preening function inside
l1sap_tch_rts_ind(), at the point of dequeueing from the DL input queue.
However, there are some RTP formats where we need to strip one byte
of header from the payload before passing the rest to our innards:
there is RFC 5993 for HR codec, and there also exists a non-standard
extension (rtp_traulike) that does a similar deal for FR and EFR.
Because of alignment issues, it will be more efficient (avoids memmove)
if we can do this header octet stripping before we copy the payload
into msgb - but doing so requires that we move this preening logic
to the point of RTP input before enqueueing. Make this change.
Related: OS#5688
Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
---
M include/osmo-bts/Makefile.am
A include/osmo-bts/rtp_input_preen.h
M src/common/Makefile.am
M src/common/l1sap.c
A src/common/rtp_input_preen.c
5 files changed, 192 insertions(+), 72 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/88/32988/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32988
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I7fc99aeecba8303b56d397b8952de5eea82b301e
Gerrit-Change-Number: 32988
Gerrit-PatchSet: 3
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-MessageType: newpatchset
Attention is currently required from: laforge, pespin, dexter.
falconia has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32968 )
Change subject: all models, HR1 codec: accept both TS101318 and RFC5993 formats
......................................................................
Patch Set 3:
(1 comment)
File src/common/rtp_input_preen.c:
https://gerrit.osmocom.org/c/osmo-bts/+/32968/comment/03dd81c6_2277301b
PS3, Line 93: return PL_DECISION_STRIP_HDR_OCTET;
> Thanks, I see you have a plan for it then and it's not simply dropped without consideration. […]
When a GSM MS generates a SID frame during DTXu silence, or when a network transcoder configured to prepare a frame stream for DTXd does the same, that 112-bit frame begins its life as a perfect or pristine SID: 79 bits of the SID marker field set to all ones, plus 33 bits of comfort noise parameters. However, per GSM 06.41 (DTX spec for HR) receivers are required to recognize not only such perfect error-free SID frames, but also ones that have been corrupted with some bit errors, classifying them as either valid or invalid SID. A frame classified as valid-SID is used as a source of CN params; if a received frame is classified as invalid SID, no CN params are taken from it, but knowing that it was meant to be SID, the prescribed Rx DTX handler treats it differently from regular BFI conditions (total absence of a frame).
In the classic E1 Abis architecture the BTS performs ternary SID classification (valid SID, invalid SID or non-SID) of received UL frames and sends the resulting classification decision to the TRAU in out-of-band bits, outside the 112-bit frame itself. All 3 TS 101 318 RTP formats (FR, EFR and HR) got rid of TRAU-frame-like out-of-band flag bits, causing pain and misery for those who like the classic architecture and seek to fully recreate it over IP RAN. With FR and EFR the workaround is to have the RTP packet recipient reconstruct SID classification status from the payload using osmo_{fr,efr}_sid_classify() - the computation rules are fixed in the DTX specs for FR and EFR. But the DTX spec for HR differs in that the exact rules for classifying a received radio frame as valid SID, invalid SID or non-SID are left up to BTS implementation - hence we really need to have the UL handler in the BTS make this determination and then propagate it out-of-band.
The ToC octet of RFC 5993 brings back this E1 Abis-originating out-of-band SID indication, albeit with a defect: the official word of this RFC disallows invalid SID frames, only valid SID or non-SID. In the E1 Abis world SID=0 means non-SID speech, SID=1 means invalid SID and SID=2 means valid SID. RFC 5993 defines FT=0 as non-SID speech, FT=2 as SID (implied valid), and leaves FT=1 as reserved. When I reach the point of implementing this functionality (as part of OS#6036, *after* the present patch series has been merged), I am thinking of extending "rtp hr-format" vty option to allow a third state of rfc5993-ext beyond rfc5993 and ts101318; rfc5993-ext will allow sending out "obvious" but non-standard extensions to RFC 5993 such as FT=1 meaning invalid SID.
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32968
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I702e26c3ad5b9d8347e73c6cd23efa38a3a3407e
Gerrit-Change-Number: 32968
Gerrit-PatchSet: 3
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 25 May 2023 18:26:23 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: falconia <falcon(a)freecalypso.org>
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: comment