Attention is currently required from: osmith.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ci/+/39797?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: lint/lint_diff: allow skipping with OSMO_LINT=0
......................................................................
lint/lint_diff: allow skipping with OSMO_LINT=0
When this script is set as pre-commit hook, it can be useful to skip the
linter with this env var to make a commit that intentionally does not
pass the linter (e.g. to test if it will be caught in gerrit + jenkins).
There is also "git commit --no-verify", but with that the hook that
applies the Change-Id does not run.
Change-Id: Ia4563c13d9916a879a1e8afeacad8c541662adaa
---
M lint/lint_diff.sh
1 file changed, 5 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/97/39797/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/39797?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: Ia4563c13d9916a879a1e8afeacad8c541662adaa
Gerrit-Change-Number: 39797
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/39776?usp=email )
Change subject: configure.ac: check for Python interpreter unconditionally
......................................................................
configure.ac: check for Python interpreter unconditionally
Python is required at built-time for auto-generating code.
Change-Id: Ib19c4c4bb2b8dd12805ce470896ec5d82c72b064
Fixes: OS#4885
---
M configure.ac
1 file changed, 4 insertions(+), 1 deletion(-)
Approvals:
pespin: Looks good to me, approved
Jenkins Builder: Verified
osmith: Looks good to me, but someone else must approve
diff --git a/configure.ac b/configure.ac
index 6c7126f..25db55c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -173,6 +173,10 @@
dnl Generate the output
AC_CONFIG_HEADER(config.h)
+dnl Search for a Python interpreter on the system
+dnl python is needed at built-time for auto-generating code
+AM_PATH_PYTHON([3.6])
+
PKG_CHECK_MODULES(TALLOC, [talloc >= 2.1.0])
AC_ARG_ENABLE([uring], [AS_HELP_STRING([--disable-uring], [Build without io_uring support])],
@@ -463,7 +467,6 @@
[Include the VTY/CTRL tests in make check [default=no]]),
[enable_ext_tests="$enableval"],[enable_ext_tests="no"])
if test "x$enable_ext_tests" = "xyes" ; then
- AM_PATH_PYTHON
AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmo_verify_transcript_vty.py,yes)
if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then
AC_MSG_ERROR([Please install https://gitea.osmocom.org/cellular-infrastructure/osmo-python-tests to run the VTY/CTRL tests.])
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/39776?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ib19c4c4bb2b8dd12805ce470896ec5d82c72b064
Gerrit-Change-Number: 39776
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
fixeria has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-pcu/+/39778?usp=email )
Change subject: csn1: Use enum to select enc/dec direction
......................................................................
Patch Set 2: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/39778?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I845bcab61e354436bff1c3a0f2b6f49de9705716
Gerrit-Change-Number: 39778
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Sat, 15 Mar 2025 08:03:30 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/39799?usp=email )
Change subject: trau2rtp HR: update to TW-TS-002 version 1.2.0
......................................................................
trau2rtp HR: update to TW-TS-002 version 1.2.0
osmo_trau2rtp() in HRv1 mode emits either RFC 5993 or TW-TS-002
format, depending on whether or not the latter extended format is
enabled. TW-TS-002 can represent BFIs and invalid SID frames,
in addition to good speech and valid SID in common with RFC 5993.
TW-TS-002 spec has recently been updated to version 1.2.0:
https://www.freecalypso.org/specs/tw-ts-002-v010200.txt
The principal difference is the way invalid SID frames are
represented: in version 1.1.0 all payload bits were stripped
in the case of invalid SID; version 1.2.0 allows these payload
bits to be preserved if they exist. Section 5.4 in the new spec
version provides the detailed rationale for this change.
Change osmo_trau2rtp() operating on HR frames in TW-TS-002 mode
to emit invalid SID frames in the "verbose" form of TW-TS-002
version 1.2.0.
Compatibility considerations: there is no currently released or
deployed software that accepts TW-TS-002 version 1.1.0 but not
version 1.2.0. More specifically:
* osmo_rtp2trau() in TRAU-UL/TFO output mode accepts invalid SID
in both short and long forms since first implementation;
* Themyscira libgsmhr1, the library that accepts TW-TS-002 RTP input
for either full speech decoding or TFO transform, has not yet
reached its first release. The current code in Hg implements
TW-TS-002 version 1.2.0, thus the library will support both short
and long forms of invalid SID upon its upcoming first release.
Change-Id: I497ad7b1f0f7229dc9a50cd3cc318e3dc1394171
---
M src/trau/trau_rtp_conv.c
M tests/trau_conv/trau2rtp_hr_twts002.ok
2 files changed, 7 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/99/39799/1
diff --git a/src/trau/trau_rtp_conv.c b/src/trau/trau_rtp_conv.c
index a36d317..f2e0022 100644
--- a/src/trau/trau_rtp_conv.c
+++ b/src/trau/trau_rtp_conv.c
@@ -294,9 +294,10 @@
if (tf->c_bits[11] && sidc == OSMO_GSM631_SID_CLASS_SPEECH)
out[0] = FT_BFI_WITH_DATA << 4;
twts002_hr16_set_extra_flags(out, tf);
- /* invalid SID frames are truncated in TW-TS-002 */
+ /* Invalid SID handling updated in TW-TS-002 version 1.2.0:
+ * see sections 5.4 and 6.2.3. */
if (sidc == OSMO_GSM631_SID_CLASS_INVALID)
- return 1;
+ out[0] |= 0x04; /* Invalid_SID_Verbose bit */
}
/* TS 101 318 Section 5.2: The order of occurrence of the codec parameters in the buffer is
@@ -398,12 +399,13 @@
/* can be represented only in TW-TS-002, not in RFC 5993 */
if (!emit_twts002)
return 0;
- out[0] = FT_INVALID_SID << 4;
+ out[0] = (FT_INVALID_SID << 4) | 0x04; /* Invalid_SID_Verbose */
twts002_hr8_set_extra_flags(out, tf);
/* XC4 is TAF with this frame type */
if (tf->xc_bits[3])
out[0] |= 0x01;
- return 1; /* short format per TW-TS-002 */
+ osmo_ubit2pbit(out + 1, tf->d_bits, 112);
+ return GSM_HR_BYTES_RTP_RFC5993;
case 6:
case 7:
/* bad speech frame (BFI=1, SID=0) */
diff --git a/tests/trau_conv/trau2rtp_hr_twts002.ok b/tests/trau_conv/trau2rtp_hr_twts002.ok
index db65082..3593eb9 100644
--- a/tests/trau_conv/trau2rtp_hr_twts002.ok
+++ b/tests/trau_conv/trau2rtp_hr_twts002.ok
@@ -7,7 +7,7 @@
00C4FF2305E137DF28F928DD5231EB
00CCFF0580FEB85D20AF485C70CFD0
20025FBB32FFFFFFFFFFFFFFFFFFFF
-10
+140399BCE3FFFFFFFFFFFFDD7FFAFF
70
70
70
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/39799?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I497ad7b1f0f7229dc9a50cd3cc318e3dc1394171
Gerrit-Change-Number: 39799
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
falconia has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/39798?usp=email )
Change subject: TW-TS-* support: pass RTP extensions to MGW
......................................................................
TW-TS-* support: pass RTP extensions to MGW
As of 2025-03-10 (I0d58e6d84418f50670c8ab7cf8490af3bc2f5c26 merge)
OsmoMGW supports an SDP extension that enables the use of TW-TS-001
and TW-TS-002 enhanced RTP formats for FR/EFR and HRv1, respectively;
libosmo-mgcp-client likewise supports a mechanism to request these
extensions. At the present time OsmoMGW rtpbridge endpoints don't
do anything different when these extensions are enabled (they
originate from OsmoBTS in this case), but for E1 Abis endpoints
the new MGCP extension controls whether or not these MGW endpoints
emit the enhanced RTP formats in question.
Changes to OsmoBSC:
1) Allow TW-TS-001 and TW-TS-002 to be enabled on all E1 BTS -
previously not allowed.
2) Whether E1-based or IP-based BTS are used, when RTP extensions
have been enabled by CN request (BSSMAP IE of TW-TS-003),
pass them to the MGW endpoint controlled by this BSC.
The second change makes RTP extensions work on E1 BTS, and also
paves the way for future OsmoMGW rtpbridge improvements where
the MGW might do additional processing that needs to be disabled
when TW-TS-* extensions are in use.
Depends: osmo-mgw.git I0d58e6d84418f50670c8ab7cf8490af3bc2f5c26
Change-Id: Iaa6e4c56313f06b79852c06dcec686f21950e638
---
M TODO-RELEASE
M src/osmo-bsc/assignment_fsm.c
M src/osmo-bsc/lchan_rtp_fsm.c
3 files changed, 38 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/39798/1
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 0ed7189..c6495da 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,3 +7,4 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
+libosmo-mgcp-client bump_dep Depend on I0d58e6d84418f50670c8ab7cf8490af3bc2f5c26
diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c
index 79c4ac7..4c54632 100644
--- a/src/osmo-bsc/assignment_fsm.c
+++ b/src/osmo-bsc/assignment_fsm.c
@@ -541,6 +541,11 @@
* This function checks whether or not we can fulfill that request
* based on BTS capabilities, and sets the bitmask of accepted extensions
* that will be passed on to the BTS via Abis RSL.
+ *
+ * Note that specific BTS features are needed only for IP-based BTS;
+ * for E1 BTS no special support is needed from the BTS itself in order
+ * to enable these RTP extensions, as they are implemented entirely
+ * in the BSC-controlled MGW in this case.
*/
static void handle_rtp_extensions(struct gsm_subscriber_connection *conn,
struct gsm_bts *bts)
@@ -550,11 +555,11 @@
uint8_t accepted_ext = 0;
if ((requested_ext & OSMO_RTP_EXT_TWTS001) &&
- osmo_bts_has_feature(&bts->features, BTS_FEAT_TWTS001))
+ (osmo_bts_has_feature(&bts->features, BTS_FEAT_TWTS001) || is_e1_bts(bts)))
accepted_ext |= OSMO_RTP_EXT_TWTS001;
if ((requested_ext & OSMO_RTP_EXT_TWTS002) &&
- osmo_bts_has_feature(&bts->features, BTS_FEAT_TWTS002))
+ (osmo_bts_has_feature(&bts->features, BTS_FEAT_TWTS002) || is_e1_bts(bts)))
accepted_ext |= OSMO_RTP_EXT_TWTS002;
conn->user_plane.rtp_extensions = accepted_ext;
diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c
index e8384c6..559a30b 100644
--- a/src/osmo-bsc/lchan_rtp_fsm.c
+++ b/src/osmo-bsc/lchan_rtp_fsm.c
@@ -21,6 +21,7 @@
*/
#include <osmocom/core/fsm.h>
+#include <osmocom/gsm/rtp_extensions.h>
#include <osmocom/netif/rtp.h>
#include <osmocom/mgcp_client/mgcp_client_endpoint_fsm.h>
@@ -954,6 +955,35 @@
else if (!bss_side && verb_info->codecs[0] == CODEC_AMR_8000_1) {
verb_info->param.amr_octet_aligned = lchan->conn->sccp.msc->amr_octet_aligned;
}
+
+ /* If the CN has requested RTP payload format extensions (change from
+ * RFC 3551 to TW-TS-001 for FR/EFR, or from RFC 5993 to TW-TS-002
+ * for HRv1) via BSSMAP IE of TW-TS-003, we need to pass this request
+ * to the MGW. With E1 BTS our MGW is the origin of the RTP stream
+ * and thus the party responsible for payload format choices; with
+ * IP BTS our MGW is merely a forwarder and thus can get by without
+ * this detailed knowledge, but it doesn't hurt to inform the MGW
+ * in all cases.
+ *
+ * Note that the following code does not perform conditional checks
+ * of whether the selected codec is FR/EFR for TW-TS-001 or HRv1
+ * for TW-TS-002, but instead checks only the extension mode bits.
+ * This simplification is allowed by libosmo-mgcp-client API:
+ * struct mgcp_codec_param has dedicated fields for fr_efr_twts001
+ * and hr_twts002 parameters, and the code in libosmo-mgcp-client
+ * then emits the corresponding a=fmtp lines only when the SDP
+ * includes those codecs to which these attributes apply.
+ */
+ if (lchan->conn->user_plane.rtp_extensions & OSMO_RTP_EXT_TWTS001) {
+ verb_info->param_present = true;
+ verb_info->param.fr_efr_twts001_present = true;
+ verb_info->param.fr_efr_twts001 = true;
+ }
+ if (lchan->conn->user_plane.rtp_extensions & OSMO_RTP_EXT_TWTS002) {
+ verb_info->param_present = true;
+ verb_info->param.hr_twts002_present = true;
+ verb_info->param.hr_twts002 = true;
+ }
}
bool mgcp_codec_is_picked(const struct mgcp_conn_peer *verb_info, enum mgcp_codecs codec)
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/39798?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Iaa6e4c56313f06b79852c06dcec686f21950e638
Gerrit-Change-Number: 39798
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>