diff options
author | Harald Welte <laforge@osmocom.org> | 2021-05-11 16:25:21 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-05-13 18:11:51 +0200 |
commit | e9b21ff256c4269bde090ca8e942c738f0da97c4 (patch) | |
tree | 5fde6ebc6c68552670844d3fa4ba477ba050c74e /src/xua_default_lm_fsm.c | |
parent | 2cf796a2a5942d9b7be3eb83be62e2ac4359fd35 (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.c | 9 |
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 */ |