libosmocore 1.9.0.196-9975
Osmocom core library
tun.h File Reference

tunnel network device convenience functions. More...

#include <stddef.h>
#include <stdint.h>
#include <osmocom/core/msgb.h>
#include <osmocom/core/socket.h>
#include <osmocom/core/netdev.h>

Go to the source code of this file.

Typedefs

typedef int(* osmo_tundev_data_ind_cb_t) (struct osmo_tundev *tun, struct msgb *msg)
 

Functions

struct osmo_tundevosmo_tundev_alloc (void *ctx, const char *name)
 Allocate a new tundev object. More...
 
void osmo_tundev_free (struct osmo_tundev *tundev)
 Free an allocated tundev object. More...
 
int osmo_tundev_open (struct osmo_tundev *tundev)
 Open the tunnel device owned by the tundev object. More...
 
int osmo_tundev_close (struct osmo_tundev *tundev)
 Close the tunnel device owned by the tundev object. More...
 
bool osmo_tundev_is_open (struct osmo_tundev *tundev)
 Retrieve whether the tundev object is in "opened" state. More...
 
void osmo_tundev_set_priv_data (struct osmo_tundev *tundev, void *priv_data)
 Set private user data pointer on the tundev object. More...
 
void * osmo_tundev_get_priv_data (struct osmo_tundev *tundev)
 Get private user data pointer from the tundev object. More...
 
void osmo_tundev_set_data_ind_cb (struct osmo_tundev *tundev, osmo_tundev_data_ind_cb_t data_ind_cb)
 Set data_ind_cb callback, called when a new packet is received on the tun interface. More...
 
const char * osmo_tundev_get_name (const struct osmo_tundev *tundev)
 Get name used to identify the tundev object. More...
 
int osmo_tundev_set_dev_name (struct osmo_tundev *tundev, const char *dev_name)
 Set name used to name the tunnel interface created by the tundev object. More...
 
const char * osmo_tundev_get_dev_name (const struct osmo_tundev *tundev)
 Get name used to name the tunnel interface created by the tundev object. More...
 
int osmo_tundev_set_netns_name (struct osmo_tundev *tundev, const char *netns)
 Set name of the network namespace to use when opening the tunnel interface. More...
 
const char * osmo_tundev_get_netns_name (const struct osmo_tundev *tundev)
 Get name of network namespace used when opening the tunnel interface. More...
 
struct osmo_netdevosmo_tundev_get_netdev (struct osmo_tundev *tundev)
 Get netdev managing the tunnel interface of tundev. More...
 
int osmo_tundev_send (struct osmo_tundev *tundev, struct msgb *msg)
 Submit a packet to the tunnel device managed by the tundev object. More...
 

Detailed Description

tunnel network device convenience functions.

Typedef Documentation

◆ osmo_tundev_data_ind_cb_t

typedef int(* osmo_tundev_data_ind_cb_t) (struct osmo_tundev *tun, struct msgb *msg)