aboutsummaryrefslogtreecommitdiffstats
path: root/src/xua_asp_fsm.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-04-29 18:48:03 +0200
committerHarald Welte <laforge@osmocom.org>2021-04-29 21:10:30 +0200
commit9c0fae14d105b64ec9e8ff7322fa4aca782e54d1 (patch)
tree4d2fe0dee95529aa343a841874c7993a533c0e0d /src/xua_asp_fsm.c
parentd9098703fadd46150139c717505f9032f5621b9d (diff)
xua_asp_fsm: Fix IPA client role
The IPA server worked as expected, but the IPA client has some clear logic bug that prevented it from working. It shows that we never really use any of that IPA/SCCPlite stuff after years in spec-compliant SIGTRAN land. A client now first waits for the IPA_REQ, sends its IPA_RESP, then waits for the ACK, ... Change-Id: Icfc32cad7d65c94dc21754b8f879afcf34d34a92
Diffstat (limited to 'src/xua_asp_fsm.c')
-rw-r--r--src/xua_asp_fsm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c
index ec85d21..dd1dddb 100644
--- a/src/xua_asp_fsm.c
+++ b/src/xua_asp_fsm.c
@@ -867,7 +867,7 @@ static void ipa_asp_fsm_down(struct osmo_fsm_inst *fi, uint32_t event, void *dat
}
} else {
/* Client: We simply wait for an ID GET */
- osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_ACK, 10, T_WAIT_ID_ACK);
+ osmo_fsm_inst_state_chg(fi, IPA_ASP_S_WAIT_ID_GET, 10, T_WAIT_ID_GET);
}
break;
}
@@ -1081,7 +1081,7 @@ static const struct osmo_fsm_state ipa_asp_states[] = {
[IPA_ASP_S_DOWN] = {
.in_event_mask = S(XUA_ASP_E_M_ASP_UP_REQ) |
S(XUA_ASP_E_SCTP_EST_IND),
- .out_state_mask = S(IPA_ASP_S_WAIT_ID_ACK) |
+ .out_state_mask = S(IPA_ASP_S_WAIT_ID_GET) |
S(IPA_ASP_S_WAIT_ID_RESP),
.name = "ASP_DOWN",
.action = ipa_asp_fsm_down,