libosmo-netif
0.0.7.20171026
Osmocom network interface library
|
Files | |
file | datagram.c |
Osmocom datagram socket helpers. | |
Data Structures | |
struct | osmo_dgram_tx |
struct | osmo_dgram_rx |
struct | osmo_dgram |
Macros | |
#define | OSMO_DGRAM_CLI_F_RECONF (1 << 0) |
#define | OSMO_DGRAM_RX_F_RECONF (1 << 0) |
Functions | |
void | osmo_dgram_tx_close (struct osmo_dgram_tx *conn) |
Close an Osmocom Datagram Transmitter. More... | |
static int | osmo_dgram_tx_write (struct osmo_dgram_tx *conn) |
static int | osmo_dgram_tx_fd_cb (struct osmo_fd *ofd, unsigned int what) |
struct osmo_dgram_tx * | osmo_dgram_tx_create (void *ctx) |
Create an Osmocom datagram transmitter. More... | |
void | osmo_dgram_tx_set_addr (struct osmo_dgram_tx *conn, const char *addr) |
Set the remote address to which we transmit. More... | |
void | osmo_dgram_tx_set_port (struct osmo_dgram_tx *conn, uint16_t port) |
Set the remote port to which we transmit. More... | |
void | osmo_dgram_tx_set_local_addr (struct osmo_dgram_tx *conn, const char *addr) |
Set the local address from which we transmit. More... | |
void | osmo_dgram_tx_set_local_port (struct osmo_dgram_tx *conn, uint16_t port) |
Set the local port from which we transmit. More... | |
void | osmo_dgram_tx_set_data (struct osmo_dgram_tx *conn, void *data) |
Set application private data of the datagram transmitter. More... | |
void | osmo_dgram_tx_destroy (struct osmo_dgram_tx *conn) |
Destroy a Osmocom datagram transmitter. More... | |
int | osmo_dgram_tx_open (struct osmo_dgram_tx *conn) |
Open connection of an Osmocom datagram transmitter. More... | |
void | osmo_dgram_tx_send (struct osmo_dgram_tx *conn, struct msgb *msg) |
Enqueue data to be sent via an Osmocom datagram transmitter. More... | |
int | osmo_dgram_rx_recv (struct osmo_dgram_rx *conn, struct msgb *msg) |
Receive data via Osmocom datagram receiver. More... | |
static void | osmo_dgram_rx_read (struct osmo_dgram_rx *conn) |
static int | osmo_dgram_rx_cb (struct osmo_fd *ofd, unsigned int what) |
struct osmo_dgram_rx * | osmo_dgram_rx_create (void *ctx) |
Create an Osmocom datagram receiver. More... | |
void | osmo_dgram_rx_set_addr (struct osmo_dgram_rx *conn, const char *addr) |
Set the local address to which we bind. More... | |
void | osmo_dgram_rx_set_port (struct osmo_dgram_rx *conn, uint16_t port) |
Set the local port to which we bind. More... | |
void | osmo_dgram_rx_set_read_cb (struct osmo_dgram_rx *conn, int(*read_cb)(struct osmo_dgram_rx *conn)) |
Set the read() call-back of the datagram receiver. More... | |
void | osmo_dgram_rx_destroy (struct osmo_dgram_rx *conn) |
Destroy the datagram receiver. Releases Memory. More... | |
int | osmo_dgram_rx_open (struct osmo_dgram_rx *conn) |
Open the datagram receiver. This actually initializes the underlying socket and binds it to the configured ip/port. More... | |
void | osmo_dgram_rx_close (struct osmo_dgram_rx *conn) |
Close the datagram receiver and unregister from select loop Does not destroy the datagram receiver, merely closes it! More... | |
static int | dgram_rx_cb (struct osmo_dgram_rx *rx) |
struct osmo_dgram * | osmo_dgram_create (void *ctx) |
Create an Osmocom datagram transceiver (bidirectional) More... | |
void | osmo_dgram_destroy (struct osmo_dgram *conn) |
Destroy a Osmocom datagram transceiver. More... | |
void | osmo_dgram_set_local_addr (struct osmo_dgram *conn, const char *addr) |
Set the local address to which we bind. More... | |
void | osmo_dgram_set_remote_addr (struct osmo_dgram *conn, const char *addr) |
Set the remote address to which we transmit/connect. More... | |
void | osmo_dgram_set_local_port (struct osmo_dgram *conn, uint16_t port) |
Set the local port to which we bind. More... | |
void | osmo_dgram_set_remote_port (struct osmo_dgram *conn, uint16_t port) |
Set the remote port to which we transmit. More... | |
void | osmo_dgram_set_read_cb (struct osmo_dgram *conn, int(*read_cb)(struct osmo_dgram *conn)) |
Set the read() call-back of the datagram receiver. More... | |
void | osmo_dgram_set_data (struct osmo_dgram *conn, void *data) |
Set application private data of the datagram transmitter. More... | |
void * | osmo_dgram_get_data (struct osmo_dgram *conn) |
Get application private data of the datagram transceiver. More... | |
int | osmo_dgram_open (struct osmo_dgram *conn) |
Open the datagram transceiver. This actually initializes the underlying sockets and binds/connects them to the configured ips/ports. More... | |
void | osmo_dgram_close (struct osmo_dgram *conn) |
Close an Osmocom Datagram Transceiver. More... | |
void | osmo_dgram_send (struct osmo_dgram *conn, struct msgb *msg) |
Enqueue data to be sent via an Osmocom datagram transceiver. More... | |
int | osmo_dgram_recv (struct osmo_dgram *conn, struct msgb *msg) |
Receive data via Osmocom datagram transceiver. More... | |
Variables | |
struct osmo_dgram_tx | __attribute__ |
void osmo_dgram_close | ( | struct osmo_dgram * | conn | ) |
Close an Osmocom Datagram Transceiver.
[in] | conn | Osmocom Datagram Transceiver to be closed We unregister the socket fds from the osmocom select() loop and close them. |
References osmo_dgram_rx_close(), and osmo_dgram_tx_close().
struct osmo_dgram* osmo_dgram_create | ( | void * | ctx | ) |
Create an Osmocom datagram transceiver (bidirectional)
[in] | ctx | talloc context from which to allocate memory This function allocates a new osmo_dgram and initializes it with default values. Internally, the Transceiver is based on a tuple of transmitter (osmo_dgram_tx) and receiver (osmo_dgram_rx) |
References osmo_dgram_rx_create(), and osmo_dgram_rx_set_read_cb().
void osmo_dgram_destroy | ( | struct osmo_dgram * | conn | ) |
Destroy a Osmocom datagram transceiver.
[in] | conn | Datagram Transceiver to destroy |
References osmo_dgram_rx_destroy(), and osmo_dgram_tx_destroy().
void* osmo_dgram_get_data | ( | struct osmo_dgram * | conn | ) |
Get application private data of the datagram transceiver.
[in] | conn | Datagram Transceiver |
int osmo_dgram_open | ( | struct osmo_dgram * | conn | ) |
Open the datagram transceiver. This actually initializes the underlying sockets and binds/connects them to the configured ips/ports.
[in] | conn | Datagram Transceiver to open |
References osmo_dgram_rx_close(), osmo_dgram_rx_open(), and osmo_dgram_tx_open().
int osmo_dgram_recv | ( | struct osmo_dgram * | conn, |
struct msgb * | msg | ||
) |
Receive data via Osmocom datagram transceiver.
[in] | conn | Datagram Transceiver from which to receive |
msg | pre-allocate message buffer to which received data is appended |
References osmo_dgram_rx_recv().
void osmo_dgram_rx_close | ( | struct osmo_dgram_rx * | conn | ) |
Close the datagram receiver and unregister from select loop Does not destroy the datagram receiver, merely closes it!
[in] | conn | Stream Server Link to close |
Referenced by osmo_dgram_close(), osmo_dgram_open(), and osmo_dgram_rx_destroy().
struct osmo_dgram_rx* osmo_dgram_rx_create | ( | void * | ctx | ) |
Create an Osmocom datagram receiver.
[in] | ctx | talloc context from which to allocate memory This function allocates a new osmo_dgram_rx and initializes it with default values |
Referenced by osmo_dgram_create().
void osmo_dgram_rx_destroy | ( | struct osmo_dgram_rx * | conn | ) |
Destroy the datagram receiver. Releases Memory.
[in] | conn | Datagram Receiver |
References osmo_dgram_rx_close().
Referenced by osmo_dgram_destroy().
int osmo_dgram_rx_open | ( | struct osmo_dgram_rx * | conn | ) |
Open the datagram receiver. This actually initializes the underlying socket and binds it to the configured ip/port.
[in] | conn | Datagram Receiver to open |
Referenced by osmo_dgram_open().
int osmo_dgram_rx_recv | ( | struct osmo_dgram_rx * | conn, |
struct msgb * | msg | ||
) |
Receive data via Osmocom datagram receiver.
[in] | conn | Datagram Receiver from which to receive |
msg | pre-allocate message buffer to which received data is appended |
Referenced by osmo_dgram_recv().
void osmo_dgram_rx_set_addr | ( | struct osmo_dgram_rx * | conn, |
const char * | addr | ||
) |
Set the local address to which we bind.
[in] | conn | Datagram Receiver to modify |
[in] | addr | Local IP address |
Referenced by osmo_dgram_set_local_addr().
void osmo_dgram_rx_set_port | ( | struct osmo_dgram_rx * | conn, |
uint16_t | port | ||
) |
Set the local port to which we bind.
[in] | conn | Datagram Receiver to modify |
[in] | port | Local port number |
Referenced by osmo_dgram_set_local_port().
void osmo_dgram_rx_set_read_cb | ( | struct osmo_dgram_rx * | conn, |
int(*)(struct osmo_dgram_rx *conn) | read_cb | ||
) |
Set the read() call-back of the datagram receiver.
[in] | conn | Datagram Receiver to modify |
[in] | read_cb | Call-back function executed after read() |
Referenced by osmo_dgram_create().
void osmo_dgram_send | ( | struct osmo_dgram * | conn, |
struct msgb * | msg | ||
) |
Enqueue data to be sent via an Osmocom datagram transceiver.
[in] | conn | Datagram Transceiver through which we want to send |
[in] | msg | Message buffer to enqueue in transmit queue |
References osmo_dgram_tx_send().
void osmo_dgram_set_data | ( | struct osmo_dgram * | conn, |
void * | data | ||
) |
Set application private data of the datagram transmitter.
[in] | conn | Datagram Transmitter to modify |
[in] | data | User-specific data (available in call-back functions) |
void osmo_dgram_set_local_addr | ( | struct osmo_dgram * | conn, |
const char * | addr | ||
) |
Set the local address to which we bind.
[in] | conn | Datagram Transceiver to modify |
[in] | addr | Local IP address |
References osmo_dgram_rx_set_addr().
void osmo_dgram_set_local_port | ( | struct osmo_dgram * | conn, |
uint16_t | port | ||
) |
Set the local port to which we bind.
[in] | conn | Datagram Transceiver to modify |
[in] | port | Local Port Number |
References osmo_dgram_rx_set_port().
void osmo_dgram_set_read_cb | ( | struct osmo_dgram * | conn, |
int(*)(struct osmo_dgram *conn) | read_cb | ||
) |
Set the read() call-back of the datagram receiver.
[in] | conn | Datagram Receiver to modify |
[in] | read_cb | Call-back function executed after read() |
void osmo_dgram_set_remote_addr | ( | struct osmo_dgram * | conn, |
const char * | addr | ||
) |
Set the remote address to which we transmit/connect.
[in] | conn | Datagram Transceiver to modify |
[in] | addr | Remote IP address |
References osmo_dgram_tx_set_addr().
void osmo_dgram_set_remote_port | ( | struct osmo_dgram * | conn, |
uint16_t | port | ||
) |
Set the remote port to which we transmit.
[in] | conn | Datagram Transceiver to modify |
[in] | port | Remote Port Number |
References osmo_dgram_tx_set_port().
void osmo_dgram_tx_close | ( | struct osmo_dgram_tx * | conn | ) |
Close an Osmocom Datagram Transmitter.
[in] | conn | Osmocom Datagram Transmitter to be closed We unregister the socket fd from the osmocom select() loop abstraction and close the socket |
Referenced by osmo_dgram_close(), and osmo_dgram_tx_destroy().
struct osmo_dgram_tx* osmo_dgram_tx_create | ( | void * | ctx | ) |
Create an Osmocom datagram transmitter.
[in] | ctx | talloc context from which to allocate memory This function allocates a new osmo_dgram_tx and initializes it with default values |
void osmo_dgram_tx_destroy | ( | struct osmo_dgram_tx * | conn | ) |
Destroy a Osmocom datagram transmitter.
[in] | conn | Datagram Transmitter to destroy |
References osmo_dgram_tx_close().
Referenced by osmo_dgram_destroy().
int osmo_dgram_tx_open | ( | struct osmo_dgram_tx * | conn | ) |
Open connection of an Osmocom datagram transmitter.
[in] | conn | Stream Client to connect |
Referenced by osmo_dgram_open().
void osmo_dgram_tx_send | ( | struct osmo_dgram_tx * | conn, |
struct msgb * | msg | ||
) |
Enqueue data to be sent via an Osmocom datagram transmitter.
[in] | conn | Datagram Transmitter through which we want to send |
[in] | msg | Message buffer to enqueue in transmit queue |
Referenced by osmo_dgram_send().
void osmo_dgram_tx_set_addr | ( | struct osmo_dgram_tx * | conn, |
const char * | addr | ||
) |
Set the remote address to which we transmit.
[in] | conn | Datagram Transmitter to modify |
[in] | addr | Remote IP address |
Referenced by osmo_dgram_set_remote_addr().
void osmo_dgram_tx_set_data | ( | struct osmo_dgram_tx * | conn, |
void * | data | ||
) |
Set application private data of the datagram transmitter.
[in] | conn | Datagram Transmitter to modify |
[in] | data | User-specific data (available in call-back functions) |
void osmo_dgram_tx_set_local_addr | ( | struct osmo_dgram_tx * | conn, |
const char * | addr | ||
) |
Set the local address from which we transmit.
[in] | conn | Datagram Transmitter to modify |
[in] | addr | Local IP address |
void osmo_dgram_tx_set_local_port | ( | struct osmo_dgram_tx * | conn, |
uint16_t | port | ||
) |
Set the local port from which we transmit.
[in] | conn | Datagram Transmitter to modify |
[in] | port | Local Port Number |
void osmo_dgram_tx_set_port | ( | struct osmo_dgram_tx * | conn, |
uint16_t | port | ||
) |
Set the remote port to which we transmit.
[in] | conn | Datagram Transmitter to modify |
[in] | port | Remote Port Number |
Referenced by osmo_dgram_set_remote_port().