This patch set adds APIs for multi-queue packet IO. It does not remove or modify
existing API calls, so that multi-queue can be verified first with couple of 
apps and implementations. Single queue APIs (e.g. odp_pktio_inq_setdef()) and 
potentially plain _recv() and _send() should be removed once everything is 
ported to use the new API (potentially with num_queues == 1).

Configuration of multiple packet input and output queues fit better into pktio 
API than classification and TM APIs. Multi-queue is more generally needed (and 
provided) than classification or TM. Classification (and potentially TM) API 
spec should be aligned to use the new default input/output queue setup.

v5:
 * rebased
 * fixed bug in l2fwd bind_workers()

v4:
 * added additional cast to avoid build error

v3:
 * added dummy implementations (6/7)
 * modified l2fwd to use multi-queue API in direct mode (7/7)
 * use term single_user instead of single_thr
 * use term hash_enable instead of hash_ena

v2:
 * changed hash proto to bit field to allow selection of multiple protocols
 * added IPv4 and IPv6 protocols
 * defined odp_pktin_queue_t and pktout_queue_t handle types instead 
   of using indexes
 * use term single_thr instead of lock_free
 * added hash_ena to control if hashing (or classification) is used for 
   spreading flows to multiple queues

Petri Savolainen (7):
  api: pktio: added pktio capability struct
  api: pktio: added multiple pktio input queues
  api: pktio: added direct queue receive
  api: pktio: added multiple pktio output queues
  api: pktio: added direct send to pktio output queue
  linux-generic: pktio: dummy multi-queue pktio
  test: l2fwd: use multi-queue pktio in direct mode

 include/odp/api/packet_io.h                        | 302 ++++++++++++++-
 .../include/odp/plat/packet_io_types.h             |  14 +-
 .../linux-generic/include/odp_packet_io_internal.h |  46 +++
 platform/linux-generic/odp_packet_io.c             | 280 ++++++++++++++
 platform/linux-generic/pktio/loop.c                |  10 +-
 platform/linux-generic/pktio/netmap.c              |  10 +-
 platform/linux-generic/pktio/pcap.c                |  10 +-
 platform/linux-generic/pktio/socket.c              |  10 +-
 platform/linux-generic/pktio/socket_mmap.c         |  10 +-
 test/performance/odp_l2fwd.c                       | 413 +++++++++++++++++----
 10 files changed, 1024 insertions(+), 81 deletions(-)

-- 
2.6.3

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to