pespin has uploaded this change for review.

View Change

xua_default_lm_fsm: Activate all ASPs in tmode broadcast/loadshare/roundrobin

If an ASP in an AS in tmode != override went down and up again, the LM
FSM was not re-activating it. This commit fixes it.

In tmode Override we don't want to swap the already active ASP, but in
other tmodes we want to have all of them activated.

This bug didn't affect during initial startup because usually all ASPs
were being activated while the AS wasn't yet active.

Change-Id: I548b88fa70b308033cb225623e803b731755651e
---
M src/xua_default_lm_fsm.c
1 file changed, 12 insertions(+), 6 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/97/40697/1
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 2cf2010..dff5421 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -245,12 +245,18 @@
case LM_E_NOTIFY_IND:
OSMO_ASSERT(oxp->oph.primitive == OSMO_XLM_PRIM_M_NOTIFY);
OSMO_ASSERT(oxp->oph.operation == PRIM_OP_INDICATION);
- if (oxp->u.notify.status_type == M3UA_NOTIFY_T_STATCHG &&
- (oxp->u.notify.status_info == M3UA_NOTIFY_I_AS_INACT ||
- oxp->u.notify.status_info == M3UA_NOTIFY_I_AS_PEND)) {
- lm_fsm_state_chg(fi, S_ACTIVE);
- osmo_fsm_inst_dispatch(lmp->asp->fi, XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
- }
+
+ /* Not handling/interested in other status changes for now. */
+ if (oxp->u.notify.status_type != M3UA_NOTIFY_T_STATCHG)
+ break;
+
+ /* Don't change active ASP if there's alreasy one active. */
+ if (ss7_asp_determine_traf_mode(lmp->asp) == OSMO_SS7_AS_TMOD_OVERRIDE &&
+ oxp->u.notify.status_info == M3UA_NOTIFY_I_AS_ACT)
+ break;
+
+ lm_fsm_state_chg(fi, S_ACTIVE);
+ osmo_fsm_inst_dispatch(lmp->asp->fi, XUA_ASP_E_M_ASP_ACTIVE_REQ, NULL);
break;
case LM_E_AS_INACTIVE_IND:
/* we now know that an AS is associated with this ASP at

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

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