GNUnet 0.21.1
ReassemblyContext Struct Reference

Information we keep for a message that we are reassembling. More...

Collaboration diagram for ReassemblyContext:
[legend]

Data Fields

struct MessageUUIDP msg_uuid
 Original message ID for of the message that all the fragments belong to. More...
 
struct VirtualLinkvirtual_link
 Which neighbour is this context for? More...
 
struct GNUNET_CONTAINER_HeapNodehn
 Entry in the reassembly heap (sorted by expiration). More...
 
uint8_t * bitfield
 Bitfield with msg_size bits representing the positions where we have received fragments. More...
 
struct GNUNET_TIME_Absolute reassembly_timeout
 At what time will we give up reassembly of this message? More...
 
struct GNUNET_TIME_Absolute last_frag
 Time we received the last fragment. More...
 
uint16_t msg_size
 How big is the message we are reassembling in total? More...
 
uint16_t msg_missing
 How many bytes of the message are still missing? Defragmentation is complete when msg_missing == 0. More...
 

Detailed Description

Information we keep for a message that we are reassembling.

Definition at line 1286 of file gnunet-service-transport.c.

Field Documentation

◆ msg_uuid

struct MessageUUIDP ReassemblyContext::msg_uuid

Original message ID for of the message that all the fragments belong to.

Definition at line 1292 of file gnunet-service-transport.c.

Referenced by find_by_message_uuid(), free_reassembly_context(), and handle_fragment_box().

◆ virtual_link

struct VirtualLink* ReassemblyContext::virtual_link

Which neighbour is this context for?

Definition at line 1297 of file gnunet-service-transport.c.

Referenced by free_reassembly_context(), and handle_fragment_box().

◆ hn

struct GNUNET_CONTAINER_HeapNode* ReassemblyContext::hn

Entry in the reassembly heap (sorted by expiration).

Definition at line 1302 of file gnunet-service-transport.c.

Referenced by free_reassembly_context(), and handle_fragment_box().

◆ bitfield

uint8_t* ReassemblyContext::bitfield

Bitfield with msg_size bits representing the positions where we have received fragments.

When we receive a fragment, we check the bits in bitfield before incrementing msg_missing.

Allocated after the reassembled message.

Definition at line 1311 of file gnunet-service-transport.c.

Referenced by handle_fragment_box().

◆ reassembly_timeout

struct GNUNET_TIME_Absolute ReassemblyContext::reassembly_timeout

At what time will we give up reassembly of this message?

Definition at line 1316 of file gnunet-service-transport.c.

Referenced by handle_fragment_box(), and reassembly_cleanup_task().

◆ last_frag

struct GNUNET_TIME_Absolute ReassemblyContext::last_frag

Time we received the last fragment.

avg_ack_delay must be incremented by now - last_frag multiplied by num_acks.

Definition at line 1322 of file gnunet-service-transport.c.

Referenced by handle_fragment_box().

◆ msg_size

uint16_t ReassemblyContext::msg_size

How big is the message we are reassembling in total?

Definition at line 1327 of file gnunet-service-transport.c.

Referenced by handle_fragment_box().

◆ msg_missing

uint16_t ReassemblyContext::msg_missing

How many bytes of the message are still missing? Defragmentation is complete when msg_missing == 0.

Definition at line 1333 of file gnunet-service-transport.c.

Referenced by handle_fragment_box().


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