Solaris network drivers must implement statistics variables. GLD itself tallies some network statistics, but other statistics must be counted by each GLD-based driver. GLD provides support for GLD-based drivers to report a standard set of network driver statistics. Statistics are reported by GLD using the kstat(7D) and kstat(9S) mechanisms. The DL_GET_STATISTICS_REQ DLPI command can also be used to retrieve the current statistics counters. All statistics are maintained as unsigned, and all are 32 bits unless otherwise noted.
GLD maintains and reports the following statistics.
Total bytes successfully received on the interface (64 bits)
Total bytes successfully received on the interface
Total bytes requested to be transmitted on the interface (64 bits)
Total bytes requested to be transmitted on the interface
Total packets successfully received on the interface (64 bits)
Total packets successfully received on the interface
Total packets requested to be transmitted on the interface (64 bits)
Total packets requested to be transmitted on the interface
Multicast packets successfully received, including group and functional addresses (long
)
Multicast packets requested to be transmitted, including group and functional addresses (long
)
Broadcast packets successfully received (long
)
Broadcast packets requested to be transmitted (long
)
Valid received packets not accepted by any Stream (long
)
Packets discarded on output because transmit buffer was busy, or no buffer could be allocated for transmit (long
)
Number of times a received packet could not be put up a Stream because the queue was flow-controlled (long
)
Times transmit was retried after having been delayed due to lack of resources (long
)
Current ``promiscuous'' state of the interface (string)
The device-dependent driver counts the following statistics, keeping track of them in a private per-instance structure. When GLD is asked to report statistics, it calls the driver's gldm_get_stats() entry point (as described in the gldm_get_stats(9E) man page) to update the device-specific statistics in the gld_stats(9S) structure. GLD then reports the updated statistics using the named statistics variables shown below.
Current estimated bandwidth of the interface in bits per second (64 bits)
Current media type in use by the device (string)
Times interrupt handler was called and claimed the interrupt (long
)
Number of times a valid incoming packet was known to have been discarded because no buffer could be allocated for receive (long
)
Total packets received that could not be processed because they contained errors (long
)
Total packets that were not successfully transmitted because of errors (long
)
Packets known to have been dropped by the hardware on receive (long
)
Times FIFO underflowed on transmit (long
)
Times receiver overflowed during receive (long
)
The following group of statistics applies to networks of type DL_ETHER. These statistics are maintained by device-specific drivers of that type, as shown previously.
Packets received with framing errors (not an integral number of octets) (long
)
Packets received with CRC errors (long
)
Current duplex mode of the interface (string)
Number of times carrier was lost or never detected on a transmission attempt (long
)
Ethernet collisions during transmit (long
)
Frames where excess collisions occurred on transmit, causing transmit failure (long
)
Number of times a transmit collision occurred late (after 512 bit times) (long
)
Packets without collisions where first transmit attempt was delayed because the medium was busy (long
)
Packets successfully transmitted with exactly one collision
Packets successfully transmitted with multiple collisions
Number of times SQE test error was reported
Packets encountering transmit MAC failures, except carrier and collision failures
Packets received with MAC errors, except align_errors, fcs_errors, and toolong_errors
Packets received larger than the maximum permitted length
Packets received smaller than the minimum permitted length (long
)
The following group of statistics applies to networks of type DL_TPR; these are maintained by device-specific drivers of that type, as shown above.
Packets received with non-data bits or FCS errors
Number of times an absence of transitions for five half-bit timers was detected
Number of times loss of signal condition on the ring was detected
Number of times an AMP or SMP frame, in which A is equal to C is equal to 0, was followed by another such SMP frame without an intervening AMP frame
Number of times the station recognized an internal error
Number of times the TRR timer expired during transmit
Number of times a frame addressed to this station was received with the FS field `A' bit set to 1
Number of times the station acting as the active monitor recognized an error condition that needed a token transmitted
Number of times the frequency of the incoming signal differed from the expected frequency
The following group of statistics applies to networks of type DL_FDDI; these are maintained by device-specific drivers of that type, as shown above
Frames detected in error by this MAC that had not been detected in error by another MAC
Frames received with format errors such that the frame was stripped
Number of tokens received (total of non-restricted and restricted)
Number of times that TVX has expired
Number of TRT expirations since this MAC was reset or a token was received
Number of times the ring has entered the ``Ring Operational'' state from the ``Ring Not Operational'' state