diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-09 12:32:51 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2017-06-18 17:50:08 +0200 |
commit | 22593b2cef43bceafe7727f893be4657f949489f (patch) | |
tree | 28989cc96eba699dbbb361e0a2f1f24dca2b789b /openbsc/include | |
parent | 99d3a8836dd81fc461d759b4bf42ca016f9cc8b7 (diff) |
WIP: Port to new libosmo-sigtran API (with proper M3UA for Iuh)
This changes over to the new libosmo-sigtran API with support for
proper SCCP/M3UA/SCTP stacking, as mandated by 3GPP specifications for
the IuCS and IuPS interfaces.
Only the ASP (client) is used, assuming that both the HNB-GWs and RNCs
as well as the MSCs and SGSNs are all connecting as ASP to some STP/SGW
which offers M3UA server functionality as well as point-code and/or
global title based routing.
Tweaked-by: nhofmeyr (test expectation)
Change-Id: If0ff956fbf1484899d59ae1a5885543bca31645b
Diffstat (limited to 'openbsc/include')
-rw-r--r-- | openbsc/include/openbsc/iu.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/openbsc/include/openbsc/iu.h b/openbsc/include/openbsc/iu.h index 0ef2f82f6..0cc16d011 100644 --- a/openbsc/include/openbsc/iu.h +++ b/openbsc/include/openbsc/iu.h @@ -5,13 +5,15 @@ #include <osmocom/core/linuxlist.h> #include <osmocom/gsm/gsm48.h> +#include <osmocom/sigtran/sccp_sap.h> #include <openbsc/common.h> struct sgsn_pdp_ctx; struct msgb; -struct osmo_sccp_link; struct gsm_auth_tuple; +struct osmo_sccp_addr; +struct osmo_ss7_instance; struct RANAP_RAB_SetupOrModifiedItemIEs_s; struct RANAP_GlobalRNC_ID; @@ -23,7 +25,10 @@ extern int asn1_xer_print; struct ue_conn_ctx { struct llist_head list; - struct osmo_sccp_link *link; + /* TODO: It's not needed to store the full SCCP address for each + * UE. Rather than that, a pointer to the RNC should be far + * sufficient */ + struct osmo_sccp_addr sccp_addr; uint32_t conn_id; int integrity_active; struct gprs_ra_id ra_id; @@ -57,11 +62,10 @@ typedef int (* iu_event_cb_t )(struct ue_conn_ctx *ue_ctx, typedef int (* iu_rab_ass_resp_cb_t )(struct ue_conn_ctx *ue_ctx, uint8_t rab_id, struct RANAP_RAB_SetupOrModifiedItemIEs_s *setup_ies); -int iu_init(void *ctx, const char *listen_addr, uint16_t listen_port, +int iu_init(void *ctx, const char *name, uint32_t local_pc, const char *listen_addr, + const char *remote_addr, uint16_t local_port, iu_recv_cb_t iu_recv_cb, iu_event_cb_t iu_event_cb); -void iu_link_del(struct osmo_sccp_link *link); - int iu_tx(struct msgb *msg, uint8_t sapi); int iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac); |