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

FreeBSD Manual Pages

  
 
  

home | help
XNB(4)			    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)  net-
       work  connection.  The netback and netfront drivers appear to their re-
       spective	operating systems as Ethernet devices linked  by  a  crossover
       cable.	Typically,  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
       domain access to	other guest domains or to a physical network.

       In  most	respects, the xnb device appears to the	OS as any other	Ether-
       net 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  re-
	       quests between the netfront and netback.	 Mostly	useful for de-
	       bugging,	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 re-
	       sult in error messages being printed to the system log.

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

HISTORY
       The xnb device driver first appeared in FreeBSD 10.0.

AUTHORS
       The xnb driver was written by  Alan  Somers  <asomers@FreeBSD.org>  and
       John Suykerbuyk.

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
       transmit	checksum offloading.  They "offload" the checksum  calculation
       by  simply skipping it.	That works fine	for packets that are exchanged
       between two domains on the same machine.	 However, when a Xennet	inter-
       face is bridged to a physical interface,	a correct checksum must	be at-
       tached 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	netfront driver	is configured to offload checksum cal-
       culations, 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 physical
       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.

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
       netfront	driver.

FreeBSD	14.3			 June 6, 2014				XNB(4)

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

home | help