6198 Let's EOL cachefs
[illumos-gate.git] / usr / src / uts / common / sys / mac_ether.h
blob32e0168971d2c35ceb05a0595e7580042662a9b6
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SYS_MAC_ETHER_H
27 #define _SYS_MAC_ETHER_H
30 * Ethernet MAC Plugin
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
37 #ifdef _KERNEL
39 #define MAC_PLUGIN_IDENT_ETHER "mac_ether"
42 * Do not reorder, and add only to the end of this list.
44 enum ether_stat {
45 /* RFC 1643 stats */
46 ETHER_STAT_ALIGN_ERRORS = MACTYPE_STAT_MIN,
47 ETHER_STAT_FCS_ERRORS,
48 ETHER_STAT_FIRST_COLLISIONS,
49 ETHER_STAT_MULTI_COLLISIONS,
50 ETHER_STAT_SQE_ERRORS,
51 ETHER_STAT_DEFER_XMTS,
52 ETHER_STAT_TX_LATE_COLLISIONS,
53 ETHER_STAT_EX_COLLISIONS,
54 ETHER_STAT_MACXMT_ERRORS,
55 ETHER_STAT_CARRIER_ERRORS,
56 ETHER_STAT_TOOLONG_ERRORS,
57 ETHER_STAT_MACRCV_ERRORS,
59 /* MII/GMII stats */
60 ETHER_STAT_XCVR_ADDR,
61 ETHER_STAT_XCVR_ID,
62 ETHER_STAT_XCVR_INUSE,
63 ETHER_STAT_CAP_1000FDX,
64 ETHER_STAT_CAP_1000HDX,
65 ETHER_STAT_CAP_100FDX,
66 ETHER_STAT_CAP_100HDX,
67 ETHER_STAT_CAP_10FDX,
68 ETHER_STAT_CAP_10HDX,
69 ETHER_STAT_CAP_ASMPAUSE,
70 ETHER_STAT_CAP_PAUSE,
71 ETHER_STAT_CAP_AUTONEG,
72 ETHER_STAT_ADV_CAP_1000FDX,
73 ETHER_STAT_ADV_CAP_1000HDX,
74 ETHER_STAT_ADV_CAP_100FDX,
75 ETHER_STAT_ADV_CAP_100HDX,
76 ETHER_STAT_ADV_CAP_10FDX,
77 ETHER_STAT_ADV_CAP_10HDX,
78 ETHER_STAT_ADV_CAP_ASMPAUSE,
79 ETHER_STAT_ADV_CAP_PAUSE,
80 ETHER_STAT_ADV_CAP_AUTONEG,
81 ETHER_STAT_LP_CAP_1000FDX,
82 ETHER_STAT_LP_CAP_1000HDX,
83 ETHER_STAT_LP_CAP_100FDX,
84 ETHER_STAT_LP_CAP_100HDX,
85 ETHER_STAT_LP_CAP_10FDX,
86 ETHER_STAT_LP_CAP_10HDX,
87 ETHER_STAT_LP_CAP_ASMPAUSE,
88 ETHER_STAT_LP_CAP_PAUSE,
89 ETHER_STAT_LP_CAP_AUTONEG,
90 ETHER_STAT_LINK_ASMPAUSE,
91 ETHER_STAT_LINK_PAUSE,
92 ETHER_STAT_LINK_AUTONEG,
93 ETHER_STAT_LINK_DUPLEX,
95 ETHER_STAT_TOOSHORT_ERRORS,
96 ETHER_STAT_CAP_REMFAULT,
97 ETHER_STAT_ADV_REMFAULT,
98 ETHER_STAT_LP_REMFAULT,
100 ETHER_STAT_JABBER_ERRORS,
101 ETHER_STAT_CAP_100T4,
102 ETHER_STAT_ADV_CAP_100T4,
103 ETHER_STAT_LP_CAP_100T4,
105 ETHER_STAT_CAP_10GFDX,
106 ETHER_STAT_ADV_CAP_10GFDX,
107 ETHER_STAT_LP_CAP_10GFDX,
110 #define ETHER_NSTAT (ETHER_STAT_LP_CAP_10GFDX - ETHER_STAT_ALIGN_ERRORS + 1)
112 #define ETHER_STAT_ISACOUNTER(_ether_stat) \
113 ((_ether_stat) == ETHER_STAT_ALIGN_ERRORS || \
114 (_ether_stat) == ETHER_STAT_FCS_ERRORS || \
115 (_ether_stat) == ETHER_STAT_FIRST_COLLISIONS || \
116 (_ether_stat) == ETHER_STAT_MULTI_COLLISIONS || \
117 (_ether_stat) == ETHER_STAT_SQE_ERRORS || \
118 (_ether_stat) == ETHER_STAT_DEFER_XMTS || \
119 (_ether_stat) == ETHER_STAT_TX_LATE_COLLISIONS || \
120 (_ether_stat) == ETHER_STAT_EX_COLLISIONS || \
121 (_ether_stat) == ETHER_STAT_MACXMT_ERRORS || \
122 (_ether_stat) == ETHER_STAT_CARRIER_ERRORS || \
123 (_ether_stat) == ETHER_STAT_TOOLONG_ERRORS || \
124 (_ether_stat) == ETHER_STAT_TOOSHORT_ERRORS || \
125 (_ether_stat) == ETHER_STAT_JABBER_ERRORS || \
126 (_ether_stat) == ETHER_STAT_MACRCV_ERRORS)
129 * Some drivers have a need to determine if a particular stat is a MII/GMII
130 * physical layer 802.3 stat.
132 #define ETHER_STAT_ISMII(_ether_stat) \
133 ((_ether_stat) == ETHER_STAT_XCVR_ADDR || \
134 (_ether_stat) == ETHER_STAT_XCVR_ID || \
135 (_ether_stat) == ETHER_STAT_XCVR_INUSE || \
136 (_ether_stat) == ETHER_STAT_CAP_1000FDX || \
137 (_ether_stat) == ETHER_STAT_CAP_1000HDX || \
138 (_ether_stat) == ETHER_STAT_CAP_100FDX || \
139 (_ether_stat) == ETHER_STAT_CAP_100HDX || \
140 (_ether_stat) == ETHER_STAT_CAP_10FDX || \
141 (_ether_stat) == ETHER_STAT_CAP_10HDX || \
142 (_ether_stat) == ETHER_STAT_CAP_ASMPAUSE || \
143 (_ether_stat) == ETHER_STAT_CAP_PAUSE || \
144 (_ether_stat) == ETHER_STAT_CAP_AUTONEG || \
145 (_ether_stat) == ETHER_STAT_CAP_REMFAULT || \
146 (_ether_stat) == ETHER_STAT_CAP_100T4 || \
147 (_ether_stat) == ETHER_STAT_ADV_CAP_1000FDX || \
148 (_ether_stat) == ETHER_STAT_ADV_CAP_1000HDX || \
149 (_ether_stat) == ETHER_STAT_ADV_CAP_100FDX || \
150 (_ether_stat) == ETHER_STAT_ADV_CAP_100HDX || \
151 (_ether_stat) == ETHER_STAT_ADV_CAP_10FDX || \
152 (_ether_stat) == ETHER_STAT_ADV_CAP_10HDX || \
153 (_ether_stat) == ETHER_STAT_ADV_CAP_ASMPAUSE || \
154 (_ether_stat) == ETHER_STAT_ADV_CAP_PAUSE || \
155 (_ether_stat) == ETHER_STAT_ADV_CAP_AUTONEG || \
156 (_ether_stat) == ETHER_STAT_ADV_REMFAULT || \
157 (_ether_stat) == ETHER_STAT_ADV_CAP_100T4 || \
158 (_ether_stat) == ETHER_STAT_LP_CAP_1000FDX || \
159 (_ether_stat) == ETHER_STAT_LP_CAP_1000HDX || \
160 (_ether_stat) == ETHER_STAT_LP_CAP_100FDX || \
161 (_ether_stat) == ETHER_STAT_LP_CAP_100HDX || \
162 (_ether_stat) == ETHER_STAT_LP_CAP_10FDX || \
163 (_ether_stat) == ETHER_STAT_LP_CAP_10HDX || \
164 (_ether_stat) == ETHER_STAT_LP_CAP_ASMPAUSE || \
165 (_ether_stat) == ETHER_STAT_LP_CAP_PAUSE || \
166 (_ether_stat) == ETHER_STAT_LP_CAP_AUTONEG || \
167 (_ether_stat) == ETHER_STAT_LP_REMFAULT || \
168 (_ether_stat) == ETHER_STAT_LP_CAP_100T4 || \
169 (_ether_stat) == ETHER_STAT_LINK_ASMPAUSE || \
170 (_ether_stat) == ETHER_STAT_LINK_PAUSE || \
171 (_ether_stat) == ETHER_STAT_LINK_AUTONEG || \
172 (_ether_stat) == ETHER_STAT_LINK_DUPLEX)
174 #endif /* _KERNEL */
176 #ifdef __cplusplus
178 #endif
180 #endif /* _SYS_MAC_ETHER_H */