.\" 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).

