---
title: llarp::vpn

---

# llarp::vpn



## Classes

|                | Name           |
| -------------- | -------------- |
| class | **[llarp::vpn::AndroidInterface](Classes/classllarp_1_1vpn_1_1AndroidInterface.md)**  |
| class | **[llarp::vpn::AndroidRouteManager](Classes/classllarp_1_1vpn_1_1AndroidRouteManager.md)**  |
| class | **[llarp::vpn::AndroidPlatform](Classes/classllarp_1_1vpn_1_1AndroidPlatform.md)**  |
| class | **[llarp::vpn::permission_error](Classes/classllarp_1_1vpn_1_1permission__error.md)**  |
| struct | **[llarp::vpn::IOCTL](Classes/structllarp_1_1vpn_1_1IOCTL.md)**  |
| struct | **[llarp::vpn::EgresLayer4Handler](Classes/structllarp_1_1vpn_1_1EgresLayer4Handler.md)**  |
| class | **[llarp::vpn::EgresPacketRouter](Classes/classllarp_1_1vpn_1_1EgresPacketRouter.md)**  |
| class | **[llarp::vpn::I_Packet_IO](Classes/classllarp_1_1vpn_1_1I__Packet__IO.md)**  |
| struct | **[llarp::vpn::in6_ifreq](Classes/structllarp_1_1vpn_1_1in6__ifreq.md)**  |
| class | **[llarp::vpn::LinuxInterface](Classes/classllarp_1_1vpn_1_1LinuxInterface.md)**  |
| class | **[llarp::vpn::LinuxRouteManager](Classes/classllarp_1_1vpn_1_1LinuxRouteManager.md)**  |
| class | **[llarp::vpn::LinuxPlatform](Classes/classllarp_1_1vpn_1_1LinuxPlatform.md)**  |
| class | **[llarp::vpn::I_PacketInterceptor](Classes/classllarp_1_1vpn_1_1I__PacketInterceptor.md)**  |
| class | **[llarp::vpn::PacketRouter](Classes/classllarp_1_1vpn_1_1PacketRouter.md)**  |
| struct | **[llarp::vpn::Layer4Handler](Classes/structllarp_1_1vpn_1_1Layer4Handler.md)**  |
| struct | **[llarp::vpn::InterfaceAddress](Classes/structllarp_1_1vpn_1_1InterfaceAddress.md)**  |
| struct | **[llarp::vpn::InterfaceInfo](Classes/structllarp_1_1vpn_1_1InterfaceInfo.md)**  |
| class | **[llarp::vpn::NetworkInterface](Classes/classllarp_1_1vpn_1_1NetworkInterface.md)** <br>a vpn network interface  |
| class | **[llarp::vpn::IRouteManager](Classes/classllarp_1_1vpn_1_1IRouteManager.md)**  |
| class | **[llarp::vpn::Platform](Classes/classllarp_1_1vpn_1_1Platform.md)** <br>a vpn platform responsible for obtaining vpn interfaces  |

## Types

|                | Name           |
| -------------- | -------------- |
| using llarp::EndpointBase::AddressVariant_t | **[AddressVariant_t](Namespaces/namespacellarp_1_1vpn.md#using-addressvariant-t)**  |
| using std::function< void(AddressVariant_t, [net::IPPacket](Classes/structllarp_1_1net_1_1IPPacket.md))> | **[EgresPacketHandlerFunc](Namespaces/namespacellarp_1_1vpn.md#using-egrespackethandlerfunc)**  |
| using std::function< void(std::vector< byte_t >)> | **[PacketSendFunc_t](Namespaces/namespacellarp_1_1vpn.md#using-packetsendfunc-t)**  |
| using std::function< void(std::vector< byte_t >, PacketSendFunc_t)> | **[PacketInterceptFunc_t](Namespaces/namespacellarp_1_1vpn.md#using-packetinterceptfunc-t)**  |
| using std::function< void([llarp::net::IPPacket](Classes/structllarp_1_1net_1_1IPPacket.md))> | **[PacketHandlerFunc_t](Namespaces/namespacellarp_1_1vpn.md#using-packethandlerfunc-t)**  |

## Functions

|                | Name           |
| -------------- | -------------- |
| std::shared_ptr< [Platform](Classes/classllarp_1_1vpn_1_1Platform.md) > | **[MakeNativePlatform](Namespaces/namespacellarp_1_1vpn.md#function-makenativeplatform)**([llarp::Context](Classes/structllarp_1_1Context.md) * ctx)<br>create native vpn platform  |

## Attributes

|                | Name           |
| -------------- | -------------- |
| auto | **[logcat](Namespaces/namespacellarp_1_1vpn.md#variable-logcat)**  |

## Types Documentation

### using AddressVariant_t

```cpp
using llarp::vpn::AddressVariant_t = typedef llarp::EndpointBase::AddressVariant_t;
```


### using EgresPacketHandlerFunc

```cpp
using llarp::vpn::EgresPacketHandlerFunc = typedef std::function<void(AddressVariant_t, net::IPPacket)>;
```


### using PacketSendFunc_t

```cpp
using llarp::vpn::PacketSendFunc_t = typedef std::function<void(std::vector<byte_t>)>;
```


### using PacketInterceptFunc_t

```cpp
using llarp::vpn::PacketInterceptFunc_t = typedef std::function<void(std::vector<byte_t>, PacketSendFunc_t)>;
```


### using PacketHandlerFunc_t

```cpp
using llarp::vpn::PacketHandlerFunc_t = typedef std::function<void(llarp::net::IPPacket)>;
```



## Functions Documentation

### function MakeNativePlatform

```cpp
std::shared_ptr< Platform > MakeNativePlatform(
    llarp::Context * ctx
)
```

create native vpn platform 


## Attributes Documentation

### variable logcat

```cpp
static auto logcat = log::Cat("linux-vpn");
```





-------------------------------

Updated on 2023-04-27 at 04:17:17 +0000