diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-09 18:14:22 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-04-09 21:30:53 +0200 |
commit | 9894f8785f7648139410aade59167712ba6dc444 (patch) | |
tree | 984b7d7f9a13069b58e8f6a8358949d07b38c268 | |
parent | debcccf4c6e15744a14eb78ba4c1ed7fcb95cfd8 (diff) |
M3UA: Send opportunistic ASPACT-ACK to ASPACT-REQ in ACTIVE state
This was discovered (and fix validated) using m3ua-sgp-asptm-o-001 of
Michael Tuexen's m3ua-testtool.
Change-Id: I6d254f7a33856e036329aa717a9c03efb1f1289d
-rw-r--r-- | src/xua_asp_fsm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/xua_asp_fsm.c b/src/xua_asp_fsm.c index 0996db0..2e80506 100644 --- a/src/xua_asp_fsm.c +++ b/src/xua_asp_fsm.c @@ -532,6 +532,12 @@ static void xua_asp_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *d PRIM_OP_INDICATION); peer_send_error(fi, M3UA_ERR_UNEXPECTED_MSG); break; + case XUA_ASP_E_ASPTM_ASPAC: + /* only in role SG */ + ENSURE_SG_OR_IPSP(fi, event); + /* send ACK */ + peer_send(fi, XUA_ASP_E_ASPTM_ASPAC_ACK, NULL); + break; } } @@ -601,6 +607,7 @@ static const struct osmo_fsm_state xua_asp_states[] = { S(XUA_ASP_E_ASPSM_ASPUP) | S(XUA_ASP_E_ASPTM_ASPIA) | S(XUA_ASP_E_ASPTM_ASPIA_ACK) | + S(XUA_ASP_E_ASPTM_ASPAC) | S(XUA_ASP_E_M_ASP_DOWN_REQ) | S(XUA_ASP_E_M_ASP_INACTIVE_REQ), .out_state_mask = S(XUA_ASP_S_INACTIVE) | |