luigi b97eb69f80 Bring in support for netmap, a framework for very efficient packet
I/O from userspace, capable of line rate at 10G, see

	http://info.iet.unipi.it/~luigi/netmap/

At this time I am bringing in only the generic code (sys/dev/netmap/
plus two headers under sys/net/), and some sample applications in
tools/tools/netmap. There is also a manpage in share/man/man4 [1]

In order to make use of the framework you need to build a kernel
with "device netmap", and patch individual drivers with the code
that you can find in

	sys/dev/netmap/head.diff

The file will go away as the relevant pieces are committed to
the various device drivers, which should happen in a few days
after talking to the driver maintainers.

Netmap support is available at the moment for Intel 10G and 1G
cards (ixgbe, em/lem/igb), and for the Realtek 1G card ("re").
I have partial patches for "bge" and am starting to work on "cxgbe".
Hopefully changes are trivial enough so interested third parties
can submit their patches. Interested people can contact me
for advice on how to add netmap support to specific devices.

CREDITS:
    Netmap has been developed by Luigi Rizzo and other collaborators
    at the Universita` di Pisa, and supported by EU project CHANGE
    (http://www.change-project.eu/)
    The code is distributed under a BSD Copyright.

[1] In my opinion is a bad idea to have all manpage in one directory.
  We should place kernel documentation in the same dir that contains
  the code, which would make it much simpler to keep doc and code
  in sync, reduce the clutter in share/man/ and incidentally is
  the policy used for all of userspace code.
  Makefiles and doc tools can be trivially adjusted to find the
  manpages in the relevant subdirs.
2011-11-17 12:17:39 +00:00
..

# $FreeBSD$

This directory is for tools.

A tool is something which is sometimes useful, and doesn't fit any of
the other categories.

Please make a subdir per program, and add a brief description to this
file.

ansify		Convert K&R-style function definitions to ANSI style
ath		Tools specific to the Atheros 802.11 support
backout_commit	A tool for reading in a commit message and generating
		a script that will backout the commit.
cfi		Common Flash Interface (CFI) tool
commitsdb	A tool for reconstructing commit history using md5
		checksums of the commit logs.
crypto		Test and exercise tools related to the crypto framework
cxgbetool	A tool for the cxgbe(4) driver.
cxgbtool	A tool for the cxgb(4) driver.
diffburst	OBSOLETE: equivalent functionality is available via split -p.
		For example: "split -p ^diff < patchfile". See split(1).
editing		Editor modes and the like to help editing FreeBSD code.
epfe 		Extract printing filter examples from printing.sgml.
ether_reflect	An Ethernet packet reflector for low level testing.
find-sb		Scan a disk for possible filesystem superblocks.
gdb_regofs	A simple tool that prints out a register offset table
		for mapping gdb(1) register numbers to struct reg and
		struct fpreg offsets. The tool is useful on selected
		platforms only.
genericize	Turn a kernel config into something that can more easily
		be diffed against the appropriate GENERIC.
hcomp		Compress header files by removing comments and whitespace.
html-mv         Rename HTML generated filenames to human readable filenames.
ifinfo		Uses the interface MIB to print out all the information
		an interface exports in an ugly form.
iso             Tool to compare the iso3166 and iso639 files in
		/usr/share/misc with the data from the master sites.
iwi		Tools specific to the Intel PRO/Wireless 2200BG/2225BG/2915ABG
		support.
kdrv		KernelDriver; add/list/remove third-party kernel driver
		source to/in/from a kernel source tree.
kernelcruft	Shellscript to find orphaned *.c files in /sys
kerninclude	Shellscript to find unused #includes in the kernel.
kernxref	Shellscript to cross reference symbols in the LINT kernel.
kttcp		An in-kernel version of the ttcp network performance tool
mctest		A multicast test program
mfc		Merge a directory from HEAD to a branch where it does not
		already exist and other MFC related script(s).
mid	 	Create a Message-ID database for mailing lists.
mwl		Tools specific to the Marvell 88W8363 support
ncpus		Count the number of processors
netmap		Test applications for netmap(4)
notescheck	Check for missing devices and options in NOTES files.
npe		Tools specific to the Intel IXP4XXX NPE device
nxge		A diagnostic tool for the nxge(4) driver
pciid		Generate src/share/misc/pci_vendors.
pciroms		A tool for dumping PCI ROM images. WARNING: alpha quality.
pirtool		A tool for dumping the $PIR table on i386 machines at runtime.
portsinfo 	Generate list of new ports for last two weeks.
prstats		Generate statistics about the PR database.
recoverdisk	Copy as much data as possible from a defective disk.
scsi-defects	Get at the primary or grown defect list of a SCSI disk.
sysdoc		Build a manual page with available sysctls for a specific
		kernel configuration.
tinybsd		Script to build FreeBSD embedded systems.
track		Track the progress of a world / kernel build
vimage		An interim utility for managing the virtualized network
		stack infrastructure.
vop_table	Generates a HTML document that shows all the VOP's in
		the kernel.
vxge		A diagnostic tool for the vxge(4) driver
whereintheworld	Summarizes "make world" output.