Excellent, thanks for finding this info! So I should implement N-STATE ind to be sent from our osmo_sua_* implementation to the SUA user: * Trigger the N-STATE User-in-service from a callback put in osmo_stream_cli_set_connect_cb(). * Trigger the out-of-service from ... ? It seems we're lacking an osmo_stream_* disconnect cb? In a side note, this is deviating from what is strictly necessary to get paging working. I could just use the RNC Ids from the InitialUE messages for now and postpone the Reset issue. Another shortcut could be to send the Reset message "directly" from the osmo_stream_cli_set_connect_cb() without composing N-STATE prims. Would you say that Reset and the SUA N-STATE primitives are important enough to implement those first? Thanks, ~Neels On Mon, Apr 04, 2016 at 08:19:39PM +0200, Harald Welte wrote:
Dear Neels and others,
I was confused earlier today.
N-CONNECT is a primitive for a connection oriented SCCP-layer connection. You receive it at each time a UE establishes a connection-oriented SCCP for signalling, and it is what carrie RANAP InitialUE and related messages.
What you are talking about for the RANAP Reset is the establishment of a signalling link (underneath SCCP/SUA), so something like the SCTP connection being established and released underneath.
In the SUA RFC 3868 there are: * M-SCTP_ESTABLISH confirm ASP confirms to LM that it has established an SCTP association with its peer * M-SCTP_ESTABLISH indication SUA informs LM that a remote ASP has established an SCTP association. "LM" is the "Layer Manager". This is not the SCCP user, so no luck here.
However, Q.711 / Q.714 contain a N-STATE.indication, which can be sent to a local SCCP user to inform it about the subsystem status.
FRrom 5.3.6.2:
"The local broadcast procedure provides a mechanism to inform local allowed concerned subsystems of any related SCCP/subsystem/signalling point status information received. [...] SCCP management then informs local allowed concerned SCCP subsystems about the subsystem status by invoking N-STATE indication primitive with "User-out-of-service" information."
So once we loose the signalling link, all SCCP users should receive N-STATE.ind with "User-out-of-service".
When the signalling link is (re-)established, all SCCP users should receive N-STATE.ind with "User-in-service". This should then be the trigger to send a N-UNITDATA.req() with a RANAP Reset inside.
Regards, Harald -- - Harald Welte <laforge@gnumonks.org> http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6)
-- - Neels Hofmeyr <nhofmeyr@sysmocom.de> http://www.sysmocom.de/ ======================================================================= * sysmocom - systems for mobile communications GmbH * Alt-Moabit 93 * 10559 Berlin, Germany * Sitz / Registered office: Berlin, HRB 134158 B * Geschäftsführer / Managing Directors: Holger Freyther, Harald Welte