BE2NET(4)							     BE2NET(4)



NAME
       be2net - Device driver for BladeEngine - 10Gb NIC

DESCRIPTION
   Introduction
       be2net  is  a  regular  10Gb  NIC  driver  for  the network function of
       ServerEngines’ BladeEngine and Emulex OneConnect	 family	 of  converged
       network adapters.  BladeEngine based adapters come in various skews and
       with different combinations of NIC, FCoE and iSCSI  functions.	be2net
       claims the NIC functions in all these adapters.

       When successfully loaded, the driver logs a message similar to the fol-
       lowing one in the kernel log:

       be2net 0000:01:00.0: Emulex OneConnect 10Gbps NIC (be3) port 0
       be2net 0000:01:00.1: Emulex OneConnect 10Gbps NIC (be3) port 1


   Key Features
       Offloading
	      The following offload features are supported. All these features
	      are  enabled  by default. They can be disabled or modified using
	      ethtool.

	      · TCP checksum offload
	      · TCP segmentation offload (TSO) for IPv4
	      · Large receive offload / Generic receive offload.
	      · VLAN offload
	      · Ethernet multicast filtering


       MSI-X interrupts
	      By default, be2net tries to use MSI-X interrupts where ever pos-
	      sible.   A  separate  interrupt vector is used for RX and TX for
	      each interface. This helps with load distribution of Rx  and  Tx
	      interrupt	 processing  across  different	CPUs. The driver falls
	      back to using INT-X on platforms	that  do  not  support	MSI-X.
	      be2net  can  be directed to use only INT-X interrupts instead of
	      MSI-X by specifying the module parameter msix=0.


       NAPI   be2net uses NAPI for servicing completion interrupts from NIC.


       MTU    By default be2net uses an	 MTU of 1500. MTU can  be  changed  to
	      any value between 256 and 9000 using ifconfig command.


       Interrupt mitigation
	      Interrupt	 delay	for  RX	 and  TX interrupts can be configured.
	      Smaller delay will help achiever better  latency;	 but  increase
	      the  number  of interrupts and CPU utilization.  The driver also
	      supports adaptive interrupt coalescing (AIC) for RX  interrupts.
	      AIC  helps to vary the interrupt delay based on the traffic con-
	      dition and tries to achieve lower CPU  utilization  during  high
	      network load and lower latency during lighter network load.  AIC
	      is supported only for RX interrupts and is enabled  by  default.
	      AIC can be can be disabled using the -C option in ethtool.


       Receive buffer size
	      The size of each receive buffer made available to the NIC to DMA
	      received ether frames can be set to either 2048,	4096  or  8192
	      bytes  using  the	 "rx_frag_size" module parameter.  The default
	      rx_frag_size is 2048 and it is optimal size for 1500  byte  MTU.
	      A higher value may improve CPU performance for larger MTU.


       Bonding
	      All bonding modes are supported.


       PCI error recovery
	      This  feature is supported in platforms that implement PCI error
	      detection (EEH).


       Link level flow control
	      Link level flow control is supported using pause frames for   RX
	      and  TX.	In  adapters  with  FCoE function, pause is always off
	      since it could interfere with the priority flow control required
	      for FCoE.


   Updating Firmware
       In  newer  Linux	 distributions that support the ethtool ioctl to flash
       firmware (eg. RHEL6, SLES11 SP1), firmware  image  can  be  flashed  by
       copying	the  flash  image  under /lib/firmware and running the ethtool
       command with -f option and the filename of the flash image.   In	 older
       Linux  distributions,  firmware	update	can  be	 done by using a sysfs
       interface created by the driver following the steps below:

       # echo 60 > /sys/class/firmware/timeout
       # cp  be3flash.ufi /lib/firmware
       # echo be3flash.ufi > /sys/class/net/eth<X>/flash_fw

       The new firmware becomes operational after the next system reboot.


   Configuration and reporting
       The following configuration options are available via ethtool  command.
       Please refer to the ethtool man page for details.

       · TX and RX flow control using -A option
       · Checksum offload using -K option
       · TCP segmentation offload using -K  option
       · Generic receive offload using -K option
       · Interrupt delay and AIC parameters using -C option
       · Get port parameters
       · Get driver and firmware versions using -i option
       · Run diagnostics using -t option
       · Firmware update using -f option (only in newer distributions)
       · Statistics reporting using -S option


   Building
       be2net	driver	can  be	 built	as  a  module  by  selecting  ’M’  for
       "ServerEngines’ 10Gbps NIC - BladeEngine" option in  the	 Linux	kernel
       build configuration menu in

       Device Drivers->Network device support->Ethernet (10000 Mbit)

       be2net  can  be	built  as  an external module for the installed kernel
       using the commands below:

       #cd <be2net-directory>
       #make

       be2net can also be cross-compiled as an external module	for  a	kernel
       other  than  the	 installed  kernel.  The  kernel  header files must be
       available. If the header file sources are  in  <source>	directory  and
       they  are built in <build> directory (<build> may be same as <source>),
       use the following steps:

       #cd <be2net-directory>
       #make KSRC=<source> KDIR=<build>


FILES
       /lib/firmware/be2flash.ufi, /lib/firmware/be3flash.ufi
	      Firmware images used for updating the  firmware  stored  in  the
	      adapter flash.



SEE ALSO
       ethtool(8), ifconfig(8)



				  2010-08-20			     BE2NET(4)
