pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42565?usp=email )
Change subject: xua_lm: Fix ending up from active to idle forever
......................................................................
xua_lm: Fix ending up from active to idle forever
Previous transition to S_IDLE was wrong, since there's no way to recover
from that state unless the SCTP connection is closed.
Instead, try harder waiting for some new notifications to try
re-activating the ASP and see if the AS becomes active, or end up timing
out and reconnecting to re-attempt complete set of steps.
Change-Id: I5c97c0ede9c27c63f9259b43b7267a3d5d71681d
---
M src/xua_default_lm_fsm.c
1 file changed, 8 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/65/42565/1
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index a7e8d9c..6f25e17 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -310,11 +310,15 @@
break;
case LM_E_NOTIFY_IND:
oxp = data;
+ ENSURE_ASP_OR_IPSP(fi, event);
OSMO_ASSERT(oxp->oph.primitive == OSMO_XLM_PRIM_M_NOTIFY);
OSMO_ASSERT(oxp->oph.operation == PRIM_OP_INDICATION);
if (oxp->u.notify.status_type == M3UA_NOTIFY_T_STATCHG &&
- oxp->u.notify.status_info != M3UA_NOTIFY_I_AS_ACT)
- lm_fsm_state_chg(fi, S_IDLE);
+ oxp->u.notify.status_info != M3UA_NOTIFY_I_AS_ACT) {
+ /* There not much we can do here, Go back to S_WAIT_NOTIFY to either wait for
+ * some notification to re-attempt, or end up timing out and reconnecting.*/
+ lm_fsm_state_chg(fi, S_WAIT_NOTIFY);
+ }
break;
}
}
@@ -404,7 +408,8 @@
.in_event_mask = S(LM_E_ASP_ACT_IND) |
S(LM_E_AS_INACTIVE_IND) |
S(LM_E_NOTIFY_IND),
- .out_state_mask = S(S_IDLE),
+ .out_state_mask = S(S_IDLE) |
+ S(S_WAIT_NOTIFY),
.name = "ACTIVE",
.action = lm_active,
},
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42565?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: I5c97c0ede9c27c63f9259b43b7267a3d5d71681d
Gerrit-Change-Number: 42565
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/42563?usp=email )
Change subject: xua_lm: Use XLM SAP to send M-SCTP_RELEASE.req
......................................................................
xua_lm: Use XLM SAP to send M-SCTP_RELEASE.req
Change-Id: I582855acaced48fb838700a3013f94bee7db75ad
---
M src/xua_default_lm_fsm.c
M src/xua_lm_sap.c
2 files changed, 9 insertions(+), 5 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/63/42563/1
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 3e36daf..a7e8d9c 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -278,12 +278,12 @@
oxp = data;
if (oxp->u.rk_reg.status != M3UA_RKM_REG_SUCCESS) {
LOGPFSML(fi, LOGL_NOTICE, "Received RKM_REG_RSP with negative result\n");
- ss7_asp_disconnect_stream(lmp->asp);
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST);
} else {
unsigned long timeout_sec;
rc = handle_reg_conf(fi, oxp->u.rk_reg.key.l_rk_id, oxp->u.rk_reg.key.context);
if (rc < 0)
- ss7_asp_disconnect_stream(lmp->asp);
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST);
/* RKM registration was successful, we can transition to WAIT_NOTIFY
* state and assume that an NOTIFY/AS-INACTIVE arrives within
* T_WAIT_NOTIFY_RKM seconds */
@@ -337,7 +337,7 @@
/* 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);
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST);
break;
case SS7_ASP_LM_T_WAIT_NOTIFY:
if (lmp->asp->cfg.quirks & OSMO_SS7_ASP_QUIRK_NO_NOTIFY) {
@@ -356,11 +356,11 @@
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);
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST);
break;
case SS7_ASP_LM_T_WAIT_RK_REG_RESP:
/* timeout of registration of routing key */
- ss7_asp_disconnect_stream(lmp->asp);
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST);
break;
}
return 0;
diff --git a/src/xua_lm_sap.c b/src/xua_lm_sap.c
index 50f142f..05ed9d0 100644
--- a/src/xua_lm_sap.c
+++ b/src/xua_lm_sap.c
@@ -143,6 +143,10 @@
osmo_xlm_prim_name(&prim->oph));
switch (OSMO_PRIM_HDR(&prim->oph)) {
+ case OSMO_PRIM(OSMO_XLM_PRIM_M_SCTP_RELEASE, PRIM_OP_REQUEST):
+ /* Layer Manager asks us to release an SCTP association with the peer */
+ ss7_asp_disconnect_stream(asp);
+ break;
case OSMO_PRIM(OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_REQUEST):
/* Layer Manager asks us to send an ASPUP REQ */
osmo_fsm_inst_dispatch(asp->fi, XUA_ASP_E_M_ASP_UP_REQ, NULL);
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42563?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: I582855acaced48fb838700a3013f94bee7db75ad
Gerrit-Change-Number: 42563
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Attention is currently required from: pespin.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-sigtran/+/42558?usp=email
to look at the new patch set (#2).
The following approvals got outdated and were removed:
Verified+1 by Jenkins Builder
The change is no longer submittable: Verified is unsatisfied now.
Change subject: xua_as_fsm: Remove FIXME regarding queueing of msgs during state PENDING
......................................................................
xua_as_fsm: Remove FIXME regarding queueing of msgs during state PENDING
Queueing of messags during T(r) (state PENDING) is already implemented,
see xua_as_fsm_pending() further below in the same file.
Change-Id: Ie572367493066039f7022250d94b815a4da5bd16
---
M src/xua_as_fsm.c
1 file changed, 0 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/58/42558/2
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42558?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Ie572367493066039f7022250d94b815a4da5bd16
Gerrit-Change-Number: 42558
Gerrit-PatchSet: 2
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>
Attention is currently required from: laforge, osmith.
Hello Jenkins Builder, laforge, osmith,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-sigtran/+/42536?usp=email
to look at the new patch set (#3).
The following approvals got outdated and were removed:
Code-Review+1 by laforge, Code-Review+1 by osmith, Verified+1 by Jenkins Builder
Change subject: m3ua: m3ua_gen_error_msg(): include Routing Context IE in cause Invalid Routing Context
......................................................................
m3ua: m3ua_gen_error_msg(): include Routing Context IE in cause Invalid Routing Context
As per RFC4666 3.8.1:
"""
The "Invalid Routing Context" error is sent if a message is received
from a peer with an invalid (unconfigured) Routing Context value.
For this error, the invalid Routing Context(s) MUST be included in
the Error message."
"""
Hence add the originating Routing Context IE so the error message can be
further identified.
For the same reason, also add the Diagnostic Information for the
specific cases in the switch statement, and make them more robust about
possible null pointer dereference.
Change-Id: If821109701e315d17f5334c680670ea6c7bce3bd
---
M src/m3ua.c
1 file changed, 16 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/36/42536/3
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/42536?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: If821109701e315d17f5334c680670ea6c7bce3bd
Gerrit-Change-Number: 42536
Gerrit-PatchSet: 3
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-Attention: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>