tor  0.4.2.0-alpha-dev
Data Fields
or_circuit_t Struct Reference

#include <or_circuit_st.h>

Data Fields

circuit_t base_
 
struct onion_queue_tonionqueue_entry
 
struct workqueue_entry_sworkqueue_entry
 
circid_t p_circ_id
 
cell_queue_t p_chan_cells
 
channel_tp_chan
 
edge_connection_tn_streams
 
edge_connection_tresolving_streams
 
relay_crypto_t crypto
 
struct or_circuit_trend_splice
 
char rend_circ_nonce [DIGEST_LEN]
 
unsigned int remaining_relay_early_cells: 4
 
unsigned int already_received_introduce1: 1
 
unsigned int circuit_carries_hs_traffic_stats: 1
 
uint32_t processed_cells
 
uint64_t total_cell_waiting_time
 

Detailed Description

An or_circuit_t holds information needed to implement a circuit at an OR.

Definition at line 19 of file or_circuit_st.h.

Field Documentation

◆ circuit_carries_hs_traffic_stats

unsigned int or_circuit_t::circuit_carries_hs_traffic_stats

If set, this circuit carries HS traffic. Consider it in any HS statistics.

Definition at line 62 of file or_circuit_st.h.

◆ crypto

relay_crypto_t or_circuit_t::crypto

Cryptographic state used for encrypting and authenticating relay cells to and from this hop.

Definition at line 44 of file or_circuit_st.h.

◆ n_streams

edge_connection_t* or_circuit_t::n_streams

Linked list of Exit streams associated with this circuit.

Definition at line 37 of file or_circuit_st.h.

Referenced by circuit_expire_old_circuits_serverside(), and set_streams_blocked_on_circ().

◆ onionqueue_entry

struct onion_queue_t* or_circuit_t::onionqueue_entry

Pointer to an entry on the onion queue, if this circuit is waiting for a chance to give an onionskin to a cpuworker. Used only in onion.c

Definition at line 24 of file or_circuit_st.h.

Referenced by onion_pending_remove().

◆ p_chan

channel_t* or_circuit_t::p_chan

◆ p_chan_cells

cell_queue_t or_circuit_t::p_chan_cells

Queue of cells waiting to be transmitted on p_conn.

Definition at line 33 of file or_circuit_st.h.

Referenced by append_cell_to_circuit_queue(), circuit_clear_cell_queue(), circuit_resume_edge_reading_helper(), dump_cell_pool_usage(), MOCK_IMPL(), and n_cells_in_circ_queues().

◆ p_circ_id

circid_t or_circuit_t::p_circ_id

The circuit_id used in the previous (backward) hop of this circuit.

Definition at line 31 of file or_circuit_st.h.

Referenced by channel_note_destroy_pending(), circuit_dump_by_conn(), circuit_set_p_circid_chan(), circuitmux_find_map_entry(), format_cell_stats(), and MOCK_IMPL().

◆ processed_cells

uint32_t or_circuit_t::processed_cells

Number of cells that were removed from circuit queue; reset every time when writing buffer stats to disk.

Definition at line 66 of file or_circuit_st.h.

Referenced by rep_hist_buffer_stats_add_circ().

◆ remaining_relay_early_cells

unsigned int or_circuit_t::remaining_relay_early_cells

How many more relay_early cells can we send on this circuit, according to the specification?

Definition at line 55 of file or_circuit_st.h.

◆ rend_circ_nonce

char or_circuit_t::rend_circ_nonce[DIGEST_LEN]

Stores KH for the handshake.

Definition at line 51 of file or_circuit_st.h.

◆ rend_splice

struct or_circuit_t* or_circuit_t::rend_splice

Points to spliced circuit if purpose is REND_ESTABLISHED, and circuit is not marked for close.

Definition at line 48 of file or_circuit_st.h.

Referenced by circuit_expire_old_circuits_serverside().

◆ resolving_streams

edge_connection_t* or_circuit_t::resolving_streams

Linked list of Exit streams associated with this circuit that are still being resolved.

Definition at line 40 of file or_circuit_st.h.

Referenced by circuit_expire_old_circuits_serverside(), and circuit_free_all().

◆ total_cell_waiting_time

uint64_t or_circuit_t::total_cell_waiting_time

Total time in milliseconds that cells spent in both app-ward and exit-ward queues of this circuit; reset every time when writing buffer stats to disk.

Definition at line 71 of file or_circuit_st.h.

Referenced by rep_hist_buffer_stats_add_circ().

◆ workqueue_entry

struct workqueue_entry_s* or_circuit_t::workqueue_entry

Pointer to a workqueue entry, if this circuit has given an onionskin to a cpuworker and is waiting for a response. Used to decide whether it is safe to free a circuit or if it is still in use by a cpuworker.

Definition at line 28 of file or_circuit_st.h.

Referenced by cpuworker_cancel_circ_handshake().


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