1ba2e4443Sseb /* 2ba2e4443Sseb * CDDL HEADER START 3ba2e4443Sseb * 4ba2e4443Sseb * The contents of this file are subject to the terms of the 5ba2e4443Sseb * Common Development and Distribution License (the "License"). 6ba2e4443Sseb * You may not use this file except in compliance with the License. 7ba2e4443Sseb * 8ba2e4443Sseb * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9ba2e4443Sseb * or http://www.opensolaris.org/os/licensing. 10ba2e4443Sseb * See the License for the specific language governing permissions 11ba2e4443Sseb * and limitations under the License. 12ba2e4443Sseb * 13ba2e4443Sseb * When distributing Covered Code, include this CDDL HEADER in each 14ba2e4443Sseb * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15ba2e4443Sseb * If applicable, add the following below this CDDL HEADER, with the 16ba2e4443Sseb * fields enclosed by brackets "[]" replaced with your own identifying 17ba2e4443Sseb * information: Portions Copyright [yyyy] [name of copyright owner] 18ba2e4443Sseb * 19ba2e4443Sseb * CDDL HEADER END 20ba2e4443Sseb */ 21ba2e4443Sseb /* 22aca118b7Slucy wang - Sun Microsystems - Beijing China * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23ba2e4443Sseb * Use is subject to license terms. 243bc4925dSGarrett D'Amore * 253bc4925dSGarrett D'Amore * Copyright 2015 Garrett D'Amore <garrett@damore.org> 26*422542c1SRobert Mustacchi * Copyright 2016 Joyent, Inc. 27ba2e4443Sseb */ 28ba2e4443Sseb 29ba2e4443Sseb #ifndef _SYS_MAC_ETHER_H 30ba2e4443Sseb #define _SYS_MAC_ETHER_H 31ba2e4443Sseb 32ba2e4443Sseb /* 33ba2e4443Sseb * Ethernet MAC Plugin 34ba2e4443Sseb */ 35ba2e4443Sseb 36ba2e4443Sseb #ifdef __cplusplus 37ba2e4443Sseb extern "C" { 38ba2e4443Sseb #endif 39ba2e4443Sseb 40ba2e4443Sseb #ifdef _KERNEL 41ba2e4443Sseb 42ba2e4443Sseb #define MAC_PLUGIN_IDENT_ETHER "mac_ether" 43ba2e4443Sseb 449b14cf1dSgd78059 /* 459b14cf1dSgd78059 * Do not reorder, and add only to the end of this list. 469b14cf1dSgd78059 */ 47ba2e4443Sseb enum ether_stat { 48ba2e4443Sseb /* RFC 1643 stats */ 49ba2e4443Sseb ETHER_STAT_ALIGN_ERRORS = MACTYPE_STAT_MIN, 50ba2e4443Sseb ETHER_STAT_FCS_ERRORS, 51ba2e4443Sseb ETHER_STAT_FIRST_COLLISIONS, 52ba2e4443Sseb ETHER_STAT_MULTI_COLLISIONS, 53ba2e4443Sseb ETHER_STAT_SQE_ERRORS, 54ba2e4443Sseb ETHER_STAT_DEFER_XMTS, 55ba2e4443Sseb ETHER_STAT_TX_LATE_COLLISIONS, 56ba2e4443Sseb ETHER_STAT_EX_COLLISIONS, 57ba2e4443Sseb ETHER_STAT_MACXMT_ERRORS, 58ba2e4443Sseb ETHER_STAT_CARRIER_ERRORS, 59ba2e4443Sseb ETHER_STAT_TOOLONG_ERRORS, 60ba2e4443Sseb ETHER_STAT_MACRCV_ERRORS, 61ba2e4443Sseb 62ba2e4443Sseb /* MII/GMII stats */ 63ba2e4443Sseb ETHER_STAT_XCVR_ADDR, 64ba2e4443Sseb ETHER_STAT_XCVR_ID, 65ba2e4443Sseb ETHER_STAT_XCVR_INUSE, 66ba2e4443Sseb ETHER_STAT_CAP_1000FDX, 67ba2e4443Sseb ETHER_STAT_CAP_1000HDX, 68ba2e4443Sseb ETHER_STAT_CAP_100FDX, 69ba2e4443Sseb ETHER_STAT_CAP_100HDX, 70ba2e4443Sseb ETHER_STAT_CAP_10FDX, 71ba2e4443Sseb ETHER_STAT_CAP_10HDX, 72ba2e4443Sseb ETHER_STAT_CAP_ASMPAUSE, 73ba2e4443Sseb ETHER_STAT_CAP_PAUSE, 74ba2e4443Sseb ETHER_STAT_CAP_AUTONEG, 75ba2e4443Sseb ETHER_STAT_ADV_CAP_1000FDX, 76ba2e4443Sseb ETHER_STAT_ADV_CAP_1000HDX, 77ba2e4443Sseb ETHER_STAT_ADV_CAP_100FDX, 78ba2e4443Sseb ETHER_STAT_ADV_CAP_100HDX, 79ba2e4443Sseb ETHER_STAT_ADV_CAP_10FDX, 80ba2e4443Sseb ETHER_STAT_ADV_CAP_10HDX, 81ba2e4443Sseb ETHER_STAT_ADV_CAP_ASMPAUSE, 82ba2e4443Sseb ETHER_STAT_ADV_CAP_PAUSE, 83ba2e4443Sseb ETHER_STAT_ADV_CAP_AUTONEG, 84ba2e4443Sseb ETHER_STAT_LP_CAP_1000FDX, 85ba2e4443Sseb ETHER_STAT_LP_CAP_1000HDX, 86ba2e4443Sseb ETHER_STAT_LP_CAP_100FDX, 87ba2e4443Sseb ETHER_STAT_LP_CAP_100HDX, 88ba2e4443Sseb ETHER_STAT_LP_CAP_10FDX, 89ba2e4443Sseb ETHER_STAT_LP_CAP_10HDX, 90ba2e4443Sseb ETHER_STAT_LP_CAP_ASMPAUSE, 91ba2e4443Sseb ETHER_STAT_LP_CAP_PAUSE, 92ba2e4443Sseb ETHER_STAT_LP_CAP_AUTONEG, 93ba2e4443Sseb ETHER_STAT_LINK_ASMPAUSE, 94ba2e4443Sseb ETHER_STAT_LINK_PAUSE, 95ba2e4443Sseb ETHER_STAT_LINK_AUTONEG, 969b14cf1dSgd78059 ETHER_STAT_LINK_DUPLEX, 979b14cf1dSgd78059 989b14cf1dSgd78059 ETHER_STAT_TOOSHORT_ERRORS, 999b14cf1dSgd78059 ETHER_STAT_CAP_REMFAULT, 1009b14cf1dSgd78059 ETHER_STAT_ADV_REMFAULT, 1010d2a8e5eSgd78059 ETHER_STAT_LP_REMFAULT, 1020d2a8e5eSgd78059 1030d2a8e5eSgd78059 ETHER_STAT_JABBER_ERRORS, 1040d2a8e5eSgd78059 ETHER_STAT_CAP_100T4, 1050d2a8e5eSgd78059 ETHER_STAT_ADV_CAP_100T4, 1060d2a8e5eSgd78059 ETHER_STAT_LP_CAP_100T4, 107aca118b7Slucy wang - Sun Microsystems - Beijing China 108aca118b7Slucy wang - Sun Microsystems - Beijing China ETHER_STAT_CAP_10GFDX, 109aca118b7Slucy wang - Sun Microsystems - Beijing China ETHER_STAT_ADV_CAP_10GFDX, 110aca118b7Slucy wang - Sun Microsystems - Beijing China ETHER_STAT_LP_CAP_10GFDX, 1113bc4925dSGarrett D'Amore 1123bc4925dSGarrett D'Amore ETHER_STAT_CAP_40GFDX, 1133bc4925dSGarrett D'Amore ETHER_STAT_ADV_CAP_40GFDX, 1143bc4925dSGarrett D'Amore ETHER_STAT_LP_CAP_40GFDX, 1153bc4925dSGarrett D'Amore 1163bc4925dSGarrett D'Amore ETHER_STAT_CAP_100GFDX, 1173bc4925dSGarrett D'Amore ETHER_STAT_ADV_CAP_100GFDX, 1183bc4925dSGarrett D'Amore ETHER_STAT_LP_CAP_100GFDX, 1193bc4925dSGarrett D'Amore 1203bc4925dSGarrett D'Amore ETHER_STAT_CAP_2500FDX, 1213bc4925dSGarrett D'Amore ETHER_STAT_ADV_CAP_2500FDX, 1223bc4925dSGarrett D'Amore ETHER_STAT_LP_CAP_2500FDX, 1233bc4925dSGarrett D'Amore 1243bc4925dSGarrett D'Amore ETHER_STAT_CAP_5000FDX, 1253bc4925dSGarrett D'Amore ETHER_STAT_ADV_CAP_5000FDX, 1263bc4925dSGarrett D'Amore ETHER_STAT_LP_CAP_5000FDX, 127*422542c1SRobert Mustacchi 128*422542c1SRobert Mustacchi ETHER_STAT_CAP_25GFDX, 129*422542c1SRobert Mustacchi ETHER_STAT_ADV_CAP_25GFDX, 130*422542c1SRobert Mustacchi ETHER_STAT_LP_CAP_25GFDX, 131*422542c1SRobert Mustacchi 132*422542c1SRobert Mustacchi ETHER_STAT_CAP_50GFDX, 133*422542c1SRobert Mustacchi ETHER_STAT_ADV_CAP_50GFDX, 134*422542c1SRobert Mustacchi ETHER_STAT_LP_CAP_50GFDX, 135ba2e4443Sseb }; 136ba2e4443Sseb 1373bc4925dSGarrett D'Amore #define ETHER_NSTAT \ 138*422542c1SRobert Mustacchi (ETHER_STAT_LP_CAP_50GFDX - ETHER_STAT_ALIGN_ERRORS + 1) 139ba2e4443Sseb 140ba2e4443Sseb #define ETHER_STAT_ISACOUNTER(_ether_stat) \ 141ba2e4443Sseb ((_ether_stat) == ETHER_STAT_ALIGN_ERRORS || \ 142ba2e4443Sseb (_ether_stat) == ETHER_STAT_FCS_ERRORS || \ 143ba2e4443Sseb (_ether_stat) == ETHER_STAT_FIRST_COLLISIONS || \ 144ba2e4443Sseb (_ether_stat) == ETHER_STAT_MULTI_COLLISIONS || \ 145ba2e4443Sseb (_ether_stat) == ETHER_STAT_SQE_ERRORS || \ 146ba2e4443Sseb (_ether_stat) == ETHER_STAT_DEFER_XMTS || \ 147ba2e4443Sseb (_ether_stat) == ETHER_STAT_TX_LATE_COLLISIONS || \ 148ba2e4443Sseb (_ether_stat) == ETHER_STAT_EX_COLLISIONS || \ 149ba2e4443Sseb (_ether_stat) == ETHER_STAT_MACXMT_ERRORS || \ 150ba2e4443Sseb (_ether_stat) == ETHER_STAT_CARRIER_ERRORS || \ 151ba2e4443Sseb (_ether_stat) == ETHER_STAT_TOOLONG_ERRORS || \ 1529b14cf1dSgd78059 (_ether_stat) == ETHER_STAT_TOOSHORT_ERRORS || \ 1530d2a8e5eSgd78059 (_ether_stat) == ETHER_STAT_JABBER_ERRORS || \ 154ba2e4443Sseb (_ether_stat) == ETHER_STAT_MACRCV_ERRORS) 155ba2e4443Sseb 156ba2e4443Sseb #endif /* _KERNEL */ 157ba2e4443Sseb 158ba2e4443Sseb #ifdef __cplusplus 159ba2e4443Sseb } 160ba2e4443Sseb #endif 161ba2e4443Sseb 162ba2e4443Sseb #endif /* _SYS_MAC_ETHER_H */ 163