ipv4_header
ipv4_header header;
if (gBufferModule->restore_header(buffer, 0, &header, sizeof(ipv4_header))
|| header.HeaderLength() < sizeof(ipv4_header)) {
NetBufferPrepend<ipv4_header> header(buffer);
header->header_length = sizeof(ipv4_header) / 4;
NetBufferHeaderReader<ipv4_header> header(buffer);
sizeof(ipv4_header), true);
gBufferModule->checksum(buffer, 0, sizeof(ipv4_header), true),
if (buffer->size < sizeof(ipv4_header))
offsetof(ipv4_header, source)>(buffer));
offsetof(ipv4_header, destination)>(buffer));
return mtu - sizeof(ipv4_header);
NetBufferHeaderReader<ipv4_header> bufferHeader(buffer);
ipv4_header& header = bufferHeader.Data();
|| headerLength < sizeof(ipv4_header))
NetBufferHeaderReader<ipv4_header> bufferHeader(buffer);
ipv4_header& header = bufferHeader.Data();
|| headerLength < sizeof(ipv4_header)
errorData->mtu -= sizeof(ipv4_header);
dump_ipv4_header(ipv4_header &header)
reassemble_fragments(const ipv4_header &header, net_buffer** _buffer)
NetBufferHeaderReader<ipv4_header> originalHeader(buffer);
typedef NetBufferField<uint16, offsetof(ipv4_header, checksum)> IPChecksumField;
NetBufferHeaderReader<ipv4_header> bufferHeader(headerBuffer);
ipv4_header* header = &bufferHeader.Data();