OpenVPN
|
Main OpenVPN server state structure. More...
#include <multi.h>
Data Fields | |
struct multi_instance ** | instances |
Array of multi_instances. More... | |
struct hash * | hash |
VPN tunnel instances indexed by real address of the remote peer. More... | |
struct hash * | vhash |
VPN tunnel instances indexed by virtual address of remote hosts. More... | |
struct hash * | iter |
VPN tunnel instances indexed by real address of the remote peer, optimized for iteration. More... | |
struct schedule * | schedule |
struct mbuf_set * | mbuf |
Set of buffers for passing data channel packets between VPN tunnel instances. More... | |
struct multi_tcp * | mtcp |
State specific to OpenVPN using TCP as external transport. More... | |
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 |
int | 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. More... | |
struct buffer | hmac_reply |
struct link_socket_actual * | hmac_reply_dest |
struct event_timeout | stale_routes_check_et |
struct deferred_signal_schedule_entry | deferred_shutdown_signal |
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.
unsigned long multi_context::cid_counter |
Definition at line 186 of file multi.h.
Referenced by multi_create_instance().
struct hash* multi_context::cid_hash |
Definition at line 185 of file multi.h.
Referenced by lookup_by_cid(), multi_close_instance(), multi_create_instance(), multi_init(), multi_process_float(), and multi_uninit().
struct context_buffers* multi_context::context_buffers |
struct deferred_signal_schedule_entry multi_context::deferred_shutdown_signal |
Definition at line 211 of file multi.h.
Referenced by multi_get_create_instance_udp(), multi_init(), multi_process_signal(), multi_process_timeout(), and multi_push_restart_schedule_exit().
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().
bool multi_context::enable_c2c |
Definition at line 178 of file multi.h.
Referenced by multi_init(), and multi_process_incoming_link().
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().
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().
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().
struct ifconfig_pool* multi_context::ifconfig_pool |
Definition at line 172 of file multi.h.
Referenced by multi_close_instance(), multi_ifconfig_pool_persist(), multi_init(), multi_select_virtual_addr(), and multi_uninit().
struct initial_packet_rate_limit* multi_context::initial_rate_limiter |
Definition at line 174 of file multi.h.
Referenced by do_pre_decrypt_check(), multi_get_create_instance_udp(), multi_init(), and multi_uninit().
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().
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().
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().
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().
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().
struct multi_instance** multi_context::mpp_touched |
Definition at line 191 of file multi.h.
Referenced by multi_process_post(), and multi_tcp_dispatch().
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().
int multi_context::n_clients |
Definition at line 182 of file multi.h.
Referenced by management_callback_n_clients(), multi_close_instance(), and multi_connection_established().
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().
struct multi_instance* multi_context::pending |
Definition at line 189 of file multi.h.
Referenced by multi_close_instance(), multi_process_drop_outgoing_tun(), multi_process_incoming_link(), multi_process_incoming_tun(), multi_process_outgoing_link_pre(), multi_process_outgoing_tun(), multi_process_post(), multi_set_pending(), multi_tcp_action(), and p2mp_iow_flags().
time_t multi_context::per_second_trigger |
Definition at line 193 of file multi.h.
Referenced by multi_process_per_second_timers().
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().
struct mroute_helper* multi_context::route_helper |
Definition at line 175 of file multi.h.
Referenced by multi_add_iroutes(), multi_del_iroutes(), multi_get_instance_by_virtual_addr(), multi_init(), multi_learn_addr(), multi_route_defined(), and multi_uninit().
struct schedule* multi_context::schedule |
Definition at line 166 of file multi.h.
Referenced by multi_close_instance(), multi_get_timeout(), multi_init(), multi_process_timeout(), multi_push_restart_schedule_exit(), multi_schedule_context_wakeup(), and multi_uninit().
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().
int multi_context::status_file_version |
Definition at line 181 of file multi.h.
Referenced by management_callback_status(), multi_init(), multi_process_per_second_timers_dowork(), and multi_process_signal().
int multi_context::tcp_queue_limit |
Definition at line 180 of file multi.h.
Referenced by multi_init(), and multi_output_queue_ready().
struct context multi_context::top |
Storage structure for process-wide configuration.
Definition at line 195 of file multi.h.
Referenced by check_stale_routes(), do_pre_decrypt_check(), learn_address_script(), multi_create_instance(), multi_get_create_instance_udp(), multi_ifconfig_pool_persist(), multi_print_status(), multi_process_float(), multi_process_incoming_link(), multi_process_incoming_tun(), multi_process_io_udp(), multi_process_outgoing_link(), multi_process_per_second_timers_dowork(), multi_process_post(), multi_process_signal(), multi_push_restart_schedule_exit(), multi_tcp_context(), multi_tcp_dispatch(), multi_tcp_instance_specific_init(), multi_tcp_process_io(), multi_top_free(), multi_top_init(), p2mp_iow_flags(), send_hmac_reset_packet(), setenv_stats(), tunnel_server_tcp(), tunnel_server_udp(), and vlan_process_outgoing_tun().
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().