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 flow management 1 image
- NT400D11 SmartNICs running on the 2 × 40 Gbit/s flow management 1 image
- NT400D11 SmartNICs running on the 8 × 25/10 Gbit/s flow management 1 image
- NT200A02 SmartNICs running on the 2 × 100 Gbit/s flow management 1 image
- NT200A02 SmartNICs running on the 2 × 40 Gbit/s flow management 1 image
- NT200A02 SmartNICs running on the 8 × 10 Gbit/s flow management 1 image
- NT100A01 SmartNICs running on the 4 × 25/10 Gbit/s flow management 1 image
- NT100A01 SmartNICs running on the 4 × 10/1 Gbit/s flow management 1 image
- NT40A11 SmartNICs running on the 4 × 10/1 Gbit/s capture/replay 2 image
- NT40E3-4-PTP SmartNICs running on the capture/replay 2 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.