Is there any way to improve the acl lib of DPDK

I am learning about the ACL lib of DPDK and I want to speed up the ACL classfication process.Is there any way or suggestions to make it?

1 answer

  • answered 2020-08-10 05:21 Sunil Bojanapally

    As a user of the rte_acl library you could take few aspects into considerations to get best classification/lookup performance:

    1. Classification method: In rte_acl_init() one of the highest classification method is choosed as default one. CPUs which are AVX2 supported vector instruction set would give very good classification performance when compared to scalar/sse4/sse8. AVX2 classification does parallel lookup up to 16 in a batch compared to scalar <=3, sse4 >= 4, sse8 >= 8 input flows. Check function rte_acl_classify_avx2() for more details. Typically in runtime based on the number of flows available classification method choosed would be combination of all the above methods, therefore we observe faster at higher speed input rate compared to lower rates. Note: For AVX2 support both CPU and compile time CC_AVX2_SUPPORT flag should be available.

    2. Category mask: Based on the use case, category mask is one method to speed up the classification process which performs indirectly parallel lookup by doing only single search. For instance there could be multiple ACL rules where single flow would return match for number of categories. Max categories supported in DPDK-18.11 is 16. Refer to manual for an example.