Go to file
Bruce Richardson 35245e4438 i40e: simplify SSE packet length extraction code
In Table 8-16 of the "Intel® Ethernet Controller XL710 Datasheet" it is
stated that when the whole packet is written to a single buffer, the
header length field in the descriptor will be 0. This means that when
extracting the packet/data_len field from the descriptor in the driver
we do not need to mask out the extra header-length bits.

Inside the vector driver, this reduces the need to pull all four pktlen
fields into a single register to work on. Instead of a shift and mask,
we now need to only do a shift. Therefore, we can work on each descriptor
independently, processing each using one shift intrinsic and a blend.

This change makes the code shorter and easier to read, so we can pull it
into the main descriptor processing loop instead of needing its own
function. This in turn makes the descriptor processing in the loop as a
whole slightly easier to read as it's more linear.

In terms of performance, in testing this change shows little effect, with
single-core perf tests showing a very slight improvement.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Zhe Tao <zhe.tao@intel.com>
2016-05-06 15:51:22 +02:00
app cmdline: add any multi string mode to token string 2016-05-02 15:31:16 +02:00
config qede: enable PMD build 2016-05-06 15:51:22 +02:00
doc qede: add core driver 2016-05-06 15:51:22 +02:00
drivers i40e: simplify SSE packet length extraction code 2016-05-06 15:51:22 +02:00
examples eal: add assert macro for debug 2016-05-02 15:31:17 +02:00
lib eal: add missing include to debug header 2016-05-05 22:47:42 +02:00
mk qede: enable PMD build 2016-05-06 15:51:22 +02:00
pkg version: 16.04 2016-04-11 23:56:34 +02:00
scripts log: increase default level to info 2016-05-02 15:31:17 +02:00
tools tools: fix setup with built-in kernel modules 2016-03-24 22:04:10 +01:00
.gitignore init DPDK repository 2013-03-07 10:57:42 +01:00
GNUmakefile drivers: create new directory 2015-05-22 15:51:38 +02:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS qede: add core driver 2016-05-06 15:51:22 +02:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
README doc: add readme file 2015-12-13 22:06:58 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD license for the core libraries and
drivers. The kernel components are GPLv2 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org