|
Tor 0.4.9.8
|
#include <conflux_st.h>
Data Fields | |
| struct conflux_params_t | params |
| smartlist_t * | legs |
| smartlist_t * | ooo_q |
| size_t | ooo_q_alloc_cost |
| 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 119 of file conflux_st.h.
Referenced by conflux_can_switch(), conflux_decide_circ_for_send(), conflux_note_cell_sent(), and conflux_pick_first_leg().
| struct conflux_leg_t* curr_leg |
Current circuit leg. Only use this with conflux_get_circ_for_leg() for bounds checking.
Definition at line 123 of file conflux_st.h.
Referenced by cfx_del_leg(), circuit_get_package_window(), conflux_can_send(), conflux_decide_circ_for_send(), conflux_decide_next_circ(), conflux_log_set(), and conflux_pick_first_leg().
| 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 135 of file conflux_st.h.
Referenced by circuit_get_package_window(), conflux_can_send(), conflux_decide_next_circ(), conflux_log_set(), conflux_mark_all_for_close(), and linked_circuit_free().
| 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 114 of file conflux_st.h.
Referenced by conflux_dequeue_relay_msg(), conflux_launch_leg(), conflux_log_set(), conflux_process_link(), conflux_process_relay_msg(), and 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 cfx_add_leg(), cfx_del_leg(), conflux_get_circ_for_conn(), conflux_get_leg(), conflux_log_set(), conflux_mark_all_for_close(), conflux_new(), conflux_pick_first_leg(), conflux_validate_legs(), conflux_validate_stream_lists(), count_client_usable_sets(), get_exit_for_nonce(), linked_circuit_closed(), linked_circuit_free(), and try_finalize_set().
| uint8_t nonce[DIGEST256_LEN] |
The nonce that joins these
Definition at line 130 of file conflux_st.h.
Referenced by cfx_add_leg(), conflux_decide_circ_for_send(), conflux_get_nonce(), conflux_log_set(), conflux_process_linked_ack(), launch_leg_is_allowed(), link_circuit(), linked_circuit_closed(), linked_circuit_free(), linked_pool_add(), try_finalize_set(), unlinked_new(), 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 139 of file conflux_st.h.
Referenced by conflux_launch_leg(), conflux_log_set(), launch_leg_is_allowed(), and try_finalize_set().
| 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 conflux_clear_ooo_q(), conflux_dequeue_relay_msg(), conflux_get_circ_bytes_allocation(), conflux_new(), conflux_process_relay_msg(), and linked_circuit_free().
| size_t ooo_q_alloc_cost |
Approximate allocation cost of the bytes stored in ooo_q and the messages that it contains.
Definition at line 109 of file conflux_st.h.
Referenced by conflux_dequeue_relay_msg(), conflux_get_circ_bytes_allocation(), and conflux_process_relay_msg().
| struct conflux_params_t params |
Cached parameters for this circuit
Definition at line 88 of file conflux_st.h.
Referenced by cfx_add_leg(), and conflux_decide_next_circ().
| struct conflux_leg_t* prev_leg |
Previous circuit leg. Only use this with conflux_get_circ_for_leg() for bounds checking.
Definition at line 127 of file conflux_st.h.
Referenced by cfx_del_leg(), conflux_can_switch(), conflux_decide_circ_for_send(), and conflux_log_set().