examples/l3fwd: rework exact-match
authorTomasz Kulasek <tomaszx.kulasek@intel.com>
Mon, 29 Feb 2016 10:33:07 +0000 (11:33 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 29 Feb 2016 10:45:00 +0000 (11:45 +0100)
commit94c54b4158d56fb169b136d9adcc24b3b64dc4b0
tree7b6167601491b327b88f001a287a420f42c404f2
parentc2189745c38d944e3b0e0c99066d67d7bc7e7744
examples/l3fwd: rework exact-match

Current implementation of Exact-Match uses different execution path than
for LPM. Unifying them allows to reuse big part of LPM code and sightly
increase performance of Exact-Match.

Main changes:
-------------
* Packet classification stage is separated from the rest of path for both
  LPM and EM.
* Packet processing, modifying and transmit part is the same for LPM and EM
  and mostly based on the current LPM implementation.
* Shared code is moved to the common file "l3fwd_sse.h".
* While sequential packet classification in EM path, seems to be faster
  than using multi hash lookup, used before, it is used by default. Old
  implementation is moved to the file l3fwd_em_hlm_sse.h and can be enabled
  with HASH_LOOKUP_MULTI global define in compilation time.

Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
examples/l3fwd/l3fwd.h
examples/l3fwd/l3fwd_em.c
examples/l3fwd/l3fwd_em.h
examples/l3fwd/l3fwd_em_hlm_sse.h [new file with mode: 0644]
examples/l3fwd/l3fwd_em_sse.h
examples/l3fwd/l3fwd_lpm.c
examples/l3fwd/l3fwd_lpm_sse.h
examples/l3fwd/l3fwd_sse.h [new file with mode: 0644]