pespin has uploaded this change for review.

View Change

xua_lm: Handle rx of unsolicited ASPIA ACK

Related: OS#6752
Change-Id: Ica4fbaefd08cdb5c4ca2e2a608606ddbec85297c
---
M src/xua_default_lm_fsm.c
1 file changed, 12 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/69/42569/1
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index dbca526..dbe88e1 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -62,6 +62,7 @@
LM_E_ASP_UP_CONF,
LM_E_ASP_UP_IND,
LM_E_ASP_ACT_IND,
+ LM_E_ASP_INACT_CONF,
LM_E_ASP_INACT_IND,
LM_E_NOTIFY_IND,
LM_E_ERROR_IND,
@@ -77,6 +78,7 @@
{ LM_E_ASP_UP_CONF, "ASP-UP.conf" },
{ LM_E_ASP_UP_IND, "ASP-UP.ind" },
{ LM_E_ASP_ACT_IND, "ASP-ACT.ind" },
+ { LM_E_ASP_INACT_CONF, "ASP-INACT.conf" },
{ LM_E_ASP_INACT_IND, "ASP-INACT.ind" },
{ LM_E_NOTIFY_IND, "NOTIFY.ind" },
{ LM_E_ERROR_IND, "ERROR.ind" },
@@ -328,6 +330,14 @@
/* This may come in IPSP if we received ASPAC from peer before it answered our ASPAC: */
ENSURE_IPSP(fi, event);
break;
+ case LM_E_ASP_INACT_CONF:
+ ENSURE_ASP_OR_IPSP(fi, event);
+ /* RFC 4666 RFC4666 4.3.4.4: Rx unsolicited ASPIA ACK, usually triggered because
+ * peer's ASP became administratively blocked.
+ * Try to re-activate, if peer's ASP is indeed blocked we'll probably receive an
+ * ERR msg and continue from there in the case LM_E_ERROR_IND below. */
+ xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_ASP_ACTIVE, PRIM_OP_REQUEST);
+ break;
case LM_E_AS_INACTIVE_IND:
/* request the ASP to go into active state */
xlm_sap_down_simple(lmp->asp, OSMO_XLM_PRIM_M_ASP_ACTIVE, PRIM_OP_REQUEST);
@@ -442,6 +452,7 @@
},
[S_ACTIVE] = {
.in_event_mask = S(LM_E_ASP_ACT_IND) |
+ S(LM_E_ASP_INACT_CONF) |
S(LM_E_AS_INACTIVE_IND) |
S(LM_E_NOTIFY_IND) |
S(LM_E_ERROR_IND),
@@ -459,6 +470,7 @@
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_CONFIRM, LM_E_ASP_UP_CONF },
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_ASP_UP, PRIM_OP_INDICATION, LM_E_ASP_UP_IND },
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_ASP_ACTIVE, PRIM_OP_INDICATION, LM_E_ASP_ACT_IND },
+ { XUA_SAP_LM, OSMO_XLM_PRIM_M_ASP_INACTIVE, PRIM_OP_CONFIRM, LM_E_ASP_INACT_CONF },
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_ASP_INACTIVE, PRIM_OP_INDICATION, LM_E_ASP_INACT_IND },
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_AS_STATUS, PRIM_OP_INDICATION, LM_E_AS_STATUS_IND },
{ XUA_SAP_LM, OSMO_XLM_PRIM_M_NOTIFY, PRIM_OP_INDICATION, LM_E_NOTIFY_IND },

To view, visit change 42569. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Ica4fbaefd08cdb5c4ca2e2a608606ddbec85297c
Gerrit-Change-Number: 42569
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>