The ACL library is used to perform an N-tuple search over a set of rules with multiple categories and find the best match (highest priority) for each category. This code was previously released under a proprietary license, but is now being released under a BSD license to allow its integration with the rest of the Intel DPDK codebase.
Note that these patch series require other patch: "lpm: Introduce rte_lpm_lookupx4" be already installed. This patch series contains the following items: 1) librte_acl. 2) UT changes reflect latest changes in rte_acl library. 3) teat-acl: usage example and main test application for the ACL library. Provides IPv4/IPv6 5-tuple classification. 4) l3fwd-acl: demonstrates the use of the ACL library in the DPDK application to implement packet classification and L3 forwarding. 5) add doxygen configuration and start page v2 fixes: * Fixed several checkpatch.pl issues * Added doxygen related changes app/Makefile | 1 + app/test-acl/Makefile | 45 + app/test-acl/main.c | 1029 +++++++++++++++++ app/test-acl/main.h | 50 + app/test/test_acl.c | 128 ++- config/common_linuxapp | 6 + doc/doxy-api-index.md | 3 +- doc/doxy-api.conf | 3 +- examples/Makefile | 1 + examples/l3fwd-acl/Makefile | 56 + examples/l3fwd-acl/main.c | 2048 ++++++++++++++++++++++++++++++++++ examples/l3fwd-acl/main.h | 45 + lib/librte_acl/Makefile | 60 + lib/librte_acl/acl.h | 182 +++ lib/librte_acl/acl_bld.c | 2001 +++++++++++++++++++++++++++++++++ lib/librte_acl/acl_gen.c | 473 ++++++++ lib/librte_acl/acl_run.c | 927 +++++++++++++++ lib/librte_acl/acl_vect.h | 129 +++ lib/librte_acl/rte_acl.c | 413 +++++++ lib/librte_acl/rte_acl.h | 453 ++++++++ lib/librte_acl/rte_acl_osdep.h | 92 ++ lib/librte_acl/rte_acl_osdep_alone.h | 277 +++++ lib/librte_acl/tb_mem.c | 102 ++ lib/librte_acl/tb_mem.h | 73 ++ 24 files changed, 8552 insertions(+), 45 deletions(-) create mode 100644 app/test-acl/Makefile create mode 100644 app/test-acl/main.c create mode 100644 app/test-acl/main.h create mode 100644 examples/l3fwd-acl/Makefile create mode 100644 examples/l3fwd-acl/main.c create mode 100644 examples/l3fwd-acl/main.h create mode 100644 lib/librte_acl/Makefile create mode 100644 lib/librte_acl/acl.h create mode 100644 lib/librte_acl/acl_bld.c create mode 100644 lib/librte_acl/acl_gen.c create mode 100644 lib/librte_acl/acl_run.c create mode 100644 lib/librte_acl/acl_vect.h create mode 100644 lib/librte_acl/rte_acl.c create mode 100644 lib/librte_acl/rte_acl.h create mode 100644 lib/librte_acl/rte_acl_osdep.h create mode 100644 lib/librte_acl/rte_acl_osdep_alone.h create mode 100644 lib/librte_acl/tb_mem.c create mode 100644 lib/librte_acl/tb_mem.h -- 1.7.7.6