Information we keep for one message that is being assembled. More...
Data Fields | |
struct MessageContext * | next |
This is a DLL. More... | |
struct MessageContext * | prev |
This is a DLL. More... | |
struct GNUNET_DEFRAGMENT_Context * | dc |
Associated defragmentation context. More... | |
const struct GNUNET_MessageHeader * | msg |
Pointer to the assembled message, allocated at the end of this struct. More... | |
struct GNUNET_TIME_Absolute | last_update |
Last time we received any update for this message (least-recently updated message will be discarded if we hit the queue size). More... | |
struct GNUNET_SCHEDULER_Task * | ack_task |
Task scheduled for transmitting the next ACK to the other peer. More... | |
struct FragTimes | frag_times [64] |
When did we receive which fragment? Used to calculate the time we should send the ACK. More... | |
uint64_t | bits |
Which fragments have we gotten yet? bits that are 1 indicate missing fragments. More... | |
uint32_t | fragment_id |
Unique ID for this message. More... | |
unsigned int | last_bit |
Which 'bit' did the last fragment we received correspond to? More... | |
unsigned int | frag_times_start_offset |
For the current ACK round, which is the first relevant offset in frag_times? More... | |
unsigned int | frag_times_write_offset |
Which offset would we write the next frag value into in the frag_times array? All smaller entries are valid. More... | |
uint16_t | total_size |
Total size of the message that we are assembling. More... | |
int16_t | last_duplicate |
Was the last fragment we got a duplicate? More... | |
Information we keep for one message that is being assembled.
Note that we keep the context around even after the assembly is done to handle 'stray' messages that are received 'late'. A message context is ONLY discarded when the queue gets too big.
Definition at line 52 of file defragmentation.c.
struct MessageContext* MessageContext::next |
struct MessageContext* MessageContext::prev |
This is a DLL.
Definition at line 62 of file defragmentation.c.
struct GNUNET_DEFRAGMENT_Context* MessageContext::dc |
Associated defragmentation context.
Definition at line 67 of file defragmentation.c.
const struct GNUNET_MessageHeader* MessageContext::msg |
Pointer to the assembled message, allocated at the end of this struct.
Definition at line 73 of file defragmentation.c.
struct GNUNET_TIME_Absolute MessageContext::last_update |
Last time we received any update for this message (least-recently updated message will be discarded if we hit the queue size).
Definition at line 73 of file defragmentation.c.
Referenced by discard_oldest_mc().
struct GNUNET_SCHEDULER_Task* MessageContext::ack_task |
Task scheduled for transmitting the next ACK to the other peer.
Definition at line 86 of file defragmentation.c.
Referenced by discard_oldest_mc().
struct FragTimes MessageContext::frag_times[64] |
When did we receive which fragment? Used to calculate the time we should send the ACK.
Definition at line 86 of file defragmentation.c.
uint64_t MessageContext::bits |
Which fragments have we gotten yet? bits that are 1 indicate missing fragments.
Definition at line 98 of file defragmentation.c.
uint32_t MessageContext::fragment_id |
Unique ID for this message.
Definition at line 103 of file defragmentation.c.
unsigned int MessageContext::last_bit |
Which 'bit' did the last fragment we received correspond to?
Definition at line 108 of file defragmentation.c.
unsigned int MessageContext::frag_times_start_offset |
For the current ACK round, which is the first relevant offset in frag_times?
Definition at line 114 of file defragmentation.c.
unsigned int MessageContext::frag_times_write_offset |
Which offset would we write the next frag value into in the frag_times array? All smaller entries are valid.
Definition at line 120 of file defragmentation.c.
uint16_t MessageContext::total_size |
Total size of the message that we are assembling.
Definition at line 125 of file defragmentation.c.
int16_t MessageContext::last_duplicate |
Was the last fragment we got a duplicate?
Definition at line 130 of file defragmentation.c.