GNUnet  0.11.x
Data Fields
GNUNET_FRAGMENT_Context Struct Reference

Fragmentation context. More...

Collaboration diagram for GNUNET_FRAGMENT_Context:
[legend]

Data Fields

struct GNUNET_STATISTICS_Handlestats
 Statistics to use. More...
 
struct GNUNET_BANDWIDTH_Trackertracker
 Tracker for flow control. More...
 
struct GNUNET_TIME_Relative ack_delay
 Current expected delay for ACKs. More...
 
struct GNUNET_TIME_Relative msg_delay
 Current expected delay between messages. More...
 
struct GNUNET_TIME_Absolute delay_until
 Next allowed transmission time. More...
 
struct GNUNET_TIME_Absolute last_round
 Time we transmitted the last message of the last round. More...
 
const struct GNUNET_MessageHeadermsg
 Message to fragment (allocated at the end of this struct). More...
 
GNUNET_FRAGMENT_MessageProcessor proc
 Function to call for transmissions. More...
 
void * proc_cls
 Closure for proc. More...
 
uint64_t acks
 Bitfield, set to 1 for each unacknowledged fragment. More...
 
uint64_t acks_mask
 Bitfield with all possible bits for acks (used to mask the ack we get back). More...
 
struct GNUNET_SCHEDULER_Tasktask
 Task performing work for the fragmenter. More...
 
uint32_t fragment_id
 Our fragmentation ID. More...
 
unsigned int next_transmission
 Round-robin selector for the next transmission. More...
 
unsigned int num_rounds
 How many rounds of transmission have we completed so far? More...
 
unsigned int num_transmissions
 How many transmission have we completed in this round? More...
 
int8_t proc_busy
 GNUNET_YES if we called proc and are now waiting for GNUNET_FRAGMENT_context_transmission_done() More...
 
int8_t wack
 GNUNET_YES if we are waiting for an ACK. More...
 
uint16_t mtu
 Target fragment size. More...
 

Detailed Description

Fragmentation context.

Definition at line 41 of file fragmentation.c.

Field Documentation

◆ stats

struct GNUNET_STATISTICS_Handle* GNUNET_FRAGMENT_Context::stats

Statistics to use.

Definition at line 46 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ tracker

struct GNUNET_BANDWIDTH_Tracker* GNUNET_FRAGMENT_Context::tracker

Tracker for flow control.

Definition at line 51 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and transmit_next().

◆ ack_delay

struct GNUNET_TIME_Relative GNUNET_FRAGMENT_Context::ack_delay

Current expected delay for ACKs.

Definition at line 56 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), GNUNET_FRAGMENT_context_destroy(), GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ msg_delay

struct GNUNET_TIME_Relative GNUNET_FRAGMENT_Context::msg_delay

Current expected delay between messages.

Definition at line 61 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), GNUNET_FRAGMENT_context_destroy(), GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ delay_until

struct GNUNET_TIME_Absolute GNUNET_FRAGMENT_Context::delay_until

Next allowed transmission time.

Definition at line 66 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_transmission_done(), and transmit_next().

◆ last_round

struct GNUNET_TIME_Absolute GNUNET_FRAGMENT_Context::last_round

Time we transmitted the last message of the last round.

Definition at line 71 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ msg

const struct GNUNET_MessageHeader* GNUNET_FRAGMENT_Context::msg

Message to fragment (allocated at the end of this struct).

Definition at line 76 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and transmit_next().

◆ proc

GNUNET_FRAGMENT_MessageProcessor GNUNET_FRAGMENT_Context::proc

Function to call for transmissions.

Definition at line 81 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and transmit_next().

◆ proc_cls

void* GNUNET_FRAGMENT_Context::proc_cls

Closure for proc.

Definition at line 86 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and transmit_next().

◆ acks

uint64_t GNUNET_FRAGMENT_Context::acks

Bitfield, set to 1 for each unacknowledged fragment.

Definition at line 91 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ acks_mask

uint64_t GNUNET_FRAGMENT_Context::acks_mask

Bitfield with all possible bits for acks (used to mask the ack we get back).

Definition at line 97 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and GNUNET_FRAGMENT_process_ack().

◆ task

struct GNUNET_SCHEDULER_Task* GNUNET_FRAGMENT_Context::task

◆ fragment_id

uint32_t GNUNET_FRAGMENT_Context::fragment_id

Our fragmentation ID.

(chosen at random)

Definition at line 107 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ next_transmission

unsigned int GNUNET_FRAGMENT_Context::next_transmission

Round-robin selector for the next transmission.

Definition at line 112 of file fragmentation.c.

Referenced by transmit_next().

◆ num_rounds

unsigned int GNUNET_FRAGMENT_Context::num_rounds

How many rounds of transmission have we completed so far?

Definition at line 117 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_destroy(), and transmit_next().

◆ num_transmissions

unsigned int GNUNET_FRAGMENT_Context::num_transmissions

How many transmission have we completed in this round?

Definition at line 122 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ proc_busy

int8_t GNUNET_FRAGMENT_Context::proc_busy

◆ wack

int8_t GNUNET_FRAGMENT_Context::wack

GNUNET_YES if we are waiting for an ACK.

Definition at line 132 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_process_ack(), and transmit_next().

◆ mtu

uint16_t GNUNET_FRAGMENT_Context::mtu

Target fragment size.

Definition at line 137 of file fragmentation.c.

Referenced by GNUNET_FRAGMENT_context_create(), and transmit_next().


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