VSI LAN Devices, Counters, and Functions Reference Manual for OpenVMS Alpha and IA-64
- Operating System and Version:
- VSI OpenVMS Alpha Version 8.4-2L1 or higher
VSI OpenVMS IA-64 Version 8.4-1H1 or higher
Chapter 1. Introduction
This document describes the driver-specific counters and functions maintained by the LAN drivers internally on VSI OpenVMS Alpha and IA-64 systems.
The LAN drivers maintain the following information that the LAN Control Program (LANCP) and the LAN System Dump Analyzer (SDA) extension can display:
Device counters, packets, and bytes sent and received and error counters for transmit and receive.
Driver-specific internal counters, device and driver settings, and counters maintained internal to the driver. This includes driver messages showing settings and link state changes.
Error log information.
Driver tracing (by default, mostly errors), state changes, and link events. Selecting which events to trace is done using LANCP commands and LAN_FLAGS system parameter settings.
Bandwidth monitoring (x86-64 only at present). Adjusting bandwidth monitoring settings is done using LANCP commands and LAN_FLAGS settings.
The LAN drivers provide additional capabilities, mostly for diagnostic and test purposes. These capabilities are called device-specific functions and are initiated by LANCP commands. They can be used to reset a device, cause various errors, set promiscuous mode, and so on. The selection of functions is driver specific.
The devices covered in this document are as follows:
TGEC 10Mb Ethernet
LANCE 10Mb Ethernet
Tulip 10/100Mb Ethernet
Intel 82559 10/100Mb Ethernet
DEGPA 1Gb Ethernet
Broadcom 1Gb Ethernet
Intel 1Gb Ethernet
Neterion XFRAME 10Gb Ethernet
Broadcom BCM57711 10Gb Ethernet
Emulex BE3 10Gb Ethernet
Chapter 2. TGEC 10Mb Ethernet
The TGEC Ethernet devices are:
|
Device |
Platform |
Characteristics |
|---|---|---|
|
TGEC |
Alpha |
10Base2 (thinwire) |
The driver is SYS$EZDRIVER.EXE (Alpha).
2.1. TGEC Internal Counters
The TGEC driver includes driver-specific counters but does not support
the LANCP command to display them. Access to these counters is through SDA with the
command SHOW LAN/INTERNAL.
2.2. TGEC Device-Specific Functions
The TGEC driver provides no device-specific functions.
Chapter 3. LANCE 10Mb Ethernet
The LANCE Ethernet devices are:
|
Device |
Platform |
Characteristics |
|---|---|---|
|
DE422 |
Alpha, EISA |
10BaseT (UTP), 10Base2 (thinwire) |
|
DE200 |
Alpha, ISA |
10Base2 (thinwire), 10Base5 (thickwire) |
|
DE201 |
Alpha, ISA |
10BaseT (UTP) |
|
DE202 |
Alpha, ISA |
10Base2 (thinwire), 10BaseT (UTP) |
The drivers are SYS$ESDRIVER.EXE, SYS$ECDRIVER.EXE, and SYS$ERDRIVER_NE2000.EXE (Alpha).
3.1. LANCE Internal Counters
The LANCE driver includes driver-specific counters but does not support the LANCP
command to display them. Access to these counters is through SDA with the command
SHOW LAN/INTERNAL.
3.2. LANCE Device-Specific Counters
The LANCE driver provides no device-specific functions.
Chapter 4. Tulip 10/100Mb Ethernet
The Tulip Ethernet devices are:
|
Device |
Bus |
Characteristics |
|---|---|---|
|
DE425 |
EISA |
10Base2 (thinwire), 10Base5 (thickwire), 10BaseT (UTP) |
|
DE434 |
PCI |
10BaseT (UTP) |
|
DE435 |
PCI |
10Base2 (thinwire), 10Base5 (thickwire), 10BaseT (UTP) |
|
DE436 |
PCI |
Quad DE435 |
|
DE450 |
PCI |
10Base2 (thinwire), 10Base5 (thickwire), 10BaseT (UTP) |
|
DE500-XA |
PCI |
10BaseT (UTP), 100BaseTX (UTP), auto-negotiation not supported |
|
DE500-AA |
PCI |
10BaseT (UTP), 100BaseTX (UTP), auto-negotiation supported |
|
DE500-BA |
PCI |
10BaseT (UTP), 100BaseTX (UTP), auto-negotiation supported |
|
DE500-FA |
PCI |
100BaseFX (multimode fiber), auto-negotiation not supported |
|
DE504-BA |
PCI |
Quad DE500-BA |
|
P2SE |
PCI |
Combo SCSI + DE434 |
|
P2SE+ |
PCI |
Combo SCSI + DE500-XA |
|
21142 |
PCI LOM |
Digital Personal Workstation, all modes depending on MAU options, auto-negotiation supported |
|
21143 |
PCI LOM |
Alpha Professional Workstation XP900/XP1000, all modes depending on MAU options, auto-negotiation supported |
|
A5230A |
PCI |
DE500-BA equivalent |
|
A5506B |
PCI |
DE504-BA equivalent |
The drivers are SYS$EWDRIVER.EXE, SYS$ERDRIVER.EXE (Alpha, IA-64).
4.1. Tulip Driver Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EWA displays
the entire set of internal counters maintained by the Tulip driver. Some counters
are special debug counters. These are not displayed unless the additional qualifier
/DEBUG is specified. Counters that are zero are not displayed
unless the additional qualifier /ZERO is specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EWA.
Counters
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EWAcommand in the quadword driver version field.- Driver flags
Driver flags including the following bits:
Map_ALL – All transmit and receive buffers are described using map registers.
CSR6 – CSR6 needs to be written.
Setup – A setup buffer needs to be transmitted.
Hash – Hash filtering is in use.
Stop – The Tulip chip is stopping.
Autosense – Autosense is selected.
Auto-neg – Auto-negotiation is selected.
PDet – Parallel Detection was used to determine speed.
HdxOper – Tulip chip is in half-duplex mode.
FdxOper – Tulip chip is in full-duplex mode.
10mbit – Tulip chip is running at 10 Mbit/second.
100mbit – Tulip chip is running at 100 Mbit/second.
SoftError – Soft error handling is in progress (a reset of the chip without telling applications, as compared to a hard error for which applications are notified that error recovery is in progress).
LWalign – Unaligned transmit buffers are being copied to longword aligned buffers.
AUI – AUI mode is selected.
BNC – BNC mode is selected.
UTP – UTP mode is selected.
Phy_Chip – An external PHY chip has been detected.
SMC_BNC – The BNC autosense selection has been made for this SMC NIC.
P2SE_BNC – The BNC autosense selection has been made for this P2SE combo card.
More_Rcv – A larger quantity of receive buffers have been enabled.
FailoverInProgress – A failover operation is in progress.
FdxEna – Full-duplex mode is enabled.
- Device type
Device type, as follows:
DE435_PASS1 – DE425, DE434, DE435, or DE436 NIC.
DE435_PASS2 – DE425, DE434, DE435, or DE436 NIC.
DE435_PASS3 – DE425, DE434, DE435, or DE436 NIC.
DC21040 – Embedded Tulip chip (LOM) on the AlphaServer 2100 system.
DC21041 – DE450 NIC.
DC21140 – DE500-XA NIC.
DC21140A – DE500-AA or P2SE+ NIC.
DE500BA – DE500-BA NIC.
DE500FA – DE500-FA NIC.
MIATA – Embedded chip on the Digital Personal Workstation (PWS).
MAU – A 10Base2 (thinwire), 10Base5 (thickwire), or 10BaseT (UTP) option has been selected (as compared to the default UTP connection on the back of the system).
DC21142 – Some Miata chips.
DC21143 – DE500-BA or some Miata chips.
TSUNAMI – Embedded 21143 chip (LOM) on the XP900/1000.
HP-SINGLE – A5230A NIC.
- Link status
Current link state, as follows:
Undefined – Link state not determined yet or not applicable to this Tulip chip.
LinkDown – Link is down, disconnected from the network.
LinkWait – Link is down, and we are waiting a few seconds before doing link down handling in case it comes back up.
LinkUp – Link is up, connected to the network, ready to transmit and receive.
- Link down timer
Number of seconds before transitioning from LinkWait to LinkDown.
- Link transition count
Total number of link state up and link state down events.
- Tulip reset count
Number of times the driver has reset the Tulip chip.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the Tulip chip, and completed outstanding I/O requests with error status.
- Transmit underflows
Number of transmits that failed because the Tulip chip stopped transmitting in the middle of a packet due to running out of data (Direct Memory Access (DMA) from the transmit buffer in host memory took too long).
- Transmit length errors
Number of transmits that exceeded the 1518-byte limit and were therefore truncated by the Tulip chip.
- Receive overflows
Number of receives that failed because the Tulip chip could not DMA the received packet to host memory before its internal First-In First-Out (FIFO) was overrun.
- Receive collisions seen
Number of receives that failed because the packet was damaged by a collision that occurred after the first 64 bytes of the packet (a late collision).
- Calls to TU_START_TULIP
Number of times the Tulip chip was started.
- Setup buffers issued
Number of setup buffers sent to the Tulip chip for initialization purposes.
- CSR6 changes
Number of times CSR6 (Command Register) was written for initialization purposes.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid Page Table Entry (PTE) to a valid Page Frame Number (PFN).
- Original CSR13 contents
Original contents of CSR13 (SIA Connectivity Register); shows how the console or boot driver had set up the Tulip chip.
- Transmit copies (too many segments)
Number of buffers copied because the transmit request contained too many segments.
- Transmit failures (too few segments)
Number of transmits that failed because the transmit request did not include enough data.
- Longword align workarounds (one segment)
Number of transmits copied to a longword-aligned buffer to work around a Tulip chip hardware bug where there was only one transmit segment.
- Loss of carrier workaround
Number of times the Tulip chip erroneously indicated that a loss of carrier error occurred on a transmit.
- Transmit multiple workarounds
Number of multi-segment transmits that were done to a workaround buffer, including transmits with too many segments or multi-segment longword-aligned workarounds.
- Transmit multiple addresses
Number of transmits descriptors which required multiple buffer addresses to describe. For example, a transmit segment crossed a page boundary and was not physically contiguous.
- Device interrupts
Number of times the driver interrupt service routine was called.
- BNC selections done
Number of times a 10Base5 to 10Base2 autosense selection (applies to the DE450 device only).
- FDX selection changes
Number of duplex selection changes done (only applies if autosense mode is selected).
- Inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- Transmits issued (using map registers)
Number of transmit buffers that were described to the Tulip chip using map registers because part of the request existed in memory outside the DMA window.
- Receives issued (using map registers)
Number of receive buffers that were described to the Tulip chip using map registers because part of the request existed in memory outside the DMA window.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the Tulip chip without notifying user applications.
- Duplex mode mismatches
Number of times a potential duplex mode mismatch was detected by checking for transmit and receive errors.
- Rescheduled forks (fork time limit)
Number of times that transmit and receive processing was suspended and the fork process rescheduled to allow fair usage of the CPU by other drivers.
- Auto-negotiations done
Number of auto-negotiation sequences done.
- Auto-negotiation enable
Auto-negotiation enable flag (1 if enabled).
- Auto-negotiation state
Current auto-negotiation state.
- Auto-negotiation link state counter
Counts half-second increments during the auto-negotiation process.
- Autosense state
Current autosense state.
- Saved speed setting
Speed setting saved before auto-negotiation is done.
- Saved duplex setting
Duplex setting saved before auto-negotiation is done.
- Link partner ability
Link partner ability mask recorded the last time auto-negotiation was done.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Transmit time limit
Transmit time limit (in seconds) after which a timeout is declared.
- Timer routine interval
Resolution of the transmit timer (the real timeout is limit + interval).
- Autosense failure switches
Number of times remaining to do an autosense failover (starts at 1).
- Time autoselection timer started
Time that the last autosense was initiated.
- Current time (EXE$GL_ABSTIM_TICS)
Current time (at the time which the counters were read).
- Last duplex mode mismatch reported
Time of the last duplex mode mismatch reported.
- Previous CRC or late collision error
Time of the last Cyclic Redundancy Check (CRC) or late collision error recorded.
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the Tulip chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the Tulip chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Lost Packets after Fork Delay
The Tulip chip records how many packets are lost after it runs out of receive buffers. When the driver processes each receive packet, it also reads this "missed packet" counter to identify the fork delay value resulting in the most packets being lost.
- Minimum buffers requested
Minimum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current minimum limit".
- Maximum buffers requested
Maximum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current maximum limit".
- Current minimum limit
Minimum number of receive buffers as determined by the driver and by management request, "Minimum buffers requested". The driver will not allow the number of receive buffers in its receive queues to drop below this value. This does not include receive buffers transferred to applications (and not yet returned).
- Current maximum limit
Maximum number of receive buffers as determined by the driver and by management request, "Maximum buffers requested". The driver will deallocate receive buffers until the number allocated does not exceed this maximum. When applications return receive buffers, the number may exceed this maximum, at which point they are deallocated. Note that the driver allows this maximum to be exceeded slightly to limit allocation and deallocation activity. See "Target number of buffers maximum" below.
- Current number of buffers
Current number of receive buffers owned by the driver.
- Target number of buffers
Desired number of receive buffers. As receive activity does not result in lost packets, this number is gradually decreased toward the "Current minimum limit". If packets are lost, this number is dramatically increased toward the "Current maximum limit". When the driver allocates receive buffers, it allocates them until reaching this target number.
- Target number of buffers maximum
Maximum desired number of receive buffers. When an application returns a buffer to the driver, if the current number does not exceed this target maximum, the buffer is kept by the driver. Otherwise, it is deallocated.
- Driver Messages
Console messages issued by the driver.
4.2. Tulip Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the Tulip driver. While
some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the Tulip chip using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The Tulip chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL3",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL4",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the Tulip chip, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="FXMT",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is limited to the range 2–40. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
Chapter 5. Intel 82599 10/100Mb Ethernet
The 82559 Ethernet devices are:
|
Device |
Characteristics |
|---|---|
|
DE600-AA |
10BaseT (UTP), 100BaseTX (UTP) |
|
DE602-AA |
Dual DE600-AA |
|
DE602-BA |
Dual DE600-AA |
|
DE602-BB |
Dual DE600-AA |
|
DE602-TA |
Dual DE600-AA daughter card for DE602 |
|
DE602-FA |
Dual 100BaseFX (multimode fiber) daughter card for DE602 |
|
Trifecta |
Combo SCSI + DE600 |
|
82559ER |
LOM 10BaseT (UTP), 100BaseTX (UTP) |
|
82559 |
LOM 10BaseT (UTP), 100BaseTX (UTP) |
The driver is SYS$EIDRIVER.EXE (Alpha, IA-64).
5.1. 82559 Driver Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EIA displays
the entire set of internal counters maintained by the 82559 driver. Some counters
are special debug counters. These are not displayed unless the additional qualifier
/DEBUG is specified. Counters that are zero are not displayed
unless the additional qualifier /ZERO is specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EIA.
Counters
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EIAcommand in the quadword driver version field.- Driver flags
Driver flags including the following bits:
Auto – Auto-negotiation is enabled.
PDet – Parallel Detection was used to select speed.
10mbit – 82559 chip is running at 10 Mbit/second.
100mbit – 82559 chip is running at 100 Mbit/second.
Hdx – 82559 chip is in half-duplex mode.
Fdx – 82559 chip is in full-duplex mode.
Flow – Flow control is enabled for auto-negotiation.
Prm – 82559 chip is in promiscuous mode.
AMC – 82559 chip is in all-multicast mode.
Map_All – All transmit and receive buffers are described using map registers.
CSR_IO – 82559 Command Status Registers (CSRs) are mapped in I/O space.
CSR_MEM – 82559 CSRs are mapped in memory space.
100TX – The media type is UTP.
100FX – The media type is multimode fiber.
CFG_Pend – A configuration buffer request is pending.
RFlow – The link partner supports flow control.
TXFlow – Transmit flow control is enabled.
RXFlow – Receive flow control is enabled.
- Device ID (subvendor ID <31:16>)
Device type, as follows:
NC3121 (Curveball)
NC3123 (Hascal)
NC3131 (Tornado)
NC3132 (Thunder)
NC3133 (El Nino)
NC3134
NC3135
Embedded 82559ER
Unknown
NC3120
NC3122 Dual
Embedded 82558 (HP Integrity rx2600 Server)
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the 82559 chip without notifying user applications.
- Hard errors
Number of errors that resulted in notifying user applications.
- Duplex mode mismatches
Number of times a potential duplex mode mismatch was detected by checking for transmit and receive errors.
- Link state
Current link state, as follows:
Undefined – Link state not determined yet or not applicable to this 82559 chip.
LinkDown – Link is down, disconnected from the network.
LinkWait – Link is down, and we are waiting a few seconds before doing link down handling in case it comes back up.
LinkUp – Link is up, connected to the network, ready to transmit and receive.
- Link transitions
Total number of link state up and link state down events.
- Auto-negotiation resets
Number of times auto-negotiation was restarted.
- Auto-negotiation state
Current auto-negotiation state.
- Rescheduled forks (fork time limit)
Number of times transmit and receive processing was suspended and the fork process rescheduled to allow fair usage of the CPU by other drivers.
- Device interrupts
Number of times the driver interrupt service routine was called.
- Device resets done
Number of times the driver has reset the 82559 chip.
- CXB transmits
Number of transmits issued via the Queue I/O (QIO) interface.
- Inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- Receive buffers mapped
Number of receive buffers that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Transmit segments mapped
Number of transmit buffer segments that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Page boundary transmits
Number of transmit buffer segments that crossed a page boundary.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- PTE to PFN translations (second page)
Number of PTE to PFN translations where the segment crossed a page boundary.
- Chained VCRP transmits
Number of transmit requests consisting of more than one buffer segment.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Transmit zero length DCBEs (Data Chain Block Extensions)
Number of chained transmit request buffer segments that contained no data.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the 82559 chip, and completed outstanding I/O requests with error status.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Control commands done
Number of control commands issued to the 82559 chip (for example, configuration and address filtering commands).
- Receive lockups
Number of times the driver issued a start receiver command to the 82559 chip and it did not start after 100 milliseconds, resulting in the need to reset and restart the chip.
- Last duplex mode mismatch reported
Time of the last duplex mode mismatch reported.
- Previous CRC or late collision error
Time of the last CRC or late collision error recorded.
- Transmit time limit
Transmit time limit (in seconds) after which a timeout is declared.
- Timer routine interval
Resolution of the transmit timer (the real timeout is limit + interval).
- Good transmit frames
Number of packets transmitted successfully, tallied by the 82559 chip.
- Transmit maximum collisions
Number of transmits that failed due to excessive collisions, tallied by the 82559 chip. These occur in half-duplex mode only.
- Transmit late collisions
Number of transmits that failed because a collision was detected later than 512 bit-times into the transmission of the packet, tallied by the 82559 chip. These occur in half-duplex mode only.
- Transmit underruns
Number of transmits that failed because the 82559 chip could not DMA data from the transmit buffers fast enough, tallied by the 82559 chip.
- Transmit lost carrier
Number of transmits that failed because the 82559 chip detected loss of carrier during the transmission, tallied by the 82559 chip.
- Transmit deferred
Number of successful transmits that were delayed because the medium was busy, tallied by the 82559 chip. These occur in half-duplex mode only.
- Transmit single collisions
Number of successfully transmitted packets that encountered exactly one collision during transmission (successful after retransmit), tallied by the 82559 chip. These occur in half-duplex mode only.
- Transmit multiple collisions
Number of successfully transmitted packets that encountered more than one collision during transmission (successful after multiple retransmits), tallied by the 82559 chip. These occur in half-duplex mode only.
- Transmit total collisions
Total number of collisions detected on transmit, tallied by the 82559 chip.
- Transmit flow control pause
Number of flow control pause frames transmitted by the 82559 chip, tallied by the 82559 chip.
- Good receive frames
Number of receive packets delivered to the LAN driver successfully, tallied by the 82559 chip.
- Receive crc errors
Number of packets received with CRC errors that are an integral number of bytes long, tallied by the 82559 chip. These packets are discarded.
- Receive alignment errors
Number of packets received with CRC errors that are not an integral number of bytes long, tallied by the 82559 chip. These packets are discarded.
- Receive resource errors
Number of receive packets discarded due to lack of receive buffers, tallied by the 82559 chip.
- Receive overrun errors
Number of receive packets discarded because the internal 82559 receive FIFO overflowed (for example, the 82559 chip was not able to DMA receive data to host memory fast enough), tallied by the 82559 chip.
- Receive collision detect errors
Number of receive packets discarded because a collision occurred during reception, tallied by the 82559 chip.
- Receive short frame errors
Number of receive packets that were shorter than 64 bytes (and therefore discarded), tallied by the 82559 chip.
- Receive flow control pause
Number of flow control pause frames received by the 82559 chip, tallied by the 82559 chip.
- Receive flow control unsupported
Number of flow control frames received with an unsupported type, tallied by the 82559 chip.
- Number of RUS (Receive Unit State) state updates
Number of times the 82559 driver checked and updated the 82559 chip receive unit state.
- Number of RUS idle state
Number of times the 82559 chip receive unit was in the idle state.
- Number of RUS ready state
Number of times the 82559 chip receive unit was in the ready state.
- Number of RUS ready state with no RBDs
Number of times the 82559 chip receive unit was in the ready state with no remaining buffer descriptors (RBDs).
- Number of RUS no resources
Number of times the 82559 chip receive unit was in the no resources state discarding incoming receive packets.
- Number of RUS fork instead of restart
Number of times the driver delayed an 82559 chip restart to do another receive completion check via a fork.
- RX FIFO limit
Bytes remaining in the receive (RX) FIFO before the 82559 chip will request the bus. This is calculated as 128 bytes − 8n, such that 1 = 120 bytes, 2 = 112 bytes, and so on. The default value is 8 (64 bytes).
- Diagnostic self-test status
Results of the self-test done by the 82559 chip during driver unit initialization.
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the 82559 chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the 82559 chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and 82559 chip, the driver records the time that each transmit buffer is given to the 82559 chip. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
- Minimum buffers requested
Minimum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current minimum limit".
- Maximum buffers requested
Maximum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current maximum limit".
- Current minimum limit
Minimum number of receive buffers as determined by the driver and by management request, "Minimum buffers requested". The driver will not allow the number of receive buffers in its receive queues to drop below this value. This does not include receive buffers transferred to applications (and not yet returned).
- Current maximum limit
Maximum number of receive buffers as determined by the driver and by management request, "Maximum buffers requested". The driver will deallocate receive buffers until the number allocated does not exceed this maximum. When applications return receive buffers, the number may exceed this maximum, at which point they are deallocated. Note that the driver allows this maximum to be exceeded slightly to limit allocation and deallocation activity. See "Target number of buffers maximum" below.
- Current number of buffers
Current number of receive buffers owned by the driver.
- Target number of buffers
Desired number of receive buffers. As receive activity does not result in lost packets, this number is gradually decreased toward the "Current minimum limit". If packets are lost, this number is dramatically increased toward the "Current maximum limit". When the driver allocates receive buffers, it allocates them until reaching this target number.
- Target number of buffers maximum
Maximum desired number of receive buffers. When an application returns a buffer to the driver, if the current number does not exceed this target maximum, the buffer is kept by the driver. Otherwise, it is deallocated.
- Driver Messages
Console messages issued by the driver.
5.2. 82559 Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the 82559 driver. While
some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the 82559 chip using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The 82559 chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EIA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EIA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the 82559 chip, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=(FUNCTION="FXMT",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is limited to the range 2–40. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="RFIF",VALUE=fifovalue)
For receive DMA, override the number of bytes in the FIFO remaining before requesting the bus, to DMA the data in the FIFO to host memory. The default is 8.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="RSTA",VALUE=timevalue)
Avoid giving receive buffers to the 82559 chip for a portion of each 2.55-second time period. The time period is defined as the low byte of the current time (EXE$GL_ABSTIM_TICS) minus the starvation time value specified. EXE$GL_ABSTIM_TICS is the current system uptime in 10-millisecond units. For example, setting a starvation value of 50 avoids giving buffers to the 82559 chip for the first 500 milliseconds of each 2.55-second period. A value of 200 starves the 82559 chip for 2 seconds of every 2.55-second period.
This function is useful when investigating application or device behavior under receive buffer starvation conditions.
- DEVICE_SPECIFIC=(FUNCTION="XSTA",VALUE=timevalue)
Delay completion of the next transmit request for the time specified in 10-millisecond units. Since transmits are completed in order, this delays all transmit completion until after the delay. When the delay is completed, the starvation time value is cleared. If the value is set too high, another device-specific function can be issued to change it.
This function is useful for investigating application behavior when transmit completion is delayed.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=FUNCTION="AUTO"
Restarts auto-negotiation.
- DEVICE_SPECIFIC=(FUNCTION="MWIN",VALUE=flagvalue)
Set the PCI memory write and invalidate feature of the 82559 chip. Only the low bit of the value is used; enable (1) or disable (0) this function.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="RALI",VALUE=flagvalue)
Set the DMA read alignment feature of the 82559 chip. Only the low bit of the value is used; enable (1) or disable (0) this function. If enabled, the 82559 chip attempts to align read DMA on cache block boundaries.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="WALI",VALUE=flagvalue)
Set the DMA write alignment feature of the 82559 chip. Only the low bit of the value is used; enable (1) or disable (0) this function. If enabled, the 82559 chip attempts to align write DMA on cache block boundaries.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="OMSG"
Console messages are displayed by the driver during initialization, auto-negotiation, and link handling. However, the driver limits the total number of messages displayed. This function resets the count, allowing additional messages to be displayed.
- DEVICE_SPECIFIC=FUNCTION="RMDI"
Read Medium Dependent Interface (MDI) registers. The registers are displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="RCOR",VALUE=pty)
DEVICE_SPECIFIC=(FUNCTION="XCOR",VALUE=pty) Corrupt a receive or transmit packet. When this function is completed, the protocol type is specified, and if it matches on a transmit or receive packet, the next packet seen is corrupted by changing the last bit in the VMS Communications Request Packet (VCRP) or Complex Chained Buffer (CXB), XORing it with a 1. The protocol type is then cleared so the corruption is not done again. The corruption is only checked when transmit or receive packet data tracing is being done (in the trace routine), so there is no performance hit for checking each packet to verify if it should be corrupted.
The following example shows how to corrupt a PEDRIVER transmit packet:
$ MCR LANCP SET DEVICE/TRACE EIA $ MCR LANCP SET DEVICE/DEVICE_SPECIFIC=(FUNCTION="XCOR", VALUE=%x760) EIA
- DEVICE_SPECIFIC=(FUNCTION="LOOP",VALUE=loopvalue)
Specify loopvalue to enable (1) or disable (0) loopback mode.
This is useful in test scenarios to run an application in loopback mode, where for standard use the application would not allow selection of loopback mode.
The current setting is displayed in the driver internal counters.
Chapter 6. DEGPA 1Gb Ethernet
The DEGPA Ethernet devices are:
|
Device |
Characteristics |
|---|---|
|
DEGPA-SA |
1000BaseSX (multimode fiber) |
|
DEGPA-TA |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
The driver is SYS$EW1000A.EXE (Alpha, IA-64).
6.1. DEGPA Driver Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS displays the
entire set of internal counters maintained by the DEGPA driver. Some counters are
special debug counters. These are not displayed unless the additional qualifier
/DEBUG is specified. Counters that are zero are not displayed
unless the additional qualifier /ZERO is specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EWA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the DEGPA device.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EWAcommand in the quadword driver version field.- Firmware version
Version number in hexadecimal, read from right to left.
- Device interrupts
Number of times the driver interrupt service routine was called.
- Events completed
Number of events completed from the event ring, such as link state changes, statistics updates, and multicast address changes.
- Link transitions
Number of link state up and link state down events.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O requests with error status.
- Initialization timeouts
Number of times the driver has timed out an initialization request, reset the device, and completed outstanding I/O requests with error status.
- Resets issued
Number of times the driver has reset the device.
- Inits initated
Number of times the driver initiated the device initialization procedure (done at the end of unit initialization and after every device reset and reinitialization).
- Inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- User change requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Jumbo transmits issued
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- Transmits issued (using map registers)
Number of transmit requests that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Jumbo receives issued
Number of jumbo receive buffers allocated and assigned to the device.
- Receives issued (using map registers)
Number of receive buffers that were 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
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Duplex mode mismatches
Number of times a potential duplex mode mismatch was detected by checking for transmit and receive errors.
- Commands outstanding
Number of commands outstanding to the device. Note that this count is adjusted when a command is about to be issued and there are no free command entries (it represents commands that most likely have been completed by the device, but the driver has not freed up the completed entries for reuse yet).
- Commands queued
Number of commands issued to the device when the maximum number was outstanding, so the driver had to verify completion of the outstanding commands before queuing or issuing the request.
- Command pending mask
Commands that the driver has not yet issued to the device.
- Invalid command
Event code of the last invalid or unimplemented command request.
- Unexpected event
Event code of the last unrecognized command request.
- Rescheduled forks
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
Number of 1518-byte receive buffers owned by the device.
- Standard receive buffer deallocations
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)
Number of large receive buffers owned by the device.
- Jumbo receive buffers (minimum)
Minimum number of large receive buffers owned by the device. This is initially set to 1. After the first jumbo receive, the driver sets the minimum to 32.
- Jumbo receive buffer allocations
Number of jumbo receive buffer allocations done by the driver.
- Jumbo receive buffer deallocations
Number of large buffer deallocations done by the driver because the number of outstanding buffers exceeded the maximum number allowed by the driver.
- Standard buffer size (bytes)
Size of the standard receive buffers. The device allows packets up to 1518 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes).
- Standard packet size (bytes)
This is the Ethernet packet size (1518 bytes).
- Jumbo buffer size (bytes)
Size of the jumbo receive buffers. The device allows packets up to 9018 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes). However, the driver limits the buffer size to the maximum size supported by the pool lookaside lists. The buffer size is 9018 plus 640 bytes of overhead (rounded up to the next 64-byte boundary), which accommodates the full jumbo packet size.
- Jumbo packet size (bytes)
This is the jumbo packet size (9018 bytes).
- Requested speed
Speed requested by the driver.
- Requested link value
Link control bits set by the driver to use during link initialization.
- Current link state
Current link state determined by the device.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Jumbo packets
Size of jumbo frames. The LAN_FLAGS system parameter bit 6 or the LANCP command
SET DEVICE /[NO]JUMBOdetermines whether the maximum user data size for VMS Communications Interface (VCI) applications is the standard size (1518 bytes, excluding header and CRC) or jumbo size. The default is disabled, LAN_FLAGS bit 6 set to zero.- Link auto negotiation
Determines whether the link state that the driver requests the device to use allows auto-negotiation. The LAN_FLAGS system parameter bit 5 or the LANCP command
SET DEVICE /[NO]AUTOdetermines the setting. The default is enabled.- More receive buffers
Set if more receive buffers have been enabled, currently unused.
- DMA width (bits)
Device determines whether it is installed in a 32-bit or 64-bit PCI bus and displays the result.
- Bus speed (MHz)
Device determines the PCI bus speed and displays the result.
- Current PCI state
Current value of the PCI state register which controls the DMA hardware and other PCI characteristics.
- Transmit coalesce value
Transmit interrupt delay (μs) Transmit interrupts are generated every n "coalesce value" transmit completions, but no later than n "interrupt delay" microseconds after transmit completion.
- Receive coalesce value
Receive interrupt delay (μs) Receive interrupts are generated every n "coalesce value" receive completions, but no more than n "interrupt delay" microseconds after receipt of a packet.
- 4GB workaround buffer in use flag
Set if the 4-gigabyte workaround buffer is in use. The DEGPA cannot transmit across a 4-gigabyte boundary in memory. If the driver encounters such a transmit request, it copies the transmit packet to a workaround buffer and transmits the workaround buffer.
- 4GB workarounds done
Number of 4-gigabyte workarounds done for transmit packets.
- 4GB workaround buffers orphaned
Number of receive buffers which crossed a 4-gigabyte boundary. The driver orphans these buffers to prevent their use (allocates and never deallocates).
- Receive return ring workarounds
On very rare occasions, the DEGPA does not update a receive return ring pointer correctly. The driver detects this condition and resets the device to clear the condition and continue. This is the number of times the workaround was done.
- Current time (EXE$GL_ABSTIM_TICS)
Current time in 10-millisecond ticks of the counters request from LANCP.
- Statistics time (EXE$GL_ABSTIM_TICS)
Time in 10-millisecond ticks of the last statistics update from the device.
- Last duplex mode mismatch reported
Time of the last duplex mode mismatch reported.
- Previous CRC or late collision error
Time of the last CRC or late collision error recorded.
- Transmit time limit
Transmit time limit (in seconds) after which a timeout is declared.
- Timer routine interval
Resolution of the transmit timer (the real timeout is limit + interval).
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the DEGPA 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the DEGPA are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and DEGPA, the driver records the time that each transmit buffer is given to the DEGPA. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
- Minimum buffers requested
Minimum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current minimum limit".
- Maximum buffers requested
Maximum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current maximum limit".
- Current minimum limit
Minimum number of receive buffers as determined by the driver and by management request, "Minimum buffers requested". The driver will not allow the number of receive buffers in its receive queues to drop below this value. This does not include receive buffers transferred to applications (and not yet returned).
- Current maximum limit
Maximum number of receive buffers as determined by the driver and by management request, "Maximum buffers requested". The driver will deallocate receive buffers until the number allocated does not exceed this maximum. When applications return receive buffers, the number may exceed this maximum, at which point they are deallocated. Note that the driver allows this maximum to be exceeded slightly to limit allocation and deallocation activity. See "Target number of buffers maximum" below.
- Current number of buffers
Current number of receive buffers owned by the driver.
- Target number of buffers
Desired number of receive buffers. As receive activity does not result in lost packets, this number is gradually decreased toward the "Current minimum limit". If packets are lost, this number is dramatically increased toward the "Current maximum limit". When the driver allocates receive buffers, it allocates them until reaching this target number.
- Target number of buffers maximum
Maximum desired number of receive buffers. When an application returns a buffer to the driver, if the current number does not exceed this target maximum, the buffer is kept by the driver. Otherwise, it is deallocated.
MAC Statistics (RFC 1643)
- Alignment errors
Number of packets received with CRC errors that are not an integral number of bytes long. These packets are discarded and then counted by the device.
- FCS (Frame Check Sequence) errors
Number of packets received with CRC errors that are an integral number of bytes long. These packets are discarded and then counted by the device.
- Single collisions
Number of successfully transmitted packets that encountered exactly one collision during transmission (successful after retransmit). These occur in half-duplex mode only.
- Multiple collisions
Number of successfully transmitted packets that encountered more than one collision during transmission (successful after multiple retransmits). These occur in half-duplex mode only.
- SQE test errors
Number of Signal Quality Error (SQE) test errors generated after successful transmission. These are also called heartbeat errors. Some network hardware does not support this test function, so this error happens on every transmit. These occur in half-duplex mode only.
- Deferred transmits
Number of successful transmits that were delayed because the medium was busy. These occur in half-duplex mode only.
- Late collisions
Number of times a collision was detected later than 512 bit-times into the transmission of a packet. The transmit fails. These occur in half-duplex mode only.
- Excessive collisions
Number of transmits that failed due to excessive collisions. These occur in half-duplex mode only.
- Internal MAC transmit errors
Number of transmits that failed because of an internal Media Access Control (MAC) sublayer error other than late collision, excessive collisions, or carrier sense error.
- Carrier sense errors
Number of transmits that failed because the carrier was not present during any or all of the transmission attempts.
- Frame too long errors
Number of received frames that were longer than the jumbo packet size. These packets are discarded and then counted by the device.
- Internal MAC receive errors
Number of receive packets discarded because of an internal MAC sublayer error that is not frame too long, alignment error, or FCS error. These packets are discarded and then counted by the device.
Interface Statistics (RFC 1213)
- Index (ifIndex)
A unique value for each interface. Its value ranges between 1 and the value of ifNumber. The value for each interface must remain constant between reinitializations of the entity's network management system.
- Type (ifType)
The type of interface, distinguished according to the physical/link protocols immediately "below" the network layer in the protocol stack. The value set by the DEGPA is 6 "ethernet-csmacd".
- Mtu (ifMtu)
The size of the largest datagram that can be sent/received on the interface, specified in octets. For interfaces that are used for transmitting network datagrams, this is the size of the largest network datagram that can be sent on the interface.
This field is specified by the driver and is set to the jumbo buffer size previously described.
- Speed (ifSpeed)
An estimate of the interface's current bandwidth in bits/second. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth.
- Admin requested status (ifAdminStatus)
The desired state of the interface. The testing state indicates that no operational packets can be passed. The values are: 1 – Up, 2 – Down; 3 – Testing.
This field is always 1 because the driver does not obtain statistical updates from the DEGPA in any other state.
- Operational status (ifOperStatus)
The current operational state of the interface. The testing state indicates that no operational packets can be passed. The values are: 1 – Up, 2 – Down; 3 – Testing.
This field is always 1 because the driver does not obtain statistical updates from the DEGPA in any other state.
- Last change (ifLastChange)
The value of sysUpTime at the time the interface entered its current operational state. If the current state was entered prior to the last reinitialization of the local network management subsystem, then this object contains a value of 0.
- Inbound discards (ifInDiscards)
The number of inbound packets that were chosen to be discarded, even though no errors had been detected to prevent their delivery to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space.
- Inbound errors (ifInErrors)
The number of inbound packets that contained errors preventing them from being deliverable to a higher-level protocol.
- Inbound unknown protos (ifInUnknownProtos)
The number of packets received via the interface that were discarded because of an unknown or unsupported protocol.
- Outbound discards (ifOutDiscards)
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 (ifOutErrors)
The number of outbound packets that could not be transmitted because of errors.
- Outbound queue length (ifOutQlen)
The length of the output packet queue (in packets).
- Physical address (ifPhysAddress)
The interface's address at the protocol layer immediately "below" the network layer in the protocol stack. For interfaces that do not have such an address (for example, a serial line), this object should contain an octet string of zero length.
- Description (ifDescr)
A textual string containing information about the interface. This string should include the name of the manufacturer, the product name, and the version of the hardware interface.
The value set by the DEPGA is blank.
- Bytes received (ifHCInOctets)
The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets.
- Unicast packets received (ifHCInUcastPkts)
The number of packets (delivered by this sublayer to a higher sublayer) that were not addressed to a multicast or broadcast address at this sublayer. This object is a 64-bit version of ifInUcastPkts.
- Multicast packets received (ifHCInMulticastPkts)
The number of packets (delivered by this sublayer to a higher sublayer) that were addressed to a multicast address at this sublayer. For a MAC layer protocol, this includes both Group and Functional addresses. This object is a 64-bit version of ifInMulticastPkts.
- Broadcast packets received (ifHCInBroadcastPkts)
The number of packets (delivered by this sublayer to a higher sublayer) that were addressed to a broadcast address at this sublayer. This object is a 64-bit version of ifInBroadcastPkts.
The DEGPA does not distinguish between broadcast multicast and non-broadcast multicast. As such, this counter is zero.
- Bytes sent (ifHCOutOctets)
The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.
- Unicast packets sent (ifHCOutUcastPkts)
The total number of packets that higher-level protocols requested be transmitted and that were not addressed to a multicast of broadcast address at this sublayer, including those that were discarded or not sent. This object is a 64-bit version of ifOutUcastPkts.
- Multicast packets sent (ifHCOutMulticastPkts)
The total number of packets that higher-level protocols requested be transmitted and that were addressed to a multicast address at this sublayer, including those that were discarded or not sent. For a MAC layer protocol, this includes both Group and Functional addresses. This object is a 64-bit version of ifOutMulticastPkts.
- Broadcast packets sent (ifHCOutBroadcastPkts)
The total number of packets that high-level protocols requested be transmitted and that were addressed to a broadcast address at this sublayer, including those that were discarded or not sent. This object is a 64-bit version of ifOutBroadcastPkts.
The DEGPA does not distinguish between broadcast multicast and non-broadcast multicast. As such, this counter is zero.
- Link updown trap enable (ifLinkUpDownTrapEnable)
Indicates whether linkUp/linkDown traps should be generated for this interface. By default, this object should have the value enabled (1) for interfaces which do not operate "on top" of any other interface (as defined in the ifStackTable), and disabled (2) otherwise.
This value is set to 2 by the DEGPA.
- High speed status (ifHighSpeed)
An estimate of the interface's current bandwidth in units of 1 000 000 bits/second. If this object reports a value of n, then the speed of the interface is somewhere in the range of (n − 500 000) to (n + 499 999). For interfaces that do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sublayer that has no concept of bandwidth, this object should be 0.
This value is set to 1000 by the DEGPA.
- Promiscuous mode status (ifPromiscuousMode)
This object has a value of false (2) if this interface only accepts packets/frames that are addressed to this station. This object has a value of true (1) when the station accepts all packets/frames transmitted on the media. The value 1 is only legal on certain types of media. If legal, setting this object to a value of 1 may require the interface to be reset before becoming effective. The value of ifPromiscuousMode does not affect the reception of broadcast and multicast packets/frames by the interface.
- Connector present status (ifConnectorPresent)
This object has the value true (1) if the interface sublayer has a physical connector and the value false (2) otherwise.
Host Commands Statistics
- Host state commands
Number of times the driver changed the host state. It can be in one of two states, up or down. The driver issues a host state up command when the first user starts, and a host state down when the last user stops.
- FDR (False Discovery Rate) filtering commands
Unused.
- Set receive producer index commands
Unused.
- Update GENCOMM statistics commands
Unused.
- Reset jumbo ring commands
Unused.
- Add mcast address commands
Number of times the driver issued a multicast address add command to the device to add a new multicast address to the multicast filtering table. The driver maintains its own multicast address table and updates the device whenever its table changes.
- Del mcast address commands
Number of times the driver issued a multicast address delete command to the device to delete a multicast address from the multicast filtering table. The driver maintains its own multicast address table and updates the device whenever its table changes.
- Set promiscuous mode commands
Number of times the driver enabled or disabled promiscuous receive mode. The driver issues these commands whenever a user enables or disables promiscuous mode.
- Link negotiate commands
Number of times the driver issued a link negotiate command to the device to cause it to set up the link again. The driver issues this command only when a device-specific (debug) command is issued via LANCP to explicitly set a new link value.
- Set MAC address commands
Number of times the driver issues a set MAC address command to change the MAC address of the device. Typically, this is issued by the driver once when DECnet starts.
- Clear profile commands
Unused.
- Set multicast mode commands
Number of times the driver enabled or disabled all multicast receive mode. The driver issues these commands whenever a user enables or disables all multicast mode.
- Clear statistics commands
Number of clear statistics commands the driver issued to the device on device startup. Normally, there is one clear statistics command for every reset that is done, plus any device-specific (debug) commands issued via LANCP to explicitly clear the counters.
- Set receive jumbo producer index commands
Unused.
- Set receive mini producer index commands
Unused.
- Refresh statistics commands
Unused.
- Unknown commands
Number of commands issued by the driver that were not recognized by the device.
Event Statistics
- FW operational events
Number of TG_EVENT_FIRMWARE_OPERATIONAL events generated.
- Link state changed events
Number of TG_EVENT_LINK_STATE_CHANGED events generated.
- Statistics updated events
Number of TG_EVENT_STATS_UPDATED events generated.
- Error events
Number of TG_EVENT_ERROR events generated.
- MCast list updated events
Number of TG_EVENT_MULTICAST_LIST_UPDATED events generated.
- Reset jumbo ring events
Number of TG_EVENT_RESET_JUMBO_RING events generated.
- Set send producer index events
Number of times the DEGPA device has seen updates to the send producer index.
- Set send consumer index events
Number of times the send consumer index was updated.
- Set receive return producer index events
Number of times the receive return producer index was updated.
Interrupt Statistics
- Interrupts generated
Number of interrupts generated by the DEGPA device.
- Interrupts avoided
Number of interrupts not generated by the DEPGA device (because of interrupt mitigation).
- Event threshold hit
Number of times the event max coalesce buffer descriptors (BD) threshold was reached.
- Send BD threshold hit
Number of times the BD_FLAG_COAL_NOW flag was set or that the send max coalesce BD threshold was reached.
- Receive BD threshold hit
Number of times the receive max coalesce BD threshold was reached. When this happens, the firmware updates the receive return producer index for the host.
DMA Statistics
- DMA read overrun errors
Number of times a DMA read overrun error occurred.
- DMA read underrun errors
Number of times a DMA read underrun error occurred.
- DMA write overrun errors
Number of times a DMA write overrun error occurred.
- DMA write underrun errors
Number of times a DMA write underrun error occurred.
- DMA write master abort errors
Number of times a DMA read master abort error occurred.
- DMA read master abort errors
Number of times a DMA write master abort error occurred.
Ring Statistics
- DMA write ring full
Number of times the DMA write ring was full.
- DMA read ring full
Number of times the DMA read ring was full.
- Event ring full
Number of times the device event ring was full.
- Event producer ring full
Number of times the DMA write ring was full trying to write either the DMA event or event producer to host memory.
- MAC transmit descriptor ring full
Number of times the MAC transmit descriptor ring was full.
- Transmit buffer space full
Number of times the transmit buffer space was full.
- No more DMA write descriptors
Number of times the device ran out of DMA write descriptors.
- No more receive BDs
Number of times the device ran out of receive buffer descriptors.
- No space in return ring
Number of times the device could not place a buffer descriptor in the return ring because it was full.
- Send BDs owned by NIC
Number of send buffer descriptors currently being processed by the device.
- Receive BDs owned by NIC
Number of standard (1518 bytes) receive buffer descriptors owned by the device.
- Jumbo receive BDs owned by NIC
Number of jumbo receive buffer descriptors owned by the device.
- Mini receive BDs owned by NIC
Unused, always 0.
- Total receive BDs owned by NIC
Number of receive buffer descriptors owned by the device.
- Total send BDs owned by NIC
Number of transmit buffer descriptors owned by the device.
- Jumbo frames split into multiple standard BDs
Number of times a jumbo frame was split into multiple standard buffer descriptors.
- Bus hang cleared
Number of times an SBus DMA bug was worked around.
- Posting an event was delayed
Number of times posting an event was delayed.
Internal MAC Receive Statistics
- Packets dropped due to late collisions
Number of receive packets dropped because of late collisions. These occur in half-duplex mode only.
- Packets dropped because of loss of link
Number of receive packets dropped because of the loss of a link, such as a cable disconnect, broken cable, NIC hardware failure, or link partner hardware failure.
- Packets dropped because of PHY decode errors
Number of receive packets dropped because of Physical Layer (PHY) decode errors, such as a hardware failure that generates so much noise that the PHY cannot recognize the signal, or some other hardware failure.
- Packets aborted by MAC because of remote errors
Number of receive packets aborted by MAC because of remote errors, such as receiving a packet smaller than 64 bytes, a PHY decode error, a collision detected during receipt, or an error occurring during gigabit half-duplex frame extension.
- Frames dropped due to lack of NIC internal resources
Number of receive packets dropped because of a lack of NIC internal resource, such as memory space or MAC descriptors. This usually occurs because the bus is too slow.
- Unicast packets dropped – DA does not match
Number of receive packets dropped because the destination address (DA) in the packet does not match our address. This happens regularly on full-duplex repeaters or during switch flooding.
- Multicast packets dropped – DA does not match
Number of receive packets dropped because the destination address in the packet does not match the multicast address list.
- Flow control packets received
Number of flow control packets received.
- Packets dropped because of lack of space
Number of receive packets dropped because of lack of space. This usually occurs because the bus is too slow.
- Packets dropped because of collisions
Number of receive packets dropped because of collisions. This is caused by two nodes sending messages simultaneously. These occur in half-duplex mode only.
- MAC receive attentions
Number of MAC receive attentions, including receive descriptor attention, receive buffer attention, flow control XON sent, flow control XOFF sent, and FIFO overrun.
- Link state change attentions
Number of link state change attentions, including auto-negotiation changed, link state error, and link ready changed.
- Sync lost attentions
Number of sync lost attentions.
- Link config attentions
Number of link config attentions, possibly caused by the link partner changing its link configuration. This does not indicate hardware failure unless the actual number of link configuration changes is smaller than this counter.
- MAC resets
Number of times the MAC was reset. This is caused by link loss and attempts to reestablish the link.
- Receive BD attentions
Unused.
- Receive buffer attentions
Number of receive buffer descriptor attentions which is triggered by the number of received buffer descriptors reaching a predefined threshold.
- No frame cleanups after receive buffer attention
Number of times the receive buffer got cleaned up when it was full and the frame received count was zero. This indicates that the data in the receive buffer was unreliable; this can happen if the remote mode sent continuous error frames.
- One frame cleanups after receive buffer attention
Number of times the receive buffer got cleaned up when it was full and the frame received count was 1. This could happen if the remote node sent continuous error frames.
- Multiple frame cleanups after receive buffer attention
Number of times the receive buffer got cleaned up when it was full and the frame received count was greater than 1. This could happen if the remote node sent continuous error frames.
- Receive buffer cleanups by time
Number of times the device set up a timer to wait for receive buffer space to be freed up when the receive buffer was full. This can happen if the remote node sent continuous error frames.
- DMA cleanups due to DMA attentions
Number of times the DMA buffer got cleaned up when the receive buffer was full. This can happen if the remote node sent continuous error frames.
Internal MAC Transmit Statistics
- MAC TRANSMIT 1–15 collisions
Transmit collision histogram. These are updated in half-duplex mode only.
- Transmit attentions
Total number of transmit attentions.
- Driver Messages
Console messages issued by the driver.
6.2. DEGPA Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the DEGPA driver. While
some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the DEGPA using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The DEGPA is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL3",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FIL4",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the DEGPA, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="FXMT",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is limited to the range 2–40. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="LINK",VALUE=linkvalue)
Set the requested link settings for the DEGPA, then issue a command to the DEGPA requesting that link negotiation be redone.
- DEVICE_SPECIFIC=(FUNCTION="DXMT",VALUE=delayvalue)
Change the interrupt mitigation delay on transmit completion value, the "Transmit interrupt delay" value. This value is in microseconds. If out of range, 1–1000, it is set to 1.
- DEVICE_SPECIFIC=(FUNCTION="DRCV",VALUE=delayvalue)
Change the interrupt mitigation delay on receive completion value, the "Receive interrupt delay" value. This value is in microseconds. If out of range, 1–1000, it is set to 1.
- DEVICE_SPECIFIC=(FUNCTION="CXMT",VALUE=packetvalue)
Change the interrupt mitigation coalesce on transmit completion value, the "Transmit coalesce value". This value is in number of packets.
- DEVICE_SPECIFIC=(FUNCTION="CRCV",VALUE=packetvalue)
Change the interrupt mitigation coalesce on receive completion value, the "Receive coalesce value". This value is in number of packets.
Chapter 7. Broadcom 1Gb Ethernet
The Broadcom 5700 Ethernet devices are:
|
Device |
Bus |
Characteristics |
|---|---|---|
|
DEGXA-SA |
PCI |
1000BaseSX (multimode fiber) |
|
DEGXA-TA |
PCI |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
DEGXA-SB |
PCI-X |
1000BaseSX (multimode fiber) |
|
DEGXA-TB |
PCI-X |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
BCM5703 (LOM) |
PCI |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
A6847A |
PCI |
1000BaseSX (multimode fiber) |
|
A6825A |
PCI |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
AB352A |
PCI-X |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
A9782A |
PCI-X |
1000BaseSX (multimode fiber) |
|
A9784A |
PCI-X |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
AB454A |
PCI-X |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
|
BCM5701 (LOM) |
PCI |
10BaseT (UTP), 100BaseTX (UTP), 1000BaseT (UTP) |
The driver is SYS$EW5700.EXE (Alpha, IA-64).
7.1. Broadcom 5700 Driver Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EWA displays
the entire set of internal counters maintained by the 5700 driver. Some counters are
special debug counters. These are not displayed unless the additional qualifier
/DEBUG is specified. Counters that are zero are not displayed
unless the additional qualifier /ZERO is specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EWA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the 5700 device.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EWAcommand in the quadword driver version field.- Device revision
Hardware revision level identified by the Broadcom 5700 chip revision. It is displayed as A0, A1, B0, B1, B2, C0, C1, C2. If the version is later than the driver recognizes, it is displayed as >C2, for example. The actual revision is located in bits <31:16> of the Misc Host Control register displayed in the Registers section.
- Device PHY ID
ID of the PHY chip found on the device. Bits <31:10> is the Organizationally Unique Identifier (OUI), bits <9:4> is the model number and bits <3:0> is the revision.
- Device interrupts
Number of times the driver interrupt service routine was called.
- Link transitions
Number of link transitions seen by the driver.
- Link transitions avoided
Number of times a second check of the link state avoided a transition from link up to link down.
- Status block errors
Number of times the error bit in the status block was set at the same time the fiber link partner was sending configuration data for auto-negotiation.
- Status block link state changes
Number of times the link state change bit was set in the status block.
- Link checks
Number of times the driver checked the current link status.
- Driver auto-negotiation (fiber) sequences done
Number of times the driver executed the auto-negotiation procedure.
- Device resets
Number of times the 5700 chip was reset.
- Device resets retried (after 1.5-second timeout)
Number of times the 5700 chip reset was retried because the 5700 firmware did not complete initialization the first time.
- Device initializations
Number of times the driver initialized the 5700 chip.
- Unit inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Unit inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- User start/change/stop requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O with error status.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Jumbo transmits issued
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- Transmits issued (using map registers)
Number of transmit requests that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Jumbo receives issued
Number of jumbo receive buffers allocated and assigned to the device.
- Receives issued (using map registers)
Number of receive buffers that were 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.
- Receives discarded (bad frame)
Number of receive packets discarded by the driver due to receive error. By default, the 5700 chip does not deliver damaged receive packets to the driver, but can be asked to do so by a device-specific function.
- Receive FIFO overflows
Number of times the driver detected a receive FIFO overflow.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Duplex mode mismatches
Number of times a potential duplex mode mismatch was detected by checking for transmit and receive errors.
- Rescheduled forks (too long in fork)
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
Number of 1518-byte receive buffers owned by the device.
- Standard receive buffer deallocations
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)
Number of large receive buffers owned by the device.
- Jumbo receive buffers (minimum)
Minimum number of large receive buffers owned by the device. This is initially set to 32. After the first jumbo receive, the driver sets the minimum to 128.
- Jumbo receive buffer allocations
Number of jumbo receive buffer allocations done by the driver.
- Jumbo receive buffer deallocations
Number of large buffer deallocations done by the driver because the number of outstanding buffers exceeded the maximum number allowed by the driver.
- Standard buffer size (bytes)
Size of the standard receive buffers. The device allows packets up to 1518 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes).
- Standard packet size – device standard ring (bytes)
This is the Ethernet packet size (1518 bytes).
- Jumbo buffer size (bytes)
Size of the jumbo receive buffers. The device allows packets up to 9018 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes). However, the driver limits the buffer size to the maximum size supported by the pool lookaside lists. The buffer size is 9018 plus 640 bytes of overhead (rounded up to the next 64-byte boundary), which accommodates the full jumbo packet size.
- Jumbo packet size – device jumbo ring (bytes)
This is the jumbo packet size (9018 bytes).
- Requested link settings
Speed and duplex mode requested by a user.
- Current link settings
Current link state.
- Remote flow capabilities
Flow control capabilities reported for the link partner.
- Current link up timer
Current value of the one-second timer that waits for the link to come back before resetting the device to free pending transmit requests.
- Driver flags
Driver flags including the following bits:
Promiscuous – Promiscuous mode enabled.
All_Multicast – All multicast mode enabled.
Jumbo_Frames – Jumbo packets enabled.
More_Rcv – More receive ring entries enabled.
Copper – Copper PHY present.
Fiber – Fiber PHY present.
5701 – 5701 chip.
5703 – 5703 chip.
GraniteLOM – Granite 5703 LOM chip.
Receive_Bad_Frames – Receive bad frames enabled.
Bugcheck_XTMO – Bugcheck on transmit timeout.
Setup_Link_In_Progress – Currently setting up the link.
All_Messages_Enabled – Display all messages.
Device_Link_Handling – Device does link handling.
Driver_Link_Handling – Driver does link handling (fiber only).
- Driver state
Current driver state, as follows:
- 0 – Driver state is undefined.
- 1 – Driver state is resetting.
- 2 – Driver is running, but the link is down. Completing transmits with error status.
- 4 – Driver is running, and the link is up. Processing transmits and receives.
- 8 – Device is not usable.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- DMA width (bits)
Device determines whether it is installed in a 32-bit or 64-bit PCI bus and displays the result.
- Bus speed (MHz)
Device determines whether it is installed 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 displays the result.
- Bus type
Device determines whether it is installed in a PCI or PCI-X bus and displays the result.
- MSI control (Alloc<6:4>, Req<3:1>, Enable<0>)
Contents of the MSI_CONTROL register that stores the Message Signaled Interrupts (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
/DEBUGqualifier is specified, more MSI context is displayed, such as MSI Address and Data registers.- DMA control value
Contents of the DMA control register which regulates read and write DMA operations.
- Transmit coalesce value
Transmit interrupt delay (μs) Transmit interrupts are generated every n "coalesce value" transmit completions, but no later than n "interrupt delay" microseconds after transmit completion.
- Receive coalesce value
Receive interrupt delay (μs) Receive interrupts are generated every n "coalesce value" receive completions, but no more than n "interrupt delay" microseconds after receipt of a packet.
- Initialization delay (μs)
Total time (in microseconds) waiting for the device during initialization including shutdown.
- Link setup delay (μs)
Total time (in microseconds) waiting for the device during setup of the link.
- Transmit time limit
Transmit time limit (in seconds) after which a timeout is declared.
- Timer routine interval
Resolution of the transmit timer (the real timeout is limit + interval).
Registers (wrote/read)
- Misc Host Control
Last value written to and read from the Misc Host Control register.
- MAC Mode
Last value written to and read from the MAC Mode register.
- MAC Status
Last value written to and read from the MAC Status register.
- MI Status
Last value written to and read from the MI Status register.
- RX Mode
Last value written to and read from the RX Mode register.
- TX Status
Last value written to and read from the TX Status register.
Time Stamps
- Current uptime
Current system uptime.
- Last reset
Last time the device was reset.
- Last link up
Last time a link up transition occurred.
- Last link down
Last time a link down transition occurred.
- Total link uptime
Total time the link has been up.
- Total link downtime
Total time the link has been down.
- Last driver auto-negotiation (fiber) initiated
Last time the driver started auto-negotiation on the fiber NIC.
- Last driver auto-negotiation (fiber) completed
Last time the driver completed auto-negotiation on the fiber NIC.
- Time spent doing driver auto-negotiation (fiber)
Total time spent doing auto-negotiation on the fiber NIC.
- Last transmit timeout
Time of the last transmit timeout.
- Last soft error
Time of the last soft error.
- Last duplex mode mismatch reported
Time of the last duplex mode mismatch reported.
- Previous CRC or late collision error
Time of the last CRC or late collision error recorded.
- Driver Auto-Negotiation Context (fiber)
Auto-negotiation context for driver auto-negotiation on the fiber NIC.
- Minimum buffers requested
Minimum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current minimum limit".
- Maximum buffers requested
Maximum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current maximum limit".
- Current minimum limit
Minimum number of receive buffers as determined by the driver and by management request, "Minimum buffers requested". The driver will not allow the number of receive buffers in its receive queues to drop below this value. This does not include receive buffers transferred to applications (and not yet returned).
- Current maximum limit
Maximum number of receive buffers as determined by the driver and by management request, "Maximum buffers requested". The driver will deallocate receive buffers until the number allocated does not exceed this maximum. When applications return receive buffers, the number may exceed this maximum, at which point they are deallocated. Note that the driver allows this maximum to be exceeded slightly to limit allocation and deallocation activity. See "Target number of buffers maximum" below.
- Current number of buffers
Current number of receive buffers owned by the driver.
- Target number of buffers
Desired number of receive buffers. As receive activity does not result in lost packets, this number is gradually decreased toward the "Current minimum limit". If packets are lost, this number is dramatically increased toward the "Current maximum limit". When the 5700 driver allocates receive buffers, it allocates them until reaching this target number.
- Target number of buffers maximum
Maximum desired number of receive buffers. When an application returns a buffer to the driver, if the current number does not exceed this target maximum, the buffer is kept by the driver. Otherwise, it is deallocated.
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the 5700 chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the 5700 chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and 5700 chip, the driver records the time that each transmit buffer is given to the 5700 chip. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
Status Block
- 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 (such as checking the ring indexes for completions or checking the link status). The bits in the longword are defined as follows:
- Bit 1 – Link changed status.
- Bit 2 – Status block updated flag.
- Bit 4 – Status block error.
- Receive mini consumer index
Unused.
- Receive jumbo consumer index
Current position of the 5700 driver in the jumbo receive buffer ring.
- Receive standard consumer index
Current position of the 5700 driver in the standard receive buffer ring.
- Receive ring 0 producer index
Current position of the 5700 driver in the receive return ring.
- Send ring 0 consumer index
Current position of the 5700 driver in the send ring.
Statistics Block
Statistics – Receive MAC
- Bytes received
Number of bytes successfully received.
- Runt packets received (bad CRC)
Number of runt packets less than 64 bytes long received and discarded.
- Unicast packets received
Number of packets successfully received that were not addressed to a multicast or broadcast address.
- Multicast packets received
Number of packets successfully received that were addressed to a multicast address, but not to the broadcast address.
- Broadcast packets received
Number of packets successfully received that were addressed to the broadcast address.
- FCS errors
Number of packets received with CRC errors that are an integral number of bytes long. These packets are discarded and are counted by the device.
- Alignment errors
Number of packets received with CRC errors that are not an integral number of bytes long. These packets are discarded and are counted by the device.
- MAC Control XON frames received
Number of XON frames received. An XON frame is a MAC control frame with a pause command and a length equal to zero.
- MAC Control XOFF frames received
Number of XOFF frames received. An XOFF frame is a MAC control frame with a pause command and a length greater than zero.
- MAC Control other frames received
Number of other MAC control frames received. These are MAC control frames with no pause command.
- Transmitting disabled (XOFF)
Number of times the transmitter was disabled because of a receive of an XOFF frame.
- Frame too long errors
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
Number of frames received that are longer than the specified maximum frame time (for example, a jabber frame).
- Runt packets received (good CRC)
Number of frames received with a size less than 64 bytes (including a correct CRC field).
- Length errors (length field not equal actual)
Number of frames received where the 802.3 length field does not match the total frame size.
- Length errors (type field 1523–1535)
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).
- Packets (64 bytes)
Packets (65–127 bytes)
Packets (128–255 bytes)
Packets (256–511 bytes)
Packets (512–1023 bytes)
Packets (1024–1522 bytes)
Packets (1523–2047 bytes)
Packets (2048–4095 bytes)
Packets (4096–8191 bytes)
Packets (8192–9018 bytes) Number of packets of this size received.
Statistics – Transmit MAC
- Bytes sent
Number of bytes successfully transmitted.
- Collisions experienced
Number of collisions experienced.
- XON packets sent
Number of XON packets sent in support of flow control.
- XOFF packets sent
Number of XOFF packets sent in support of flow control.
- Flow control sequences done
Number of flow control sequences done.
- Internal MAC transmit errors
Number of transmits that failed because of an internal MAC sublayer error other than late collision, excessive collisions, or carrier sense error.
- Single collisions
Number of successfully transmitted packets that encountered exactly one collision during transmission (successful after retransmit). These occur in half-duplex mode only.
- Multiple collisions
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
Number of successful transmits that were delayed because the medium was busy. These occur in half-duplex mode only.
- Excessive collisions
Number of transmits that failed because of excessive collisions. These occur in half-duplex mode only.
- Late collisions
Number of times a collision was detected later 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
Number of successfully transmitted packets that encountered n collisions during transmission (successful after n retransmits). These occur in half-duplex mode only.
- Unicast packets sent
Number of successfully transmitted packets that were not addressed to a multicast or broadcast address.
- Multicast packets sent
Number of successfully transmitted packets that were addressed to a multicast address but not to the broadcast address.
- Broadcast packets sent
Number of successfully transmitted packets that were addressed to a broadcast address.
- Carrier sense errors
Number of transmits that failed because a carrier was not present during any or all of the transmission attempts.
- Outbound discards
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
Number of outbound packets that could not be transmitted because of errors.
Statistics – Receive List Placement State Machine
- Frames received onto return ring 1–16
Number of frames received onto each of the return rings.
- Frames discarded using filters
Number of frames received but discarded after validation by the receive filters.
- DMA write queue full
Number of times the DMA write queue was full.
- DMA high priority write queue full
Number of times the DMA write high-priority queue was full.
- No more receive BDs
Number of times the NIC ran out of receive buffer descriptors.
- Inbound discards
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
Number of inbound packets that contained errors that prevented them from being deliverable to a higher-layer protocol.
- Receive threshold hit
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
- Frames sent from send ring 1–16
Number of frames sent from each of the send rings.
- DMA read queue full
Number of times the DMA read queue was full.
- DMA high priority read queue full
Number of times the DMA read high-priority queue was full.
- Send data completion queue full
Number of times the send data completion flow-through-queue (FTQ) was full.
Statistics – Host Coalescing State Machine
- Send producer index updates
Number of times the NIC has seen updates to any send producer ring index.
- Ring status updates
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
Number of interrupts generated by the NIC.
- Interrupts avoided
Number of interrupts avoided by the NIC (because of interrupt mitigation).
- Send threshold hit
Number of times the send max coalesce frames threshold was reached, resulting in a status block update and interrupt.
- Debug Data
Consists of a list of the contents-significant 5700 chip registers, collected when internal driver counters were requested.
- EEPROM Contents
Consists of the Electrically Erasable Programmable Read-Only Memory (EEPROM) contents of the non-volatile memory on the 5700 NIC, which contains manufacturing information.
- Driver Messages
Console messages issued by the driver.
7.2. Broadcom 5700 Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the 5700 driver. While
some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the 5700 chip using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The 5700 chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the 5700 chip, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="FXMT",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is limited to the range 2–40. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=FUNCTION="FCRC"
Send the next packet without a valid CRC.
This is used to generate CRC errors for test purposes.
- DEVICE_SPECIFIC=(FUNCTION="RBAD",VALUE=value)
If value is zero, the chip will discard bad received packets. If value is nonzero, the bad packets will be received and discarded by the driver. This allows the packets to be traced and inspected.
- DEVICE_SPECIFIC=(FUNCTION="DXMT",VALUE=delayvalue)
Change the interrupt mitigation delay on transmit completion value, the "Transmit interrupt delay" value. This value is in microseconds. If less than 1, it is set to 1. If greater than 1000, it is set to 1000.
- DEVICE_SPECIFIC=(FUNCTION="DRCV",VALUE=delayvalue)
Change the interrupt mitigation delay on receive completion value, the "Receive interrupt delay" value. This value is in microseconds. If less than 1, it is set to 1. If greater than 1000, it is set to 1000.
- DEVICE_SPECIFIC=(FUNCTION="CXMT",VALUE=packetvalue)
Change the interrupt mitigation coalesce on transmit completion value, the "Transmit coalesce value". This value is in number of packets. If less than 1, it is set to 1. If greater than 64, it is set to 64.
- DEVICE_SPECIFIC=(FUNCTION="CRCV",VALUE=packetvalue)
Change the interrupt mitigation coalesce on receive completion value, the "Receive coalesce value". This value is in number of packets. If less than 1, it is set to 1. If greater than 128, it is set to 128.
- DEVICE_SPECIFIC=(FUNCTION="DYNI",VALUE=value)
If value is clear, disable dynamic interrupt mitigation (DIM). If set, enable DIM. The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="AUTO"
Restart auto-negotiation.
- DEVICE_SPECIFIC=FUNCTION="INTR"
Generate an interrupt.
- DEVICE_SPECIFIC=(FUNCTION="XDEL",VALUE=timevalue)
Delay issuing the next transmit request for the time specified in 10-millisecond units. A maximum of 2000 (20 seconds) is allowed.
This function is useful for investigating application behavior when a transmit request is delayed.
- DEVICE_SPECIFIC=(FUNCTION="XTOB",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a transmit timeout occurs. If 0 (disable), transmit timeout results in a device reset.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="XLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long transmit occurs. If 0 (disable), a long transmit completion is counted.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="FLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long fork occurs. If 0 (disable), a long time to run a fork process is recorded in the counters.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="SLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long one second occurs. If 0 (disable), a long time before the one-second timer fork process is run is recorded in the counters.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="ALLM",VALUE=setting)
Change the setting of the driver flag "all messages". If the "all messages" flag is set, the driver displays all console messages. The default setting is bit 31 of the LAN_FLAGS system parameter. This function allows the "all messages" setting to be set for an individual device rather than all LAN devices on the system.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="LOOP",VALUE=loopvalue)
Specify loopvalue to enable (1) or disable (0) loopback mode.
This is useful in test scenarios to run an application in loopback mode, where for standard use the application would not allow selection of loopback mode.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="OMSG"
Console messages are displayed by the driver during initialization, auto-negotiation, and link handling. However, the driver limits the total number of messages displayed. This function resets the count, allowing additional messages to be displayed.
- DEVICE_SPECIFIC=(FUNCTION="RCOR",VALUE=pty)
DEVICE_SPECIFIC=(FUNCTION="XCOR",VALUE=pty) Corrupt a receive or transmit packet. When this function is completed, the protocol type is specified, and if it matches on a transmit or receive packet, the next packet seen is corrupted by changing the last bit in the VCRP or CXB, XORing it with a 1. The protocol type is then cleared so the corruption is not done again. The corruption is only checked when transmit or receive packet data tracing is being done (in the trace routine), so there is no performance hit for checking each packet to verify if it should be corrupted.
The following example shows how to corrupt a PEDRIVER transmit packet:
$ MCR LANCP SET DEVICE/TRACE EWA $ MCR LANCP SET DEVICE/DEVICE_SPECIFIC=(FUNCTION="XCOR", VALUE=%x760) EWA
- DEVICE_SPECIFIC=(FUNCTION="FLOW",VALUE=value)
Disable flow control (if value is zero) or enable flow control (if value is nonzero).
- DEVICE_SPECIFIC=(FUNCTION="SCOU",VALUE=offset)
Simulate a counter value by writing to device memory where the counters are located and incrementing a value.
- DEVICE_SPECIFIC=FUNCTION="HBUG"
Force a hardware bug.
- DEVICE_SPECIFIC=(FUNCTION="DMAC",VALUE=value)
Write the DMA Control Register with the value given.
- DEVICE_SPECIFIC=(FUNCTION="WCSR",VALUE=(registeraddress,value)
Write the device register specified with the value given.
- DEVICE_SPECIFIC=FUNCTION="FLSC"
Force a link state change interrupt.
(SYS$EW5700_MON.EXE driver only).
- DEVICE_SPECIFIC=(FUNCTION="LSCI",VALUE=value)
If value is zero, disable link state change interrupts. If value is nonzero, enable link state change interrupts.
- DEVICE_SPECIFIC=(FUNCTION="FLIN",VALUE=setting)
Force link indication.
If value is 0 (disabled), do not force the link state.
If value is 1, force the link to be up.
If value is 2, force the link to be down.
- DEVICE_SPECIFIC=(FUNCTION="BOUN",VALUE=(shorttime,longtime,blocktime)
Change the link bounce parameters. The values are defined as follows:
shorttime – Link up time to consider link bounce too short (in ABSTIM_TICS).
Minimum/Default = 200 / Maximum = 1000
longtime – Link up time to disable link bounce handling (in ABSTIM_TICS).
Minimum = shorttime / Default = 1000 / Maximum = 6000
blocktime – Maximum link check block time (in ABSTIM_TICS).
Minimum/Default = 6000 / Maximum = 360 000
If any of the times are not supplied, all of the values are set to the defaults.
Chapter 8. Intel 1Gb Ethernet
The Intel 1Gb devices are:
|
Chip Name |
Chip Number |
|---|---|
|
Kenai32 |
82540EM |
|
Kenai32M |
82540EP |
|
Cordova |
82544EI |
|
Cordova-R |
82544GC |
|
Kenai64M |
82545EM |
|
Attla |
82545GM |
|
Anvik |
82546EB |
|
Anvik II |
82546GB |
|
Ophir |
82571EB |
|
Zoar |
82575EB |
The A7011s and ABxxxx are PCI-X devices. The ADxxxx are PCI-e devices. The LOMs may be either depending on the system.
|
Vendor ID |
Subsystem/Subvendor ID |
Device Name |
Chip |
|---|---|---|---|
|
107A8086 |
12A8103C |
A7011A |
82546GB (Fiber 2-port) |
|
10798086 |
12A6103C |
A7012A |
82546GB (Copper 2-port) |
|
10798086 |
12CF103C |
AB352A |
82546GB (Copper 2-port) |
|
10798086 |
12CD103C |
82546LOM |
82546GB (Copper embedded on rx2620) |
|
10798086 |
12C6103C |
82546LOM |
82546GB (Copper embedded on rx1620) |
|
100E8086 |
1274103C |
82540LOM |
82540EM (Copper embedded on rx2600) |
|
10798086 |
12D1103C |
AB290A |
82546GB (Castor Copper 2-port + SCSI U320 combo) |
|
10798086 |
12D3103C |
AB545A |
82546GB (Cerberus Copper 4-port) |
|
10268086 |
12DE103C |
AD193A |
82546GB (Vega Copper 1-port + 1-port 4G QLogic FC) |
|
10798086 |
12DF103C |
AD194A |
82546GB (Vega Copper 2-port + 2-port 4G QLogic FC) |
|
10268086 |
1333103C |
AD331A |
82545GM (Cyclops Copper 1-port) |
|
10278086 |
1334103C |
AD332A |
82545GM (Cyclops Fiber 1-port) |
|
105E8086 |
704E103C |
AD337A |
82571EB (Ashta Copper 2-port) (Enchanted Rock) |
|
105F8086 |
704F103C |
AD338A |
82571EB (Ashta Fiber 2-port) |
|
10BC8086 |
704B103C |
AD339A |
82571EB (Ashta Copper 4-port) (Lost Maples) |
|
10A78086 |
171A103C |
82575LOM |
82575EB (Kauai LOM) |
|
10A98086 |
171A103C |
82575LOM |
82575EB (Buccaneer LOM) |
|
10A78086 |
7042103C |
AD221A |
82575EB (Deneb Copper 1-port + 1-port 4G Emulex FC) |
|
10A78086 |
7043103C |
AD222A |
82575EB (Deneb Copper 2-port + 2-port 4G Emulex FC) |
|
10A98086 |
7054103C |
AD393A |
82575EB (Deneb Fiber 2-port + 2-port 4G Emulex FC) |
|
10D98086 |
1716103C |
NC360M |
82571EB (Blade Fiber mezzanine 2-port)(Cedar Hill) |
|
10DA8086 |
1717103C |
NC364M |
82571EB (Blade Fiber mezzanine 4-port)(Mother Neff) |
|
100E8086 |
001E103C |
HPVM VIO |
82546GB (HPVM emulated VIO device) |
The driver is SYS$EI1000.EXE (IA-64).
8.1. Intel 1Gb Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EWA displays
the entire set of internal counters maintained by the Intel 1Gb driver. Some
counters are special debug counters. These are not displayed unless the additional
qualifier /DEBUG is specified. Counters that are zero are not
displayed unless the additional qualifier /ZERO is
specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EIA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the Intel 1Gb device.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EIAcommand in the quadword driver version field.- Device revision
Hardware revision level of the chip.
- Device PHY ID
ID of the PHY chip found on the device. Bits <31:10> is the OUI, bits <9:4> is the model number and bits <3:0> is the revision.
- Device interrupts
Number of times the driver interrupt service routine was called.
- Link transitions
Number of link transitions seen by the driver.
- Cabling errors
Number of times a cable fault was detected for the fiber NIC.
- Interrupt link state changes
Number of link state changes reported in the interrupt control register.
- Link checks
Number of times the driver checked the current link status.
- Device resets
Number of times the device was reset.
- Unit inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Unit inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- User start/change/stop requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O with error status.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Jumbo transmits issued
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- Transmits issued (using map registers)
Number of transmit requests that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Jumbo receives issued
Number of jumbo receive buffers allocated and assigned to the device.
- Receives issued (using map registers)
Number of receive buffers that were 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.
- Receives discarded (bad frame)
Number of receive packets discarded by the driver due to receive error. By default, the chip does not deliver damaged receive packets to the driver, but can be asked to do so by a device-specific function.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Duplex mode mismatches
Number of times a potential duplex mode mismatch was detected by checking for transmit and receive errors.
- Rescheduled forks (too long in fork)
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.
- PHY register read/write errors
Number of errors reading or writing a PHY register.
- Standard buffer size (bytes)
Size of the standard receive buffers. The device allows packets up to 1518 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes).
- Standard packet size (bytes)
This is the Ethernet packet size (1518 bytes).
- Jumbo buffer size (bytes)
Size of the jumbo receive buffers. The device allows packets up to 16 384 bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes). However, the driver limits the packet size to 8192 bytes, so the buffer size is 8192 plus 640 bytes of overhead (rounded up to the next 64-byte boundary).
- Jumbo packet size (bytes)
This is the jumbo packet size (8192 bytes).
- Requested link settings
Speed and duplex mode requested by a user.
- Current link settings
Current link state.
- Current link up timer
Current value of the one-second timer that waits for the link to come back before resetting the device to free pending transmit requests.
- Driver flags
Driver flags.
- Driver state
Current driver state, as follows:
- 0 – Driver state is undefined.
- 1 – Driver state is resetting.
- 2 – Driver is running, but the link is down. Completing transmits with error status.
- 4 – Driver is running, and the link is up. Processing transmits and receives.
- 8 – Device is not usable.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- DMA width (bits)
Device determines whether it is installed in a 32-bit or 64-bit PCI bus and displays the result.
- Bus speed (MHz)
Device determines whether it is installed 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 displays the result.
- Bus type
Device determines whether it is installed in a PCI or PCI-X bus and displays the result.
- Interrupt delay value
Minimum delay between interrupts, in units of 256 nanoseconds.
- Transmit descriptor threshold
Number of descriptors that the chip will accumulate before writing them back.
- Transmit interrupt delay (μs)
Amount of delay after transmit completion that an interrupt is generated.
- Receive interrupt delay (μs)
Amount of delay after receive completion that an interrupt is generated.
- Transmit time limit
Transmit time limit (in seconds) after which a timeout is declared.
- Timer routine interval
Resolution of the transmit timer (the real timeout is limit + interval).
Time Stamps
- Current uptime
Current system uptime.
- Last reset
Last time the device was reset.
- Last link up
Last time a link up transition occurred.
- Last link down
Last time a link down transition occurred.
- Total link uptime
Total time the link has been up.
- Total link downtime
Total time the link has been down.
- Last transmit timeout
Time of the last transmit timeout.
- Last soft error
Time of the last soft error.
- Last duplex mode mismatch reported
Time of the last duplex mode mismatch reported.
- Previous CRC or late collision error
Time of the last CRC or late collision error recorded.
Receive Buffers
- Minimum buffers requested
Minimum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current minimum limit".
- Maximum buffers requested
Maximum number of receive buffers as set by default or by management request (SETMODE or LANCP command). This is used to determine the "Current maximum limit".
- Current minimum limit
Minimum number of receive buffers as determined by the driver and by management request, "Minimum buffers requested". The driver will not allow the number of receive buffers in its receive queues to drop below this value. This does not include receive buffers transferred to applications (and not yet returned).
- Current maximum limit
Maximum number of receive buffers as determined by the driver and by management request, "Maximum buffers requested". The driver will deallocate receive buffers until the number allocated does not exceed this maximum. When applications return receive buffers, the number may exceed this maximum, at which point they are deallocated. Note that the driver allows this maximum to be exceeded slightly to limit allocation and deallocation activity. See "Target number of buffers maximum" below.
- Current number of buffers
Current number of receive buffers owned by the driver.
- Target number of buffers
Desired number of receive buffers. As receive activity does not result in lost packets, this number is gradually decreased toward the "Current minimum limit". If packets are lost, this number is dramatically increased toward the "Current maximum limit". When the driver allocates receive buffers, it allocates them until reaching this target number.
- Target number of buffers maximum
Maximum desired number of receive buffers. When an application returns a buffer to the driver, if the current number does not exceed this target maximum, the buffer is kept by the driver. Otherwise, it is deallocated.
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and chip, the driver records the time that each transmit buffer is given to the chip. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
Statistics Block
- CRC errors
Number of packets received with CRC errors that are an integral number of bytes long. These packets are discarded and are counted by the device.
- Alignment errors
Number of packets received with CRC errors that are not an integral number of bytes long. These packets are discarded and are counted by the device.
- Symbol errors
Number of symbol errors detected. These occur on fiber NICs only.
- Receive errors
Number of packets received with error status.
- Missed packets count
Number of packets missed because the receive FIFO had insufficient space to store incoming packets, either because too few buffers were provided by the driver or because there was insufficient bandwidth on the PCI bus.
- Single collision count
Number of successfully transmitted packets that encountered exactly one collision during transmission (successful after retransmit). These occur in half-duplex mode only.
- Excessive collision count
Number of transmits that failed because of excessive collisions. These occur in half-duplex mode only.
- Multiple collision count
Number of successfully transmitted packets that encountered more than one collision during transmission (successful after multiple retransmits). These occur in half-duplex mode only.
- Late collision count
Number of times a collision was detected later than 512 bit-times into the transmission of a packet. The transmit fails. These occur in half-duplex mode only.
- Collision count
Total number of collisions that are not late collisions seen by the transmitter.
- Defer count
Number of successful transmits that were delayed because the medium was busy. These occur in half-duplex mode only.
- XMT – No CRS
Number of packet transmissions in which the carrier signal was lost shortly after the start of transmission. These occur in UTP, full-duplex mode only.
- Sequence errors
Number of sequence errors detected where the frame delimiter symbols were seen in an illegal sequence. These occur on fiber NICs only.
- Carrier extension errors
Number of packets received in which a carrier extension error was detected.
- Receive length errors
Number of packets shorter than 64 bytes or longer than 16 384 bytes.
- XON receive count
Number of valid XON packets received.
- XON transmit count
Number of XON packets transmitted.
- XOFF receive count
Number of valid XOFF packets received.
- XOFF transmit count
Number of XOFF packets transmitted.
- FC Receive Unsupported count
Number of unsupported flow control frames received.
- Packets received (64 bytes)
Packets received (65–127 bytes)
Packets received (128–255 bytes)
Packets received (256–511 bytes)
Packets received (512–1023 bytes)
Packets received (1024... bytes) Number of packets of this size received.
- Good packets received
Number of good packets received of any legal length.
- Broadcast packets received
Number of good broadcast packets received.
- Multicast packets received
Number of good multicast packets received.
- Good packets transmitted
Number of good packets transmitted.
- Good octets received
Number of good bytes received.
- Good octets transmitted
Number of good bytes transmitted.
- No receive buffer count
Number of packets received where there were no available buffers in host memory. The packets are still received as long a there is sufficient space in the receive FIFO and the driver eventually provides more buffers.
- Receive undersize count
Number of good packets received that were less than 64 bytes in length.
- Receive fragment count
Number of packets received with a CRC error that were less than 64 bytes in length.
- Receive oversize count
Number of good packets received that were larger than the maximum packet size.
- Receive jabber count
Number of packets received with a CRC error that were larger than the maximum packet size.
- Management packets received
Number of management packets received.
- Management packets dropped
Number of management packets received but lost because the management receive FIFO was full or the packet was longer than 200 bytes.
- Management packets transmitted
Number of management packets sent.
- Total octets received
Total number of bytes received, regardless of errors or type of packet.
- Total octets transmitted
Total number of bytes transmitted, regardless of errors or type of packet.
- Total packets received
Total number of packets received, regardless of errors or type of packet.
- Total packets transmitted
Total number of packets transmitted, regardless of errors or type of packet.
- Packets transmitted (64 bytes)
Packets transmitted (65–127 bytes)
Packets transmitted (128–255 bytes)
Packets transmitted (256–511 bytes)
Packets transmitted (512–1023 bytes)
Packets transmitted (1024... bytes) Number of packets of this size transmitted.
- Multicast packets transmitted
Number of multicast packets transmitted.
- Broadcast packets transmitted
Number of broadcast packets transmitted.
- TCP segmentation xmt count
Number of TCP segmentation offload transmissions.
- TCP segmentation xmt fail
Number of TCP segmentation offload transmissions that failed to transmit all of the data.
- Driver Messages
Console messages issued by the driver.
8.2. Intel 1Gb Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the Intel 1Gb driver.
While some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the chip using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EIA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EIA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the chip, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="FXMT",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is limited to the range 2–40. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="DXMT",VALUE=delayvalue)
Change the interrupt mitigation delay on transmit completion value, the "Transmit interrupt delay (μs)" value. This value is in microseconds, limited to 1000. If zero, the delay is disabled.
- DEVICE_SPECIFIC=(FUNCTION="DRCV",VALUE=delayvalue)
Change the interrupt mitigation delay on receive completion value, the "Receive interrupt delay (μs)" value. This value is in microseconds, limited to 1000. If zero, the delay is disabled.
- DEVICE_SPECIFIC=(FUNCTION="DINT",VALUE=delayvalue)
Change the interrupt delay value. The value is in microseconds, limited to 1000. If zero, the delay is disabled.
- DEVICE_SPECIFIC=FUNCTION="DMIG"
(8254x and 82571 Devices Only) Disable interrupt mitigation. Note that the Transmit Interrupt Delay Value (TIDV) register is set to the minimum value of 1 (specifications state that it cannot be set to 0).
This is used for performance testing when it is desirable to get an interrupt immediately upon transmit and receive completion.
- DEVICE_SPECIFIC=(FUNCTION="FLOW",VALUE=value)
Disable flow control (if value is zero) or enable flow control (if value is nonzero).
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=FUNCTION="FCRC"
Send the next packet without a valid CRC.
This is used to generate CRC errors for test purposes.
- DEVICE_SPECIFIC=(FUNCTION="RBAD",VALUE=value)
If value is zero, the chip will discard bad received packets. If value is nonzero, the bad packets will be received and discarded by the driver. This allows the packets to be traced and inspected.
- DEVICE_SPECIFIC=FUNCTION="CVME"
DEVICE_SPECIFIC=FUNCTION="SVME" IEEE VLAN Mode Enable (VME) bit set/clear. If clear, the VLAN tag will not be stripped from the packet so it can be seen in the receive buffer.
- DEVICE_SPECIFIC=(FUNCTION="RCRC",VALUE=(low32bits,high32bits)
Set receive validation CRC check counter. It can be set from 0 to 0xFFFFFFFFFFFFFFFE. 0xFFFFFFFFFFFFFFFF is used to indicate that the next CRC validation should fail, so we can verify what happens after a failure.
Some devices had a manufacturing issue that the driver detects by enabling CRC validation of the first 50 000 received packets. If a receive packet is declared good by the chip, but the driver CRC validation fails, the device is marked offline and unusable.
This allows the number of CRC validations to be changed.
- DEVICE_SPECIFIC=FUNCTION="ARST"
Restart auto-negotiation.
This is used for link handling testing.
- DEVICE_SPECIFIC=FUNCTION="FLSC"
Force a link state change interrupt.
This is used for link handling testing.
- DEVICE_SPECIFIC=(FUNCTION="LSCI",VALUE=value)
If zero, disables link state change interrupts.
If nonzero, enables link state change interrupts.
This is used for link handling testing. Note that whether or not this function is disabled, the driver still does a periodic link state check. As such, it would detect a state change, albeit not immediately.
Chapter 9. Neterion XFRAME 10Gb Ethernet
The Neterion XFRAME devices are:
|
HP Part # |
Media |
Vendor ID |
Device ID |
SubSystem Vendor ID |
SubSystem ID |
|---|---|---|---|---|---|
|
AB287A |
850nm |
17D5 |
5831 |
12D5 |
103C |
|
AD385A |
850nm |
17D5 |
5832 |
1337 |
103C |
|
Other |
850nm |
17D5 |
5832 |
6020 |
Other |
The driver is SYS$EWXFRAME.EXE (IA-64).
9.1. XFRAME 10Gb Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EWA displays
the entire set of internal counters maintained by the XFRAME 10Gb driver. Some
counters are special debug counters. These are not displayed unless the additional
qualifier /DEBUG is specified. Counters that are zero are not
displayed unless the additional qualifier /ZERO is
specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EIA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the XFRAME device.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EWAcommand in the quadword driver version field.- Device interrupts
Number of times the driver interrupt service routine was called.
- Link transitions
Number of link transitions seen by the driver.
- Device resets
Number of times the device was reset.
- First user initializations
Number of times a user started with no other users initialized (initialization requires more work than if the user is not the first user).
- Unit inits (not using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were not used to map the device data structures.
- Unit inits (using map registers)
Number of unit initializations executed; since unit initialization is only executed once, this counter will be 1 if map registers were used to map the device data structures.
- User start/change/stop requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O with error status.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Transmit copy failures
Number of transmit failures needing a transmit copy, but memory could not be allocated for the transmit buffer.
- Jumbo transmits issued
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- Transmits issued (using map registers)
Number of transmit requests that were described to the device using map registers because part of the request existed in memory outside the DMA window.
- Jumbo receives issued
Number of jumbo receive buffers allocated and assigned to the device.
- Receives issued (using map registers)
Number of receive buffers that were 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.
- Receives discarded (bad frame)
Number of receive packets discarded by the driver due to receive error. By default, the chip does not deliver damaged receive packets to the driver, but can be asked to do so by a device-specific function.
- Rescheduled forks (too long in fork)
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.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Buffer size (bytes)
Size of the receive buffers. The device allows packets up to 1518 (or jumbo size) bytes (including header and CRC), plus the VMS receive buffer structure overhead (640 bytes).
- Packet size (bytes)
This is the Ethernet packet size (1518 or jumbo frame size bytes).
- Receive mapping boundary
Mapping value for receive frames, the maximum value of BOFF (Buffer Offset) that can result in the need for only two map registers. If BOFF is any larger, the buffer spills into a third page (displayed with the
/DEBUGqualifier).- Current link state
Current link state.
- Driver flags
Driver flags including the following bits:
Promiscuous – Promiscuous mode enabled.
All_Multicast – All multicast mode enabled.
Jumbo_Frames – Jumbo packets enabled.
Fiber – Fiber PHY found.
850nm – Multimode Fiber (MMF).
1300nm – Single-mode Fiber (SMF).
PCI-X 266MHz capable – Device capable of operating at 266 MHz.
Bugcheck_XTMO – Bugcheck on transmit timeout.
Bugcheck_LongXmt – Bugcheck on a long transmit.
Bugcheck_LongFork – Bugcheck on a long fork.
All_Messages_Enabled – Display all messages.
Receive_Bad_Frames – Receive bad frames enabled.
AdapterEnableDone – Adapter initialization complete.
LinkChangeIntEna – Link state change interrupts enabled.
ForcePromiscuous – Promiscuous mode enabled even if not requested by a user.
Disable_Interrupt_Mitigation – Interrupt mitigation disabled.
PCI-X 266MHz actual – Device operating at 266 MHz.
PCI 33MHz – Device operating at 33 MHz.
PeriodicReset – Periodically reset the device.
- Driver state
Current driver state, as follows:
- 0 – Driver state is undefined.
- 1 – Driver state is resetting.
- 2 – Driver is running, but the link is down. Completing transmits with error status.
- 4 – Driver is running, and the link is up. Processing transmits and receives.
- 8 – Device is not usable.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Interrupt Mitigation data
Transmit traffic, % utilization / frame count, range 0 percent, count
Transmit traffic, % utilization / frame count, range 1 percent, count
Transmit traffic, % utilization / frame count, range 2 percent, count
Transmit traffic, % utilization / frame count, range 3 percent, count
Receive traffic, % utilization / frame count, range 0 percent, count
Receive traffic, % utilization / frame count, range 1 percent, count
Receive traffic, % utilization / frame count, range 2 percent, count
Receive traffic, % utilization / frame count, range 3 percent, count
- Miscellaneous driver data
Miscellaneous fields (displayed with the
/DEBUGqualifier; intended for use by driver developers):Driver delay (μs)
Device quiesce time (μs)
Quiesce operations
Performance monitor running
Performance buffer S2 VA
- LSB size
Size of the driver structure LAN Station Block (LSB) in bytes (displayed with the
/DEBUGqualifier).- Transmit Rings, Receive Rings, Statistics addresses (debug)
Addresses of transmit, receive, and mailbox ring structures for the following (displayed with the
/DEBUGqualifier):Map registers allocated
Transmit time limit
Timer routine interval
Statistics virtual address (VA)
Receive rings VA
Transmit rings VA
EEPROM data VA
- Time Stamps
These fields provide timer information, the transmit timeout value, the periodic timer frequency, and time stamps for link transitions and errors.
Current uptime
Last reset
Last link up
Last link down
Total link uptime
Total link downtime
Last transmit timeout
Last soft error
- PCI Config Registers (debug)
PCI config and Base Address Register (BAR) registers (displayed with the
/DEBUGqualifier):PCI_ID_REG
PCI_CMD_STATUS
PCI_REVISION_ID
PCI_CACHE_LINE_SIZE
PCI_BAR0
PCI_BAR1
SUBSYSTEM_ID
EXPANSION_ROM
PCI_INT_LINE
PCIX_COMMAND
- DMA Window (debug)
DMA window address information (displayed with the
/DEBUGqualifier):DMA window base address (PCI bus space)
DMA window base address (memory space)
DMA window base offset (PCI bus space)
DMA window size
DMA window usable size
DMA window maximum physical address
DMA window base PFN
DMA window maximum PFN
DMA monster window offset
- Receive Buffers
Receive buffer information (displayed with the
/DEBUGqualifier):Minimum buffers requested
Maximum buffers requested
Current minimum limit
Current maximum limit
Current buffers
Target buffers
Target buffers maximum
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the device 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the device are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and XFRAME, the driver records the time that each transmit buffer is given to the device. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
- Receive completion time
To help understand the operation of the system, driver, and XFRAME, the driver records the time that each receive buffer is transferred to an application. When the application returns, the driver calculates the elapsed time, creating a histogram of receive completion times from 10 to 150 milliseconds.
Statistics Block
- Statistics – MAC Transmit
802.3: FramesTransmittedOk
802.3: OctetsTransmittedOk
802.3: FramesLostDueToIncMACXmitError
802.3: MulticastFramesXmittedOk
802.3: BroadcastFramesXmittedOk
802.3: PauseMacCtrlFramesTransmitted
MIB-II: ifOutOctets
MIB-II: ifOutUcastPkts
MIB-II: ifOutNUcastPkts
MIB-II: ifOutErrors
RMON-2: etherStatsOctets
XFRAMEII: Frames transmitted with VLAN tag
- Statistics – MAC Receive
802.3: FramesReceivedOk
802.3: OctetsReceivedOk
802.3: FrameCheckSequenceErrors
802.3: FramesLostDueToIntMACRcvError
802.3: MulticastFramesReceivedOk
802.3: BroadcastFramesReceivedOk
802.3: InRangeLengthErrors
802.3: OutOfRangeLengthField
802.3: FrameTooLongErrors
802.3: PauseMACCtrlFramesReceived
802.3: UnsupportedOpcodesReceived, MACControlFramesReceived
MIB-II: ifInOctets
MIB-II: ifInUcastPkts
MIB-II: ifInNUcastPkts
MIB-II: ifInErrors
RMON-2: etherStatsDropEvents
RMON-2: etherStatsOctets
RMON-2: etherStatsPkts
RMON-2: etherStatsUndersizePkts
RMON-2: etherStatsOversizePkts
RMON-2: etherStatsFragments
RMON-2: etherStatsJabbers
RMON-2: etherStatsPkts64Octets
RMON-2: etherStatsPkts65to127Octets
RMON-2: etherStatsPkts128to255Octets
RMON-2: etherStatsPkts256to511Octets
RMON-2: etherStatsPkts512to1023Octets
RMON-2: etherStatsPkts1024to1518Octets
XFRAMEII: Received MAC frames with length 1519–4095
XFRAMEII: Received MAC frames with length 4096–8191
XFRAMEII: Received MAC frames with length 8191...
XFRAMEII: Received MAC frames with length (including FCS)
XFRAMEII: Received jumbo frames
XFRAMEII: Received jumbo frames with bad FCS, i.e. jabbers
XFRAMEII: Received jumbo frames longer than maximum
XFRAMEII: Frames received with VLAN tag
XFRAMEII: Received frames discarded because of invalid frame length
XFRAMEII: Received frames discarded because of bad FCS
XFRAMEII: Received pause frames discarded
XFRAMEII: Received frames discarded because of invalid DA
XFRAMEII: Received frames discarded because of WOL (Wake-on-LAN)
XFRAMEII: Received frames discarded because target queue full
XFRAMEII: Received frames discarded because of ingress mem full
XFRAMEII: Received frames discarded because of RED (Receive Error Detected)
XFRAMEII: Link faults
Reserved
802.3: SymbolErrorDuringCarrier
Frames that passed through queue 0 of receive buffer
Times receive buffer queue 0 has filled up
Pause quanta that the MAC has been in paused state
Unexpected control characters during normal data transmission
Unexpected or misplaced control characters outside of normal data transmission
- Statistics – PCI/PCI-X Read Transaction
Total read requests made by the device
Requests made for a new read sequence
Retry responses receive on the start of the new read sequences
Retry responses received for read requests
Read requests accepted by target after a write terminated with retry
- Statistics – PCI/PCI-X Write Transaction
Total write requests made by the device
Requests made for a new write sequence
Retry responses receive on the start of the new write sequences
Retry responses received for write requests
Target initiated disconnects on write transactions
Write requests accepted by target after a read terminated with retry
- Statistics – DMA Transaction
Host write transactions to Tx Pointer FIFOs
Transmit Descriptor (TxD) read requests
Transmit Descriptor (TxD) write requests
Receive Descriptor (RxD) read requests
Receive Descriptor (RxD) write requests
Transmit frame read requests
Receive frame read requests
- Debug Data (device register contents)
Device register contents, either 32 or 64-bits (displayed with the
/DEBUGqualifier):0004 PCI_CMD_STATUS
0062 PCI-X_COMMAND
0064 PCI-X_STATUS
GENERAL_INT_STATUS
GENERAL_INT_MASK
ADAPTER_STATUS
ADAPTER_CONTROL
SERR_SOURCE
PIC_INT_STATUS
TXPIC_INT_REG
RXPIC_INT_REG
FLSH_INT_REG
MDIO_INT_REG
IIC_INT_REG
GPIO_INT_REG
PIC_CONTROL
SWAPPER_CTRL
TXDMA_INT_STATUS
PFC_ERR_REG
TDA_ERR_REG
PCC_ERR_REG
TTI_ERR_REG
LSO_ERR_REG
TPA_ERR_REG
SM_ERR_REG
RXDMA_INT_STATUS
RDA_ERR_REG
RC_ERR_REG
PRC_PCIX_ERR_REG
RPA_ERR_REG
RTI_ERR_REG
MAC_INT_STATUS
MAC_TMAC_ERR_REG
MAC_RMAC_ERR_REG
MAC_CFG
RMAC_ERR_CFG
MC_INT_STATUS
MC_ERR_REG
XGXS_INT_STATUS
XGXS_TXGXS_ERR_REG
XGXS_RXGXS_ERR_REG
XGXS_CFG
XGXS_STATUS
PCI_MODE
RCSR (Receive Control and Status Register) contents
ISR (Interrupt Status Register) undefined state
- Driver Messages
Console messages issued by the driver.
9.2. XFRAME 10Gb Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the XFRAME 10Gb driver.
While some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="MAPR"
Force all transmit and receive buffers to be described to the chip using map registers.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="RCOR",VALUE=pty)
DEVICE_SPECIFIC=(FUNCTION="XCOR",VALUE=pty) Corrupt a receive or transmit packet. When this function is completed, the protocol type is specified, and if it matches on a transmit or receive packet, the next packet seen is corrupted by changing the last bit in the VCRP or CXB, XORing it with a 1. The protocol type is then cleared so the corruption is not done again. The corruption is only checked when transmit or receive packet data tracing is being done (in the trace routine), so there is no performance hit for checking each packet to verify if it should be corrupted.
The following example shows how to corrupt a PEDRIVER transmit packet:
$ MCR LANCP SET DEVICE/TRACE EWA $ MCR LANCP SET DEVICE/DEVICE_SPECIFIC=(FUNCTION="XCOR", VALUE=%x760) EWA
- DEVICE_SPECIFIC=(FUNCTION="RBAD",VALUE=value)
If value is zero, the chip will discard bad received packets. If value is nonzero, the bad packets will be received and discarded by the driver. This allows the packets to be traced and inspected.
- DEVICE_SPECIFIC=(FUNCTION="FLOW",VALUE=value)
Disable flow control (if value is zero) or enable flow control (if value is nonzero).
- DEVICE_SPECIFIC=(FUNCTION="XTMO",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is not range checked. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EWA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=(FUNCTION="ALLM",VALUE=setting)
Change the setting of the driver flag "all messages". If the "all messages" flag is set the driver displays all console messages. The default setting is bit 31 of the LAN_FLAGS system parameter. This function allows the "all messages" setting to be set for an individual device rather than all LAN devices on the system.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=FUNCTION="STOP"
Stop the chip, thereby inducing a transmit timeout on the next transmit request.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="XDEL",VALUE=timevalue)
Delay issuing the next transmit request for the time specified in 10-millisecond units. A maximum of 2000 (20 seconds) is allowed.
This function is useful for investigating application behavior when a transmit request is delayed.
- DEVICE_SPECIFIC=(FUNCTION="XTOB",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a transmit timeout occurs. If 0 (disable), transmit timeout results in a device reset.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="XLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long transmit occurs. If 0 (disable), a long transmit completion is counted.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="FLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long fork occurs. If 0 (disable), a long time to run a fork process is recorded in the counters.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="LOOP",VALUE=loopvalue)
Specify loopvalue to enable (1) or disable (0) loopback mode.
This is useful in test scenarios to run an application in loopback mode, where for standard use the application would not allow selection of loopback mode.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="OMSG"
Console messages are displayed by the driver during initialization, auto-negotiation, and link handling. However, the driver limits the total number of messages displayed. This function resets the count, allowing additional messages to be displayed.
- DEVICE_SPECIFIC=(FUNCTION="WCSR",VALUE=(registeraddress,value)
Write the device register specified with the value given.
- DEVICE_SPECIFIC=(FUNCTION="RCSR",VALUE=(registeraddress)
Read the device register specified. The value is returned in the internal counters.
- DEVICE_SPECIFIC=(FUNCTION="TTIN",VALUE=(range,utilization,fcvalue))
DEVICE_SPECIFIC=(FUNCTION="RTIN",VALUE=(range,utilization,fcvalue)) Sets the transmit and receive traffic interrupt values, which are in three ranges (0, 1, 2) where the line rate utilization and the frame count values specify when transmit interrupts should be generated.
- DEVICE_SPECIFIC=(FUNCTION="RVLA",VALUE=setting)
If clear (0), do not strip the VLAN tag from the packet, so it can be seen in the receive buffer. If set (1), strip the tag from the packet. The default is 1.
Chapter 10. Broadcom BCM57711 10Gb Ethernet
The Broadcom BCM57711 10Gb devices are:
|
Name |
Part |
Phy |
Interface |
|---|---|---|---|
|
Krypton |
NC532m |
BCM8073 |
10GBE-KR |
|
Kenny |
AM225A |
BCM8726 |
10GBE-SR |
|
Kenny |
AM232A |
BCM8726 |
10GBE-LR |
|
Kenny |
AM233A |
BCM8726 |
10GBE-CU |
|
Kauai LOM |
LOM |
BCM8073 |
10GBE-KR |
|
Buccaneer LOM |
LOM |
BCM8073 |
10GBE-KR |
The driver is SYS$EW57711.EXE, SYS$ER57711.EXE (IA-64).
10.1. Broadcom BCM57711 10Gb Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EWA displays
the entire set of internal counters maintained by the BCM57711 driver. Some counters
are special debug counters. These are not displayed unless the additional qualifier
/DEBUG is specified. Counters that are zero are not displayed
unless the additional qualifier /ZERO is specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EWA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the Broadcom BCM57711 10Gb device.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EWAcommand in the quadword driver version field.- Device interrupts
Number of times the driver interrupt service routine was called.
- Spurious interrupts
Number of times the driver interrupt service routine was called when the driver was not running (for example, in the "undefined" state).
- Invalid interrupts
Number of times the driver interrupt service routine was called but the interrupt was not valid.
- Link transitions
Number of link transitions seen by the driver.
- Device resets
Number of times the device was reset.
- Driver initializations
Number of times the driver went through its initialization procedure.
- User start/change/stop requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O with error status.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Transmit copy failures
Number of transmit failures needing a transmit copy, but memory could not be allocated for the transmit buffer.
- Jumbo transmits issued
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- Jumbo receives issued
Number of jumbo receive buffers allocated and assigned to the device.
- Receives discarded (bad frame)
Number of receive packets discarded by the driver due to receive error. By default, the chip does not deliver damaged receive packets to the driver, but can be asked to do so by a device-specific function.
- Rescheduled forks (too long in fork)
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.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Current Link state
Current link state.
- Requested Link state
Current link state requested.
- Driver flags
Driver flags including the following bits:
Promiscuous – Promiscuous mode enabled.
All_Multicast – All multicast mode enabled.
Jumbo_Frames – Jumbo packets enabled.
RCV_Fork – A fork to process receive completion is requested.
XMT_Fork – A fork to process transmit completion is requested.
Bugcheck_XTMO – Bugcheck on transmit timeout.
Bugcheck_LongXmt – Bugcheck on a long transmit.
Bugcheck_LongFork – Bugcheck on a long fork.
PeriodicReset – Periodically reset the device.
- Driver state
Current driver state, as follows:
- 0 – Driver state is undefined.
- 1 – Driver state is resetting.
- 2 – Driver is running, but the link is down. Completing transmits with error status.
- 4 – Driver is running, and the link is up. Processing transmits and receives.
- 8 – Device is not usable.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Miscellaneous fields
Miscellaneous fields (many of which are displayed with the
/DEBUGqualifier):Interrupt Status
Port Number
Function Number
XRING VA
XRING_EXT VA
RRING VA
RRING_EXT VA
RRING_COMPL VA
Slow Path Ctx VA
Slow Path Ring VA
Status Block VA
Default Status Block VA
Doorbell VA
Xmt count
Xmt packet index
XMT compl. sw index
XMT compl. hw index
RXD (Receive Descriptor) hw put index
RCQE (Receive Completion Queue Entry) hw put index
RCQE hw get index
RCQE sw get index
CSTORM index
USTORM index
Client id
- Time Stamps
These fields provide timer information, the transmit timeout value, the periodic timer frequency, and time stamps for link transitions and errors.
Transmit time limit
Timer routine interval
Last link up
Last link down
Total link uptime
Total link downtime
Last transmit timeout
Last soft error
- PCI Config Registers (debug)
PCI config and BAR registers (displayed with the
/DEBUGqualifier):PCI_ID_REG
PCI_CMD_STATUS
PCI_REVISION_ID
PCI_LATENCY_TIMER
PCI_BAR0
PCI_BAR2
BAR0 Size
BAR2 Size
SUBSYSTEM_ID
PCI_CACHE_LINE_SIZE
- DMA Window (debug)
DMA window address information (displayed with the
/DEBUGqualifier):DMA window base address (PCI bus space)
DMA window base address (memory space)
DMA window base offset (PCI bus space)
DMA window size
DMA window usable size
DMA window maximum physical address
DMA window base PFN
DMA window maximum PFN
DMA monster window offset
- Receive Buffers
Receive buffer information:
Minimum buffers requested
Maximum buffers requested
Current minimum limit
Current maximum limit
Current buffers
Target buffers
Target buffers maximum
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the BCM57711 chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the BCM57711 chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and BCM57711 chip, the driver records the time that each transmit buffer is given to the device. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
- Receive completion time
To help understand the operation of the system, driver, and BCM57711 chip, the driver records the time that each receive buffer is transferred to an application. When the application returns, the driver calculates the elapsed time, creating a histogram of receive completion times from 10 to 150 milliseconds.
- LSB extension fields
Maximum packet size
Port Number
Function Number
RCV buffer size
Chip revision
Link state
IfAdmin state
IfOper state
Link up wait ctr
Validity map
ISCP/LSB VA (VA of device context)
Slowpath VA
Slowpath PA
Slowpath interrupts
Spurious Slowpath interrupts
Link interrupts
Link bounces
Shmem base address
Shmem2 base address
Firmware sequence number
Shared configuration data
External link up
Link status register
Hardware config.
Hardware config2.
Bootcode revision
Board type
Lane config.
External PHY config.
External PHY rev.
External ROM2 ver.
10gig mode
Firmware return code
Firmware state
PHY flags
PHY address
SER lane
Link config.
Serdes config.
Speed cap mask
Default SBLK VA
Default SBLK PA
RX lane swap
TX lane swap
Autoneg
Requested Autoneg
Medium type
SW Config.
Speed
Requested speed mask
Speed mask
Duplex
Requested Duplex
Advertising
Invalid speed
MIN_BW 0
MIN_BW 1
MIN_BW 2
MIN_BW 3
MAX_BW 0
MAX_BW 1
MAX_BW 2
MAX_BW 3
AEU mask
SPQ max
SPQ put idx
SPQ get idx
SPQ PA
SPQ VA
SPQ avail
ATTN idx
CST idx
UST idx
XST idx
TST idx
ATTN state
Supported Loopback mode
Requested flow control
Flow control
Outer VLAN
Multi-function mode
Multi-function config.
Primary function flag
IEEE fc
Function link status
DCC (Dynamic Control Channel) driver status
DCC ifadmin state
Last DCC event
DCC events
DCC enable events
DCC disable event
DCC adjust bw events
DCC events failures
Gunzip PA
Gunzip VA
DMAE (Direct Memory Access Engine) ready flag
Port stx
Function stx
FW pulse write seq
Stats state
Stats update
Executer idx
Stats pending
Stats counter
Multimode
WSUM
RX mode
Cap msix offset
Vectbl offset
MSI-X count
GRC (Global Register Controller) dump buffer VA
GRC dump buffer size
Fatal init
MII (Media Independent Interface) control
Link chk wrkaround
Link reset wrkaround
Anal_trigger
VN_WSUM
- Driver Messages
Console messages issued by the driver.
10.2. Broadcom BCM57711 10Gb Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the BCM57711 10Gb driver.
While some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EBA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EBA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="XTOB",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a transmit timeout occurs. If 0 (disable), transmit timeout results in a device reset.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="XLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long transmit occurs. If 0 (disable), a long transmit completion is counted.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="FLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long fork occurs. If 0 (disable), a long time to run a fork process is recorded in the counters.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=FUNCTION="OMSG"
Console messages are displayed by the driver during initialization, auto-negotiation, and link handling. However, the driver limits the total number of messages displayed. This function resets the count, allowing additional messages to be displayed.
- DEVICE_SPECIFIC=(FUNCTION="XTMO",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is not range checked. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="XDEL",VALUE=timevalue)
Delay issuing the next transmit request for the time specified in 10-millisecond units. A maximum of 2000 (20 seconds) is allowed.
This function is useful for investigating application behavior when a transmit request is delayed.
Chapter 11. Emulex BE3 10Gb Ethernet
The Emulex BE 10Gb devices are:
|
Device |
Form Factor |
Chip |
Function |
PCI IDs |
Media |
|---|---|---|---|---|---|
|
NC550 |
Standup |
BE2 |
NIC |
19A2 0700 103C 174B |
SR LR LRM DAC |
|
NC550SFP |
Standup |
BE2 |
NIC |
19A2 0700 103C 1747 |
SR LR LRM DAC |
|
NC550m |
Mezzanine |
BE2 |
NIC |
19A2 0700 103C 1746 |
KR |
|
NC551m |
Mezzanine |
BE2 |
NIC |
19A2 0700 103C 174A |
KR |
|
NC551i |
LOM |
BE2 |
NIC |
19A2 0702 103C 3314 |
KR |
|
NC552 |
Standup |
BE3 |
NIC |
19A2 0710 103C 3344 |
SR LR LRM DAC |
|
AT111A |
Standup |
BE3 |
NIC |
19A2 0710 103C 17A3 |
SR LR LRM DAC |
|
NC552SFP |
Standup |
BE3 |
NIC |
19A2 0710 103C 3340 |
SR LR LRM DAC |
|
AT118A |
Standup |
BE3 |
NIC |
19A2 0710 103C 17A6 |
SR LR LRM DAC |
|
NC552m |
Mezzanine |
BE3 |
NIC |
19A2 0710 103C 3341 |
KR |
|
NC553m |
Mezzanine |
BE3 |
NIC |
19A2 0710 103C 3345 |
KR |
|
AT093A |
Standup |
BE3 |
NIC |
19A2 0710 103C 3391 |
SR LR LRM DAC |
|
AT094A |
Standup |
BE3 |
NIC |
19A2 0710 103C 3392 |
SR LR LRM DAC |
|
NC553i |
LOM |
BE3 |
NIC |
19A2 0710 103C 177B |
KR |
|
Device |
NIC |
FC |
Marketing Description |
|---|---|---|---|
|
NC550 |
Y |
Y |
HP StorageWorks NC550 Dual Port Converged Network Adapter |
|
NC550SFP |
Y |
N |
HP NC550SFP Dual Port 10GbE Server Adapter |
|
NC550m |
Y |
N |
HP NC550m Dual Port Flex-10 10GbE BL-c Adapter |
|
NC551m |
Y |
Y |
HP NC551m Dual Port FlexFabric 10Gb Converged Network Adapter |
|
NC551i |
Y |
Y |
HP NC551i Dual Port FlexFabric 10Gb Converged Network Adapter |
|
NC552 |
Y |
N |
HP NC552 2p 10GbE PCIe Adapter |
|
AT111A |
Y |
Y |
HP Integrity CN1100E Dual Port Converged Network Adapter |
|
NC552SFP |
Y |
N |
HP NC552SFP 10Gb 2-port Flex-10 Server Adapter |
|
AT118A |
Y |
N |
HP Integrity NC552SFP 2P 10GbE Adapter |
|
NC552m |
Y |
N |
HP NC552m 10Gb 2-port Flex-10 Server Adapter |
|
NC553m |
Y |
Y |
HP NC553m 10Gb 2-P Flex-10 Server Adapter |
|
AT093A |
Y |
Y |
HP AT093A PCIe 1P 8Gb FC and 1P 1/10GbE Adapter |
|
AT094A |
Y |
Y |
HP AT094A PCIe 2P 8Gb FC and 2P 1/10GbE Adapter |
|
NC553i |
Y |
Y |
HP Dual Port FlexFabric 10Gb BL8X0c i4 Embedded CNIC |
The driver is SYS$EWBE3.EXE (IA-64).
11.1. Emulex BE3 10Gb Internal Counters
The LANCP command SHOW DEVICE/INTERNAL_COUNTERS EBA displays
the entire set of internal counters maintained by the Emulex BE3 driver. Some
counters are special debug counters. These are not displayed unless the additional
qualifier /DEBUG is specified. Counters that are zero are not
displayed unless the additional qualifier /ZERO is
specified.
The LAN SDA extension also displays the complete set of internal counters with the
command LAN INTERNAL/DEVICE=EBA.
Note
The definitions of the following counters may change between versions of the driver.
Counters
- Device name
Name of the Emulex 10Gb device.
- Description
Full name of the device returned by the device firmware.
- Driver timestamp
Compilation timestamp of the driver.
- Driver version
Driver version numbered 1–n that is usually identical to the x-n ID displayed in the
ANALYZE/IMAGEcommand output for the driver image. It includes variant information, if applicable. The full driver version includes the target OpenVMS release and is displayed by the SDALAN/DEVICE=EBAcommand in the quadword driver version field.- Device interrupts
Number of times the driver interrupt service routine was called.
- Spurious interrupts
Number of times the driver interrupt service routine was called when the driver was not running (for example, in the "undefined" state).
- Link transitions
Number of link transitions seen by the driver.
- Device resets
Number of times the device was reset.
- PTE to PFN translations
Number of times a global page was encountered during a chained transmit request, causing the driver to convert an invalid PTE to a valid PFN.
- Transmits queued
Number of transmit requests queued because the link was not available or because too many transmit requests were already outstanding.
- Transmit timeouts
Number of times the driver has timed out a transmit, reset the device, and completed outstanding I/O with error status.
- Transmit errors (too few segments)
Number of transmit requests completed with error status (SS$_INCSEGTRA) because the application did not specify the transmit buffer completely.
- Transmit copies (too many segments)
Number of transmit requests that exceeded the maximum number of chain segments that the driver can handle; the driver then copied some of them to a temporary buffer so that it could transmit the packet.
- Transmit copy failures
Number of transmit failures needing a transmit copy, but memory could not be allocated for the transmit buffer.
- Jumbo transmits
Number of transmit requests with a packet length exceeding 1514 bytes (excluding CRC).
- CKO TCP transmits
Number of TCP transmit requests specifying checksum offload (CKO).
- CKO UDP transmits
Number of UDP transmit requests specifying CKO.
- CKO IP transmits
Number of IP transmit requests specifying CKO.
- TSO transmits
Number of TCP transmit requests specifying TCP segmentation offload (TSO).
- Jumbo receives
Number of jumbo receive buffers allocated and assigned to the device.
- Receives discarded (bad frame)
Number of receive packets discarded by the driver due to receive error. By default, the chip does not deliver damaged receive packets to the driver, but can be asked to do so by a device-specific function.
- CKO receives
Number of receive packets processed using hardware validated checksums.
- LRO receives
Number of receive packets processed using driver large receive offload (LRO) functionality, transferred to a user concatenated to reduce protocol overhead.
- Rescheduled forks (too long in fork)
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.
- User start/change/stop requests
Number of user startup and shutdown requests processed by the driver; this is typically one or two requests when a user starts up and one when a user stops.
- Soft errors
Number of times errors were recovered in the driver by resetting and reinitializing the device without notifying user applications.
- Transmit coalesce value (μs)
Transmit interrupts are generated every n "coalesce value" transmit completions, but no later than n "interrupt delay" microseconds after transmit completion.
- Receive coalesce value (μs)
Receive interrupts are generated every n "coalesce value" receive completions, but no more than n "interrupt delay" microseconds after receipt of a packet.
- Link state
Current link state.
- Requested Link state
Current link state requested.
- Driver flags
Driver flags including the following bits:
Promiscuous – Promiscuous mode enabled.
All_Multicast – All multicast mode enabled.
Jumbo_Frames – Jumbo packets enabled.
Bugcheck_XTMO – Bugcheck on transmit timeout.
Bugcheck_LongXmt – Bugcheck on a long transmit.
Bugcheck_LongFork – Bugcheck on a long fork.
PeriodicReset – Periodically reset the device.
DebugQnQ – Force QnQ? driver workaround on every transmit.
- Driver state
Current driver state, as follows:
- 0 – Driver state is undefined.
- 1 – Driver state is resetting.
- 2 – Driver is running, but the link is down. Completing transmits with error status.
- 4 – Driver is running, and the link is up. Processing transmits and receives.
- 8 – Device is not usable.
- LAN_FLAGS system parameter
Current value of the LAN_FLAGS system parameter.
- Port Number
Port number for this device; can be 0 or 1.
- Function Number
Function number for this device; can be 0, 1, 2, or 3 depending on device configuration.
- LSB size
Size of the driver structure LSB in bytes.
- Time Stamps
These fields provide timer information, the transmit timeout value, the periodic timer frequency, and time stamps for link transitions and errors.
Transmit time limit
Timer routine interval
Last link up
Last link down
Total link uptime
Total link downtime
Last transmit timeout
Last soft error
- TX, RX, MQ, queues, rings, BMBX (debug)
Addresses of transmit, receive, and mailbox ring structures for the following (displayed with the
/DEBUGqualifier):XRING
XRING_EXT
RRING_EXT
TXQ
TXCQ
TXEQ
TXQ_PA
TXCQ_PA
TXEQ_PA
XRING_EXT_PA
RRING
RXQ
RXCQ
RXEQ
RXQ_PA
RXCQ_PA
RXEQ_PA
MRING
MBQ
MBQ_PA
MBCQ_PA
BMBOX
BMBOX_PA
MBCQ
- PCI Config Registers (debug)
PCI config and BAR registers (displayed with the
/DEBUGqualifier):PCI_CFID
PCI_CFCR
PCI_CFRV
PCI_CFLT
PCI_BAR0
PCI_BAR2
PCI_BAR4
BAR0 size
BAR2 size
BAR4 size
SLI_INTF
SUBSYSTEM_ID
PCI_CACHE_LINE_SIZE
- DMA Window (debug)
DMA window address information (displayed with the
/DEBUGqualifier):DMA window base address (PCI bus space)
DMA window base address (memory space)
DMA window base offset (PCI bus space)
DMA window size
DMA window usable size
DMA window maximum physical address
DMA window base PFN
DMA window maximum PFN
DMA monster window offset
- Receive Buffers
Receive buffer information:
Minimum buffers requested
Maximum buffers requested
Current minimum limit
Current maximum limit
Current buffers
Target buffers
Target buffers maximum
- Fork Delay (after scheduled)
To help determine whether the buffering requirements of the driver and the BE3 chip 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 due to insufficient buffers to determine whether the buffering settings of the driver (minimum and maximum receive buffers) and the amount of buffering on the BE3 chip are sufficient for normal operation. If packets are being discarded, the buffering should be increased until the number of packets lost is minimal.
- Transmit Time
To help understand the operation of the system, driver, and BE3 chip, the driver records the time that each transmit buffer is given to the device. When the transmit completes, the driver calculates the elapsed time, creating a histogram of transmit times from 10 to 310 milliseconds.
- Receive completion time
To help understand the operation of the system, driver, and BE3 chip, the driver records the time that each receive buffer is transferred to an application. When the application returns, the driver calculates the elapsed time, creating a histogram of receive completion times from 10 to 150 milliseconds.
- Firmware information
Device firmware is initiated at power up and reset, getting to a firmware state where it is ready to accept commands. Commands are written to a device mailbox called the BMBX (boot mailbox) and other structures such as the CQ (Command Queue), CQE (Command Queue Entry), MQ (Mailbox Queue), and MQE (Mailbox Queue Entry).
These counters record the firmware version and timing of firmware ready and BMBX usage information. Some of these counters are only displayed if the
/DEBUGqualifier is included.Firmware version
Time of last wait for fw ready
Elapsed time for fw ready wait (last)
Elapsed time for fw ready wait (max)
Start time of fw ready wait (max)
func_wait_cnt (Monitors initialization time)
BMBX_OWNER
BMBX_LAST_OWNER
CMD_UNSUP_STATE_CNT
Last BMBX command opcode
Last BMBX command time
Last BMBX command status
BMBX command timeouts, cleared on reset
Max BMBX command timeouts
BMBX commands issued
BMBX not initially ready
Maximum time to allow for BMBX commands
BMBX command timeouts, not cleared on reset
CQE_INVALID
CMD_BAD_STATUS
CQE_BAD_STATUS
CQE_UNSUPPORTED_ATTRIB
MQE_UNAVAILABLE
MQ_REQUESTS
MQ_NOT_READY
MQ_BLOCKED
Last time MQE not available when needed
Last time MQ blocked
Last time MQ GET_STATS command issued
Last time MQ GET_LINK_STATUS command issued
- Link information
These fields give more link information (some fields displayed with the
/DEBUGqualifier):Link state
PHY link state
Last link check
Last link info value
Last QoS info value
DCC bandwidth events
Link transitions
PHY link transitions
Last bandwidth event
- Card PORT0 Statistics
Card PORT1 Statistics Counters for port 0, 1 of this device.
rx bytes
rx_ipv4 bytes
rx_ipv6 bytes
tx bytes
rx_total packets
rx_unicast packets
rx_multicast packets
rx_broadcast packets
rx_crc_errors
rx_alignment_symbol_errors
rx_pause packets
rx_priority_pause packets
rx_control packets
rx_in_range_errors
rx_out_range_errors
rx_frame_too_long
rx_address_match_errors
rx_dropped_too_small
rx_dropped_too_short
rx_dropped_header_too_small
rx_dropped_tcp_length
rx_dropped_runts
rx_64 byte packets
rx_65_127 byte packets
rx_128_256 byte packets
rx_256_511 byte packets
rx_512_1023 byte packets
rx_1024_1518 byte packets
rx_1519_2047 byte packets
rx_2048_4095 byte packets
rx_4096_8191 byte packets
rx_8192_9216 byte packets
rx_ip_checksum_errs
rx_tcp_checksum_errs
rx_udp_checksum_errs
rx_non_rss packets
rx_ipv4 packets
rx_ipv6 packets
rx_chute1 packets
rx_chute2 packets
rx_chute3 packets
rx_mgmt packets
rx_switched_unicast packets
rx_switched_multicast packets
rx_switched_broadcast packets
tx_unicast packets
tx_multicast packets
tx_broadcast packets
tx_pause packets
tx_priority_pause packets
tx_control packets
tx_64 byte packets
tx_65_127 byte packets
tx_128_256 byte packets
tx_256_511 byte packets
tx_512_1023 byte packets
tx_1024_1518 byte packets
tx_1519_2047 byte packets
tx_2048_4095 byte packets
tx_4096_8191 byte packets
tx_8192_9216 byte packets
rx_fifo_overflow
rx_input_fifo_overflow
pmem_fifo_overflow
jabber_event
rsvd1
rsvd2
rsvd3
- Card Error Statistics
A number of statistics include errors detected by the device.
mgmt_rx_port bytes
mgmt_tx_port bytes
rx_drops_no_pbuf
rx_drops_no_txpb
rx_drops_no_erx_descr
rx_drops_no_tpre_descr
mgmt_rx_port packets
mgmt_rx_port_pause packets
mgmt_rx_port_errors
mgmt_tx_port packets
mgmt_tx_port_pause packets
mgmt_rx_port_pmem_fifo_oflo
rx_drops_too_many_frags
rx_drops_invalid_ring
forwarded packets
rx_drops_mtu
mgmt_rx_port_rxpp_fifo_oflo
mgmt_rxpp_drops_too_big
- LSB Extension Miscellaneous
Port number (attrib addl command)
ASIC (Application-Specific Integrated Circuit) revision
RSS (Receive Side Scaling) capable
Function mode
Function capabilities
HW interface ID
Unicast MAC ID
Serial number
Requested offload setting
Currently rx queue
On die temperature
Last temperature time
UEFI (Unified Extensible Firmware Interface) NIC version
Ext PHY version
PHY type
PHY interface type
PHY misc params
PHY ext PHY details
PHY auto speeds
PHY fixed speeds
SFP (Small Form-factor Pluggable) vendor name
SFP vendor PN (part number)
SFP vendor revision
- Flow Control settings
Requested tx flow control setting
Requested rx flow control setting
Actual tx flow control setting
Actual rx flow control setting
- QnQ workaround information
The QnQ issue is similar to UERR, but it is a hardware condition rather than a firmware-detected fault. The effect is the same. When device firmware supports a driver workaround, the driver can avoid the failure condition by detecting the condition and specifying the transmit request in such a way that the firmware recognizes the condition and can work around it.
QnQ tag enabled in HW
QnQ firmware present
QnQ VLAN tag
QnQ VLAN tag and QnQ firmware present
QnQ VLAN tag valid time
Dummy WQEs (Work Queue Entries) used
QnQ workaround transmits
QnQ workarounds done (IPv4)
QnQ workarounds done (IPv6)
Last QnQ workaround (IPv4)
Last QnQ workaround (IPv6)
- Miscellaneous counters and timestamps
MQ interrupts
MQ interrupts (sync)
MQ interrupts (async)
MQ interrupts (unrecognized)
MQ failed commands
Last MQ failed command
Link state change MQ async events
Last Link state change MQ async event
DCC BW MQ async events
Last DCC BW MQ async event
QnQ VLAN tag MQ async events
Last QnQ VLAN tag MQ async event
Other MQ async events
Last Other MQ async event
Last reset start time
Last reset end time
Last reset elapsed time
Max reset elapsed time
Last max reset elapsed time
Previous reset start time
Previous reset end time
Last cmd timeout
Last CQE invalid
Last cmd bad status
Last CQE bad status
Last CQE unsupported
- UERR information
Unrecoverable error (UERR) is a fatal firmware condition, where the firmware encounters an error that it cannot proceed from. When a UERR occurs, the firmware stops and cannot be restarted. The UERR status registers (lo and hi) provide more detail. The UERR mask register indicates which UERR status bits are valid.
Last UERR status (lo)
Last UERR status (hi)
Last UERR mask (lo)
Last UERR mask (hi)
- BMBX Statistics (debug)
Boot Mailbox (BMBX) commands are issued in three steps; pre-command (Part 1), write high address (Part 2), and write low address (Part 3). This statistics track the timing for each part.
BMBX max time
BMBX max when
BMBX last time
BMBX last when
BMBX accum time
- Cmd Statistics (debug)
This table lists each command that can be issued to the device, the number of commands issued, and timing information for each (displayed with the
/DEBUGqualifier):MAC_QUERY
MAC_SET
MULTICAST_SET
VLAN_CONFIG
LINK_QUERY
READ_FLASH
WRITE_FLASH
CQ_CREATE
EQ_CREATE
MCC_CREATE
READ_EEPROM
GET_CNTL_ATTRIB
RX_FILTER
GET_FW_VERSION
SET_FLOW_CONTROL
GET_FLOW_CONTROL
SET_FRAME_SIZE
MODIFY_EQ_DELAY
FW_CONFIG
INTERFACE_CREATE
INTERFACE_DESTROY
MCC_DESTROY
CQ_DESTROY
EQ_DESTROY
SET_LINK_SPEED
QUERY_FW_CONFIG
PMAC_ADD
PMAC_DEL
FUNC_RESET
READ_TRANS_DATA
CREATE_MQ_EXT
GET_PHY_CONFIG
GET_ADDL_ATTRIB
CONFIG_RSS
CONFIG_PROMISC
GET_STATS
WQ_CREATE
RQ_CREATE
WQ_DELETE
RQ_DELETE
- Driver Messages
Console messages issued by the driver.
11.2. Emulex BE3 10Gb Device-Specific Functions
The SET DEVICE
/DEVICE_SPECIFIC=(FUNCTION="FUNC",VALUE=(V1,V2,...)) LANCP command
provides a mechanism to issue device-specific functions to the Emulex BE3 driver.
While some functions are common to many LAN drivers, most are primarily useful in a
diagnostic context and are not typically included in LANCP command
documentation.
For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.
Notes
The function name is case sensitive and is always four characters in length.
The command requires the SYSPRV privilege.
The definitions of the following functions may change between versions of the driver.
Device-Specific Functions
- DEVICE_SPECIFIC=FUNCTION="CCOU"
Clear the driver counters.
This is useful in debug or test scenarios.
- DEVICE_SPECIFIC=FUNCTION="SOFT"
Force a non-fatal (soft) error. The chip is stopped and restarted.
- DEVICE_SPECIFIC=(FUNCTION="FILA",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILB",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILC",VALUE=(32bits,16bits))
DEVICE_SPECIFIC=(FUNCTION="FILD",VALUE=(32bits,16bits)) Specify a receive or transmit packet trace address for use in driver tracing. If the source or destination address does not match one of the four filter addresses, the packet data is not traced. For example, to filter on addresses AA-00-04-00-EF-4F and AB-00-04-01-D2-01, issue the following LANCP commands:
$ MCR LANCP SET DEVICE EBA/DEVICE_SPECIFIC=(FUNCTION="FIL1",VALUE=(%x000400aa,%x4fef)) $ MCR LANCP SET DEVICE EBA/DEVICE_SPECIFIC=(FUNCTION="FIL2",VALUE=(%x010400ab,%x01d2))
- DEVICE_SPECIFIC=FUNCTION="SYSI"
Send the periodic System ID messages immediately instead of waiting until expiry of the 8–12-minute System ID timer.
This is a convenient way to get the driver to send two packets.
- DEVICE_SPECIFIC=FUNCTION="SYSZ"
Disable the sending of periodic System ID messages.
This is used to disable transmits that may obscure other traffic of interest.
- DEVICE_SPECIFIC=(FUNCTION="WAIT",VALUE=timevalue)
Wait the specified time (in nanoseconds) at IPL 8 with the driver port lock held.
This is a convenient way to introduce a delay at IPL 8.
- DEVICE_SPECIFIC=(FUNCTION="XTOB",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a transmit timeout occurs. If 0 (disable), transmit timeout results in a device reset.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="XLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long transmit occurs. If 0 (disable), a long transmit completion is counted.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="FLON",VALUE=setting)
If set to 1 (enable), the driver crashes the system with a NETDLLERR Bugcheck if a long fork occurs. If 0 (disable), a long time to run a fork process is recorded in the counters.
If enabled, this setting is displayed in the driver flags in the driver internal counters.
- DEVICE_SPECIFIC=(FUNCTION="PRES",VALUE=periodicmask)
Schedule periodic random resets. The value supplied is AND'ed with (RSCC × 69 069) and, if the result is 3, a reset is done. For example, if the value supplied is 7, a reset is done, on average, every 8 seconds.
A value of 0 disables this function, and a value of n enables it.
This is used to test error handling.
- DEVICE_SPECIFIC=FUNCTION="OMSG"
Console messages are displayed by the driver during initialization, auto-negotiation, and link handling. However, the driver limits the total number of messages displayed. This function resets the count, allowing additional messages to be displayed.
- DEVICE_SPECIFIC=(FUNCTION="FLOW",VALUE=value)
Sets flow control according to the value:
- 0 – Disable flow control.
- 1 – Enable flow control.
- 2 – Force receive flow control only.
- 3 – Force transmit flow control only.
- DEVICE_SPECIFIC=(FUNCTION="XTMO",VALUE=ticks)
Override the default transmit timer. The ticks value is in timer ticks and is not range checked. If the fast transmit timer is enabled, each tick is 0.25 seconds; otherwise, it is 1 second.
The current setting is displayed in the driver internal counters.
- DEVICE_SPECIFIC=FUNCTION="FXTO"
(SYS$EWBE3_MON.EXE Driver Only) Force a transmit timeout on the next transmit.
- DEVICE_SPECIFIC=(FUNCTION="XDEL",VALUE=timevalue)
Delay issuing the next transmit request for the time specified in 10-millisecond units. A maximum of 2000 (20 seconds) is allowed.
This function is useful for investigating application behavior when a transmit request is delayed.
- DEVICE_SPECIFIC=(FUNCTION="CXMT",VALUE=delayvalue)
Change the interrupt mitigation delay on transmit completion, the "Transmit coalesce value (μs)" value. This allowed range is 0 to 1000000 microseconds. If zero, the delay is set to the default of 20 microseconds.
- DEVICE_SPECIFIC=(FUNCTION="CRCV",VALUE=delayvalue)
Change the interrupt mitigation delay on receive completion, the "Receive coalesce value (μs)" value. This allowed range is 0 to 1000000 microseconds. If zero, the delay is set to the default of 32 microseconds.
- DEVICE_SPECIFIC=(FUNCTION="CORR",VALUE=bytetocorrupt)
(SYS$EWBE3_MON.EXE Driver Only) Corrupt a byte in a transmit packet (increment it by 1).
This can be used to lose packets by selecting a byte in the destination address (0–5) to validate handling of lost packets for a protocol.
This can be used to validate IP checksums by corrupting the packet data protected by the checksum after the network stack has calculated the checksum.
- DEVICE_SPECIFIC=(FUNCTION="QDEB",VALUE=setting)
If set to 1 (enable), the driver issues every transmit with the QnQ driver workaround, where the driver creates an additional transmit segment for the VLAN tag with special transmit descriptor bits set.
If set to 0 (disable), the driver only does the QnQ workaround if the transmit request requires it.
This is used to validate the QnQ workaround driver support.
- DEVICE_SPECIFIC=(FUNCTION="QOFF",VALUE=setting)
If set to 1 (enable), enables the QnQ workaround in the driver.
If set to 0 (disable), disables the QnQ workaround.
By disabling the workaround and issuing a particular transmit request, the BE3 chip locks up. This helps validate the QnQ workaround support, by verifying the problem packet really does cause a lockup, and then verifying the QnQ workaround actually does prevent the lockup.
"QnQ" in this document refers to what Emulex calls the QnQ workaround. There is a bug in the BE3 chip that the driver works around, and the driver uses the Emulex name QnQ when describing the workaround. This is distinct from "QinQ", which refers to VLAN stacking and applies to Blade environments where there is an inner and outer VLAN tag (double or stacked tags).