The application can accelerate processing of received frames and generated flow info records using the user-defined flow ID.
Metadata and flow ID
Complete metadata for each flow shall be stored and managed in the host with the following
considerations:
- PCIe bandwidth: The amount of traffic to be delivered to the host is bound to the PCIe bandwidth.
- Scalability: It is easier to extend memory in the host than in the SmartNIC.
- Flexibility: The application can update each flow record in the host without updating the SmartNIC.
While complete flow metadata is stored in the host, absolutely necessary flow information is collected and stored in the SmartNIC flow table. To associate flow information in the SmartNIC flow table and in the host flow table, the user-defined flow ID is provided when frames and flow info records are delivered from the SmartNIC to the host as shown in the following figure.
The flow ID of each flow can be programmed in the 64-bit id field of the
NtFlow_s structure when learning a flow. The 64-bit flow ID can be
configured as the pointer to a flow metadata in the host flow table. The SmartNIC includes
the flow ID when delivering every frame and every flow info record to the application. The
application can then easily access the associated flow metadata as the flow ID (of frames
and flow info records) refers directly to the entry in the host flow table.
Note: The
color1 field of dynamic packet descriptor 4 contains the flow ID.
Note: Set the ColorBits parameter to FlowID
in NTPL to enable the flow ID of received frames.
See the following sections for more information about the flow ID.
- Programming Key ID, key set ID and flow ID.
- API: Read Flow Info of an Unlearned Flow.
- NTPL examples
- TAP configuration: Assign command.
- SPAN port configuration: Assign command.