Attention is currently required from: pespin.
laforge has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42089?usp=email )
Change subject: xua_as_fsm: Trigger PC (un)availability to upper layers in IPSP
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42089?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I0e6015f04ad0647cc151d3c772355a18cb55547a
Gerrit-Change-Number: 42089
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 09 Feb 2026 16:55:29 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42090?usp=email )
Change subject: xua_aspm_fsm: Remove unneeded workaround submitting XUA_ASP_E_M_ASP_ACTIVE_REQ
......................................................................
xua_aspm_fsm: Remove unneeded workaround submitting XUA_ASP_E_M_ASP_ACTIVE_REQ
Sending that kind of event is up to the layer manager.
Right now, all ASPs (except ipa_aspm_fsm, which don't need that event
because there's no ACTIVATE in IPA) have an associated layer manager
FSM, so that workaround is not needed.
Change-Id: If6c2c5b6ffc4080320aadc550d823abc5d613d6f
---
M src/xua_asp_fsm.c
1 file changed, 0 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/90/42090/1
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c
index d3a7410..5ae0d0f 100644
--- a/src/xua_asp_fsm.c
+++ b/src/xua_asp_fsm.c
@@ -571,10 +571,6 @@
osmo_fsm_inst_state_chg(fi, XUA_ASP_S_INACTIVE, 0, 0);
/* inform layer manager */
send_xlm_prim_simple(fi, OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_CONFIRM);
- /* This hack should be in layer manager, but let's try
- * to be smart in case there is no layer manager */
- if (!asp->lm)
- osmo_fsm_inst_dispatch(fi, XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
break;
case XUA_ASP_E_ASPSM_ASPUP:
/* only if role SG */
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42090?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: If6c2c5b6ffc4080320aadc550d823abc5d613d6f
Gerrit-Change-Number: 42090
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42089?usp=email )
Change subject: xua_as_fsm: Trigger PC (un)availability to upper layers in IPSP
......................................................................
xua_as_fsm: Trigger PC (un)availability to upper layers in IPSP
Same as done in ASP. This is specially important in IPSP in order to
trigger availability/unavailability of PCs defined in the SCCP
addressbook.
Change-Id: I0e6015f04ad0647cc151d3c772355a18cb55547a
---
M src/xua_as_fsm.c
1 file changed, 1 insertion(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/89/42089/1
diff --git a/src/xua_as_fsm.c b/src/xua_as_fsm.c
index 092db55..53e2c00 100644
--- a/src/xua_as_fsm.c
+++ b/src/xua_as_fsm.c
@@ -523,6 +523,7 @@
switch (role) {
case OSMO_SS7_ASP_ROLE_ASP:
+ case OSMO_SS7_ASP_ROLE_IPSP:
if (s7i->sccp) {
if (became_available)
as_snm_pc_available(as);
@@ -539,9 +540,6 @@
xua_snm_pc_available(as, &aff_pc, 1, NULL, became_available);
}
break;
- case OSMO_SS7_ASP_ROLE_IPSP:
- /* TODO */
- break;
}
};
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42089?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I0e6015f04ad0647cc151d3c772355a18cb55547a
Gerrit-Change-Number: 42089
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Attention is currently required from: dexter.
neels has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/pysim/+/42043?usp=email )
Change subject: esim/http_json_api: add alternative API interface
......................................................................
Patch Set 6:
(2 comments)
Patchset:
PS6:
I would vote for a simpler approach, without needing to interfere with class instantiation: choose a different class name for the new client, leave the "legacy" class as-is, except, if needed, moving some bits to a new base class that old and new implementations can inherit from. IMHO that should be far easier to read and maintain.
File pySim/esim/http_json_api.py:
https://gerrit.osmocom.org/c/pysim/+/42043/comment/7f2a94a1_dc29af89?usp=em… :
PS6, Line 224: cls_attr = { attr_name: getattr(cls, attr_name) for attr_name in dir(cls) if not match("__.*__", attr_name) }
if not attr_name.startswith('__')
--
To view, visit https://gerrit.osmocom.org/c/pysim/+/42043?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: I2a5d4b59b12e08d5eae7a1215814d3a69c8921f6
Gerrit-Change-Number: 42043
Gerrit-PatchSet: 6
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 09 Feb 2026 14:32:19 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42060?usp=email )
Change subject: xua_default_lm_fsm: Move timer_cb further below
......................................................................
xua_default_lm_fsm: Move timer_cb further below
As usually done in osmo_fsm implemnetations.
Change-Id: Ibdc04d9ece0b3955da44849755a87ec28c17f140
---
M src/xua_default_lm_fsm.c
1 file changed, 51 insertions(+), 52 deletions(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, approved
laforge: Looks good to me, but someone else must approve
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 9c64ec4..2346ffb 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -185,58 +185,6 @@
}
}
-
-static int lm_timer_cb(struct osmo_fsm_inst *fi)
-{
- struct xua_layer_manager_default_priv *lmp = fi->priv;
- struct osmo_xlm_prim *prim;
- struct osmo_ss7_as *as;
-
- switch (fi->T) {
- case SS7_ASP_LM_T_WAIT_ASP_UP:
- /* we have been waiting for the ASP to come up, but it
- * failed to do so */
- LOGPFSML(fi, LOGL_NOTICE, "Peer didn't send any ASP_UP in time! Restarting ASP\n");
- ss7_asp_disconnect_stream(lmp->asp);
- break;
- case SS7_ASP_LM_T_WAIT_NOTIFY:
- if (lmp->asp->cfg.quirks & OSMO_SS7_ASP_QUIRK_NO_NOTIFY) {
- /* some implementations don't send the NOTIFY which they SHOULD
- * according to RFC4666 (see OS#5145) */
- LOGPFSM(fi, "quirk no_notify active; locally emulate AS-INACTIVE.ind\n");
- osmo_fsm_inst_dispatch(fi, LM_E_AS_INACTIVE_IND, NULL);
- break;
- }
- /* No AS has reported via NOTIFY that is was
- * (statically) configured at the SG for this ASP, so
- * let's dynamically register */
- lm_fsm_state_chg(fi, S_RKM_REG);
- prim = xua_xlm_prim_alloc(OSMO_XLM_PRIM_M_RK_REG, PRIM_OP_REQUEST);
- OSMO_ASSERT(prim);
- as = find_first_as_in_asp(lmp->asp);
- if (!as) {
- LOGPFSML(fi, LOGL_ERROR, "Unable to find AS!\n");
- ss7_asp_disconnect_stream(lmp->asp);
- return 0;
- }
- /* Fill in settings from first AS (TODO: multiple AS support) */
- prim->u.rk_reg.key = as->cfg.routing_key;
- prim->u.rk_reg.traf_mode = as->cfg.mode;
- osmo_xlm_sap_down(lmp->asp, &prim->oph);
- break;
- case SS7_ASP_LM_T_WAIT_NOTIY_RKM:
- /* No AS has reported via NOTIFY even after dynamic RKM
- * configuration */
- ss7_asp_disconnect_stream(lmp->asp);
- break;
- case SS7_ASP_LM_T_WAIT_RK_REG_RESP:
- /* timeout of registration of routing key */
- ss7_asp_disconnect_stream(lmp->asp);
- break;
- }
- return 0;
-}
-
static void lm_wait_notify(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
struct xua_layer_manager_default_priv *lmp = fi->priv;
@@ -327,6 +275,57 @@
}
}
+static int lm_timer_cb(struct osmo_fsm_inst *fi)
+{
+ struct xua_layer_manager_default_priv *lmp = fi->priv;
+ struct osmo_xlm_prim *prim;
+ struct osmo_ss7_as *as;
+
+ switch (fi->T) {
+ case SS7_ASP_LM_T_WAIT_ASP_UP:
+ /* we have been waiting for the ASP to come up, but it
+ * failed to do so */
+ LOGPFSML(fi, LOGL_NOTICE, "Peer didn't send any ASP_UP in time! Restarting ASP\n");
+ ss7_asp_disconnect_stream(lmp->asp);
+ break;
+ case SS7_ASP_LM_T_WAIT_NOTIFY:
+ if (lmp->asp->cfg.quirks & OSMO_SS7_ASP_QUIRK_NO_NOTIFY) {
+ /* some implementations don't send the NOTIFY which they SHOULD
+ * according to RFC4666 (see OS#5145) */
+ LOGPFSM(fi, "quirk no_notify active; locally emulate AS-INACTIVE.ind\n");
+ osmo_fsm_inst_dispatch(fi, LM_E_AS_INACTIVE_IND, NULL);
+ break;
+ }
+ /* No AS has reported via NOTIFY that is was
+ * (statically) configured at the SG for this ASP, so
+ * let's dynamically register */
+ lm_fsm_state_chg(fi, S_RKM_REG);
+ prim = xua_xlm_prim_alloc(OSMO_XLM_PRIM_M_RK_REG, PRIM_OP_REQUEST);
+ OSMO_ASSERT(prim);
+ as = find_first_as_in_asp(lmp->asp);
+ if (!as) {
+ LOGPFSML(fi, LOGL_ERROR, "Unable to find AS!\n");
+ ss7_asp_disconnect_stream(lmp->asp);
+ return 0;
+ }
+ /* Fill in settings from first AS (TODO: multiple AS support) */
+ prim->u.rk_reg.key = as->cfg.routing_key;
+ prim->u.rk_reg.traf_mode = as->cfg.mode;
+ osmo_xlm_sap_down(lmp->asp, &prim->oph);
+ break;
+ case SS7_ASP_LM_T_WAIT_NOTIY_RKM:
+ /* No AS has reported via NOTIFY even after dynamic RKM
+ * configuration */
+ ss7_asp_disconnect_stream(lmp->asp);
+ break;
+ case SS7_ASP_LM_T_WAIT_RK_REG_RESP:
+ /* timeout of registration of routing key */
+ ss7_asp_disconnect_stream(lmp->asp);
+ break;
+ }
+ return 0;
+}
+
static const struct osmo_fsm_state lm_states[] = {
[S_IDLE] = {
.in_event_mask = S(LM_E_SCTP_EST_IND),
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42060?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Ibdc04d9ece0b3955da44849755a87ec28c17f140
Gerrit-Change-Number: 42060
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>