Data type to represent an IPv4 packet header. More...
Data type to represent an IPv4 packet header.
The structure of the header is as follows:
#include <hdr.h>
Data Fields | |
| uint8_t | v_ih |
| Version and Internet Header Length. More... | |
| uint8_t | ts |
| type of service of packet | |
| network_uint16_t | tl |
| total length of the datagram | |
| network_uint16_t | id |
| identification value of packet | |
| network_uint16_t | fl_fo |
| version control flags and Fragment Offset. More... | |
| uint8_t | ttl |
| time to live for this packet | |
| uint8_t | protocol |
| protocol of this packet | |
| network_uint16_t | csum |
| checksum of this packet | |
| ipv4_addr_t | src |
| source address of this packet | |
| ipv4_addr_t | dst |
| destination address of this packet | |
| network_uint16_t ipv4_hdr_t::fl_fo |
version control flags and Fragment Offset.
The flags are the 3 most significant bits, and the remaining 13 bits are the fragment offset
This module provides helper functions to set, get, and check these fields accordingly:
| uint8_t ipv4_hdr_t::v_ih |
Version and Internet Header Length.
The version are the 4 most significant bits and the Internet Header Length the 4 next bit (see above).
This module provides helper functions to set, get, and check these fields accordingly: