Tor 0.4.9.1-alpha-dev
|
Data Fields | |
uint64_t | last_seq_recv |
uint64_t | last_seq_sent |
uint64_t | circ_rtts_usec |
uint64_t | linked_sent_usec |
circuit_t * | circ |
Definition at line 30 of file conflux_st.h.
circuit_t* circ |
Circuit of this leg.
Definition at line 82 of file conflux_st.h.
Referenced by conflux_can_switch(), and conflux_decide_next_circ().
uint64_t circ_rtts_usec |
Current round-trip of the circuit, in usec.
XXX: In theory, we could use the congestion control RTTs directly off the circs, but congestion control code has assumptions about the RTT being 0 at the start of the circuit, which will not be the case here, because we get an RTT off the link circuit.
Definition at line 75 of file conflux_st.h.
Referenced by conflux_pick_first_leg().
uint64_t last_seq_recv |
For computing ooo_q insertion sequence numbers: Highest absolute sequence number received on each leg, before delivery.
As a receiver, this allows us to compute the absolute sequence number of a cell for delivery or insertion into the ooo_q. When a SWITCH cell is received on a leg, the absolute sequence number of that cell is the relative sequence number in that cell, plus the absolute sequence number of that leg from this array. The leg's sequence number is then updated to this value immediately.
In this way, we are able to assign absolute sequence numbers to cells immediately, regardless of how many legs or leg switches have occurred, and regardless of the delivery status of each cell versus if it must be queued.
Definition at line 47 of file conflux_st.h.
uint64_t last_seq_sent |
For relative sequencing: Highest absolute sequence number sent on each circuit. The overall absolute current sent sequence number is the highest of these values.
As a sender, this allows us to compute a relative sequence number when switching legs. When switching legs, the sender looks up its current absolute sequence number as the maximum of all legs. The sender then compares that to the current sequence number on the leg it is about to send on, and then computes the relative sequence number as the difference between the overall absolute sequence number and the sequence number from the sending leg.
In this way, we can use much smaller relative sequence numbers on the wire, as opposed to larger absolute values, at the expense of this bookkeeping overhead on each end.
Definition at line 66 of file conflux_st.h.
uint64_t linked_sent_usec |
Exit side only: When was the LINKED cell sent? Used for RTT measurement that sets circ_rtts_usec when the LINKED_ACK is received.
Definition at line 79 of file conflux_st.h.