aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vxge/README
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/vxge/README')
-rw-r--r--sys/dev/vxge/README450
1 files changed, 450 insertions, 0 deletions
diff --git a/sys/dev/vxge/README b/sys/dev/vxge/README
new file mode 100644
index 0000000000000..ed1c1c0053264
--- /dev/null
+++ b/sys/dev/vxge/README
@@ -0,0 +1,450 @@
+$FreeBSD$
+''_Readme for FreeBSD X3100 Series 10GbE PCIe I/O Virtualized Server Adapter Drivers_'''
+
+=== Introduction ===
+FreeBSD Driver for X3100 10GbE Server/Storage adapters
+* Drivers support all X3100 10GbE adapters with FreeBSD version 7.x, 8.x and 9.x
+* Supports both i386 and amd64 architectures
+* Features: Jumbo frames (up to 9600),
+ LRO (Large Receive Offload),
+ TSO (TCP segmentation offload),
+ RTH (Receive Traffic Hash).
+ Also, Extended Message Signaled Interrupts (MSI-X).
+
+
+''Features''
+
+ a. Jumbo frames:
+ X3110 and X3120 supports MTU up to 9600 bytes, modifiable using ifconfig command.
+
+ b. LRO (Large Receive Offload):
+ LRO can be enabled/disabled before loading driver.
+ Set lro_enable in vxge.conf to 1 before loading driver.
+
+ c. TSO (TCP Segmentation Offload)
+ TSO can be enabled/disabled before loading driver.
+ Set tso_enable in vxge.conf to 1 before loading driver.
+
+ d. RTH (Receive Traffic Hash)
+ Receive side steering for better scaling.
+ Set rth_enable in vxge.conf to 1 before loading driver.
+
+ e. MSI-X
+ Can be enabled on platforms which support it, resulting in noticeable
+ performance improvement.
+
+ f. Multi-VPaths
+ Up to 17 hardware based transmit and receive data channels, with
+ multiple steering options.
+
+
+''X3100 & Driver configuration: vxge.conf''
+
+The vxge.conf contains following attributes.
+
+
+''msix_enable''
+
+Enable MSI (Message Signaled Interrupts) feature in driver.
+0 - INTA
+1 - MSI-X
+Default: 1
+
+
+''rth_enable''
+
+Enables Receive side steering for better scaling (RTH - Receive Traffic Hash)
+Range: 0 - 1
+Default: 1
+
+
+''lro_enable''
+
+Enables LRO (Large Receive Offload) feature in driver.
+Range: 0 - 1
+Default: 1
+
+
+''tso_enable''
+
+Enables TSO (TCP Segmentaton Offload) feature in driver.
+Range: 0 - 1
+Default: 1
+
+
+''no_of_vpath''
+
+Specifies maximum VPATH(s) configured for each device function.
+Valid range: 1-17
+Default: Optimized by driver
+
+
+''func_mode''
+
+Change PCI function mode
+ 0 - SF1_VP17 (1 function with 17 VPATHs)
+ 1 - MF8_VP2 (8 functions with 2 VPATHs per function)
+ 8 - MF2_VP8 (2 functions, 8 Paths/Function)
+ 9 - MF4_VP4 (4 Functions, 4 Paths/Function)
+ 11 - MF8P_VP2 (8 functions with 2 VPATHS per function required for DirectIO)
+ Default: -1
+
+
+''port_mode''
+
+Change the default dual port mode
+ 2 - Active Passive
+ 3 - Single Port
+ 4 - Dual Port
+
+
+''l2_switch''
+
+Turn on/off the inter function traffic through l2 switch
+ 0 - Disallow inter function traffic
+ 1 - Allow inter function traffic
+ Default: -1
+
+
+''bandwidth_0 - bandwidth_7''
+
+ Desired max receive/transmit bandwidth,in Mbps for function 0 to function 7
+ Minimum value is 100 Mbps, for 1 Gbps specify a value of 1024.
+
+
+''priority_0 - priority_7''
+
+ Desired receive/transmit priority for function 0 to function 7
+
+
+''intr_coalesce''
+
+ Adaptive interrupt coalescing
+ 0 - Disable
+ 1 - Enable
+
+
+''Low Latency''
+
+ 0 - Disable
+ 1 - Enable
+
+=== Installation Instructions ===
+
+''Identifying the Adapter''
+
+ The X3100 adapter is identified by the board ID number on the adapter.
+
+ Look for a label that has a barcode and a number, for example,
+ SXT0425072. The factory-burned MAC address (hardware address)
+ shows up on the board above the serial number,
+ (similar to 000CFC000449 -- 00:0C:FC:00:04:49).
+
+
+''Kernel Driver Source Package''
+
+This package contains kernel_update.sh script which is to be used to copy driver sources to kernel path.
+It creates vxge folder with source code in /usr/src/sys/dev and Makefile in /usr/src/sys/modules.
+
+Loadable parameters can be changed by putting below lines in /boot/device.hints and set values as desired.
+ hint.vxge.0.msix_enable="1"
+ hint.vxge.0.rth_enable="1"
+ hint.vxge.0.lro_enable="1"
+ hint.vxge.0.tso_enable="1"
+ hint.vxge.0.tx_steering="1"
+ hint.vxge.0.no_of_vpath="-1"
+ hint.vxge.0.func_mode="-1"
+ hint.vxge.0.port_mode="-1"
+ hint.vxge.0.fw_upgrade="1"
+ hint.vxge.0.bandwidth_0="-1"
+ hint.vxge.0.bandwidth_1="-1"
+ hint.vxge.0.bandwidth_2="-1"
+ hint.vxge.0.bandwidth_3="-1"
+ hint.vxge.0.bandwidth_4="-1"
+ hint.vxge.0.bandwidth_5="-1"
+ hint.vxge.0.bandwidth_6="-1"
+ hint.vxge.0.bandwidth_7="-1"
+ hint.vxge.0.priority_0="-1"
+ hint.vxge.0.priority_1="-1"
+ hint.vxge.0.priority_2="-1"
+ hint.vxge.0.priority_3="-1"
+ hint.vxge.0.priority_4="-1"
+ hint.vxge.0.priority_5="-1"
+ hint.vxge.0.priority_6="-1"
+ hint.vxge.0.priority_7="-1"
+ hint.vxge.0.intr_coalesce="0"
+ hint.vxge.0.low_latency="0"
+
+ e.g., set hint.vxge.0.msix_enable to 0 to load driver in INTA mode.
+ Then reboot the system to add loadable parameters to kenv.
+
+
+''Standalone Driver Source Package''
+
+vxge (FreeBSD package)
+ This directory contains FreeBSD driver sources for X3100 device(s),
+ Makefile, and X3100 Hardware Abstraction headers and sources
+ (vxgehal and include folders)
+
+vxgehal
+ This directory contains the X3100 HAL sources.
+ The driver uses HAL to perform operations on the X3100 hardware.
+
+include
+ The include subdirectory contains HAL header files.
+
+Source code for vxge-manage tool (used to get statistics, pciconfig and
+register dump) are included in the freebsd directory.
+
+
+''Building the driver''
+
+ The driver is distributed in the source form. Driver and installation
+ utility executables need to be built for the target platform.
+
+ In the directory containing Makefile for building Exar driver for FreeBSD,
+ #make clean
+ #make
+
+ Please unload previously installed Exar drivers before proceeding with following steps.
+ #make uninstall
+
+
+''Loading the driver''
+
+ Use "kldload" to load driver module vxge.ko.
+ #kldload ./vxge.ko
+
+ Run "kldstat" and find an entry for vxge kernel module to ensure driver installation
+ was successful.
+ #kldstat | grep vxge
+ 3 1 0xc22cc000 26000 vxge.ko
+
+
+''Enabling interface and assigning IP address''
+
+ #ifconfig <INTERFACE> <IP_ADDRESS> up
+ <INTERFACE> will be similar to vxge0, vxge1 etc. and can be
+ found by executing "ifconfig -a".
+ Neterion adapters typically have MAC addresses starting with
+ "00:0C:FC" or "00:11:25".
+
+ Example:
+ #ifconfig vxge0 10.2.2.40 up
+ Enables vxge0 interface and assigns to it the IP address 10.2.2.40.
+
+ vxge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
+ options=53b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,TSO4,LRO>
+ ether 00:0c:fc:00:da:47
+ inet6 fe80::20c:fcff:fe00:da47%vxge0 prefixlen 64 scopeid 0x3
+ inet 10.2.2.40 netmask 0xff000000 broadcast 17.255.255.255
+ media: Ethernet autoselect (10Gbase-SR <full-duplex>)
+ status: active
+
+
+''Disabling the interface''
+
+ #ifconfig <INTERFACE> down
+ Example:
+ #ifconfig vxge0 down
+
+
+''Unloading the Driver''
+ #kldunload vxge.ko
+
+
+=== Performance Suggestions ===
+
+Sysctl Tuning Parameters
+ #sysctl net.inet.tcp.sendspace=786432
+ #sysctl net.inet.tcp.recvspace=786432
+ #sysctl net.inet.tcp.recvbuf_max=16777216
+ #sysctl net.inet.tcp.sendbuf_max=16777216
+ #sysctl net.inet.tcp.blackhole=1
+ #sysctl net.inet.tcp.rfc1323=1
+ #sysctl net.inet.tcp.path_mtu_discovery=1
+ #sysctl net.inet.tcp.inflight.enable=0
+ #sysctl net.inet.ip.maxfragsperpacket=2147483647
+ #sysctl kern.ipc.maxsockbuf=8388608
+ #sysctl kern.ipc.nmbclusters=2147483647
+ #sysctl kern.ipc.nmbjumbop=262144
+ #sysctl kern.ipc.maxsockets=81920
+ #sysctl hw.intr_storm_threshold=9000
+
+
+''Usage & Troubleshooting''
+
+For general information and support, please visit Neterion support website at
+http://www.neterion.com/support/support.html
+
+Make sure that the operating system identifies the X3100 adapter. Note that
+Neterion vendor ID is 0x17D5 and X3110 and X3120 adapters can be fixed to both PCIe slots.
+
+The rest of this section details troubleshooting tips and information. Some of
+them are general and some are more specific. For online Troubleshooting tips
+and faqs, please visit
+http://trac.neterion.com/cgi-bin/trac.cgi/wiki/TitleIndex?anonymous
+
+
+''Loading the driver and initializing the device''
+
+The first time FreeBSD identifies the device it stores the corresponding
+device/vendor IDs in an enumerated tree of PCI devices. Note that Neterion
+vendor id is 0x17d5.
+
+After cold reboot FreeBSD finds the device and tries to load the corresponding
+driver. If it fails, try to switch the card and/or cable. And, in parallel, send
+us the "tail" of the "/var/log/messages". We also need traces, register dump and
+statistics(Use vxge-manage tool).
+
+
+''Collect information''
+
+If you're reporting a problem to Neterion, please describe:
+host(s) and adapter(s), switch (if used), software version.
+
+
+''ARP''
+
+If this is a basic connectivity issue (e.g., cannot connect, cannot ping),
+make sure first that ARP works
+Do you see ARPs coming through a switch (in case switch is used)?
+Do you see frame drops at the switch when pinging?
+Do you see frame counts increasing via statistics?
+
+
+''Have you tried''
+
+ a. A previous driver release;
+ b. A different adapter in the same PCI slot;
+ c. A different PCI slot;
+ d. Back-to-back setup so that the switch is excluded from the equation.
+ e. To replace the cables?
+ f. To use a different PCI slot?
+
+
+''Start clean''
+
+ a. Have you tried to reboot the switch? Cold-reboot the host?
+ b. Make sure that the latest released driver gets loaded after the host
+ reboot, and that the 10GE interface shows up via ifconfig.
+
+
+''LEDs''
+
+Do you see LED going green after everything is connected and drivers loaded?
+How/when does the color changes?
+
+
+''ifconfig''
+
+Run "ifconfig -a" at the command prompt and check whether the output Looks as
+expected. Include the output in your problem report.
+
+Note for instance that "all-foxes" i.e, FF:FF:FF:FF:FF:FF MAC address could
+explain a general connectivity issue, if that's what you see.
+
+
+''Log''
+
+Please attach the generated log, with traces enabled.
+
+Note that the driver's logging facility is configurable at compile-time. Errors
+and traces can be compiled out on a per-component basis. The components are: HAL
+fifos and rings, device, etc., see VXGE_COMPONENT_HAL_??? in the Makefile.
+
+Here's how you enable all except data path traces:
+CFLAGS_VXGE = -DVXGE_DEBUG_MODULE_MASK=0xffffffbf \
+-DVXGE_DEBUG_ERR_MASK=0xffffffbf
+Recompile with traces and include the log in the report.
+
+
+=== Utilities ===
+
+''Statistics''
+
+ To print hardware and software statistics for interface instance 0
+ (i.e., vxge0), run:
+ #vxge-manage vxgeX stats common
+ #vxge-manage vxgeX stats mrpcim
+ #vxge-manage vxgeX stats driver
+ #vxge-manage vxgeX pciconfig
+ #vxge-manage vxgeX hwinfo
+ #vxge-manage vxgeX bw_pri_get
+ #vxge-manage vxgeX bw_pri_get vf_id
+ #vxge-manage vxgeX port_mode_get
+
+The vxge-manage tool generates log file in the working directory. Once done, ping a
+few times, and collect the statistics again (Ping both from this and the remote
+machines).
+
+Many counters could be of interest. For example, "rx_vld_frms" counts all
+valid incoming Ethernet frames seen by the adapter. Information could be derived
+from the fact that (for instance) counter stay constant during ping, if that is
+what happening. For detailed description of the X3100 counters, please refer
+to the "X3100 User Guide".
+
+Please include the statistics into your problem report.
+
+
+''X3100 registers''
+
+ Use vxge-manage to dump all X3100 BAR0 space registers. Include this register dump
+ into your problem report.
+ #vxge-manage vxgeX regs
+
+
+''PCI configuration space''
+
+Use vxge-manage to retrieve PCI vendor, device, etc. Include the PCI configutation
+space in your problem report.
+ #vxge-manage vxgeX pciconfig
+
+
+''Hardware Info''
+
+To retrieve hardware info of device, e.g, serial / part number and function mode etc.
+use vxge-manage
+ #vxge-manage vxgeX hwinfo
+
+
+''Bandwidth and Priority''
+
+Use vxge-manage to display Bandwidth and Priority information.
+ #vxge-manage vxgeX bw_pri_get
+ or
+ #vxge-manage vxgeX bw_pri_get vf_id
+
+vxge-manage can also be used to set bandwidth and priority for individual VF.
+ #vxge-manage vxgeX bw_pri_set vf_id bandwidth
+ or
+ #vxge-manage vxgeX bw_pri_set vf_id bandwidth priority
+
+ Example:
+ #vxge-manage vxge0 bw_pri_set 0 1500
+ or
+ #vxge-manage vxge0 bw_pri_set 0 1500 1
+
+''Port mode''
+
+Use vxge-manage to display Port mode setting
+ #vxge-manage vxgeX port_mode_get
+
+vxge-manage can also be used to set Port mode.
+ #vxge-manage vxgeX port_mode_set port_mode_value
+
+ Example:
+ #vxge-manage vxge0 port_mode_set 2
+
+=== Known Issues ===
+
+
+=== Available Downloads ===
+
+ For latest available drivers or further support please contact your network
+ adapter provider or neterionsupport@exar.com.
+
+
+===================================================================
+ Exar Corp., Proprietary
+ COPYRIGHT (c) 2002-2011 Exar corp., ALL RIGHTS RESERVED