Devices bnx(7D)
NAME
bnx - Broadcom NetXtreme II Gigabit Ethernet Device Driver
SYNOPSIS
/dev/bnx
DESCRIPTION
The bnx Gigabit Ethernet driver is a multi-threaded, load-
able, clonable, GLD v3-based STREAMS driver supporting the
Data Link Provider Interface, dlpi(7P), over Broadcom NetX-
treme II Ethernet controllers, including the BCM5706, BCM5708 and BCM5709 controllers. Driver functions includecontroller initialization, frame transmit and receive, prom-
iscuous and multicast support and error recovery and report-
ing. APPLICATION PROGRAMMING INTERFACEThe 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 module that provides the bnx driver with the DLPI and
STREAMS functionality required of a LAN driver.The values returned by the driver in the DL_INFO_ACK primi-
tive 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 component 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 beSunOS 5.11 Last change: 30 Nov 2009 1
Devices bnx(7D)
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 determinedthrough auto-negotiation.
speedfull-duplex
SunOS 5.11 Last change: 30 Nov 2009 2
Devices bnx(7D)
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 values: 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.SunOS 5.11 Last change: 30 Nov 2009 3
Devices bnx(7D)
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 generates an interrupt if one or more frames are received. The default value is 25. CoalesceConfigures 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 generates an interrupt if one or more frames are sent. The default value is 45. TxMaxCoalescedFrames
Configures number of Tx Maximum Coalesced Frames parame-
ters. This determines the maximum number of Tx buffer descriptors the device processes before it generates anSunOS 5.11 Last change: 30 Nov 2009 4
Devices bnx(7D)
interrupt. The default value is 80. RxTicksInt Configures number of Rx Host Coalescing Ticks inmicroseconds during interrupt. This determines the max-
imum time interval in which the device generates inter-
rupt if one or more frames are received during interrupt handling. The default value is 15. TxTicksInt Configures number of Tx Host Coalescing Ticks inmicroseconds during interrupt. This determines the max-
imum time interval in which the device generates 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). Forexample, to prevent the device bnx1 from advertising gigabit
capabilities, do the following as super-user:
# ndd -set /dev/bnx1 adv_1000fdx_cap 0
All capabilities default to enabled and that changing any parameter causes the link to go down while the link partnersrenegotiate the link speed/duplex. To view current parame-
ters, use ndd-get. In addition, the driver exports the
current state, speed, duplex setting and working mode of the link by way of the ndd parameters, which are read only and cannot be changed. For example, to check the state of devicebnx0:
# ndd -get /dev/bnx0 link_status
1# ndd -get /dev/bnx0 link_speed
100# ndd -get /dev/bnx0 link_duplex
2SunOS 5.11 Last change: 30 Nov 2009 5
Devices bnx(7D)
The output above indicates that the link is up and runningat 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 attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE ATTRIBUTE VALUE |
| Availability BRCMbnx |
| Architecture x86 | | Interface Stability See below. ||___________________________________________________________|
The bnx driver is Committed. The /kernel/drv/bnx.conf confi-
guration file is Uncommitted.SEE ALSO
dladm(1M), ndd(1M), attributes(5), streamio(7I), dlpi(7P) Writing Device Drivers STREAMS Programming Guide Network Interfaces Programmer's GuideSunOS 5.11 Last change: 30 Nov 2009 6