efd: new Elastic Flow Distributor library
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 17 Jan 2017 22:23:51 +0000 (22:23 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 18 Jan 2017 19:53:28 +0000 (20:53 +0100)
commit56b6ef874f80891ff5fda833b92ff2cb7e8edfd7
tree488ff2946f06e5e2db4ff14e51e9fe278d4141b0
parentb1cbca1e7f4d2fd2a3323f636f53faabcb89f79c
efd: new Elastic Flow Distributor library

Elastic Flow Distributor (EFD) is a distributor library that uses
perfect hashing to determine a target/value for a given incoming flow key.
It has the following advantages:

- First, because it uses perfect hashing, it does not store
  the key itself and hence lookup performance is not dependent
  on the key size.

- Second, the target/value can be any arbitrary value hence
  the system designer and/or operator can better optimize service rates
  and inter-cluster network traffic locating.

- Third, since the storage requirement is much smaller than a hash-based
  flow table (i.e. better fit for CPU cache), EFD can scale to
  millions of flow keys.
  Finally, with current optimized library implementation performance
  is fully scalable with number of CPU cores.

Signed-off-by: Byron Marohn <byron.marohn@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
Acked-by: Christian Maciocco <christian.maciocco@intel.com>
12 files changed:
MAINTAINERS
config/common_base
doc/api/doxy-api-index.md
doc/api/doxy-api.conf
doc/guides/rel_notes/release_17_02.rst
lib/Makefile
lib/librte_eal/common/include/rte_log.h
lib/librte_efd/Makefile [new file with mode: 0644]
lib/librte_efd/rte_efd.c [new file with mode: 0644]
lib/librte_efd/rte_efd.h [new file with mode: 0644]
lib/librte_efd/rte_efd_version.map [new file with mode: 0644]
mk/rte.app.mk