aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-09 18:14:22 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-09 21:30:53 +0200
commit9894f8785f7648139410aade59167712ba6dc444 (patch)
tree984b7d7f9a13069b58e8f6a8358949d07b38c268
parentdebcccf4c6e15744a14eb78ba4c1ed7fcb95cfd8 (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.c7
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) |