iPXE
Data Fields
net80211_frag_cache Struct Reference

Structure tracking received fragments for a packet. More...

#include <net80211.h>

Data Fields

u8 in_use
 Whether this cache entry is in use. More...
 
u16 seqnr
 Sequence number of this MSDU (packet) More...
 
u32 start_ticks
 Timestamp from point at which first fragment was collected. More...
 
struct io_bufferiob [16]
 Buffers for each fragment. More...
 

Detailed Description

Structure tracking received fragments for a packet.

We set up a fragment cache entry when we receive a packet marked as fragment 0 with the "more fragments" bit set in its frame control header. We are required by the 802.11 standard to track 3 fragmented packets arriving simultaneously; if we receive more we may drop some. Upon receipt of a new fragment-0 packet, if no entry is available or expired, we take over the most recent entry for the new packet, since we don't want to starve old entries from ever finishing at all. If we get a fragment after the zeroth with no cache entry for its packet, we drop it.

Definition at line 533 of file net80211.h.

Field Documentation

◆ in_use

u8 net80211_frag_cache::in_use

Whether this cache entry is in use.

Definition at line 536 of file net80211.h.

Referenced by net80211_free_frags(), and net80211_rx_frag().

◆ seqnr

u16 net80211_frag_cache::seqnr

Sequence number of this MSDU (packet)

Definition at line 539 of file net80211.h.

Referenced by net80211_free_frags(), and net80211_rx_frag().

◆ start_ticks

u32 net80211_frag_cache::start_ticks

Timestamp from point at which first fragment was collected.

Definition at line 542 of file net80211.h.

Referenced by net80211_free_frags(), and net80211_rx_frag().

◆ iob

struct io_buffer* net80211_frag_cache::iob[16]

Buffers for each fragment.

Definition at line 545 of file net80211.h.

Referenced by net80211_accum_frags(), net80211_free_frags(), and net80211_rx_frag().


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