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