]> Git Repo - linux.git/blob - include/uapi/linux/ethtool_netlink.h
Linux 6.14-rc3
[linux.git] / include / uapi / linux / ethtool_netlink.h
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  *
5  * See Documentation/networking/ethtool-netlink.rst in kernel source tree for
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>
13 #include <linux/ethtool_netlink_generated.h>
14
15 #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
16                           ETHTOOL_FLAG_OMIT_REPLY | \
17                           ETHTOOL_FLAG_STATS)
18
19 /* CABLE TEST NOTIFY */
20 enum {
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,
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,
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,
34 };
35
36 enum {
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
43 /* Information source for specific results. */
44 enum {
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
52 enum {
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
58 /* CABLE TEST TDR NOTIFY */
59
60 enum {
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
69 enum {
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
77 enum {
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
87 enum {
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
97 enum {
98         ETHTOOL_STATS_ETH_PHY,
99         ETHTOOL_STATS_ETH_MAC,
100         ETHTOOL_STATS_ETH_CTRL,
101         ETHTOOL_STATS_RMON,
102         ETHTOOL_STATS_PHY,
103
104         /* add new constants above here */
105         __ETHTOOL_STATS_CNT
106 };
107
108 enum {
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
117 enum {
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
169 enum {
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
182 enum {
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
197 enum {
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 };
210
211 /* generic netlink info */
212 #define ETHTOOL_GENL_NAME "ethtool"
213 #define ETHTOOL_GENL_VERSION 1
214
215 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
216
217 #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */
This page took 0.042266 seconds and 4 git commands to generate.