#ifndef _SYS_MAC_ETHER_H
#define _SYS_MAC_ETHER_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
ETHER_MEDIA_UNKNOWN = 0,
ETHER_MEDIA_NONE,
ETHER_MEDIA_10BASE_T,
ETHER_MEDIA_100BASE_T4,
ETHER_MEDIA_100BASE_X,
ETHER_MEDIA_100BASE_T2,
ETHER_MEDIA_1000BASE_X,
ETHER_MEDIA_1000BASE_T,
ETHER_MEDIA_1000BASE_KX,
ETHER_MEDIA_1000BASE_T1,
ETHER_MEDIA_1000BASE_CX,
ETHER_MEDIA_1000BASE_SX,
ETHER_MEDIA_1000BASE_LX,
ETHER_MEDIA_1000BASE_BX,
ETHER_MEDIA_1000_SGMII,
ETHER_MEDIA_100BASE_TX,
ETHER_MEDIA_100BASE_FX,
ETHER_MEDIA_100_SGMII,
ETHER_MEDIA_10BASE_T1,
ETHER_MEDIA_100BASE_T1,
ETHER_MEDIA_2500BASE_T,
ETHER_MEDIA_2500BASE_KX,
ETHER_MEDIA_2500BASE_X,
ETHER_MEDIA_5000BASE_T,
ETHER_MEDIA_5000BASE_KR,
ETHER_MEDIA_10GBASE_T,
ETHER_MEDIA_10GBASE_SR,
ETHER_MEDIA_10GBASE_LR,
ETHER_MEDIA_10GBASE_LRM,
ETHER_MEDIA_10GBASE_KR,
ETHER_MEDIA_10GBASE_CX4,
ETHER_MEDIA_10GBASE_KX4,
ETHER_MEDIA_10G_XAUI,
ETHER_MEDIA_10GBASE_AOC,
ETHER_MEDIA_10GBASE_ACC,
ETHER_MEDIA_10GBASE_CR,
ETHER_MEDIA_10GBASE_ER,
ETHER_MEDIA_10G_SFI,
ETHER_MEDIA_10G_XFI,
ETHER_MEDIA_25GBASE_T,
ETHER_MEDIA_25GBASE_SR,
ETHER_MEDIA_25GBASE_LR,
ETHER_MEDIA_25GBASE_ER,
ETHER_MEDIA_25GBASE_KR,
ETHER_MEDIA_25GBASE_CR,
ETHER_MEDIA_25GBASE_AOC,
ETHER_MEDIA_25GBASE_ACC,
ETHER_MEDIA_25G_AUI,
ETHER_MEDIA_40GBASE_T,
ETHER_MEDIA_40GBASE_CR4,
ETHER_MEDIA_40GBASE_KR4,
ETHER_MEDIA_40GBASE_LR4,
ETHER_MEDIA_40GBASE_SR4,
ETHER_MEDIA_40GBASE_ER4,
ETHER_MEDIA_40GBASE_LM4,
ETHER_MEDIA_40GBASE_AOC4,
ETHER_MEDIA_40GBASE_ACC4,
ETHER_MEDIA_40G_XLAUI,
ETHER_MEDIA_40G_XLPPI,
ETHER_MEDIA_50GBASE_KR2,
ETHER_MEDIA_50GBASE_CR2,
ETHER_MEDIA_50GBASE_SR2,
ETHER_MEDIA_50GBASE_LR2,
ETHER_MEDIA_50GBASE_AOC2,
ETHER_MEDIA_50GBASE_ACC2,
ETHER_MEDIA_50GBASE_KR,
ETHER_MEDIA_50GBASE_CR,
ETHER_MEDIA_50GBASE_SR,
ETHER_MEDIA_50GBASE_LR,
ETHER_MEDIA_50GBASE_FR,
ETHER_MEDIA_50GBASE_ER,
ETHER_MEDIA_50GBASE_AOC,
ETHER_MEDIA_50GBASE_ACC,
ETHER_MEDIA_100GBASE_CR10,
ETHER_MEDIA_100GBASE_SR10,
ETHER_MEDIA_100GBASE_SR4,
ETHER_MEDIA_100GBASE_LR4,
ETHER_MEDIA_100GBASE_ER4,
ETHER_MEDIA_100GBASE_KR4,
ETHER_MEDIA_100GBASE_CR4,
ETHER_MEDIA_100GBASE_CAUI4,
ETHER_MEDIA_100GBASE_AOC4,
ETHER_MEDIA_100GBASE_ACC4,
ETHER_MEDIA_100GBASE_KR2,
ETHER_MEDIA_100GBASE_CR2,
ETHER_MEDIA_100GBASE_SR2,
ETHER_MEDIA_100GBASE_KR,
ETHER_MEDIA_100GBASE_CR,
ETHER_MEDIA_100GBASE_SR,
ETHER_MEDIA_100GBASE_DR,
ETHER_MEDIA_100GBASE_LR,
ETHER_MEDIA_100GBASE_FR,
ETHER_MEDIA_200GAUI_4,
ETHER_MEDIA_200GBASE_CR4,
ETHER_MEDIA_200GBASE_KR4,
ETHER_MEDIA_200GBASE_SR4,
ETHER_MEDIA_200GBASE_DR4,
ETHER_MEDIA_200GBASE_FR4,
ETHER_MEDIA_200GBASE_LR4,
ETHER_MEDIA_200GBASE_ER4,
ETHER_MEDIA_200GAUI_2,
ETHER_MEDIA_200GBASE_KR2,
ETHER_MEDIA_200GBASE_CR2,
ETHER_MEDIA_200GBASE_SR2,
ETHER_MEDIA_400GAUI_8,
ETHER_MEDIA_400GBASE_KR8,
ETHER_MEDIA_400GBASE_FR8,
ETHER_MEDIA_400GBASE_LR8,
ETHER_MEDIA_400GBASE_ER8,
ETHER_MEDIA_400GAUI_4,
ETHER_MEDIA_400GBASE_KR4,
ETHER_MEDIA_400GBASE_CR4,
ETHER_MEDIA_400GBASE_SR4,
ETHER_MEDIA_400GBASE_DR4,
ETHER_MEDIA_400GBASE_FR4
} mac_ether_media_t;
#ifdef _KERNEL
#define MAC_PLUGIN_IDENT_ETHER "mac_ether"
enum ether_stat {
ETHER_STAT_ALIGN_ERRORS = MACTYPE_STAT_MIN,
ETHER_STAT_FCS_ERRORS,
ETHER_STAT_FIRST_COLLISIONS,
ETHER_STAT_MULTI_COLLISIONS,
ETHER_STAT_SQE_ERRORS,
ETHER_STAT_DEFER_XMTS,
ETHER_STAT_TX_LATE_COLLISIONS,
ETHER_STAT_EX_COLLISIONS,
ETHER_STAT_MACXMT_ERRORS,
ETHER_STAT_CARRIER_ERRORS,
ETHER_STAT_TOOLONG_ERRORS,
ETHER_STAT_MACRCV_ERRORS,
ETHER_STAT_XCVR_ADDR,
ETHER_STAT_XCVR_ID,
ETHER_STAT_XCVR_INUSE,
ETHER_STAT_CAP_1000FDX,
ETHER_STAT_CAP_1000HDX,
ETHER_STAT_CAP_100FDX,
ETHER_STAT_CAP_100HDX,
ETHER_STAT_CAP_10FDX,
ETHER_STAT_CAP_10HDX,
ETHER_STAT_CAP_ASMPAUSE,
ETHER_STAT_CAP_PAUSE,
ETHER_STAT_CAP_AUTONEG,
ETHER_STAT_ADV_CAP_1000FDX,
ETHER_STAT_ADV_CAP_1000HDX,
ETHER_STAT_ADV_CAP_100FDX,
ETHER_STAT_ADV_CAP_100HDX,
ETHER_STAT_ADV_CAP_10FDX,
ETHER_STAT_ADV_CAP_10HDX,
ETHER_STAT_ADV_CAP_ASMPAUSE,
ETHER_STAT_ADV_CAP_PAUSE,
ETHER_STAT_ADV_CAP_AUTONEG,
ETHER_STAT_LP_CAP_1000FDX,
ETHER_STAT_LP_CAP_1000HDX,
ETHER_STAT_LP_CAP_100FDX,
ETHER_STAT_LP_CAP_100HDX,
ETHER_STAT_LP_CAP_10FDX,
ETHER_STAT_LP_CAP_10HDX,
ETHER_STAT_LP_CAP_ASMPAUSE,
ETHER_STAT_LP_CAP_PAUSE,
ETHER_STAT_LP_CAP_AUTONEG,
ETHER_STAT_LINK_ASMPAUSE,
ETHER_STAT_LINK_PAUSE,
ETHER_STAT_LINK_AUTONEG,
ETHER_STAT_LINK_DUPLEX,
ETHER_STAT_TOOSHORT_ERRORS,
ETHER_STAT_CAP_REMFAULT,
ETHER_STAT_ADV_REMFAULT,
ETHER_STAT_LP_REMFAULT,
ETHER_STAT_JABBER_ERRORS,
ETHER_STAT_CAP_100T4,
ETHER_STAT_ADV_CAP_100T4,
ETHER_STAT_LP_CAP_100T4,
ETHER_STAT_CAP_10GFDX,
ETHER_STAT_ADV_CAP_10GFDX,
ETHER_STAT_LP_CAP_10GFDX,
ETHER_STAT_CAP_40GFDX,
ETHER_STAT_ADV_CAP_40GFDX,
ETHER_STAT_LP_CAP_40GFDX,
ETHER_STAT_CAP_100GFDX,
ETHER_STAT_ADV_CAP_100GFDX,
ETHER_STAT_LP_CAP_100GFDX,
ETHER_STAT_CAP_2500FDX,
ETHER_STAT_ADV_CAP_2500FDX,
ETHER_STAT_LP_CAP_2500FDX,
ETHER_STAT_CAP_5000FDX,
ETHER_STAT_ADV_CAP_5000FDX,
ETHER_STAT_LP_CAP_5000FDX,
ETHER_STAT_CAP_25GFDX,
ETHER_STAT_ADV_CAP_25GFDX,
ETHER_STAT_LP_CAP_25GFDX,
ETHER_STAT_CAP_50GFDX,
ETHER_STAT_ADV_CAP_50GFDX,
ETHER_STAT_LP_CAP_50GFDX,
ETHER_STAT_CAP_200GFDX,
ETHER_STAT_ADV_CAP_200GFDX,
ETHER_STAT_LP_CAP_200GFDX,
ETHER_STAT_CAP_400GFDX,
ETHER_STAT_ADV_CAP_400GFDX,
ETHER_STAT_LP_CAP_400GFDX,
};
#define ETHER_NSTAT \
(ETHER_STAT_LP_CAP_400GFDX - ETHER_STAT_ALIGN_ERRORS + 1)
#define ETHER_STAT_ISACOUNTER(_ether_stat) \
((_ether_stat) == ETHER_STAT_ALIGN_ERRORS || \
(_ether_stat) == ETHER_STAT_FCS_ERRORS || \
(_ether_stat) == ETHER_STAT_FIRST_COLLISIONS || \
(_ether_stat) == ETHER_STAT_MULTI_COLLISIONS || \
(_ether_stat) == ETHER_STAT_SQE_ERRORS || \
(_ether_stat) == ETHER_STAT_DEFER_XMTS || \
(_ether_stat) == ETHER_STAT_TX_LATE_COLLISIONS || \
(_ether_stat) == ETHER_STAT_EX_COLLISIONS || \
(_ether_stat) == ETHER_STAT_MACXMT_ERRORS || \
(_ether_stat) == ETHER_STAT_CARRIER_ERRORS || \
(_ether_stat) == ETHER_STAT_TOOLONG_ERRORS || \
(_ether_stat) == ETHER_STAT_TOOSHORT_ERRORS || \
(_ether_stat) == ETHER_STAT_JABBER_ERRORS || \
(_ether_stat) == ETHER_STAT_MACRCV_ERRORS)
#endif
#ifdef __cplusplus
}
#endif
#endif