Introduction

Feature Set N-ANL9

product_line_custom
Napatech SmartNIC
category
Feature Description

Overview

The IP fragment handling feature accelerates the processing of fragmented IP traffic and enables the use of 5-tuple (or other non 2-tuple) hash keys on fragments for better CPU load distribution. The normal flow is handled in the hardware, while the software application must handle the exceptions. The IP fragment handling feature is useful, for instance, for GTP traffic.
Note: The IP fragment handling feature only supports outer fragments and not inner fragments. However, inner hash key types can be used if the first outer fragment contains all required hash key data.

Fragmented datagrams

This figure shows how an unfragmented datagram is fragmented and split up in individual fragments.

General operation

Received fragmented datagrams are not reassembled in the accelerator but identified and sorted for reassembly in the application.
Note: For all fragments, the UDP and TCP checksums cannot be calculated, since this requires all fragments. The checksums must be evaluated in the application.
Fragmented datagrams are identified on the first fragment and subsequent fragments are moved to the same stream (matched fragments stream). If a received fragment is not recognized as belonging to an identified datagram, it is handled as unmatched and moved to a stream for unmatched fragments (unmatched fragments stream).
Note: On 2-port and 4-port accelerators, a fragment can be recognized as belonging to an identified datagram even if it is not received on the same port as the first fragment.

A flow is regarded as normal (see Normal Flow) if the first and last fragments are received first and last respectively. Otherwise the flow is regarded as an exception flow (see Exception Flow).

It can be specified that all outer fragmented packets are classified as unmatched to ensure that all fragments of interest end up in the same stream.

IP fragment handling combined with other features

Deduplication compares first fragments. If a first fragment is recognized as a duplicate frame, the whole datagram is discarded.

When a first fragment matches a filter or is discarded by a filter, all subsequent fragments belonging to the same datagram are captured or discarded, respectively.

Frame slicing is performed as if the packets were not part of a fragmented datagram. Each fragment is sliced separately. Some dynamic slicing depends on information that is only available to first fragments and therefore does not apply to subsequent fragments.