Oracle Solaris network drivers must implement statistics variables. GLDv2 tallies some network statistics, but other statistics must be counted by each GLDv2-based driver. GLDv2 provides support for GLDv2-based drivers to report a standard set of network driver statistics. Statistics are reported by GLDv2 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. The statistics are 32 bits unless otherwise noted.
GLDv2 maintains and reports the following statistics.
Total bytes successfully received on the interface. Stores 64-bit statistics.
Total bytes successfully received on the interface
Total bytes that have requested transmission on the interface. Stores 64-bit statistics.
Total bytes that have requested transmission on the interface.
Total packets successfully received on the interface. Stores 64-bit statistics.
Total packets successfully received on the interface.
Total packets that have requested transmission on the interface. Stores 64-bit statistics.
Total packets that have requested transmission 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 that have requested transmission (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 tracks the following statistics in a private per-instance structure. To report statistics, GLDv2 calls the driver's gldm_get_stats() entry point. gldm_get_stats() then updates device-specific statistics in the gld_stats(9S) structure. See the gldm_get_stats(9E) man page for more information. GLDv2 then reports the updated statistics using the named statistics variables that are shown below.
Current estimated bandwidth of the interface in bits per second. Stores 64-bit statistics.
Current media type in use by the device (string).
Number of times that the interrupt handler was called, causing
an 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 number of packets that were received but could not be
processed due to 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 that were received with framing errors, that is, the
packets did not contain 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, that is,
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 that 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 allowed length.
Packets received smaller than the minimum allowed length (long
).
The following group of statistics applies to networks of type DL_TPR. These statistics 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 that an AMP or SMP frame, in which A is equal to C is equal to 0, is followed by another 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 statistics 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 that were received, that is, the total of non-restricted and restricted tokens.
Number of times that TVX has expired.
Number of TRT expirations since either 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.