12b4a8990SMichal Kubecek /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ 22b4a8990SMichal Kubecek /* 32b4a8990SMichal Kubecek * include/uapi/linux/ethtool_netlink.h - netlink interface for ethtool 42b4a8990SMichal Kubecek * 52b4a8990SMichal Kubecek * See Documentation/networking/ethtool-netlink.txt in kernel source tree for 62b4a8990SMichal Kubecek * doucumentation of the interface. 72b4a8990SMichal Kubecek */ 82b4a8990SMichal Kubecek 92b4a8990SMichal Kubecek #ifndef _UAPI_LINUX_ETHTOOL_NETLINK_H_ 102b4a8990SMichal Kubecek #define _UAPI_LINUX_ETHTOOL_NETLINK_H_ 112b4a8990SMichal Kubecek 122b4a8990SMichal Kubecek #include <linux/ethtool.h> 132b4a8990SMichal Kubecek 142b4a8990SMichal Kubecek /* message types - userspace to kernel */ 152b4a8990SMichal Kubecek enum { 162b4a8990SMichal Kubecek ETHTOOL_MSG_USER_NONE, 172b4a8990SMichal Kubecek 182b4a8990SMichal Kubecek /* add new constants above here */ 192b4a8990SMichal Kubecek __ETHTOOL_MSG_USER_CNT, 202b4a8990SMichal Kubecek ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1 212b4a8990SMichal Kubecek }; 222b4a8990SMichal Kubecek 232b4a8990SMichal Kubecek /* message types - kernel to userspace */ 242b4a8990SMichal Kubecek enum { 252b4a8990SMichal Kubecek ETHTOOL_MSG_KERNEL_NONE, 262b4a8990SMichal Kubecek 272b4a8990SMichal Kubecek /* add new constants above here */ 282b4a8990SMichal Kubecek __ETHTOOL_MSG_KERNEL_CNT, 292b4a8990SMichal Kubecek ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1 302b4a8990SMichal Kubecek }; 312b4a8990SMichal Kubecek 32041b1c5dSMichal Kubecek /* request header */ 33041b1c5dSMichal Kubecek 34041b1c5dSMichal Kubecek /* use compact bitsets in reply */ 35041b1c5dSMichal Kubecek #define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0) 36041b1c5dSMichal Kubecek /* provide optional reply for SET or ACT requests */ 37041b1c5dSMichal Kubecek #define ETHTOOL_FLAG_OMIT_REPLY (1 << 1) 38041b1c5dSMichal Kubecek 39041b1c5dSMichal Kubecek #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | \ 40041b1c5dSMichal Kubecek ETHTOOL_FLAG_OMIT_REPLY) 41041b1c5dSMichal Kubecek 42041b1c5dSMichal Kubecek enum { 43041b1c5dSMichal Kubecek ETHTOOL_A_HEADER_UNSPEC, 44041b1c5dSMichal Kubecek ETHTOOL_A_HEADER_DEV_INDEX, /* u32 */ 45041b1c5dSMichal Kubecek ETHTOOL_A_HEADER_DEV_NAME, /* string */ 46041b1c5dSMichal Kubecek ETHTOOL_A_HEADER_FLAGS, /* u32 - ETHTOOL_FLAG_* */ 47041b1c5dSMichal Kubecek 48041b1c5dSMichal Kubecek /* add new constants above here */ 49041b1c5dSMichal Kubecek __ETHTOOL_A_HEADER_CNT, 50041b1c5dSMichal Kubecek ETHTOOL_A_HEADER_MAX = __ETHTOOL_A_HEADER_CNT - 1 51041b1c5dSMichal Kubecek }; 52041b1c5dSMichal Kubecek 5310b518d4SMichal Kubecek /* bit sets */ 5410b518d4SMichal Kubecek 5510b518d4SMichal Kubecek enum { 5610b518d4SMichal Kubecek ETHTOOL_A_BITSET_BIT_UNSPEC, 5710b518d4SMichal Kubecek ETHTOOL_A_BITSET_BIT_INDEX, /* u32 */ 5810b518d4SMichal Kubecek ETHTOOL_A_BITSET_BIT_NAME, /* string */ 5910b518d4SMichal Kubecek ETHTOOL_A_BITSET_BIT_VALUE, /* flag */ 6010b518d4SMichal Kubecek 6110b518d4SMichal Kubecek /* add new constants above here */ 6210b518d4SMichal Kubecek __ETHTOOL_A_BITSET_BIT_CNT, 6310b518d4SMichal Kubecek ETHTOOL_A_BITSET_BIT_MAX = __ETHTOOL_A_BITSET_BIT_CNT - 1 6410b518d4SMichal Kubecek }; 6510b518d4SMichal Kubecek 6610b518d4SMichal Kubecek enum { 6710b518d4SMichal Kubecek ETHTOOL_A_BITSET_BITS_UNSPEC, 6810b518d4SMichal Kubecek ETHTOOL_A_BITSET_BITS_BIT, /* nest - _A_BITSET_BIT_* */ 6910b518d4SMichal Kubecek 7010b518d4SMichal Kubecek /* add new constants above here */ 7110b518d4SMichal Kubecek __ETHTOOL_A_BITSET_BITS_CNT, 7210b518d4SMichal Kubecek ETHTOOL_A_BITSET_BITS_MAX = __ETHTOOL_A_BITSET_BITS_CNT - 1 7310b518d4SMichal Kubecek }; 7410b518d4SMichal Kubecek 7510b518d4SMichal Kubecek enum { 7610b518d4SMichal Kubecek ETHTOOL_A_BITSET_UNSPEC, 7710b518d4SMichal Kubecek ETHTOOL_A_BITSET_NOMASK, /* flag */ 7810b518d4SMichal Kubecek ETHTOOL_A_BITSET_SIZE, /* u32 */ 7910b518d4SMichal Kubecek ETHTOOL_A_BITSET_BITS, /* nest - _A_BITSET_BITS_* */ 8010b518d4SMichal Kubecek ETHTOOL_A_BITSET_VALUE, /* binary */ 8110b518d4SMichal Kubecek ETHTOOL_A_BITSET_MASK, /* binary */ 8210b518d4SMichal Kubecek 8310b518d4SMichal Kubecek /* add new constants above here */ 8410b518d4SMichal Kubecek __ETHTOOL_A_BITSET_CNT, 8510b518d4SMichal Kubecek ETHTOOL_A_BITSET_MAX = __ETHTOOL_A_BITSET_CNT - 1 8610b518d4SMichal Kubecek }; 8710b518d4SMichal Kubecek 882b4a8990SMichal Kubecek /* generic netlink info */ 892b4a8990SMichal Kubecek #define ETHTOOL_GENL_NAME "ethtool" 902b4a8990SMichal Kubecek #define ETHTOOL_GENL_VERSION 1 912b4a8990SMichal Kubecek 926b08d6c1SMichal Kubecek #define ETHTOOL_MCGRP_MONITOR_NAME "monitor" 936b08d6c1SMichal Kubecek 942b4a8990SMichal Kubecek #endif /* _UAPI_LINUX_ETHTOOL_NETLINK_H_ */ 95