ipv4_hdr_t Struct Reference

Data type to represent an IPv4 packet header. More...

Detailed Description

Data type to represent an IPv4 packet header.

The structure of the header is as follows:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
See also
RFC 791, section 3.1

Definition at line 55 of file hdr.h.

#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
 

Field Documentation

◆ fl_fo

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 offfset

This module provides helper functions to set, get, and check these fields accordingly:

Definition at line 85 of file hdr.h.

◆ v_ih

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:

Definition at line 69 of file hdr.h.


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