From owner-svn-src-head@FreeBSD.ORG Fri Dec 26 09:35:24 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6622C99F; Fri, 26 Dec 2014 09:35:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 46CB3669B6; Fri, 26 Dec 2014 09:35:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBQ9ZOlM097433; Fri, 26 Dec 2014 09:35:24 GMT (envelope-from joel@FreeBSD.org) Received: (from joel@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBQ9ZOCT097432; Fri, 26 Dec 2014 09:35:24 GMT (envelope-from joel@FreeBSD.org) Message-Id: <201412260935.sBQ9ZOCT097432@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: joel set sender to joel@FreeBSD.org using -f From: Joel Dahl Date: Fri, 26 Dec 2014 09:35:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276236 - head/share/man/man4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Dec 2014 09:35:24 -0000 Author: joel (doc committer) Date: Fri Dec 26 09:35:23 2014 New Revision: 276236 URL: https://svnweb.freebsd.org/changeset/base/276236 Log: Minor mdoc fixes. Modified: head/share/man/man4/netmap.4 Modified: head/share/man/man4/netmap.4 ============================================================================== --- head/share/man/man4/netmap.4 Fri Dec 26 09:18:33 2014 (r276235) +++ head/share/man/man4/netmap.4 Fri Dec 26 09:35:23 2014 (r276236) @@ -243,7 +243,6 @@ contains the index of the first of these which are connected in a list (the first uint32_t of each buffer being the index of the next buffer in the list). A 0 indicates the end of the list. -.Pp .It Dv struct netmap_ring (one per ring) .Bd -literal struct netmap_ring { @@ -266,7 +265,6 @@ Implements transmit and receive rings, w pointers, metadata and and an array of .Pa slots describing the buffers. -.Pp .It Dv struct netmap_slot (one per buffer) .Bd -literal struct netmap_slot { @@ -367,7 +365,6 @@ are pushed to the port, and .Va tail may advance if further slots have become available. Below is an example of the evolution of a TX ring: -.Pp .Bd -literal after the syscall, slots between cur and tail are (a)vailable head=cur tail @@ -455,7 +452,6 @@ it MUST be used when the buf_idx in the This can be used to implement zero-copy forwarding, see .Sx ZERO-COPY FORWARDING . -.Pp .It NS_REPORT reports when this buffer has been transmitted. Normally, @@ -533,7 +529,6 @@ A file descriptor obtained through .Pa /dev/netmap also supports the ioctl supported by network devices, see .Xr netintro 4 . -.Pp .Bl -tag -width XXXX .It Dv NIOCGINFO returns EINVAL if the named port does not support netmap. @@ -541,7 +536,6 @@ Otherwise, it returns 0 and (advisory) i about the port. Note that all the information below can change before the interface is actually put in netmap mode. -.Pp .Bl -tag -width XX .It Pa nr_memsize indicates the size of the @@ -603,7 +597,6 @@ that application libraries (such as the .Nm nm_open indicated below) can use to indicate the specific set of rings. In the example below, "netmap:foo" is any valid netmap port name. -.Pp .Bl -tag -width XXXXX .It NR_REG_ALL_NIC "netmap:foo" (default) all hardware ring pairs @@ -784,7 +777,6 @@ are controlled through sysctl variables .Em ( dev.netmap.* ) and module parameters on Linux .Em ( /sys/module/netmap_lin/parameters/* ) : -.Pp .Bl -tag -width indent .It Va dev.netmap.admode: 0 Controls the use of native or emulated adapter mode. @@ -852,42 +844,6 @@ OS primitives, see In particular, .Xr pthread_setaffinity_np 3 may be of use. -.Sh CAVEATS -No matter how fast the CPU and OS are, -achieving line rate on 10G and faster interfaces -requires hardware with sufficient performance. -Several NICs are unable to sustain line rate with -small packet sizes. Insufficient PCIe or memory bandwidth -can also cause reduced performance. -.Pp -Another frequent reason for low performance is the use -of flow control on the link: a slow receiver can limit -the transmit speed. -Be sure to disable flow control when running high -speed experiments. -.Pp -.Ss SPECIAL NIC FEATURES -.Nm -is orthogonal to some NIC features such as -multiqueue, schedulers, packet filters. -.Pp -Multiple transmit and receive rings are supported natively -and can be configured with ordinary OS tools, -such as -.Xr ethtool -or -device-specific sysctl variables. -The same goes for Receive Packet Steering (RPS) -and filtering of incoming traffic. -.Pp -.Nm -.Em does not use -features such as -.Em checksum offloading , TCP segmentation offloading , -.Em encryption , VLAN encapsulation/decapsulation , -etc. . -When using netmap to exchange packets with the host stack, -make sure to disable these features. .Sh EXAMPLES .Ss TEST PROGRAMS .Nm @@ -1065,3 +1021,39 @@ and .Nm VALE have been funded by the European Commission within FP7 Projects CHANGE (257422) and OPENLAB (287581). +.Sh CAVEATS +No matter how fast the CPU and OS are, +achieving line rate on 10G and faster interfaces +requires hardware with sufficient performance. +Several NICs are unable to sustain line rate with +small packet sizes. Insufficient PCIe or memory bandwidth +can also cause reduced performance. +.Pp +Another frequent reason for low performance is the use +of flow control on the link: a slow receiver can limit +the transmit speed. +Be sure to disable flow control when running high +speed experiments. +.Pp +.Ss SPECIAL NIC FEATURES +.Nm +is orthogonal to some NIC features such as +multiqueue, schedulers, packet filters. +.Pp +Multiple transmit and receive rings are supported natively +and can be configured with ordinary OS tools, +such as +.Xr ethtool +or +device-specific sysctl variables. +The same goes for Receive Packet Steering (RPS) +and filtering of incoming traffic. +.Pp +.Nm +.Em does not use +features such as +.Em checksum offloading , TCP segmentation offloading , +.Em encryption , VLAN encapsulation/decapsulation , +etc. . +When using netmap to exchange packets with the host stack, +make sure to disable these features.