iPXE
|
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_buffer * | iob [16] |
Buffers for each fragment. More... | |
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.
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().
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().
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().
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().