#pragma once #include #include #include #include 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);