Content-type: text/html Man page of bnx

bnx

Section: Devices (7D)
Updated: 6 Jun 2008
Index Return to Main Contents
 

NAME

bnx - Broadcom NetXtreme II Gigabit Ethernet Device Driver  

SYNOPSIS

/dev/bnx

 

DESCRIPTION

The bnx Gigabit Ethernet driver is a multi-threaded, loadable, clonable, 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 functions 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 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 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 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 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-negotiation.

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 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.

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 generate 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 during 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 renegotiate 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 TYPEATTRIBUTE VALUE
AvailabilitySUNWbnx
Architecture
Interface Stability

*The bnx driver is Committed. The /kernel/drv/bnx.conf configuration 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 Guide


 

Index

NAME
SYNOPSIS
DESCRIPTION
APPLICATION PROGRAMMING INTERFACE
CONFIGURATION
Configuring with ndd(1M)
FILES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:39:59 GMT, October 02, 2010