21 uint32_t circuit_bucket;
26 time_t last_circ_bucket_refill_ts;
32 time_t marked_until_ts;
39 uint32_t concurrent_count;
48 time_t marked_until_ts;
72void dos_free_all(
void);
75void dos_log_heartbeat(
void);
80 const char *transport_name);
83int dos_should_refuse_single_hop_client(
void);
84void dos_note_refuse_single_hop_client(
void);
85void dos_note_circ_max_outq(
const channel_t *chan);
87uint32_t dos_get_num_cc_marked_addr(
void);
88uint32_t dos_get_num_cc_marked_addr_maxq(
void);
89uint64_t dos_get_num_cc_rejected(
void);
90uint64_t dos_get_num_conn_addr_rejected(
void);
91uint64_t dos_get_num_conn_addr_connect_rejected(
void);
92uint64_t dos_get_num_single_hop_refused(
void);
93uint64_t dos_get_num_stream_rejected(
void);
100#define DOS_CC_ENABLED_DEFAULT 0
102#define DOS_CC_DEFENSE_TYPE_DEFAULT DOS_CC_DEFENSE_REFUSE_CELL
104#define DOS_CC_MIN_CONCURRENT_CONN_DEFAULT 3
106#define DOS_CC_CIRCUIT_RATE_DEFAULT 3
108#define DOS_CC_CIRCUIT_BURST_DEFAULT 90
110#define DOS_CC_DEFENSE_TIME_PERIOD_DEFAULT (60 * 60)
113typedef enum dos_cc_defense_type_t {
115 DOS_CC_DEFENSE_NONE = 1,
117 DOS_CC_DEFENSE_REFUSE_CELL = 2,
121 DOS_CC_DEFENSE_MAX = 2,
122} dos_cc_defense_type_t;
124void dos_cc_new_create_cell(
channel_t *channel);
125dos_cc_defense_type_t dos_cc_get_defense_type(
channel_t *chan);
132#define DOS_CONN_ENABLED_DEFAULT 0
134#define DOS_CONN_MAX_CONCURRENT_COUNT_DEFAULT 100
136#define DOS_CONN_DEFENSE_TYPE_DEFAULT DOS_CONN_DEFENSE_CLOSE
138#define DOS_CONN_CONNECT_RATE_DEFAULT 20
140#define DOS_CONN_CONNECT_BURST_DEFAULT 40
142#define DOS_CONN_CONNECT_DEFENSE_TIME_PERIOD_DEFAULT (24 * 60 * 60)
146#define DOS_CONN_CONNECT_DEFENSE_TIME_PERIOD_MIN (10)
150typedef enum dos_conn_defense_type_t {
152 DOS_CONN_DEFENSE_NONE = 1,
154 DOS_CONN_DEFENSE_CLOSE = 2,
158 DOS_CONN_DEFENSE_MAX = 2,
159} dos_conn_defense_type_t;
161dos_conn_defense_type_t dos_conn_addr_get_defense_type(
const tor_addr_t *addr);
168#define DOS_STREAM_ENABLED_DEFAULT 0
170#define DOS_STREAM_DEFENSE_TYPE_DEFAULT DOS_STREAM_DEFENSE_REFUSE_STREAM
172#define DOS_STREAM_RATE_DEFAULT 100
174#define DOS_STREAM_BURST_DEFAULT 300
177typedef enum dos_stream_defense_type_t {
179 DOS_STREAM_DEFENSE_NONE = 1,
181 DOS_STREAM_DEFENSE_REFUSE_STREAM = 2,
183 DOS_STREAM_DEFENSE_CLOSE_CIRCUIT = 3,
187 DOS_STREAM_DEFENSE_MAX = 3,
188} dos_stream_defense_type_t;
190dos_stream_defense_type_t dos_stream_new_begin_or_resolve_cell(
196STATIC uint32_t get_param_conn_max_concurrent_count(
199STATIC uint32_t get_param_cc_min_concurrent_connection(
203STATIC uint64_t get_circuit_rate_per_second(
void);
Master header file for Tor-specific functionality.
uint32_t num_circ_max_cell_queue_size
#define MOCK_DECL(rv, funcname, arglist)
Headers for token_bucket.c.