On 2/8/2023 3:06 AM, Alexander Kozyrev wrote: > Bring more flexibility and control over both flow rule insertion > and packet matching mechanisms. Introduce 2 new flow table types: > > 1. Allow a user to specify the insertion type used in template tables. > The insertion type is responsible for choosing the appropriate key > value used to map inserted flow rules into a template table. > > Flow rules can be inserted by calculating the hash value for > the pattern or inserted by index via the new create_by_index() API. > The idea of the index-based insertion is to avoid additional matches > and simply execute predefined actions after jumping to the index. > > The insertion into an already occupied index results in an error. > The old rule must be destroyed first. An index cannot be bigger than > the size of the table, otherwise, the rule is rejected as well. > > 2. Allow a user to specify the hash calculation function used in template > tables. The hash calculation type is responsible for the calculation of > the flow rule index a packet would hit upon arrival at the table. > > Control over this is useful for applications with custom RSS algorithms, > for example. An application can select various packet fields to serve as > a hash calculation source and jump to the appropriate flow rule location. > The RSS hash result will be used as the index in the table. For the linear > hash function, the mapping is one-to-one and the hash result is the index. > For other hash functions, the index is the hash result module table size. > The RSS hash result can be retrieved via modify_field API: HASH_RESULT. > > RFC: > https://patchwork.dpdk.org/project/dpdk/patch/20221214022110.393410-1-akozy...@nvidia.com/ > v2: changed the behavior in case of insertion into the same index. > v3: refined the commit message to highlight index-based table advantage. > v4: fixed a typo in the commit message. > > > Alexander Kozyrev (4): > ethdev: add template table insertion type > ethdev: add template table hash calculation function > app/testpmd: add template table insertion type > app/testpmd: add template table hash calculation function > > Series-acked-by: Ori Kam <or...@nvidia.com> >
Series applied to dpdk-next-net/main, thanks.