Go to file
Long Li 096b31fc0d net/netvsc: control use of external mbuf on Rx
When receiving packets, netvsp puts data in a buffer mapped through UIO.
Depending on packet size, netvsc may attach the buffer as an external
mbuf. This is not a problem if this mbuf is consumed in the application,
and the application can correctly read data out of an external mbuf.

However, there are two problems with data in an external mbuf.
1. Due to the limitation of the kernel UIO implementation, physical
   address of this external buffer is not exposed to the user-mode. If
   this mbuf is passed to another driver, the other driver is unable to
   map this buffer to iova.
2. Some DPDK applications are not aware of external mbuf, and may bug
   when they receive an mbuf with external buffer attached.

Introduce a driver parameter "rx_extmbuf_enable" to control if netvsc
should use external mbuf for receiving packets. The default value is 0.
(netvsc doesn't use external mbuf, it always allocates mbuf and copy
data to mbuf) A non-zero value tells netvsc to attach external buffers
to mbuf on receiving packets, thus avoid copying memory.

Signed-off-by: Long Li <longli@microsoft.com>
2020-11-03 23:35:07 +01:00
.ci ci: reduce examples in static builds 2020-04-17 23:34:08 +02:00
app app/testpmd: fix eCPRI command line style 2020-11-03 23:35:06 +01:00
buildtools pmdinfogen: fix build with gcc 11 2020-10-08 12:45:54 +02:00
config net/sfc: support aarch64 architecture 2020-11-03 23:35:06 +01:00
devtools build: replace use of old build macros 2020-10-19 22:15:44 +02:00
doc net/netvsc: control use of external mbuf on Rx 2020-11-03 23:35:07 +01:00
drivers net/netvsc: control use of external mbuf on Rx 2020-11-03 23:35:07 +01:00
examples examples/vhost: support vhost async data path 2020-11-03 23:24:26 +01:00
kernel kni: move header file from EAL 2020-10-31 16:13:10 +01:00
lib ethdev: document Rx packet number requirement for vector Rx 2020-11-03 23:35:06 +01:00
license eal: move OS-specific sub-directories 2020-03-31 13:08:55 +02:00
usertools usertools: add OCTEON TX2 REE device binding 2020-10-14 10:41:26 +02:00
.editorconfig devtools: add EditorConfig file 2020-02-22 21:05:22 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml ci: add tests jobs in aarch64 vm 2020-09-30 21:52:54 +02:00
ABI_VERSION version: 20.11-rc0 2020-08-12 11:32:16 +02:00
MAINTAINERS maintainers: update for hns3 2020-11-03 23:35:06 +01:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt trace: introduce new subsystem 2020-04-23 15:39:06 +02:00
meson.build build: check AVX512 rather than binutils version 2020-07-05 21:32:40 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 20.11-rc1 2020-10-20 16:38:46 +02: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-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 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