diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-02 11:58:17 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-04-18 10:08:25 +0000 |
commit | 5f0a8df34cae20455a520c3a85cf94124f486bf2 (patch) | |
tree | a3be446812b69c3725fb5f6b655af053d7c474e7 /src/xua_asp_fsm.h | |
parent | afc3b856135237c8ce85ca39a42da892e5bdd9de (diff) |
Add IPA/SCCPlite support as SIGTRAN alternative
This tries as good as possible to fit the IPA/SCCPlite stacking into the
existing SIGTRAN/SS7 code architecture/model. To the user, the IPA
protocol looks like yet another protocol on the same level as the choice
between SUA and M3AU. On the inside, things are obviously quite
different.
We need to handle TCP with IPA framing instead of SCTP for both server
and client. We also implement an alternative "ASP FSM" for IPA, which
takes care of the CCM handshake (ID_REQ/ID_RESP/ID_ACK/ID_ACK2) for both
client and server mode.
In server mode, we use the 'unit name' as identifier to look up the AS,
similar to how we use a routing context to look up the AS in the xUA
case.
We also have to bypass activating the default layer manager in the
simple client to make sure we don't run into even more complexity.
What's missing right now is some way to manually override/set the point
codes. As IPA/SCCPlite is missing any routing label, we currently
simply generate one with SPC=0/DPC=0, which will obviously not work in
most configurations.
Change-Id: I9098574cddeba10fcf8f1b6c196a7069a6805c56
Diffstat (limited to 'src/xua_asp_fsm.h')
-rw-r--r-- | src/xua_asp_fsm.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/xua_asp_fsm.h b/src/xua_asp_fsm.h index 60e09da..32749ec 100644 --- a/src/xua_asp_fsm.h +++ b/src/xua_asp_fsm.h @@ -28,6 +28,11 @@ enum xua_asp_event { XUA_ASP_E_ASPSM_BEAT, XUA_ASP_E_ASPSM_BEAT_ACK, + /* IPA specific */ + IPA_ASP_E_ID_RESP, + IPA_ASP_E_ID_ACK, + IPA_ASP_E_ID_GET, + _NUM_XUA_ASP_E }; @@ -38,6 +43,7 @@ enum xua_asp_role { }; extern struct osmo_fsm xua_asp_fsm; +extern struct osmo_fsm ipa_asp_fsm; struct osmo_fsm_inst *xua_asp_fsm_start(struct osmo_ss7_asp *asp, enum xua_asp_role role, int log_level); |