congestion_control_vegas.h (1723B)
1 /* Copyright (c) 2019-2021, The Tor Project, Inc. */ 2 /* See LICENSE for licensing information */ 3 4 /** 5 * \file congestion_control_vegas.h 6 * \brief Private-ish APIs for the TOR_VEGAS congestion control algorithm 7 **/ 8 9 #ifndef TOR_CONGESTION_CONTROL_VEGAS_H 10 #define TOR_CONGESTION_CONTROL_VEGAS_H 11 12 #include "core/or/crypt_path_st.h" 13 #include "core/or/circuit_st.h" 14 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; 24 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; 28 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; 32 33 extern uint64_t cc_stats_vegas_below_ss_inc_floor; 34 extern uint64_t cc_stats_vegas_circ_exited_ss; 35 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); 41 42 /* Private section starts. */ 43 #ifdef TOR_CONGESTION_CONTROL_VEGAS_PRIVATE 44 45 /* 46 * Unit tests declaractions. 47 */ 48 #ifdef TOR_UNIT_TESTS 49 50 #endif /* defined(TOR_UNIT_TESTS) */ 51 52 #endif /* defined(TOR_CONGESTION_CONTROL_VEGAS_PRIVATE) */ 53 54 #endif /* !defined(TOR_CONGESTION_CONTROL_VEGAS_H) */