summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/bxe.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/bxe.4 3.html')
-rw-r--r--static/freebsd/man4/bxe.4 3.html284
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> &#x2014; <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=&quot;YES&quot;</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=&lt;#&gt;</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 &lt;n&gt;</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
+ &lt;<a class="Mt" href="mailto:support@qlogic.com">support@qlogic.com</a>&gt;.</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>
+ &lt;<a class="Mt" href="mailto:edavis@broadcom.com">edavis@broadcom.com</a>&gt;,
+ <br/>
+ <span class="An">David Christensen</span>
+ &lt;<a class="Mt" href="mailto:davidch@broadcom.com">davidch@broadcom.com</a>&gt;,
+ and
+ <br/>
+ <span class="An">Gary Zambrano</span>
+ &lt;<a class="Mt" href="mailto:zambrano@broadcom.com">zambrano@broadcom.com</a>&gt;.</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>