falconia has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/39751?usp=email )
Change subject: E1: implement dummy fill for HRv1 codec
......................................................................
E1: implement dummy fill for HRv1 codec
In the absence of a proper TFO transform (TS 28.062 section
C3.2.1.1), OsmoMGW-E1 inserts constant fill frames when there is
no RTP input, or when RTP input fails conversion to TRAU-DL and
thus does not enqueue anything to the I.460 mux.
This dummy fill was previously implemented for FR and EFR codecs,
but not for HRv1. Fix this omission.
With this change and with a fix to OsmoBSC to select 8k subslot
endpoints for TCH/H instead of 16k, OsmoMGW-E1 now supports HR
codec to the same degree to which it supports FR and EFR: far from
perfect, but mostly usable, especially if DTXu is disabled
and there is no TrFO interworking with a far end that does DTXu.
Change-Id: I188bc0a0468b19126281016f45e36f1de617e9ee
---
M src/libosmo-mgcp/mgcp_e1.c
1 file changed, 5 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
diff --git a/src/libosmo-mgcp/mgcp_e1.c b/src/libosmo-mgcp/mgcp_e1.c
index 0e42e62..dc0acca 100644
--- a/src/libosmo-mgcp/mgcp_e1.c
+++ b/src/libosmo-mgcp/mgcp_e1.c
@@ -82,6 +82,11 @@
dummy_fill_pl = osmo_gsm660_homing_frame;
dummy_fill_pl_len = GSM_EFR_BYTES;
break;
+ case OSMO_TRAU16_FT_HR:
+ case OSMO_TRAU8_SPEECH:
+ dummy_fill_pl = osmo_gsm620_silence_frame;
+ dummy_fill_pl_len = GSM_HR_BYTES;
+ break;
default:
LOGPENDP(endp, DE1, LOGL_ERROR, "E1-I.460-IDLE-TX: unsupported frame type\n");
goto skip;
--
To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/39751?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-mgw
Gerrit-Branch: master
Gerrit-Change-Id: I188bc0a0468b19126281016f45e36f1de617e9ee
Gerrit-Change-Number: 39751
Gerrit-PatchSet: 6
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: falconia.
laforge has posted comments on this change by falconia. ( https://gerrit.osmocom.org/c/osmo-bsc/+/39752?usp=email )
Change subject: E1 BTS: direct MGW to 8k subslots for TCH/H
......................................................................
Patch Set 1: Code-Review+1
(1 comment)
Patchset:
PS1:
i'm also not aware of any 16k TCH/H using BTSs, at least not consciously. I just thought it would be simpler to support from our code than to deal with 8k TRAU... back at a point where
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/39752?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: If6141a55434ce08f8fdd1c69b6fc9a97d6c726a7
Gerrit-Change-Number: 39752
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: falconia <falcon(a)freecalypso.org>
Gerrit-Comment-Date: Mon, 10 Mar 2025 19:15:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Attention is currently required from: lynxis lazus.
laforge has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/39563?usp=email )
Change subject: Add Gn support to allow MME->SGSN, SGSN->MME cell reselection
......................................................................
Patch Set 6:
(12 comments)
Patchset:
PS6:
overall my gut feeling is that there's way too much open-coded pointer arithmetic and manual buffer/length/index handling for my taste. If we cannot use msgb for some reason (it has stuff like msgb_may_pull, msgb_tailroom, ...), then maybe there's some other/better helpers we can develop for this use case?
File src/sgsn/gprs_gmm.c:
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/b83b3465_d5fbbdee?us… :
PS6, Line 1488: static int get_guti(struct msgb *msg, struct gprs_gmm_ra_upd_req *req, uint32_t ptmsi, struct osmo_guti *guti, uint16_t *nas_token)
I would usually assume that the first argument is the non-const output, followed by const arguments for input-only data. Here, I guess 'req' can be const. But then it seems nas_token is also an output argument.. so the function not only gets guti but also nas_token? And msg is not used at all?
I guess this needs some thought about naming, unused arguments and const input data.
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/c1721823_4e2bd641?us… :
PS6, Line 1628: LOGP(DGPRS, LOGL_ERROR, "Can't decode guti\n");
LOGIUP at least, so we get some context? Possibly even the entire input data so that we have a chane of figuring out why this happens if we ever see the error?
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/36d37e70_19e60e6c?us… :
PS6, Line 1635: LOGP(DGPRS, LOGL_ERROR, "No MME found for Gummei %s", osmo_gummei_name(&guti.gummei));
Existing code above uses LOGIUP, so for consstency also add that?
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/36d1fbf9_323ca7f7?us… :
PS6, Line 2625: /* FIXME: reject with impl. */
maybe at least log an error if this ever happens and we know we should be doing something?
File src/sgsn/gprs_rau_fsm.c:
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/e459dd21_61b24d7d?us… :
PS6, Line 211: /* FIXME */
this is the fourth fixme in less than 20 lines of code... are we sure this is ready yet?
File src/sgsn/sgsn_libgtp.c:
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/c381fd58_13bcd666?us… :
PS6, Line 923: // CKSN
let's stick to C style comments, laso below.
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/4009c195_63479ac3?us… :
PS6, Line 1002: MEMCPY_CHK(ptr, &mmctx->drx_parms, sizeof(mmctx->drx_parms));
all of this custom working with a pointer and bounds checking makes me wonder why the code is not using a msgb here? doesn't have to be the actual overall signaling message msgb, but just a local buffer?
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/31ff63cc_ff275571?us… :
PS6, Line 1051: //GTP_LOGPKG(LOGL_ERROR, peer, pack, len,
looks like left-over / cleanup needed?
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/dc3030a8_5b7d50e7?us… :
PS6, Line 1119: // resp_it++;
likewise, leftover/cleanup/bug?
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/0e47ab01_41393e1f?us… :
PS6, Line 1151: static int validate_quintlets(uint8_t *buf, unsigned int buf_len)
are there really quintlets in 3GPP somewhere? I'm familiar with quintets or quintuplets so far.
https://gerrit.osmocom.org/c/osmo-sgsn/+/39563/comment/d7c70b80_64fb3cc6?us… :
PS6, Line 1328: quintlets
quintuplets?
--
To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/39563?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-sgsn
Gerrit-Branch: master
Gerrit-Change-Id: Iffe83b31db2b6e6869fedf2351375184096cff6f
Gerrit-Change-Number: 39563
Gerrit-PatchSet: 6
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu>
Gerrit-Comment-Date: Mon, 10 Mar 2025 19:12:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/39670?usp=email )
Change subject: filesystem: do not decode short TransRecEF records
......................................................................
filesystem: do not decode short TransRecEF records
A TransRecEF is based on a TransparentEF. This means that a TransRecEF
is basically normal TransparentEF that holds a record oriented data
structure. This also requires that the total length of the TransRecEF
is a multiple of the record length of the data structure that is stored
in it. When this is not the case, the last record will be cut short and
the decoding will fail. We should guard against this case.
Related: OS#6598
Change-Id: Ib1dc4d7ce306f1f0b080bb4b6abc36e72431d3fa
---
M pySim/filesystem.py
1 file changed, 12 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
fixeria: Looks good to me, but someone else must approve
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 246afb0..7f350ec 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -1224,6 +1224,13 @@
Returns:
abstract_data; dict representing the decoded data
"""
+
+ # The record data length should always be equal or at least greater than the record length defined for the
+ # TransRecEF. Short records may be occur when the length of the underlying TransparentEF is not a multiple
+ # of the TransRecEF record length.
+ if len(raw_hex_data) // 2 < self.__get_rec_len():
+ return {'raw': raw_hex_data}
+
method = getattr(self, '_decode_record_hex', None)
if callable(method):
return method(raw_hex_data)
@@ -1251,6 +1258,11 @@
Returns:
abstract_data; dict representing the decoded data
"""
+
+ # See comment in decode_record_hex (above)
+ if len(raw_bin_data) < self.__get_rec_len():
+ return {'raw': b2h(raw_bin_data)}
+
method = getattr(self, '_decode_record_bin', None)
if callable(method):
return method(raw_bin_data)
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39670?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ib1dc4d7ce306f1f0b080bb4b6abc36e72431d3fa
Gerrit-Change-Number: 39670
Gerrit-PatchSet: 4
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Attention is currently required from: dexter.
laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/39670?usp=email )
Change subject: filesystem: do not decode short TransRecEF records
......................................................................
Patch Set 3: Code-Review+2
(1 comment)
File pySim/filesystem.py:
https://gerrit.osmocom.org/c/pysim/+/39670/comment/2f843a43_beccc0bd?usp=em… :
PS3, Line 1231: if len(raw_hex_data) // 2 < self.__get_rec_len():
> I think I don't get what you mean by that. The too-short trailer is output as raw data (e.g. […]
Done
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/39670?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ib1dc4d7ce306f1f0b080bb4b6abc36e72431d3fa
Gerrit-Change-Number: 39670
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 10 Mar 2025 18:59:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Comment-In-Reply-To: dexter <pmaier(a)sysmocom.de>