aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/lapd-over-datagram-network.c24
-rw-r--r--examples/lapd-over-datagram-user.c22
-rw-r--r--examples/rtp-udp-test-client.c26
-rw-r--r--examples/rtp-udp-test-server.c26
-rw-r--r--include/osmocom/netif/datagram.h62
-rw-r--r--src/datagram.c181
6 files changed, 170 insertions, 171 deletions
diff --git a/examples/lapd-over-datagram-network.c b/examples/lapd-over-datagram-network.c
index fb94515..74bba74 100644
--- a/examples/lapd-over-datagram-network.c
+++ b/examples/lapd-over-datagram-network.c
@@ -33,7 +33,7 @@ const struct log_info lapd_test_log_info = {
.num_cat = ARRAY_SIZE(lapd_test_cat),
};
-static struct osmo_dgram_conn *conn;
+static struct osmo_dgram *conn;
static struct lapd_instance *lapd;
static int sapi = 63, tei = 0;
@@ -44,7 +44,7 @@ void sighandler(int foo)
exit(EXIT_SUCCESS);
}
-int read_cb(struct osmo_dgram_conn *conn)
+int read_cb(struct osmo_dgram *conn)
{
int error;
struct msgb *msg;
@@ -56,7 +56,7 @@ int read_cb(struct osmo_dgram_conn *conn)
LOGP(DLAPDTEST, LOGL_ERROR, "cannot allocate message\n");
return -1;
}
- if (osmo_dgram_conn_recv(conn, msg) < 0) {
+ if (osmo_dgram_recv(conn, msg) < 0) {
LOGP(DLAPDTEST, LOGL_ERROR, "cannot receive message\n");
return -1;
}
@@ -70,10 +70,10 @@ int read_cb(struct osmo_dgram_conn *conn)
void lapd_tx_cb(struct msgb *msg, void *cbdata)
{
- struct osmo_dgram_conn *conn = cbdata;
+ struct osmo_dgram *conn = cbdata;
LOGP(DLAPDTEST, LOGL_DEBUG, "sending message over datagram\n");
- osmo_dgram_conn_send(conn, msg);
+ osmo_dgram_send(conn, msg);
}
void lapd_rx_cb(struct osmo_dlsap_prim *dp, uint8_t tei, uint8_t sapi,
@@ -140,16 +140,16 @@ int main(int argc, char *argv[])
* initialize datagram server.
*/
- conn = osmo_dgram_conn_create(tall_test);
+ conn = osmo_dgram_create(tall_test);
if (conn == NULL) {
fprintf(stderr, "cannot create client\n");
exit(EXIT_FAILURE);
}
- osmo_dgram_conn_set_local_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_local_port(conn, 10001);
- osmo_dgram_conn_set_remote_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_remote_port(conn, 10000);
- osmo_dgram_conn_set_read_cb(conn, read_cb);
+ osmo_dgram_set_local_addr(conn, "127.0.0.1");
+ osmo_dgram_set_local_port(conn, 10001);
+ osmo_dgram_set_remote_addr(conn, "127.0.0.1");
+ osmo_dgram_set_remote_port(conn, 10000);
+ osmo_dgram_set_read_cb(conn, read_cb);
lapd = lapd_instance_alloc(1, lapd_tx_cb, conn, lapd_rx_cb, conn,
&lapd_profile_sat);
@@ -164,7 +164,7 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- if (osmo_dgram_conn_open(conn) < 0) {
+ if (osmo_dgram_open(conn) < 0) {
fprintf(stderr, "cannot open client\n");
exit(EXIT_FAILURE);
}
diff --git a/examples/lapd-over-datagram-user.c b/examples/lapd-over-datagram-user.c
index 601d12c..e2fcdfb 100644
--- a/examples/lapd-over-datagram-user.c
+++ b/examples/lapd-over-datagram-user.c
@@ -43,7 +43,7 @@ const struct log_info lapd_test_log_info = {
.num_cat = ARRAY_SIZE(lapd_test_cat),
};
-static struct osmo_dgram_conn *conn;
+static struct osmo_dgram *conn;
static struct lapd_instance *lapd;
static int sapi = 63, tei = 0;
@@ -55,7 +55,7 @@ void sighandler(int foo)
exit(EXIT_SUCCESS);
}
-static int read_cb(struct osmo_dgram_conn *conn)
+static int read_cb(struct osmo_dgram *conn)
{
int error;
struct msgb *msg;
@@ -65,7 +65,7 @@ static int read_cb(struct osmo_dgram_conn *conn)
LOGP(DLAPDTEST, LOGL_ERROR, "cannot allocate message\n");
return -1;
}
- if (osmo_dgram_conn_recv(conn, msg) < 0) {
+ if (osmo_dgram_recv(conn, msg) < 0) {
msgb_free(msg);
LOGP(DLAPDTEST, LOGL_ERROR, "cannot receive message\n");
return -1;
@@ -83,7 +83,7 @@ static void *tall_test;
void lapd_tx_cb(struct msgb *msg, void *cbdata)
{
LOGP(DLINP, LOGL_DEBUG, "sending message over datagram\n");
- osmo_dgram_conn_send(conn, msg);
+ osmo_dgram_send(conn, msg);
}
void lapd_rx_cb(struct osmo_dlsap_prim *dp, uint8_t tei, uint8_t sapi,
@@ -212,18 +212,18 @@ int main(int argc, char *argv[])
* initialize datagram socket.
*/
- conn = osmo_dgram_conn_create(tall_test);
+ conn = osmo_dgram_create(tall_test);
if (conn == NULL) {
fprintf(stderr, "cannot create client\n");
exit(EXIT_FAILURE);
}
- osmo_dgram_conn_set_local_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_local_port(conn, 10000);
- osmo_dgram_conn_set_remote_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_remote_port(conn, 10001);
- osmo_dgram_conn_set_read_cb(conn, read_cb);
+ osmo_dgram_set_local_addr(conn, "127.0.0.1");
+ osmo_dgram_set_local_port(conn, 10000);
+ osmo_dgram_set_remote_addr(conn, "127.0.0.1");
+ osmo_dgram_set_remote_port(conn, 10001);
+ osmo_dgram_set_read_cb(conn, read_cb);
- if (osmo_dgram_conn_open(conn) < 0) {
+ if (osmo_dgram_open(conn) < 0) {
fprintf(stderr, "cannot open client\n");
exit(EXIT_FAILURE);
}
diff --git a/examples/rtp-udp-test-client.c b/examples/rtp-udp-test-client.c
index 97ec6ff..78802b1 100644
--- a/examples/rtp-udp-test-client.c
+++ b/examples/rtp-udp-test-client.c
@@ -33,10 +33,10 @@ const struct log_info rtp_test_log_info = {
.num_cat = ARRAY_SIZE(rtp_test_cat),
};
-static struct osmo_dgram_conn *conn;
+static struct osmo_dgram *conn;
static struct osmo_rtp_handle *rtp;
-static int read_cb(struct osmo_dgram_conn *conn)
+static int read_cb(struct osmo_dgram *conn)
{
struct msgb *msg;
struct rtp_hdr *rtph;
@@ -48,7 +48,7 @@ static int read_cb(struct osmo_dgram_conn *conn)
LOGP(DRTP_TEST, LOGL_ERROR, "cannot allocate message\n");
return -1;
}
- if (osmo_dgram_conn_recv(conn, msg) < 0) {
+ if (osmo_dgram_recv(conn, msg) < 0) {
msgb_free(msg);
LOGP(DRTP_TEST, LOGL_ERROR, "cannot receive message\n");
return -1;
@@ -71,8 +71,8 @@ static int read_cb(struct osmo_dgram_conn *conn)
void sighandler(int foo)
{
LOGP(DLINP, LOGL_NOTICE, "closing RTP.\n");
- osmo_dgram_conn_close(conn);
- osmo_dgram_conn_destroy(conn);
+ osmo_dgram_close(conn);
+ osmo_dgram_destroy(conn);
osmo_rtp_handle_free(rtp);
exit(EXIT_SUCCESS);
}
@@ -107,18 +107,18 @@ int main(int argc, char *argv[])
* initialize datagram socket.
*/
- conn = osmo_dgram_conn_create(tall_test);
+ conn = osmo_dgram_create(tall_test);
if (conn == NULL) {
fprintf(stderr, "cannot create client\n");
exit(EXIT_FAILURE);
}
- osmo_dgram_conn_set_local_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_local_port(conn, 20001);
- osmo_dgram_conn_set_remote_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_remote_port(conn, 20000);
- osmo_dgram_conn_set_read_cb(conn, read_cb);
+ osmo_dgram_set_local_addr(conn, "127.0.0.1");
+ osmo_dgram_set_local_port(conn, 20001);
+ osmo_dgram_set_remote_addr(conn, "127.0.0.1");
+ osmo_dgram_set_remote_port(conn, 20000);
+ osmo_dgram_set_read_cb(conn, read_cb);
- if (osmo_dgram_conn_open(conn) < 0) {
+ if (osmo_dgram_open(conn) < 0) {
fprintf(stderr, "cannot open client\n");
exit(EXIT_FAILURE);
}
@@ -133,7 +133,7 @@ int main(int argc, char *argv[])
LOGP(DLINP, LOGL_ERROR, "OOM\n");
continue;
}
- osmo_dgram_conn_send(conn, msg);
+ osmo_dgram_send(conn, msg);
}
LOGP(DLINP, LOGL_NOTICE, "Entering main loop\n");
diff --git a/examples/rtp-udp-test-server.c b/examples/rtp-udp-test-server.c
index 2f7f291..7d56d44 100644
--- a/examples/rtp-udp-test-server.c
+++ b/examples/rtp-udp-test-server.c
@@ -31,10 +31,10 @@ const struct log_info rtp_test_log_info = {
.num_cat = ARRAY_SIZE(rtp_test_cat),
};
-static struct osmo_dgram_conn *conn;
+static struct osmo_dgram *conn;
static struct osmo_rtp_handle *rtp;
-int read_cb(struct osmo_dgram_conn *conn)
+int read_cb(struct osmo_dgram *conn)
{
struct msgb *msg;
char dummy_data[RTP_PT_GSM_FULL_PAYLOAD_LEN] = "payload test";
@@ -47,7 +47,7 @@ int read_cb(struct osmo_dgram_conn *conn)
LOGP(DRTP_TEST, LOGL_ERROR, "cannot allocate message\n");
return -1;
}
- if (osmo_dgram_conn_recv(conn, msg) < 0) {
+ if (osmo_dgram_recv(conn, msg) < 0) {
LOGP(DRTP_TEST, LOGL_ERROR, "cannot receive message\n");
return -1;
}
@@ -80,7 +80,7 @@ int read_cb(struct osmo_dgram_conn *conn)
LOGP(DLINP, LOGL_ERROR, "OOM\n");
return -1;
}
- osmo_dgram_conn_send(conn, msg);
+ osmo_dgram_send(conn, msg);
return 0;
}
@@ -88,8 +88,8 @@ int read_cb(struct osmo_dgram_conn *conn)
void sighandler(int foo)
{
LOGP(DLINP, LOGL_NOTICE, "closing RTP.\n");
- osmo_dgram_conn_close(conn);
- osmo_dgram_conn_destroy(conn);
+ osmo_dgram_close(conn);
+ osmo_dgram_destroy(conn);
osmo_rtp_handle_free(rtp);
exit(EXIT_SUCCESS);
}
@@ -121,18 +121,18 @@ int main(int argc, char *argv[])
* initialize datagram server.
*/
- conn = osmo_dgram_conn_create(tall_test);
+ conn = osmo_dgram_create(tall_test);
if (conn == NULL) {
LOGP(DRTP_TEST, LOGL_ERROR, "cannot create UDP socket\n");
exit(EXIT_FAILURE);
}
- osmo_dgram_conn_set_local_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_local_port(conn, 20000);
- osmo_dgram_conn_set_remote_addr(conn, "127.0.0.1");
- osmo_dgram_conn_set_remote_port(conn, 20001);
- osmo_dgram_conn_set_read_cb(conn, read_cb);
+ osmo_dgram_set_local_addr(conn, "127.0.0.1");
+ osmo_dgram_set_local_port(conn, 20000);
+ osmo_dgram_set_remote_addr(conn, "127.0.0.1");
+ osmo_dgram_set_remote_port(conn, 20001);
+ osmo_dgram_set_read_cb(conn, read_cb);
- if (osmo_dgram_conn_open(conn) < 0) {
+ if (osmo_dgram_open(conn) < 0) {
fprintf(stderr, "cannot open client\n");
exit(EXIT_FAILURE);
}
diff --git a/include/osmocom/netif/datagram.h b/include/osmocom/netif/datagram.h
index 8ed6ce5..0245363 100644
--- a/include/osmocom/netif/datagram.h
+++ b/include/osmocom/netif/datagram.h
@@ -1,50 +1,50 @@
#ifndef _OSMO_DGRAM_H_
#define _OSMO_DGRAM_H_
-struct osmo_dgram_client_conn;
+struct osmo_dgram_tx;
-struct osmo_dgram_client_conn *osmo_dgram_client_conn_create(void *ctx);
-void osmo_dgram_client_conn_destroy(struct osmo_dgram_client_conn *conn);
+struct osmo_dgram_tx *osmo_dgram_tx_create(void *crx);
+void osmo_dgram_tx_destroy(struct osmo_dgram_tx *conn);
-void osmo_dgram_client_conn_set_addr(struct osmo_dgram_client_conn *conn, const char *addr);
-void osmo_dgram_client_conn_set_port(struct osmo_dgram_client_conn *conn, uint16_t port);
-void osmo_dgram_client_conn_set_data(struct osmo_dgram_client_conn *conn, void *data);
+void osmo_dgram_tx_set_addr(struct osmo_dgram_tx *conn, const char *addr);
+void osmo_dgram_tx_set_port(struct osmo_dgram_tx *conn, uint16_t port);
+void osmo_dgram_tx_set_data(struct osmo_dgram_tx *conn, void *data);
-int osmo_dgram_client_conn_open(struct osmo_dgram_client_conn *conn);
-void osmo_dgram_client_conn_close(struct osmo_dgram_client_conn *conn);
+int osmo_dgram_tx_open(struct osmo_dgram_tx *conn);
+void osmo_dgram_tx_close(struct osmo_dgram_tx *conn);
-void osmo_dgram_client_conn_send(struct osmo_dgram_client_conn *conn, struct msgb *msg);
+void osmo_dgram_tx_send(struct osmo_dgram_tx *conn, struct msgb *msg);
-struct osmo_dgram_server_conn;
+struct osmo_dgram_rx;
-struct osmo_dgram_server_conn *osmo_dgram_server_conn_create(void *ctx);
+struct osmo_dgram_rx *osmo_dgram_rx_create(void *crx);
-void osmo_dgram_server_conn_set_addr(struct osmo_dgram_server_conn *conn, const char *addr);
-void osmo_dgram_server_conn_set_port(struct osmo_dgram_server_conn *conn, uint16_t port);
-void osmo_dgram_server_conn_set_read_cb(struct osmo_dgram_server_conn *conn, int (*read_cb)(struct osmo_dgram_server_conn *conn));
-void osmo_dgram_server_conn_destroy(struct osmo_dgram_server_conn *conn);
+void osmo_dgram_rx_set_addr(struct osmo_dgram_rx *conn, const char *addr);
+void osmo_dgram_rx_set_port(struct osmo_dgram_rx *conn, uint16_t port);
+void osmo_dgram_rx_set_read_cb(struct osmo_dgram_rx *conn, int (*read_cb)(struct osmo_dgram_rx *conn));
+void osmo_dgram_rx_destroy(struct osmo_dgram_rx *conn);
-int osmo_dgram_server_conn_open(struct osmo_dgram_server_conn *conn);
-void osmo_dgram_server_conn_close(struct osmo_dgram_server_conn *conn);
+int osmo_dgram_rx_open(struct osmo_dgram_rx *conn);
+void osmo_dgram_rx_close(struct osmo_dgram_rx *conn);
-int osmo_dgram_server_conn_recv(struct osmo_dgram_server_conn *conn, struct msgb *msg);
+int osmo_dgram_rx_recv(struct osmo_dgram_rx *conn, struct msgb *msg);
-struct osmo_dgram_conn;
+struct osmo_dgram;
-struct osmo_dgram_conn *osmo_dgram_conn_create(void *ctx);
-void osmo_dgram_conn_destroy(struct osmo_dgram_conn *conn);
+struct osmo_dgram *osmo_dgram_create(void *crx);
+void osmo_dgram_destroy(struct osmo_dgram *conn);
-int osmo_dgram_conn_open(struct osmo_dgram_conn *conn);
-void osmo_dgram_conn_close(struct osmo_dgram_conn *conn);
+int osmo_dgram_open(struct osmo_dgram *conn);
+void osmo_dgram_close(struct osmo_dgram *conn);
-void osmo_dgram_conn_set_local_addr(struct osmo_dgram_conn *conn, const char *addr);
-void osmo_dgram_conn_set_remote_addr(struct osmo_dgram_conn *conn, const char *addr);
-void osmo_dgram_conn_set_local_port(struct osmo_dgram_conn *conn, uint16_t port);
-void osmo_dgram_conn_set_remote_port(struct osmo_dgram_conn *conn, uint16_t port);
-void osmo_dgram_conn_set_read_cb(struct osmo_dgram_conn *conn, int (*read_cb)(struct osmo_dgram_conn *conn));
-void osmo_dgram_conn_set_data(struct osmo_dgram_client_conn *conn, void *data);
+void osmo_dgram_set_local_addr(struct osmo_dgram *conn, const char *addr);
+void osmo_dgram_set_remote_addr(struct osmo_dgram *conn, const char *addr);
+void osmo_dgram_set_local_port(struct osmo_dgram *conn, uint16_t port);
+void osmo_dgram_set_remote_port(struct osmo_dgram *conn, uint16_t port);
+void osmo_dgram_set_read_cb(struct osmo_dgram *conn, int (*read_cb)(struct osmo_dgram *conn));
+void osmo_dgram_set_data(struct osmo_dgram *conn, void *data);
-void osmo_dgram_conn_send(struct osmo_dgram_conn *conn, struct msgb *msg);
-int osmo_dgram_conn_recv(struct osmo_dgram_conn *conn, struct msgb *msg);
+void osmo_dgram_send(struct osmo_dgram *conn, struct msgb *msg);
+int osmo_dgram_recv(struct osmo_dgram *conn, struct msgb *msg);
#endif
diff --git a/src/datagram.c b/src/datagram.c
index caac1c8..5630114 100644
--- a/src/datagram.c
+++ b/src/datagram.c
@@ -23,25 +23,25 @@
* Client side.
*/
-#define OSMO_DGRAM_CLIENT_F_RECONFIG (1 << 0)
+#define OSMO_DGRAM_CLI_F_RECONF (1 << 0)
-struct osmo_dgram_client_conn {
+struct osmo_dgram_tx {
struct osmo_fd ofd;
struct llist_head tx_queue;
const char *addr;
uint16_t port;
- int (*write_cb)(struct osmo_dgram_client_conn *conn);
+ int (*write_cb)(struct osmo_dgram_tx *conn);
void *data;
unsigned int flags;
};
-void osmo_dgram_client_conn_close(struct osmo_dgram_client_conn *conn)
+void osmo_dgram_tx_close(struct osmo_dgram_tx *conn)
{
osmo_fd_unregister(&conn->ofd);
close(conn->ofd.fd);
}
-static int osmo_dgram_client_write(struct osmo_dgram_client_conn *conn)
+static int osmo_dgram_tx_write(struct osmo_dgram_tx *conn)
{
struct msgb *msg;
struct llist_head *lh;
@@ -66,29 +66,29 @@ static int osmo_dgram_client_write(struct osmo_dgram_client_conn *conn)
return 0;
}
-static int osmo_dgram_client_fd_cb(struct osmo_fd *ofd, unsigned int what)
+static int osmo_dgram_tx_fd_cb(struct osmo_fd *ofd, unsigned int what)
{
- struct osmo_dgram_client_conn *conn = ofd->data;
+ struct osmo_dgram_tx *conn = ofd->data;
if (what & BSC_FD_WRITE) {
LOGP(DLINP, LOGL_DEBUG, "write\n");
- osmo_dgram_client_write(conn);
+ osmo_dgram_tx_write(conn);
}
return 0;
}
-struct osmo_dgram_client_conn *osmo_dgram_client_conn_create(void *ctx)
+struct osmo_dgram_tx *osmo_dgram_tx_create(void *crx)
{
- struct osmo_dgram_client_conn *conn;
+ struct osmo_dgram_tx *conn;
- conn = talloc_zero(ctx, struct osmo_dgram_client_conn);
+ conn = talloc_zero(crx, struct osmo_dgram_tx);
if (!conn)
return NULL;
conn->ofd.fd = -1;
conn->ofd.when |= BSC_FD_READ;
conn->ofd.priv_nr = 0; /* XXX */
- conn->ofd.cb = osmo_dgram_client_fd_cb;
+ conn->ofd.cb = osmo_dgram_tx_fd_cb;
conn->ofd.data = conn;
INIT_LLIST_HEAD(&conn->tx_queue);
@@ -96,44 +96,44 @@ struct osmo_dgram_client_conn *osmo_dgram_client_conn_create(void *ctx)
}
void
-osmo_dgram_client_conn_set_addr(struct osmo_dgram_client_conn *conn,
+osmo_dgram_tx_set_addr(struct osmo_dgram_tx *conn,
const char *addr)
{
if (conn->addr != NULL)
talloc_free((void *)conn->addr);
conn->addr = talloc_strdup(conn, addr);
- conn->flags |= OSMO_DGRAM_CLIENT_F_RECONFIG;
+ conn->flags |= OSMO_DGRAM_CLI_F_RECONF;
}
void
-osmo_dgram_client_conn_set_port(struct osmo_dgram_client_conn *conn,
+osmo_dgram_tx_set_port(struct osmo_dgram_tx *conn,
uint16_t port)
{
conn->port = port;
- conn->flags |= OSMO_DGRAM_CLIENT_F_RECONFIG;
+ conn->flags |= OSMO_DGRAM_CLI_F_RECONF;
}
void
-osmo_dgram_client_conn_set_data(struct osmo_dgram_client_conn *conn, void *data)
+osmo_dgram_tx_set_data(struct osmo_dgram_tx *conn, void *data)
{
conn->data = data;
}
-void osmo_dgram_client_conn_destroy(struct osmo_dgram_client_conn *conn)
+void osmo_dgram_tx_destroy(struct osmo_dgram_tx *conn)
{
talloc_free(conn);
}
-int osmo_dgram_client_conn_open(struct osmo_dgram_client_conn *conn)
+int osmo_dgram_tx_open(struct osmo_dgram_tx *conn)
{
int ret;
/* we are reconfiguring this socket, close existing first. */
- if ((conn->flags & OSMO_DGRAM_CLIENT_F_RECONFIG) && conn->ofd.fd >= 0)
- osmo_dgram_client_conn_close(conn);
+ if ((conn->flags & OSMO_DGRAM_CLI_F_RECONF) && conn->ofd.fd >= 0)
+ osmo_dgram_tx_close(conn);
- conn->flags &= ~OSMO_DGRAM_CLIENT_F_RECONFIG;
+ conn->flags &= ~OSMO_DGRAM_CLI_F_RECONF;
ret = osmo_sock_init(AF_INET, SOCK_DGRAM, IPPROTO_UDP,
conn->addr, conn->port,
@@ -149,7 +149,7 @@ int osmo_dgram_client_conn_open(struct osmo_dgram_client_conn *conn)
return 0;
}
-void osmo_dgram_client_conn_send(struct osmo_dgram_client_conn *conn,
+void osmo_dgram_tx_send(struct osmo_dgram_tx *conn,
struct msgb *msg)
{
msgb_enqueue(&conn->tx_queue, msg);
@@ -160,33 +160,33 @@ void osmo_dgram_client_conn_send(struct osmo_dgram_client_conn *conn,
* Server side.
*/
-#define OSMO_DGRAM_SERVER_F_RECONFIG (1 << 0)
+#define OSMO_DGRAM_RX_F_RECONF (1 << 0)
-struct osmo_dgram_server_conn {
+struct osmo_dgram_rx {
struct osmo_fd ofd;
const char *addr;
uint16_t port;
- int (*cb)(struct osmo_dgram_server_conn *conn);
+ int (*cb)(struct osmo_dgram_rx *conn);
void *data;
unsigned int flags;
};
-int osmo_dgram_server_conn_recv(struct osmo_dgram_server_conn *conn,
+int osmo_dgram_rx_recv(struct osmo_dgram_rx *conn,
struct msgb *msg)
{
int ret;
ret = recv(conn->ofd.fd, msg->data, msg->data_len, 0);
if (ret <= 0) {
- LOGP(DLINP, LOGL_ERROR, "error receiving data from client\n");
+ LOGP(DLINP, LOGL_ERROR, "error receiving data from tx\n");
return ret;
}
msgb_put(msg, ret);
- LOGP(DLINP, LOGL_DEBUG, "received %d bytes from client\n", ret);
+ LOGP(DLINP, LOGL_DEBUG, "received %d bytes from tx\n", ret);
return ret;
}
-static void osmo_dgram_server_conn_read(struct osmo_dgram_server_conn *conn)
+static void osmo_dgram_rx_read(struct osmo_dgram_rx *conn)
{
LOGP(DLINP, LOGL_DEBUG, "message received\n");
@@ -194,70 +194,70 @@ static void osmo_dgram_server_conn_read(struct osmo_dgram_server_conn *conn)
conn->cb(conn);
}
-static int osmo_dgram_server_conn_cb(struct osmo_fd *ofd, unsigned int what)
+static int osmo_dgram_rx_cb(struct osmo_fd *ofd, unsigned int what)
{
- struct osmo_dgram_server_conn *conn = ofd->data;
+ struct osmo_dgram_rx *conn = ofd->data;
LOGP(DLINP, LOGL_DEBUG, "read\n");
if (what & BSC_FD_READ)
- osmo_dgram_server_conn_read(conn);
+ osmo_dgram_rx_read(conn);
return 0;
}
-struct osmo_dgram_server_conn *osmo_dgram_server_conn_create(void *ctx)
+struct osmo_dgram_rx *osmo_dgram_rx_create(void *crx)
{
- struct osmo_dgram_server_conn *conn;
+ struct osmo_dgram_rx *conn;
- conn = talloc_zero(ctx, struct osmo_dgram_server_conn);
+ conn = talloc_zero(crx, struct osmo_dgram_rx);
if (!conn)
return NULL;
conn->ofd.fd = -1;
conn->ofd.when |= BSC_FD_READ;
- conn->ofd.cb = osmo_dgram_server_conn_cb;
+ conn->ofd.cb = osmo_dgram_rx_cb;
conn->ofd.data = conn;
return conn;
}
-void osmo_dgram_server_conn_set_addr(struct osmo_dgram_server_conn *conn,
+void osmo_dgram_rx_set_addr(struct osmo_dgram_rx *conn,
const char *addr)
{
if (conn->addr != NULL)
talloc_free((void *)conn->addr);
conn->addr = talloc_strdup(conn, addr);
- conn->flags |= OSMO_DGRAM_SERVER_F_RECONFIG;
+ conn->flags |= OSMO_DGRAM_RX_F_RECONF;
}
-void osmo_dgram_server_conn_set_port(struct osmo_dgram_server_conn *conn,
+void osmo_dgram_rx_set_port(struct osmo_dgram_rx *conn,
uint16_t port)
{
conn->port = port;
- conn->flags |= OSMO_DGRAM_SERVER_F_RECONFIG;
+ conn->flags |= OSMO_DGRAM_RX_F_RECONF;
}
-void osmo_dgram_server_conn_set_read_cb(struct osmo_dgram_server_conn *conn,
- int (*read_cb)(struct osmo_dgram_server_conn *conn))
+void osmo_dgram_rx_set_read_cb(struct osmo_dgram_rx *conn,
+ int (*read_cb)(struct osmo_dgram_rx *conn))
{
conn->cb = read_cb;
}
-void osmo_dgram_server_conn_destroy(struct osmo_dgram_server_conn *conn)
+void osmo_dgram_rx_destroy(struct osmo_dgram_rx *conn)
{
talloc_free(conn);
}
-int osmo_dgram_server_conn_open(struct osmo_dgram_server_conn *conn)
+int osmo_dgram_rx_open(struct osmo_dgram_rx *conn)
{
int ret;
/* we are reconfiguring this socket, close existing first. */
- if ((conn->flags & OSMO_DGRAM_SERVER_F_RECONFIG) && conn->ofd.fd >= 0)
- osmo_dgram_server_conn_close(conn);
+ if ((conn->flags & OSMO_DGRAM_RX_F_RECONF) && conn->ofd.fd >= 0)
+ osmo_dgram_rx_close(conn);
- conn->flags &= ~OSMO_DGRAM_SERVER_F_RECONFIG;
+ conn->flags &= ~OSMO_DGRAM_RX_F_RECONF;
ret = osmo_sock_init(AF_INET, SOCK_DGRAM, IPPROTO_UDP,
conn->addr, conn->port, OSMO_SOCK_F_BIND);
@@ -272,7 +272,7 @@ int osmo_dgram_server_conn_open(struct osmo_dgram_server_conn *conn)
return 0;
}
-void osmo_dgram_server_conn_close(struct osmo_dgram_server_conn *conn)
+void osmo_dgram_rx_close(struct osmo_dgram_rx *conn)
{
osmo_fd_unregister(&conn->ofd);
close(conn->ofd.fd);
@@ -282,17 +282,17 @@ void osmo_dgram_server_conn_close(struct osmo_dgram_server_conn *conn)
* Client+Server (bidirectional communications).
*/
-struct osmo_dgram_conn {
- struct osmo_dgram_server_conn *server;
- struct osmo_dgram_client_conn *client;
- int (*read_cb)(struct osmo_dgram_conn *conn);
+struct osmo_dgram {
+ struct osmo_dgram_rx *rx;
+ struct osmo_dgram_tx *tx;
+ int (*read_cb)(struct osmo_dgram *conn);
void *data;
};
static int
-dgram_server_conn_cb(struct osmo_dgram_server_conn *server)
+dgram_rx_cb(struct osmo_dgram_rx *rx)
{
- struct osmo_dgram_conn *conn = server->data;
+ struct osmo_dgram *conn = rx->data;
if (conn->read_cb)
return conn->read_cb(conn);
@@ -300,100 +300,99 @@ dgram_server_conn_cb(struct osmo_dgram_server_conn *server)
return 0;
}
-struct osmo_dgram_conn *osmo_dgram_conn_create(void *ctx)
+struct osmo_dgram *osmo_dgram_create(void *crx)
{
- struct osmo_dgram_conn *conn;
+ struct osmo_dgram *conn;
- conn = talloc_zero(ctx, struct osmo_dgram_conn);
+ conn = talloc_zero(crx, struct osmo_dgram);
if (!conn)
return NULL;
- conn->server = osmo_dgram_server_conn_create(ctx);
- if (conn->server == NULL)
+ conn->rx= osmo_dgram_rx_create(crx);
+ if (conn->rx == NULL)
return NULL;
- osmo_dgram_server_conn_set_read_cb(conn->server, dgram_server_conn_cb);
- conn->server->data = conn;
+ osmo_dgram_rx_set_read_cb(conn->rx, dgram_rx_cb);
+ conn->rx->data = conn;
- conn->client = osmo_dgram_client_conn_create(ctx);
- if (conn->client == NULL) {
- osmo_dgram_server_conn_destroy(conn->server);
+ conn->tx = osmo_dgram_tx_create(crx);
+ if (conn->tx == NULL) {
+ osmo_dgram_rx_destroy(conn->rx);
return NULL;
}
return conn;
}
-void osmo_dgram_conn_destroy(struct osmo_dgram_conn *conn)
+void osmo_dgram_destroy(struct osmo_dgram *conn)
{
- osmo_dgram_server_conn_destroy(conn->server);
- osmo_dgram_client_conn_destroy(conn->client);
+ osmo_dgram_rx_destroy(conn->rx);
+ osmo_dgram_tx_destroy(conn->tx);
}
void
-osmo_dgram_conn_set_local_addr(struct osmo_dgram_conn *conn, const char *addr)
+osmo_dgram_set_local_addr(struct osmo_dgram *conn, const char *addr)
{
- osmo_dgram_server_conn_set_addr(conn->server, addr);
+ osmo_dgram_rx_set_addr(conn->rx, addr);
}
void
-osmo_dgram_conn_set_remote_addr(struct osmo_dgram_conn *conn, const char *addr)
+osmo_dgram_set_remote_addr(struct osmo_dgram *conn, const char *addr)
{
- osmo_dgram_client_conn_set_addr(conn->client, addr);
+ osmo_dgram_tx_set_addr(conn->tx, addr);
}
void
-osmo_dgram_conn_set_local_port(struct osmo_dgram_conn *conn, uint16_t port)
+osmo_dgram_set_local_port(struct osmo_dgram *conn, uint16_t port)
{
- osmo_dgram_server_conn_set_port(conn->server, port);
+ osmo_dgram_rx_set_port(conn->rx, port);
}
void
-osmo_dgram_conn_set_remote_port(struct osmo_dgram_conn *conn, uint16_t port)
+osmo_dgram_set_remote_port(struct osmo_dgram *conn, uint16_t port)
{
- osmo_dgram_client_conn_set_port(conn->client, port);
+ osmo_dgram_tx_set_port(conn->tx, port);
}
-void osmo_dgram_conn_set_read_cb(struct osmo_dgram_conn *conn,
- int (*read_cb)(struct osmo_dgram_conn *conn))
+void osmo_dgram_set_read_cb(struct osmo_dgram *conn,
+ int (*read_cb)(struct osmo_dgram *conn))
{
conn->read_cb = read_cb;
}
-void
-osmo_dgram_conn_set_data(struct osmo_dgram_client_conn *conn, void *data)
+void osmo_dgram_set_data(struct osmo_dgram *conn, void *data)
{
conn->data = data;
}
-int osmo_dgram_conn_open(struct osmo_dgram_conn *conn)
+int osmo_dgram_open(struct osmo_dgram *conn)
{
int ret;
- ret = osmo_dgram_server_conn_open(conn->server);
+ ret = osmo_dgram_rx_open(conn->rx);
if (ret < 0)
return ret;
- ret = osmo_dgram_client_conn_open(conn->client);
+ ret = osmo_dgram_tx_open(conn->tx);
if (ret < 0) {
- osmo_dgram_server_conn_close(conn->server);
+ osmo_dgram_rx_close(conn->rx);
return ret;
}
return ret;
}
-void osmo_dgram_conn_close(struct osmo_dgram_conn *conn)
+void osmo_dgram_close(struct osmo_dgram *conn)
{
- osmo_dgram_server_conn_close(conn->server);
- osmo_dgram_client_conn_close(conn->client);
+ osmo_dgram_rx_close(conn->rx);
+ osmo_dgram_tx_close(conn->tx);
}
-void osmo_dgram_conn_send(struct osmo_dgram_conn *conn, struct msgb *msg)
+void osmo_dgram_send(struct osmo_dgram *conn, struct msgb *msg)
{
- osmo_dgram_client_conn_send(conn->client, msg);
+ osmo_dgram_tx_send(conn->tx, msg);
}
-int osmo_dgram_conn_recv(struct osmo_dgram_conn *conn, struct msgb *msg)
+int osmo_dgram_recv(struct osmo_dgram *conn, struct msgb *msg)
{
- return osmo_dgram_server_conn_recv(conn->server, msg);
+ return osmo_dgram_rx_recv(conn->rx, msg);
}