bnx(7D) Devices bnx(7D)NAMEbnx - Broadcom NetXtreme II Gigabit Ethernet Device Driver
SYNOPSIS
/dev/bnx
DESCRIPTION
The bnx Gigabit Ethernet driver is a multi-threaded, loadable, clon‐
able, GLD v3-based STREAMS driver supporting the Data Link Provider
Interface, dlpi(7P), over Broadcom NetXtreme II Ethernet controllers,
including the BCM5706, BCM5708 and BCM5709 controllers. Driver func‐
tions include controller initialization, frame transmit and receive,
promiscuous and multicast support and error recovery and reporting.
APPLICATION PROGRAMMING INTERFACE
The cloning, character-special device /dev/bnx is used to access all
Broadcom NetXtreme II Ethernet devices installed within the system.
The bnx driver is dependent on /kernel/misc/mac, a loadable kernel mod‐
ule that provides the bnx driver with the DLPI and STREAMS functional‐
ity required of a LAN driver.
The values returned by the driver in the DL_INFO_ACK primitive in
response to the DL_INFO_REQ are:
o Maximum SDU (with jumbo frame) is 9000.
o Minimum SDU is 0. The driver pads to 60-byte minimum packet
size.
o DSLAP address length is 8 bytes.
o MAC type is DL_ETHER.
o SAP length value is -2, meaning the physical address compo‐
nent is followed immediately by a 2-byte sap component
within the DLSAP address.
o Version is DL_VERSION_2.
o Broadcast address value is Ethernet/IEEE broadcast address
(FF:FF:FF:FF:FF:FF).
CONFIGURATION
By default, the bnx driver performs auto-negotiation to select the link
speed and mode. Link speed and mode can be any of the following:
2500 Mbps, full-duplex (fiber physical interface controller only).
1000 Mbps, full-duplex.
100 Mbps, full-duplex.
100 Mbps, half-duplex.
10 Mbps, full-duplex.
10 Mbps, half-duplex.
To customize the driver parameters, edit the /kernel/drv/bnx.conf file.
The driver properties are:
adv_*
The adv parameters are advertised to the link partner and include:
adv_autoneg_cap
adv_pause_cap
adv_2500fdx_cap
adv_1000fdx_cap
adv_1000hdx_cap
adv_100fdx_cap
adv_100hdx_cap
adv_10fdx_cap
adv_10hdx_cap
transfer_speed
The driver attempts to auto-negotiate but is restricted to the
specified speed. Duplex mode is determined through auto-negotia‐
tion.
speed
full-duplex
Forces speed and duplex mode to a fixed value. This value take
precedence over others.
speed
Configures link (or instance) to a designated speed. By default,
AutoNegotiate (0) is set. The setup is based on the following val‐
ues:
0 AutoNegotiate.
10 10 Mbps speed mode (Copper only).
100 100 Mbps speed mode (Copper only).
1000 1000 Mbps speed mode (Copper and fiber).
2500 2500 Mbps speed mode (Fiber only).
Flow
Configures flow control parameters of a link. The setup is based on
the following values:
0 Tx and Rx flow control are disabled.
1 Tx flow control is enabled. Pause frames are
sent if resource is low, but device does not
process Rx Pause Frame.
2 Only Rx flow control is enabled. If device
receives Pause Frame, it stops sending.
3 Rx and TX flow control are enabled. Pause
frames are sent if resource is low. If device
receives Pause Frame, it stops sending.
4 Advertise Rx and TX flow control are enabled
and negotiating with link partner. If link
AutoNegotiate is not enabled, Tx and Rx Flow
Control are disabled.
Jumbo
Configures Jumbo Frame link feature. Valid range for this parameter
is 0 to 3800. If value configured is less then 1500,
Jumbo Frame feature is disabled.
RxBufs
Configures number of Rx packet descriptor. The valid value is 32 to
1024. More system memory resource is used for larger number of Rx
Packet Descriptors. Default value is 500.
RxTicks
Configures number of Rx Host Coalescing Ticks in microseconds.
This determines the maximum time interval in which the device will
generate an interrupt if one or more frames are received. The
default value is 25.
Coalesce
Configures number of Tx/Rx Maximum Coalesced Frames parameters.
This determines the maximum number of buffer descriptors the device
processes before it generates an interrupt. The default value is
16.
TxTicks
Configures number of Tx Host Coalescing Ticks in microseconds. This
determines the maximum time interval in which the device will gen‐
erate an interrupt if one or more frames are sent. The default
value is 45.
TxMaxCoalescedFrames
Configures number of Tx Maximum Coalesced Frames parameters. This
determines the maximum number of Tx buffer descriptors the device
processes before it generates an interrupt. The default value is
80.
RxTicksInt
Configures number of Rx Host Coalescing Ticks in microseconds
during interrupt. This determines the maximum time interval in
which the device will generate interrupt if one or more frames
are received during interrupt handling. The default value is 15.
TxTicksInt
Configures number of Tx Host Coalescing Ticks in microseconds dur‐
ing interrupt. This determines the maximum time interval in
which the device will generate an interrupt if one or more frames
are received during interrupt handling. The default value
is 15.
StatsTicks
Configures how often adapter statistics are DMA'd to host memory
in microsecond. Default is 1000000.
Configuring with ndd(1M)
You can also perform configuration tasks using ndd(1M). For example, to
prevent the device 'bnx1' from advertising gigabit capabilities, do
the following as super-user:
# ndd -set /dev/bnx1 adv_1000fdx_cap 0
Note that all capabilities default to enabled and that changing any
parameter causes the link to go down while the link partners renegoti‐
ate the link speed/duplex. To view current parameters, use ndd-get. In
addition, the driver exports the current state, speed, duplex setting
and working mode of the link via ndd parameters, which are read only
and may not be changed. For example, to check the state of device bnx0:
# ndd -get /dev/bnx0 link_status
1
# ndd -get /dev/bnx0 link_speed
100
# ndd -get /dev/bnx0 link_duplex
2
The output above indicates that the link is up and running at 100Mbps
full-duplex.
FILES
/dev/bnx Special character device.
/kernel/drv/bnx 32-bit ELF kernel module (x86).
/kernel/drv/amd64/bnx 64-bit ELF Kernel module (x86).
/kernel/drv/bnx.conf Driver configuration file.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌───────────────────────────────────────────────────────────┐
│ATTRIBUTE TYPE ATTRIBUTE VALUE │
│Availability SUNWbnx │
│Architecture x86 │
│Interface Stability *See below │
└───────────────────────────────────────────────────────────┘
*The bnx driver is Committed. The /kernel/drv/bnx.conf configuration
file is Uncommitted.
SEE ALSOdladm(1M), ndd(1M), attributes(5), streamio(7I), dlpi(7P)
Writing Device Drivers
STREAMS Programming Guide
Network Interfaces Programmer's Guide
SunOS 5.10 6 Jun 2008 bnx(7D)