Merge branch 'maint-0.4.8'
[tor.git] / src / core / or / congestion_control_vegas.h
blob24af16822c00b1bd72a79110251e905b66b25040
1 /* Copyright (c) 2019-2021, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
4 /**
5 * \file congestion_control_vegas.h
6 * \brief Private-ish APIs for the TOR_VEGAS congestion control algorithm
7 **/
9 #ifndef TOR_CONGESTION_CONTROL_VEGAS_H
10 #define TOR_CONGESTION_CONTROL_VEGAS_H
12 #include "core/or/crypt_path_st.h"
13 #include "core/or/circuit_st.h"
15 extern double cc_stats_vegas_exit_ss_cwnd_ma;
16 extern double cc_stats_vegas_exit_ss_bdp_ma;
17 extern double cc_stats_vegas_exit_ss_inc_ma;
18 extern double cc_stats_vegas_gamma_drop_ma;
19 extern double cc_stats_vegas_delta_drop_ma;
20 extern double cc_stats_vegas_ss_csig_blocked_ma;
21 extern double cc_stats_vegas_csig_blocked_ma;
22 extern uint64_t cc_stats_vegas_above_delta;
23 extern uint64_t cc_stats_vegas_above_ss_cwnd_max;
25 extern double cc_stats_vegas_csig_alpha_ma;
26 extern double cc_stats_vegas_csig_beta_ma;
27 extern double cc_stats_vegas_csig_delta_ma;
29 extern double cc_stats_vegas_ss_queue_ma;
30 extern double cc_stats_vegas_queue_ma;
31 extern double cc_stats_vegas_bdp_ma;
33 extern uint64_t cc_stats_vegas_below_ss_inc_floor;
34 extern uint64_t cc_stats_vegas_circ_exited_ss;
36 /* Processing SENDME cell. */
37 int congestion_control_vegas_process_sendme(struct congestion_control_t *cc,
38 const circuit_t *circ);
39 void congestion_control_vegas_set_params(struct congestion_control_t *cc,
40 cc_path_t path);
42 /* Private section starts. */
43 #ifdef TOR_CONGESTION_CONTROL_VEGAS_PRIVATE
46 * Unit tests declaractions.
48 #ifdef TOR_UNIT_TESTS
50 #endif /* defined(TOR_UNIT_TESTS) */
52 #endif /* defined(TOR_CONGESTION_CONTROL_VEGAS_PRIVATE) */
54 #endif /* !defined(TOR_CONGESTION_CONTROL_VEGAS_H) */