aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsup_server.h
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-04-28 07:18:49 +0200
committerHarald Welte <laforge@gnumonks.org>2016-04-28 07:18:49 +0200
commite72cf55347542fccd9dbaee6dbff342ebc81dc6c (patch)
tree727e316fa342fd2d103ef2627f23c9598d0102ce /src/gsup_server.h
initial import of osmo-gsup-hlr code so far
Diffstat (limited to 'src/gsup_server.h')
-rw-r--r--src/gsup_server.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/gsup_server.h b/src/gsup_server.h
new file mode 100644
index 0000000..390bf2e
--- /dev/null
+++ b/src/gsup_server.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <osmocom/core/linuxlist.h>
+#include <osmocom/core/msgb.h>
+#include <osmocom/abis/ipa.h>
+#include <osmocom/abis/ipaccess.h>
+
+struct osmo_gsup_conn;
+
+/* Expects message in msg->l2h */
+typedef int (*osmo_gsup_read_cb_t)(struct osmo_gsup_conn *conn, struct msgb *msg);
+
+struct osmo_gsup_server {
+ /* list of osmo_gsup_conn */
+ struct llist_head clients;
+
+ struct ipa_server_link *link;
+ osmo_gsup_read_cb_t read_cb;
+};
+
+
+/* a single connection to a given client (SGSN, MSC) */
+struct osmo_gsup_conn {
+ struct llist_head list;
+
+ struct osmo_gsup_server *server;
+ struct ipa_server_conn *conn;
+ //struct oap_state oap_state;
+};
+
+
+int osmo_gsup_conn_send(struct osmo_gsup_conn *conn, struct msgb *msg);
+
+struct osmo_gsup_server *osmo_gsup_server_create(void *ctx,
+ const char *ip_addr,
+ uint16_t tcp_port,
+ osmo_gsup_read_cb_t read_cb);
+
+void osmo_gsup_server_destroy(struct osmo_gsup_server *gsups);
+