GNUnet  0.11.x
Data Fields
CadetChannel Struct Reference

Struct containing all information regarding a channel to a remote client. More...

Collaboration diagram for CadetChannel:
[legend]

Data Fields

struct CadetTunnelt
 Tunnel this channel is in. More...
 
struct CadetChannelClientowner
 Client owner of the tunnel, if any. More...
 
struct CadetChannelClientdest
 Client destination of the tunnel, if any. More...
 
struct CadetTunnelQueueEntrylast_control_qe
 Last entry in the tunnel's queue relating to control messages (GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN or GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN_ACK). More...
 
struct CadetReliableMessagehead_sent
 Head of DLL of messages sent and not yet ACK'd. More...
 
struct CadetReliableMessagetail_sent
 Tail of DLL of messages sent and not yet ACK'd. More...
 
struct GNUNET_SCHEDULER_Taskretry_control_task
 Task to resend/poll in case no ACK is received. More...
 
struct GNUNET_SCHEDULER_Taskretry_data_task
 Task to resend/poll in case no ACK is received. More...
 
struct GNUNET_TIME_Absolute timestamp
 Last time the channel was used. More...
 
struct GNUNET_HashCode port
 Destination port of the channel. More...
 
struct GNUNET_HashCode h_port
 Hash'ed port of the channel with initiator and destination PID. More...
 
struct GNUNET_TIME_Relative retry_time
 Counter for exponential backoff. More...
 
uint64_t mid_futures
 Bitfield of already-received messages past mid_recv. More...
 
struct ChannelMessageIdentifier mid_recv
 Next MID expected for incoming traffic. More...
 
struct ChannelMessageIdentifier mid_send
 Next MID to use for outgoing traffic. More...
 
unsigned int pending_messages
 Total (reliable) messages pending ACK for this channel. More...
 
unsigned int max_pending_messages
 Maximum (reliable) messages pending ACK for this channel before we throttle the client. More...
 
struct GNUNET_CADET_ChannelTunnelNumber ctn
 Number identifying this channel in its tunnel. More...
 
enum CadetChannelState state
 Channel state. More...
 
unsigned int skip_ack_series
 Count how many ACKs we skipped, used to prevent long sequences of ACK skipping. More...
 
int nobuffer
 Is the tunnel bufferless (minimum latency)? More...
 
int reliable
 Is the tunnel reliable? More...
 
int out_of_order
 Is the tunnel out-of-order? More...
 
int is_loopback
 Is this channel a loopback channel, where the destination is us again? More...
 
int destroy
 Flag to signal the destruction of the channel. More...
 

Detailed Description

Struct containing all information regarding a channel to a remote client.

Definition at line 248 of file gnunet-service-cadet_channel.c.

Field Documentation

◆ t

struct CadetTunnel* CadetChannel::t

◆ owner

struct CadetChannelClient* CadetChannel::owner

◆ dest

struct CadetChannelClient* CadetChannel::dest

◆ last_control_qe

struct CadetTunnelQueueEntry* CadetChannel::last_control_qe

Last entry in the tunnel's queue relating to control messages (GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN or GNUNET_MESSAGE_TYPE_CADET_CHANNEL_OPEN_ACK).

Used to cancel transmission in case we receive updated information.

Definition at line 273 of file gnunet-service-cadet_channel.c.

Referenced by channel_destroy(), channel_open_sent_cb(), send_ack_cb(), send_channel_data_ack(), send_channel_open(), and send_open_ack().

◆ head_sent

struct CadetReliableMessage* CadetChannel::head_sent

◆ tail_sent

struct CadetReliableMessage* CadetChannel::tail_sent

Tail of DLL of messages sent and not yet ACK'd.

Definition at line 283 of file gnunet-service-cadet_channel.c.

Referenced by channel_destroy(), data_sent_cb(), GCCH_handle_local_data(), and handle_matching_ack().

◆ retry_control_task

struct GNUNET_SCHEDULER_Task* CadetChannel::retry_control_task

◆ retry_data_task

struct GNUNET_SCHEDULER_Task* CadetChannel::retry_data_task

Task to resend/poll in case no ACK is received.

Definition at line 293 of file gnunet-service-cadet_channel.c.

Referenced by channel_destroy(), data_sent_cb(), GCCH_handle_channel_plaintext_data_ack(), GCCH_handle_local_data(), and retry_transmission().

◆ timestamp

struct GNUNET_TIME_Absolute CadetChannel::timestamp

Last time the channel was used.

Definition at line 298 of file gnunet-service-cadet_channel.c.

◆ port

struct GNUNET_HashCode CadetChannel::port

◆ h_port

struct GNUNET_HashCode CadetChannel::h_port

Hash'ed port of the channel with initiator and destination PID.

Definition at line 308 of file gnunet-service-cadet_channel.c.

Referenced by channel_destroy(), GCCH_channel_incoming_new(), GCCH_channel_local_new(), and send_channel_open().

◆ retry_time

struct GNUNET_TIME_Relative CadetChannel::retry_time

Counter for exponential backoff.

Definition at line 313 of file gnunet-service-cadet_channel.c.

Referenced by channel_open_sent_cb(), data_sent_cb(), GCCH_channel_incoming_new(), and GCCH_channel_local_new().

◆ mid_futures

uint64_t CadetChannel::mid_futures

Bitfield of already-received messages past mid_recv.

Definition at line 318 of file gnunet-service-cadet_channel.c.

Referenced by GCCH_debug(), GCCH_handle_channel_plaintext_data(), GCCH_handle_local_ack(), and send_channel_data_ack().

◆ mid_recv

struct ChannelMessageIdentifier CadetChannel::mid_recv

◆ mid_send

struct ChannelMessageIdentifier CadetChannel::mid_send

Next MID to use for outgoing traffic.

Definition at line 328 of file gnunet-service-cadet_channel.c.

Referenced by GCCH_debug(), and GCCH_handle_local_data().

◆ pending_messages

unsigned int CadetChannel::pending_messages

Total (reliable) messages pending ACK for this channel.

Definition at line 333 of file gnunet-service-cadet_channel.c.

Referenced by data_sent_cb(), GCCH_handle_local_data(), handle_matching_ack(), and send_ack_to_client().

◆ max_pending_messages

unsigned int CadetChannel::max_pending_messages

◆ ctn

struct GNUNET_CADET_ChannelTunnelNumber CadetChannel::ctn

◆ state

enum CadetChannelState CadetChannel::state

◆ skip_ack_series

unsigned int CadetChannel::skip_ack_series

Count how many ACKs we skipped, used to prevent long sequences of ACK skipping.

Definition at line 355 of file gnunet-service-cadet_channel.c.

◆ nobuffer

int CadetChannel::nobuffer

Is the tunnel bufferless (minimum latency)?

Definition at line 360 of file gnunet-service-cadet_channel.c.

Referenced by GCCH_channel_incoming_new(), and GCCH_channel_local_new().

◆ reliable

int CadetChannel::reliable

◆ out_of_order

int CadetChannel::out_of_order

◆ is_loopback

int CadetChannel::is_loopback

◆ destroy

int CadetChannel::destroy

Flag to signal the destruction of the channel.

If this is set to GNUNET_YES the channel will be destroyed once the queue is empty.

Definition at line 382 of file gnunet-service-cadet_channel.c.

Referenced by GCCH_channel_local_destroy(), GCCH_handle_channel_plaintext_data(), GCCH_handle_local_ack(), GCCH_handle_local_data(), GCCH_handle_remote_destroy(), and send_ack_to_client().


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