f890a8008b
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 |
||
---|---|---|
.. | ||
if_em_netmap.h | ||
if_igb_netmap.h | ||
if_ixl_netmap.h | ||
if_lem_netmap.h | ||
if_ptnet.c | ||
if_re_netmap.h | ||
if_vtnet_netmap.h | ||
ixgbe_netmap.h | ||
netmap_bdg.c | ||
netmap_bdg.h | ||
netmap_freebsd.c | ||
netmap_generic.c | ||
netmap_kern.h | ||
netmap_legacy.c | ||
netmap_mbq.c | ||
netmap_mbq.h | ||
netmap_mem2.c | ||
netmap_mem2.h | ||
netmap_monitor.c | ||
netmap_offloadings.c | ||
netmap_pipe.c | ||
netmap_pt.c | ||
netmap_vale.c | ||
netmap.c |