Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
virtual.h File Reference

Virtual Network Interface. More...

#include <kernel.h>
#include <zephyr/types.h>
#include <stdbool.h>
#include <sys/atomic.h>
#include <net/net_ip.h>
#include <net/net_pkt.h>
#include <sys/util.h>
#include <net/net_if.h>

Go to the source code of this file.

Data Structures

struct  virtual_interface_api
 
struct  virtual_interface_context
 

Macros

#define NET_VIRTUAL_INTERFACE_INIT(dev_name, drv_name, init_fn, pm_control_fn, data, cfg, prio, api, mtu)
 Create a virtual network interface. Binding to another interface is done at runtime by calling net_virtual_interface_attach(). The attaching is done automatically when setting up tunneling when peer IP address is set in IP tunneling driver. More...
 

Enumerations

enum  virtual_interface_caps { VIRTUAL_INTERFACE_IPIP = BIT(1) }
 

Functions

int net_virtual_interface_attach (struct net_if *virtual_iface, struct net_if *iface)
 Attach virtual network interface to the given network interface. More...
 
struct net_ifnet_virtual_get_iface (struct net_if *iface)
 Return network interface related to this virtual network interface. The returned network interface is below this virtual network interface. More...
 
char * net_virtual_get_name (struct net_if *iface, char *buf, size_t len)
 Return the name of the virtual network interface L2. More...
 
void net_virtual_set_name (struct net_if *iface, const char *name)
 Set the name of the virtual network interface L2. More...
 
enum net_l2_flags net_virtual_set_flags (struct net_if *iface, enum net_l2_flags flags)
 Set the L2 flags of the virtual network interface. More...
 
enum net_verdict net_virtual_input (struct net_if *input_iface, struct net_addr *remote_addr, struct net_pkt *pkt)
 Feed the IP pkt to stack if tunneling is enabled. More...
 

Detailed Description

Virtual Network Interface.