ethtool_netlink.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888
  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. #ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_
  9. #define _UAPI_LINUX_ETHTOOL_NETLINK_H_
  10. #include <linux/ethtool.h>
  11. /* message types - userspace to kernel */
  12. enum {
  13. ETHTOOL_MSG_USER_NONE,
  14. ETHTOOL_MSG_STRSET_GET,
  15. ETHTOOL_MSG_LINKINFO_GET,
  16. ETHTOOL_MSG_LINKINFO_SET,
  17. ETHTOOL_MSG_LINKMODES_GET,
  18. ETHTOOL_MSG_LINKMODES_SET,
  19. ETHTOOL_MSG_LINKSTATE_GET,
  20. ETHTOOL_MSG_DEBUG_GET,
  21. ETHTOOL_MSG_DEBUG_SET,
  22. ETHTOOL_MSG_WOL_GET,
  23. ETHTOOL_MSG_WOL_SET,
  24. ETHTOOL_MSG_FEATURES_GET,
  25. ETHTOOL_MSG_FEATURES_SET,
  26. ETHTOOL_MSG_PRIVFLAGS_GET,
  27. ETHTOOL_MSG_PRIVFLAGS_SET,
  28. ETHTOOL_MSG_RINGS_GET,
  29. ETHTOOL_MSG_RINGS_SET,
  30. ETHTOOL_MSG_CHANNELS_GET,
  31. ETHTOOL_MSG_CHANNELS_SET,
  32. ETHTOOL_MSG_COALESCE_GET,
  33. ETHTOOL_MSG_COALESCE_SET,
  34. ETHTOOL_MSG_PAUSE_GET,
  35. ETHTOOL_MSG_PAUSE_SET,
  36. ETHTOOL_MSG_EEE_GET,
  37. ETHTOOL_MSG_EEE_SET,
  38. ETHTOOL_MSG_TSINFO_GET,
  39. ETHTOOL_MSG_CABLE_TEST_ACT,
  40. ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
  41. ETHTOOL_MSG_TUNNEL_INFO_GET,
  42. ETHTOOL_MSG_FEC_GET,
  43. ETHTOOL_MSG_FEC_SET,
  44. ETHTOOL_MSG_MODULE_EEPROM_GET,
  45. ETHTOOL_MSG_STATS_GET,
  46. ETHTOOL_MSG_PHC_VCLOCKS_GET,
  47. ETHTOOL_MSG_MODULE_GET,
  48. ETHTOOL_MSG_MODULE_SET,
  49. ETHTOOL_MSG_PSE_GET,
  50. ETHTOOL_MSG_PSE_SET,
  51. /* add new constants above here */
  52. __ETHTOOL_MSG_USER_CNT,
  53. ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
  54. };
  55. /* message types - kernel to userspace */
  56. enum {
  57. ETHTOOL_MSG_KERNEL_NONE,
  58. ETHTOOL_MSG_STRSET_GET_REPLY,
  59. ETHTOOL_MSG_LINKINFO_GET_REPLY,
  60. ETHTOOL_MSG_LINKINFO_NTF,
  61. ETHTOOL_MSG_LINKMODES_GET_REPLY,
  62. ETHTOOL_MSG_LINKMODES_NTF,
  63. ETHTOOL_MSG_LINKSTATE_GET_REPLY,
  64. ETHTOOL_MSG_DEBUG_GET_REPLY,
  65. ETHTOOL_MSG_DEBUG_NTF,
  66. ETHTOOL_MSG_WOL_GET_REPLY,
  67. ETHTOOL_MSG_WOL_NTF,
  68. ETHTOOL_MSG_FEATURES_GET_REPLY,
  69. ETHTOOL_MSG_FEATURES_SET_REPLY,
  70. ETHTOOL_MSG_FEATURES_NTF,
  71. ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
  72. ETHTOOL_MSG_PRIVFLAGS_NTF,
  73. ETHTOOL_MSG_RINGS_GET_REPLY,
  74. ETHTOOL_MSG_RINGS_NTF,
  75. ETHTOOL_MSG_CHANNELS_GET_REPLY,
  76. ETHTOOL_MSG_CHANNELS_NTF,
  77. ETHTOOL_MSG_COALESCE_GET_REPLY,
  78. ETHTOOL_MSG_COALESCE_NTF,
  79. ETHTOOL_MSG_PAUSE_GET_REPLY,
  80. ETHTOOL_MSG_PAUSE_NTF,
  81. ETHTOOL_MSG_EEE_GET_REPLY,
  82. ETHTOOL_MSG_EEE_NTF,
  83. ETHTOOL_MSG_TSINFO_GET_REPLY,
  84. ETHTOOL_MSG_CABLE_TEST_NTF,
  85. ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
  86. ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
  87. ETHTOOL_MSG_FEC_GET_REPLY,
  88. ETHTOOL_MSG_FEC_NTF,
  89. ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
  90. ETHTOOL_MSG_STATS_GET_REPLY,
  91. ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
  92. ETHTOOL_MSG_MODULE_GET_REPLY,
  93. ETHTOOL_MSG_MODULE_NTF,
  94. ETHTOOL_MSG_PSE_GET_REPLY,
  95. /* add new constants above here */
  96. __ETHTOOL_MSG_KERNEL_CNT,
  97. ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
  98. };
  99. /* request header */
  100. /* use compact bitsets in reply */
  101. #define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
  102. /* provide optional reply for SET or ACT requests */
  103. #define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
  104. /* request statistics, if supported by the driver */
  105. #define ETHTOOL_FLAG_STATS (1 << 2)
  106. #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
  107. ETHTOOL_FLAG_OMIT_REPLY | \
  108. ETHTOOL_FLAG_STATS)
  109. enum {
  110. ETHTOOL_A_HEADER_UNSPEC,
  111. ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */
  112. ETHTOOL_A_HEADER_DEV_NAME, /* string */
  113. ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */
  114. /* add new constants above here */
  115. __ETHTOOL_A_HEADER_CNT,
  116. ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
  117. };
  118. /* bit sets */
  119. enum {
  120. ETHTOOL_A_BITSET_BIT_UNSPEC,
  121. ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */
  122. ETHTOOL_A_BITSET_BIT_NAME, /* string */
  123. ETHTOOL_A_BITSET_BIT_VALUE, /* flag */
  124. /* add new constants above here */
  125. __ETHTOOL_A_BITSET_BIT_CNT,
  126. ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
  127. };
  128. enum {
  129. ETHTOOL_A_BITSET_BITS_UNSPEC,
  130. ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */
  131. /* add new constants above here */
  132. __ETHTOOL_A_BITSET_BITS_CNT,
  133. ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
  134. };
  135. enum {
  136. ETHTOOL_A_BITSET_UNSPEC,
  137. ETHTOOL_A_BITSET_NOMASK, /* flag */
  138. ETHTOOL_A_BITSET_SIZE, /* u32 */
  139. ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */
  140. ETHTOOL_A_BITSET_VALUE, /* binary */
  141. ETHTOOL_A_BITSET_MASK, /* binary */
  142. /* add new constants above here */
  143. __ETHTOOL_A_BITSET_CNT,
  144. ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
  145. };
  146. /* string sets */
  147. enum {
  148. ETHTOOL_A_STRING_UNSPEC,
  149. ETHTOOL_A_STRING_INDEX, /* u32 */
  150. ETHTOOL_A_STRING_VALUE, /* string */
  151. /* add new constants above here */
  152. __ETHTOOL_A_STRING_CNT,
  153. ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
  154. };
  155. enum {
  156. ETHTOOL_A_STRINGS_UNSPEC,
  157. ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */
  158. /* add new constants above here */
  159. __ETHTOOL_A_STRINGS_CNT,
  160. ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
  161. };
  162. enum {
  163. ETHTOOL_A_STRINGSET_UNSPEC,
  164. ETHTOOL_A_STRINGSET_ID, /* u32 */
  165. ETHTOOL_A_STRINGSET_COUNT, /* u32 */
  166. ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */
  167. /* add new constants above here */
  168. __ETHTOOL_A_STRINGSET_CNT,
  169. ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
  170. };
  171. enum {
  172. ETHTOOL_A_STRINGSETS_UNSPEC,
  173. ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */
  174. /* add new constants above here */
  175. __ETHTOOL_A_STRINGSETS_CNT,
  176. ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
  177. };
  178. /* STRSET */
  179. enum {
  180. ETHTOOL_A_STRSET_UNSPEC,
  181. ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */
  182. ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */
  183. ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */
  184. /* add new constants above here */
  185. __ETHTOOL_A_STRSET_CNT,
  186. ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
  187. };
  188. /* LINKINFO */
  189. enum {
  190. ETHTOOL_A_LINKINFO_UNSPEC,
  191. ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */
  192. ETHTOOL_A_LINKINFO_PORT, /* u8 */
  193. ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */
  194. ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */
  195. ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */
  196. ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */
  197. /* add new constants above here */
  198. __ETHTOOL_A_LINKINFO_CNT,
  199. ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
  200. };
  201. /* LINKMODES */
  202. enum {
  203. ETHTOOL_A_LINKMODES_UNSPEC,
  204. ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
  205. ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
  206. ETHTOOL_A_LINKMODES_OURS, /* bitset */
  207. ETHTOOL_A_LINKMODES_PEER, /* bitset */
  208. ETHTOOL_A_LINKMODES_SPEED, /* u32 */
  209. ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
  210. ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
  211. ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
  212. ETHTOOL_A_LINKMODES_LANES, /* u32 */
  213. ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */
  214. /* add new constants above here */
  215. __ETHTOOL_A_LINKMODES_CNT,
  216. ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
  217. };
  218. /* LINKSTATE */
  219. enum {
  220. ETHTOOL_A_LINKSTATE_UNSPEC,
  221. ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */
  222. ETHTOOL_A_LINKSTATE_LINK, /* u8 */
  223. ETHTOOL_A_LINKSTATE_SQI, /* u32 */
  224. ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
  225. ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
  226. ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
  227. /* add new constants above here */
  228. __ETHTOOL_A_LINKSTATE_CNT,
  229. ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
  230. };
  231. /* DEBUG */
  232. enum {
  233. ETHTOOL_A_DEBUG_UNSPEC,
  234. ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */
  235. ETHTOOL_A_DEBUG_MSGMASK, /* bitset */
  236. /* add new constants above here */
  237. __ETHTOOL_A_DEBUG_CNT,
  238. ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
  239. };
  240. /* WOL */
  241. enum {
  242. ETHTOOL_A_WOL_UNSPEC,
  243. ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */
  244. ETHTOOL_A_WOL_MODES, /* bitset */
  245. ETHTOOL_A_WOL_SOPASS, /* binary */
  246. /* add new constants above here */
  247. __ETHTOOL_A_WOL_CNT,
  248. ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
  249. };
  250. /* FEATURES */
  251. enum {
  252. ETHTOOL_A_FEATURES_UNSPEC,
  253. ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */
  254. ETHTOOL_A_FEATURES_HW, /* bitset */
  255. ETHTOOL_A_FEATURES_WANTED, /* bitset */
  256. ETHTOOL_A_FEATURES_ACTIVE, /* bitset */
  257. ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */
  258. /* add new constants above here */
  259. __ETHTOOL_A_FEATURES_CNT,
  260. ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
  261. };
  262. /* PRIVFLAGS */
  263. enum {
  264. ETHTOOL_A_PRIVFLAGS_UNSPEC,
  265. ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */
  266. ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */
  267. /* add new constants above here */
  268. __ETHTOOL_A_PRIVFLAGS_CNT,
  269. ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
  270. };
  271. /* RINGS */
  272. enum {
  273. ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
  274. ETHTOOL_TCP_DATA_SPLIT_DISABLED,
  275. ETHTOOL_TCP_DATA_SPLIT_ENABLED,
  276. };
  277. enum {
  278. ETHTOOL_A_RINGS_UNSPEC,
  279. ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */
  280. ETHTOOL_A_RINGS_RX_MAX, /* u32 */
  281. ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */
  282. ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */
  283. ETHTOOL_A_RINGS_TX_MAX, /* u32 */
  284. ETHTOOL_A_RINGS_RX, /* u32 */
  285. ETHTOOL_A_RINGS_RX_MINI, /* u32 */
  286. ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */
  287. ETHTOOL_A_RINGS_TX, /* u32 */
  288. ETHTOOL_A_RINGS_RX_BUF_LEN, /* u32 */
  289. ETHTOOL_A_RINGS_TCP_DATA_SPLIT, /* u8 */
  290. ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */
  291. ETHTOOL_A_RINGS_TX_PUSH, /* u8 */
  292. /* add new constants above here */
  293. __ETHTOOL_A_RINGS_CNT,
  294. ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
  295. };
  296. /* CHANNELS */
  297. enum {
  298. ETHTOOL_A_CHANNELS_UNSPEC,
  299. ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */
  300. ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */
  301. ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */
  302. ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */
  303. ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */
  304. ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */
  305. ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */
  306. ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */
  307. ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */
  308. /* add new constants above here */
  309. __ETHTOOL_A_CHANNELS_CNT,
  310. ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
  311. };
  312. /* COALESCE */
  313. enum {
  314. ETHTOOL_A_COALESCE_UNSPEC,
  315. ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
  316. ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
  317. ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
  318. ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
  319. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
  320. ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
  321. ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
  322. ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
  323. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
  324. ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
  325. ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
  326. ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
  327. ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
  328. ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
  329. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
  330. ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
  331. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
  332. ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
  333. ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
  334. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
  335. ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
  336. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
  337. ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
  338. ETHTOOL_A_COALESCE_USE_CQE_MODE_TX, /* u8 */
  339. ETHTOOL_A_COALESCE_USE_CQE_MODE_RX, /* u8 */
  340. /* add new constants above here */
  341. __ETHTOOL_A_COALESCE_CNT,
  342. ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
  343. };
  344. /* PAUSE */
  345. enum {
  346. ETHTOOL_A_PAUSE_UNSPEC,
  347. ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */
  348. ETHTOOL_A_PAUSE_AUTONEG, /* u8 */
  349. ETHTOOL_A_PAUSE_RX, /* u8 */
  350. ETHTOOL_A_PAUSE_TX, /* u8 */
  351. ETHTOOL_A_PAUSE_STATS, /* nest - _PAUSE_STAT_* */
  352. /* add new constants above here */
  353. __ETHTOOL_A_PAUSE_CNT,
  354. ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
  355. };
  356. enum {
  357. ETHTOOL_A_PAUSE_STAT_UNSPEC,
  358. ETHTOOL_A_PAUSE_STAT_PAD,
  359. ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
  360. ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
  361. /* add new constants above here
  362. * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats!
  363. */
  364. __ETHTOOL_A_PAUSE_STAT_CNT,
  365. ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)
  366. };
  367. /* EEE */
  368. enum {
  369. ETHTOOL_A_EEE_UNSPEC,
  370. ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */
  371. ETHTOOL_A_EEE_MODES_OURS, /* bitset */
  372. ETHTOOL_A_EEE_MODES_PEER, /* bitset */
  373. ETHTOOL_A_EEE_ACTIVE, /* u8 */
  374. ETHTOOL_A_EEE_ENABLED, /* u8 */
  375. ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */
  376. ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */
  377. /* add new constants above here */
  378. __ETHTOOL_A_EEE_CNT,
  379. ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
  380. };
  381. /* TSINFO */
  382. enum {
  383. ETHTOOL_A_TSINFO_UNSPEC,
  384. ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */
  385. ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */
  386. ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */
  387. ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */
  388. ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */
  389. /* add new constants above here */
  390. __ETHTOOL_A_TSINFO_CNT,
  391. ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
  392. };
  393. /* PHC VCLOCKS */
  394. enum {
  395. ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
  396. ETHTOOL_A_PHC_VCLOCKS_HEADER, /* nest - _A_HEADER_* */
  397. ETHTOOL_A_PHC_VCLOCKS_NUM, /* u32 */
  398. ETHTOOL_A_PHC_VCLOCKS_INDEX, /* array, s32 */
  399. /* add new constants above here */
  400. __ETHTOOL_A_PHC_VCLOCKS_CNT,
  401. ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
  402. };
  403. /* CABLE TEST */
  404. enum {
  405. ETHTOOL_A_CABLE_TEST_UNSPEC,
  406. ETHTOOL_A_CABLE_TEST_HEADER, /* nest - _A_HEADER_* */
  407. /* add new constants above here */
  408. __ETHTOOL_A_CABLE_TEST_CNT,
  409. ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1
  410. };
  411. /* CABLE TEST NOTIFY */
  412. enum {
  413. ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,
  414. ETHTOOL_A_CABLE_RESULT_CODE_OK,
  415. ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
  416. ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
  417. ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
  418. };
  419. enum {
  420. ETHTOOL_A_CABLE_PAIR_A,
  421. ETHTOOL_A_CABLE_PAIR_B,
  422. ETHTOOL_A_CABLE_PAIR_C,
  423. ETHTOOL_A_CABLE_PAIR_D,
  424. };
  425. enum {
  426. ETHTOOL_A_CABLE_RESULT_UNSPEC,
  427. ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
  428. ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */
  429. __ETHTOOL_A_CABLE_RESULT_CNT,
  430. ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1)
  431. };
  432. enum {
  433. ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC,
  434. ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
  435. ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */
  436. __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT,
  437. ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)
  438. };
  439. enum {
  440. ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,
  441. ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,
  442. ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED
  443. };
  444. enum {
  445. ETHTOOL_A_CABLE_NEST_UNSPEC,
  446. ETHTOOL_A_CABLE_NEST_RESULT, /* nest - ETHTOOL_A_CABLE_RESULT_ */
  447. ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */
  448. __ETHTOOL_A_CABLE_NEST_CNT,
  449. ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1)
  450. };
  451. enum {
  452. ETHTOOL_A_CABLE_TEST_NTF_UNSPEC,
  453. ETHTOOL_A_CABLE_TEST_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
  454. ETHTOOL_A_CABLE_TEST_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
  455. ETHTOOL_A_CABLE_TEST_NTF_NEST, /* nest - of results: */
  456. __ETHTOOL_A_CABLE_TEST_NTF_CNT,
  457. ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1)
  458. };
  459. /* CABLE TEST TDR */
  460. enum {
  461. ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC,
  462. ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, /* u32 */
  463. ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, /* u32 */
  464. ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, /* u32 */
  465. ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, /* u8 */
  466. /* add new constants above here */
  467. __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT,
  468. ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1
  469. };
  470. enum {
  471. ETHTOOL_A_CABLE_TEST_TDR_UNSPEC,
  472. ETHTOOL_A_CABLE_TEST_TDR_HEADER, /* nest - _A_HEADER_* */
  473. ETHTOOL_A_CABLE_TEST_TDR_CFG, /* nest - *_TDR_CFG_* */
  474. /* add new constants above here */
  475. __ETHTOOL_A_CABLE_TEST_TDR_CNT,
  476. ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1
  477. };
  478. /* CABLE TEST TDR NOTIFY */
  479. enum {
  480. ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,
  481. ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */
  482. ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */
  483. __ETHTOOL_A_CABLE_AMPLITUDE_CNT,
  484. ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)
  485. };
  486. enum {
  487. ETHTOOL_A_CABLE_PULSE_UNSPEC,
  488. ETHTOOL_A_CABLE_PULSE_mV, /* s16 */
  489. __ETHTOOL_A_CABLE_PULSE_CNT,
  490. ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)
  491. };
  492. enum {
  493. ETHTOOL_A_CABLE_STEP_UNSPEC,
  494. ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */
  495. ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */
  496. ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */
  497. __ETHTOOL_A_CABLE_STEP_CNT,
  498. ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)
  499. };
  500. enum {
  501. ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,
  502. ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */
  503. ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */
  504. ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */
  505. __ETHTOOL_A_CABLE_TDR_NEST_CNT,
  506. ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)
  507. };
  508. enum {
  509. ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC,
  510. ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
  511. ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
  512. ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, /* nest - of results: */
  513. /* add new constants above here */
  514. __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT,
  515. ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1
  516. };
  517. /* TUNNEL INFO */
  518. enum {
  519. ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
  520. ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,
  521. ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,
  522. __ETHTOOL_UDP_TUNNEL_TYPE_CNT
  523. };
  524. enum {
  525. ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,
  526. ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */
  527. ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */
  528. /* add new constants above here */
  529. __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,
  530. ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)
  531. };
  532. enum {
  533. ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,
  534. ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */
  535. ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */
  536. ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */
  537. /* add new constants above here */
  538. __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,
  539. ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)
  540. };
  541. enum {
  542. ETHTOOL_A_TUNNEL_UDP_UNSPEC,
  543. ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */
  544. /* add new constants above here */
  545. __ETHTOOL_A_TUNNEL_UDP_CNT,
  546. ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)
  547. };
  548. enum {
  549. ETHTOOL_A_TUNNEL_INFO_UNSPEC,
  550. ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */
  551. ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */
  552. /* add new constants above here */
  553. __ETHTOOL_A_TUNNEL_INFO_CNT,
  554. ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
  555. };
  556. /* FEC */
  557. enum {
  558. ETHTOOL_A_FEC_UNSPEC,
  559. ETHTOOL_A_FEC_HEADER, /* nest - _A_HEADER_* */
  560. ETHTOOL_A_FEC_MODES, /* bitset */
  561. ETHTOOL_A_FEC_AUTO, /* u8 */
  562. ETHTOOL_A_FEC_ACTIVE, /* u32 */
  563. ETHTOOL_A_FEC_STATS, /* nest - _A_FEC_STAT */
  564. __ETHTOOL_A_FEC_CNT,
  565. ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
  566. };
  567. enum {
  568. ETHTOOL_A_FEC_STAT_UNSPEC,
  569. ETHTOOL_A_FEC_STAT_PAD,
  570. ETHTOOL_A_FEC_STAT_CORRECTED, /* array, u64 */
  571. ETHTOOL_A_FEC_STAT_UNCORR, /* array, u64 */
  572. ETHTOOL_A_FEC_STAT_CORR_BITS, /* array, u64 */
  573. /* add new constants above here */
  574. __ETHTOOL_A_FEC_STAT_CNT,
  575. ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
  576. };
  577. /* MODULE EEPROM */
  578. enum {
  579. ETHTOOL_A_MODULE_EEPROM_UNSPEC,
  580. ETHTOOL_A_MODULE_EEPROM_HEADER, /* nest - _A_HEADER_* */
  581. ETHTOOL_A_MODULE_EEPROM_OFFSET, /* u32 */
  582. ETHTOOL_A_MODULE_EEPROM_LENGTH, /* u32 */
  583. ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */
  584. ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */
  585. ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */
  586. ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */
  587. __ETHTOOL_A_MODULE_EEPROM_CNT,
  588. ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
  589. };
  590. /* STATS */
  591. enum {
  592. ETHTOOL_A_STATS_UNSPEC,
  593. ETHTOOL_A_STATS_PAD,
  594. ETHTOOL_A_STATS_HEADER, /* nest - _A_HEADER_* */
  595. ETHTOOL_A_STATS_GROUPS, /* bitset */
  596. ETHTOOL_A_STATS_GRP, /* nest - _A_STATS_GRP_* */
  597. /* add new constants above here */
  598. __ETHTOOL_A_STATS_CNT,
  599. ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
  600. };
  601. enum {
  602. ETHTOOL_STATS_ETH_PHY,
  603. ETHTOOL_STATS_ETH_MAC,
  604. ETHTOOL_STATS_ETH_CTRL,
  605. ETHTOOL_STATS_RMON,
  606. /* add new constants above here */
  607. __ETHTOOL_STATS_CNT
  608. };
  609. enum {
  610. ETHTOOL_A_STATS_GRP_UNSPEC,
  611. ETHTOOL_A_STATS_GRP_PAD,
  612. ETHTOOL_A_STATS_GRP_ID, /* u32 */
  613. ETHTOOL_A_STATS_GRP_SS_ID, /* u32 */
  614. ETHTOOL_A_STATS_GRP_STAT, /* nest */
  615. ETHTOOL_A_STATS_GRP_HIST_RX, /* nest */
  616. ETHTOOL_A_STATS_GRP_HIST_TX, /* nest */
  617. ETHTOOL_A_STATS_GRP_HIST_BKT_LOW, /* u32 */
  618. ETHTOOL_A_STATS_GRP_HIST_BKT_HI, /* u32 */
  619. ETHTOOL_A_STATS_GRP_HIST_VAL, /* u64 */
  620. /* add new constants above here */
  621. __ETHTOOL_A_STATS_GRP_CNT,
  622. ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_GRP_CNT - 1)
  623. };
  624. enum {
  625. /* 30.3.2.1.5 aSymbolErrorDuringCarrier */
  626. ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
  627. /* add new constants above here */
  628. __ETHTOOL_A_STATS_ETH_PHY_CNT,
  629. ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
  630. };
  631. enum {
  632. /* 30.3.1.1.2 aFramesTransmittedOK */
  633. ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
  634. /* 30.3.1.1.3 aSingleCollisionFrames */
  635. ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
  636. /* 30.3.1.1.4 aMultipleCollisionFrames */
  637. ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
  638. /* 30.3.1.1.5 aFramesReceivedOK */
  639. ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
  640. /* 30.3.1.1.6 aFrameCheckSequenceErrors */
  641. ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
  642. /* 30.3.1.1.7 aAlignmentErrors */
  643. ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
  644. /* 30.3.1.1.8 aOctetsTransmittedOK */
  645. ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
  646. /* 30.3.1.1.9 aFramesWithDeferredXmissions */
  647. ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
  648. /* 30.3.1.1.10 aLateCollisions */
  649. ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
  650. /* 30.3.1.1.11 aFramesAbortedDueToXSColls */
  651. ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
  652. /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
  653. ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
  654. /* 30.3.1.1.13 aCarrierSenseErrors */
  655. ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
  656. /* 30.3.1.1.14 aOctetsReceivedOK */
  657. ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
  658. /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
  659. ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
  660. /* 30.3.1.1.18 aMulticastFramesXmittedOK */
  661. ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
  662. /* 30.3.1.1.19 aBroadcastFramesXmittedOK */
  663. ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
  664. /* 30.3.1.1.20 aFramesWithExcessiveDeferral */
  665. ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
  666. /* 30.3.1.1.21 aMulticastFramesReceivedOK */
  667. ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
  668. /* 30.3.1.1.22 aBroadcastFramesReceivedOK */
  669. ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
  670. /* 30.3.1.1.23 aInRangeLengthErrors */
  671. ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
  672. /* 30.3.1.1.24 aOutOfRangeLengthField */
  673. ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
  674. /* 30.3.1.1.25 aFrameTooLongErrors */
  675. ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
  676. /* add new constants above here */
  677. __ETHTOOL_A_STATS_ETH_MAC_CNT,
  678. ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
  679. };
  680. enum {
  681. /* 30.3.3.3 aMACControlFramesTransmitted */
  682. ETHTOOL_A_STATS_ETH_CTRL_3_TX,
  683. /* 30.3.3.4 aMACControlFramesReceived */
  684. ETHTOOL_A_STATS_ETH_CTRL_4_RX,
  685. /* 30.3.3.5 aUnsupportedOpcodesReceived */
  686. ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
  687. /* add new constants above here */
  688. __ETHTOOL_A_STATS_ETH_CTRL_CNT,
  689. ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
  690. };
  691. enum {
  692. /* etherStatsUndersizePkts */
  693. ETHTOOL_A_STATS_RMON_UNDERSIZE,
  694. /* etherStatsOversizePkts */
  695. ETHTOOL_A_STATS_RMON_OVERSIZE,
  696. /* etherStatsFragments */
  697. ETHTOOL_A_STATS_RMON_FRAG,
  698. /* etherStatsJabbers */
  699. ETHTOOL_A_STATS_RMON_JABBER,
  700. /* add new constants above here */
  701. __ETHTOOL_A_STATS_RMON_CNT,
  702. ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
  703. };
  704. /* MODULE */
  705. enum {
  706. ETHTOOL_A_MODULE_UNSPEC,
  707. ETHTOOL_A_MODULE_HEADER, /* nest - _A_HEADER_* */
  708. ETHTOOL_A_MODULE_POWER_MODE_POLICY, /* u8 */
  709. ETHTOOL_A_MODULE_POWER_MODE, /* u8 */
  710. /* add new constants above here */
  711. __ETHTOOL_A_MODULE_CNT,
  712. ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
  713. };
  714. /* Power Sourcing Equipment */
  715. enum {
  716. ETHTOOL_A_PSE_UNSPEC,
  717. ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */
  718. ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */
  719. ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */
  720. ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */
  721. /* add new constants above here */
  722. __ETHTOOL_A_PSE_CNT,
  723. ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
  724. };
  725. /* generic netlink info */
  726. #define ETHTOOL_GENL_NAME "ethtool"
  727. #define ETHTOOL_GENL_VERSION 1
  728. #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
  729. #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */