diff options
author | Harald Welte <laforge@osmocom.org> | 2021-04-29 18:48:03 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-04-29 21:10:30 +0200 |
commit | 9c0fae14d105b64ec9e8ff7322fa4aca782e54d1 (patch) | |
tree | 4d2fe0dee95529aa343a841874c7993a533c0e0d /src/xua_asp_fsm.c | |
parent | d9098703fadd46150139c717505f9032f5621b9d (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.c | 4 |
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, |