OPNsense - FreeBSD source
Find a file
vmaffione 39c0abd7b2 MFC r340436
vtnet: fix netmap support

netmap(4) support for vtnet(4) was incomplete and had multiple bugs.
This commit fixes those bugs to bring netmap on vtnet in a functional state.

Changelist:
  - handle errors returned by virtqueue_enqueue() properly (they were
    previously ignored)
  - make sure netmap XOR rest of the kernel access each virtqueue.
  - compute the number of netmap slots for TX and RX separately, according to
    whether indirect descriptors are used or not for a given virtqueue.
  - make sure sglist are freed according to their type (mbufs or netmap
    buffers)
  - add support for mulitiqueue and netmap host (aka sw) rings.
  - intercept VQ interrupts directly instead of intercepting them in txq_eof
    and rxq_eof. This simplifies the code and makes it easier to make sure
    taskqueues are not running for a VQ while it is in netmap mode.
  - implement vntet_netmap_config() to cope with changes in the number of queues.

Reviewed by:    bryanv
Approved by:    gnn (mentor)
Sponsored by:   Sunny Valley Networks
Differential Revision:  https://reviews.freebsd.org/D17916
2019-01-07 22:02:06 +01:00
bin HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
cddl Revert "dwatch: do not install" 2018-10-08 09:39:48 +02:00
contrib Timezone database information update. [EN-18:14.tzdata] 2018-11-28 07:02:17 +01:00
crypto HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
etc pkg: better fix, keep vanilla file, but don't install 2018-10-11 10:34:02 +02:00
gnu src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
include src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
kerberos5 src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
lib HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
libexec MFS11 r342229: bootpd: validate hardware type 2018-12-19 22:44:03 +01:00
release HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
rescue HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
sbin MFC r336195: unbreak dhclient(8) option 26 processing 2018-10-21 17:59:42 +02:00
secure HBSD: cleanups, smaller reverts and review 2018-10-07 17:29:46 +02:00
share Revis manual pages. [SA-18:08.tcp] 2018-10-07 19:52:35 +02:00
stand Fix deferred kernel loading breaks loader password. [EN-18:15.loader] 2018-11-28 07:02:17 +01:00
sys MFC r340436 2019-01-07 22:02:06 +01:00
targets HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
tests HBSD: cleanups, smaller reverts and review 2018-10-07 17:29:46 +02:00
tools HBSD: cleanups, smaller reverts and review 2018-10-07 17:29:46 +02:00
usr.bin HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
usr.sbin Fix insufficient bounds checking in bhyve(8) device model. [SA-18:14.bhyve] 2018-12-05 07:15:58 +01:00
.arcconfig src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
.arclint src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
.gitattributes src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
.gitignore HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
COPYRIGHT src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
credits-HardenedBSD HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
LOCKS src: initial commit based on FreeBSD-10.0 2014-11-09 09:30:14 +01:00
MAINTAINERS src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
Makefile src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
Makefile.inc1 HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
Makefile.libcompat HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
ObsoleteFiles.inc HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00
README src: switch to release/11.2.0 2018-10-07 14:26:34 +02:00
UPDATING 11.2-RELEASE-p7 UPDATING 2018-12-19 22:44:12 +01:00
UPDATING-HardenedBSD HBSD: sync up with hardened/11.2-releng/master branch 2018-10-07 14:26:34 +02:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree.  See build(7)
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The `buildkernel` and `installkernel` targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process.  See build(7), config(8),
and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
for more information.

Note: If you want to build and install the kernel with the
`buildkernel` and `installkernel` targets, you might need to build
world before.  More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf
sub-directory.  GENERIC is the default configuration used in release builds.
NOTES contains entries and documentation for all possible
devices, not just those commonly used.


Source Roadmap:
---------------

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-src.html