^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) Netlink interface for ethtool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) Basic information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Netlink interface for ethtool uses generic netlink family ``ethtool``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) (userspace application should use macros ``ETHTOOL_GENL_NAME`` and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) ``ETHTOOL_GENL_VERSION`` defined in ``<linux/ethtool_netlink.h>`` uapi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) header). This family does not use a specific header, all information in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) requests and replies is passed using netlink attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) The ethtool netlink interface uses extended ACK for error and warning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) reporting, userspace application developers are encouraged to make these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) messages available to user in a suitable way.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) Requests can be divided into three categories: "get" (retrieving information),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) "set" (setting parameters) and "action" (invoking an action).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) All "set" and "action" type requests require admin privileges
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) (``CAP_NET_ADMIN`` in the namespace). Most "get" type requests are allowed for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) anyone but there are exceptions (where the response contains sensitive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) information). In some cases, the request as such is allowed for anyone but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) unprivileged users have attributes with sensitive information (e.g.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) wake-on-lan password) omitted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) Conventions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ===========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) Attributes which represent a boolean value usually use NLA_U8 type so that we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) can distinguish three states: "on", "off" and "not present" (meaning the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) information is not available in "get" requests or value is not to be changed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) in "set" requests). For these attributes, the "true" value should be passed as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) number 1 but any non-zero value should be understood as "true" by recipient.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) In the tables below, "bool" denotes NLA_U8 attributes interpreted in this way.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) In the message structure descriptions below, if an attribute name is suffixed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) with "+", parent nest can contain multiple attributes of the same type. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) implements an array of entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) Request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Each request or reply message contains a nested attribute with common header.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) Structure of this header is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) ============================== ====== =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) ``ETHTOOL_A_HEADER_DEV_INDEX`` u32 device ifindex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) ``ETHTOOL_A_HEADER_DEV_NAME`` string device name
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) ``ETHTOOL_A_HEADER_FLAGS`` u32 flags common for all requests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) ============================== ====== =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) ``ETHTOOL_A_HEADER_DEV_INDEX`` and ``ETHTOOL_A_HEADER_DEV_NAME`` identify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) device message relates to. One of them is sufficient in requests, if both are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) used, they must identify the same device. Some requests, e.g. global string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) sets, do not require device identification. Most ``GET`` requests also allow
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) dump requests without device identification to query the same information for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) all devices providing it (each device in a separate message).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) ``ETHTOOL_A_HEADER_FLAGS`` is a bitmap of request flags common for all request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) types. The interpretation of these flags is the same for all request types but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) the flags may not apply to requests. Recognized flags are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) ================================= ===================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) ``ETHTOOL_FLAG_COMPACT_BITSETS`` use compact format bitsets in reply
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) ``ETHTOOL_FLAG_OMIT_REPLY`` omit optional reply (_SET and _ACT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) ``ETHTOOL_FLAG_STATS`` include optional device statistics
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) ================================= ===================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) New request flags should follow the general idea that if the flag is not set,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) the behaviour is backward compatible, i.e. requests from old clients not aware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) of the flag should be interpreted the way the client expects. A client must
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) not set flags it does not understand.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Bit sets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) For short bitmaps of (reasonably) fixed length, standard ``NLA_BITFIELD32``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) type is used. For arbitrary length bitmaps, ethtool netlink uses a nested
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) attribute with contents of one of two forms: compact (two binary bitmaps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) representing bit values and mask of affected bits) and bit-by-bit (list of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) bits identified by either index or name).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) Verbose (bit-by-bit) bitsets allow sending symbolic names for bits together
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) with their values which saves a round trip (when the bitset is passed in a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) request) or at least a second request (when the bitset is in a reply). This is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) useful for one shot applications like traditional ethtool command. On the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) other hand, long running applications like ethtool monitor (displaying
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) notifications) or network management daemons may prefer fetching the names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) only once and using compact form to save message size. Notifications from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) ethtool netlink interface always use compact form for bitsets.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) A bitset can represent either a value/mask pair (``ETHTOOL_A_BITSET_NOMASK``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) not set) or a single bitmap (``ETHTOOL_A_BITSET_NOMASK`` set). In requests
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) modifying a bitmap, the former changes the bit set in mask to values set in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) value and preserves the rest; the latter sets the bits set in the bitmap and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) clears the rest.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) Compact form: nested (bitset) atrribute contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) ============================ ====== ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) ``ETHTOOL_A_BITSET_NOMASK`` flag no mask, only a list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) ``ETHTOOL_A_BITSET_SIZE`` u32 number of significant bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) ``ETHTOOL_A_BITSET_VALUE`` binary bitmap of bit values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) ``ETHTOOL_A_BITSET_MASK`` binary bitmap of valid bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) ============================ ====== ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) Value and mask must have length at least ``ETHTOOL_A_BITSET_SIZE`` bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) rounded up to a multiple of 32 bits. They consist of 32-bit words in host byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) order, words ordered from least significant to most significant (i.e. the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) way as bitmaps are passed with ioctl interface).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) For compact form, ``ETHTOOL_A_BITSET_SIZE`` and ``ETHTOOL_A_BITSET_VALUE`` are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) mandatory. ``ETHTOOL_A_BITSET_MASK`` attribute is mandatory if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) ``ETHTOOL_A_BITSET_NOMASK`` is not set (bitset represents a value/mask pair);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) if ``ETHTOOL_A_BITSET_NOMASK`` is not set, ``ETHTOOL_A_BITSET_MASK`` is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) allowed (bitset represents a single bitmap.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) Kernel bit set length may differ from userspace length if older application is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) used on newer kernel or vice versa. If userspace bitmap is longer, an error is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) issued only if the request actually tries to set values of some bits not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) recognized by kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) Bit-by-bit form: nested (bitset) attribute contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) +------------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) | ``ETHTOOL_A_BITSET_NOMASK`` | flag | no mask, only a list |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) +------------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) | ``ETHTOOL_A_BITSET_SIZE`` | u32 | number of significant bits |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) +------------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) | ``ETHTOOL_A_BITSET_BITS`` | nested | array of bits |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) +-+----------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) | | ``ETHTOOL_A_BITSET_BITS_BIT+`` | nested | one bit |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) +-+-+--------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) | | | ``ETHTOOL_A_BITSET_BIT_INDEX`` | u32 | bit index (0 for LSB) |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) +-+-+--------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) | | | ``ETHTOOL_A_BITSET_BIT_NAME`` | string | bit name |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) +-+-+--------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) | | | ``ETHTOOL_A_BITSET_BIT_VALUE`` | flag | present if bit is set |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) +-+-+--------------------------------+--------+-----------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) Bit size is optional for bit-by-bit form. ``ETHTOOL_A_BITSET_BITS`` nest can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) only contain ``ETHTOOL_A_BITSET_BITS_BIT`` attributes but there can be an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) arbitrary number of them. A bit may be identified by its index or by its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) name. When used in requests, listed bits are set to 0 or 1 according to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) ``ETHTOOL_A_BITSET_BIT_VALUE``, the rest is preserved. A request fails if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) index exceeds kernel bit length or if name is not recognized.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) When ``ETHTOOL_A_BITSET_NOMASK`` flag is present, bitset is interpreted as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) a simple bitmap. ``ETHTOOL_A_BITSET_BIT_VALUE`` attributes are not used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) such case. Such bitset represents a bitmap with listed bits set and the rest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) In requests, application can use either form. Form used by kernel in reply is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) determined by ``ETHTOOL_FLAG_COMPACT_BITSETS`` flag in flags field of request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) header. Semantics of value and mask depends on the attribute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) List of message types
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) =====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) All constants identifying message types use ``ETHTOOL_CMD_`` prefix and suffix
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) according to message purpose:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) ============== ======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) ``_GET`` userspace request to retrieve data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) ``_SET`` userspace request to set data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) ``_ACT`` userspace request to perform an action
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) ``_GET_REPLY`` kernel reply to a ``GET`` request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) ``_SET_REPLY`` kernel reply to a ``SET`` request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) ``_ACT_REPLY`` kernel reply to an ``ACT`` request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) ``_NTF`` kernel notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) ============== ======================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) Userspace to kernel:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) ===================================== ================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) ``ETHTOOL_MSG_STRSET_GET`` get string set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) ``ETHTOOL_MSG_LINKINFO_GET`` get link settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) ``ETHTOOL_MSG_LINKINFO_SET`` set link settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) ``ETHTOOL_MSG_LINKMODES_GET`` get link modes info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) ``ETHTOOL_MSG_LINKMODES_SET`` set link modes info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) ``ETHTOOL_MSG_LINKSTATE_GET`` get link state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) ``ETHTOOL_MSG_DEBUG_GET`` get debugging settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) ``ETHTOOL_MSG_DEBUG_SET`` set debugging settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) ``ETHTOOL_MSG_WOL_GET`` get wake-on-lan settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) ``ETHTOOL_MSG_WOL_SET`` set wake-on-lan settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) ``ETHTOOL_MSG_FEATURES_GET`` get device features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) ``ETHTOOL_MSG_FEATURES_SET`` set device features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) ``ETHTOOL_MSG_PRIVFLAGS_GET`` get private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) ``ETHTOOL_MSG_PRIVFLAGS_SET`` set private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) ``ETHTOOL_MSG_RINGS_GET`` get ring sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) ``ETHTOOL_MSG_RINGS_SET`` set ring sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) ``ETHTOOL_MSG_CHANNELS_GET`` get channel counts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) ``ETHTOOL_MSG_CHANNELS_SET`` set channel counts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) ``ETHTOOL_MSG_COALESCE_GET`` get coalescing parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) ``ETHTOOL_MSG_COALESCE_SET`` set coalescing parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) ``ETHTOOL_MSG_PAUSE_GET`` get pause parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) ``ETHTOOL_MSG_PAUSE_SET`` set pause parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) ``ETHTOOL_MSG_EEE_GET`` get EEE settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) ``ETHTOOL_MSG_EEE_SET`` set EEE settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) ``ETHTOOL_MSG_TSINFO_GET`` get timestamping info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) ``ETHTOOL_MSG_CABLE_TEST_ACT`` action start cable test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) ``ETHTOOL_MSG_CABLE_TEST_TDR_ACT`` action start raw TDR cable test
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) ``ETHTOOL_MSG_TUNNEL_INFO_GET`` get tunnel offload info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) ===================================== ================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) Kernel to userspace:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) ===================================== =================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) ``ETHTOOL_MSG_STRSET_GET_REPLY`` string set contents
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) ``ETHTOOL_MSG_LINKINFO_GET_REPLY`` link settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) ``ETHTOOL_MSG_LINKINFO_NTF`` link settings notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) ``ETHTOOL_MSG_LINKMODES_GET_REPLY`` link modes info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) ``ETHTOOL_MSG_LINKMODES_NTF`` link modes notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) ``ETHTOOL_MSG_LINKSTATE_GET_REPLY`` link state info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) ``ETHTOOL_MSG_DEBUG_GET_REPLY`` debugging settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) ``ETHTOOL_MSG_DEBUG_NTF`` debugging settings notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) ``ETHTOOL_MSG_WOL_GET_REPLY`` wake-on-lan settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) ``ETHTOOL_MSG_WOL_NTF`` wake-on-lan settings notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) ``ETHTOOL_MSG_FEATURES_GET_REPLY`` device features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) ``ETHTOOL_MSG_FEATURES_SET_REPLY`` optional reply to FEATURES_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) ``ETHTOOL_MSG_FEATURES_NTF`` netdev features notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) ``ETHTOOL_MSG_PRIVFLAGS_GET_REPLY`` private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) ``ETHTOOL_MSG_PRIVFLAGS_NTF`` private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) ``ETHTOOL_MSG_RINGS_GET_REPLY`` ring sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) ``ETHTOOL_MSG_RINGS_NTF`` ring sizes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) ``ETHTOOL_MSG_CHANNELS_GET_REPLY`` channel counts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) ``ETHTOOL_MSG_CHANNELS_NTF`` channel counts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) ``ETHTOOL_MSG_COALESCE_GET_REPLY`` coalescing parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) ``ETHTOOL_MSG_COALESCE_NTF`` coalescing parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) ``ETHTOOL_MSG_PAUSE_GET_REPLY`` pause parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) ``ETHTOOL_MSG_PAUSE_NTF`` pause parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) ``ETHTOOL_MSG_EEE_GET_REPLY`` EEE settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) ``ETHTOOL_MSG_EEE_NTF`` EEE settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) ``ETHTOOL_MSG_TSINFO_GET_REPLY`` timestamping info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) ``ETHTOOL_MSG_CABLE_TEST_NTF`` Cable test results
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) ``ETHTOOL_MSG_CABLE_TEST_TDR_NTF`` Cable test TDR results
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) ``ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY`` tunnel offload info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) ===================================== =================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) ``GET`` requests are sent by userspace applications to retrieve device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) information. They usually do not contain any message specific attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) Kernel replies with corresponding "GET_REPLY" message. For most types, ``GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) request with ``NLM_F_DUMP`` and no device identification can be used to query
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) the information for all devices supporting the request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) If the data can be also modified, corresponding ``SET`` message with the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) layout as corresponding ``GET_REPLY`` is used to request changes. Only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) attributes where a change is requested are included in such request (also, not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) all attributes may be changed). Replies to most ``SET`` request consist only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) of error code and extack; if kernel provides additional data, it is sent in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) the form of corresponding ``SET_REPLY`` message which can be suppressed by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) setting ``ETHTOOL_FLAG_OMIT_REPLY`` flag in request header.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) Data modification also triggers sending a ``NTF`` message with a notification.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) These usually bear only a subset of attributes which was affected by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) change. The same notification is issued if the data is modified using other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) means (mostly ioctl ethtool interface). Unlike notifications from ethtool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) netlink code which are only sent if something actually changed, notifications
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) triggered by ioctl interface may be sent even if the request did not actually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) change any data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) ``ACT`` messages request kernel (driver) to perform a specific action. If some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) information is reported by kernel (which can be suppressed by setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) ``ETHTOOL_FLAG_OMIT_REPLY`` flag in request header), the reply takes form of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) an ``ACT_REPLY`` message. Performing an action also triggers a notification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) (``NTF`` message).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) Later sections describe the format and semantics of these messages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) STRSET_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) ==========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) Requests contents of a string set as provided by ioctl commands
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) ``ETHTOOL_GSSET_INFO`` and ``ETHTOOL_GSTRINGS.`` String sets are not user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) writeable so that the corresponding ``STRSET_SET`` message is only used in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) kernel replies. There are two types of string sets: global (independent of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) a device, e.g. device feature names) and device specific (e.g. device private
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) flags).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) +---------------------------------------+--------+------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) | ``ETHTOOL_A_STRSET_HEADER`` | nested | request header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) +---------------------------------------+--------+------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) | ``ETHTOOL_A_STRSET_STRINGSETS`` | nested | string set to request |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) +-+-------------------------------------+--------+------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) | | ``ETHTOOL_A_STRINGSETS_STRINGSET+`` | nested | one string set |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) +-+-+-----------------------------------+--------+------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) | | | ``ETHTOOL_A_STRINGSET_ID`` | u32 | set id |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) +-+-+-----------------------------------+--------+------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) +---------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) | ``ETHTOOL_A_STRSET_HEADER`` | nested | reply header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) +---------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) | ``ETHTOOL_A_STRSET_STRINGSETS`` | nested | array of string sets |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) +-+-------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) | | ``ETHTOOL_A_STRINGSETS_STRINGSET+`` | nested | one string set |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) +-+-+-----------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) | | | ``ETHTOOL_A_STRINGSET_ID`` | u32 | set id |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) +-+-+-----------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) | | | ``ETHTOOL_A_STRINGSET_COUNT`` | u32 | number of strings |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) +-+-+-----------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) | | | ``ETHTOOL_A_STRINGSET_STRINGS`` | nested | array of strings |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) +-+-+-+---------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) | | | | ``ETHTOOL_A_STRINGS_STRING+`` | nested | one string |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) +-+-+-+-+-------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) | | | | | ``ETHTOOL_A_STRING_INDEX`` | u32 | string index |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) +-+-+-+-+-------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) | | | | | ``ETHTOOL_A_STRING_VALUE`` | string | string value |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) +-+-+-+-+-------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) | ``ETHTOOL_A_STRSET_COUNTS_ONLY`` | flag | return only counts |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) +---------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) Device identification in request header is optional. Depending on its presence
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) a and ``NLM_F_DUMP`` flag, there are three type of ``STRSET_GET`` requests:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) - no ``NLM_F_DUMP,`` no device: get "global" stringsets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) - no ``NLM_F_DUMP``, with device: get string sets related to the device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) - ``NLM_F_DUMP``, no device: get device related string sets for all devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) If there is no ``ETHTOOL_A_STRSET_STRINGSETS`` array, all string sets of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) requested type are returned, otherwise only those specified in the request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) Flag ``ETHTOOL_A_STRSET_COUNTS_ONLY`` tells kernel to only return string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) counts of the sets, not the actual strings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) LINKINFO_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) Requests link settings as provided by ``ETHTOOL_GLINKSETTINGS`` except for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) link modes and autonegotiation related information. The request does not use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) any attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) ``ETHTOOL_A_LINKINFO_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) ``ETHTOOL_A_LINKINFO_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) ``ETHTOOL_A_LINKINFO_PORT`` u8 physical port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) ``ETHTOOL_A_LINKINFO_PHYADDR`` u8 phy MDIO address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) ``ETHTOOL_A_LINKINFO_TP_MDIX`` u8 MDI(-X) status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) ``ETHTOOL_A_LINKINFO_TP_MDIX_CTRL`` u8 MDI(-X) control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) ``ETHTOOL_A_LINKINFO_TRANSCEIVER`` u8 transceiver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) Attributes and their values have the same meaning as matching members of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) corresponding ioctl structures.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) ``LINKINFO_GET`` allows dump requests (kernel returns reply message for all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) devices supporting the request).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) LINKINFO_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) ``LINKINFO_SET`` request allows setting some of the attributes reported by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) ``LINKINFO_GET``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) ``ETHTOOL_A_LINKINFO_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) ``ETHTOOL_A_LINKINFO_PORT`` u8 physical port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) ``ETHTOOL_A_LINKINFO_PHYADDR`` u8 phy MDIO address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) ``ETHTOOL_A_LINKINFO_TP_MDIX_CTRL`` u8 MDI(-X) control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) MDI(-X) status and transceiver cannot be set, request with the corresponding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) attributes is rejected.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) LINKMODES_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) Requests link modes (supported, advertised and peer advertised) and related
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) information (autonegotiation status, link speed and duplex) as provided by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) ``ETHTOOL_GLINKSETTINGS``. The request does not use any attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) ``ETHTOOL_A_LINKMODES_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) ========================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) ``ETHTOOL_A_LINKMODES_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) ``ETHTOOL_A_LINKMODES_AUTONEG`` u8 autonegotiation status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) ``ETHTOOL_A_LINKMODES_OURS`` bitset advertised link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) ``ETHTOOL_A_LINKMODES_PEER`` bitset partner link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) ``ETHTOOL_A_LINKMODES_SPEED`` u32 link speed (Mb/s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) ``ETHTOOL_A_LINKMODES_DUPLEX`` u8 duplex mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG`` u8 Master/slave port mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE`` u8 Master/slave port state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) ========================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) For ``ETHTOOL_A_LINKMODES_OURS``, value represents advertised modes and mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) represents supported modes. ``ETHTOOL_A_LINKMODES_PEER`` in the reply is a bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) list.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) ``LINKMODES_GET`` allows dump requests (kernel returns reply messages for all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) devices supporting the request).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) LINKMODES_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) ========================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) ``ETHTOOL_A_LINKMODES_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) ``ETHTOOL_A_LINKMODES_AUTONEG`` u8 autonegotiation status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) ``ETHTOOL_A_LINKMODES_OURS`` bitset advertised link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) ``ETHTOOL_A_LINKMODES_PEER`` bitset partner link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) ``ETHTOOL_A_LINKMODES_SPEED`` u32 link speed (Mb/s)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) ``ETHTOOL_A_LINKMODES_DUPLEX`` u8 duplex mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG`` u8 Master/slave port mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) ========================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) ``ETHTOOL_A_LINKMODES_OURS`` bit set allows setting advertised link modes. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) autonegotiation is on (either set now or kept from before), advertised modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) are not changed (no ``ETHTOOL_A_LINKMODES_OURS`` attribute) and at least one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) of speed and duplex is specified, kernel adjusts advertised modes to all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) supported modes matching speed, duplex or both (whatever is specified). This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) autoselection is done on ethtool side with ioctl interface, netlink interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) is supposed to allow requesting changes without knowing what exactly kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) supports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) LINKSTATE_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) Requests link state information. Link up/down flag (as provided by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) ``ETHTOOL_GLINK`` ioctl command) is provided. Optionally, extended state might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) be provided as well. In general, extended state describes reasons for why a port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) is down, or why it operates in some non-obvious mode. This request does not have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) any attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) ``ETHTOOL_A_LINKSTATE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) ==================================== ====== ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) ``ETHTOOL_A_LINKSTATE_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) ``ETHTOOL_A_LINKSTATE_LINK`` bool link state (up/down)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) ``ETHTOOL_A_LINKSTATE_SQI`` u32 Current Signal Quality Index
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) ``ETHTOOL_A_LINKSTATE_SQI_MAX`` u32 Max support SQI value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) ``ETHTOOL_A_LINKSTATE_EXT_STATE`` u8 link extended state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE`` u8 link extended substate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) ==================================== ====== ============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) For most NIC drivers, the value of ``ETHTOOL_A_LINKSTATE_LINK`` returns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) carrier flag provided by ``netif_carrier_ok()`` but there are drivers which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) define their own handler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) ``ETHTOOL_A_LINKSTATE_EXT_STATE`` and ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE`` are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) optional values. ethtool core can provide either both
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) ``ETHTOOL_A_LINKSTATE_EXT_STATE`` and ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE``,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) or only ``ETHTOOL_A_LINKSTATE_EXT_STATE``, or none of them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) ``LINKSTATE_GET`` allows dump requests (kernel returns reply messages for all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) devices supporting the request).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) Link extended states:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) ================================================ ============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) ``ETHTOOL_LINK_EXT_STATE_AUTONEG`` States relating to the autonegotiation or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) issues therein
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) ``ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE`` Failure during link training
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) ``ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH`` Logical mismatch in physical coding sublayer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) or forward error correction sublayer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) ``ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY`` Signal integrity issues
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) ``ETHTOOL_LINK_EXT_STATE_NO_CABLE`` No cable connected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) ``ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE`` Failure is related to cable,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) e.g., unsupported cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) ``ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE`` Failure is related to EEPROM, e.g., failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) during reading or parsing the data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) ``ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE`` Failure during calibration algorithm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) ``ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED`` The hardware is not able to provide the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) power required from cable or module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) ``ETHTOOL_LINK_EXT_STATE_OVERHEAT`` The module is overheated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) ================================================ ============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) Link extended substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) Autoneg substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) =============================================================== ================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED`` Peer side is down
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED`` Ack not received from peer side
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED`` Next page exchange failed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE`` Peer side is down during force
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) mode or there is no agreement of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) speed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE`` Forward error correction modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) in both sides are mismatched
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD`` No Highest Common Denominator
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) =============================================================== ================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) Link training substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) =========================================================================== ====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED`` Frames were not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) recognized, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) lock failed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT`` The lock did not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) occur before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) timeout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY`` Peer side did not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) send ready signal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) after training
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) process
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) ``ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT`` Remote side is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) ready yet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) =========================================================================== ====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) Link logical mismatch substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) ================================================================ ===============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK`` Physical coding sublayer was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) not locked in first phase -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) block lock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK`` Physical coding sublayer was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) not locked in second phase -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) alignment markers lock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS`` Physical coding sublayer did
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) not get align status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED`` FC forward error correction is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) not locked
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED`` RS forward error correction is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) not locked
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) ================================================================ ===============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) Bad signal integrity substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) ================================================================= =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS`` Large number of physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) errors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE`` The system attempted to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) operate the cable at a rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) that is not formally
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) supported, which led to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) signal integrity issues
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) ================================================================= =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) Cable issue substates:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) =================================================== ============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) ``ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE`` Unsupported cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) ``ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE`` Cable test failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) =================================================== ============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) DEBUG_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) Requests debugging settings of a device. At the moment, only message mask is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) provided.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) ``ETHTOOL_A_DEBUG_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) ``ETHTOOL_A_DEBUG_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) ``ETHTOOL_A_DEBUG_MSGMASK`` bitset message mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) The message mask (``ETHTOOL_A_DEBUG_MSGMASK``) is equal to message level as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) provided by ``ETHTOOL_GMSGLVL`` and set by ``ETHTOOL_SMSGLVL`` in ioctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) interface. While it is called message level there for historical reasons, most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) drivers and almost all newer drivers use it as a mask of enabled message
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) classes (represented by ``NETIF_MSG_*`` constants); therefore netlink
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) interface follows its actual use in practice.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) ``DEBUG_GET`` allows dump requests (kernel returns reply messages for all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) devices supporting the request).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) DEBUG_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) Set or update debugging settings of a device. At the moment, only message mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) is supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) ``ETHTOOL_A_DEBUG_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) ``ETHTOOL_A_DEBUG_MSGMASK`` bitset message mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) ``ETHTOOL_A_DEBUG_MSGMASK`` bit set allows setting or modifying mask of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) enabled debugging message types for the device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) WOL_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) Query device wake-on-lan settings. Unlike most "GET" type requests,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) ``ETHTOOL_MSG_WOL_GET`` requires (netns) ``CAP_NET_ADMIN`` privileges as it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) (potentially) provides SecureOn(tm) password which is confidential.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) ``ETHTOOL_A_WOL_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) ``ETHTOOL_A_WOL_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) ``ETHTOOL_A_WOL_MODES`` bitset mask of enabled WoL modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) ``ETHTOOL_A_WOL_SOPASS`` binary SecureOn(tm) password
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) In reply, ``ETHTOOL_A_WOL_MODES`` mask consists of modes supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) device, value of modes which are enabled. ``ETHTOOL_A_WOL_SOPASS`` is only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) included in reply if ``WAKE_MAGICSECURE`` mode is supported.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) WOL_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) Set or update wake-on-lan settings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) ``ETHTOOL_A_WOL_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) ``ETHTOOL_A_WOL_MODES`` bitset enabled WoL modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) ``ETHTOOL_A_WOL_SOPASS`` binary SecureOn(tm) password
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) ``ETHTOOL_A_WOL_SOPASS`` is only allowed for devices supporting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) ``WAKE_MAGICSECURE`` mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) FEATURES_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) Gets netdev features like ``ETHTOOL_GFEATURES`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) ``ETHTOOL_A_FEATURES_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) ``ETHTOOL_A_FEATURES_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) ``ETHTOOL_A_FEATURES_HW`` bitset dev->hw_features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) ``ETHTOOL_A_FEATURES_WANTED`` bitset dev->wanted_features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) ``ETHTOOL_A_FEATURES_ACTIVE`` bitset dev->features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) ``ETHTOOL_A_FEATURES_NOCHANGE`` bitset NETIF_F_NEVER_CHANGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) Bitmaps in kernel response have the same meaning as bitmaps used in ioctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) interference but attribute names are different (they are based on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) corresponding members of struct net_device). Legacy "flags" are not provided,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) if userspace needs them (most likely only ethtool for backward compatibility),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) it can calculate their values from related feature bits itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) ETHA_FEATURES_HW uses mask consisting of all features recognized by kernel (to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) provide all names when using verbose bitmap format), the other three use no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) mask (simple bit lists).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) FEATURES_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) Request to set netdev features like ``ETHTOOL_SFEATURES`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) ``ETHTOOL_A_FEATURES_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) ``ETHTOOL_A_FEATURES_WANTED`` bitset requested features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) ``ETHTOOL_A_FEATURES_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) ``ETHTOOL_A_FEATURES_WANTED`` bitset diff wanted vs. result
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) ``ETHTOOL_A_FEATURES_ACTIVE`` bitset diff old vs. new active
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) Request constains only one bitset which can be either value/mask pair (request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) to change specific feature bits and leave the rest) or only a value (request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) to set all features to specified set).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) As request is subject to netdev_change_features() sanity checks, optional
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) kernel reply (can be suppressed by ``ETHTOOL_FLAG_OMIT_REPLY`` flag in request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) header) informs client about the actual result. ``ETHTOOL_A_FEATURES_WANTED``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) reports the difference between client request and actual result: mask consists
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) of bits which differ between requested features and result (dev->features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) after the operation), value consists of values of these bits in the request
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) (i.e. negated values from resulting features). ``ETHTOOL_A_FEATURES_ACTIVE``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) reports the difference between old and new dev->features: mask consists of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) bits which have changed, values are their values in new dev->features (after
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) the operation).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) ``ETHTOOL_MSG_FEATURES_NTF`` notification is sent not only if device features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) are modified using ``ETHTOOL_MSG_FEATURES_SET`` request or on of ethtool ioctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) request but also each time features are modified with netdev_update_features()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) or netdev_change_features().
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) PRIVFLAGS_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) Gets private flags like ``ETHTOOL_GPFLAGS`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) ``ETHTOOL_A_PRIVFLAGS_FLAGS`` bitset private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) ``ETHTOOL_A_PRIVFLAGS_FLAGS`` is a bitset with values of device private flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) These flags are defined by driver, their number and names (and also meaning)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) are device dependent. For compact bitset format, names can be retrieved as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) ``ETH_SS_PRIV_FLAGS`` string set. If verbose bitset format is requested,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) response uses all private flags supported by the device as mask so that client
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) gets the full information without having to fetch the string set with names.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) PRIVFLAGS_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) Sets or modifies values of device private flags like ``ETHTOOL_SPFLAGS``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) ``ETHTOOL_A_PRIVFLAGS_FLAGS`` bitset private flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) ``ETHTOOL_A_PRIVFLAGS_FLAGS`` can either set the whole set of private flags or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) modify only values of some of them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) RINGS_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) Gets ring sizes like ``ETHTOOL_GRINGPARAM`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) ``ETHTOOL_A_RINGS_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) ``ETHTOOL_A_RINGS_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) ``ETHTOOL_A_RINGS_RX_MAX`` u32 max size of RX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) ``ETHTOOL_A_RINGS_RX_MINI_MAX`` u32 max size of RX mini ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) ``ETHTOOL_A_RINGS_RX_JUMBO_MAX`` u32 max size of RX jumbo ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) ``ETHTOOL_A_RINGS_TX_MAX`` u32 max size of TX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) ``ETHTOOL_A_RINGS_RX`` u32 size of RX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) ``ETHTOOL_A_RINGS_RX_MINI`` u32 size of RX mini ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) ``ETHTOOL_A_RINGS_RX_JUMBO`` u32 size of RX jumbo ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) ``ETHTOOL_A_RINGS_TX`` u32 size of TX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) RINGS_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) Sets ring sizes like ``ETHTOOL_SRINGPARAM`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) ``ETHTOOL_A_RINGS_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) ``ETHTOOL_A_RINGS_RX`` u32 size of RX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) ``ETHTOOL_A_RINGS_RX_MINI`` u32 size of RX mini ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) ``ETHTOOL_A_RINGS_RX_JUMBO`` u32 size of RX jumbo ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) ``ETHTOOL_A_RINGS_TX`` u32 size of TX ring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) Kernel checks that requested ring sizes do not exceed limits reported by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) driver. Driver may impose additional constraints and may not suspport all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) CHANNELS_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) Gets channel counts like ``ETHTOOL_GCHANNELS`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) ``ETHTOOL_A_CHANNELS_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) ``ETHTOOL_A_CHANNELS_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) ``ETHTOOL_A_CHANNELS_RX_MAX`` u32 max receive channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) ``ETHTOOL_A_CHANNELS_TX_MAX`` u32 max transmit channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) ``ETHTOOL_A_CHANNELS_OTHER_MAX`` u32 max other channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) ``ETHTOOL_A_CHANNELS_COMBINED_MAX`` u32 max combined channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) ``ETHTOOL_A_CHANNELS_RX_COUNT`` u32 receive channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) ``ETHTOOL_A_CHANNELS_TX_COUNT`` u32 transmit channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) ``ETHTOOL_A_CHANNELS_OTHER_COUNT`` u32 other channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) ``ETHTOOL_A_CHANNELS_COMBINED_COUNT`` u32 combined channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) CHANNELS_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) Sets channel counts like ``ETHTOOL_SCHANNELS`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) ``ETHTOOL_A_CHANNELS_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) ``ETHTOOL_A_CHANNELS_RX_COUNT`` u32 receive channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) ``ETHTOOL_A_CHANNELS_TX_COUNT`` u32 transmit channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) ``ETHTOOL_A_CHANNELS_OTHER_COUNT`` u32 other channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) ``ETHTOOL_A_CHANNELS_COMBINED_COUNT`` u32 combined channel count
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) Kernel checks that requested channel counts do not exceed limits reported by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) driver. Driver may impose additional constraints and may not suspport all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) attributes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) COALESCE_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) Gets coalescing parameters like ``ETHTOOL_GCOALESCE`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) ``ETHTOOL_A_COALESCE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) =========================================== ====== =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) ``ETHTOOL_A_COALESCE_HEADER`` nested reply header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) ``ETHTOOL_A_COALESCE_RX_USECS`` u32 delay (us), normal Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES`` u32 max packets, normal Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) ``ETHTOOL_A_COALESCE_RX_USECS_IRQ`` u32 delay (us), Rx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ`` u32 max packets, Rx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) ``ETHTOOL_A_COALESCE_TX_USECS`` u32 delay (us), normal Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES`` u32 max packets, normal Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) ``ETHTOOL_A_COALESCE_TX_USECS_IRQ`` u32 delay (us), Tx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ`` u32 IRQ packets, Tx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) ``ETHTOOL_A_COALESCE_STATS_BLOCK_USECS`` u32 delay of stats update
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX`` bool adaptive Rx coalesce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX`` bool adaptive Tx coalesce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) ``ETHTOOL_A_COALESCE_PKT_RATE_LOW`` u32 threshold for low rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) ``ETHTOOL_A_COALESCE_RX_USECS_LOW`` u32 delay (us), low Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW`` u32 max packets, low Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) ``ETHTOOL_A_COALESCE_TX_USECS_LOW`` u32 delay (us), low Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW`` u32 max packets, low Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) ``ETHTOOL_A_COALESCE_PKT_RATE_HIGH`` u32 threshold for high rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) ``ETHTOOL_A_COALESCE_RX_USECS_HIGH`` u32 delay (us), high Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH`` u32 max packets, high Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) =========================================== ====== =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) Attributes are only included in reply if their value is not zero or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) corresponding bit in ``ethtool_ops::supported_coalesce_params`` is set (i.e.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) they are declared as supported by driver).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) COALESCE_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) Sets coalescing parameters like ``ETHTOOL_SCOALESCE`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) =========================================== ====== =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) ``ETHTOOL_A_COALESCE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) ``ETHTOOL_A_COALESCE_RX_USECS`` u32 delay (us), normal Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES`` u32 max packets, normal Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) ``ETHTOOL_A_COALESCE_RX_USECS_IRQ`` u32 delay (us), Rx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ`` u32 max packets, Rx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) ``ETHTOOL_A_COALESCE_TX_USECS`` u32 delay (us), normal Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES`` u32 max packets, normal Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) ``ETHTOOL_A_COALESCE_TX_USECS_IRQ`` u32 delay (us), Tx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ`` u32 IRQ packets, Tx in IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) ``ETHTOOL_A_COALESCE_STATS_BLOCK_USECS`` u32 delay of stats update
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX`` bool adaptive Rx coalesce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX`` bool adaptive Tx coalesce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) ``ETHTOOL_A_COALESCE_PKT_RATE_LOW`` u32 threshold for low rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) ``ETHTOOL_A_COALESCE_RX_USECS_LOW`` u32 delay (us), low Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW`` u32 max packets, low Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) ``ETHTOOL_A_COALESCE_TX_USECS_LOW`` u32 delay (us), low Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW`` u32 max packets, low Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) ``ETHTOOL_A_COALESCE_PKT_RATE_HIGH`` u32 threshold for high rate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) ``ETHTOOL_A_COALESCE_RX_USECS_HIGH`` u32 delay (us), high Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH`` u32 max packets, high Rx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) =========================================== ====== =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) Request is rejected if it attributes declared as unsupported by driver (i.e.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) such that the corresponding bit in ``ethtool_ops::supported_coalesce_params``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) is not set), regardless of their values. Driver may impose additional
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) constraints on coalescing parameters and their values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) PAUSE_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) Gets channel counts like ``ETHTOOL_GPAUSE`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) ``ETHTOOL_A_PAUSE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) ``ETHTOOL_A_PAUSE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) ``ETHTOOL_A_PAUSE_AUTONEG`` bool pause autonegotiation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) ``ETHTOOL_A_PAUSE_RX`` bool receive pause frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) ``ETHTOOL_A_PAUSE_TX`` bool transmit pause frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) ``ETHTOOL_A_PAUSE_STATS`` nested pause statistics
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) ``ETHTOOL_A_PAUSE_STATS`` are reported if ``ETHTOOL_FLAG_STATS`` was set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) in ``ETHTOOL_A_HEADER_FLAGS``.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) It will be empty if driver did not report any statistics. Drivers fill in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) the statistics in the following structure:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) .. kernel-doc:: include/linux/ethtool.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) :identifiers: ethtool_pause_stats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) Each member has a corresponding attribute defined.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) PAUSE_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) ============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) Sets pause parameters like ``ETHTOOL_GPAUSEPARAM`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) ``ETHTOOL_A_PAUSE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) ``ETHTOOL_A_PAUSE_AUTONEG`` bool pause autonegotiation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) ``ETHTOOL_A_PAUSE_RX`` bool receive pause frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) ``ETHTOOL_A_PAUSE_TX`` bool transmit pause frames
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) EEE_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) Gets channel counts like ``ETHTOOL_GEEE`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) ``ETHTOOL_A_EEE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) ``ETHTOOL_A_EEE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) ``ETHTOOL_A_EEE_MODES_OURS`` bool supported/advertised modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) ``ETHTOOL_A_EEE_MODES_PEER`` bool peer advertised link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) ``ETHTOOL_A_EEE_ACTIVE`` bool EEE is actively used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) ``ETHTOOL_A_EEE_ENABLED`` bool EEE is enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) ``ETHTOOL_A_EEE_TX_LPI_ENABLED`` bool Tx lpi enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) ``ETHTOOL_A_EEE_TX_LPI_TIMER`` u32 Tx lpi timeout (in us)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) In ``ETHTOOL_A_EEE_MODES_OURS``, mask consists of link modes for which EEE is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) enabled, value of link modes for which EEE is advertised. Link modes for which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) peer advertises EEE are listed in ``ETHTOOL_A_EEE_MODES_PEER`` (no mask). The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) netlink interface allows reporting EEE status for all link modes but only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) first 32 are provided by the ``ethtool_ops`` callback.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) EEE_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) =======
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) Sets pause parameters like ``ETHTOOL_GEEEPARAM`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) ``ETHTOOL_A_EEE_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) ``ETHTOOL_A_EEE_MODES_OURS`` bool advertised modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) ``ETHTOOL_A_EEE_ENABLED`` bool EEE is enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) ``ETHTOOL_A_EEE_TX_LPI_ENABLED`` bool Tx lpi enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) ``ETHTOOL_A_EEE_TX_LPI_TIMER`` u32 Tx lpi timeout (in us)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) ``ETHTOOL_A_EEE_MODES_OURS`` is used to either list link modes to advertise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) EEE for (if there is no mask) or specify changes to the list (if there is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) a mask). The netlink interface allows reporting EEE status for all link modes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) but only first 32 can be set at the moment as that is what the ``ethtool_ops``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) callback supports.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) TSINFO_GET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) ==========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) Gets timestamping information like ``ETHTOOL_GET_TS_INFO`` ioctl request.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) ``ETHTOOL_A_TSINFO_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) ``ETHTOOL_A_TSINFO_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) ``ETHTOOL_A_TSINFO_TIMESTAMPING`` bitset SO_TIMESTAMPING flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) ``ETHTOOL_A_TSINFO_TX_TYPES`` bitset supported Tx types
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) ``ETHTOOL_A_TSINFO_RX_FILTERS`` bitset supported Rx filters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) ``ETHTOOL_A_TSINFO_PHC_INDEX`` u32 PTP hw clock index
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) ``ETHTOOL_A_TSINFO_PHC_INDEX`` is absent if there is no associated PHC (there
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) is no special value for this case). The bitset attributes are omitted if they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) would be empty (no bit set).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) CABLE_TEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) ==========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) Start a cable test.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) ``ETHTOOL_A_CABLE_TEST_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) ==================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) Notification contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) An Ethernet cable typically contains 1, 2 or 4 pairs. The length of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) the pair can only be measured when there is a fault in the pair and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) hence a reflection. Information about the fault may not be available,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) depending on the specific hardware. Hence the contents of the notify
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) message are mostly optional. The attributes can be repeated an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) arbitrary number of times, in an arbitrary order, for an arbitrary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) number of pairs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) The example shows the notification sent when the test is completed for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) a T2 cable, i.e. two pairs. One pair is OK and hence has no length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) information. The second pair has a fault and does have length
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) +---------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) | ``ETHTOOL_A_CABLE_TEST_HEADER`` | nested | reply header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) +---------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) | ``ETHTOOL_A_CABLE_TEST_STATUS`` | u8 | completed |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) +---------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) | ``ETHTOOL_A_CABLE_TEST_NTF_NEST`` | nested | all the results |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) +-+-------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) | | ``ETHTOOL_A_CABLE_NEST_RESULT`` | nested | cable test result |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) | | | ``ETHTOOL_A_CABLE_RESULTS_CODE`` | u8 | result code |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) | | ``ETHTOOL_A_CABLE_NEST_RESULT`` | nested | cable test results |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) | | | ``ETHTOOL_A_CABLE_RESULTS_CODE`` | u8 | result code |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) | | ``ETHTOOL_A_CABLE_NEST_FAULT_LENGTH`` | nested | cable length |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_CM`` | u32 | length in cm |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) CABLE_TEST TDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) ==============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) Start a cable test and report raw TDR data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) +--------------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) | ``ETHTOOL_A_CABLE_TEST_TDR_HEADER`` | nested | reply header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) +--------------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) | ``ETHTOOL_A_CABLE_TEST_TDR_CFG`` | nested | test configuration |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) +-+------------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) | | ``ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE`` | u32 | first data distance |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) +-+-+----------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) | | ``ETHTOOL_A_CABLE_STEP_LAST_DISTANCE`` | u32 | last data distance |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) +-+-+----------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) | | ``ETHTOOL_A_CABLE_STEP_STEP_DISTANCE`` | u32 | distance of each step |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) +-+-+----------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) | | ``ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR`` | u8 | pair to test |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) +-+-+----------------------------------------+--------+-----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) The ETHTOOL_A_CABLE_TEST_TDR_CFG is optional, as well as all members
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) of the nest. All distances are expressed in centimeters. The PHY takes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) the distances as a guide, and rounds to the nearest distance it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) actually supports. If a pair is passed, only that one pair will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) tested. Otherwise all pairs are tested.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) Notification contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) Raw TDR data is gathered by sending a pulse down the cable and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) recording the amplitude of the reflected pulse for a given distance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) It can take a number of seconds to collect TDR data, especial if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) full 100 meters is probed at 1 meter intervals. When the test is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) started a notification will be sent containing just
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) ETHTOOL_A_CABLE_TEST_TDR_STATUS with the value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) When the test has completed a second notification will be sent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) containing ETHTOOL_A_CABLE_TEST_TDR_STATUS with the value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED and the TDR data.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) The message may optionally contain the amplitude of the pulse send
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) down the cable. This is measured in mV. A reflection should not be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) bigger than transmitted pulse.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) Before the raw TDR data should be an ETHTOOL_A_CABLE_TDR_NEST_STEP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) nest containing information about the distance along the cable for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) first reading, the last reading, and the step between each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) reading. Distances are measured in centimeters. These should be the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) exact values the PHY used. These may be different to what the user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) requested, if the native measurement resolution is greater than 1 cm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) For each step along the cable, a ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) used to report the amplitude of the reflection for a given pair.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) +---------------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) | ``ETHTOOL_A_CABLE_TEST_TDR_HEADER`` | nested | reply header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) +---------------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) | ``ETHTOOL_A_CABLE_TEST_TDR_STATUS`` | u8 | completed |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) +---------------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) | ``ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST`` | nested | all the results |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) +-+-------------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) | | ``ETHTOOL_A_CABLE_TDR_NEST_PULSE`` | nested | TX Pulse amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) | | | ``ETHTOOL_A_CABLE_PULSE_mV`` | s16 | Pulse amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) | | ``ETHTOOL_A_CABLE_NEST_STEP`` | nested | TDR step info |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) | | | ``ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE`` | u32 | First data distance |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) | | | ``ETHTOOL_A_CABLE_STEP_LAST_DISTANCE`` | u32 | Last data distance |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) | | | ``ETHTOOL_A_CABLE_STEP_STEP_DISTANCE`` | u32 | distance of each step|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) +-+-+-----------------------------------------+--------+----------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) TUNNEL_INFO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) ===========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) Gets information about the tunnel state NIC is aware of.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) Request contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) ``ETHTOOL_A_TUNNEL_INFO_HEADER`` nested request header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) ===================================== ====== ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) Kernel response contents:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) +---------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) | ``ETHTOOL_A_TUNNEL_INFO_HEADER`` | nested | reply header |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) +---------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) | ``ETHTOOL_A_TUNNEL_INFO_UDP_PORTS`` | nested | all UDP port tables |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) +-+-------------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) | | ``ETHTOOL_A_TUNNEL_UDP_TABLE`` | nested | one UDP port table |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE`` | u32 | max size of the |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) | | | | | table |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES`` | bitset | tunnel types which |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) | | | | | table can hold |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) +-+-+-----------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY`` | nested | offloaded UDP port |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) +-+-+-+---------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) | | | | ``ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT`` | be16 | UDP port |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) +-+-+-+---------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) | | | | ``ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE`` | u32 | tunnel type |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) +-+-+-+---------------------------------------+--------+---------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) For UDP tunnel table empty ``ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES`` indicates that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) the table contains static entries, hard-coded by the NIC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) Request translation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) ===================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) The following table maps ioctl commands to netlink commands providing their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) functionality. Entries with "n/a" in right column are commands which do not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) have their netlink replacement yet. Entries which "n/a" in the left column
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) are netlink only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) =================================== =====================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) ioctl command netlink command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) =================================== =====================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) ``ETHTOOL_GSET`` ``ETHTOOL_MSG_LINKINFO_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) ``ETHTOOL_MSG_LINKMODES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) ``ETHTOOL_SSET`` ``ETHTOOL_MSG_LINKINFO_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) ``ETHTOOL_MSG_LINKMODES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) ``ETHTOOL_GDRVINFO`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) ``ETHTOOL_GREGS`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) ``ETHTOOL_GWOL`` ``ETHTOOL_MSG_WOL_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) ``ETHTOOL_SWOL`` ``ETHTOOL_MSG_WOL_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) ``ETHTOOL_GMSGLVL`` ``ETHTOOL_MSG_DEBUG_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) ``ETHTOOL_SMSGLVL`` ``ETHTOOL_MSG_DEBUG_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) ``ETHTOOL_NWAY_RST`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) ``ETHTOOL_GLINK`` ``ETHTOOL_MSG_LINKSTATE_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) ``ETHTOOL_GEEPROM`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) ``ETHTOOL_SEEPROM`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) ``ETHTOOL_GCOALESCE`` ``ETHTOOL_MSG_COALESCE_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) ``ETHTOOL_SCOALESCE`` ``ETHTOOL_MSG_COALESCE_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) ``ETHTOOL_GRINGPARAM`` ``ETHTOOL_MSG_RINGS_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) ``ETHTOOL_SRINGPARAM`` ``ETHTOOL_MSG_RINGS_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) ``ETHTOOL_GPAUSEPARAM`` ``ETHTOOL_MSG_PAUSE_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) ``ETHTOOL_SPAUSEPARAM`` ``ETHTOOL_MSG_PAUSE_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) ``ETHTOOL_GRXCSUM`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) ``ETHTOOL_SRXCSUM`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) ``ETHTOOL_GTXCSUM`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) ``ETHTOOL_STXCSUM`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) ``ETHTOOL_GSG`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) ``ETHTOOL_SSG`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) ``ETHTOOL_TEST`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) ``ETHTOOL_GSTRINGS`` ``ETHTOOL_MSG_STRSET_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) ``ETHTOOL_PHYS_ID`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) ``ETHTOOL_GSTATS`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) ``ETHTOOL_GTSO`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) ``ETHTOOL_STSO`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) ``ETHTOOL_GPERMADDR`` rtnetlink ``RTM_GETLINK``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) ``ETHTOOL_GUFO`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) ``ETHTOOL_SUFO`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) ``ETHTOOL_GGSO`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) ``ETHTOOL_SGSO`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) ``ETHTOOL_GFLAGS`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) ``ETHTOOL_SFLAGS`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) ``ETHTOOL_GPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) ``ETHTOOL_SPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) ``ETHTOOL_GRXFH`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) ``ETHTOOL_SRXFH`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) ``ETHTOOL_GGRO`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) ``ETHTOOL_SGRO`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) ``ETHTOOL_GRXRINGS`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) ``ETHTOOL_GRXCLSRLCNT`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) ``ETHTOOL_GRXCLSRULE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) ``ETHTOOL_GRXCLSRLALL`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) ``ETHTOOL_SRXCLSRLDEL`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) ``ETHTOOL_SRXCLSRLINS`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) ``ETHTOOL_FLASHDEV`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) ``ETHTOOL_RESET`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) ``ETHTOOL_SRXNTUPLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) ``ETHTOOL_GRXNTUPLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) ``ETHTOOL_GSSET_INFO`` ``ETHTOOL_MSG_STRSET_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) ``ETHTOOL_GRXFHINDIR`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) ``ETHTOOL_SRXFHINDIR`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) ``ETHTOOL_GFEATURES`` ``ETHTOOL_MSG_FEATURES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) ``ETHTOOL_SFEATURES`` ``ETHTOOL_MSG_FEATURES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) ``ETHTOOL_GCHANNELS`` ``ETHTOOL_MSG_CHANNELS_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) ``ETHTOOL_SCHANNELS`` ``ETHTOOL_MSG_CHANNELS_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) ``ETHTOOL_SET_DUMP`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) ``ETHTOOL_GET_DUMP_FLAG`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) ``ETHTOOL_GET_DUMP_DATA`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) ``ETHTOOL_GET_TS_INFO`` ``ETHTOOL_MSG_TSINFO_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) ``ETHTOOL_GMODULEINFO`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) ``ETHTOOL_GMODULEEEPROM`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) ``ETHTOOL_GEEE`` ``ETHTOOL_MSG_EEE_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) ``ETHTOOL_SEEE`` ``ETHTOOL_MSG_EEE_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) ``ETHTOOL_GRSSH`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) ``ETHTOOL_SRSSH`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) ``ETHTOOL_GTUNABLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) ``ETHTOOL_STUNABLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) ``ETHTOOL_GPHYSTATS`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) ``ETHTOOL_PERQUEUE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) ``ETHTOOL_GLINKSETTINGS`` ``ETHTOOL_MSG_LINKINFO_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) ``ETHTOOL_MSG_LINKMODES_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) ``ETHTOOL_SLINKSETTINGS`` ``ETHTOOL_MSG_LINKINFO_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) ``ETHTOOL_MSG_LINKMODES_SET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) ``ETHTOOL_PHY_GTUNABLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) ``ETHTOOL_PHY_STUNABLE`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) ``ETHTOOL_GFECPARAM`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) ``ETHTOOL_SFECPARAM`` n/a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) n/a ''ETHTOOL_MSG_CABLE_TEST_ACT''
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) n/a ''ETHTOOL_MSG_CABLE_TEST_TDR_ACT''
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) n/a ``ETHTOOL_MSG_TUNNEL_INFO_GET``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) =================================== =====================================