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

struct multi_instance ** instances
 Array of multi_instances with the size of max_clients.
 
uint32_t max_peerid
 highest currently allocated peer-id and maximum allocated/valid index in instances
 
struct hash * hash
 VPN tunnel instances indexed by real address of the remote peer.
 
struct hash * vhash
 VPN tunnel instances indexed by virtual address of remote hosts.
 
struct schedule * schedule
 
struct mbuf_set * mbuf
 Set of buffers for passing data channel packets between VPN tunnel instances.
 
struct multi_io * multi_io
 I/O state and events tracker.
 
struct ifconfig_pool * ifconfig_pool
 
struct frequency_limit * new_connection_limiter
 
struct initial_packet_rate_limit * initial_rate_limiter
 
struct mroute_helper * route_helper
 
struct multi_reap * reaper
 
struct mroute_addr local
 
bool enable_c2c
 
uint32_t max_clients
 
int tcp_queue_limit
 
int status_file_version
 
int n_clients
 
struct hash * cid_hash
 
unsigned long cid_counter
 
struct multi_instance * pending
 
struct multi_instance * earliest_wakeup
 
struct multi_instance ** mpp_touched
 
struct context_buffers * context_buffers
 
time_t per_second_trigger
 
struct context top
 Storage structure for process-wide configuration.
 
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 161 of file multi.h.

Field Documentation

◆ cid_counter

unsigned long multi_context::cid_counter

Definition at line 192 of file multi.h.

Referenced by multi_create_instance().

◆ cid_hash

struct hash* multi_context::cid_hash

◆ context_buffers

struct context_buffers* multi_context::context_buffers

Definition at line 198 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

◆ enable_c2c

bool multi_context::enable_c2c

Definition at line 184 of file multi.h.

Referenced by multi_init(), and multi_process_incoming_link_data().

◆ hash

struct hash* multi_context::hash

◆ ifconfig_pool

struct ifconfig_pool* multi_context::ifconfig_pool

◆ initial_rate_limiter

struct initial_packet_rate_limit* multi_context::initial_rate_limiter

Definition at line 180 of file multi.h.

Referenced by do_pre_decrypt_check(), handle_connection_attempt(), multi_init(), and multi_uninit().

◆ instances

struct multi_instance** multi_context::instances

◆ local

struct mroute_addr multi_context::local

Definition at line 183 of file multi.h.

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

◆ max_clients

uint32_t multi_context::max_clients

Definition at line 185 of file multi.h.

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

◆ max_peerid

uint32_t multi_context::max_peerid

highest currently allocated peer-id and maximum allocated/valid index in instances

Definition at line 166 of file multi.h.

Referenced by management_callback_kill_by_cn(), multi_assign_peer_id(), multi_bcast(), multi_close_instance(), multi_delete_dup(), multi_push_restart_schedule_exit(), multi_uninit(), and send_push_update().

◆ mbuf

struct mbuf_set* multi_context::mbuf

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

Definition at line 174 of file multi.h.

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

◆ mpp_touched

struct multi_instance** multi_context::mpp_touched

Definition at line 197 of file multi.h.

Referenced by multi_io_dispatch(), and multi_process_post().

◆ multi_io

struct multi_io* multi_context::multi_io

◆ n_clients

int multi_context::n_clients

◆ new_connection_limiter

struct frequency_limit* multi_context::new_connection_limiter

Definition at line 179 of file multi.h.

Referenced by handle_connection_attempt(), 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 199 of file multi.h.

Referenced by multi_process_per_second_timers().

◆ reaper

struct multi_reap* multi_context::reaper

Definition at line 182 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 207 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 186 of file multi.h.

Referenced by multi_init(), and multi_output_queue_ready().

◆ top

struct context multi_context::top

◆ vhash

struct hash* multi_context::vhash

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