libosmo-netif
0.2.0-dirty
Osmocom network interface library
|
Osmocom multiplex protocol helpers. More...
#include <stdio.h>
#include <string.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/timer.h>
#include <osmocom/core/timer_compat.h>
#include <osmocom/core/select.h>
#include <osmocom/core/talloc.h>
#include <osmocom/core/logging.h>
#include <osmocom/netif/amr.h>
#include <osmocom/netif/rtp.h>
#include <osmocom/netif/osmux.h>
#include <arpa/inet.h>
Data Structures | |
struct | osmux_batch |
struct | osmux_circuit |
struct | osmux_input_state |
struct | osmux_tx_handle |
Defines | |
#define | DELTA_RTP_MSG 20000 |
#define | DELTA_RTP_TIMESTAMP 160 |
#define | SNPRINTF_BUFFER_SIZE(ret, remain, offset) |
Functions | |
static uint32_t | osmux_get_payload_len (struct osmux_hdr *osmuxh) |
static uint32_t | osmux_ft_dummy_size (uint8_t amr_ft, uint8_t batch_factor) |
struct osmux_hdr * | osmux_xfrm_output_pull (struct msgb *msg) |
static struct msgb * | osmux_rebuild_rtp (struct osmux_out_handle *h, struct osmux_hdr *osmuxh, void *payload, int payload_len, bool first_pkt) |
int | osmux_xfrm_output (struct osmux_hdr *osmuxh, struct osmux_out_handle *h, struct llist_head *list) OSMO_DEPRECATED("Use osmux_xfrm_output_sched() instead") |
static void | osmux_xfrm_output_trigger (void *data) |
int | osmux_xfrm_output_sched (struct osmux_out_handle *h, struct osmux_hdr *osmuxh) |
Generate RTP packets from osmux frame AMR payload set and schedule them for transmission at appropiate time. | |
void | osmux_xfrm_output_flush (struct osmux_out_handle *h) |
Flush all scheduled RTP packets still pending to be transmitted. | |
static int | osmux_batch_enqueue (struct msgb *msg, struct osmux_circuit *circuit, uint8_t batch_factor) |
static void | osmux_batch_dequeue (struct msgb *msg, struct osmux_circuit *circuit) |
static void | osmux_circuit_del_msgs (struct osmux_batch *batch, struct osmux_circuit *circuit) |
static int | osmux_batch_put (struct osmux_batch *batch, struct osmux_input_state *state) |
static int | osmux_xfrm_encode_amr (struct osmux_batch *batch, struct osmux_input_state *state) |
static void | osmux_encode_dummy (struct osmux_batch *batch, uint8_t batch_factor, struct osmux_input_state *state) |
static struct msgb * | osmux_build_batch (struct osmux_batch *batch, uint32_t batch_size, uint8_t batch_factor) |
void | osmux_xfrm_input_deliver (struct osmux_in_handle *h) |
static void | osmux_batch_timer_expired (void *data) |
static int | osmux_rtp_amr_payload_len (struct msgb *msg, struct rtp_hdr *rtph) |
static void | osmux_replay_lost_packets (struct osmux_circuit *circuit, struct rtp_hdr *cur_rtph, int batch_factor) |
static struct osmux_circuit * | osmux_batch_find_circuit (struct osmux_batch *batch, int ccid) |
static struct osmux_circuit * | osmux_batch_add_circuit (struct osmux_batch *batch, int ccid, int dummy, uint8_t batch_factor) |
static void | osmux_batch_del_circuit (struct osmux_batch *batch, struct osmux_circuit *circuit) |
static int | osmux_batch_add (struct osmux_batch *batch, uint32_t batch_factor, struct msgb *msg, struct rtp_hdr *rtph, int ccid) |
int | osmux_xfrm_input (struct osmux_in_handle *h, struct msgb *msg, int ccid) |
void | osmux_xfrm_input_init (struct osmux_in_handle *h) |
void | osmux_xfrm_output_set_tx_cb (struct osmux_out_handle *h, void(*tx_cb)(struct msgb *msg, void *data), void *data) |
Set transmission callback to call when a generated RTP packet is to be transmitted. | |
int | osmux_xfrm_input_open_circuit (struct osmux_in_handle *h, int ccid, int dummy) |
void | osmux_xfrm_input_close_circuit (struct osmux_in_handle *h, int ccid) |
void | osmux_xfrm_input_fini (struct osmux_in_handle *h) |
static void | osmux_tx_cb (void *data) |
static void | osmux_tx (struct msgb *msg, struct timeval *when, void(*tx_cb)(struct msgb *msg, void *data), void *data) |
void | osmux_tx_sched (struct llist_head *list, void(*tx_cb)(struct msgb *msg, void *data), void *data) OSMO_DEPRECATED("Use osmux_xfrm_output_set_tx_cb() instead") |
void | osmux_xfrm_output_init (struct osmux_out_handle *h, uint32_t rtp_ssrc) |
static int | osmux_snprintf_header (char *buf, size_t size, struct osmux_hdr *osmuxh) |
static int | osmux_snprintf_payload (char *buf, size_t size, const uint8_t *payload, int payload_len) |
int | osmux_snprintf (char *buf, size_t size, struct msgb *msg) |
Variables | |
static void * | osmux_ctx |
Osmocom multiplex protocol helpers.