The application can accelerate processing of received frames and generated flow info records using user-defined flow IDs.
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, a 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 a flow ID.
Note: Set the ColorBits parameter to FlowID
in NTPL to enable flow IDs of received frames.
See DN-1227 for more details on user-defined flow IDs.