Exemple #1
0
/*
 * MAC entry points.
 */
int
efe_m_getstat(void *arg, uint_t stat, uint64_t *val)
{
	efe_t *efep = arg;

	if (mii_m_getstat(efep->efe_miih, stat, val) == 0) {
		return (0);
	}

	switch (stat) {
	case MAC_STAT_MULTIRCV:
		*val = efep->efe_multircv;
		break;

	case MAC_STAT_BRDCSTRCV:
		*val = efep->efe_brdcstrcv;
		break;

	case MAC_STAT_MULTIXMT:
		*val = efep->efe_multixmt;
		break;

	case MAC_STAT_BRDCSTXMT:
		*val = efep->efe_brdcstxmt;
		break;

	case MAC_STAT_NORCVBUF:
		*val = efep->efe_norcvbuf;
		break;

	case MAC_STAT_IERRORS:
		*val = efep->efe_ierrors;
		break;

	case MAC_STAT_NOXMTBUF:
		*val = efep->efe_noxmtbuf;
		break;

	case MAC_STAT_OERRORS:
		*val = efep->efe_oerrors;
		break;

	case MAC_STAT_COLLISIONS:
		*val = efep->efe_collisions;
		break;

	case MAC_STAT_RBYTES:
		*val = efep->efe_rbytes;
		break;

	case MAC_STAT_IPACKETS:
		*val = efep->efe_ipackets;
		break;

	case MAC_STAT_OBYTES:
		*val = efep->efe_obytes;
		break;

	case MAC_STAT_OPACKETS:
		*val = efep->efe_opackets;
		break;

	case MAC_STAT_UNDERFLOWS:
		*val = efep->efe_uflo;
		break;

	case MAC_STAT_OVERFLOWS:
		*val = efep->efe_oflo;
		break;

	case ETHER_STAT_ALIGN_ERRORS:
		*val = efep->efe_align_errors;
		break;

	case ETHER_STAT_FCS_ERRORS:
		*val = efep->efe_fcs_errors;
		break;

	case ETHER_STAT_FIRST_COLLISIONS:
		*val = efep->efe_first_collisions;
		break;

	case ETHER_STAT_TX_LATE_COLLISIONS:
		*val = efep->efe_tx_late_collisions;
		break;

	case ETHER_STAT_DEFER_XMTS:
		*val = efep->efe_defer_xmts;
		break;

	case ETHER_STAT_EX_COLLISIONS:
		*val = efep->efe_ex_collisions;
		break;

	case ETHER_STAT_MACXMT_ERRORS:
		*val = efep->efe_macxmt_errors;
		break;

	case ETHER_STAT_CARRIER_ERRORS:
		*val = efep->efe_carrier_errors;
		break;

	case ETHER_STAT_TOOLONG_ERRORS:
		*val = efep->efe_toolong_errors;
		break;

	case ETHER_STAT_MACRCV_ERRORS:
		*val = efep->efe_macrcv_errors;
		break;

	case ETHER_STAT_TOOSHORT_ERRORS:
		*val = efep->efe_runt_errors;
		break;

	case ETHER_STAT_JABBER_ERRORS:
		*val = efep->efe_jabber_errors;
		break;

	default:
		return (ENOTSUP);
	}

	return (0);
}
Exemple #2
0
static int
pcn_m_stat(void *arg, uint_t stat, uint64_t *val)
{
	pcn_t	*pcnp = (pcn_t *)arg;

	if (mii_m_getstat(pcnp->pcn_mii, stat, val) == 0)
		return (0);

	switch (stat) {
	case MAC_STAT_MULTIRCV:
		*val = pcnp->pcn_multircv;
		break;

	case MAC_STAT_BRDCSTRCV:
		*val = pcnp->pcn_brdcstrcv;
		break;

	case MAC_STAT_MULTIXMT:
		*val = pcnp->pcn_multixmt;
		break;

	case MAC_STAT_BRDCSTXMT:
		*val = pcnp->pcn_brdcstxmt;
		break;

	case MAC_STAT_IPACKETS:
		*val = pcnp->pcn_ipackets;
		break;

	case MAC_STAT_RBYTES:
		*val = pcnp->pcn_rbytes;
		break;

	case MAC_STAT_OPACKETS:
		*val = pcnp->pcn_opackets;
		break;

	case MAC_STAT_OBYTES:
		*val = pcnp->pcn_obytes;
		break;

	case MAC_STAT_NORCVBUF:
		*val = pcnp->pcn_norcvbuf;
		break;

	case MAC_STAT_NOXMTBUF:
		*val = 0;
		break;

	case MAC_STAT_COLLISIONS:
		*val = pcnp->pcn_collisions;
		break;

	case MAC_STAT_IERRORS:
		*val = pcnp->pcn_errrcv;
		break;

	case MAC_STAT_OERRORS:
		*val = pcnp->pcn_errxmt;
		break;

	case ETHER_STAT_ALIGN_ERRORS:
		*val = pcnp->pcn_align_errors;
		break;

	case ETHER_STAT_FCS_ERRORS:
		*val = pcnp->pcn_fcs_errors;
		break;

	case ETHER_STAT_SQE_ERRORS:
		*val = pcnp->pcn_sqe_errors;
		break;

	case ETHER_STAT_DEFER_XMTS:
		*val = pcnp->pcn_defer_xmts;
		break;

	case ETHER_STAT_FIRST_COLLISIONS:
		*val = pcnp->pcn_first_collisions;
		break;

	case ETHER_STAT_MULTI_COLLISIONS:
		*val = pcnp->pcn_multi_collisions;
		break;

	case ETHER_STAT_TX_LATE_COLLISIONS:
		*val = pcnp->pcn_tx_late_collisions;
		break;

	case ETHER_STAT_EX_COLLISIONS:
		*val = pcnp->pcn_ex_collisions;
		break;

	case ETHER_STAT_MACXMT_ERRORS:
		*val = pcnp->pcn_macxmt_errors;
		break;

	case ETHER_STAT_CARRIER_ERRORS:
		*val = pcnp->pcn_carrier_errors;
		break;

	case ETHER_STAT_TOOLONG_ERRORS:
		*val = pcnp->pcn_toolong_errors;
		break;

	case ETHER_STAT_MACRCV_ERRORS:
		*val = pcnp->pcn_macrcv_errors;
		break;

	case MAC_STAT_OVERFLOWS:
		*val = pcnp->pcn_overflow;
		break;

	case MAC_STAT_UNDERFLOWS:
		*val = pcnp->pcn_underflow;
		break;

	case ETHER_STAT_TOOSHORT_ERRORS:
		*val = pcnp->pcn_runt;
		break;

	case ETHER_STAT_JABBER_ERRORS:
		*val = pcnp->pcn_jabber;
		break;

	default:
		return (ENOTSUP);
	}
	return (0);
}