| .\" Copyright (c) 2007-2009 Broadcom Corporation |
| .\" This is free documentation; you can redistribute it and/or |
| .\" modify it under the terms of the GNU General Public License as |
| .\" published by the Free Software Foundation. |
| .\" |
| .\" bnx2x.4,v 1.0 |
| .\" |
| .TH BNX2X 4 "11/29/07" "Broadcom Corporation" |
| .\" |
| .\" NAME part |
| .\" |
| .SH NAME |
| bnx2x \- Broadcom NetXtreme II BCM55771x series 10-Gigabit Ethernet device driver |
| .\" |
| .\" SYNOPSIS part |
| .\" |
| .SH SYNOPSIS |
| .B insmod bnx2x.ko |
| .RB [ int_mode=\c |
| .IR 1 ] |
| .br |
| .B insmod bnx2x.ko |
| .RB [ int_mode=\c |
| .IR 2 ] |
| .br |
| .B insmod bnx2x.ko |
| .RB [ disable_tpa=\c |
| .IR 1 ] |
| .br |
| .B insmod bnx2x.ko |
| .RB [ multi_mode=\c |
| .IR 2 |
| .B pri_map=\c |
| .IR 0x11110000 |
| .B qs_per_cos=\c |
| .IR 0x404 ] |
| .br |
| .B insmod bnx2x.ko |
| .RB [ multi_mode=\c |
| .IR 4 |
| .B pri_map=\c |
| .IR 0x22221100 |
| .B qs_per_cos=\c |
| .IR 0x10101 |
| .RB [ cos_min_rate=\c |
| .IR 0x30201 ]] |
| .br |
| .B insmod bnx2x |
| .RB [ dropless_fc=\c |
| .IR 1 ] |
| .PP |
| .B modprobe bnx2x |
| .RB [ int_mode=\c |
| .IR 1 ] |
| .br |
| .B modprobe bnx2x |
| .RB [ int_mode=\c |
| .IR 2 ] |
| .br |
| .B modprobe bnx2x |
| .RB [ disable_tpa=\c |
| .IR 1 ] |
| .br |
| .B modprobe bnx2x |
| .RB [ multi_mode=\c |
| .IR 2 |
| .B pri_map=\c |
| .IR 0x11110000 |
| .B qs_per_cos=\c |
| .IR 0x404 ] |
| .br |
| .B modprobe bnx2x |
| .RB [ multi_mode=\c |
| .IR 4 |
| .B pri_map=\c |
| .IR 0x22221100 |
| .B qs_per_cos=\c |
| .IR 0x10101 |
| .RB [ cos_min_rate=\c |
| .IR 0x30201 ]] |
| .br |
| .B modprobe bnx2x |
| .RB [ dropless_fc=\c |
| .IR 1 ] |
| .\" |
| .\" DESCRIPTION part |
| .\" |
| .SH DESCRIPTION |
| .I bnx2x |
| is the network device driver for the Broadcom |
| .B NetXtreme II BCM55771x |
| series PCIE 10-Gigabit Ethernet Network Interface Card (NIC). The driver has |
| been tested on 2.6.x kernels starting from 2.6.9. |
| .PP |
| Refer to the README.TXT from the driver package on how to |
| compile and install the driver. |
| .PP |
| Refer to various Linux documentations |
| on how to configure network protocol and address. |
| .\" |
| .\" DRIVER DEPENDENCIES part |
| .\" |
| .SH DRIVER DEPENDENCIES |
| The driver uses library functions in the crc32 and zlib_inflate libraries. |
| On most kernels, these libraries are already built into the kernel. In |
| some cases, it may be necessary to load these library modules before the |
| driver or unresolved symbol errors will appear. Using modprobe will |
| resolve the dependencies automatically. |
| |
| In rare cases where the crc32 and zlib_inflate libraries are not enabled |
| in the kernel, it will be necessary to compile the kernel again with the |
| libraries enabled. |
| |
| The driver uses also library functions in the crc32c library. On new kernels, |
| this library is already built into the kernel. In some old kernels, |
| it may be necessary to load this library module before the driver or |
| unresolved symbol errors will appear. Using modprobe will resolve the |
| dependencies automatically. |
| |
| .\" |
| .\" DRIVER SETTINGS part |
| .\" |
| .SH DRIVER SETTINGS |
| The bnx2x driver settings can be queried and changed using \fBethtool\fP. |
| The latest ethtool can be downloaded from |
| \fBhttp://sourceforge.net/projects/gkernel\fP if it is not already installed. |
| See the ethtool man page for more information. ethtool settings |
| do not persist across reboot or module reload. The ethtool commands can be |
| put in a startup script such as /etc/rc.local to preserve the settings |
| across a reboot. On Red Hat distributions, "ethtool -s" parameters can be |
| specified in the ifcfg-ethx scripts using the ETHTOOL_OPTS keyword. The |
| specified ethtool parameters will be set during ifup. Example: |
| /etc/sysconfig/network-scripts/ifcfg-eth0: |
| |
| ETHTOOL_OPTS="wol g speed 100 duplex half autoneg off" |
| |
| .\" |
| .\" PARAMETER part |
| .\" |
| .SH PARAMETERS |
| Several optional parameters can be supplied as a command line argument |
| to the insmod or modprobe command. These parameters can also be set in |
| modprobe.conf. See the man page for more information. |
| .PP |
| The optional parameter \fBint_mode\fP is used to force using an interrupt mode |
| other than MSI-X. By default, the driver will try to enable MSI-X if it is |
| supported by the kernel. In case MSI-X is not attainable, the driver will try |
| to enable MSI if it is supported by the kernel. In case MSI is not attainable, |
| the driver will use legacy INTx mode. |
| .PP |
| Set the \fBint_mode\fP parameter to 1 as shown below to force using the legacy |
| INTx mode on all NetXtreme II NICs in the system. |
| .PP |
| insmod bnx2x.ko int_mode=1 |
| .PP |
| or |
| .PP |
| modprobe bnx2x int_mode=1 |
| .PP |
| Set the \fBint_mode\fP parameter to 2 as shown below to force using MSI mode |
| on all NetXtreme II NICs in the system. |
| .PP |
| insmod bnx2x.ko int_mode=2 |
| .PP |
| or |
| .PP |
| modprobe bnx2x int_mode=2 |
| .PP |
| The optional parameter \fBdisable_tpa\fP can be used to disable the |
| Transparent Packet Aggregation (TPA) feature. By default, the driver will |
| aggregate TCP packets, but if a user would like to disable this advanced |
| feature - it can be done. |
| .PP |
| Set the \fBdisable_tpa\fP parameter to 1 as shown below to disable the TPA |
| feature on all NetXtreme II NICs in the system. |
| .PP |
| insmod bnx2x.ko disable_tpa=1 |
| .PP |
| or |
| .PP |
| modprobe bnx2x disable_tpa=1 |
| .PP |
| Use ethtool (if available) to disable TPA (LRO) for a specific NetXtreme II NIC. |
| .PP |
| The optional parameter \fBmulti_mode\fP is for use on systems that support |
| multi queue networking. Multi queue networking on the receive side only is |
| supported on kernels starting from 2.6.24. And multi queue networking on the |
| transmit side also is supported on kernels starting from 2.6.27. By default, |
| \fBmulti_mode\fP parameter is set to 0 on old kernels that do not support |
| multi queue networking. On new kernels \fBmulti_mode\fP parameter is set |
| to 1. Thus, on kernels starting from 2.6.24, the driver will allocate on the |
| receive side one queue per-CPU and up to half the HW limit and on the transmit |
| side only one queue. On kernels starting from 2.6.27, the driver will allocate |
| on both, receive and transmit, sides one queue per-CPU and up to half the HW |
| limit. |
| .PP |
| The \fBmulti_mode\fP optional parameter can also be used to enable SAFC |
| (Service Aware Flow Control) by differentiating the traffic to up to 3 CoS |
| (Class of Service) in the HW according to the VLAN PRI value or according |
| to the IP DSCP value (least 3 bits). |
| .PP |
| The optional parameter \fBnum_queues\fP may be used to set the number of |
| queues when \fBmulti_mode\fP is set to 1 and interrupt mode is MSI-X. If interrupt |
| mode is different than MSI-X (see \fBint_mode\fP parameter), number of queues will |
| be set to 1 discarding the value of this parameter. By default, this parameter |
| set to number of CPUs for 64bit kernels and to 1 for 32bit. |
| .PP |
| The optional parameter \fBpri_map\fP is used to map the VLAN PRI value or the |
| IP DSCP value to a different or same CoS in the HW. This 32 bits parameter |
| is evaluated by the driver as a 8 values of 4 bits each. Each nibble sets the |
| desired HW queue number for that priority. |
| .PP |
| For example, set the \fBpri_map\fP parameter to 0x22221100 to map priority 0 |
| and 1 to CoS 0, map priority 2 and 3 to CoS 1, and map priority 4 to 7 to CoS 2. |
| Another example, set the \fBpri_map\fP parameter to 0x11110000 to map priority |
| 0 to 3 to CoS 0, and map priority 4 to 7 to CoS 1. |
| .PP |
| The optional parameter \fBqs_per_cos\fP is used to specify how many queues will |
| share the same CoS. This parameter is evaluated by the driver as a up to 3 |
| values of 8 bits each. Each byte sets the desired number of queues for |
| that CoS. The total number of queues is limited by the HW limit. |
| .PP |
| For example, set the \fBqs_per_cos\fP parameter to 0x10101 to create total of |
| three queues, one per CoS. |
| Another example, set the \fBqs_per_cos\fP parameter to 0x404 to create total |
| of 8 queues, divided into only 2 CoS, 4 queues in each CoS. |
| .PP |
| The optional parameter \fBcos_min_rate\fP is used to determine the weight of |
| each CoS for Round-robin scheduling in transmission. This parameter is |
| evaluated by the driver as a up to 3 values of 8 bits each. Each byte sets |
| the desired weight for that CoS. The weight ranges from 0 to 100. |
| .PP |
| For example, set the \fBcos_min_rate\fP parameter to 0x101 for fair |
| transmission rate between 2 CoS. |
| Another example, set the \fBcos_min_rate\fP parameter to 0x30201 give to higher |
| CoS the higher rate of transmission. |
| To avoid using the fairness algorithm, omit setting the optional parameter |
| \fBcos_min_rate\fP or set it to 0. |
| .PP |
| Set the \fBmulti_mode\fP parameter to 2 as shown below to differentiate the |
| traffic according to the VLAN PRI value. |
| .PP |
| insmod bnx2x.ko multi_mode=2 pri_map=0x11110000 qs_per_cos=0x404 |
| .PP |
| or |
| .PP |
| modprobe bnx2x multi_mode=2 pri_map=0x11110000 qs_per_cos=0x404 |
| .PP |
| Set the \fBmulti_mode\fP parameter to 4 as shown below to differentiate the |
| traffic according to the IP DSCP value. |
| .PP |
| insmod bnx2x.ko multi_mode=4 pri_map=0x22221100 qs_per_cos=0x10101 cos_min_rate=0x30201 |
| .PP |
| or |
| .PP |
| modprobe bnx2x multi_mode=4 pri_map=0x22221100 qs_per_cos=0x10101 cos_min_rate=0x30201 |
| .PP |
| The optional parameter \fBdropless_fc\fP can be used to enable a complementary |
| flow control mechanism on 57711 or 57711E. The default flow control mechanism |
| is to send pause frames when the on chip buffer (BRB) is reaching a certain |
| level of occupancy. This is a performance targeted flow control mechanism. |
| On 57711 or 57711E, one can enable another flow control mechanism to send pause |
| frames in case where one of the host buffers (when in RSS mode) are exhausted. |
| This is a "zero packet drop" targeted flow control mechanism. |
| .PP |
| Set the \fBdropless_fc\fP parameter to 1 as shown below to enable the dropless |
| flow control mechanism feature on all 57711 or 57711E NetXtreme II NICs in the |
| system. |
| .PP |
| insmod bnx2x.ko dropless_fc=1 |
| .PP |
| or |
| .PP |
| modprobe bnx2x dropless_fc=1 |
| .PP |
| There are some more optional parameters that can be supplied as a command line |
| argument to the insmod or modprobe command. These optional parameters are |
| mainly to be used for debug and may be used only by an expert user. |
| .PP |
| The debug optional parameter \fBpoll\fP can be used for timer based polling. |
| Set the \fBpoll\fP parameter to the timer polling interval on all NetXtreme |
| II NICs in the system. |
| .PP |
| The debug optional parameter \fBmrrs\fP can be used to override the MRRS |
| (Maximum Read Request Size) value of the HW. Set the \fBmrrs\fP parameter to |
| the desired value (0..3) for on all NetXtreme II NICs in the system. |
| .PP |
| The debug optional parameter \fBdebug\fP can be used to set the default |
| msglevel on all NetXtreme II NICs in the system. Use \fBethtool -s\fP to set |
| the msglevel for a specific NetXtreme II NIC. |
| .PP |
| .\" |
| .\" DEFAULT SETTINGS part |
| .\" |
| .SH DEFAULT SETTINGS |
| .TP |
| Speed : |
| Autonegotiation with all speeds advertised |
| .TP |
| Flow control : |
| Autonegotiation with rx and tx advertised |
| .TP |
| MTU : |
| 1500 (range 46 - 9000) |
| .TP |
| Rx Ring size : |
| 4078 (range 0 - 4078) |
| .TP |
| Tx Ring size : |
| 4078 (range (MAX_SKB_FRAGS+4) - 4078) |
| |
| MAX_SKB_FRAGS varies on different kernels and |
| different architectures. On a 2.6 kernel for |
| x86, MAX_SKB_FRAGS is 18. |
| .TP |
| Coalesce rx usecs : |
| 25 (range 0 - 3000) |
| .TP |
| Coalesce tx usecs : |
| 50 (range 0 - 12288) |
| .TP |
| MSI-X : |
| Enabled (if supported by 2.6 kernel) |
| .TP |
| TSO : |
| Enabled |
| .TP |
| WoL : |
| Disabled |
| .TP |
| .\" |
| .\" AUTHOR part |
| .\" |
| .SH AUTHOR |
| Eliezer Tamir \- eliezert@broadcom.com |
| .\" |
| .\" SEE ALSO part |
| .\" |
| .SH SEE ALSO |
| .BR ifconfig (8), |
| .BR insmod (8), |
| .BR modprobe.conf (5), |
| .BR ethtool (8). |
| |