The filtering functionality is used to identify particular frames based on classification criteria and to define policies with multiple actions.
Supported filters
- Port filter using the received port information.
- Protocol filter using the identified protocol information.
- Error filter using the error information of FCS/IP/UDP/TCP checksum and other error conditions.
- Length filter based on the full length or a part of the length in a frame.
- Data filter based on user-defined fields.
- Key match using various fields of a frame to be searched for in lists or ranges of values.
- NT400D11 SmartNICs running on the 2 × 100 Gbit/s FM1 image
- NT400D11 SmartNICs running on the 2 × 40 Gbit/s FM1 image
- NT400D11 SmartNICs running on the 8 × 25/10 Gbit/s FM1 image
- NT200A02 SmartNICs running on the 2 × 100 Gbit/s FM1 image
- NT200A02 SmartNICs running on the 2 × 40 Gbit/s FM 1 image
- NT200A02 SmartNICs running on the 8 × 10 Gbit/s FM1 image
- NT100A01 SmartNICs running on the 4 × 25/10 Gbit/s FM1 image
- NT100A01 SmartNICs running on the 4 × 10/1 Gbit/s FM1 image
- NT40A11 SmartNICs running on the 4 × 10/1 Gbit/s CR2 image
- NT40E3-4-PTP SmartNICs running on the CR2 image.
Configuring SmartNICs using NTPL
- Filters: Define which frames are selected (the "what").
- Recipes: Define what actions are performed on those frames (the "how").
In this NTPL example [StreamId = 1; Slice=StartOfFrame[64]] contains
recipes, and Layer4Protocol==UDP is a filter expression.
A filter is
a classification rule that identifies particular frames based on specific criteria, such as
protocol type, port, error conditions, length or user-defined data fields and various other
tests. Filters are expressed as logical conditions in NTPL and are used to select which
frames should be subject to further processing or actions. For example, a filter could
select all UDP frames as shown in the example - Layer4Protocol==UDP is the
filter expression that matches all UDP frames.
A recipe defines the actions or
processing steps to be applied to frames that match a filter. Recipes specify what should
happen to the selected frames, such as which stream they should be delivered to, whether
they should be sliced, colored, hashed or have a specific packet descriptor attached.
Recipes are specified as parameters within the squared brackets in the
Assign command, preceding the filter expression. In the example,
[StreamId = 1; Slice=StartOfFrame[64]] are recipes: the frame is assigned
to stream 1 and sliced to 64 bytes.
- Color assignment
- Hash key calculation
- Correlation key calculation
- IP fragment handling
- Local retransmission
- Slicing
- Header stripping
- Packet masking
- Packet descriptor building
- Distribution to streams (queue management)
- StreamId: 'DROP' (Packet is discarded)
- Color: 0 (Zero)
- Slice: No slicing
- SliceReTx: No slicing
- Hash: RoundRobin
- Descriptor: As specified in the ntservice.ini file.