19#define CONFLUX_FOR_EACH_LEG_BEGIN(cfx, var) \
20 SMARTLIST_FOREACH_BEGIN(cfx->legs, conflux_leg_t *, var)
21#define CONFLUX_FOR_EACH_LEG_END(var) \
22 SMARTLIST_FOREACH_END(var)
25#define CONFLUX_NUM_LEGS(cfx) (smartlist_len(cfx->legs))
53 uint8_t relay_command);
65 uint8_t relay_command);
68#ifdef TOR_CONFLUX_PRIVATE
const congestion_control_t * circuit_ccontrol(const circuit_t *circ)
uint64_t conflux_get_max_seq_recv(const conflux_t *cfx)
uint64_t conflux_get_max_seq_sent(const conflux_t *cfx)
conflux_leg_t * conflux_get_leg(conflux_t *cfx, const circuit_t *circ)
void conflux_note_cell_sent(conflux_t *cfx, circuit_t *circ, uint8_t relay_command)
void conflux_update_rtt(conflux_t *cfx, circuit_t *circ, uint64_t rtt_usec)
bool conflux_process_cell(conflux_t *cfx, circuit_t *in_circ, crypt_path_t *layer_hint, cell_t *cell)
int conflux_process_switch_command(circuit_t *in_circ, crypt_path_t *layer_hint, cell_t *cell, relay_header_t *rh)
bool conflux_should_multiplex(int relay_command)
circuit_t * conflux_decide_next_circ(conflux_t *cfx)
uint64_t conflux_get_circ_bytes_allocation(const circuit_t *circ)
conflux_cell_t * conflux_dequeue_cell(conflux_t *cfx)
circuit_t * conflux_decide_circ_for_send(conflux_t *cfx, circuit_t *orig_circ, uint8_t relay_command)
size_t conflux_handle_oom(size_t bytes_to_remove)
uint64_t conflux_get_total_bytes_allocation(void)
Structure definitions for conflux multipath.