freebsd-skq/sys/dev/netmap
vmaffione f890a8008b 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)
MFC after:	3 days
Sponsored by:	Sunny Valley Networks
Differential Revision:	https://reviews.freebsd.org/D17916
2018-11-14 15:39:48 +00:00
..
if_em_netmap.h netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
if_igb_netmap.h netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
if_ixl_netmap.h netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
if_lem_netmap.h netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
if_ptnet.c netmap and iflib drivers, silence unused var warnings 2018-05-19 05:57:26 +00:00
if_re_netmap.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
if_vtnet_netmap.h vtnet: fix netmap support 2018-11-14 15:39:48 +00:00
ixgbe_netmap.h netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
netmap_bdg.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_bdg.h Remove redundant redeclaration of netmap_vp_reg(). 2018-10-24 14:14:49 +00:00
netmap_freebsd.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_generic.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_kern.h netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_legacy.c netmap: pull fix for 32-bit support from upstream 2018-05-18 03:38:17 +00:00
netmap_mbq.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
netmap_mbq.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
netmap_mem2.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_mem2.h netmap: align codebase to the current upstream (commit id 3fb001303718146) 2018-04-12 07:20:50 +00:00
netmap_monitor.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_offloadings.c netmap: align codebase to upstream version v11.4 2018-04-09 09:24:26 +00:00
netmap_pipe.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap_pt.c netmap: pull fix for 32-bit support from upstream 2018-05-18 03:38:17 +00:00
netmap_vale.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00
netmap.c netmap: align codebase to the current upstream (sha 8374e1a7e6941) 2018-10-23 08:55:16 +00:00