skip book previous and next navigation links
go up to top of book: HP OpenVMS I/O User's Reference Manual HP OpenVMS I/O User's Reference Manual
go to beginning of chapter: Local Area Network (LAN) Device Drivers Local Area Network (LAN) Device Drivers
go to previous page: Gigabit Ethernet NIC  DEGPA Gigabit Ethernet NIC DEGPA
go to next page: FDDI LAN DevicesFDDI LAN Devices
end of book navigation links

Gigabit Ethernet NIC -- DEGXA  



The Broadcom 5703 (Tigon3) based Gigabit Ethernet NIC is an intelligent NIC that performs all of its primary functions using a set of hardware state machines. This functionality is contained in the Broadcom 5703 application specific integrated circuit (ASIC).

The Broadcom 5703 ASIC contains two DMA engines, one read, one write; it also contains a 10/100/1000 MAC, a set of hardware state machines, and two 133 MHz processors. The NIC includes initialization firmware and PXE boot ROM firmware.

The Broadcom 5703 is PCI 2.2 and PCI-X 1.0 compatible.

DEGXA Devices lists and describes the devices and drivers of the DEGXA.

Table 17   DEGXA Devices
Device Driver Description
DEGXA-UA
SYS$EW5700.EXE
10,100,1000 Mb UTP
DEGXA-SA
SYS$EW5700.EXE
Multimode fiber
DEGXA-LA
SYS$EW5700.EXE
Single-mode fiber
DEGXA-TA
SYS$EW5700.EXE
10,100,1000 Mb UTP
Embedded 5703c
SYS$EW5700.EXE
10,100,1000 Mb UTP

DEGXA Internal Counters  

With LANCP, the command SHOW DEVICE/INTERNAL_COUNTERS EWc displays the entire set of internal counters maintained by the driver. Some counters are special debug counters. These are not displayed unless the additional qualifier /DEBUG is specified. The debug counters include the address of the status block, statistics block, and the contents of significant CSRs. The significant CSRs are read just prior to returning the internal counters to LANCP and when the system is shutting down.

The LAN$SDA SDA extension also displays the complete set of internal counters with the command LAN INTERNAL/DEVICE=EWc. This extension includes the debug counters.

The following sections present various groupings of internal counters. The definition of these counters may change from one driver version to the next.

Basic Counters  

DEGXA Basic Counters describes the basic counters displayed by the DEGXA Gigabit Ethernet NIC.

Table 18   DEGXA -- Basic Counters
Counter Meaning
Driver version
The driver version number is numbered 1...n that usually is identical to the x-n ID displayed by an ANA/IMAGE of the driver image. The full driver version includes the target OpenVMS release and is displayed by SDA LAN/DEV=EWA in the quadword driver version field.
Firmware version
The version of the firmware embedded in the driver and loaded into the device at initialization time. Version 0 indicates that no firmware is loaded.
Device revision
The hardware revision level identified by the Broadcom 5700 chip revision. It is given as A0, A1, B0, B1, B2, C0, C1, C2. If the version is later than the driver recognizes, it is given as >C2, for example. The actual revision is located in bits <31:16> of the Misc Host Control register displayed in the Registers section.
Actual PHY ID
The actual PHY ID found on the device. Bits <31:10> is the OUI, bits <9:4> is the Model number and bits <3:0> is the revision.
Current PHY ID
The current PHY ID that the driver is using.
Device interrupts
The number of interrupts generated by the NIC and fielded by the driver.
Link checks
The number of times the driver checked the current link status.
Link transitions
The number of link transitions seen by the driver.
Transmit timeouts
The number of times the driver has timed out a transmit and has reset the device and completed outstanding I/O with error status.
Resets issued
The number of times the driver has reset the device.
Initialization done
The number of times the driver performed the device initialization procedure (done when the first user is started).
Initializations (with or without map registers)
The number of unit initializations executed, since unit initialization is only executed once, this counter will be one. Which counter is set depends whether map registers were used to map the device data structures.
User change requests
The number of user startup and shutdown requests processed by the driver, generally one or two when a user starts up, and one when a user stops.
PTE to PFN translations
The number of times a global page was encountered during a chained transmit request, whereupon the driver converted an invalid PTE to a valid PFN.
Transmits queued
The number of transmit requests queued either because the link was not available or because too many transmit requests were outstanding already.
Transmit errors (too few segments)
The number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not completely specify the transmit buffer.
Transmit copies (too many segments)
The number of transmit requests which exceeded the maximum number of chain segments that the driver can handle; it then copied some of them to a temporary buffer so that it could transmit the packet.
Jumbo transmits issued
The number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
Jumbo receives issued
The number of jumbo receive buffers allocated and given to the device.
Receives issued (using map registers)
The number of receive buffers which described to the device using map registers, because part of the request existed in memory outside the DMA window, because the receive buffer crossed a page boundary, or because the receive buffer was a jumbo buffer.
Soft errors
The number of times errors were recovered in the driver by resetting and reinitializing the device.
Rescheduled forks
The number of times that a rescheduled fork was done. In transmit and receive processing, the driver limits the amount of time spent in the fork process before rescheduling.
Standard receive buffers
The number of 1518-byte receive buffers owned by the device. The device may actually own fewer than this if the driver has not processed some of the receive buffers that the device has completed.
Standard receive buffer deallocations
The number of 1518-byte buffer deallocations done by the driver because the number of outstanding buffers exceeded the maximum number allowed by the driver.
Jumbo receive buffers (current)
The number of jumbo receive buffers owned by the device. The device may actually own fewer than this if the driver has not processed some of the receive buffers that the device has completed.

When this count goes below "jumbo receive buffers (minimum)," the driver immediately supplies more to the device. In addition, driver ensures the number of buffers owned by the device is in the range of minimum to maximum receive buffers that can be set by the LANCP command.
Jumbo receive buffers (minimum)
The minimum number of jumbo receive buffers owned by the device. This is set to 32 initially. After the first jumbo receive, the driver sets the minimum to 128.
Jumbo receive buffer allocations
The number of jumbo receive buffer allocations done by the driver.
Jumbo receive buffer deallocations
The number of jumbo buffer deallocations done by the driver because the number of outstanding buffers exceeded the maximum number allowed by the driver.
Standard buffer size (bytes)
The size of the standard receive buffers. It is the CSMA/CD packet size, 1518 bytes including the header and CRC, plus the overhead of the receive buffer structure which is 640 bytes.
Standard packet size (bytes)
The CSMA/CD packet size (1518 bytes).
Jumbo buffer size (bytes)
The size of the jumbo receive buffers. The device allows up to 9018-byte packets, including header and CRC, plus the 640-byte receive buffer structure overhead. But the driver limits the buffer size to the maximum size supported by the pool lookaside lists, which is 8192 bytes in current and recent OpenVMS releases. In a future release, the buffer size will be 9018 plus 640 bytes of overhead rounded up to the next 64-byte boundary, to accommodate the full jumbo packet size.
Jumbo packet size (bytes)
The size of the jumbo receive buffers. It is 7552 or 9018 bytes, depending whether the pool lookaside lists support the larger buffer size.
Requested link settings
The speed and duplex mode requested by a user. For the DEGXA-SA (fiber), the only speed is 1000 Mb/s. For the DEGXA-TA (UTP), a user may request 10, 100, or 1000 Mb/s via SETMODE QIO or LANCP command.
Current link settings
The current link state.
DMA width (bits)
The device determines whether it is in a 32-bit or 64-bit PCI bus, and the result of that determination is displayed.
BUS speed (Mhz)
The device determines whether it is in a low speed (33-Mhz PCI or 66-Mhz PCI-X bus) or high speed (66-Mhz PCI or 133-Mhz PCI-X bus), and the result of that determination is displayed.
BUS type
The device determines whether it is in a PCI or PCI-X bus, and the result of that determination is displayed.
MSI status
Contents of the MSI_CONTROL register that gives MSI status. If MSI is enabled, bit <0> is set. Bits <3:1> are the number of requested messages (always set to 3 by the device). Bits <6:4> are the number of messages allocated to the device by the system. If the /DEBUG qualifier is specified, more MSI context is displayed, such as MSI Address and Data registers.
Transmit coalesce value
Transmit interrupts are generated every 32 "coalesce value" transmit completions, but no more than 50 "interrupt delay" microseconds after completion of a packet.
Receive coalesce value
Receive interrupts are generated every 32 "coalesce value" receive completions, but no more than 50 "interrupt delay" microseconds after receipt of a packet.
Transmit interrupt delay sec
Transmit interrupts are generated every 32 "coalesce value" transmit completions, but no more than 50 "interrupt delay" microseconds after completion of a packet.
Receive interrupt delay
Receive interrupts are generated every 32 "coalesce value" receive completions, but no more than 50 "interrupt delay" microseconds after receipt of a packet.
Initialization delay
The total time (in microseconds) waiting for the device during initialization including shutdown. This is displayed if the /DEBUG qualifier is specified.
Link setup delay
The total time (in microseconds) waiting for the device during setup of the link. This is displayed if the /DEBUG qualifier is specified.
Current EXE$GL_ABSTIM_TICS
The current time in 10-millisecond ticks of the counters request from LANCP.
Status block VA
The system virtual address of the status block. It is included as a matter of convenience for looking at the status block in SDA. This is displayed in the /DEBUG qualifier is specified.
Statistics block VA
The system virtual address of the statistics block. It is included as a matter of convenience for looking at the Statistics block in SDA. This is displayed if the /DEBUG qualifier is specified.

Status Block  

Status Block Fields lists and describes fields that are part of the 128-byte status and ring indexes written to host memory after each interrupt.

Table 19   Status Block Fields
Field Meaning
Reserved1
Unused.
Status
After an interrupt, this longword is nonzero. The driver fork process clears the status longword so the driver can recognize whether there is pending work to be done (checking the ring indexes for completions, or checking the link status). The bits in the longword are defined as follows:
    list itemBit 1 -- Link changed status
    list itemBit 2 -- Status block updated flag

Receive mini consumer index
Unused.
Receive jumbo consumer index
Current position of the NIC in the jumbo receive buffer ring.
Receive standard consumer index
Current position of the NIC in the standard receive buffer ring.
Unused1
Unused.
Receive ring 0 producer index
Current position of the NIC in the receive return ring.
Send ring 0 consumer index
Current position of the NIC in the send ring.

Statistics Block  

The NIC updates the statistics once a second. The driver maintains the bytes and packets that are transmitted and received but obtains the error counters from this statistics block. The block includes many counters that are useful in diagnosing device and system operations. The statistics are displayed in sections according to the type of counter.

Statistics: Receive MAC  

Receive MAC Statistics lists and describes the receive MAC statistics.

Table 20   Receive MAC Statistics
Counter Meaning
Bytes received
The total number of bytes successfully received.
Runt packets received (bad CRC)
The number of runt packets less than 64 bytes long received and discarded.
Unicast packets received
The number of packets successfully received that were not addressed to a multicast or broadcast address.
Multicast packets received
The number of packets successfully received that were addressed to a multicast address, but not the broadcast address.
Broadcast packets received
The number of packets successfully received that were addressed to the broadcast address.
FCS errors
The number of packets received with CRC errors and that are an integral number of bytes long. These packets are discarded and are counted by the device.
Alignment errors
The number of packets received with CRC errors and that are not an integral number of bytes long. These packets are discarded and are counted by the device.
MAC control XON frames received
The number of XON frames received. An XON frame is a MAC control frame with a pause command and a length equal to 0.
MAC control XOFF frames received
The number of XOFF frames received. An XOFF frame is a MAC control frame with a pause command and a length greater than 0.
MAC control other frames received
The number of other MAC control frames received. These are MAC control frames with no pause command.
Transmitting disabled (xoff)
The number of times the transmitter was disabled because of a receive of an XOFF frame.
Frame too long errors
The number of received frames that were longer than the jumbo packet size. These packets are discarded and are counted by the device.
Frame exceed jabber time errors
The number of frames received that are longer than the specified maximum frame time, for example, a jabber frame.
Runt packets received (good CRC)
The number of frames received with a size less than 64 bytes (including a correct CRC field).
Length errors (length field neq actual)
The number of frames received where the 802-length field does not match the total frame size.
Length errors (type field 1523-1535)
The number of frames received where the field is in the range of 1523 to 1535, for example, an invalid type field and a length error.

Statistics: Transmit MAC  

Transmit MAC Statistics lists and describes the counters for the transmit MAC statistics.

Table 21   Transmit MAC Statistics
Counter Meaning
Bytes sent
The total number of bytes successfully transmitted.
Collisions experienced
The total number of collisions experienced.
XON packets sent
The number of XON packets sent in support of flow control.
XOFF packets sent
The number of XOFF packets sent in support of flow control.
Flow control sequences done
The number of flow control sequences done.
Internal MAC transmit errors
The number of transmits that failed because of an internal MAC sublayer error that is not late collision, excessive collisions, or carrier sense error.
Single collisions
The number of successfully transmitted packets that encountered exactly one collision during transmission (successful after retransmit). These occur in half-duplex mode only.
Multiple collisions
The number of successfully transmitted packets that encountered more than one collision during transmission (successful after multiple retransmits). These occur in half-duplex mode only.
Deferred transmits
The number of successful transmits that were delayed because the medium was busy. These occur in half-duplex mode only.
Excessive collisions
The number of transmits that failed because of excessive collisions. These occur in half-duplex mode only.
Late collisions
The number of times a collision was detected longer than 512 bit-times into the transmission of a packet. The transmit fails. These occur in half-duplex mode only.
MAC transmit 2..15 collisions
The number of successfully transmitted packets which encountered n collisions during transmission (successful after n retransmits). These occur in half-duplex mode only.
Unicast packets sent
The total number of successfully transmitted packets that were not addressed to a multicast or broadcast address.
Multicast packets sent
The total number of successfully transmitted packets that were addressed to a multicast address but not the broadcast address.
Broadcast packets sent
The total number of successfully transmitted packets that were addressed to a broadcast address.
Carrier sense errors
The number of transmits that failed because a carrier was not present during any or all of the transmission attempts.
Outbound discards
The number of outbound packets that were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a packet could be to free up buffer space.
Outbound errors
The number of outbound packets that could not be transmitted because of errors.

Statistics: Receive List Placement State Machine  

Receive List Placement State Machine lists and describes the counters for the receive list placement state machine.

Table 22   Receive List Placement State Machine
Counter Meaning
Frames received onto return ring 1..16
The number of frames received onto each of the return rings.
Frames discarded using filters
The number of frames received but discarded after validation by the receive filters.
DMA write queue full
The number of times the DMA write queue was full.
DMA high priority write queue full
The number of times the DMA write high-priority queue was full.
No more receive BDs
The number of times the NIC ran out of receive buffer descriptors.
Inbound discards
The number of inbound packets that were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space.
Inbound errors
The number of inbound packets that contained errors that prevented them from being deliverable to a higher-layer protocol.
Receive threshold hit
The number of times the receive max coalesce frames threshold was reached, resulting in a status block update and interrupt.

Statistics: Send Data Initiator State Machine  

Send Data Initiator State Machine lists and describes the counters for the send data initiator state machine.

Table 23   Send Data Initiator State Machine
Counter Meaning
Frames sent from send ring 1..16
The number of frames sent from each of the send rings.
DMA read queue full
The number of times the DMA read queue was full.
DMA high priority read queue full
The number of times the DMA read high-priority queue was full.
Send data completion queue full
The number of times the send data completion flow-thorough-queue (FTQ) was full.

Statistics: Host Coalescing State Machine  

Host Coalescing State Machine lists the counters for the host coalescing state machine statistics.

Table 24   Host Coalescing State Machine
Counter Meaning
Send producer index updates
The number of times the NIC has seen updates to any send producer ring index.
Ring status updates
The number of times the status block was updated (written to host memory). If the driver is not currently in its interrupt service routine, an interrupt is generated after the update.
Interrupts generated
The number of interrupts generated by the NIC.
Interrupts avoided
The number of interrupts avoided by the NIC (because of interrupt mitigation).
Send threshold hit
The number of times the send max coalesce frames threshold was reached, resulting in a status block update and interrupt.

Fork Delay Debug Data  

To help determine whether the buffering requirements of the driver and the NIC are sufficient for the system configuration, the driver records the amount of time from fork scheduled to the time the fork is actually run. The data is recorded in 10-millisecond increments from 10 to 310 milliseconds.

This data can be used in conjunction with the number of packets discarded because there were insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the NIC are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.

Driver Messages  

The following is the last 32 driver messages broadcast to the console, describing events such as link transitions, changes to jumbo packet settings, changes to autonegotiation settings, and startup messages.

Driver messages are issued for the following:

Device-Specific Functions  

The driver allows some device-specific parameters to be adjusted. These adjustments are useful for debug purposes or for performance tuning.

You specify device specific functions by using the following LANCP command:LANCP> SET DEVICE/DEVICE_SPECIFIC=(FUNCTION="func", VALUE=n) EWc

Like other LANCP commands which affect a device, this command requires the SYSPRV privilege.

LANCP Device-Specific Commands lists and describes the device-specific LANCP commands.

Table 25   LANCP Device-Specific Commands
Command Meaning
FUNCTION="CCOU"
Clears all device and driver counters. The value, if supplied, is ignored.
FUNCTION="DXMT", VALUE=n
Changes the transmit delay value, which is the number of microseconds after completion of a transmit request that an interrupt is generated.

The current setting is displayed in the internal counters. This function is applicable to Gigabit Ethernet NICs.
FUNCTION="DRCV", VALUE=n
Changes the receive delay value, which is the number of microseconds after completion of a receive that an interrupt is generated.

The current setting is displayed in the internal counters. This function is applicable to Gigabit Ethernet NICs.
FUNCTION="CXMT",VALUE=n
Changes the transmit coalesce value, which is the number of transmit buffer descriptors that are processed before an interrupt is generated. An interrupt may be generated earlier if the transmit delay threshold is reached or when an interrupt on behalf of receive or a link state change is generated.

The current setting is displayed in the internal counters. This function is applicable to Gigabit Ethernet NICs.
FUNCTION="CRCV", VALUE=n
Changes the receive coalesce value, which is the number of receive buffer descriptors that are filled in before an interrupt is generated. An interrupt may be generated earlier if the receive delay threshold is reached or when an interrupt on behalf of transmit or a link state change is generated.

The current setting is displayed in the internal counters. This function is applicable to Gigabit Ethernet NICs.


go to previous page: Gigabit Ethernet NIC  DEGPA Gigabit Ethernet NIC DEGPA
go to next page: FDDI LAN DevicesFDDI LAN Devices