Layer 3 Classification

Napatech Link™ Software Features

product_line_custom
Intel® PAC
Napatech SmartNIC
category
Feature Description

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:
  • The frame has been classified as an EtherII frame, and the value of the MAC Length/Type field is 0x0800.
  • The frame has been classified as a SNAP frame, and the EtherType field of the SNAP header is 0x0800.
  • The frame has been classified as an LLC frame, and the LLC header is DSAP=0x06, SSAP=0x06 and Control=0x03.
  • The packet has been classified as an MPLS-encapsulated packet.
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:
  • The frame has been classified as an EtherII frame, and the value of the MAC Length/Type field is 0x86DD.
  • The frame has been classified as a SNAP frame, and the EtherType field of the SNAP header is 0x86DD.
  • The packet has been classified as an MPLS-encapsulated packet.

These IPv6 extension headers are recognized:

  • Hop-by-hop options header
  • Routing header
  • Fragment header
  • Destination options header

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:

  • Authentication header
  • Encapsulating security payload header
  • No next header

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:
  • The packet is an IPv4 packet, Fragment offset is set to 0, and the More fragments flag is set to 0.
  • The packet is not an IPv4 packet.
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:
  • The packet is an IPv6 packet with fragment header, Fragment offset is set to 0, and the More fragments flag is set to 0.
  • The packet is an IPv6 packet, and the IPv6 fragment header is not present.
  • The packet is not an IPv6 packet.
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.