acl: fix build and runtime for default target
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Mon, 1 Sep 2014 15:28:44 +0000 (16:28 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 3 Sep 2014 01:26:50 +0000 (03:26 +0200)
commit074f54ad03ee0c84dcae235933e2b426208fe591
tree3611f4ffe442f4e93ef5fa454b40d555ca0af09e
parent8fd8bebc051704d7caecfed8d8a065a79c022329
acl: fix build and runtime for default target

Make ACL library to build/work on 'default' architecture:
- make rte_acl_classify_scalar really scalar
 (make sure it wouldn't use sse4 instrincts through resolve_priority()).
- Provide two versions of rte_acl_classify code path:
  rte_acl_classify_sse() - could be build and used only on systems with sse4.2
  and upper, return -ENOTSUP on lower arch.
  rte_acl_classify_scalar() - a slower version, but could be build and used
  on all systems.
- Addition of a new function rte_acl_classify_alg.  This function lets you
  specify an enum value to override the acl contexts default algorithm when doing
  a classification.  This allows an application to specify a classification
  algorithm without needing to publicize each method. I know there was concern
  over keeping those methods public, but we don't have a static ABI at the moment,
  so this seems to me a reasonable thing to do, as it gives us less of an ABI
  surface to worry about.
- keep common code shared between these two codepaths.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
12 files changed:
app/test-acl/main.c
app/test/test_acl.c
examples/l3fwd-acl/main.c
lib/librte_acl/Makefile
lib/librte_acl/acl.h
lib/librte_acl/acl_bld.c
lib/librte_acl/acl_run.c [deleted file]
lib/librte_acl/acl_run.h [new file with mode: 0644]
lib/librte_acl/acl_run_scalar.c [new file with mode: 0644]
lib/librte_acl/acl_run_sse.c [new file with mode: 0644]
lib/librte_acl/rte_acl.c
lib/librte_acl/rte_acl.h