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.
 
struct hashhash
 VPN tunnel instances indexed by real address of the remote peer.
 
struct hashvhash
 VPN tunnel instances indexed by virtual address of remote hosts.
 
struct hashiter
 VPN tunnel instances indexed by real address of the remote peer, optimized for iteration.
 
struct scheduleschedule
 
struct mbuf_setmbuf
 Set of buffers for passing data channel packets between VPN tunnel instances.
 
struct multi_iomulti_io
 I/O state and events tracker.
 
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.
 
struct buffer hmac_reply
 
struct link_socket_actualhmac_reply_dest
 
struct link_sockethmac_reply_ls
 
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 163 of file multi.h.

Field Documentation

◆ cid_counter

unsigned long multi_context::cid_counter

Definition at line 193 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 199 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 197 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 185 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 167 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 205 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 206 of file multi.h.

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

◆ hmac_reply_ls

struct link_socket* multi_context::hmac_reply_ls

Definition at line 207 of file multi.h.

Referenced by multi_get_create_instance_udp(), and multi_process_outgoing_link().

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

Referenced by 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 184 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 186 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 175 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 198 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 180 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 200 of file multi.h.

Referenced by multi_process_per_second_timers().

◆ reaper

struct multi_reap* multi_context::reaper

Definition at line 183 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 212 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 187 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 169 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: