Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
XNB(4)		       FreeBSD Kernel Interfaces Manual			XNB(4)

NAME
     xnb -- Xen	Paravirtualized	Backend	Ethernet Driver

SYNOPSIS
     To	compile	this driver into the kernel, place the following lines in your
     kernel configuration file:

	   options XENHVM
	   device xenpci

DESCRIPTION
     The xnb driver provides the back half of a	paravirtualized	xen(4) network
     connection.  The netback and netfront drivers appear to their respective
     operating systems as Ethernet devices linked by a crossover cable.	 Typi-
     cally, xnb	will run on Domain 0 and the netfront driver will run on a
     guest domain.  However, it	is also	possible to run	xnb on a guest domain.
     It	may be bridged or routed to provide the	netfront's domain access to
     other guest domains or to a physical network.

     In	most respects, the xnb device appears to the OS	as an other Ethernet
     device.  It can be	configured at runtime entirely with ifconfig(8)	.  In
     particular, it supports MAC changing, arbitrary MTU sizes,	checksum
     offload for IP, UDP, and TCP for both receive and transmit, and TSO.
     However, see CAVEATS before enabling txcsum, rxcsum, or tso.

SYSCTL VARIABLES
     The following read-only variables are available via sysctl(8):

     dev.xnb.%d.dump_rings
	     Displays information about	the ring buffers used to pass requests
	     between the netfront and netback.	Mostly useful for debugging,
	     but can also be used to get traffic statistics.

     dev.xnb.%d.unit_test_results
	     Runs a builtin suite of unit tests	and displays the results.
	     Does not affect the operation of the driver in any	way.  Note
	     that the test suite simulates error conditions; this will result
	     in	error messages being printed to	the system system log.

CAVEATS
     Packets sent through Xennet pass over shared memory, so the protocol
     includes no form of link-layer checksum or	CRC.  Furthermore, Xennet
     drivers always report to their hosts that they support receive and	trans-
     mit checksum offloading.  They "offload" the checksum calculation by sim-
     ply skipping it.  That works fine for packets that	are exchanged between
     two domains on the	same machine.  However,	when a Xennet interface	is
     bridged to	a physical interface, a	correct	checksum must be attached to
     any packets bound for that	physical interface.  Currently,	FreeBSD	lacks
     any mechanism for an ethernet device to inform the	OS that	newly received
     packets are valid even though their checksums are not.  So	if the net-
     front driver is configured	to offload checksum calculations, it will pass
     non-checksumed packets to xnb , which must	then calculate the checksum in
     software before passing the packet	to the OS.

     For this reason, it is recommended	that if	xnb is bridged to a physcal
     interface,	then transmit checksum offloading should be disabled on	the
     netfront.	The Xennet protocol does not have any mechanism	for the	net-
     back to request the netfront to do	this; the operator must	do it manu-
     ally.

SEE ALSO
     arp(4), netintro(4), ng_ether(4), ifconfig(8), xen(4)

HISTORY
     The xnb device driver first appeared in FreeBSD 10.0

AUTHORS
     The xnb driver was	written	by Alan	Somers <alans@spectralogic.com>	and
     John Suykerbuyk <johns@spectralogic.com>.

BUGS
     The xnb driver does not properly checksum UDP datagrams that span more
     than one Ethernet frame.  Nor does	it correctly checksum IPv6 packets.
     To	workaround that	bug, disable transmit checksum offloading on the net-
     front driver.

FreeBSD	9.3			January	6, 2012			   FreeBSD 9.3

NAME | SYNOPSIS | DESCRIPTION | SYSCTL VARIABLES | CAVEATS | SEE ALSO | HISTORY | AUTHORS | BUGS

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=xnb&sektion=4&manpath=FreeBSD+9.1-RELEASE>

home | help