Merge tag 'pci-v6.16-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
[linux-2.6-block.git] / include / uapi / linux / ethtool_netlink.h
CommitLineData
2b4a8990
MK
1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2/*
3 * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool
4 *
72ef5e52 5 * See Documentation/networking/ethtool-netlink.rst in kernel source tree for
2b4a8990
MK
6 * doucumentation of the interface.
7 */
8
9#ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
10#define _UAPI_LINUX_ETHTOOL_NETLINK_H_
11
12#include <linux/ethtool.h>
49922401 13#include <linux/ethtool_netlink_generated.h>
041b1c5d
MK
14
15#define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
9a27a330
JK
16 ETHTOOL_FLAG_OMIT_REPLY | \
17 ETHTOOL_FLAG_STATS)
041b1c5d 18
b28efb93
AL
19/* CABLE TEST NOTIFY */
20enum {
21 ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,
22 ETHTOOL_A_CABLE_RESULT_CODE_OK,
23 ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
24 ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
25 ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
9cc8a6e6
PD
26 /* detected reflection caused by the impedance discontinuity between
27 * a regular 100 Ohm cable and a part with the abnormal impedance value
28 */
29 ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH,
2140e63c
OR
30 /* TDR not possible due to high noise level */
31 ETHTOOL_A_CABLE_RESULT_CODE_NOISE,
32 /* TDR resolution not possible / out of distance */
33 ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE,
b28efb93
AL
34};
35
36enum {
37 ETHTOOL_A_CABLE_PAIR_A,
38 ETHTOOL_A_CABLE_PAIR_B,
39 ETHTOOL_A_CABLE_PAIR_C,
40 ETHTOOL_A_CABLE_PAIR_D,
41};
42
abcd3026
OR
43/* Information source for specific results. */
44enum {
45 ETHTOOL_A_CABLE_INF_SRC_UNSPEC,
46 /* Results provided by the Time Domain Reflectometry (TDR) */
47 ETHTOOL_A_CABLE_INF_SRC_TDR,
48 /* Results provided by the Active Link Cable Diagnostic (ALCD) */
49 ETHTOOL_A_CABLE_INF_SRC_ALCD,
50};
51
b28efb93
AL
52enum {
53 ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,
54 ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,
55 ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED
56};
57
a331172b
AL
58/* CABLE TEST TDR NOTIFY */
59
60enum {
61 ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,
62 ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */
63 ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */
64
65 __ETHTOOL_A_CABLE_AMPLITUDE_CNT,
66 ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)
67};
68
69enum {
70 ETHTOOL_A_CABLE_PULSE_UNSPEC,
71 ETHTOOL_A_CABLE_PULSE_mV, /* s16 */
72
73 __ETHTOOL_A_CABLE_PULSE_CNT,
74 ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)
75};
76
77enum {
78 ETHTOOL_A_CABLE_STEP_UNSPEC,
79 ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */
80 ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */
81 ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */
82
83 __ETHTOOL_A_CABLE_STEP_CNT,
84 ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)
85};
86
87enum {
88 ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,
89 ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */
90 ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */
91 ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */
92
93 __ETHTOOL_A_CABLE_TDR_NEST_CNT,
94 ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)
95};
96
f09ea6fb
JK
97enum {
98 ETHTOOL_STATS_ETH_PHY,
ca224454 99 ETHTOOL_STATS_ETH_MAC,
bfad2b97 100 ETHTOOL_STATS_ETH_CTRL,
a8b06e9d 101 ETHTOOL_STATS_RMON,
6167c0b6 102 ETHTOOL_STATS_PHY,
f09ea6fb
JK
103
104 /* add new constants above here */
105 __ETHTOOL_STATS_CNT
106};
107
f09ea6fb
JK
108enum {
109 /* 30.3.2.1.5 aSymbolErrorDuringCarrier */
110 ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
111
112 /* add new constants above here */
113 __ETHTOOL_A_STATS_ETH_PHY_CNT,
114 ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
115};
116
ca224454
JK
117enum {
118 /* 30.3.1.1.2 aFramesTransmittedOK */
119 ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
120 /* 30.3.1.1.3 aSingleCollisionFrames */
121 ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
122 /* 30.3.1.1.4 aMultipleCollisionFrames */
123 ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
124 /* 30.3.1.1.5 aFramesReceivedOK */
125 ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
126 /* 30.3.1.1.6 aFrameCheckSequenceErrors */
127 ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
128 /* 30.3.1.1.7 aAlignmentErrors */
129 ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
130 /* 30.3.1.1.8 aOctetsTransmittedOK */
131 ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
132 /* 30.3.1.1.9 aFramesWithDeferredXmissions */
133 ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
134 /* 30.3.1.1.10 aLateCollisions */
135 ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
136 /* 30.3.1.1.11 aFramesAbortedDueToXSColls */
137 ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
138 /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
139 ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
140 /* 30.3.1.1.13 aCarrierSenseErrors */
141 ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
142 /* 30.3.1.1.14 aOctetsReceivedOK */
143 ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
144 /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
145 ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
146
147 /* 30.3.1.1.18 aMulticastFramesXmittedOK */
148 ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
149 /* 30.3.1.1.19 aBroadcastFramesXmittedOK */
150 ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
151 /* 30.3.1.1.20 aFramesWithExcessiveDeferral */
152 ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
153 /* 30.3.1.1.21 aMulticastFramesReceivedOK */
154 ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
155 /* 30.3.1.1.22 aBroadcastFramesReceivedOK */
156 ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
157 /* 30.3.1.1.23 aInRangeLengthErrors */
158 ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
159 /* 30.3.1.1.24 aOutOfRangeLengthField */
160 ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
161 /* 30.3.1.1.25 aFrameTooLongErrors */
162 ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
163
164 /* add new constants above here */
165 __ETHTOOL_A_STATS_ETH_MAC_CNT,
166 ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
167};
168
bfad2b97
JK
169enum {
170 /* 30.3.3.3 aMACControlFramesTransmitted */
171 ETHTOOL_A_STATS_ETH_CTRL_3_TX,
172 /* 30.3.3.4 aMACControlFramesReceived */
173 ETHTOOL_A_STATS_ETH_CTRL_4_RX,
174 /* 30.3.3.5 aUnsupportedOpcodesReceived */
175 ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
176
177 /* add new constants above here */
178 __ETHTOOL_A_STATS_ETH_CTRL_CNT,
179 ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
180};
181
a8b06e9d
JK
182enum {
183 /* etherStatsUndersizePkts */
184 ETHTOOL_A_STATS_RMON_UNDERSIZE,
185 /* etherStatsOversizePkts */
186 ETHTOOL_A_STATS_RMON_OVERSIZE,
187 /* etherStatsFragments */
188 ETHTOOL_A_STATS_RMON_FRAG,
189 /* etherStatsJabbers */
190 ETHTOOL_A_STATS_RMON_JABBER,
191
192 /* add new constants above here */
193 __ETHTOOL_A_STATS_RMON_CNT,
194 ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
195};
196
6167c0b6
JK
197enum {
198 /* Basic packet counters if PHY has separate counters from the MAC */
199 ETHTOOL_A_STATS_PHY_RX_PKTS,
200 ETHTOOL_A_STATS_PHY_RX_BYTES,
201 ETHTOOL_A_STATS_PHY_RX_ERRORS,
202 ETHTOOL_A_STATS_PHY_TX_PKTS,
203 ETHTOOL_A_STATS_PHY_TX_BYTES,
204 ETHTOOL_A_STATS_PHY_TX_ERRORS,
205
206 /* add new constants above here */
207 __ETHTOOL_A_STATS_PHY_CNT,
208 ETHTOOL_A_STATS_PHY_MAX = (__ETHTOOL_A_STATS_PHY_CNT - 1)
209};
17194be4 210
6b08d6c1
MK
211#define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
212
2b4a8990 213#endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */