There are certain principles that apply when considering where to store flow metadata.
Metadata storage principles
- Data is always stored as close as possible to where it is needed
- Flow records in HW contain only the information needed by the HW Fast Path
- Flow records in SW contain any information needed by the application to ensure:
- Lowest PCI bandwidth, because there is less metadata per packet
- Highest scalability, because memory is less limited in the host than in HW
- Highest flexibility, because the application can update flow records without a hardware update
- Highest performance, because the CPUs are being used for tasks they do best
- Hardware can provide a flow ID/PTR for every packet and flow record that is delivered to SW, ensuring the best acceleration for an application.