IP Fragment Handling

From Green Bay 2 to Link-Capture™ Software 12.8

Platform
Napatech SmartNIC
Content Type
Migration Document
Capture Software Version
Link™ Capture Software 12.8

IP fragment handling migration

The IP fragment handling function works in the same way in the Link-Capture™ Software 12.8 release as in the Green Bay 2 release, except that inner fragments are handled by the filtering functionality for 4GA SmartNICs in the Link-Capture™ Software 12.8 release and not by the IPFMode command as in the Green Bay 2 release.

Green Bay 2

In Green Bay 2 the ClassifyUnmatched parameter of theIPFMode command has these values:
  • None: When possible fragments are transferred to the same matched fragments stream as the corresponding first fragment. This is the default setting.
  • Outer: All packets that are fragmented at the outer level are sent to an unmatched fragments stream.
  • All: All fragmented packets are sent to an unmatched fragments stream. This can be used to deal with packets that are fragmented at the inner level, as these are not otherwise supported by the IP fragment handling.

Link-Capture™ Software 12.8

For 4GA SmartNICs in Link-Capture™ Software 12.8 the ClassifyUnmatched parameter of the IPFMode command only has these values:
  • None: When possible fragments are transferred to the same matched fragments stream as the corresponding first fragment. This is the default setting.
  • Outer: All packets that are fragmented at the outer level are sent to an unmatched fragments stream.

Inner-fragmented packets for 4GA SmartNICs

Inner-fragmented packets can also be dealt with for 4GA SmartNICs in Link-Capture™ Software 12.8. However, it must be done using the Assign command instead of the IPFMode command. Example:

Define fragHashv4 = Hash(HashWord0_3=InnerLayer3Header[12]/32, \\
 HashWord4_7=InnerLayer3Header[16]/32, HashWord8=InnerIdentificationField[0]/16, \\ 
 HashWordP=InnerIpProtocol)
Define fragHashv6 = Hash(HashWord0_3=InnerLayer3Header[8]/128, \\
 HashWord4_7=InnerLayer3Header[24]/128, HashWord8=InnerIdentificationField[0]/32)
Assign[StreamId=(0..3); Hash=fragHashv4] = InnerLayer3Protocol == IPv4 \\
 AND InnerFragment == First, Middle, Last
Assign[StreamId=(0..3); Hash=fragHashv6] = InnerLayer3Protocol == IPv6 \\
 AND InnerFragment == First, Middle, Last

These NTPL expressions cause all inner-fragmented packets to be distributed to streams 0 - 3. A hash recipe is used in each Assign expression to distribute the packets based on the following inner IPv4 and IPv6 fields:

  • Source address
  • Destination address
  • Identification
  • Protocol ID (IPv4 only)