diff options
Diffstat (limited to 'static/freebsd/man4/bxe.4 3.html')
| -rw-r--r-- | static/freebsd/man4/bxe.4 3.html | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/static/freebsd/man4/bxe.4 3.html b/static/freebsd/man4/bxe.4 3.html new file mode 100644 index 00000000..1b69f1fa --- /dev/null +++ b/static/freebsd/man4/bxe.4 3.html @@ -0,0 +1,284 @@ +<table class="head"> + <tr> + <td class="head-ltitle">BXE(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">BXE(4)</td> + </tr> +</table> +<div class="manual-text"> +<section class="Sh"> +<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> +<p class="Pp"><code class="Nm">bxe</code> — <span class="Nd">QLogic + NetXtreme II Ethernet 10Gb PCIe adapter driver</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To compile this driver into the kernel, place the following lines + in your kernel configuration file:</p> +<div class="Bd Pp Bd-indent"><code class="Cd">device bxe</code></div> +<p class="Pp">Alternatively, to load the driver as a module at boot time, place + the following line in <a class="Xr">loader.conf(5)</a>:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>if_bxe_load="YES"</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">bxe</code> driver provides support for PCIe + 10Gb Ethernet adapters based on the QLogic NetXtreme II family of 10Gb + chips. The driver supports Jumbo Frames, VLAN tagging, checksum offload + (IPv4, TCP, UDP, IPv6-TCP, IPv6-UDP), MSI-X interrupts, TCP Segmentation + Offload (TSO), Large Receive Offload (LRO), and Receive Side Scaling + (RSS).</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HARDWARE"><a class="permalink" href="#HARDWARE">HARDWARE</a></h1> +<p class="Pp">The <code class="Nm">bxe</code> driver provides support for + various NICs based on the QLogic NetXtreme II family of 10Gb Ethernet + controller chips, including the following:</p> +<p class="Pp"></p> +<ul class="Bl-bullet Bl-compact"> + <li>QLogic NetXtreme II BCM57710 10Gb</li> + <li>QLogic NetXtreme II BCM57711 10Gb</li> + <li>QLogic NetXtreme II BCM57711E 10Gb</li> + <li>QLogic NetXtreme II BCM57712 10Gb</li> + <li>QLogic NetXtreme II BCM57712-MF 10Gb</li> + <li>QLogic NetXtreme II BCM57800 10Gb</li> + <li>QLogic NetXtreme II BCM57800-MF 10Gb</li> + <li>QLogic NetXtreme II BCM57810 10Gb</li> + <li>QLogic NetXtreme II BCM57810-MF 10Gb</li> + <li>QLogic NetXtreme II BCM57840 10Gb / 20Gb</li> + <li>QLogic NetXtreme II BCM57840-MF 10Gb</li> +</ul> +</section> +<section class="Sh"> +<h1 class="Sh" id="CONFIGURATION"><a class="permalink" href="#CONFIGURATION">CONFIGURATION</a></h1> +<p class="Pp">There a number of configuration parameters that can be set to + tweak the driver's behavior. These parameters can be set via the + <a class="Xr">loader.conf(5)</a> file to take effect during the next system + boot. The following parameters affect ALL instances of the driver.</p> +<dl class="Bl-tag"> + <dt id="hw.bxe.debug"><var class="Va">hw.bxe.debug</var></dt> + <dd>DEFAULT = 0 + <br/> + Sets the default logging level of the driver. See the Diagnostics and + Debugging section below for more details.</dd> + <dt id="hw.bxe.interrupt_mode"><var class="Va">hw.bxe.interrupt_mode</var></dt> + <dd>DEFAULT = 2 + <br/> + Sets the default interrupt mode: 0=IRQ, 1=MSI, 2=MSIX. If set to MSIX and + allocation fails, the driver will roll back and attempt MSI allocation. If + MSI allocation fails, the driver will roll back and attempt fixed level + IRQ allocation. If IRQ allocation fails, then the driver load fails. With + MSI/MSIX, the driver attempts to allocate a vector for each queue in + addition to one more for default processing.</dd> + <dt id="hw.bxe.queue_count"><var class="Va">hw.bxe.queue_count</var></dt> + <dd>DEFAULT = 4 + <br/> + Sets the default number of fast path packet processing queues. Note that one + MSI/MSIX interrupt vector is allocated per-queue.</dd> + <dt id="hw.bxe.max_rx_bufs"><var class="Va">hw.bxe.max_rx_bufs</var></dt> + <dd>DEFAULT = 0 + <br/> + Sets the maximum number of receive buffers to allocate per-queue. Zero(0) + means to allocate a receive buffer for every buffer descriptor. By default + this equates to 4080 buffers per-queue which is the maximum value for this + config parameter.</dd> + <dt id="hw.bxe.hc_rx_ticks"><var class="Va">hw.bxe.hc_rx_ticks</var></dt> + <dd>DEFAULT = 25 + <br/> + Sets the number of ticks for host interrupt coalescing in the receive + path.</dd> + <dt id="hw.bxe.hc_tx_ticks"><var class="Va">hw.bxe.hc_tx_ticks</var></dt> + <dd>DEFAULT = 50 + <br/> + Sets the number of ticks for host interrupt coalescing in the transmit + path.</dd> + <dt id="hw.bxe.rx_budget"><var class="Va">hw.bxe.rx_budget</var></dt> + <dd>DEFAULT = 0xffffffff + <br/> + Sets the maximum number of receive packets to process in an interrupt. If + the budget is reached then the remaining/pending packets will be processed + in a scheduled taskqueue.</dd> + <dt id="hw.bxe.max_aggregation_size"><var class="Va">hw.bxe.max_aggregation_size</var></dt> + <dd>DEFAULT = 32768 + <br/> + Sets the maximum LRO aggregation byte size. The higher the value the more + packets the hardware will aggregate. Maximum is 65K.</dd> + <dt id="hw.bxe.mrrs"><var class="Va">hw.bxe.mrrs</var></dt> + <dd>DEFAULT = -1 + <br/> + Sets the PCI MRRS: -1=Auto, 0=128B, 1=256B, 2=512B, 3=1KB</dd> + <dt id="hw.bxe.autogreeen"><var class="Va">hw.bxe.autogreeen</var></dt> + <dd>DEFAULT = 0 + <br/> + Set AutoGrEEEN: 0=HW_DEFAULT, 1=FORCE_ON, 2=FORCE_OFF</dd> + <dt id="hw.bxe.udp_rss"><var class="Va">hw.bxe.udp_rss</var></dt> + <dd>DEFAULT = 0 + <br/> + Enable/Disable 4-tuple RSS for UDP: 0=DISABLED, 1=ENABLED</dd> +</dl> +<p class="Pp">Special care must be taken when modifying the number of queues and + receive buffers. <span class="Ux">FreeBSD imposes</span> a limit on the + maximum number of <a class="Xr">mbuf(9)</a> allocations. If buffer + allocations fail, the interface initialization will fail and the interface + will not be usable. The driver does not make a best effort for buffer + allocations. It is an all or nothing effort.</p> +<p class="Pp">You can tweak the <a class="Xr">mbuf(9)</a> allocation limit using + <a class="Xr">sysctl(8)</a> and view the current usage with + <a class="Xr">netstat(1)</a> as follows:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># netstat -m +# sysctl kern.ipc.nmbclusters +# sysctl kern.ipc.nmbclusters=<#></pre> +</div> +<p class="Pp">There are additional configuration parameters that can be set on a + per-instance basis to dynamically override the default configuration. The + '#' below must be replaced with the driver instance / interface unit + number:</p> +<dl class="Bl-tag"> + <dt id="dev.bxe._.debug"><var class="Va">dev.bxe.#.debug</var></dt> + <dd>DEFAULT = 0 + <br/> + Sets the default logging level of the driver instance. See + <var class="Va">hw.bxe.debug</var> above and the Diagnostics and Debugging + section below for more details.</dd> + <dt id="dev.bxe._.rx_budget"><var class="Va">dev.bxe.#.rx_budget</var></dt> + <dd>DEFAULT = 0xffffffff + <br/> + Sets the maximum number of receive packets to process in an interrupt for + the driver instance. See <var class="Va">hw.bxe.rx_budget</var> above for + more details.</dd> +</dl> +<p class="Pp">Additional items can be configured using + <a class="Xr">ifconfig(8)</a>:</p> +<dl class="Bl-tag"> + <dt id="MTU"><var class="Va">MTU - Maximum Transmission Unit</var></dt> + <dd>DEFAULT = 1500 + <br/> + RANGE = 46-9184 + <br/> + # ifconfig bxe# mtu <n></dd> + <dt id="Promiscuous"><var class="Va">Promiscuous Mode</var></dt> + <dd>DEFAULT = OFF + <br/> + # ifconfig bxe# [ promisc | -promisc ]</dd> + <dt id="Rx/Tx"><var class="Va">Rx/Tx Checksum Offload</var></dt> + <dd>DEFAULT = RX/TX CSUM ON + <br/> + Note that the Rx and Tx settings are not independent. + <br/> + # ifconfig bxe# [ rxcsum | -rxcsum | txcsum | -txcsum ]</dd> + <dt id="TSO"><var class="Va">TSO - TCP Segmentation Offload</var></dt> + <dd>DEFAULT = ON + <br/> + # ifconfig bxe# [ tso | -tso | tso6 | -tso6 ]</dd> + <dt id="LRO"><var class="Va">LRO - TCP Large Receive Offload</var></dt> + <dd>DEFAULT = ON + <br/> + # ifconfig bxe# [ lro | -lro ]</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="DIAGNOSTICS_AND_DEBUGGING"><a class="permalink" href="#DIAGNOSTICS_AND_DEBUGGING">DIAGNOSTICS + AND DEBUGGING</a></h1> +<p class="Pp">There are many statistics exposed by <code class="Nm">bxe</code> + via <a class="Xr">sysctl(8)</a>.</p> +<p class="Pp">To dump the default driver configuration:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl -a | grep hw.bxe</pre> +</div> +<p class="Pp">To dump every instance's configuration and detailed + statistics:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl -a | grep dev.bxe</pre> +</div> +<p class="Pp">To dump information for a single instance (replace the '#' with + the driver instance / interface unit number):</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl -a | grep dev.bxe.#</pre> +</div> +<p class="Pp">To dump information for all the queues of a single instance:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl -a | grep dev.bxe.#.queue</pre> +</div> +<p class="Pp">To dump information for a single queue of a single instance + (replace the additional '#' with the queue number):</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl -a | grep dev.bxe.#.queue.#</pre> +</div> +<p class="Pp">The <code class="Nm">bxe</code> driver has the ability to dump a + ton of debug messages to the system log. The default level of logging can be + set with the <var class="Va">hw.bxe.debug</var> <a class="Xr">sysctl(8)</a>. + Take care with this setting as it can result in too many logs being dumped. + Since this parameter is the default one, it affects every instance and will + dramatically change the timing in the driver. A better alternative to aid in + debugging is to dynamically change the debug level of a specific instance + with the <var class="Va">dev.bxe.#.debug</var> <a class="Xr">sysctl(8)</a>. + This allows you to turn on/off logging of various debug groups + on-the-fly.</p> +<p class="Pp">The different debug groups that can be toggled are:</p> +<div class="Bd Pp Bd-indent Li"> +<pre>DBG_LOAD 0x00000001 /* load and unload */ +DBG_INTR 0x00000002 /* interrupt handling */ +DBG_SP 0x00000004 /* slowpath handling */ +DBG_STATS 0x00000008 /* stats updates */ +DBG_TX 0x00000010 /* packet transmit */ +DBG_RX 0x00000020 /* packet receive */ +DBG_PHY 0x00000040 /* phy/link handling */ +DBG_IOCTL 0x00000080 /* ioctl handling */ +DBG_MBUF 0x00000100 /* dumping mbuf info */ +DBG_REGS 0x00000200 /* register access */ +DBG_LRO 0x00000400 /* lro processing */ +DBG_ASSERT 0x80000000 /* debug assert */ +DBG_ALL 0xFFFFFFFF /* flying monkeys */</pre> +</div> +<p class="Pp">For example, to debug an issue in the receive path on bxe0:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl dev.bxe.0.debug=0x22</pre> +</div> +<p class="Pp">When finished turn the logging back off:</p> +<div class="Bd Pp Bd-indent Li"> +<pre># sysctl dev.bxe.0.debug=0</pre> +</div> +</section> +<section class="Sh"> +<h1 class="Sh" id="SUPPORT"><a class="permalink" href="#SUPPORT">SUPPORT</a></h1> +<p class="Pp">For support questions please contact your QLogic approved reseller + or QLogic Technical Support at + <span class="Pa">http://support.qlogic.com</span>, or by E-mail at + <<a class="Mt" href="mailto:support@qlogic.com">support@qlogic.com</a>>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE + ALSO</a></h1> +<p class="Pp"><a class="Xr">netstat(1)</a>, <a class="Xr">altq(4)</a>, + <a class="Xr">arp(4)</a>, <a class="Xr">netintro(4)</a>, + <a class="Xr">ng_ether(4)</a>, <a class="Xr">vlan(4)</a>, + <a class="Xr">ifconfig(8)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">The <code class="Nm">bxe</code> device driver first appeared in + <span class="Ux">FreeBSD 9.0</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp">The <code class="Nm">bxe</code> driver was written by + <span class="An">Eric Davis</span> + <<a class="Mt" href="mailto:edavis@broadcom.com">edavis@broadcom.com</a>>, + <br/> + <span class="An">David Christensen</span> + <<a class="Mt" href="mailto:davidch@broadcom.com">davidch@broadcom.com</a>>, + and + <br/> + <span class="An">Gary Zambrano</span> + <<a class="Mt" href="mailto:zambrano@broadcom.com">zambrano@broadcom.com</a>>.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">April 29, 2012</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
