xref: /titanic_51/usr/src/uts/common/sys/mac_ether.h (revision 422542c189efc4f3182b740c580bb58497805c45)
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