Solaris 8 Software Developer Supplement

gld_stats Structure

The GLD statistics (gld_stats) structure is used to communicate statistics and state information from a GLD-based driver to GLD when returning from a driver's gldm_get_stats() routine, as discussed in gld(9E) and gld(7D). The members of this structure, filled in by the GLD-based driver, are used when GLD reports the statistics. In the tables below, the name of the statistics variable reported by GLD is noted in the comments. See gld(7D) for a more detailed description of the meaning of each statistic.

Drivers must not make any assumptions about the length of this structure, which might vary in different releases of Solaris, GLD, or both. Structure members private to GLD, not documented here, should not be set or read by the device-specific driver.

The following structure members are defined for all media types:

uint64_t        glds_speed;                         /* ifspeed */
uint32_t        glds_media;                         /* media */
uint32_t        glds_intr;                          /* intr */
uint32_t        glds_norcvbuf;                      /* norcvbuf */
uint32_t        glds_errrcv;                        /* ierrors */
uint32_t        glds_errxmt;                        /* oerrors */
uint32_t        glds_missed;                        /* missed */
uint32_t        glds_underflow;                     /* uflo */
uint32_t        glds_overflow;                      /* oflo */

The following structure members are defined for media type DL_ETHER:

uint32_t        glds_frame;                         /* align_errors */
uint32_t        glds_crc;                           /* fcs_errors */
uint32_t        glds_duplex;                        /* duplex */
uint32_t        glds_nocarrier;                     /* carrier_errors */
uint32_t        glds_collisions;                    /* collisions */
uint32_t        glds_excoll;                        /* ex_collisions */
uint32_t        glds_xmtlatecoll;                   /* tx_late_collisions */
uint32_t        glds_defer;                         /* defer_xmts */
uint32_t        glds_dot3_first_coll;               /* first_collisions */
uint32_t        glds_dot3_multi_coll;               /* multi_collisions */
uint32_t        glds_dot3_sqe_error;                /* sqe_errors */
uint32_t        glds_dot3_mac_xmt_error;            /* macxmt_errors */
uint32_t        glds_dot3_mac_rcv_error;            /* macrcv_errors */
uint32_t        glds_dot3_frame_too_long;           /* toolong_errors */
uint32_t        glds_short;                         /* runt_errors */

The following structure members are defined for media type DL_TPR:

uint32_t        glds_dot5_line_error                /* line_errors */
uint32_t        glds_dot5_burst_error               /* burst_errors */
uint32_t        glds_dot5_signal_loss               /* signal_losses */
uint32_t        glds_dot5_ace_error                 /* ace_errors */
uint32_t        glds_dot5_internal_error            /* internal_errors */
uint32_t        glds_dot5_lost_frame_error          /* lost_frame_errors */
uint32_t        glds_dot5_frame_copied_error        /* frame_copied_errors */
uint32_t        glds_dot5_token_error               /* token_errors */
uint32_t        glds_dot5_freq_error                /* freq_errors */

The following structure members are defined for media type DL_FDDI:

uint32_t        glds_fddi_mac_error;                /* mac_errors */
uint32_t        glds_fddi_mac_lost;                 /* mac_lost_errors */
uint32_t        glds_fddi_mac_token;                /* mac_tokens */
uint32_t        glds_fddi_mac_tvx_expired;          /* mac_tvx_expired */
uint32_t        glds_fddi_mac_late;                 /* mac_late */
uint32_t        glds_fddi_mac_ring_op;              /* mac_ring_ops */

Most of the above statistics variables are counters denoting the number of times the particular event was observed. Exceptions are:

glds_speed

Estimate of the interface's current bandwidth in bits per second. 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.

glds_media

Type of media (wiring) or connector used by the hardware. Currently supported media names include GLDM_AUI, GLDM_BNC, GLDM_TP, GLDM_10BT, GLDM_100BT, GLDM_100BTX, GLDM_100BT4, GLDM_RING4, GLDM_RING16, GLDM_FIBER, and GLDM_PHYMII. GLDM_UNKNOWN is also permitted.

glds_duplex

Current duplex state of the interface. Supported values are GLD_DUPLEX_HALF and GLD_DUPLEX_FULL. GLD_DUPLEX_UNKNOWN is also permitted.