diff options
author | Harald Welte <laforge@gnumonks.org> | 2016-04-28 07:18:49 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-04-28 07:18:49 +0200 |
commit | e72cf55347542fccd9dbaee6dbff342ebc81dc6c (patch) | |
tree | 727e316fa342fd2d103ef2627f23c9598d0102ce /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.h | 40 |
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); + |