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. 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 initial_packet_rate_limitinitial_rate_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 hashcid_hash
 
unsigned long cid_counter
 
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 buffer hmac_reply
 
struct link_socket_actualhmac_reply_dest
 
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 155 of file multi.h.

Field Documentation

◆ cid_counter

unsigned long multi_context::cid_counter

Definition at line 186 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 192 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 190 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 178 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 159 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().

◆ hmac_reply

struct buffer multi_context::hmac_reply

Definition at line 198 of file multi.h.

Referenced by multi_process_outgoing_link(), and send_hmac_reset_packet().

◆ hmac_reply_dest

struct link_socket_actual* multi_context::hmac_reply_dest

Definition at line 199 of file multi.h.

Referenced by multi_process_outgoing_link(), p2mp_iow_flags(), and send_hmac_reset_packet().

◆ ifconfig_pool

struct ifconfig_pool* multi_context::ifconfig_pool

◆ initial_rate_limiter

struct initial_packet_rate_limit* multi_context::initial_rate_limiter

◆ 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 156 of file multi.h.

Referenced by multi_assign_peer_id(), 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 163 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 177 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 179 of file multi.h.

Referenced by multi_assign_peer_id(), multi_create_instance(), 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 167 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 191 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 170 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 173 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 193 of file multi.h.

Referenced by multi_process_per_second_timers().

◆ reaper

struct multi_reap* multi_context::reaper

Definition at line 176 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 204 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 180 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

VPN tunnel instances indexed by virtual address of remote hosts.

Definition at line 161 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: