aboutsummaryrefslogtreecommitdiffstats
path: root/src/xua_default_lm_fsm.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-05-11 16:25:21 +0200
committerHarald Welte <laforge@osmocom.org>2021-05-13 18:11:51 +0200
commite9b21ff256c4269bde090ca8e942c738f0da97c4 (patch)
tree5fde6ebc6c68552670844d3fa4ba477ba050c74e /src/xua_default_lm_fsm.c
parent2cf796a2a5942d9b7be3eb83be62e2ac4359fd35 (diff)
osmo_ss7: introduce notion of configurable 'quirks'
A quirk is an implementation work-around in order to establish interoperability with another implementation, either a buggy one or one that follows a different interpretation of a given spec. For now, we introduce a first quirk affecting when we (in ASP role) send an ASP-ACTIVE message to the SG. Closes: OS#5145 Change-Id: Idd947ea39d743eb1bc9342ad9d098036821da45b
Diffstat (limited to 'src/xua_default_lm_fsm.c')
-rw-r--r--src/xua_default_lm_fsm.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/xua_default_lm_fsm.c b/src/xua_default_lm_fsm.c
index 338f4ae..ca488a7 100644
--- a/src/xua_default_lm_fsm.c
+++ b/src/xua_default_lm_fsm.c
@@ -1,5 +1,5 @@
/* Default XUA Layer Manager */
-/* (C) 2017 by Harald Welte <laforge@gnumonks.org>
+/* (C) 2017-2021 by Harald Welte <laforge@gnumonks.org>
* All Rights Reserved
*
* SPDX-License-Identifier: GPL-2.0+
@@ -170,6 +170,13 @@ static int lm_timer_cb(struct osmo_fsm_inst *fi)
restart_asp(fi);
break;
case T_WAIT_NOTIFY:
+ if (lmp->asp->cfg.quirks & OSMO_SS7_ASP_QUIRK_NO_NOTIFY) {
+ /* some implementations don't send the NOTIFY which they SHOULD
+ * according to RFC4666 (see OS#5145) */
+ LOGPFSM(fi, "quirk no_notify active; locally emulate AS-INACTIVE.ind\n");
+ osmo_fsm_inst_dispatch(fi, LM_E_AS_INACTIVE_IND, NULL);
+ break;
+ }
/* No AS has reported via NOTIFY that is was
* (statically) configured at the SG for this ASP, so
* let's dynamically register */