Tor 0.4.9.1-alpha-dev
|
#include <conflux_st.h>
Data Fields | |
struct conflux_params_t | params |
smartlist_t * | legs |
smartlist_t * | ooo_q |
uint64_t | last_seq_delivered |
uint64_t | cells_until_switch |
struct conflux_leg_t * | curr_leg |
struct conflux_leg_t * | prev_leg |
uint8_t | nonce [DIGEST256_LEN] |
bool | in_full_teardown |
unsigned int | num_leg_launch |
Fields for conflux multipath support
Definition at line 86 of file conflux_st.h.
uint64_t cells_until_switch |
The estimated remaining number of cells we can send on this circuit before we are allowed to switch legs.
Definition at line 113 of file conflux_st.h.
Referenced by conflux_can_switch().
struct conflux_leg_t* curr_leg |
Current circuit leg. Only use this with conflux_get_circ_for_leg() for bounds checking.
Definition at line 117 of file conflux_st.h.
Referenced by conflux_decide_next_circ().
bool in_full_teardown |
Indicate if this conflux set is in full teardown. We mark it at the first close in case of a total teardown so we avoid recursive calls of circuit mark for close.
Definition at line 129 of file conflux_st.h.
Referenced by conflux_decide_next_circ(), and conflux_mark_all_for_close().
uint64_t last_seq_delivered |
Absolute sequence number of cells delivered to streams since start. (ie: this is updated after dequeue from the ooo_q priority queue).
Definition at line 108 of file conflux_st.h.
Referenced by validate_unlinked_legs().
smartlist_t* legs |
List of all linked conflux_leg_t for this set. Once a leg is in that list, it can be used to transmit data.
Definition at line 93 of file conflux_st.h.
Referenced by conflux_get_leg(), conflux_mark_all_for_close(), get_exit_for_nonce(), and linked_circuit_free().
uint8_t nonce[DIGEST256_LEN] |
The nonce that joins these
Definition at line 124 of file conflux_st.h.
Referenced by cfx_add_leg(), conflux_log_set(), linked_pool_add(), unlinked_pool_add(), and unlinked_pool_del().
unsigned int num_leg_launch |
Number of leg launch that we've done for this set. We keep this value because there is a maximum allowed in order to avoid side channel(s).
Definition at line 133 of file conflux_st.h.
Referenced by launch_leg_is_allowed().
smartlist_t* ooo_q |
Out-of-order priority queue of conflux_cell_t *, heapified on conflux_cell_t.seq number (lowest at top of heap).
XXX: We are most likely to insert cells at either the head or the tail. Verify that is fast-path wrt smartlist priority queues, and not a memmove nightmare. If so, we may need a real linked list, or a packed_cell_t list.
Definition at line 103 of file conflux_st.h.
Referenced by linked_circuit_free().
struct conflux_params_t params |
Cached parameters for this circuit
Definition at line 88 of file conflux_st.h.
struct conflux_leg_t* prev_leg |
Previous circuit leg. Only use this with conflux_get_circ_for_leg() for bounds checking.
Definition at line 121 of file conflux_st.h.
Referenced by conflux_can_switch().