iPXE
|
Fragment reassembly. More...
Go to the source code of this file.
Data Structures | |
struct | fragment |
A fragment reassembly buffer. More... | |
struct | fragment_reassembler |
A fragment reassembler. More... | |
Macros | |
#define | FRAGMENT_TIMEOUT ( TICKS_PER_SEC / 2 ) |
Fragment reassembly timeout. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
struct io_buffer * | fragment_reassemble (struct fragment_reassembler *fragments, struct io_buffer *iobuf, size_t *hdrlen) |
Reassemble packet. More... | |
Fragment reassembly.
Definition in file fragment.h.
#define FRAGMENT_TIMEOUT ( TICKS_PER_SEC / 2 ) |
Fragment reassembly timeout.
Definition at line 18 of file fragment.h.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
struct io_buffer* fragment_reassemble | ( | struct fragment_reassembler * | fragments, |
struct io_buffer * | iobuf, | ||
size_t * | hdrlen | ||
) |
Reassemble packet.
fragments | Fragment reassembler |
iobuf | I/O buffer |
hdrlen | Length of non-fragmentable potion of I/O buffer |
iobuf | Reassembled packet, or NULL |
This function takes ownership of the I/O buffer. Note that the length of the non-fragmentable portion may be modified.
Definition at line 88 of file fragment.c.
References alloc_iob(), io_buffer::data, DBGC, fragment_expired(), fragment_find(), fragment_reassembler::fragment_offset, FRAGMENT_TIMEOUT, fragment::fragments, free, free_iob(), fragment::hdrlen, iob_headroom(), iob_len(), iob_pull, iob_put, iob_reserve, fragment::iobuf, fragment_reassembler::list, fragment::list, list_add, list_del, memcpy(), fragment_reassembler::more_fragments, NULL, offset, ip_statistics::reasm_fails, ip_statistics::reasm_oks, ip_statistics::reasm_reqds, start_timer_fixed(), fragment_reassembler::stats, stop_timer(), fragment::timer, and zalloc().