Tor 0.4.9.8
Loading...
Searching...
No Matches
conflux_t Struct Reference

#include <conflux_st.h>

Data Fields

struct conflux_params_t params
 
smartlist_tlegs
 
smartlist_tooo_q
 
size_t ooo_q_alloc_cost
 
uint64_t last_seq_delivered
 
uint64_t cells_until_switch
 
struct conflux_leg_tcurr_leg
 
struct conflux_leg_tprev_leg
 
uint8_t nonce [DIGEST256_LEN]
 
bool in_full_teardown
 
unsigned int num_leg_launch
 

Detailed Description

Fields for conflux multipath support

Definition at line 86 of file conflux_st.h.

Field Documentation

◆ cells_until_switch

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().

◆ curr_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().

◆ in_full_teardown

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().

◆ last_seq_delivered

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().

◆ legs

◆ nonce

◆ num_leg_launch

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().

◆ ooo_q

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().

◆ ooo_q_alloc_cost

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().

◆ params

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().

◆ prev_leg

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().


The documentation for this struct was generated from the following file: