#include "core/or/or.h"
+#include "core/crypto/onion_crypto.h"
#include "core/or/circuitlist.h"
#include "core/or/crypt_path.h"
#include "core/or/or_circuit_st.h"
/** Allocate and initialize a new congestion control object */
congestion_control_t *
-congestion_control_new(void)
+congestion_control_new(const circuit_params_t *params)
{
congestion_control_t *cc = tor_malloc_zero(sizeof(congestion_control_t));
+ /* TODO: Use `params` to pick the algorithm and the window. */
+ (void) params;
+
// XXX: the alg and the sendme_inc need to be negotiated during
// circuit handshake
congestion_control_init(cc, CC_ALG_VEGAS, SENDME_INC_DFLT);
void congestion_control_free_(congestion_control_t *cc);
-congestion_control_t *congestion_control_new(void);
+/* TODO: Whisky Tango Foxtot‽ Nothing calls this function anywhere! */
+struct circuit_params_t;
+congestion_control_t *congestion_control_new(
+ const struct circuit_params_t *params);
int congestion_control_dispatch_cc_alg(congestion_control_t *cc,
const circuit_t *circ,