net/enic: support scattered Rx
authorNelson Escobar <neescoba@cisco.com>
Thu, 16 Jun 2016 19:19:05 +0000 (12:19 -0700)
committerBruce Richardson <bruce.richardson@intel.com>
Fri, 24 Jun 2016 16:28:09 +0000 (18:28 +0200)
commit856d7ba7ed222b0a641fa23139714128bd778109
treed3c3ecd3302b5c1a123514c5cc42c4d24db78c9c
parent83a8805bbc9ae50d7a42a41ea93ae24105839cb0
net/enic: support scattered Rx

For performance reasons, this patch uses 2 VIC RQs per RQ presented to
DPDK.

The VIC requires that each descriptor be marked as either a start of
packet (SOP) descriptor or a non-SOP descriptor.  A one RQ solution
requires skipping descriptors when receiving small packets and results
in bad performance when receiving many small packets.

The 2 RQ solution makes use of the VIC feature that allows a receive
on primary queue to 'spill over' into another queue if the receive is
too large to fit in the buffer assigned to the descriptor on the
primary queue.  This means that there is no skipping of descriptors
when receiving small packets and results in much better performance.

Signed-off-by: Nelson Escobar <neescoba@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
doc/guides/nics/overview.rst
drivers/net/enic/base/rq_enet_desc.h
drivers/net/enic/base/vnic_rq.c
drivers/net/enic/base/vnic_rq.h
drivers/net/enic/enic.h
drivers/net/enic/enic_ethdev.c
drivers/net/enic/enic_main.c
drivers/net/enic/enic_res.c
drivers/net/enic/enic_rxtx.c