GLD_STATS(9S) Data Structures for Drivers GLD_STATS(9S)

gld_stats - Generic LAN Driver statistics data structure

#include <sys/gld.h>

illumos architecture specific (illumos DDI).

The Generic LAN Driver (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(4D). 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(4D) for a more detailed description of the meaning of each statistic.

Drivers can make no assumptions about the length of this structure, which might be different in different releases of illumos and/or GLD. 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 */

Note -

Support for the DL_TPR media type is obsolete and may be removed in a future release of illumos.

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 */

Note -

Support for the DL_FDDI media type is obsolete and may be removed in a future release of illumos.

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


An 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.


The 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 can also be specified.


Current duplex state of the interface. Supported values are GLD_DUPLEX_HALF and GLD_DUPLEX_FULL. GLD_DUPLEX_UNKNOWN can also be specified.

gld(4D), gld(9E), gld(9F), gld_mac_info(9S)

Writing Device Drivers

June 7, 2004 OmniOS