Layer 3 packets
Layer 3 packets are classified in the basic classes shown in this table.
Class | Classification Conditions | Length of Header (in bytes) |
---|---|---|
IPv4 | The frame decoder recognizes an IPv4 packet if the
value of the Version field of the IP header
is 0x4, the value of the IHL field of the
IP header is larger than or equal to 0x5, and one of these conditions is met:
|
20, 24, 28, ..., 60 (fetched from the IHL field in the IPv4 header) |
IPv6 | The frame decoder recognizes an IPv6 packet if the
value of the Version field of the IP header
is 0x6, and one of these conditions is met:
These IPv6 extension headers are recognized:
A packet cannot be decoded properly at layer 3, and at layer 4 it is classified as L4_Other (see Layer 4 Classification) if it contains one of these IPv6 extension headers:
The next header of the encountered IPv6 header at which the decoding stopped can be retrieved from extended packet descriptor 9 using the NT_NET_GET_PKT_L4_PROTOCOL_NUM macro (see DN-0449). It can also be found in dynamic packet descriptor 1 and dynamic packet descriptor 2. |
40 plus optional next headers. The maximum length is approximately 300 bytes (from the packet start). |
L3_Other | The frame decoder recognizes an L3_Other packet if none of the above applies. | 0 |
Layer 3 IPv4 fragment status
The layer 3 IPv4 fragment status is extracted from the IPv4 header as shown in this table.
Class | Classification Conditions |
---|---|
none | One of these conditions is met:
|
first | The packet is an IPv4 packet, Fragment offset is set to 0, and the More fragments flag is set to 1. |
middle | The packet is an IPv4 packet, Fragment offset is not set to 0, and the More fragments flag is set to 1. |
last | The packet is an IPv4 packet, Fragment offset is not set to 0, and the More fragments flag is set to 0. |
Layer 3 IPv6 fragment status
The layer 3 IPv6 fragment status is extracted from the IPv6 fragment header as shown in this table.
Class | Classification Conditions |
---|---|
none | One of these conditions is met:
|
first | The packet is an IPv6 packet with fragment header, Fragment offset is set to 0, and the More fragments flag is set to 1. |
middle | The packet is an IPv6 packet with fragment header, Fragment offset is not set to 0, and the More fragments flag is set to 1. |
last | The packet is an IPv6 packet with fragment header, Fragment offset is not set to 0, and the More fragments flag is set to 0. |
Routing header | Routing header = 1, if the IPv6 routing header is found when passing the IPv6 extension header. Otherwise Routing header = 0. |
Fragment header | Fragment header = 1, if the IPv6 fragment header is found when passing the IPv6 extension header. Otherwise Fragment header = 0. |