llarp::win32::VPNPlatform

Inherits from llarp::vpn::Platform, llarp::vpn::IRouteManager

Public Functions

Name
VPNPlatform(const VPNPlatform & ) =delete
VPNPlatform(VPNPlatform && ) =delete
VPNPlatform(llarp::Context * ctx)
~VPNPlatform() override =default
virtual void AddRoute(net::ipaddr_t ip, net::ipaddr_t gateway) override
virtual void DelRoute(net::ipaddr_t ip, net::ipaddr_t gateway) override
virtual void AddRouteViaInterface(NetworkInterface & vpn, IPRange range) override
virtual void DelRouteViaInterface(NetworkInterface & vpn, IPRange range) override
virtual std::vector< net::ipaddr_t > GetGatewaysNotOnInterface(NetworkInterface & vpn) override
virtual void AddDefaultRouteViaInterface(NetworkInterface & vpn) override
virtual void DelDefaultRouteViaInterface(NetworkInterface & vpn) override
virtual std::shared_ptr< NetworkInterface > ObtainInterface(InterfaceInfo info, AbstractRouter * router) override
get a new network interface fully configured given the interface info blocks until ready, throws on error
virtual std::shared_ptr< I_Packet_IO > create_packet_io(unsigned int ifindex, const std::optional< SockAddr > & dns_upstream_src) override
create a packet io that will read (and optionally write) packets on a network interface the lokinet process does not own
virtual IRouteManager & RouteManager() override
get owned ip route manager for managing routing table

Additional inherited members

Public Functions inherited from llarp::vpn::Platform

Name
Platform() =default
Platform(const Platform & ) =delete
Platform(Platform && ) =delete
virtual ~Platform() =default
std::shared_ptr< NetworkInterface > CreateInterface(InterfaceInfo info, AbstractRouter * router)
create and start a network interface
std::shared_ptr< NetworkInterface > CreateDummyInterface(InterfaceInfo )
create a network interface that doesn't actually write packets to the OS but instead only replies to icmp.

Public Functions inherited from llarp::vpn::IRouteManager

Name
IRouteManager() =default
IRouteManager(const IRouteManager & ) =delete
IRouteManager(IRouteManager && ) =delete
virtual ~IRouteManager() =default
virtual const llarp::net::Platform * Net_ptr() const
virtual void AddBlackhole()
virtual void DelBlackhole()

Public Functions Documentation

function VPNPlatform

VPNPlatform(
    const VPNPlatform & 
) =delete

function VPNPlatform

VPNPlatform(
    VPNPlatform && 
) =delete

function VPNPlatform

inline VPNPlatform(
    llarp::Context * ctx
)

function ~VPNPlatform

~VPNPlatform() override =default

function AddRoute

virtual void AddRoute(
    net::ipaddr_t ip,
    net::ipaddr_t gateway
) override

Reimplements: llarp::vpn::IRouteManager::AddRoute

function DelRoute

virtual void DelRoute(
    net::ipaddr_t ip,
    net::ipaddr_t gateway
) override

Reimplements: llarp::vpn::IRouteManager::DelRoute

function AddRouteViaInterface

virtual void AddRouteViaInterface(
    NetworkInterface & vpn,
    IPRange range
) override

Reimplements: llarp::vpn::IRouteManager::AddRouteViaInterface

function DelRouteViaInterface

virtual void DelRouteViaInterface(
    NetworkInterface & vpn,
    IPRange range
) override

Reimplements: llarp::vpn::IRouteManager::DelRouteViaInterface

function GetGatewaysNotOnInterface

virtual std::vector< net::ipaddr_t > GetGatewaysNotOnInterface(
    NetworkInterface & vpn
) override

Reimplements: llarp::vpn::IRouteManager::GetGatewaysNotOnInterface

function AddDefaultRouteViaInterface

virtual void AddDefaultRouteViaInterface(
    NetworkInterface & vpn
) override

Reimplements: llarp::vpn::IRouteManager::AddDefaultRouteViaInterface

function DelDefaultRouteViaInterface

virtual void DelDefaultRouteViaInterface(
    NetworkInterface & vpn
) override

Reimplements: llarp::vpn::IRouteManager::DelDefaultRouteViaInterface

function ObtainInterface

virtual std::shared_ptr< NetworkInterface > ObtainInterface(
    InterfaceInfo info,
    AbstractRouter * router
) override

get a new network interface fully configured given the interface info blocks until ready, throws on error

Reimplements: llarp::vpn::Platform::ObtainInterface

function create_packet_io

virtual std::shared_ptr< I_Packet_IO > create_packet_io(
    unsigned int ifindex,
    const std::optional< SockAddr > & dns_upstream_src
) override

create a packet io that will read (and optionally write) packets on a network interface the lokinet process does not own

Parameters:

  • index the interface index of the network interface to use or 0 for all interfaces on the system

Reimplements: llarp::vpn::Platform::create_packet_io

function RouteManager

inline virtual IRouteManager & RouteManager() override

get owned ip route manager for managing routing table

Reimplements: llarp::vpn::Platform::RouteManager


Updated on 2026-01-10 at 22:49:45 +0000