|
OpenVPN
|
Main OpenVPN server state structure. More...
#include <multi.h>

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 | |
| uint32_t | assigned_peer_ids |
| Number of peer-ids that are currently assigned. | |
| 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 hash * | sid_hash |
| TLS sessions indexed by the peer's session id. | |
| 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 |
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.
| uint32_t multi_context::assigned_peer_ids |
Number of peer-ids that are currently assigned.
Definition at line 177 of file multi.h.
Referenced by multi_assign_peer_id(), multi_close_instance(), and multi_create_instance().
| unsigned long multi_context::cid_counter |
Definition at line 208 of file multi.h.
Referenced by multi_create_instance().
| struct hash* multi_context::cid_hash |
Definition at line 207 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 230 of file multi.h.
Referenced by handle_connection_attempt(), multi_init(), multi_process_signal(), multi_process_timeout(), and multi_push_restart_schedule_exit().
| struct multi_instance* multi_context::earliest_wakeup |
Definition at line 212 of file multi.h.
Referenced by multi_close_instance(), multi_get_timeout_instance(), and multi_process_timeout().
| bool multi_context::enable_c2c |
Definition at line 200 of file multi.h.
Referenced by multi_init(), and multi_process_incoming_link_data().
| struct hash* multi_context::hash |
VPN tunnel instances indexed by real address of the remote peer.
Definition at line 179 of file multi.h.
Referenced by management_check_bytecount_server(), multi_check_dest_addr_allowed(), multi_client_connect_real_addr(), multi_close_instance(), multi_get_instance_udp_real(), multi_init(), multi_print_status(), multi_process_float(), and multi_uninit().
| struct ifconfig_pool* multi_context::ifconfig_pool |
Definition at line 194 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 196 of file multi.h.
Referenced by do_pre_decrypt_check(), handle_connection_attempt(), multi_init(), and multi_uninit().
| struct multi_instance** multi_context::instances |
Array of multi_instances with the size of max_clients.
An instance can be accessed using peer-id as an index.
Definition at line 171 of file multi.h.
Referenced by lookup_by_cid(), management_callback_kill_by_addr(), management_callback_kill_by_cn(), multi_assign_peer_id(), multi_bcast(), multi_close_instance(), multi_delete_dup(), multi_get_instance_udp_data(), multi_init(), multi_push_restart_schedule_exit(), multi_uninit(), send_push_update(), setup2(), and teardown2().
| struct mroute_addr multi_context::local |
Definition at line 199 of file multi.h.
Referenced by multi_get_instance_by_virtual_addr(), multi_init(), and multi_learn_addr().
| uint32_t multi_context::max_clients |
Definition at line 201 of file multi.h.
Referenced by multi_assign_peer_id(), multi_create_instance(), and multi_init().
| uint32_t multi_context::max_peerid |
highest currently allocated peer-id and maximum allocated/valid index in instances
Definition at line 174 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().
| struct mbuf_set* multi_context::mbuf |
Set of buffers for passing data channel packets between VPN tunnel instances.
Definition at line 190 of file multi.h.
Referenced by multi_add_mbuf(), multi_close_instance(), multi_init(), multi_io_process_io(), multi_io_write_link_pre(), and multi_uninit().
| struct multi_instance** multi_context::mpp_touched |
Definition at line 213 of file multi.h.
Referenced by multi_io_dispatch(), and multi_process_post().
| struct multi_io* multi_context::multi_io |
I/O state and events tracker.
Definition at line 193 of file multi.h.
Referenced by management_delete_event(), multi_close_instance(), multi_init(), multi_io_process_io(), multi_io_wait(), multi_tcp_set_global_rw_flags(), and multi_uninit().
| int multi_context::n_clients |
Definition at line 204 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 195 of file multi.h.
Referenced by handle_connection_attempt(), multi_init(), and multi_uninit().
| struct multi_instance* multi_context::pending |
Definition at line 211 of file multi.h.
Referenced by multi_close_instance(), multi_io_action(), multi_io_drop_tun(), multi_io_process_io(), multi_io_write_link_pre(), multi_io_write_tun(), multi_process_incoming_link(), multi_process_incoming_link_data(), multi_process_incoming_tun(), multi_process_outgoing_link(), multi_process_post(), multi_set_pending(), and p2mp_iow_flags().
| time_t multi_context::per_second_trigger |
Definition at line 215 of file multi.h.
Referenced by multi_process_per_second_timers().
| struct multi_reap* multi_context::reaper |
Definition at line 198 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 197 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 189 of file multi.h.
Referenced by multi_close_instance(), multi_get_timeout_instance(), multi_init(), multi_process_timeout(), multi_push_restart_schedule_exit(), multi_schedule_context_wakeup(), and multi_uninit().
| struct hash* multi_context::sid_hash |
TLS sessions indexed by the peer's session id.
We do not care about collisions here as clients should have unique ids and supporting clients with identical SIDs is not needed
Definition at line 183 of file multi.h.
Referenced by multi_hash_sid_add(), multi_hash_sid_lookup(), multi_hash_sid_remove(), multi_init(), multi_uninit(), and test_sid_hash_list().
| struct event_timeout multi_context::stale_routes_check_et |
Definition at line 223 of file multi.h.
Referenced by multi_init(), and stale_route_check_trigger().
| int multi_context::status_file_version |
Definition at line 203 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 202 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 217 of file multi.h.
Referenced by check_stale_routes(), do_pre_decrypt_check(), handle_connection_attempt(), learn_address_script(), man_bytecount(), management_check_bytecount_server(), multi_create_instance(), multi_del_iroutes(), multi_get_context(), multi_get_create_instance_udp(), multi_get_instance_udp_data(), multi_ifconfig_pool_persist(), multi_init(), multi_io_dispatch(), multi_io_process_io(), multi_io_wait(), multi_print_status(), multi_process_float(), multi_process_incoming_link(), multi_process_incoming_link_data(), multi_process_incoming_tun(), multi_process_io_udp(), multi_process_per_second_timers_dowork(), multi_process_post(), multi_process_signal(), multi_push_restart_schedule_exit(), multi_tcp_instance_specific_init(), multi_top_free(), multi_top_init(), multi_uninit(), send_standalone_reply(), setup2(), tunnel_server(), tunnel_server_loop(), and vlan_process_outgoing_tun().
| struct hash* multi_context::vhash |
VPN tunnel instances indexed by virtual address of remote hosts.
Definition at line 181 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_all(), multi_reap_process_dowork(), multi_reap_range(), multi_uninit(), and multi_unlearn_addr().