Attention is currently required from: daniel, fixeria.
osmith has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/41051?usp=email )
Change subject: debian: do not install osmo-ctrl2cgi.service
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/41051?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: python/osmo-python-tests
Gerrit-Branch: master
Gerrit-Change-Id: I6250f92d12774c69a8647b8cd26d0aa715646724
Gerrit-Change-Number: 41051
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: daniel <dwillmann(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 12:31:59 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Attention is currently required from: fixeria.
pespin has posted comments on this change by fixeria. ( https://gerrit.osmocom.org/c/python/osmo-python-tests/+/41052?usp=email )
Change subject: debian: python3-osmopy-utils does not need python3-treq
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/python/osmo-python-tests/+/41052?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: python/osmo-python-tests
Gerrit-Branch: master
Gerrit-Change-Id: I8a36109de244efaaa40bf5ac309bd5061cf0596d
Gerrit-Change-Number: 41052
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 05 Sep 2025 12:31:37 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/41038?usp=email )
Change subject: gsm48_cc_tx_setup_set_transaction_id: split out
......................................................................
gsm48_cc_tx_setup_set_transaction_id: split out
Move the code for setting the transaction ID to a separate function to
start making gsm48_cc_tx_setup shorter and easier to read. Return -1 on
error instead of rc from mncc_release_ind() as it returns 0 on success.
Make some tweaks while at it:
* Set LOGL_ERROR for the "TX Setup with assigned transaction" error.
* Add a log message for the "could not get a free transaction ID" case.
* Minor formatting tweaks.
Change-Id: I715f12d09570211a98b667c56960309bd326e8d8
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 32 insertions(+), 23 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index b82c018..3a78b6d 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -836,37 +836,46 @@
msc_a_tx_assignment_cmd(trans->msc_a);
}
+static int gsm48_cc_tx_setup_set_transaction_id(struct gsm_trans *trans)
+{
+ int id;
+
+ /* Transaction ID must not be assigned */
+ if (trans->transaction_id != TRANS_ID_UNASSIGNED) {
+ LOG_TRANS(trans, LOGL_ERROR, "TX Setup with assigned transaction. This is not allowed!\n");
+ mncc_release_ind(trans->net, trans, trans->callref,
+ GSM48_CAUSE_LOC_PRN_S_LU,
+ GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
+ trans->callref = 0;
+ return -1;
+ }
+
+ /* Get free transaction ID */
+ id = trans_assign_trans_id(trans->net, trans->vsub, TRANS_CC);
+ if (id < 0) {
+ LOG_TRANS(trans, LOGL_ERROR, "TX Setup: could not get a free transaction ID!\n");
+ mncc_release_ind(trans->net, trans, trans->callref,
+ GSM48_CAUSE_LOC_PRN_S_LU,
+ GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
+ trans->callref = 0;
+ return -1;
+ }
+
+ trans->transaction_id = id;
+ return 0;
+}
+
static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
{
struct msgb *msg;
struct gsm48_hdr *gh;
struct gsm_mncc *setup = arg;
- int rc, trans_id;
+ int rc;
struct gsm_mncc_bearer_cap bearer_cap;
- /* transaction id must not be assigned */
- if (trans->transaction_id != TRANS_ID_UNASSIGNED) {
- LOG_TRANS(trans, LOGL_DEBUG, "TX Setup with assigned transaction. "
- "This is not allowed!\n");
- /* Temporarily out of order */
- rc = mncc_release_ind(trans->net, trans, trans->callref,
- GSM48_CAUSE_LOC_PRN_S_LU,
- GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
- trans->callref = 0;
+ rc = gsm48_cc_tx_setup_set_transaction_id(trans);
+ if (rc < 0)
goto error;
- }
-
- /* Get free transaction_id */
- trans_id = trans_assign_trans_id(trans->net, trans->vsub, TRANS_CC);
- if (trans_id < 0) {
- /* no free transaction ID */
- rc = mncc_release_ind(trans->net, trans, trans->callref,
- GSM48_CAUSE_LOC_PRN_S_LU,
- GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
- trans->callref = 0;
- goto error;
- }
- trans->transaction_id = trans_id;
gsm48_start_cc_timer(trans, 0x303, GSM48_T303);
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/41038?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I715f12d09570211a98b667c56960309bd326e8d8
Gerrit-Change-Number: 41038
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/41039?usp=email )
Change subject: gsm48_cc_tx_setup_select_codecs: split out
......................................................................
gsm48_cc_tx_setup_select_codecs: split out
Change-Id: Ic502f9ed77ea57de4cf6d362c0e7070d9147d6f3
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 34 insertions(+), 22 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 93b4995..abf604f 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -865,34 +865,22 @@
return 0;
}
-static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
+/* MT call leg is starting. Gather all codecs information so far known.
+ * (Usually) paging has succeeded, and now we're processing the MNCC Setup from
+ * the remote MO call leg. Initialize the codecs filter with this side's BSS'
+ * codec list, received at Complete Layer 3. We haven't received the MT MS's
+ * Bearer Capabilities yet; the Bearer Capabilities handled here are actually
+ * the remote call leg's Bearer Capabilities. */
+static int gsm48_cc_tx_setup_select_codecs(struct gsm_trans *trans, const struct gsm_mncc *setup)
{
- struct msgb *msg;
- struct gsm48_hdr *gh;
- struct gsm_mncc *setup = arg;
- int rc;
- struct gsm_mncc_bearer_cap bearer_cap;
-
- rc = gsm48_cc_tx_setup_set_transaction_id(trans);
- if (rc < 0)
- goto error;
-
- gsm48_start_cc_timer(trans, 0x303, GSM48_T303);
-
- /* MT call leg is starting. Gather all codecs information so far known.
- * (Usually) paging has succeeded, and now we're processing the MNCC Setup from the remote MO call leg.
- * Initialize the codecs filter with this side's BSS' codec list, received at Complete Layer 3.
- * We haven't received the MT MS's Bearer Capabilities yet; the Bearer Capabilities handled here are
- * actually the remote call leg's Bearer Capabilities. */
trans_cc_filter_init(trans);
trans_cc_filter_set_ran(trans, trans->msc_a->c.ran->type);
trans_cc_filter_set_bss(trans, trans->msc_a);
- if (setup->fields & MNCC_F_BEARER_CAP)
- trans->bearer_cap.transfer = setup->bearer_cap.transfer;
switch (trans->bearer_cap.transfer) {
case GSM48_BCAP_ITCAP_SPEECH:
- /* if SDP is included in the MNCC, take that as definitive list of remote audio codecs. */
+ /* if SDP is included in the MNCC, take that as definitive list
+ * of remote audio codecs. */
rx_mncc_sdp(trans, setup->msg_type, setup->sdp,
(setup->fields & MNCC_F_BEARER_CAP) ? &setup->bearer_cap : NULL);
/* rx_mncc_sdp() has called trans_cc_filter_run(trans); */
@@ -915,9 +903,33 @@
default:
LOG_TRANS(trans, LOGL_ERROR, "Handling of information transfer capability %d not implemented\n",
trans->bearer_cap.transfer);
- break;
+ return -1;
}
+ return 0;
+}
+
+static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
+{
+ struct msgb *msg;
+ struct gsm48_hdr *gh;
+ struct gsm_mncc *setup = arg;
+ int rc;
+ struct gsm_mncc_bearer_cap bearer_cap;
+
+ rc = gsm48_cc_tx_setup_set_transaction_id(trans);
+ if (rc < 0)
+ goto error;
+
+ gsm48_start_cc_timer(trans, 0x303, GSM48_T303);
+
+ if (setup->fields & MNCC_F_BEARER_CAP)
+ trans->bearer_cap.transfer = setup->bearer_cap.transfer;
+
+ rc = gsm48_cc_tx_setup_select_codecs(trans, setup);
+ if (rc < 0)
+ goto error;
+
/* Compose Bearer Capability information that reflects only the codecs (Speech Versions) / CSD bearer services
* remaining after intersecting MS, BSS and remote call leg restrictions. To store in trans for later use, and
* to include in the outgoing CC Setup message. */
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/41039?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ic502f9ed77ea57de4cf6d362c0e7070d9147d6f3
Gerrit-Change-Number: 41039
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/41042?usp=email )
Change subject: gsm48_cc_tx_setup: remove extra bearer_cap var
......................................................................
gsm48_cc_tx_setup: remove extra bearer_cap var
Store the bearer capabilities directly in the transaction, instead of
storing them in a separate variable first, then copying it to the
transaction, then using both the separate variable and the copy in the
transaction later on. The extra variable is not needed and only makes it
more compilicated.
Add an explicit '.transfer = GSM48_BCAP_ITCAP_SPEECH,' while at it in
the speech case. This was already set implicitly because
GSM48_BCAP_ITCAP_SPEECH is 0.
Change-Id: I247ef10923c2875ca75e73046f4b8ed14190d4d2
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 11 insertions(+), 16 deletions(-)
Approvals:
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 41376c9..3968fbe 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -913,18 +913,18 @@
* Versions) / CSD bearer services remaining after intersecting MS, BSS and
* remote call leg restrictions. To store in trans for later use, and to
* include in the outgoing CC Setup message. */
-static int gsm48_cc_tx_setup_set_bearer_cap(struct gsm_trans *trans, struct gsm_mncc_bearer_cap *bearer_cap,
- const struct gsm_mncc *setup)
+static int gsm48_cc_tx_setup_set_bearer_cap(struct gsm_trans *trans, const struct gsm_mncc *setup)
{
int rc;
switch (trans->bearer_cap.transfer) {
case GSM48_BCAP_ITCAP_SPEECH:
- *bearer_cap = (struct gsm_mncc_bearer_cap){
+ trans->bearer_cap = (struct gsm_mncc_bearer_cap){
+ .transfer = GSM48_BCAP_ITCAP_SPEECH,
.speech_ver = { -1 },
};
- sdp_audio_codecs_to_bearer_cap(bearer_cap, &trans->cc.local.audio_codecs);
- rc = bearer_cap_set_radio(bearer_cap);
+ sdp_audio_codecs_to_bearer_cap(&trans->bearer_cap, &trans->cc.local.audio_codecs);
+ rc = bearer_cap_set_radio(&trans->bearer_cap);
if (rc) {
LOG_TRANS(trans, LOGL_ERROR, "Error composing Bearer Capability for CC Setup\n");
return -1;
@@ -934,7 +934,7 @@
* transcode, we could use non-identical codecs on each conn of
* the MGW endpoint, but we are aiming for finding a matching
* codec. */
- if (bearer_cap->speech_ver[0] == -1) {
+ if (trans->bearer_cap.speech_ver[0] == -1) {
LOG_TRANS(trans, LOGL_ERROR, "%s: no codec match possible: %s\n",
get_mncc_name(setup->msg_type),
codec_filter_to_str(&trans->cc.codecs, &trans->cc.local, &trans->cc.remote));
@@ -946,7 +946,7 @@
trans->callref = 0;
return -1;
}
- rc = bearer_cap_filter_rev_lev(bearer_cap, trans->vsub->classmark.classmark1.rev_lev);
+ rc = bearer_cap_filter_rev_lev(&trans->bearer_cap, trans->vsub->classmark.classmark1.rev_lev);
if (rc) {
LOG_TRANS(trans, LOGL_ERROR, "No codec offered is supported by phase 1 mobile.\n");
return -1;
@@ -955,14 +955,14 @@
case GSM48_BCAP_ITCAP_3k1_AUDIO:
case GSM48_BCAP_ITCAP_FAX_G3:
case GSM48_BCAP_ITCAP_UNR_DIG_INF:
- *bearer_cap = (struct gsm_mncc_bearer_cap){
+ trans->bearer_cap = (struct gsm_mncc_bearer_cap){
.transfer = trans->bearer_cap.transfer,
.mode = GSM48_BCAP_TMOD_CIRCUIT,
.coding = GSM48_BCAP_CODING_GSM_STD,
.radio = GSM48_BCAP_RRQ_FR_ONLY,
};
- if (csd_bs_list_to_bearer_cap(bearer_cap, &trans->cc.local.bearer_services) == 0) {
+ if (csd_bs_list_to_bearer_cap(&trans->bearer_cap, &trans->cc.local.bearer_services) == 0) {
LOG_TRANS(trans, LOGL_ERROR, "Error composing Bearer Capability for CC Setup\n");
/* incompatible codecs */
@@ -975,10 +975,6 @@
break;
}
- /* Create a copy of the bearer capability in the transaction struct, so
- * we can use this information later */
- trans->bearer_cap = *bearer_cap;
-
return 0;
}
@@ -1028,7 +1024,6 @@
struct msgb *msg;
struct gsm_mncc *setup = arg;
int rc;
- struct gsm_mncc_bearer_cap bearer_cap;
rc = gsm48_cc_tx_setup_set_transaction_id(trans);
if (rc < 0)
@@ -1043,11 +1038,11 @@
if (rc < 0)
goto error;
- rc = gsm48_cc_tx_setup_set_bearer_cap(trans, &bearer_cap, setup);
+ rc = gsm48_cc_tx_setup_set_bearer_cap(trans, setup);
if (rc < 0)
goto error;
- msg = gsm48_cc_tx_setup_encode_msg(&bearer_cap, setup);
+ msg = gsm48_cc_tx_setup_encode_msg(&trans->bearer_cap, setup);
new_cc_state(trans, GSM_CSTATE_CALL_PRESENT);
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/41042?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I247ef10923c2875ca75e73046f4b8ed14190d4d2
Gerrit-Change-Number: 41042
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: fixeria, osmith.
Hello Jenkins Builder, fixeria, pespin,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmocore/+/41056?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Code-Review+1 by fixeria, Verified+1 by Jenkins Builder
Change subject: gsm_04_08: add GSM48_BCAP_RRQ_SPARE_NETWORK_TO_MS
......................................................................
gsm_04_08: add GSM48_BCAP_RRQ_SPARE_NETWORK_TO_MS
From network to MS, we must send spare bits that are encoded the same as
GSM48_BCAP_RRQ_FR_ONLY. Add a define, so it is obvious that those are
spare bits.
Related: OS#6657
Related: osmo-msc I7046e9244fd9d4301ee2c4df1147a619f753739c
Change-Id: I97101c977104eae82e4850d40f9abd15aa03e33e
---
M include/osmocom/gsm/protocol/gsm_04_08.h
1 file changed, 3 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/41056/2
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/41056?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I97101c977104eae82e4850d40f9abd15aa03e33e
Gerrit-Change-Number: 41056
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>