OpenVPN
Data Fields
multi_context Struct Reference

Main OpenVPN server state structure. More...

#include <multi.h>

Collaboration diagram for multi_context:
Collaboration graph
[legend]

Data Fields

int thread_mode
 
struct multi_instance ** instances
 Array of multi_instances. More...
 
struct hashhash
 VPN tunnel instances indexed by real address of the remote peer. More...
 
struct hashvhash
 VPN tunnel instances indexed by virtual address of remote hosts. More...
 
struct hashiter
 VPN tunnel instances indexed by real address of the remote peer, optimized for iteration. More...
 
struct scheduleschedule
 
struct mbuf_setmbuf
 Set of buffers for passing data channel packets between VPN tunnel instances. More...
 
struct multi_tcpmtcp
 State specific to OpenVPN using TCP as external transport. More...
 
struct ifconfig_poolifconfig_pool
 
struct frequency_limitnew_connection_limiter
 
struct mroute_helperroute_helper
 
struct multi_reapreaper
 
struct mroute_addr local
 
bool enable_c2c
 
int max_clients
 
int tcp_queue_limit
 
int status_file_version
 
int n_clients
 
struct multi_instancepending
 
struct multi_instanceearliest_wakeup
 
struct multi_instance ** mpp_touched
 
struct context_bufferscontext_buffers
 
time_t per_second_trigger
 
struct context top
 Storage structure for process-wide configuration. More...
 
struct event_timeout stale_routes_check_et
 
struct deferred_signal_schedule_entry deferred_shutdown_signal
 

Detailed Description

Main OpenVPN server state structure.

This structure is used by OpenVPN processes running in server-mode to store all the VPN tunnel and process-wide state.

The Structure of VPN tunnel state storage related page describes the role the structure plays when OpenVPN is running in server-mode.

Definition at line 131 of file multi.h.

Field Documentation

◆ context_buffers

struct context_buffers* multi_context::context_buffers

Definition at line 175 of file multi.h.

◆ deferred_shutdown_signal

struct deferred_signal_schedule_entry multi_context::deferred_shutdown_signal

◆ earliest_wakeup

struct multi_instance* multi_context::earliest_wakeup

Definition at line 173 of file multi.h.

Referenced by multi_close_instance(), multi_get_timeout(), and multi_process_timeout().

◆ enable_c2c

bool multi_context::enable_c2c

Definition at line 161 of file multi.h.

Referenced by multi_init(), and multi_process_incoming_link().

◆ hash

struct hash* multi_context::hash

VPN tunnel instances indexed by real address of the remote peer.

Definition at line 143 of file multi.h.

Referenced by multi_close_instance(), multi_create_instance(), multi_create_instance_tcp(), multi_get_create_instance_udp(), multi_init(), multi_print_status(), multi_process_float(), and multi_uninit().

◆ ifconfig_pool

struct ifconfig_pool* multi_context::ifconfig_pool

◆ instances

struct multi_instance** multi_context::instances

Array of multi_instances.

An instance can be accessed using peer-id as an index.

Definition at line 140 of file multi.h.

Referenced by multi_close_instance(), multi_get_create_instance_udp(), multi_init(), and multi_uninit().

◆ iter

struct hash* multi_context::iter

VPN tunnel instances indexed by real address of the remote peer, optimized for iteration.

Definition at line 147 of file multi.h.

Referenced by management_callback_kill_by_addr(), management_callback_kill_by_cn(), multi_bcast(), multi_close_instance(), multi_create_instance(), multi_delete_dup(), multi_init(), multi_process_float(), multi_push_restart_schedule_exit(), and multi_uninit().

◆ local

struct mroute_addr multi_context::local

Definition at line 160 of file multi.h.

Referenced by multi_get_instance_by_virtual_addr(), multi_init(), and multi_learn_addr().

◆ max_clients

int multi_context::max_clients

Definition at line 162 of file multi.h.

Referenced by multi_create_instance(), multi_get_create_instance_udp(), and multi_init().

◆ mbuf

struct mbuf_set* multi_context::mbuf

Set of buffers for passing data channel packets between VPN tunnel instances.

Definition at line 151 of file multi.h.

Referenced by multi_add_mbuf(), multi_close_instance(), multi_init(), multi_print_status(), multi_process_outgoing_link_pre(), multi_tcp_process_io(), multi_uninit(), and p2mp_iow_flags().

◆ mpp_touched

struct multi_instance** multi_context::mpp_touched

Definition at line 174 of file multi.h.

Referenced by multi_process_post(), and multi_tcp_dispatch().

◆ mtcp

struct multi_tcp* multi_context::mtcp

State specific to OpenVPN using TCP as external transport.

Definition at line 154 of file multi.h.

Referenced by management_delete_event(), multi_close_instance(), multi_init(), multi_tcp_process_io(), multi_tcp_set_global_rw_flags(), multi_uninit(), and tunnel_server_tcp().

◆ n_clients

int multi_context::n_clients

◆ new_connection_limiter

struct frequency_limit* multi_context::new_connection_limiter

Definition at line 157 of file multi.h.

Referenced by multi_get_create_instance_udp(), multi_init(), and multi_uninit().

◆ pending

struct multi_instance* multi_context::pending

◆ per_second_trigger

time_t multi_context::per_second_trigger

Definition at line 176 of file multi.h.

Referenced by multi_process_per_second_timers().

◆ reaper

struct multi_reap* multi_context::reaper

Definition at line 159 of file multi.h.

Referenced by multi_init(), multi_reap_process(), multi_reap_process_dowork(), and multi_uninit().

◆ route_helper

struct mroute_helper* multi_context::route_helper

◆ schedule

struct schedule* multi_context::schedule

◆ stale_routes_check_et

struct event_timeout multi_context::stale_routes_check_et

Definition at line 184 of file multi.h.

Referenced by multi_init(), and stale_route_check_trigger().

◆ status_file_version

int multi_context::status_file_version

◆ tcp_queue_limit

int multi_context::tcp_queue_limit

Definition at line 163 of file multi.h.

Referenced by multi_init(), and multi_output_queue_ready().

◆ thread_mode

int multi_context::thread_mode

Definition at line 138 of file multi.h.

Referenced by multi_init(), and multi_uninit().

◆ top

struct context multi_context::top

◆ vhash

struct hash* multi_context::vhash

VPN tunnel instances indexed by virtual address of remote hosts.

Definition at line 145 of file multi.h.

Referenced by check_stale_routes(), multi_get_instance_by_virtual_addr(), multi_init(), multi_learn_addr(), multi_print_status(), multi_reap_process_dowork(), multi_reap_range(), and multi_uninit().


The documentation for this struct was generated from the following file: