logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

ethtool_netlink.h (30588B)


  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 _LINUX_ETHTOOL_NETLINK_H_
  9. #define _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. ETHTOOL_MSG_RSS_GET,
  52. ETHTOOL_MSG_PLCA_GET_CFG,
  53. ETHTOOL_MSG_PLCA_SET_CFG,
  54. ETHTOOL_MSG_PLCA_GET_STATUS,
  55. ETHTOOL_MSG_MM_GET,
  56. ETHTOOL_MSG_MM_SET,
  57. ETHTOOL_MSG_MODULE_FW_FLASH_ACT,
  58. ETHTOOL_MSG_PHY_GET,
  59. /* add new constants above here */
  60. __ETHTOOL_MSG_USER_CNT,
  61. ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
  62. };
  63. /* message types - kernel to userspace */
  64. enum {
  65. ETHTOOL_MSG_KERNEL_NONE,
  66. ETHTOOL_MSG_STRSET_GET_REPLY,
  67. ETHTOOL_MSG_LINKINFO_GET_REPLY,
  68. ETHTOOL_MSG_LINKINFO_NTF,
  69. ETHTOOL_MSG_LINKMODES_GET_REPLY,
  70. ETHTOOL_MSG_LINKMODES_NTF,
  71. ETHTOOL_MSG_LINKSTATE_GET_REPLY,
  72. ETHTOOL_MSG_DEBUG_GET_REPLY,
  73. ETHTOOL_MSG_DEBUG_NTF,
  74. ETHTOOL_MSG_WOL_GET_REPLY,
  75. ETHTOOL_MSG_WOL_NTF,
  76. ETHTOOL_MSG_FEATURES_GET_REPLY,
  77. ETHTOOL_MSG_FEATURES_SET_REPLY,
  78. ETHTOOL_MSG_FEATURES_NTF,
  79. ETHTOOL_MSG_PRIVFLAGS_GET_REPLY,
  80. ETHTOOL_MSG_PRIVFLAGS_NTF,
  81. ETHTOOL_MSG_RINGS_GET_REPLY,
  82. ETHTOOL_MSG_RINGS_NTF,
  83. ETHTOOL_MSG_CHANNELS_GET_REPLY,
  84. ETHTOOL_MSG_CHANNELS_NTF,
  85. ETHTOOL_MSG_COALESCE_GET_REPLY,
  86. ETHTOOL_MSG_COALESCE_NTF,
  87. ETHTOOL_MSG_PAUSE_GET_REPLY,
  88. ETHTOOL_MSG_PAUSE_NTF,
  89. ETHTOOL_MSG_EEE_GET_REPLY,
  90. ETHTOOL_MSG_EEE_NTF,
  91. ETHTOOL_MSG_TSINFO_GET_REPLY,
  92. ETHTOOL_MSG_CABLE_TEST_NTF,
  93. ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
  94. ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
  95. ETHTOOL_MSG_FEC_GET_REPLY,
  96. ETHTOOL_MSG_FEC_NTF,
  97. ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
  98. ETHTOOL_MSG_STATS_GET_REPLY,
  99. ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
  100. ETHTOOL_MSG_MODULE_GET_REPLY,
  101. ETHTOOL_MSG_MODULE_NTF,
  102. ETHTOOL_MSG_PSE_GET_REPLY,
  103. ETHTOOL_MSG_RSS_GET_REPLY,
  104. ETHTOOL_MSG_PLCA_GET_CFG_REPLY,
  105. ETHTOOL_MSG_PLCA_GET_STATUS_REPLY,
  106. ETHTOOL_MSG_PLCA_NTF,
  107. ETHTOOL_MSG_MM_GET_REPLY,
  108. ETHTOOL_MSG_MM_NTF,
  109. ETHTOOL_MSG_MODULE_FW_FLASH_NTF,
  110. ETHTOOL_MSG_PHY_GET_REPLY,
  111. ETHTOOL_MSG_PHY_NTF,
  112. /* add new constants above here */
  113. __ETHTOOL_MSG_KERNEL_CNT,
  114. ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
  115. };
  116. /* request header */
  117. enum ethtool_header_flags {
  118. ETHTOOL_FLAG_COMPACT_BITSETS = 1 << 0, /* use compact bitsets in reply */
  119. ETHTOOL_FLAG_OMIT_REPLY = 1 << 1, /* provide optional reply for SET or ACT requests */
  120. ETHTOOL_FLAG_STATS = 1 << 2, /* request statistics, if supported by the driver */
  121. };
  122. #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \
  123. ETHTOOL_FLAG_OMIT_REPLY | \
  124. ETHTOOL_FLAG_STATS)
  125. enum {
  126. ETHTOOL_A_HEADER_UNSPEC,
  127. ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */
  128. ETHTOOL_A_HEADER_DEV_NAME, /* string */
  129. ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */
  130. ETHTOOL_A_HEADER_PHY_INDEX, /* u32 */
  131. /* add new constants above here */
  132. __ETHTOOL_A_HEADER_CNT,
  133. ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1
  134. };
  135. /* bit sets */
  136. enum {
  137. ETHTOOL_A_BITSET_BIT_UNSPEC,
  138. ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */
  139. ETHTOOL_A_BITSET_BIT_NAME, /* string */
  140. ETHTOOL_A_BITSET_BIT_VALUE, /* flag */
  141. /* add new constants above here */
  142. __ETHTOOL_A_BITSET_BIT_CNT,
  143. ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1
  144. };
  145. enum {
  146. ETHTOOL_A_BITSET_BITS_UNSPEC,
  147. ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */
  148. /* add new constants above here */
  149. __ETHTOOL_A_BITSET_BITS_CNT,
  150. ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1
  151. };
  152. enum {
  153. ETHTOOL_A_BITSET_UNSPEC,
  154. ETHTOOL_A_BITSET_NOMASK, /* flag */
  155. ETHTOOL_A_BITSET_SIZE, /* u32 */
  156. ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */
  157. ETHTOOL_A_BITSET_VALUE, /* binary */
  158. ETHTOOL_A_BITSET_MASK, /* binary */
  159. /* add new constants above here */
  160. __ETHTOOL_A_BITSET_CNT,
  161. ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1
  162. };
  163. /* string sets */
  164. enum {
  165. ETHTOOL_A_STRING_UNSPEC,
  166. ETHTOOL_A_STRING_INDEX, /* u32 */
  167. ETHTOOL_A_STRING_VALUE, /* string */
  168. /* add new constants above here */
  169. __ETHTOOL_A_STRING_CNT,
  170. ETHTOOL_A_STRING_MAX = __ETHTOOL_A_STRING_CNT - 1
  171. };
  172. enum {
  173. ETHTOOL_A_STRINGS_UNSPEC,
  174. ETHTOOL_A_STRINGS_STRING, /* nest - _A_STRINGS_* */
  175. /* add new constants above here */
  176. __ETHTOOL_A_STRINGS_CNT,
  177. ETHTOOL_A_STRINGS_MAX = __ETHTOOL_A_STRINGS_CNT - 1
  178. };
  179. enum {
  180. ETHTOOL_A_STRINGSET_UNSPEC,
  181. ETHTOOL_A_STRINGSET_ID, /* u32 */
  182. ETHTOOL_A_STRINGSET_COUNT, /* u32 */
  183. ETHTOOL_A_STRINGSET_STRINGS, /* nest - _A_STRINGS_* */
  184. /* add new constants above here */
  185. __ETHTOOL_A_STRINGSET_CNT,
  186. ETHTOOL_A_STRINGSET_MAX = __ETHTOOL_A_STRINGSET_CNT - 1
  187. };
  188. enum {
  189. ETHTOOL_A_STRINGSETS_UNSPEC,
  190. ETHTOOL_A_STRINGSETS_STRINGSET, /* nest - _A_STRINGSET_* */
  191. /* add new constants above here */
  192. __ETHTOOL_A_STRINGSETS_CNT,
  193. ETHTOOL_A_STRINGSETS_MAX = __ETHTOOL_A_STRINGSETS_CNT - 1
  194. };
  195. /* STRSET */
  196. enum {
  197. ETHTOOL_A_STRSET_UNSPEC,
  198. ETHTOOL_A_STRSET_HEADER, /* nest - _A_HEADER_* */
  199. ETHTOOL_A_STRSET_STRINGSETS, /* nest - _A_STRINGSETS_* */
  200. ETHTOOL_A_STRSET_COUNTS_ONLY, /* flag */
  201. /* add new constants above here */
  202. __ETHTOOL_A_STRSET_CNT,
  203. ETHTOOL_A_STRSET_MAX = __ETHTOOL_A_STRSET_CNT - 1
  204. };
  205. /* LINKINFO */
  206. enum {
  207. ETHTOOL_A_LINKINFO_UNSPEC,
  208. ETHTOOL_A_LINKINFO_HEADER, /* nest - _A_HEADER_* */
  209. ETHTOOL_A_LINKINFO_PORT, /* u8 */
  210. ETHTOOL_A_LINKINFO_PHYADDR, /* u8 */
  211. ETHTOOL_A_LINKINFO_TP_MDIX, /* u8 */
  212. ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, /* u8 */
  213. ETHTOOL_A_LINKINFO_TRANSCEIVER, /* u8 */
  214. /* add new constants above here */
  215. __ETHTOOL_A_LINKINFO_CNT,
  216. ETHTOOL_A_LINKINFO_MAX = __ETHTOOL_A_LINKINFO_CNT - 1
  217. };
  218. /* LINKMODES */
  219. enum {
  220. ETHTOOL_A_LINKMODES_UNSPEC,
  221. ETHTOOL_A_LINKMODES_HEADER, /* nest - _A_HEADER_* */
  222. ETHTOOL_A_LINKMODES_AUTONEG, /* u8 */
  223. ETHTOOL_A_LINKMODES_OURS, /* bitset */
  224. ETHTOOL_A_LINKMODES_PEER, /* bitset */
  225. ETHTOOL_A_LINKMODES_SPEED, /* u32 */
  226. ETHTOOL_A_LINKMODES_DUPLEX, /* u8 */
  227. ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
  228. ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
  229. ETHTOOL_A_LINKMODES_LANES, /* u32 */
  230. ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */
  231. /* add new constants above here */
  232. __ETHTOOL_A_LINKMODES_CNT,
  233. ETHTOOL_A_LINKMODES_MAX = __ETHTOOL_A_LINKMODES_CNT - 1
  234. };
  235. /* LINKSTATE */
  236. enum {
  237. ETHTOOL_A_LINKSTATE_UNSPEC,
  238. ETHTOOL_A_LINKSTATE_HEADER, /* nest - _A_HEADER_* */
  239. ETHTOOL_A_LINKSTATE_LINK, /* u8 */
  240. ETHTOOL_A_LINKSTATE_SQI, /* u32 */
  241. ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
  242. ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
  243. ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
  244. ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT, /* u32 */
  245. /* add new constants above here */
  246. __ETHTOOL_A_LINKSTATE_CNT,
  247. ETHTOOL_A_LINKSTATE_MAX = __ETHTOOL_A_LINKSTATE_CNT - 1
  248. };
  249. /* DEBUG */
  250. enum {
  251. ETHTOOL_A_DEBUG_UNSPEC,
  252. ETHTOOL_A_DEBUG_HEADER, /* nest - _A_HEADER_* */
  253. ETHTOOL_A_DEBUG_MSGMASK, /* bitset */
  254. /* add new constants above here */
  255. __ETHTOOL_A_DEBUG_CNT,
  256. ETHTOOL_A_DEBUG_MAX = __ETHTOOL_A_DEBUG_CNT - 1
  257. };
  258. /* WOL */
  259. enum {
  260. ETHTOOL_A_WOL_UNSPEC,
  261. ETHTOOL_A_WOL_HEADER, /* nest - _A_HEADER_* */
  262. ETHTOOL_A_WOL_MODES, /* bitset */
  263. ETHTOOL_A_WOL_SOPASS, /* binary */
  264. /* add new constants above here */
  265. __ETHTOOL_A_WOL_CNT,
  266. ETHTOOL_A_WOL_MAX = __ETHTOOL_A_WOL_CNT - 1
  267. };
  268. /* FEATURES */
  269. enum {
  270. ETHTOOL_A_FEATURES_UNSPEC,
  271. ETHTOOL_A_FEATURES_HEADER, /* nest - _A_HEADER_* */
  272. ETHTOOL_A_FEATURES_HW, /* bitset */
  273. ETHTOOL_A_FEATURES_WANTED, /* bitset */
  274. ETHTOOL_A_FEATURES_ACTIVE, /* bitset */
  275. ETHTOOL_A_FEATURES_NOCHANGE, /* bitset */
  276. /* add new constants above here */
  277. __ETHTOOL_A_FEATURES_CNT,
  278. ETHTOOL_A_FEATURES_MAX = __ETHTOOL_A_FEATURES_CNT - 1
  279. };
  280. /* PRIVFLAGS */
  281. enum {
  282. ETHTOOL_A_PRIVFLAGS_UNSPEC,
  283. ETHTOOL_A_PRIVFLAGS_HEADER, /* nest - _A_HEADER_* */
  284. ETHTOOL_A_PRIVFLAGS_FLAGS, /* bitset */
  285. /* add new constants above here */
  286. __ETHTOOL_A_PRIVFLAGS_CNT,
  287. ETHTOOL_A_PRIVFLAGS_MAX = __ETHTOOL_A_PRIVFLAGS_CNT - 1
  288. };
  289. /* RINGS */
  290. enum {
  291. ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
  292. ETHTOOL_TCP_DATA_SPLIT_DISABLED,
  293. ETHTOOL_TCP_DATA_SPLIT_ENABLED,
  294. };
  295. enum {
  296. ETHTOOL_A_RINGS_UNSPEC,
  297. ETHTOOL_A_RINGS_HEADER, /* nest - _A_HEADER_* */
  298. ETHTOOL_A_RINGS_RX_MAX, /* u32 */
  299. ETHTOOL_A_RINGS_RX_MINI_MAX, /* u32 */
  300. ETHTOOL_A_RINGS_RX_JUMBO_MAX, /* u32 */
  301. ETHTOOL_A_RINGS_TX_MAX, /* u32 */
  302. ETHTOOL_A_RINGS_RX, /* u32 */
  303. ETHTOOL_A_RINGS_RX_MINI, /* u32 */
  304. ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */
  305. ETHTOOL_A_RINGS_TX, /* u32 */
  306. ETHTOOL_A_RINGS_RX_BUF_LEN, /* u32 */
  307. ETHTOOL_A_RINGS_TCP_DATA_SPLIT, /* u8 */
  308. ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */
  309. ETHTOOL_A_RINGS_TX_PUSH, /* u8 */
  310. ETHTOOL_A_RINGS_RX_PUSH, /* u8 */
  311. ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN, /* u32 */
  312. ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX, /* u32 */
  313. /* add new constants above here */
  314. __ETHTOOL_A_RINGS_CNT,
  315. ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
  316. };
  317. /* CHANNELS */
  318. enum {
  319. ETHTOOL_A_CHANNELS_UNSPEC,
  320. ETHTOOL_A_CHANNELS_HEADER, /* nest - _A_HEADER_* */
  321. ETHTOOL_A_CHANNELS_RX_MAX, /* u32 */
  322. ETHTOOL_A_CHANNELS_TX_MAX, /* u32 */
  323. ETHTOOL_A_CHANNELS_OTHER_MAX, /* u32 */
  324. ETHTOOL_A_CHANNELS_COMBINED_MAX, /* u32 */
  325. ETHTOOL_A_CHANNELS_RX_COUNT, /* u32 */
  326. ETHTOOL_A_CHANNELS_TX_COUNT, /* u32 */
  327. ETHTOOL_A_CHANNELS_OTHER_COUNT, /* u32 */
  328. ETHTOOL_A_CHANNELS_COMBINED_COUNT, /* u32 */
  329. /* add new constants above here */
  330. __ETHTOOL_A_CHANNELS_CNT,
  331. ETHTOOL_A_CHANNELS_MAX = (__ETHTOOL_A_CHANNELS_CNT - 1)
  332. };
  333. /* COALESCE */
  334. enum {
  335. ETHTOOL_A_COALESCE_UNSPEC,
  336. ETHTOOL_A_COALESCE_HEADER, /* nest - _A_HEADER_* */
  337. ETHTOOL_A_COALESCE_RX_USECS, /* u32 */
  338. ETHTOOL_A_COALESCE_RX_MAX_FRAMES, /* u32 */
  339. ETHTOOL_A_COALESCE_RX_USECS_IRQ, /* u32 */
  340. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, /* u32 */
  341. ETHTOOL_A_COALESCE_TX_USECS, /* u32 */
  342. ETHTOOL_A_COALESCE_TX_MAX_FRAMES, /* u32 */
  343. ETHTOOL_A_COALESCE_TX_USECS_IRQ, /* u32 */
  344. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, /* u32 */
  345. ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, /* u32 */
  346. ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, /* u8 */
  347. ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, /* u8 */
  348. ETHTOOL_A_COALESCE_PKT_RATE_LOW, /* u32 */
  349. ETHTOOL_A_COALESCE_RX_USECS_LOW, /* u32 */
  350. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, /* u32 */
  351. ETHTOOL_A_COALESCE_TX_USECS_LOW, /* u32 */
  352. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, /* u32 */
  353. ETHTOOL_A_COALESCE_PKT_RATE_HIGH, /* u32 */
  354. ETHTOOL_A_COALESCE_RX_USECS_HIGH, /* u32 */
  355. ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, /* u32 */
  356. ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */
  357. ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */
  358. ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */
  359. ETHTOOL_A_COALESCE_USE_CQE_MODE_TX, /* u8 */
  360. ETHTOOL_A_COALESCE_USE_CQE_MODE_RX, /* u8 */
  361. ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES, /* u32 */
  362. ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES, /* u32 */
  363. ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS, /* u32 */
  364. /* nest - _A_PROFILE_IRQ_MODERATION */
  365. ETHTOOL_A_COALESCE_RX_PROFILE,
  366. /* nest - _A_PROFILE_IRQ_MODERATION */
  367. ETHTOOL_A_COALESCE_TX_PROFILE,
  368. /* add new constants above here */
  369. __ETHTOOL_A_COALESCE_CNT,
  370. ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
  371. };
  372. enum {
  373. ETHTOOL_A_PROFILE_UNSPEC,
  374. /* nest, _A_IRQ_MODERATION_* */
  375. ETHTOOL_A_PROFILE_IRQ_MODERATION,
  376. __ETHTOOL_A_PROFILE_CNT,
  377. ETHTOOL_A_PROFILE_MAX = (__ETHTOOL_A_PROFILE_CNT - 1)
  378. };
  379. enum {
  380. ETHTOOL_A_IRQ_MODERATION_UNSPEC,
  381. ETHTOOL_A_IRQ_MODERATION_USEC, /* u32 */
  382. ETHTOOL_A_IRQ_MODERATION_PKTS, /* u32 */
  383. ETHTOOL_A_IRQ_MODERATION_COMPS, /* u32 */
  384. __ETHTOOL_A_IRQ_MODERATION_CNT,
  385. ETHTOOL_A_IRQ_MODERATION_MAX = (__ETHTOOL_A_IRQ_MODERATION_CNT - 1)
  386. };
  387. /* PAUSE */
  388. enum {
  389. ETHTOOL_A_PAUSE_UNSPEC,
  390. ETHTOOL_A_PAUSE_HEADER, /* nest - _A_HEADER_* */
  391. ETHTOOL_A_PAUSE_AUTONEG, /* u8 */
  392. ETHTOOL_A_PAUSE_RX, /* u8 */
  393. ETHTOOL_A_PAUSE_TX, /* u8 */
  394. ETHTOOL_A_PAUSE_STATS, /* nest - _PAUSE_STAT_* */
  395. ETHTOOL_A_PAUSE_STATS_SRC, /* u32 */
  396. /* add new constants above here */
  397. __ETHTOOL_A_PAUSE_CNT,
  398. ETHTOOL_A_PAUSE_MAX = (__ETHTOOL_A_PAUSE_CNT - 1)
  399. };
  400. enum {
  401. ETHTOOL_A_PAUSE_STAT_UNSPEC,
  402. ETHTOOL_A_PAUSE_STAT_PAD,
  403. ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
  404. ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
  405. /* add new constants above here
  406. * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats!
  407. */
  408. __ETHTOOL_A_PAUSE_STAT_CNT,
  409. ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)
  410. };
  411. /* EEE */
  412. enum {
  413. ETHTOOL_A_EEE_UNSPEC,
  414. ETHTOOL_A_EEE_HEADER, /* nest - _A_HEADER_* */
  415. ETHTOOL_A_EEE_MODES_OURS, /* bitset */
  416. ETHTOOL_A_EEE_MODES_PEER, /* bitset */
  417. ETHTOOL_A_EEE_ACTIVE, /* u8 */
  418. ETHTOOL_A_EEE_ENABLED, /* u8 */
  419. ETHTOOL_A_EEE_TX_LPI_ENABLED, /* u8 */
  420. ETHTOOL_A_EEE_TX_LPI_TIMER, /* u32 */
  421. /* add new constants above here */
  422. __ETHTOOL_A_EEE_CNT,
  423. ETHTOOL_A_EEE_MAX = (__ETHTOOL_A_EEE_CNT - 1)
  424. };
  425. /* TSINFO */
  426. enum {
  427. ETHTOOL_A_TSINFO_UNSPEC,
  428. ETHTOOL_A_TSINFO_HEADER, /* nest - _A_HEADER_* */
  429. ETHTOOL_A_TSINFO_TIMESTAMPING, /* bitset */
  430. ETHTOOL_A_TSINFO_TX_TYPES, /* bitset */
  431. ETHTOOL_A_TSINFO_RX_FILTERS, /* bitset */
  432. ETHTOOL_A_TSINFO_PHC_INDEX, /* u32 */
  433. ETHTOOL_A_TSINFO_STATS, /* nest - _A_TSINFO_STAT */
  434. /* add new constants above here */
  435. __ETHTOOL_A_TSINFO_CNT,
  436. ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
  437. };
  438. enum {
  439. ETHTOOL_A_TS_STAT_UNSPEC,
  440. ETHTOOL_A_TS_STAT_TX_PKTS, /* uint */
  441. ETHTOOL_A_TS_STAT_TX_LOST, /* uint */
  442. ETHTOOL_A_TS_STAT_TX_ERR, /* uint */
  443. /* add new constants above here */
  444. __ETHTOOL_A_TS_STAT_CNT,
  445. ETHTOOL_A_TS_STAT_MAX = (__ETHTOOL_A_TS_STAT_CNT - 1)
  446. };
  447. /* PHC VCLOCKS */
  448. enum {
  449. ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
  450. ETHTOOL_A_PHC_VCLOCKS_HEADER, /* nest - _A_HEADER_* */
  451. ETHTOOL_A_PHC_VCLOCKS_NUM, /* u32 */
  452. ETHTOOL_A_PHC_VCLOCKS_INDEX, /* array, s32 */
  453. /* add new constants above here */
  454. __ETHTOOL_A_PHC_VCLOCKS_CNT,
  455. ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
  456. };
  457. /* CABLE TEST */
  458. enum {
  459. ETHTOOL_A_CABLE_TEST_UNSPEC,
  460. ETHTOOL_A_CABLE_TEST_HEADER, /* nest - _A_HEADER_* */
  461. /* add new constants above here */
  462. __ETHTOOL_A_CABLE_TEST_CNT,
  463. ETHTOOL_A_CABLE_TEST_MAX = __ETHTOOL_A_CABLE_TEST_CNT - 1
  464. };
  465. /* CABLE TEST NOTIFY */
  466. enum {
  467. ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC,
  468. ETHTOOL_A_CABLE_RESULT_CODE_OK,
  469. ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
  470. ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
  471. ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
  472. /* detected reflection caused by the impedance discontinuity between
  473. * a regular 100 Ohm cable and a part with the abnormal impedance value
  474. */
  475. ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH,
  476. /* TDR not possible due to high noise level */
  477. ETHTOOL_A_CABLE_RESULT_CODE_NOISE,
  478. /* TDR resolution not possible / out of distance */
  479. ETHTOOL_A_CABLE_RESULT_CODE_RESOLUTION_NOT_POSSIBLE,
  480. };
  481. enum {
  482. ETHTOOL_A_CABLE_PAIR_A,
  483. ETHTOOL_A_CABLE_PAIR_B,
  484. ETHTOOL_A_CABLE_PAIR_C,
  485. ETHTOOL_A_CABLE_PAIR_D,
  486. };
  487. /* Information source for specific results. */
  488. enum {
  489. ETHTOOL_A_CABLE_INF_SRC_UNSPEC,
  490. /* Results provided by the Time Domain Reflectometry (TDR) */
  491. ETHTOOL_A_CABLE_INF_SRC_TDR,
  492. /* Results provided by the Active Link Cable Diagnostic (ALCD) */
  493. ETHTOOL_A_CABLE_INF_SRC_ALCD,
  494. };
  495. enum {
  496. ETHTOOL_A_CABLE_RESULT_UNSPEC,
  497. ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
  498. ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */
  499. ETHTOOL_A_CABLE_RESULT_SRC, /* u32 ETHTOOL_A_CABLE_INF_SRC_ */
  500. __ETHTOOL_A_CABLE_RESULT_CNT,
  501. ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1)
  502. };
  503. enum {
  504. ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC,
  505. ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */
  506. ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */
  507. ETHTOOL_A_CABLE_FAULT_LENGTH_SRC, /* u32 ETHTOOL_A_CABLE_INF_SRC_ */
  508. __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT,
  509. ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)
  510. };
  511. enum {
  512. ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC,
  513. ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED,
  514. ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED
  515. };
  516. enum {
  517. ETHTOOL_A_CABLE_NEST_UNSPEC,
  518. ETHTOOL_A_CABLE_NEST_RESULT, /* nest - ETHTOOL_A_CABLE_RESULT_ */
  519. ETHTOOL_A_CABLE_NEST_FAULT_LENGTH, /* nest - ETHTOOL_A_CABLE_FAULT_LENGTH_ */
  520. __ETHTOOL_A_CABLE_NEST_CNT,
  521. ETHTOOL_A_CABLE_NEST_MAX = (__ETHTOOL_A_CABLE_NEST_CNT - 1)
  522. };
  523. enum {
  524. ETHTOOL_A_CABLE_TEST_NTF_UNSPEC,
  525. ETHTOOL_A_CABLE_TEST_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
  526. ETHTOOL_A_CABLE_TEST_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
  527. ETHTOOL_A_CABLE_TEST_NTF_NEST, /* nest - of results: */
  528. __ETHTOOL_A_CABLE_TEST_NTF_CNT,
  529. ETHTOOL_A_CABLE_TEST_NTF_MAX = (__ETHTOOL_A_CABLE_TEST_NTF_CNT - 1)
  530. };
  531. /* CABLE TEST TDR */
  532. enum {
  533. ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC,
  534. ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST, /* u32 */
  535. ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST, /* u32 */
  536. ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP, /* u32 */
  537. ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR, /* u8 */
  538. /* add new constants above here */
  539. __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT,
  540. ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT - 1
  541. };
  542. enum {
  543. ETHTOOL_A_CABLE_TEST_TDR_UNSPEC,
  544. ETHTOOL_A_CABLE_TEST_TDR_HEADER, /* nest - _A_HEADER_* */
  545. ETHTOOL_A_CABLE_TEST_TDR_CFG, /* nest - *_TDR_CFG_* */
  546. /* add new constants above here */
  547. __ETHTOOL_A_CABLE_TEST_TDR_CNT,
  548. ETHTOOL_A_CABLE_TEST_TDR_MAX = __ETHTOOL_A_CABLE_TEST_TDR_CNT - 1
  549. };
  550. /* CABLE TEST TDR NOTIFY */
  551. enum {
  552. ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC,
  553. ETHTOOL_A_CABLE_AMPLITUDE_PAIR, /* u8 */
  554. ETHTOOL_A_CABLE_AMPLITUDE_mV, /* s16 */
  555. __ETHTOOL_A_CABLE_AMPLITUDE_CNT,
  556. ETHTOOL_A_CABLE_AMPLITUDE_MAX = (__ETHTOOL_A_CABLE_AMPLITUDE_CNT - 1)
  557. };
  558. enum {
  559. ETHTOOL_A_CABLE_PULSE_UNSPEC,
  560. ETHTOOL_A_CABLE_PULSE_mV, /* s16 */
  561. __ETHTOOL_A_CABLE_PULSE_CNT,
  562. ETHTOOL_A_CABLE_PULSE_MAX = (__ETHTOOL_A_CABLE_PULSE_CNT - 1)
  563. };
  564. enum {
  565. ETHTOOL_A_CABLE_STEP_UNSPEC,
  566. ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE, /* u32 */
  567. ETHTOOL_A_CABLE_STEP_LAST_DISTANCE, /* u32 */
  568. ETHTOOL_A_CABLE_STEP_STEP_DISTANCE, /* u32 */
  569. __ETHTOOL_A_CABLE_STEP_CNT,
  570. ETHTOOL_A_CABLE_STEP_MAX = (__ETHTOOL_A_CABLE_STEP_CNT - 1)
  571. };
  572. enum {
  573. ETHTOOL_A_CABLE_TDR_NEST_UNSPEC,
  574. ETHTOOL_A_CABLE_TDR_NEST_STEP, /* nest - ETHTTOOL_A_CABLE_STEP */
  575. ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE, /* nest - ETHTOOL_A_CABLE_AMPLITUDE */
  576. ETHTOOL_A_CABLE_TDR_NEST_PULSE, /* nest - ETHTOOL_A_CABLE_PULSE */
  577. __ETHTOOL_A_CABLE_TDR_NEST_CNT,
  578. ETHTOOL_A_CABLE_TDR_NEST_MAX = (__ETHTOOL_A_CABLE_TDR_NEST_CNT - 1)
  579. };
  580. enum {
  581. ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC,
  582. ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER, /* nest - ETHTOOL_A_HEADER_* */
  583. ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS, /* u8 - _STARTED/_COMPLETE */
  584. ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST, /* nest - of results: */
  585. /* add new constants above here */
  586. __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT,
  587. ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = __ETHTOOL_A_CABLE_TEST_TDR_NTF_CNT - 1
  588. };
  589. /* TUNNEL INFO */
  590. enum {
  591. ETHTOOL_UDP_TUNNEL_TYPE_VXLAN,
  592. ETHTOOL_UDP_TUNNEL_TYPE_GENEVE,
  593. ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE,
  594. __ETHTOOL_UDP_TUNNEL_TYPE_CNT
  595. };
  596. enum {
  597. ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC,
  598. ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT, /* be16 */
  599. ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE, /* u32 */
  600. /* add new constants above here */
  601. __ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT,
  602. ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = (__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT - 1)
  603. };
  604. enum {
  605. ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC,
  606. ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE, /* u32 */
  607. ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES, /* bitset */
  608. ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY, /* nest - _UDP_ENTRY_* */
  609. /* add new constants above here */
  610. __ETHTOOL_A_TUNNEL_UDP_TABLE_CNT,
  611. ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = (__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT - 1)
  612. };
  613. enum {
  614. ETHTOOL_A_TUNNEL_UDP_UNSPEC,
  615. ETHTOOL_A_TUNNEL_UDP_TABLE, /* nest - _UDP_TABLE_* */
  616. /* add new constants above here */
  617. __ETHTOOL_A_TUNNEL_UDP_CNT,
  618. ETHTOOL_A_TUNNEL_UDP_MAX = (__ETHTOOL_A_TUNNEL_UDP_CNT - 1)
  619. };
  620. enum {
  621. ETHTOOL_A_TUNNEL_INFO_UNSPEC,
  622. ETHTOOL_A_TUNNEL_INFO_HEADER, /* nest - _A_HEADER_* */
  623. ETHTOOL_A_TUNNEL_INFO_UDP_PORTS, /* nest - _UDP_TABLE */
  624. /* add new constants above here */
  625. __ETHTOOL_A_TUNNEL_INFO_CNT,
  626. ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
  627. };
  628. /* FEC */
  629. enum {
  630. ETHTOOL_A_FEC_UNSPEC,
  631. ETHTOOL_A_FEC_HEADER, /* nest - _A_HEADER_* */
  632. ETHTOOL_A_FEC_MODES, /* bitset */
  633. ETHTOOL_A_FEC_AUTO, /* u8 */
  634. ETHTOOL_A_FEC_ACTIVE, /* u32 */
  635. ETHTOOL_A_FEC_STATS, /* nest - _A_FEC_STAT */
  636. __ETHTOOL_A_FEC_CNT,
  637. ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
  638. };
  639. enum {
  640. ETHTOOL_A_FEC_STAT_UNSPEC,
  641. ETHTOOL_A_FEC_STAT_PAD,
  642. ETHTOOL_A_FEC_STAT_CORRECTED, /* array, u64 */
  643. ETHTOOL_A_FEC_STAT_UNCORR, /* array, u64 */
  644. ETHTOOL_A_FEC_STAT_CORR_BITS, /* array, u64 */
  645. /* add new constants above here */
  646. __ETHTOOL_A_FEC_STAT_CNT,
  647. ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
  648. };
  649. /* MODULE EEPROM */
  650. enum {
  651. ETHTOOL_A_MODULE_EEPROM_UNSPEC,
  652. ETHTOOL_A_MODULE_EEPROM_HEADER, /* nest - _A_HEADER_* */
  653. ETHTOOL_A_MODULE_EEPROM_OFFSET, /* u32 */
  654. ETHTOOL_A_MODULE_EEPROM_LENGTH, /* u32 */
  655. ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */
  656. ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */
  657. ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */
  658. ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */
  659. __ETHTOOL_A_MODULE_EEPROM_CNT,
  660. ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
  661. };
  662. /* STATS */
  663. enum {
  664. ETHTOOL_A_STATS_UNSPEC,
  665. ETHTOOL_A_STATS_PAD,
  666. ETHTOOL_A_STATS_HEADER, /* nest - _A_HEADER_* */
  667. ETHTOOL_A_STATS_GROUPS, /* bitset */
  668. ETHTOOL_A_STATS_GRP, /* nest - _A_STATS_GRP_* */
  669. ETHTOOL_A_STATS_SRC, /* u32 */
  670. /* add new constants above here */
  671. __ETHTOOL_A_STATS_CNT,
  672. ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
  673. };
  674. enum {
  675. ETHTOOL_STATS_ETH_PHY,
  676. ETHTOOL_STATS_ETH_MAC,
  677. ETHTOOL_STATS_ETH_CTRL,
  678. ETHTOOL_STATS_RMON,
  679. /* add new constants above here */
  680. __ETHTOOL_STATS_CNT
  681. };
  682. enum {
  683. ETHTOOL_A_STATS_GRP_UNSPEC,
  684. ETHTOOL_A_STATS_GRP_PAD,
  685. ETHTOOL_A_STATS_GRP_ID, /* u32 */
  686. ETHTOOL_A_STATS_GRP_SS_ID, /* u32 */
  687. ETHTOOL_A_STATS_GRP_STAT, /* nest */
  688. ETHTOOL_A_STATS_GRP_HIST_RX, /* nest */
  689. ETHTOOL_A_STATS_GRP_HIST_TX, /* nest */
  690. ETHTOOL_A_STATS_GRP_HIST_BKT_LOW, /* u32 */
  691. ETHTOOL_A_STATS_GRP_HIST_BKT_HI, /* u32 */
  692. ETHTOOL_A_STATS_GRP_HIST_VAL, /* u64 */
  693. /* add new constants above here */
  694. __ETHTOOL_A_STATS_GRP_CNT,
  695. ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_GRP_CNT - 1)
  696. };
  697. enum {
  698. /* 30.3.2.1.5 aSymbolErrorDuringCarrier */
  699. ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
  700. /* add new constants above here */
  701. __ETHTOOL_A_STATS_ETH_PHY_CNT,
  702. ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
  703. };
  704. enum {
  705. /* 30.3.1.1.2 aFramesTransmittedOK */
  706. ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
  707. /* 30.3.1.1.3 aSingleCollisionFrames */
  708. ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
  709. /* 30.3.1.1.4 aMultipleCollisionFrames */
  710. ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
  711. /* 30.3.1.1.5 aFramesReceivedOK */
  712. ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
  713. /* 30.3.1.1.6 aFrameCheckSequenceErrors */
  714. ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
  715. /* 30.3.1.1.7 aAlignmentErrors */
  716. ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
  717. /* 30.3.1.1.8 aOctetsTransmittedOK */
  718. ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
  719. /* 30.3.1.1.9 aFramesWithDeferredXmissions */
  720. ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
  721. /* 30.3.1.1.10 aLateCollisions */
  722. ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
  723. /* 30.3.1.1.11 aFramesAbortedDueToXSColls */
  724. ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
  725. /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
  726. ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
  727. /* 30.3.1.1.13 aCarrierSenseErrors */
  728. ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
  729. /* 30.3.1.1.14 aOctetsReceivedOK */
  730. ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
  731. /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
  732. ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
  733. /* 30.3.1.1.18 aMulticastFramesXmittedOK */
  734. ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
  735. /* 30.3.1.1.19 aBroadcastFramesXmittedOK */
  736. ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
  737. /* 30.3.1.1.20 aFramesWithExcessiveDeferral */
  738. ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
  739. /* 30.3.1.1.21 aMulticastFramesReceivedOK */
  740. ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
  741. /* 30.3.1.1.22 aBroadcastFramesReceivedOK */
  742. ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
  743. /* 30.3.1.1.23 aInRangeLengthErrors */
  744. ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
  745. /* 30.3.1.1.24 aOutOfRangeLengthField */
  746. ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
  747. /* 30.3.1.1.25 aFrameTooLongErrors */
  748. ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
  749. /* add new constants above here */
  750. __ETHTOOL_A_STATS_ETH_MAC_CNT,
  751. ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
  752. };
  753. enum {
  754. /* 30.3.3.3 aMACControlFramesTransmitted */
  755. ETHTOOL_A_STATS_ETH_CTRL_3_TX,
  756. /* 30.3.3.4 aMACControlFramesReceived */
  757. ETHTOOL_A_STATS_ETH_CTRL_4_RX,
  758. /* 30.3.3.5 aUnsupportedOpcodesReceived */
  759. ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
  760. /* add new constants above here */
  761. __ETHTOOL_A_STATS_ETH_CTRL_CNT,
  762. ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
  763. };
  764. enum {
  765. /* etherStatsUndersizePkts */
  766. ETHTOOL_A_STATS_RMON_UNDERSIZE,
  767. /* etherStatsOversizePkts */
  768. ETHTOOL_A_STATS_RMON_OVERSIZE,
  769. /* etherStatsFragments */
  770. ETHTOOL_A_STATS_RMON_FRAG,
  771. /* etherStatsJabbers */
  772. ETHTOOL_A_STATS_RMON_JABBER,
  773. /* add new constants above here */
  774. __ETHTOOL_A_STATS_RMON_CNT,
  775. ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
  776. };
  777. /* MODULE */
  778. enum {
  779. ETHTOOL_A_MODULE_UNSPEC,
  780. ETHTOOL_A_MODULE_HEADER, /* nest - _A_HEADER_* */
  781. ETHTOOL_A_MODULE_POWER_MODE_POLICY, /* u8 */
  782. ETHTOOL_A_MODULE_POWER_MODE, /* u8 */
  783. /* add new constants above here */
  784. __ETHTOOL_A_MODULE_CNT,
  785. ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
  786. };
  787. /* Power Sourcing Equipment */
  788. enum {
  789. ETHTOOL_A_C33_PSE_PW_LIMIT_UNSPEC,
  790. ETHTOOL_A_C33_PSE_PW_LIMIT_MIN, /* u32 */
  791. ETHTOOL_A_C33_PSE_PW_LIMIT_MAX, /* u32 */
  792. };
  793. enum {
  794. ETHTOOL_A_PSE_UNSPEC,
  795. ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */
  796. ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */
  797. ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */
  798. ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */
  799. ETHTOOL_A_C33_PSE_ADMIN_STATE, /* u32 */
  800. ETHTOOL_A_C33_PSE_ADMIN_CONTROL, /* u32 */
  801. ETHTOOL_A_C33_PSE_PW_D_STATUS, /* u32 */
  802. ETHTOOL_A_C33_PSE_PW_CLASS, /* u32 */
  803. ETHTOOL_A_C33_PSE_ACTUAL_PW, /* u32 */
  804. ETHTOOL_A_C33_PSE_EXT_STATE, /* u32 */
  805. ETHTOOL_A_C33_PSE_EXT_SUBSTATE, /* u32 */
  806. ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT, /* u32 */
  807. ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES, /* nest - _C33_PSE_PW_LIMIT_* */
  808. /* add new constants above here */
  809. __ETHTOOL_A_PSE_CNT,
  810. ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
  811. };
  812. enum {
  813. ETHTOOL_A_RSS_UNSPEC,
  814. ETHTOOL_A_RSS_HEADER,
  815. ETHTOOL_A_RSS_CONTEXT, /* u32 */
  816. ETHTOOL_A_RSS_HFUNC, /* u32 */
  817. ETHTOOL_A_RSS_INDIR, /* binary */
  818. ETHTOOL_A_RSS_HKEY, /* binary */
  819. ETHTOOL_A_RSS_INPUT_XFRM, /* u32 */
  820. ETHTOOL_A_RSS_START_CONTEXT, /* u32 */
  821. __ETHTOOL_A_RSS_CNT,
  822. ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
  823. };
  824. /* PLCA */
  825. enum {
  826. ETHTOOL_A_PLCA_UNSPEC,
  827. ETHTOOL_A_PLCA_HEADER, /* nest - _A_HEADER_* */
  828. ETHTOOL_A_PLCA_VERSION, /* u16 */
  829. ETHTOOL_A_PLCA_ENABLED, /* u8 */
  830. ETHTOOL_A_PLCA_STATUS, /* u8 */
  831. ETHTOOL_A_PLCA_NODE_CNT, /* u32 */
  832. ETHTOOL_A_PLCA_NODE_ID, /* u32 */
  833. ETHTOOL_A_PLCA_TO_TMR, /* u32 */
  834. ETHTOOL_A_PLCA_BURST_CNT, /* u32 */
  835. ETHTOOL_A_PLCA_BURST_TMR, /* u32 */
  836. /* add new constants above here */
  837. __ETHTOOL_A_PLCA_CNT,
  838. ETHTOOL_A_PLCA_MAX = (__ETHTOOL_A_PLCA_CNT - 1)
  839. };
  840. /* MAC Merge (802.3) */
  841. enum {
  842. ETHTOOL_A_MM_STAT_UNSPEC,
  843. ETHTOOL_A_MM_STAT_PAD,
  844. /* aMACMergeFrameAssErrorCount */
  845. ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS, /* u64 */
  846. /* aMACMergeFrameSmdErrorCount */
  847. ETHTOOL_A_MM_STAT_SMD_ERRORS, /* u64 */
  848. /* aMACMergeFrameAssOkCount */
  849. ETHTOOL_A_MM_STAT_REASSEMBLY_OK, /* u64 */
  850. /* aMACMergeFragCountRx */
  851. ETHTOOL_A_MM_STAT_RX_FRAG_COUNT, /* u64 */
  852. /* aMACMergeFragCountTx */
  853. ETHTOOL_A_MM_STAT_TX_FRAG_COUNT, /* u64 */
  854. /* aMACMergeHoldCount */
  855. ETHTOOL_A_MM_STAT_HOLD_COUNT, /* u64 */
  856. /* add new constants above here */
  857. __ETHTOOL_A_MM_STAT_CNT,
  858. ETHTOOL_A_MM_STAT_MAX = (__ETHTOOL_A_MM_STAT_CNT - 1)
  859. };
  860. enum {
  861. ETHTOOL_A_MM_UNSPEC,
  862. ETHTOOL_A_MM_HEADER, /* nest - _A_HEADER_* */
  863. ETHTOOL_A_MM_PMAC_ENABLED, /* u8 */
  864. ETHTOOL_A_MM_TX_ENABLED, /* u8 */
  865. ETHTOOL_A_MM_TX_ACTIVE, /* u8 */
  866. ETHTOOL_A_MM_TX_MIN_FRAG_SIZE, /* u32 */
  867. ETHTOOL_A_MM_RX_MIN_FRAG_SIZE, /* u32 */
  868. ETHTOOL_A_MM_VERIFY_ENABLED, /* u8 */
  869. ETHTOOL_A_MM_VERIFY_STATUS, /* u8 */
  870. ETHTOOL_A_MM_VERIFY_TIME, /* u32 */
  871. ETHTOOL_A_MM_MAX_VERIFY_TIME, /* u32 */
  872. ETHTOOL_A_MM_STATS, /* nest - _A_MM_STAT_* */
  873. /* add new constants above here */
  874. __ETHTOOL_A_MM_CNT,
  875. ETHTOOL_A_MM_MAX = (__ETHTOOL_A_MM_CNT - 1)
  876. };
  877. /* MODULE_FW_FLASH */
  878. enum {
  879. ETHTOOL_A_MODULE_FW_FLASH_UNSPEC,
  880. ETHTOOL_A_MODULE_FW_FLASH_HEADER, /* nest - _A_HEADER_* */
  881. ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME, /* string */
  882. ETHTOOL_A_MODULE_FW_FLASH_PASSWORD, /* u32 */
  883. ETHTOOL_A_MODULE_FW_FLASH_STATUS, /* u32 */
  884. ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG, /* string */
  885. ETHTOOL_A_MODULE_FW_FLASH_DONE, /* uint */
  886. ETHTOOL_A_MODULE_FW_FLASH_TOTAL, /* uint */
  887. /* add new constants above here */
  888. __ETHTOOL_A_MODULE_FW_FLASH_CNT,
  889. ETHTOOL_A_MODULE_FW_FLASH_MAX = (__ETHTOOL_A_MODULE_FW_FLASH_CNT - 1)
  890. };
  891. enum {
  892. ETHTOOL_A_PHY_UNSPEC,
  893. ETHTOOL_A_PHY_HEADER, /* nest - _A_HEADER_* */
  894. ETHTOOL_A_PHY_INDEX, /* u32 */
  895. ETHTOOL_A_PHY_DRVNAME, /* string */
  896. ETHTOOL_A_PHY_NAME, /* string */
  897. ETHTOOL_A_PHY_UPSTREAM_TYPE, /* u32 */
  898. ETHTOOL_A_PHY_UPSTREAM_INDEX, /* u32 */
  899. ETHTOOL_A_PHY_UPSTREAM_SFP_NAME, /* string */
  900. ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME, /* string */
  901. /* add new constants above here */
  902. __ETHTOOL_A_PHY_CNT,
  903. ETHTOOL_A_PHY_MAX = (__ETHTOOL_A_PHY_CNT - 1)
  904. };
  905. /* generic netlink info */
  906. #define ETHTOOL_GENL_NAME "ethtool"
  907. #define ETHTOOL_GENL_VERSION 1
  908. #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
  909. #endif /* _LINUX_ETHTOOL_NETLINK_H_ */