162306a36Sopenharmony_ci============================= 262306a36Sopenharmony_ciNetlink interface for ethtool 362306a36Sopenharmony_ci============================= 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciBasic information 762306a36Sopenharmony_ci================= 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciNetlink interface for ethtool uses generic netlink family ``ethtool`` 1062306a36Sopenharmony_ci(userspace application should use macros ``ETHTOOL_GENL_NAME`` and 1162306a36Sopenharmony_ci``ETHTOOL_GENL_VERSION`` defined in ``<linux/ethtool_netlink.h>`` uapi 1262306a36Sopenharmony_ciheader). This family does not use a specific header, all information in 1362306a36Sopenharmony_cirequests and replies is passed using netlink attributes. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciThe ethtool netlink interface uses extended ACK for error and warning 1662306a36Sopenharmony_cireporting, userspace application developers are encouraged to make these 1762306a36Sopenharmony_cimessages available to user in a suitable way. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciRequests can be divided into three categories: "get" (retrieving information), 2062306a36Sopenharmony_ci"set" (setting parameters) and "action" (invoking an action). 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciAll "set" and "action" type requests require admin privileges 2362306a36Sopenharmony_ci(``CAP_NET_ADMIN`` in the namespace). Most "get" type requests are allowed for 2462306a36Sopenharmony_cianyone but there are exceptions (where the response contains sensitive 2562306a36Sopenharmony_ciinformation). In some cases, the request as such is allowed for anyone but 2662306a36Sopenharmony_ciunprivileged users have attributes with sensitive information (e.g. 2762306a36Sopenharmony_ciwake-on-lan password) omitted. 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciConventions 3162306a36Sopenharmony_ci=========== 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciAttributes which represent a boolean value usually use NLA_U8 type so that we 3462306a36Sopenharmony_cican distinguish three states: "on", "off" and "not present" (meaning the 3562306a36Sopenharmony_ciinformation is not available in "get" requests or value is not to be changed 3662306a36Sopenharmony_ciin "set" requests). For these attributes, the "true" value should be passed as 3762306a36Sopenharmony_cinumber 1 but any non-zero value should be understood as "true" by recipient. 3862306a36Sopenharmony_ciIn the tables below, "bool" denotes NLA_U8 attributes interpreted in this way. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciIn the message structure descriptions below, if an attribute name is suffixed 4162306a36Sopenharmony_ciwith "+", parent nest can contain multiple attributes of the same type. This 4262306a36Sopenharmony_ciimplements an array of entries. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciAttributes that need to be filled-in by device drivers and that are dumped to 4562306a36Sopenharmony_ciuser space based on whether they are valid or not should not use zero as a 4662306a36Sopenharmony_civalid value. This avoids the need to explicitly signal the validity of the 4762306a36Sopenharmony_ciattribute in the device driver API. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciRequest header 5162306a36Sopenharmony_ci============== 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciEach request or reply message contains a nested attribute with common header. 5462306a36Sopenharmony_ciStructure of this header is 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci ============================== ====== ============================= 5762306a36Sopenharmony_ci ``ETHTOOL_A_HEADER_DEV_INDEX`` u32 device ifindex 5862306a36Sopenharmony_ci ``ETHTOOL_A_HEADER_DEV_NAME`` string device name 5962306a36Sopenharmony_ci ``ETHTOOL_A_HEADER_FLAGS`` u32 flags common for all requests 6062306a36Sopenharmony_ci ============================== ====== ============================= 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci``ETHTOOL_A_HEADER_DEV_INDEX`` and ``ETHTOOL_A_HEADER_DEV_NAME`` identify the 6362306a36Sopenharmony_cidevice message relates to. One of them is sufficient in requests, if both are 6462306a36Sopenharmony_ciused, they must identify the same device. Some requests, e.g. global string 6562306a36Sopenharmony_cisets, do not require device identification. Most ``GET`` requests also allow 6662306a36Sopenharmony_cidump requests without device identification to query the same information for 6762306a36Sopenharmony_ciall devices providing it (each device in a separate message). 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci``ETHTOOL_A_HEADER_FLAGS`` is a bitmap of request flags common for all request 7062306a36Sopenharmony_citypes. The interpretation of these flags is the same for all request types but 7162306a36Sopenharmony_cithe flags may not apply to requests. Recognized flags are: 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci ================================= =================================== 7462306a36Sopenharmony_ci ``ETHTOOL_FLAG_COMPACT_BITSETS`` use compact format bitsets in reply 7562306a36Sopenharmony_ci ``ETHTOOL_FLAG_OMIT_REPLY`` omit optional reply (_SET and _ACT) 7662306a36Sopenharmony_ci ``ETHTOOL_FLAG_STATS`` include optional device statistics 7762306a36Sopenharmony_ci ================================= =================================== 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciNew request flags should follow the general idea that if the flag is not set, 8062306a36Sopenharmony_cithe behaviour is backward compatible, i.e. requests from old clients not aware 8162306a36Sopenharmony_ciof the flag should be interpreted the way the client expects. A client must 8262306a36Sopenharmony_cinot set flags it does not understand. 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ciBit sets 8662306a36Sopenharmony_ci======== 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ciFor short bitmaps of (reasonably) fixed length, standard ``NLA_BITFIELD32`` 8962306a36Sopenharmony_citype is used. For arbitrary length bitmaps, ethtool netlink uses a nested 9062306a36Sopenharmony_ciattribute with contents of one of two forms: compact (two binary bitmaps 9162306a36Sopenharmony_cirepresenting bit values and mask of affected bits) and bit-by-bit (list of 9262306a36Sopenharmony_cibits identified by either index or name). 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ciVerbose (bit-by-bit) bitsets allow sending symbolic names for bits together 9562306a36Sopenharmony_ciwith their values which saves a round trip (when the bitset is passed in a 9662306a36Sopenharmony_cirequest) or at least a second request (when the bitset is in a reply). This is 9762306a36Sopenharmony_ciuseful for one shot applications like traditional ethtool command. On the 9862306a36Sopenharmony_ciother hand, long running applications like ethtool monitor (displaying 9962306a36Sopenharmony_cinotifications) or network management daemons may prefer fetching the names 10062306a36Sopenharmony_cionly once and using compact form to save message size. Notifications from 10162306a36Sopenharmony_ciethtool netlink interface always use compact form for bitsets. 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ciA bitset can represent either a value/mask pair (``ETHTOOL_A_BITSET_NOMASK`` 10462306a36Sopenharmony_cinot set) or a single bitmap (``ETHTOOL_A_BITSET_NOMASK`` set). In requests 10562306a36Sopenharmony_cimodifying a bitmap, the former changes the bit set in mask to values set in 10662306a36Sopenharmony_civalue and preserves the rest; the latter sets the bits set in the bitmap and 10762306a36Sopenharmony_ciclears the rest. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciCompact form: nested (bitset) attribute contents: 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci ============================ ====== ============================ 11262306a36Sopenharmony_ci ``ETHTOOL_A_BITSET_NOMASK`` flag no mask, only a list 11362306a36Sopenharmony_ci ``ETHTOOL_A_BITSET_SIZE`` u32 number of significant bits 11462306a36Sopenharmony_ci ``ETHTOOL_A_BITSET_VALUE`` binary bitmap of bit values 11562306a36Sopenharmony_ci ``ETHTOOL_A_BITSET_MASK`` binary bitmap of valid bits 11662306a36Sopenharmony_ci ============================ ====== ============================ 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciValue and mask must have length at least ``ETHTOOL_A_BITSET_SIZE`` bits 11962306a36Sopenharmony_cirounded up to a multiple of 32 bits. They consist of 32-bit words in host byte 12062306a36Sopenharmony_ciorder, words ordered from least significant to most significant (i.e. the same 12162306a36Sopenharmony_ciway as bitmaps are passed with ioctl interface). 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ciFor compact form, ``ETHTOOL_A_BITSET_SIZE`` and ``ETHTOOL_A_BITSET_VALUE`` are 12462306a36Sopenharmony_cimandatory. ``ETHTOOL_A_BITSET_MASK`` attribute is mandatory if 12562306a36Sopenharmony_ci``ETHTOOL_A_BITSET_NOMASK`` is not set (bitset represents a value/mask pair); 12662306a36Sopenharmony_ciif ``ETHTOOL_A_BITSET_NOMASK`` is not set, ``ETHTOOL_A_BITSET_MASK`` is not 12762306a36Sopenharmony_ciallowed (bitset represents a single bitmap. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciKernel bit set length may differ from userspace length if older application is 13062306a36Sopenharmony_ciused on newer kernel or vice versa. If userspace bitmap is longer, an error is 13162306a36Sopenharmony_ciissued only if the request actually tries to set values of some bits not 13262306a36Sopenharmony_cirecognized by kernel. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ciBit-by-bit form: nested (bitset) attribute contents: 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci +------------------------------------+--------+-----------------------------+ 13762306a36Sopenharmony_ci | ``ETHTOOL_A_BITSET_NOMASK`` | flag | no mask, only a list | 13862306a36Sopenharmony_ci +------------------------------------+--------+-----------------------------+ 13962306a36Sopenharmony_ci | ``ETHTOOL_A_BITSET_SIZE`` | u32 | number of significant bits | 14062306a36Sopenharmony_ci +------------------------------------+--------+-----------------------------+ 14162306a36Sopenharmony_ci | ``ETHTOOL_A_BITSET_BITS`` | nested | array of bits | 14262306a36Sopenharmony_ci +-+----------------------------------+--------+-----------------------------+ 14362306a36Sopenharmony_ci | | ``ETHTOOL_A_BITSET_BITS_BIT+`` | nested | one bit | 14462306a36Sopenharmony_ci +-+-+--------------------------------+--------+-----------------------------+ 14562306a36Sopenharmony_ci | | | ``ETHTOOL_A_BITSET_BIT_INDEX`` | u32 | bit index (0 for LSB) | 14662306a36Sopenharmony_ci +-+-+--------------------------------+--------+-----------------------------+ 14762306a36Sopenharmony_ci | | | ``ETHTOOL_A_BITSET_BIT_NAME`` | string | bit name | 14862306a36Sopenharmony_ci +-+-+--------------------------------+--------+-----------------------------+ 14962306a36Sopenharmony_ci | | | ``ETHTOOL_A_BITSET_BIT_VALUE`` | flag | present if bit is set | 15062306a36Sopenharmony_ci +-+-+--------------------------------+--------+-----------------------------+ 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ciBit size is optional for bit-by-bit form. ``ETHTOOL_A_BITSET_BITS`` nest can 15362306a36Sopenharmony_cionly contain ``ETHTOOL_A_BITSET_BITS_BIT`` attributes but there can be an 15462306a36Sopenharmony_ciarbitrary number of them. A bit may be identified by its index or by its 15562306a36Sopenharmony_ciname. When used in requests, listed bits are set to 0 or 1 according to 15662306a36Sopenharmony_ci``ETHTOOL_A_BITSET_BIT_VALUE``, the rest is preserved. A request fails if 15762306a36Sopenharmony_ciindex exceeds kernel bit length or if name is not recognized. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ciWhen ``ETHTOOL_A_BITSET_NOMASK`` flag is present, bitset is interpreted as 16062306a36Sopenharmony_cia simple bitmap. ``ETHTOOL_A_BITSET_BIT_VALUE`` attributes are not used in 16162306a36Sopenharmony_cisuch case. Such bitset represents a bitmap with listed bits set and the rest 16262306a36Sopenharmony_cizero. 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ciIn requests, application can use either form. Form used by kernel in reply is 16562306a36Sopenharmony_cidetermined by ``ETHTOOL_FLAG_COMPACT_BITSETS`` flag in flags field of request 16662306a36Sopenharmony_ciheader. Semantics of value and mask depends on the attribute. 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ciList of message types 17062306a36Sopenharmony_ci===================== 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ciAll constants identifying message types use ``ETHTOOL_CMD_`` prefix and suffix 17362306a36Sopenharmony_ciaccording to message purpose: 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci ============== ====================================== 17662306a36Sopenharmony_ci ``_GET`` userspace request to retrieve data 17762306a36Sopenharmony_ci ``_SET`` userspace request to set data 17862306a36Sopenharmony_ci ``_ACT`` userspace request to perform an action 17962306a36Sopenharmony_ci ``_GET_REPLY`` kernel reply to a ``GET`` request 18062306a36Sopenharmony_ci ``_SET_REPLY`` kernel reply to a ``SET`` request 18162306a36Sopenharmony_ci ``_ACT_REPLY`` kernel reply to an ``ACT`` request 18262306a36Sopenharmony_ci ``_NTF`` kernel notification 18362306a36Sopenharmony_ci ============== ====================================== 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ciUserspace to kernel: 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci ===================================== ================================= 18862306a36Sopenharmony_ci ``ETHTOOL_MSG_STRSET_GET`` get string set 18962306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKINFO_GET`` get link settings 19062306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKINFO_SET`` set link settings 19162306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_GET`` get link modes info 19262306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_SET`` set link modes info 19362306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKSTATE_GET`` get link state 19462306a36Sopenharmony_ci ``ETHTOOL_MSG_DEBUG_GET`` get debugging settings 19562306a36Sopenharmony_ci ``ETHTOOL_MSG_DEBUG_SET`` set debugging settings 19662306a36Sopenharmony_ci ``ETHTOOL_MSG_WOL_GET`` get wake-on-lan settings 19762306a36Sopenharmony_ci ``ETHTOOL_MSG_WOL_SET`` set wake-on-lan settings 19862306a36Sopenharmony_ci ``ETHTOOL_MSG_FEATURES_GET`` get device features 19962306a36Sopenharmony_ci ``ETHTOOL_MSG_FEATURES_SET`` set device features 20062306a36Sopenharmony_ci ``ETHTOOL_MSG_PRIVFLAGS_GET`` get private flags 20162306a36Sopenharmony_ci ``ETHTOOL_MSG_PRIVFLAGS_SET`` set private flags 20262306a36Sopenharmony_ci ``ETHTOOL_MSG_RINGS_GET`` get ring sizes 20362306a36Sopenharmony_ci ``ETHTOOL_MSG_RINGS_SET`` set ring sizes 20462306a36Sopenharmony_ci ``ETHTOOL_MSG_CHANNELS_GET`` get channel counts 20562306a36Sopenharmony_ci ``ETHTOOL_MSG_CHANNELS_SET`` set channel counts 20662306a36Sopenharmony_ci ``ETHTOOL_MSG_COALESCE_GET`` get coalescing parameters 20762306a36Sopenharmony_ci ``ETHTOOL_MSG_COALESCE_SET`` set coalescing parameters 20862306a36Sopenharmony_ci ``ETHTOOL_MSG_PAUSE_GET`` get pause parameters 20962306a36Sopenharmony_ci ``ETHTOOL_MSG_PAUSE_SET`` set pause parameters 21062306a36Sopenharmony_ci ``ETHTOOL_MSG_EEE_GET`` get EEE settings 21162306a36Sopenharmony_ci ``ETHTOOL_MSG_EEE_SET`` set EEE settings 21262306a36Sopenharmony_ci ``ETHTOOL_MSG_TSINFO_GET`` get timestamping info 21362306a36Sopenharmony_ci ``ETHTOOL_MSG_CABLE_TEST_ACT`` action start cable test 21462306a36Sopenharmony_ci ``ETHTOOL_MSG_CABLE_TEST_TDR_ACT`` action start raw TDR cable test 21562306a36Sopenharmony_ci ``ETHTOOL_MSG_TUNNEL_INFO_GET`` get tunnel offload info 21662306a36Sopenharmony_ci ``ETHTOOL_MSG_FEC_GET`` get FEC settings 21762306a36Sopenharmony_ci ``ETHTOOL_MSG_FEC_SET`` set FEC settings 21862306a36Sopenharmony_ci ``ETHTOOL_MSG_MODULE_EEPROM_GET`` read SFP module EEPROM 21962306a36Sopenharmony_ci ``ETHTOOL_MSG_STATS_GET`` get standard statistics 22062306a36Sopenharmony_ci ``ETHTOOL_MSG_PHC_VCLOCKS_GET`` get PHC virtual clocks info 22162306a36Sopenharmony_ci ``ETHTOOL_MSG_MODULE_SET`` set transceiver module parameters 22262306a36Sopenharmony_ci ``ETHTOOL_MSG_MODULE_GET`` get transceiver module parameters 22362306a36Sopenharmony_ci ``ETHTOOL_MSG_PSE_SET`` set PSE parameters 22462306a36Sopenharmony_ci ``ETHTOOL_MSG_PSE_GET`` get PSE parameters 22562306a36Sopenharmony_ci ``ETHTOOL_MSG_RSS_GET`` get RSS settings 22662306a36Sopenharmony_ci ``ETHTOOL_MSG_MM_GET`` get MAC merge layer state 22762306a36Sopenharmony_ci ``ETHTOOL_MSG_MM_SET`` set MAC merge layer parameters 22862306a36Sopenharmony_ci ===================================== ================================= 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ciKernel to userspace: 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci ======================================== ================================= 23362306a36Sopenharmony_ci ``ETHTOOL_MSG_STRSET_GET_REPLY`` string set contents 23462306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKINFO_GET_REPLY`` link settings 23562306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKINFO_NTF`` link settings notification 23662306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_GET_REPLY`` link modes info 23762306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_NTF`` link modes notification 23862306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKSTATE_GET_REPLY`` link state info 23962306a36Sopenharmony_ci ``ETHTOOL_MSG_DEBUG_GET_REPLY`` debugging settings 24062306a36Sopenharmony_ci ``ETHTOOL_MSG_DEBUG_NTF`` debugging settings notification 24162306a36Sopenharmony_ci ``ETHTOOL_MSG_WOL_GET_REPLY`` wake-on-lan settings 24262306a36Sopenharmony_ci ``ETHTOOL_MSG_WOL_NTF`` wake-on-lan settings notification 24362306a36Sopenharmony_ci ``ETHTOOL_MSG_FEATURES_GET_REPLY`` device features 24462306a36Sopenharmony_ci ``ETHTOOL_MSG_FEATURES_SET_REPLY`` optional reply to FEATURES_SET 24562306a36Sopenharmony_ci ``ETHTOOL_MSG_FEATURES_NTF`` netdev features notification 24662306a36Sopenharmony_ci ``ETHTOOL_MSG_PRIVFLAGS_GET_REPLY`` private flags 24762306a36Sopenharmony_ci ``ETHTOOL_MSG_PRIVFLAGS_NTF`` private flags 24862306a36Sopenharmony_ci ``ETHTOOL_MSG_RINGS_GET_REPLY`` ring sizes 24962306a36Sopenharmony_ci ``ETHTOOL_MSG_RINGS_NTF`` ring sizes 25062306a36Sopenharmony_ci ``ETHTOOL_MSG_CHANNELS_GET_REPLY`` channel counts 25162306a36Sopenharmony_ci ``ETHTOOL_MSG_CHANNELS_NTF`` channel counts 25262306a36Sopenharmony_ci ``ETHTOOL_MSG_COALESCE_GET_REPLY`` coalescing parameters 25362306a36Sopenharmony_ci ``ETHTOOL_MSG_COALESCE_NTF`` coalescing parameters 25462306a36Sopenharmony_ci ``ETHTOOL_MSG_PAUSE_GET_REPLY`` pause parameters 25562306a36Sopenharmony_ci ``ETHTOOL_MSG_PAUSE_NTF`` pause parameters 25662306a36Sopenharmony_ci ``ETHTOOL_MSG_EEE_GET_REPLY`` EEE settings 25762306a36Sopenharmony_ci ``ETHTOOL_MSG_EEE_NTF`` EEE settings 25862306a36Sopenharmony_ci ``ETHTOOL_MSG_TSINFO_GET_REPLY`` timestamping info 25962306a36Sopenharmony_ci ``ETHTOOL_MSG_CABLE_TEST_NTF`` Cable test results 26062306a36Sopenharmony_ci ``ETHTOOL_MSG_CABLE_TEST_TDR_NTF`` Cable test TDR results 26162306a36Sopenharmony_ci ``ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY`` tunnel offload info 26262306a36Sopenharmony_ci ``ETHTOOL_MSG_FEC_GET_REPLY`` FEC settings 26362306a36Sopenharmony_ci ``ETHTOOL_MSG_FEC_NTF`` FEC settings 26462306a36Sopenharmony_ci ``ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY`` read SFP module EEPROM 26562306a36Sopenharmony_ci ``ETHTOOL_MSG_STATS_GET_REPLY`` standard statistics 26662306a36Sopenharmony_ci ``ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY`` PHC virtual clocks info 26762306a36Sopenharmony_ci ``ETHTOOL_MSG_MODULE_GET_REPLY`` transceiver module parameters 26862306a36Sopenharmony_ci ``ETHTOOL_MSG_PSE_GET_REPLY`` PSE parameters 26962306a36Sopenharmony_ci ``ETHTOOL_MSG_RSS_GET_REPLY`` RSS settings 27062306a36Sopenharmony_ci ``ETHTOOL_MSG_MM_GET_REPLY`` MAC merge layer status 27162306a36Sopenharmony_ci ======================================== ================================= 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci``GET`` requests are sent by userspace applications to retrieve device 27462306a36Sopenharmony_ciinformation. They usually do not contain any message specific attributes. 27562306a36Sopenharmony_ciKernel replies with corresponding "GET_REPLY" message. For most types, ``GET`` 27662306a36Sopenharmony_cirequest with ``NLM_F_DUMP`` and no device identification can be used to query 27762306a36Sopenharmony_cithe information for all devices supporting the request. 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciIf the data can be also modified, corresponding ``SET`` message with the same 28062306a36Sopenharmony_cilayout as corresponding ``GET_REPLY`` is used to request changes. Only 28162306a36Sopenharmony_ciattributes where a change is requested are included in such request (also, not 28262306a36Sopenharmony_ciall attributes may be changed). Replies to most ``SET`` request consist only 28362306a36Sopenharmony_ciof error code and extack; if kernel provides additional data, it is sent in 28462306a36Sopenharmony_cithe form of corresponding ``SET_REPLY`` message which can be suppressed by 28562306a36Sopenharmony_cisetting ``ETHTOOL_FLAG_OMIT_REPLY`` flag in request header. 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ciData modification also triggers sending a ``NTF`` message with a notification. 28862306a36Sopenharmony_ciThese usually bear only a subset of attributes which was affected by the 28962306a36Sopenharmony_cichange. The same notification is issued if the data is modified using other 29062306a36Sopenharmony_cimeans (mostly ioctl ethtool interface). Unlike notifications from ethtool 29162306a36Sopenharmony_cinetlink code which are only sent if something actually changed, notifications 29262306a36Sopenharmony_citriggered by ioctl interface may be sent even if the request did not actually 29362306a36Sopenharmony_cichange any data. 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci``ACT`` messages request kernel (driver) to perform a specific action. If some 29662306a36Sopenharmony_ciinformation is reported by kernel (which can be suppressed by setting 29762306a36Sopenharmony_ci``ETHTOOL_FLAG_OMIT_REPLY`` flag in request header), the reply takes form of 29862306a36Sopenharmony_cian ``ACT_REPLY`` message. Performing an action also triggers a notification 29962306a36Sopenharmony_ci(``NTF`` message). 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ciLater sections describe the format and semantics of these messages. 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ciSTRSET_GET 30562306a36Sopenharmony_ci========== 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ciRequests contents of a string set as provided by ioctl commands 30862306a36Sopenharmony_ci``ETHTOOL_GSSET_INFO`` and ``ETHTOOL_GSTRINGS.`` String sets are not user 30962306a36Sopenharmony_ciwriteable so that the corresponding ``STRSET_SET`` message is only used in 31062306a36Sopenharmony_cikernel replies. There are two types of string sets: global (independent of 31162306a36Sopenharmony_cia device, e.g. device feature names) and device specific (e.g. device private 31262306a36Sopenharmony_ciflags). 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ciRequest contents: 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci +---------------------------------------+--------+------------------------+ 31762306a36Sopenharmony_ci | ``ETHTOOL_A_STRSET_HEADER`` | nested | request header | 31862306a36Sopenharmony_ci +---------------------------------------+--------+------------------------+ 31962306a36Sopenharmony_ci | ``ETHTOOL_A_STRSET_STRINGSETS`` | nested | string set to request | 32062306a36Sopenharmony_ci +-+-------------------------------------+--------+------------------------+ 32162306a36Sopenharmony_ci | | ``ETHTOOL_A_STRINGSETS_STRINGSET+`` | nested | one string set | 32262306a36Sopenharmony_ci +-+-+-----------------------------------+--------+------------------------+ 32362306a36Sopenharmony_ci | | | ``ETHTOOL_A_STRINGSET_ID`` | u32 | set id | 32462306a36Sopenharmony_ci +-+-+-----------------------------------+--------+------------------------+ 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ciKernel response contents: 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci +---------------------------------------+--------+-----------------------+ 32962306a36Sopenharmony_ci | ``ETHTOOL_A_STRSET_HEADER`` | nested | reply header | 33062306a36Sopenharmony_ci +---------------------------------------+--------+-----------------------+ 33162306a36Sopenharmony_ci | ``ETHTOOL_A_STRSET_STRINGSETS`` | nested | array of string sets | 33262306a36Sopenharmony_ci +-+-------------------------------------+--------+-----------------------+ 33362306a36Sopenharmony_ci | | ``ETHTOOL_A_STRINGSETS_STRINGSET+`` | nested | one string set | 33462306a36Sopenharmony_ci +-+-+-----------------------------------+--------+-----------------------+ 33562306a36Sopenharmony_ci | | | ``ETHTOOL_A_STRINGSET_ID`` | u32 | set id | 33662306a36Sopenharmony_ci +-+-+-----------------------------------+--------+-----------------------+ 33762306a36Sopenharmony_ci | | | ``ETHTOOL_A_STRINGSET_COUNT`` | u32 | number of strings | 33862306a36Sopenharmony_ci +-+-+-----------------------------------+--------+-----------------------+ 33962306a36Sopenharmony_ci | | | ``ETHTOOL_A_STRINGSET_STRINGS`` | nested | array of strings | 34062306a36Sopenharmony_ci +-+-+-+---------------------------------+--------+-----------------------+ 34162306a36Sopenharmony_ci | | | | ``ETHTOOL_A_STRINGS_STRING+`` | nested | one string | 34262306a36Sopenharmony_ci +-+-+-+-+-------------------------------+--------+-----------------------+ 34362306a36Sopenharmony_ci | | | | | ``ETHTOOL_A_STRING_INDEX`` | u32 | string index | 34462306a36Sopenharmony_ci +-+-+-+-+-------------------------------+--------+-----------------------+ 34562306a36Sopenharmony_ci | | | | | ``ETHTOOL_A_STRING_VALUE`` | string | string value | 34662306a36Sopenharmony_ci +-+-+-+-+-------------------------------+--------+-----------------------+ 34762306a36Sopenharmony_ci | ``ETHTOOL_A_STRSET_COUNTS_ONLY`` | flag | return only counts | 34862306a36Sopenharmony_ci +---------------------------------------+--------+-----------------------+ 34962306a36Sopenharmony_ci 35062306a36Sopenharmony_ciDevice identification in request header is optional. Depending on its presence 35162306a36Sopenharmony_cia and ``NLM_F_DUMP`` flag, there are three type of ``STRSET_GET`` requests: 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci - no ``NLM_F_DUMP,`` no device: get "global" stringsets 35462306a36Sopenharmony_ci - no ``NLM_F_DUMP``, with device: get string sets related to the device 35562306a36Sopenharmony_ci - ``NLM_F_DUMP``, no device: get device related string sets for all devices 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ciIf there is no ``ETHTOOL_A_STRSET_STRINGSETS`` array, all string sets of 35862306a36Sopenharmony_cirequested type are returned, otherwise only those specified in the request. 35962306a36Sopenharmony_ciFlag ``ETHTOOL_A_STRSET_COUNTS_ONLY`` tells kernel to only return string 36062306a36Sopenharmony_cicounts of the sets, not the actual strings. 36162306a36Sopenharmony_ci 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ciLINKINFO_GET 36462306a36Sopenharmony_ci============ 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ciRequests link settings as provided by ``ETHTOOL_GLINKSETTINGS`` except for 36762306a36Sopenharmony_cilink modes and autonegotiation related information. The request does not use 36862306a36Sopenharmony_ciany attributes. 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ciRequest contents: 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ci ==================================== ====== ========================== 37362306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_HEADER`` nested request header 37462306a36Sopenharmony_ci ==================================== ====== ========================== 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ciKernel response contents: 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ci ==================================== ====== ========================== 37962306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_HEADER`` nested reply header 38062306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_PORT`` u8 physical port 38162306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_PHYADDR`` u8 phy MDIO address 38262306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_TP_MDIX`` u8 MDI(-X) status 38362306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_TP_MDIX_CTRL`` u8 MDI(-X) control 38462306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_TRANSCEIVER`` u8 transceiver 38562306a36Sopenharmony_ci ==================================== ====== ========================== 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ciAttributes and their values have the same meaning as matching members of the 38862306a36Sopenharmony_cicorresponding ioctl structures. 38962306a36Sopenharmony_ci 39062306a36Sopenharmony_ci``LINKINFO_GET`` allows dump requests (kernel returns reply message for all 39162306a36Sopenharmony_cidevices supporting the request). 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ciLINKINFO_SET 39562306a36Sopenharmony_ci============ 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci``LINKINFO_SET`` request allows setting some of the attributes reported by 39862306a36Sopenharmony_ci``LINKINFO_GET``. 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ciRequest contents: 40162306a36Sopenharmony_ci 40262306a36Sopenharmony_ci ==================================== ====== ========================== 40362306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_HEADER`` nested request header 40462306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_PORT`` u8 physical port 40562306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_PHYADDR`` u8 phy MDIO address 40662306a36Sopenharmony_ci ``ETHTOOL_A_LINKINFO_TP_MDIX_CTRL`` u8 MDI(-X) control 40762306a36Sopenharmony_ci ==================================== ====== ========================== 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ciMDI(-X) status and transceiver cannot be set, request with the corresponding 41062306a36Sopenharmony_ciattributes is rejected. 41162306a36Sopenharmony_ci 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ciLINKMODES_GET 41462306a36Sopenharmony_ci============= 41562306a36Sopenharmony_ci 41662306a36Sopenharmony_ciRequests link modes (supported, advertised and peer advertised) and related 41762306a36Sopenharmony_ciinformation (autonegotiation status, link speed and duplex) as provided by 41862306a36Sopenharmony_ci``ETHTOOL_GLINKSETTINGS``. The request does not use any attributes. 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_ciRequest contents: 42162306a36Sopenharmony_ci 42262306a36Sopenharmony_ci ==================================== ====== ========================== 42362306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_HEADER`` nested request header 42462306a36Sopenharmony_ci ==================================== ====== ========================== 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ciKernel response contents: 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ci ========================================== ====== ========================== 42962306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_HEADER`` nested reply header 43062306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_AUTONEG`` u8 autonegotiation status 43162306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_OURS`` bitset advertised link modes 43262306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_PEER`` bitset partner link modes 43362306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_SPEED`` u32 link speed (Mb/s) 43462306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_DUPLEX`` u8 duplex mode 43562306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG`` u8 Master/slave port mode 43662306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE`` u8 Master/slave port state 43762306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_RATE_MATCHING`` u8 PHY rate matching 43862306a36Sopenharmony_ci ========================================== ====== ========================== 43962306a36Sopenharmony_ci 44062306a36Sopenharmony_ciFor ``ETHTOOL_A_LINKMODES_OURS``, value represents advertised modes and mask 44162306a36Sopenharmony_cirepresents supported modes. ``ETHTOOL_A_LINKMODES_PEER`` in the reply is a bit 44262306a36Sopenharmony_cilist. 44362306a36Sopenharmony_ci 44462306a36Sopenharmony_ci``LINKMODES_GET`` allows dump requests (kernel returns reply messages for all 44562306a36Sopenharmony_cidevices supporting the request). 44662306a36Sopenharmony_ci 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ciLINKMODES_SET 44962306a36Sopenharmony_ci============= 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ciRequest contents: 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci ========================================== ====== ========================== 45462306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_HEADER`` nested request header 45562306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_AUTONEG`` u8 autonegotiation status 45662306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_OURS`` bitset advertised link modes 45762306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_PEER`` bitset partner link modes 45862306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_SPEED`` u32 link speed (Mb/s) 45962306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_DUPLEX`` u8 duplex mode 46062306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG`` u8 Master/slave port mode 46162306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_RATE_MATCHING`` u8 PHY rate matching 46262306a36Sopenharmony_ci ``ETHTOOL_A_LINKMODES_LANES`` u32 lanes 46362306a36Sopenharmony_ci ========================================== ====== ========================== 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_ci``ETHTOOL_A_LINKMODES_OURS`` bit set allows setting advertised link modes. If 46662306a36Sopenharmony_ciautonegotiation is on (either set now or kept from before), advertised modes 46762306a36Sopenharmony_ciare not changed (no ``ETHTOOL_A_LINKMODES_OURS`` attribute) and at least one 46862306a36Sopenharmony_ciof speed, duplex and lanes is specified, kernel adjusts advertised modes to all 46962306a36Sopenharmony_cisupported modes matching speed, duplex, lanes or all (whatever is specified). 47062306a36Sopenharmony_ciThis autoselection is done on ethtool side with ioctl interface, netlink 47162306a36Sopenharmony_ciinterface is supposed to allow requesting changes without knowing what exactly 47262306a36Sopenharmony_cikernel supports. 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ciLINKSTATE_GET 47662306a36Sopenharmony_ci============= 47762306a36Sopenharmony_ci 47862306a36Sopenharmony_ciRequests link state information. Link up/down flag (as provided by 47962306a36Sopenharmony_ci``ETHTOOL_GLINK`` ioctl command) is provided. Optionally, extended state might 48062306a36Sopenharmony_cibe provided as well. In general, extended state describes reasons for why a port 48162306a36Sopenharmony_ciis down, or why it operates in some non-obvious mode. This request does not have 48262306a36Sopenharmony_ciany attributes. 48362306a36Sopenharmony_ci 48462306a36Sopenharmony_ciRequest contents: 48562306a36Sopenharmony_ci 48662306a36Sopenharmony_ci ==================================== ====== ========================== 48762306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_HEADER`` nested request header 48862306a36Sopenharmony_ci ==================================== ====== ========================== 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ciKernel response contents: 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ci ==================================== ====== ============================ 49362306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_HEADER`` nested reply header 49462306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_LINK`` bool link state (up/down) 49562306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_SQI`` u32 Current Signal Quality Index 49662306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_SQI_MAX`` u32 Max support SQI value 49762306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_EXT_STATE`` u8 link extended state 49862306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE`` u8 link extended substate 49962306a36Sopenharmony_ci ``ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT`` u32 count of link down events 50062306a36Sopenharmony_ci ==================================== ====== ============================ 50162306a36Sopenharmony_ci 50262306a36Sopenharmony_ciFor most NIC drivers, the value of ``ETHTOOL_A_LINKSTATE_LINK`` returns 50362306a36Sopenharmony_cicarrier flag provided by ``netif_carrier_ok()`` but there are drivers which 50462306a36Sopenharmony_cidefine their own handler. 50562306a36Sopenharmony_ci 50662306a36Sopenharmony_ci``ETHTOOL_A_LINKSTATE_EXT_STATE`` and ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE`` are 50762306a36Sopenharmony_cioptional values. ethtool core can provide either both 50862306a36Sopenharmony_ci``ETHTOOL_A_LINKSTATE_EXT_STATE`` and ``ETHTOOL_A_LINKSTATE_EXT_SUBSTATE``, 50962306a36Sopenharmony_cior only ``ETHTOOL_A_LINKSTATE_EXT_STATE``, or none of them. 51062306a36Sopenharmony_ci 51162306a36Sopenharmony_ci``LINKSTATE_GET`` allows dump requests (kernel returns reply messages for all 51262306a36Sopenharmony_cidevices supporting the request). 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_ciLink extended states: 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ci ================================================ ============================================ 51862306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_AUTONEG`` States relating to the autonegotiation or 51962306a36Sopenharmony_ci issues therein 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE`` Failure during link training 52262306a36Sopenharmony_ci 52362306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH`` Logical mismatch in physical coding sublayer 52462306a36Sopenharmony_ci or forward error correction sublayer 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY`` Signal integrity issues 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_NO_CABLE`` No cable connected 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE`` Failure is related to cable, 53162306a36Sopenharmony_ci e.g., unsupported cable 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE`` Failure is related to EEPROM, e.g., failure 53462306a36Sopenharmony_ci during reading or parsing the data 53562306a36Sopenharmony_ci 53662306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE`` Failure during calibration algorithm 53762306a36Sopenharmony_ci 53862306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED`` The hardware is not able to provide the 53962306a36Sopenharmony_ci power required from cable or module 54062306a36Sopenharmony_ci 54162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_OVERHEAT`` The module is overheated 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_STATE_MODULE`` Transceiver module issue 54462306a36Sopenharmony_ci ================================================ ============================================ 54562306a36Sopenharmony_ci 54662306a36Sopenharmony_ciLink extended substates: 54762306a36Sopenharmony_ci 54862306a36Sopenharmony_ci Autoneg substates: 54962306a36Sopenharmony_ci 55062306a36Sopenharmony_ci =============================================================== ================================ 55162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED`` Peer side is down 55262306a36Sopenharmony_ci 55362306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED`` Ack not received from peer side 55462306a36Sopenharmony_ci 55562306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED`` Next page exchange failed 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE`` Peer side is down during force 55862306a36Sopenharmony_ci mode or there is no agreement of 55962306a36Sopenharmony_ci speed 56062306a36Sopenharmony_ci 56162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE`` Forward error correction modes 56262306a36Sopenharmony_ci in both sides are mismatched 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD`` No Highest Common Denominator 56562306a36Sopenharmony_ci =============================================================== ================================ 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci Link training substates: 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ci =========================================================================== ==================== 57062306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED`` Frames were not 57162306a36Sopenharmony_ci recognized, the 57262306a36Sopenharmony_ci lock failed 57362306a36Sopenharmony_ci 57462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT`` The lock did not 57562306a36Sopenharmony_ci occur before 57662306a36Sopenharmony_ci timeout 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY`` Peer side did not 57962306a36Sopenharmony_ci send ready signal 58062306a36Sopenharmony_ci after training 58162306a36Sopenharmony_ci process 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT`` Remote side is not 58462306a36Sopenharmony_ci ready yet 58562306a36Sopenharmony_ci =========================================================================== ==================== 58662306a36Sopenharmony_ci 58762306a36Sopenharmony_ci Link logical mismatch substates: 58862306a36Sopenharmony_ci 58962306a36Sopenharmony_ci ================================================================ =============================== 59062306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK`` Physical coding sublayer was 59162306a36Sopenharmony_ci not locked in first phase - 59262306a36Sopenharmony_ci block lock 59362306a36Sopenharmony_ci 59462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK`` Physical coding sublayer was 59562306a36Sopenharmony_ci not locked in second phase - 59662306a36Sopenharmony_ci alignment markers lock 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS`` Physical coding sublayer did 59962306a36Sopenharmony_ci not get align status 60062306a36Sopenharmony_ci 60162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED`` FC forward error correction is 60262306a36Sopenharmony_ci not locked 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED`` RS forward error correction is 60562306a36Sopenharmony_ci not locked 60662306a36Sopenharmony_ci ================================================================ =============================== 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ci Bad signal integrity substates: 60962306a36Sopenharmony_ci 61062306a36Sopenharmony_ci ================================================================= ============================= 61162306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS`` Large number of physical 61262306a36Sopenharmony_ci errors 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE`` The system attempted to 61562306a36Sopenharmony_ci operate the cable at a rate 61662306a36Sopenharmony_ci that is not formally 61762306a36Sopenharmony_ci supported, which led to 61862306a36Sopenharmony_ci signal integrity issues 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST`` The external clock signal for 62162306a36Sopenharmony_ci SerDes is too weak or 62262306a36Sopenharmony_ci unavailable. 62362306a36Sopenharmony_ci 62462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS`` The received signal for 62562306a36Sopenharmony_ci SerDes is too weak because 62662306a36Sopenharmony_ci analog loss of signal. 62762306a36Sopenharmony_ci ================================================================= ============================= 62862306a36Sopenharmony_ci 62962306a36Sopenharmony_ci Cable issue substates: 63062306a36Sopenharmony_ci 63162306a36Sopenharmony_ci =================================================== ============================================ 63262306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE`` Unsupported cable 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE`` Cable test failure 63562306a36Sopenharmony_ci =================================================== ============================================ 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_ci Transceiver module issue substates: 63862306a36Sopenharmony_ci 63962306a36Sopenharmony_ci =================================================== ============================================ 64062306a36Sopenharmony_ci ``ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY`` The CMIS Module State Machine did not reach 64162306a36Sopenharmony_ci the ModuleReady state. For example, if the 64262306a36Sopenharmony_ci module is stuck at ModuleFault state 64362306a36Sopenharmony_ci =================================================== ============================================ 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_ciDEBUG_GET 64662306a36Sopenharmony_ci========= 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_ciRequests debugging settings of a device. At the moment, only message mask is 64962306a36Sopenharmony_ciprovided. 65062306a36Sopenharmony_ci 65162306a36Sopenharmony_ciRequest contents: 65262306a36Sopenharmony_ci 65362306a36Sopenharmony_ci ==================================== ====== ========================== 65462306a36Sopenharmony_ci ``ETHTOOL_A_DEBUG_HEADER`` nested request header 65562306a36Sopenharmony_ci ==================================== ====== ========================== 65662306a36Sopenharmony_ci 65762306a36Sopenharmony_ciKernel response contents: 65862306a36Sopenharmony_ci 65962306a36Sopenharmony_ci ==================================== ====== ========================== 66062306a36Sopenharmony_ci ``ETHTOOL_A_DEBUG_HEADER`` nested reply header 66162306a36Sopenharmony_ci ``ETHTOOL_A_DEBUG_MSGMASK`` bitset message mask 66262306a36Sopenharmony_ci ==================================== ====== ========================== 66362306a36Sopenharmony_ci 66462306a36Sopenharmony_ciThe message mask (``ETHTOOL_A_DEBUG_MSGMASK``) is equal to message level as 66562306a36Sopenharmony_ciprovided by ``ETHTOOL_GMSGLVL`` and set by ``ETHTOOL_SMSGLVL`` in ioctl 66662306a36Sopenharmony_ciinterface. While it is called message level there for historical reasons, most 66762306a36Sopenharmony_cidrivers and almost all newer drivers use it as a mask of enabled message 66862306a36Sopenharmony_ciclasses (represented by ``NETIF_MSG_*`` constants); therefore netlink 66962306a36Sopenharmony_ciinterface follows its actual use in practice. 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_ci``DEBUG_GET`` allows dump requests (kernel returns reply messages for all 67262306a36Sopenharmony_cidevices supporting the request). 67362306a36Sopenharmony_ci 67462306a36Sopenharmony_ci 67562306a36Sopenharmony_ciDEBUG_SET 67662306a36Sopenharmony_ci========= 67762306a36Sopenharmony_ci 67862306a36Sopenharmony_ciSet or update debugging settings of a device. At the moment, only message mask 67962306a36Sopenharmony_ciis supported. 68062306a36Sopenharmony_ci 68162306a36Sopenharmony_ciRequest contents: 68262306a36Sopenharmony_ci 68362306a36Sopenharmony_ci ==================================== ====== ========================== 68462306a36Sopenharmony_ci ``ETHTOOL_A_DEBUG_HEADER`` nested request header 68562306a36Sopenharmony_ci ``ETHTOOL_A_DEBUG_MSGMASK`` bitset message mask 68662306a36Sopenharmony_ci ==================================== ====== ========================== 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ci``ETHTOOL_A_DEBUG_MSGMASK`` bit set allows setting or modifying mask of 68962306a36Sopenharmony_cienabled debugging message types for the device. 69062306a36Sopenharmony_ci 69162306a36Sopenharmony_ci 69262306a36Sopenharmony_ciWOL_GET 69362306a36Sopenharmony_ci======= 69462306a36Sopenharmony_ci 69562306a36Sopenharmony_ciQuery device wake-on-lan settings. Unlike most "GET" type requests, 69662306a36Sopenharmony_ci``ETHTOOL_MSG_WOL_GET`` requires (netns) ``CAP_NET_ADMIN`` privileges as it 69762306a36Sopenharmony_ci(potentially) provides SecureOn(tm) password which is confidential. 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ciRequest contents: 70062306a36Sopenharmony_ci 70162306a36Sopenharmony_ci ==================================== ====== ========================== 70262306a36Sopenharmony_ci ``ETHTOOL_A_WOL_HEADER`` nested request header 70362306a36Sopenharmony_ci ==================================== ====== ========================== 70462306a36Sopenharmony_ci 70562306a36Sopenharmony_ciKernel response contents: 70662306a36Sopenharmony_ci 70762306a36Sopenharmony_ci ==================================== ====== ========================== 70862306a36Sopenharmony_ci ``ETHTOOL_A_WOL_HEADER`` nested reply header 70962306a36Sopenharmony_ci ``ETHTOOL_A_WOL_MODES`` bitset mask of enabled WoL modes 71062306a36Sopenharmony_ci ``ETHTOOL_A_WOL_SOPASS`` binary SecureOn(tm) password 71162306a36Sopenharmony_ci ==================================== ====== ========================== 71262306a36Sopenharmony_ci 71362306a36Sopenharmony_ciIn reply, ``ETHTOOL_A_WOL_MODES`` mask consists of modes supported by the 71462306a36Sopenharmony_cidevice, value of modes which are enabled. ``ETHTOOL_A_WOL_SOPASS`` is only 71562306a36Sopenharmony_ciincluded in reply if ``WAKE_MAGICSECURE`` mode is supported. 71662306a36Sopenharmony_ci 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ciWOL_SET 71962306a36Sopenharmony_ci======= 72062306a36Sopenharmony_ci 72162306a36Sopenharmony_ciSet or update wake-on-lan settings. 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_ciRequest contents: 72462306a36Sopenharmony_ci 72562306a36Sopenharmony_ci ==================================== ====== ========================== 72662306a36Sopenharmony_ci ``ETHTOOL_A_WOL_HEADER`` nested request header 72762306a36Sopenharmony_ci ``ETHTOOL_A_WOL_MODES`` bitset enabled WoL modes 72862306a36Sopenharmony_ci ``ETHTOOL_A_WOL_SOPASS`` binary SecureOn(tm) password 72962306a36Sopenharmony_ci ==================================== ====== ========================== 73062306a36Sopenharmony_ci 73162306a36Sopenharmony_ci``ETHTOOL_A_WOL_SOPASS`` is only allowed for devices supporting 73262306a36Sopenharmony_ci``WAKE_MAGICSECURE`` mode. 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_ci 73562306a36Sopenharmony_ciFEATURES_GET 73662306a36Sopenharmony_ci============ 73762306a36Sopenharmony_ci 73862306a36Sopenharmony_ciGets netdev features like ``ETHTOOL_GFEATURES`` ioctl request. 73962306a36Sopenharmony_ci 74062306a36Sopenharmony_ciRequest contents: 74162306a36Sopenharmony_ci 74262306a36Sopenharmony_ci ==================================== ====== ========================== 74362306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_HEADER`` nested request header 74462306a36Sopenharmony_ci ==================================== ====== ========================== 74562306a36Sopenharmony_ci 74662306a36Sopenharmony_ciKernel response contents: 74762306a36Sopenharmony_ci 74862306a36Sopenharmony_ci ==================================== ====== ========================== 74962306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_HEADER`` nested reply header 75062306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_HW`` bitset dev->hw_features 75162306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_WANTED`` bitset dev->wanted_features 75262306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_ACTIVE`` bitset dev->features 75362306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_NOCHANGE`` bitset NETIF_F_NEVER_CHANGE 75462306a36Sopenharmony_ci ==================================== ====== ========================== 75562306a36Sopenharmony_ci 75662306a36Sopenharmony_ciBitmaps in kernel response have the same meaning as bitmaps used in ioctl 75762306a36Sopenharmony_ciinterference but attribute names are different (they are based on 75862306a36Sopenharmony_cicorresponding members of struct net_device). Legacy "flags" are not provided, 75962306a36Sopenharmony_ciif userspace needs them (most likely only ethtool for backward compatibility), 76062306a36Sopenharmony_ciit can calculate their values from related feature bits itself. 76162306a36Sopenharmony_ciETHA_FEATURES_HW uses mask consisting of all features recognized by kernel (to 76262306a36Sopenharmony_ciprovide all names when using verbose bitmap format), the other three use no 76362306a36Sopenharmony_cimask (simple bit lists). 76462306a36Sopenharmony_ci 76562306a36Sopenharmony_ci 76662306a36Sopenharmony_ciFEATURES_SET 76762306a36Sopenharmony_ci============ 76862306a36Sopenharmony_ci 76962306a36Sopenharmony_ciRequest to set netdev features like ``ETHTOOL_SFEATURES`` ioctl request. 77062306a36Sopenharmony_ci 77162306a36Sopenharmony_ciRequest contents: 77262306a36Sopenharmony_ci 77362306a36Sopenharmony_ci ==================================== ====== ========================== 77462306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_HEADER`` nested request header 77562306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_WANTED`` bitset requested features 77662306a36Sopenharmony_ci ==================================== ====== ========================== 77762306a36Sopenharmony_ci 77862306a36Sopenharmony_ciKernel response contents: 77962306a36Sopenharmony_ci 78062306a36Sopenharmony_ci ==================================== ====== ========================== 78162306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_HEADER`` nested reply header 78262306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_WANTED`` bitset diff wanted vs. result 78362306a36Sopenharmony_ci ``ETHTOOL_A_FEATURES_ACTIVE`` bitset diff old vs. new active 78462306a36Sopenharmony_ci ==================================== ====== ========================== 78562306a36Sopenharmony_ci 78662306a36Sopenharmony_ciRequest contains only one bitset which can be either value/mask pair (request 78762306a36Sopenharmony_cito change specific feature bits and leave the rest) or only a value (request 78862306a36Sopenharmony_cito set all features to specified set). 78962306a36Sopenharmony_ci 79062306a36Sopenharmony_ciAs request is subject to netdev_change_features() sanity checks, optional 79162306a36Sopenharmony_cikernel reply (can be suppressed by ``ETHTOOL_FLAG_OMIT_REPLY`` flag in request 79262306a36Sopenharmony_ciheader) informs client about the actual result. ``ETHTOOL_A_FEATURES_WANTED`` 79362306a36Sopenharmony_cireports the difference between client request and actual result: mask consists 79462306a36Sopenharmony_ciof bits which differ between requested features and result (dev->features 79562306a36Sopenharmony_ciafter the operation), value consists of values of these bits in the request 79662306a36Sopenharmony_ci(i.e. negated values from resulting features). ``ETHTOOL_A_FEATURES_ACTIVE`` 79762306a36Sopenharmony_cireports the difference between old and new dev->features: mask consists of 79862306a36Sopenharmony_cibits which have changed, values are their values in new dev->features (after 79962306a36Sopenharmony_cithe operation). 80062306a36Sopenharmony_ci 80162306a36Sopenharmony_ci``ETHTOOL_MSG_FEATURES_NTF`` notification is sent not only if device features 80262306a36Sopenharmony_ciare modified using ``ETHTOOL_MSG_FEATURES_SET`` request or on of ethtool ioctl 80362306a36Sopenharmony_cirequest but also each time features are modified with netdev_update_features() 80462306a36Sopenharmony_cior netdev_change_features(). 80562306a36Sopenharmony_ci 80662306a36Sopenharmony_ci 80762306a36Sopenharmony_ciPRIVFLAGS_GET 80862306a36Sopenharmony_ci============= 80962306a36Sopenharmony_ci 81062306a36Sopenharmony_ciGets private flags like ``ETHTOOL_GPFLAGS`` ioctl request. 81162306a36Sopenharmony_ci 81262306a36Sopenharmony_ciRequest contents: 81362306a36Sopenharmony_ci 81462306a36Sopenharmony_ci ==================================== ====== ========================== 81562306a36Sopenharmony_ci ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested request header 81662306a36Sopenharmony_ci ==================================== ====== ========================== 81762306a36Sopenharmony_ci 81862306a36Sopenharmony_ciKernel response contents: 81962306a36Sopenharmony_ci 82062306a36Sopenharmony_ci ==================================== ====== ========================== 82162306a36Sopenharmony_ci ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested reply header 82262306a36Sopenharmony_ci ``ETHTOOL_A_PRIVFLAGS_FLAGS`` bitset private flags 82362306a36Sopenharmony_ci ==================================== ====== ========================== 82462306a36Sopenharmony_ci 82562306a36Sopenharmony_ci``ETHTOOL_A_PRIVFLAGS_FLAGS`` is a bitset with values of device private flags. 82662306a36Sopenharmony_ciThese flags are defined by driver, their number and names (and also meaning) 82762306a36Sopenharmony_ciare device dependent. For compact bitset format, names can be retrieved as 82862306a36Sopenharmony_ci``ETH_SS_PRIV_FLAGS`` string set. If verbose bitset format is requested, 82962306a36Sopenharmony_ciresponse uses all private flags supported by the device as mask so that client 83062306a36Sopenharmony_cigets the full information without having to fetch the string set with names. 83162306a36Sopenharmony_ci 83262306a36Sopenharmony_ci 83362306a36Sopenharmony_ciPRIVFLAGS_SET 83462306a36Sopenharmony_ci============= 83562306a36Sopenharmony_ci 83662306a36Sopenharmony_ciSets or modifies values of device private flags like ``ETHTOOL_SPFLAGS`` 83762306a36Sopenharmony_ciioctl request. 83862306a36Sopenharmony_ci 83962306a36Sopenharmony_ciRequest contents: 84062306a36Sopenharmony_ci 84162306a36Sopenharmony_ci ==================================== ====== ========================== 84262306a36Sopenharmony_ci ``ETHTOOL_A_PRIVFLAGS_HEADER`` nested request header 84362306a36Sopenharmony_ci ``ETHTOOL_A_PRIVFLAGS_FLAGS`` bitset private flags 84462306a36Sopenharmony_ci ==================================== ====== ========================== 84562306a36Sopenharmony_ci 84662306a36Sopenharmony_ci``ETHTOOL_A_PRIVFLAGS_FLAGS`` can either set the whole set of private flags or 84762306a36Sopenharmony_cimodify only values of some of them. 84862306a36Sopenharmony_ci 84962306a36Sopenharmony_ci 85062306a36Sopenharmony_ciRINGS_GET 85162306a36Sopenharmony_ci========= 85262306a36Sopenharmony_ci 85362306a36Sopenharmony_ciGets ring sizes like ``ETHTOOL_GRINGPARAM`` ioctl request. 85462306a36Sopenharmony_ci 85562306a36Sopenharmony_ciRequest contents: 85662306a36Sopenharmony_ci 85762306a36Sopenharmony_ci ==================================== ====== ========================== 85862306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_HEADER`` nested request header 85962306a36Sopenharmony_ci ==================================== ====== ========================== 86062306a36Sopenharmony_ci 86162306a36Sopenharmony_ciKernel response contents: 86262306a36Sopenharmony_ci 86362306a36Sopenharmony_ci ======================================= ====== =========================== 86462306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_HEADER`` nested reply header 86562306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_MAX`` u32 max size of RX ring 86662306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_MINI_MAX`` u32 max size of RX mini ring 86762306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_JUMBO_MAX`` u32 max size of RX jumbo ring 86862306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_MAX`` u32 max size of TX ring 86962306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX`` u32 size of RX ring 87062306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_MINI`` u32 size of RX mini ring 87162306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_JUMBO`` u32 size of RX jumbo ring 87262306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX`` u32 size of TX ring 87362306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_BUF_LEN`` u32 size of buffers on the ring 87462306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TCP_DATA_SPLIT`` u8 TCP header / data split 87562306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_CQE_SIZE`` u32 Size of TX/RX CQE 87662306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_PUSH`` u8 flag of TX Push mode 87762306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_PUSH`` u8 flag of RX Push mode 87862306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN`` u32 size of TX push buffer 87962306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX`` u32 max size of TX push buffer 88062306a36Sopenharmony_ci ======================================= ====== =========================== 88162306a36Sopenharmony_ci 88262306a36Sopenharmony_ci``ETHTOOL_A_RINGS_TCP_DATA_SPLIT`` indicates whether the device is usable with 88362306a36Sopenharmony_cipage-flipping TCP zero-copy receive (``getsockopt(TCP_ZEROCOPY_RECEIVE)``). 88462306a36Sopenharmony_ciIf enabled the device is configured to place frame headers and data into 88562306a36Sopenharmony_ciseparate buffers. The device configuration must make it possible to receive 88662306a36Sopenharmony_cifull memory pages of data, for example because MTU is high enough or through 88762306a36Sopenharmony_ciHW-GRO. 88862306a36Sopenharmony_ci 88962306a36Sopenharmony_ci``ETHTOOL_A_RINGS_[RX|TX]_PUSH`` flag is used to enable descriptor fast 89062306a36Sopenharmony_cipath to send or receive packets. In ordinary path, driver fills descriptors in DRAM and 89162306a36Sopenharmony_cinotifies NIC hardware. In fast path, driver pushes descriptors to the device 89262306a36Sopenharmony_cithrough MMIO writes, thus reducing the latency. However, enabling this feature 89362306a36Sopenharmony_cimay increase the CPU cost. Drivers may enforce additional per-packet 89462306a36Sopenharmony_cieligibility checks (e.g. on packet size). 89562306a36Sopenharmony_ci 89662306a36Sopenharmony_ci``ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN`` specifies the maximum number of bytes of a 89762306a36Sopenharmony_citransmitted packet a driver can push directly to the underlying device 89862306a36Sopenharmony_ci('push' mode). Pushing some of the payload bytes to the device has the 89962306a36Sopenharmony_ciadvantages of reducing latency for small packets by avoiding DMA mapping (same 90062306a36Sopenharmony_cias ``ETHTOOL_A_RINGS_TX_PUSH`` parameter) as well as allowing the underlying 90162306a36Sopenharmony_cidevice to process packet headers ahead of fetching its payload. 90262306a36Sopenharmony_ciThis can help the device to make fast actions based on the packet's headers. 90362306a36Sopenharmony_ciThis is similar to the "tx-copybreak" parameter, which copies the packet to a 90462306a36Sopenharmony_cipreallocated DMA memory area instead of mapping new memory. However, 90562306a36Sopenharmony_citx-push-buff parameter copies the packet directly to the device to allow the 90662306a36Sopenharmony_cidevice to take faster actions on the packet. 90762306a36Sopenharmony_ci 90862306a36Sopenharmony_ciRINGS_SET 90962306a36Sopenharmony_ci========= 91062306a36Sopenharmony_ci 91162306a36Sopenharmony_ciSets ring sizes like ``ETHTOOL_SRINGPARAM`` ioctl request. 91262306a36Sopenharmony_ci 91362306a36Sopenharmony_ciRequest contents: 91462306a36Sopenharmony_ci 91562306a36Sopenharmony_ci ==================================== ====== =========================== 91662306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_HEADER`` nested reply header 91762306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX`` u32 size of RX ring 91862306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_MINI`` u32 size of RX mini ring 91962306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_JUMBO`` u32 size of RX jumbo ring 92062306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX`` u32 size of TX ring 92162306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_BUF_LEN`` u32 size of buffers on the ring 92262306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_CQE_SIZE`` u32 Size of TX/RX CQE 92362306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_PUSH`` u8 flag of TX Push mode 92462306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_RX_PUSH`` u8 flag of RX Push mode 92562306a36Sopenharmony_ci ``ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN`` u32 size of TX push buffer 92662306a36Sopenharmony_ci ==================================== ====== =========================== 92762306a36Sopenharmony_ci 92862306a36Sopenharmony_ciKernel checks that requested ring sizes do not exceed limits reported by 92962306a36Sopenharmony_cidriver. Driver may impose additional constraints and may not suspport all 93062306a36Sopenharmony_ciattributes. 93162306a36Sopenharmony_ci 93262306a36Sopenharmony_ci 93362306a36Sopenharmony_ci``ETHTOOL_A_RINGS_CQE_SIZE`` specifies the completion queue event size. 93462306a36Sopenharmony_ciCompletion queue events(CQE) are the events posted by NIC to indicate the 93562306a36Sopenharmony_cicompletion status of a packet when the packet is sent(like send success or 93662306a36Sopenharmony_cierror) or received(like pointers to packet fragments). The CQE size parameter 93762306a36Sopenharmony_cienables to modify the CQE size other than default size if NIC supports it. 93862306a36Sopenharmony_ciA bigger CQE can have more receive buffer pointers inturn NIC can transfer 93962306a36Sopenharmony_cia bigger frame from wire. Based on the NIC hardware, the overall completion 94062306a36Sopenharmony_ciqueue size can be adjusted in the driver if CQE size is modified. 94162306a36Sopenharmony_ci 94262306a36Sopenharmony_ciCHANNELS_GET 94362306a36Sopenharmony_ci============ 94462306a36Sopenharmony_ci 94562306a36Sopenharmony_ciGets channel counts like ``ETHTOOL_GCHANNELS`` ioctl request. 94662306a36Sopenharmony_ci 94762306a36Sopenharmony_ciRequest contents: 94862306a36Sopenharmony_ci 94962306a36Sopenharmony_ci ==================================== ====== ========================== 95062306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_HEADER`` nested request header 95162306a36Sopenharmony_ci ==================================== ====== ========================== 95262306a36Sopenharmony_ci 95362306a36Sopenharmony_ciKernel response contents: 95462306a36Sopenharmony_ci 95562306a36Sopenharmony_ci ===================================== ====== ========================== 95662306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_HEADER`` nested reply header 95762306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_RX_MAX`` u32 max receive channels 95862306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_TX_MAX`` u32 max transmit channels 95962306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_OTHER_MAX`` u32 max other channels 96062306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_COMBINED_MAX`` u32 max combined channels 96162306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_RX_COUNT`` u32 receive channel count 96262306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_TX_COUNT`` u32 transmit channel count 96362306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_OTHER_COUNT`` u32 other channel count 96462306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_COMBINED_COUNT`` u32 combined channel count 96562306a36Sopenharmony_ci ===================================== ====== ========================== 96662306a36Sopenharmony_ci 96762306a36Sopenharmony_ci 96862306a36Sopenharmony_ciCHANNELS_SET 96962306a36Sopenharmony_ci============ 97062306a36Sopenharmony_ci 97162306a36Sopenharmony_ciSets channel counts like ``ETHTOOL_SCHANNELS`` ioctl request. 97262306a36Sopenharmony_ci 97362306a36Sopenharmony_ciRequest contents: 97462306a36Sopenharmony_ci 97562306a36Sopenharmony_ci ===================================== ====== ========================== 97662306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_HEADER`` nested request header 97762306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_RX_COUNT`` u32 receive channel count 97862306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_TX_COUNT`` u32 transmit channel count 97962306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_OTHER_COUNT`` u32 other channel count 98062306a36Sopenharmony_ci ``ETHTOOL_A_CHANNELS_COMBINED_COUNT`` u32 combined channel count 98162306a36Sopenharmony_ci ===================================== ====== ========================== 98262306a36Sopenharmony_ci 98362306a36Sopenharmony_ciKernel checks that requested channel counts do not exceed limits reported by 98462306a36Sopenharmony_cidriver. Driver may impose additional constraints and may not suspport all 98562306a36Sopenharmony_ciattributes. 98662306a36Sopenharmony_ci 98762306a36Sopenharmony_ci 98862306a36Sopenharmony_ciCOALESCE_GET 98962306a36Sopenharmony_ci============ 99062306a36Sopenharmony_ci 99162306a36Sopenharmony_ciGets coalescing parameters like ``ETHTOOL_GCOALESCE`` ioctl request. 99262306a36Sopenharmony_ci 99362306a36Sopenharmony_ciRequest contents: 99462306a36Sopenharmony_ci 99562306a36Sopenharmony_ci ==================================== ====== ========================== 99662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_HEADER`` nested request header 99762306a36Sopenharmony_ci ==================================== ====== ========================== 99862306a36Sopenharmony_ci 99962306a36Sopenharmony_ciKernel response contents: 100062306a36Sopenharmony_ci 100162306a36Sopenharmony_ci =========================================== ====== ======================= 100262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_HEADER`` nested reply header 100362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS`` u32 delay (us), normal Rx 100462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES`` u32 max packets, normal Rx 100562306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_IRQ`` u32 delay (us), Rx in IRQ 100662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ`` u32 max packets, Rx in IRQ 100762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS`` u32 delay (us), normal Tx 100862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES`` u32 max packets, normal Tx 100962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_IRQ`` u32 delay (us), Tx in IRQ 101062306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ`` u32 IRQ packets, Tx in IRQ 101162306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_STATS_BLOCK_USECS`` u32 delay of stats update 101262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX`` bool adaptive Rx coalesce 101362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX`` bool adaptive Tx coalesce 101462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_PKT_RATE_LOW`` u32 threshold for low rate 101562306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_LOW`` u32 delay (us), low Rx 101662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW`` u32 max packets, low Rx 101762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_LOW`` u32 delay (us), low Tx 101862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW`` u32 max packets, low Tx 101962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_PKT_RATE_HIGH`` u32 threshold for high rate 102062306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_HIGH`` u32 delay (us), high Rx 102162306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH`` u32 max packets, high Rx 102262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx 102362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx 102462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval 102562306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_CQE_TX`` bool timer reset mode, Tx 102662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_CQE_RX`` bool timer reset mode, Rx 102762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES`` u32 max aggr size, Tx 102862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES`` u32 max aggr packets, Tx 102962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS`` u32 time (us), aggr, Tx 103062306a36Sopenharmony_ci =========================================== ====== ======================= 103162306a36Sopenharmony_ci 103262306a36Sopenharmony_ciAttributes are only included in reply if their value is not zero or the 103362306a36Sopenharmony_cicorresponding bit in ``ethtool_ops::supported_coalesce_params`` is set (i.e. 103462306a36Sopenharmony_cithey are declared as supported by driver). 103562306a36Sopenharmony_ci 103662306a36Sopenharmony_ciTimer reset mode (``ETHTOOL_A_COALESCE_USE_CQE_TX`` and 103762306a36Sopenharmony_ci``ETHTOOL_A_COALESCE_USE_CQE_RX``) controls the interaction between packet 103862306a36Sopenharmony_ciarrival and the various time based delay parameters. By default timers are 103962306a36Sopenharmony_ciexpected to limit the max delay between any packet arrival/departure and a 104062306a36Sopenharmony_cicorresponding interrupt. In this mode timer should be started by packet 104162306a36Sopenharmony_ciarrival (sometimes delivery of previous interrupt) and reset when interrupt 104262306a36Sopenharmony_ciis delivered. 104362306a36Sopenharmony_ciSetting the appropriate attribute to 1 will enable ``CQE`` mode, where 104462306a36Sopenharmony_cieach packet event resets the timer. In this mode timer is used to force 104562306a36Sopenharmony_cithe interrupt if queue goes idle, while busy queues depend on the packet 104662306a36Sopenharmony_cilimit to trigger interrupts. 104762306a36Sopenharmony_ci 104862306a36Sopenharmony_ciTx aggregation consists of copying frames into a contiguous buffer so that they 104962306a36Sopenharmony_cican be submitted as a single IO operation. ``ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES`` 105062306a36Sopenharmony_cidescribes the maximum size in bytes for the submitted buffer. 105162306a36Sopenharmony_ci``ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES`` describes the maximum number of frames 105262306a36Sopenharmony_cithat can be aggregated into a single buffer. 105362306a36Sopenharmony_ci``ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS`` describes the amount of time in usecs, 105462306a36Sopenharmony_cicounted since the first packet arrival in an aggregated block, after which the 105562306a36Sopenharmony_ciblock should be sent. 105662306a36Sopenharmony_ciThis feature is mainly of interest for specific USB devices which does not cope 105762306a36Sopenharmony_ciwell with frequent small-sized URBs transmissions. 105862306a36Sopenharmony_ci 105962306a36Sopenharmony_ciCOALESCE_SET 106062306a36Sopenharmony_ci============ 106162306a36Sopenharmony_ci 106262306a36Sopenharmony_ciSets coalescing parameters like ``ETHTOOL_SCOALESCE`` ioctl request. 106362306a36Sopenharmony_ci 106462306a36Sopenharmony_ciRequest contents: 106562306a36Sopenharmony_ci 106662306a36Sopenharmony_ci =========================================== ====== ======================= 106762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_HEADER`` nested request header 106862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS`` u32 delay (us), normal Rx 106962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES`` u32 max packets, normal Rx 107062306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_IRQ`` u32 delay (us), Rx in IRQ 107162306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ`` u32 max packets, Rx in IRQ 107262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS`` u32 delay (us), normal Tx 107362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES`` u32 max packets, normal Tx 107462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_IRQ`` u32 delay (us), Tx in IRQ 107562306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ`` u32 IRQ packets, Tx in IRQ 107662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_STATS_BLOCK_USECS`` u32 delay of stats update 107762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX`` bool adaptive Rx coalesce 107862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX`` bool adaptive Tx coalesce 107962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_PKT_RATE_LOW`` u32 threshold for low rate 108062306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_LOW`` u32 delay (us), low Rx 108162306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW`` u32 max packets, low Rx 108262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_LOW`` u32 delay (us), low Tx 108362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW`` u32 max packets, low Tx 108462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_PKT_RATE_HIGH`` u32 threshold for high rate 108562306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_USECS_HIGH`` u32 delay (us), high Rx 108662306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH`` u32 max packets, high Rx 108762306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx 108862306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx 108962306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval 109062306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_CQE_TX`` bool timer reset mode, Tx 109162306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_USE_CQE_RX`` bool timer reset mode, Rx 109262306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES`` u32 max aggr size, Tx 109362306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES`` u32 max aggr packets, Tx 109462306a36Sopenharmony_ci ``ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS`` u32 time (us), aggr, Tx 109562306a36Sopenharmony_ci =========================================== ====== ======================= 109662306a36Sopenharmony_ci 109762306a36Sopenharmony_ciRequest is rejected if it attributes declared as unsupported by driver (i.e. 109862306a36Sopenharmony_cisuch that the corresponding bit in ``ethtool_ops::supported_coalesce_params`` 109962306a36Sopenharmony_ciis not set), regardless of their values. Driver may impose additional 110062306a36Sopenharmony_ciconstraints on coalescing parameters and their values. 110162306a36Sopenharmony_ci 110262306a36Sopenharmony_ciCompared to requests issued via the ``ioctl()`` netlink version of this request 110362306a36Sopenharmony_ciwill try harder to make sure that values specified by the user have been applied 110462306a36Sopenharmony_ciand may call the driver twice. 110562306a36Sopenharmony_ci 110662306a36Sopenharmony_ci 110762306a36Sopenharmony_ciPAUSE_GET 110862306a36Sopenharmony_ci========= 110962306a36Sopenharmony_ci 111062306a36Sopenharmony_ciGets pause frame settings like ``ETHTOOL_GPAUSEPARAM`` ioctl request. 111162306a36Sopenharmony_ci 111262306a36Sopenharmony_ciRequest contents: 111362306a36Sopenharmony_ci 111462306a36Sopenharmony_ci ===================================== ====== ========================== 111562306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_HEADER`` nested request header 111662306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_STATS_SRC`` u32 source of statistics 111762306a36Sopenharmony_ci ===================================== ====== ========================== 111862306a36Sopenharmony_ci 111962306a36Sopenharmony_ci``ETHTOOL_A_PAUSE_STATS_SRC`` is optional. It takes values from: 112062306a36Sopenharmony_ci 112162306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 112262306a36Sopenharmony_ci :identifiers: ethtool_mac_stats_src 112362306a36Sopenharmony_ci 112462306a36Sopenharmony_ciIf absent from the request, stats will be provided with 112562306a36Sopenharmony_cian ``ETHTOOL_A_PAUSE_STATS_SRC`` attribute in the response equal to 112662306a36Sopenharmony_ci``ETHTOOL_MAC_STATS_SRC_AGGREGATE``. 112762306a36Sopenharmony_ci 112862306a36Sopenharmony_ciKernel response contents: 112962306a36Sopenharmony_ci 113062306a36Sopenharmony_ci ===================================== ====== ========================== 113162306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_HEADER`` nested request header 113262306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_AUTONEG`` bool pause autonegotiation 113362306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_RX`` bool receive pause frames 113462306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_TX`` bool transmit pause frames 113562306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_STATS`` nested pause statistics 113662306a36Sopenharmony_ci ===================================== ====== ========================== 113762306a36Sopenharmony_ci 113862306a36Sopenharmony_ci``ETHTOOL_A_PAUSE_STATS`` are reported if ``ETHTOOL_FLAG_STATS`` was set 113962306a36Sopenharmony_ciin ``ETHTOOL_A_HEADER_FLAGS``. 114062306a36Sopenharmony_ciIt will be empty if driver did not report any statistics. Drivers fill in 114162306a36Sopenharmony_cithe statistics in the following structure: 114262306a36Sopenharmony_ci 114362306a36Sopenharmony_ci.. kernel-doc:: include/linux/ethtool.h 114462306a36Sopenharmony_ci :identifiers: ethtool_pause_stats 114562306a36Sopenharmony_ci 114662306a36Sopenharmony_ciEach member has a corresponding attribute defined. 114762306a36Sopenharmony_ci 114862306a36Sopenharmony_ciPAUSE_SET 114962306a36Sopenharmony_ci========= 115062306a36Sopenharmony_ci 115162306a36Sopenharmony_ciSets pause parameters like ``ETHTOOL_GPAUSEPARAM`` ioctl request. 115262306a36Sopenharmony_ci 115362306a36Sopenharmony_ciRequest contents: 115462306a36Sopenharmony_ci 115562306a36Sopenharmony_ci ===================================== ====== ========================== 115662306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_HEADER`` nested request header 115762306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_AUTONEG`` bool pause autonegotiation 115862306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_RX`` bool receive pause frames 115962306a36Sopenharmony_ci ``ETHTOOL_A_PAUSE_TX`` bool transmit pause frames 116062306a36Sopenharmony_ci ===================================== ====== ========================== 116162306a36Sopenharmony_ci 116262306a36Sopenharmony_ci 116362306a36Sopenharmony_ciEEE_GET 116462306a36Sopenharmony_ci======= 116562306a36Sopenharmony_ci 116662306a36Sopenharmony_ciGets Energy Efficient Ethernet settings like ``ETHTOOL_GEEE`` ioctl request. 116762306a36Sopenharmony_ci 116862306a36Sopenharmony_ciRequest contents: 116962306a36Sopenharmony_ci 117062306a36Sopenharmony_ci ===================================== ====== ========================== 117162306a36Sopenharmony_ci ``ETHTOOL_A_EEE_HEADER`` nested request header 117262306a36Sopenharmony_ci ===================================== ====== ========================== 117362306a36Sopenharmony_ci 117462306a36Sopenharmony_ciKernel response contents: 117562306a36Sopenharmony_ci 117662306a36Sopenharmony_ci ===================================== ====== ========================== 117762306a36Sopenharmony_ci ``ETHTOOL_A_EEE_HEADER`` nested request header 117862306a36Sopenharmony_ci ``ETHTOOL_A_EEE_MODES_OURS`` bool supported/advertised modes 117962306a36Sopenharmony_ci ``ETHTOOL_A_EEE_MODES_PEER`` bool peer advertised link modes 118062306a36Sopenharmony_ci ``ETHTOOL_A_EEE_ACTIVE`` bool EEE is actively used 118162306a36Sopenharmony_ci ``ETHTOOL_A_EEE_ENABLED`` bool EEE is enabled 118262306a36Sopenharmony_ci ``ETHTOOL_A_EEE_TX_LPI_ENABLED`` bool Tx lpi enabled 118362306a36Sopenharmony_ci ``ETHTOOL_A_EEE_TX_LPI_TIMER`` u32 Tx lpi timeout (in us) 118462306a36Sopenharmony_ci ===================================== ====== ========================== 118562306a36Sopenharmony_ci 118662306a36Sopenharmony_ciIn ``ETHTOOL_A_EEE_MODES_OURS``, mask consists of link modes for which EEE is 118762306a36Sopenharmony_cienabled, value of link modes for which EEE is advertised. Link modes for which 118862306a36Sopenharmony_cipeer advertises EEE are listed in ``ETHTOOL_A_EEE_MODES_PEER`` (no mask). The 118962306a36Sopenharmony_cinetlink interface allows reporting EEE status for all link modes but only 119062306a36Sopenharmony_cifirst 32 are provided by the ``ethtool_ops`` callback. 119162306a36Sopenharmony_ci 119262306a36Sopenharmony_ci 119362306a36Sopenharmony_ciEEE_SET 119462306a36Sopenharmony_ci======= 119562306a36Sopenharmony_ci 119662306a36Sopenharmony_ciSets Energy Efficient Ethernet parameters like ``ETHTOOL_SEEE`` ioctl request. 119762306a36Sopenharmony_ci 119862306a36Sopenharmony_ciRequest contents: 119962306a36Sopenharmony_ci 120062306a36Sopenharmony_ci ===================================== ====== ========================== 120162306a36Sopenharmony_ci ``ETHTOOL_A_EEE_HEADER`` nested request header 120262306a36Sopenharmony_ci ``ETHTOOL_A_EEE_MODES_OURS`` bool advertised modes 120362306a36Sopenharmony_ci ``ETHTOOL_A_EEE_ENABLED`` bool EEE is enabled 120462306a36Sopenharmony_ci ``ETHTOOL_A_EEE_TX_LPI_ENABLED`` bool Tx lpi enabled 120562306a36Sopenharmony_ci ``ETHTOOL_A_EEE_TX_LPI_TIMER`` u32 Tx lpi timeout (in us) 120662306a36Sopenharmony_ci ===================================== ====== ========================== 120762306a36Sopenharmony_ci 120862306a36Sopenharmony_ci``ETHTOOL_A_EEE_MODES_OURS`` is used to either list link modes to advertise 120962306a36Sopenharmony_ciEEE for (if there is no mask) or specify changes to the list (if there is 121062306a36Sopenharmony_cia mask). The netlink interface allows reporting EEE status for all link modes 121162306a36Sopenharmony_cibut only first 32 can be set at the moment as that is what the ``ethtool_ops`` 121262306a36Sopenharmony_cicallback supports. 121362306a36Sopenharmony_ci 121462306a36Sopenharmony_ci 121562306a36Sopenharmony_ciTSINFO_GET 121662306a36Sopenharmony_ci========== 121762306a36Sopenharmony_ci 121862306a36Sopenharmony_ciGets timestamping information like ``ETHTOOL_GET_TS_INFO`` ioctl request. 121962306a36Sopenharmony_ci 122062306a36Sopenharmony_ciRequest contents: 122162306a36Sopenharmony_ci 122262306a36Sopenharmony_ci ===================================== ====== ========================== 122362306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_HEADER`` nested request header 122462306a36Sopenharmony_ci ===================================== ====== ========================== 122562306a36Sopenharmony_ci 122662306a36Sopenharmony_ciKernel response contents: 122762306a36Sopenharmony_ci 122862306a36Sopenharmony_ci ===================================== ====== ========================== 122962306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_HEADER`` nested request header 123062306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_TIMESTAMPING`` bitset SO_TIMESTAMPING flags 123162306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_TX_TYPES`` bitset supported Tx types 123262306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_RX_FILTERS`` bitset supported Rx filters 123362306a36Sopenharmony_ci ``ETHTOOL_A_TSINFO_PHC_INDEX`` u32 PTP hw clock index 123462306a36Sopenharmony_ci ===================================== ====== ========================== 123562306a36Sopenharmony_ci 123662306a36Sopenharmony_ci``ETHTOOL_A_TSINFO_PHC_INDEX`` is absent if there is no associated PHC (there 123762306a36Sopenharmony_ciis no special value for this case). The bitset attributes are omitted if they 123862306a36Sopenharmony_ciwould be empty (no bit set). 123962306a36Sopenharmony_ci 124062306a36Sopenharmony_ciCABLE_TEST 124162306a36Sopenharmony_ci========== 124262306a36Sopenharmony_ci 124362306a36Sopenharmony_ciStart a cable test. 124462306a36Sopenharmony_ci 124562306a36Sopenharmony_ciRequest contents: 124662306a36Sopenharmony_ci 124762306a36Sopenharmony_ci ==================================== ====== ========================== 124862306a36Sopenharmony_ci ``ETHTOOL_A_CABLE_TEST_HEADER`` nested request header 124962306a36Sopenharmony_ci ==================================== ====== ========================== 125062306a36Sopenharmony_ci 125162306a36Sopenharmony_ciNotification contents: 125262306a36Sopenharmony_ci 125362306a36Sopenharmony_ciAn Ethernet cable typically contains 1, 2 or 4 pairs. The length of 125462306a36Sopenharmony_cithe pair can only be measured when there is a fault in the pair and 125562306a36Sopenharmony_cihence a reflection. Information about the fault may not be available, 125662306a36Sopenharmony_cidepending on the specific hardware. Hence the contents of the notify 125762306a36Sopenharmony_cimessage are mostly optional. The attributes can be repeated an 125862306a36Sopenharmony_ciarbitrary number of times, in an arbitrary order, for an arbitrary 125962306a36Sopenharmony_cinumber of pairs. 126062306a36Sopenharmony_ci 126162306a36Sopenharmony_ciThe example shows the notification sent when the test is completed for 126262306a36Sopenharmony_cia T2 cable, i.e. two pairs. One pair is OK and hence has no length 126362306a36Sopenharmony_ciinformation. The second pair has a fault and does have length 126462306a36Sopenharmony_ciinformation. 126562306a36Sopenharmony_ci 126662306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 126762306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_HEADER`` | nested | reply header | 126862306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 126962306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_STATUS`` | u8 | completed | 127062306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 127162306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_NTF_NEST`` | nested | all the results | 127262306a36Sopenharmony_ci +-+-------------------------------------------+--------+---------------------+ 127362306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_NEST_RESULT`` | nested | cable test result | 127462306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 127562306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number | 127662306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 127762306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_CODE`` | u8 | result code | 127862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 127962306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_NEST_RESULT`` | nested | cable test results | 128062306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 128162306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number | 128262306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 128362306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_CODE`` | u8 | result code | 128462306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 128562306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_NEST_FAULT_LENGTH`` | nested | cable length | 128662306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 128762306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR`` | u8 | pair number | 128862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 128962306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_CM`` | u32 | length in cm | 129062306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 129162306a36Sopenharmony_ci 129262306a36Sopenharmony_ciCABLE_TEST TDR 129362306a36Sopenharmony_ci============== 129462306a36Sopenharmony_ci 129562306a36Sopenharmony_ciStart a cable test and report raw TDR data 129662306a36Sopenharmony_ci 129762306a36Sopenharmony_ciRequest contents: 129862306a36Sopenharmony_ci 129962306a36Sopenharmony_ci +--------------------------------------------+--------+-----------------------+ 130062306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_TDR_HEADER`` | nested | reply header | 130162306a36Sopenharmony_ci +--------------------------------------------+--------+-----------------------+ 130262306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_TDR_CFG`` | nested | test configuration | 130362306a36Sopenharmony_ci +-+------------------------------------------+--------+-----------------------+ 130462306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE`` | u32 | first data distance | 130562306a36Sopenharmony_ci +-+-+----------------------------------------+--------+-----------------------+ 130662306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_STEP_LAST_DISTANCE`` | u32 | last data distance | 130762306a36Sopenharmony_ci +-+-+----------------------------------------+--------+-----------------------+ 130862306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_STEP_STEP_DISTANCE`` | u32 | distance of each step | 130962306a36Sopenharmony_ci +-+-+----------------------------------------+--------+-----------------------+ 131062306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR`` | u8 | pair to test | 131162306a36Sopenharmony_ci +-+-+----------------------------------------+--------+-----------------------+ 131262306a36Sopenharmony_ci 131362306a36Sopenharmony_ciThe ETHTOOL_A_CABLE_TEST_TDR_CFG is optional, as well as all members 131462306a36Sopenharmony_ciof the nest. All distances are expressed in centimeters. The PHY takes 131562306a36Sopenharmony_cithe distances as a guide, and rounds to the nearest distance it 131662306a36Sopenharmony_ciactually supports. If a pair is passed, only that one pair will be 131762306a36Sopenharmony_citested. Otherwise all pairs are tested. 131862306a36Sopenharmony_ci 131962306a36Sopenharmony_ciNotification contents: 132062306a36Sopenharmony_ci 132162306a36Sopenharmony_ciRaw TDR data is gathered by sending a pulse down the cable and 132262306a36Sopenharmony_cirecording the amplitude of the reflected pulse for a given distance. 132362306a36Sopenharmony_ci 132462306a36Sopenharmony_ciIt can take a number of seconds to collect TDR data, especial if the 132562306a36Sopenharmony_cifull 100 meters is probed at 1 meter intervals. When the test is 132662306a36Sopenharmony_cistarted a notification will be sent containing just 132762306a36Sopenharmony_ciETHTOOL_A_CABLE_TEST_TDR_STATUS with the value 132862306a36Sopenharmony_ciETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED. 132962306a36Sopenharmony_ci 133062306a36Sopenharmony_ciWhen the test has completed a second notification will be sent 133162306a36Sopenharmony_cicontaining ETHTOOL_A_CABLE_TEST_TDR_STATUS with the value 133262306a36Sopenharmony_ciETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED and the TDR data. 133362306a36Sopenharmony_ci 133462306a36Sopenharmony_ciThe message may optionally contain the amplitude of the pulse send 133562306a36Sopenharmony_cidown the cable. This is measured in mV. A reflection should not be 133662306a36Sopenharmony_cibigger than transmitted pulse. 133762306a36Sopenharmony_ci 133862306a36Sopenharmony_ciBefore the raw TDR data should be an ETHTOOL_A_CABLE_TDR_NEST_STEP 133962306a36Sopenharmony_cinest containing information about the distance along the cable for the 134062306a36Sopenharmony_cifirst reading, the last reading, and the step between each 134162306a36Sopenharmony_cireading. Distances are measured in centimeters. These should be the 134262306a36Sopenharmony_ciexact values the PHY used. These may be different to what the user 134362306a36Sopenharmony_cirequested, if the native measurement resolution is greater than 1 cm. 134462306a36Sopenharmony_ci 134562306a36Sopenharmony_ciFor each step along the cable, a ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE is 134662306a36Sopenharmony_ciused to report the amplitude of the reflection for a given pair. 134762306a36Sopenharmony_ci 134862306a36Sopenharmony_ci +---------------------------------------------+--------+----------------------+ 134962306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_TDR_HEADER`` | nested | reply header | 135062306a36Sopenharmony_ci +---------------------------------------------+--------+----------------------+ 135162306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_TDR_STATUS`` | u8 | completed | 135262306a36Sopenharmony_ci +---------------------------------------------+--------+----------------------+ 135362306a36Sopenharmony_ci | ``ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST`` | nested | all the results | 135462306a36Sopenharmony_ci +-+-------------------------------------------+--------+----------------------+ 135562306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_TDR_NEST_PULSE`` | nested | TX Pulse amplitude | 135662306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 135762306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_PULSE_mV`` | s16 | Pulse amplitude | 135862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 135962306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_NEST_STEP`` | nested | TDR step info | 136062306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 136162306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE`` | u32 | First data distance | 136262306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 136362306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_STEP_LAST_DISTANCE`` | u32 | Last data distance | 136462306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 136562306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_STEP_STEP_DISTANCE`` | u32 | distance of each step| 136662306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 136762306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude | 136862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 136962306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number | 137062306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 137162306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude | 137262306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 137362306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude | 137462306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 137562306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number | 137662306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 137762306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude | 137862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 137962306a36Sopenharmony_ci | | ``ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE`` | nested | Reflection amplitude | 138062306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 138162306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_RESULTS_PAIR`` | u8 | pair number | 138262306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 138362306a36Sopenharmony_ci | | | ``ETHTOOL_A_CABLE_AMPLITUDE_mV`` | s16 | Reflection amplitude | 138462306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+----------------------+ 138562306a36Sopenharmony_ci 138662306a36Sopenharmony_ciTUNNEL_INFO 138762306a36Sopenharmony_ci=========== 138862306a36Sopenharmony_ci 138962306a36Sopenharmony_ciGets information about the tunnel state NIC is aware of. 139062306a36Sopenharmony_ci 139162306a36Sopenharmony_ciRequest contents: 139262306a36Sopenharmony_ci 139362306a36Sopenharmony_ci ===================================== ====== ========================== 139462306a36Sopenharmony_ci ``ETHTOOL_A_TUNNEL_INFO_HEADER`` nested request header 139562306a36Sopenharmony_ci ===================================== ====== ========================== 139662306a36Sopenharmony_ci 139762306a36Sopenharmony_ciKernel response contents: 139862306a36Sopenharmony_ci 139962306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 140062306a36Sopenharmony_ci | ``ETHTOOL_A_TUNNEL_INFO_HEADER`` | nested | reply header | 140162306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 140262306a36Sopenharmony_ci | ``ETHTOOL_A_TUNNEL_INFO_UDP_PORTS`` | nested | all UDP port tables | 140362306a36Sopenharmony_ci +-+-------------------------------------------+--------+---------------------+ 140462306a36Sopenharmony_ci | | ``ETHTOOL_A_TUNNEL_UDP_TABLE`` | nested | one UDP port table | 140562306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 140662306a36Sopenharmony_ci | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE`` | u32 | max size of the | 140762306a36Sopenharmony_ci | | | | | table | 140862306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 140962306a36Sopenharmony_ci | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES`` | bitset | tunnel types which | 141062306a36Sopenharmony_ci | | | | | table can hold | 141162306a36Sopenharmony_ci +-+-+-----------------------------------------+--------+---------------------+ 141262306a36Sopenharmony_ci | | | ``ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY`` | nested | offloaded UDP port | 141362306a36Sopenharmony_ci +-+-+-+---------------------------------------+--------+---------------------+ 141462306a36Sopenharmony_ci | | | | ``ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT`` | be16 | UDP port | 141562306a36Sopenharmony_ci +-+-+-+---------------------------------------+--------+---------------------+ 141662306a36Sopenharmony_ci | | | | ``ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE`` | u32 | tunnel type | 141762306a36Sopenharmony_ci +-+-+-+---------------------------------------+--------+---------------------+ 141862306a36Sopenharmony_ci 141962306a36Sopenharmony_ciFor UDP tunnel table empty ``ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES`` indicates that 142062306a36Sopenharmony_cithe table contains static entries, hard-coded by the NIC. 142162306a36Sopenharmony_ci 142262306a36Sopenharmony_ciFEC_GET 142362306a36Sopenharmony_ci======= 142462306a36Sopenharmony_ci 142562306a36Sopenharmony_ciGets FEC configuration and state like ``ETHTOOL_GFECPARAM`` ioctl request. 142662306a36Sopenharmony_ci 142762306a36Sopenharmony_ciRequest contents: 142862306a36Sopenharmony_ci 142962306a36Sopenharmony_ci ===================================== ====== ========================== 143062306a36Sopenharmony_ci ``ETHTOOL_A_FEC_HEADER`` nested request header 143162306a36Sopenharmony_ci ===================================== ====== ========================== 143262306a36Sopenharmony_ci 143362306a36Sopenharmony_ciKernel response contents: 143462306a36Sopenharmony_ci 143562306a36Sopenharmony_ci ===================================== ====== ========================== 143662306a36Sopenharmony_ci ``ETHTOOL_A_FEC_HEADER`` nested request header 143762306a36Sopenharmony_ci ``ETHTOOL_A_FEC_MODES`` bitset configured modes 143862306a36Sopenharmony_ci ``ETHTOOL_A_FEC_AUTO`` bool FEC mode auto selection 143962306a36Sopenharmony_ci ``ETHTOOL_A_FEC_ACTIVE`` u32 index of active FEC mode 144062306a36Sopenharmony_ci ``ETHTOOL_A_FEC_STATS`` nested FEC statistics 144162306a36Sopenharmony_ci ===================================== ====== ========================== 144262306a36Sopenharmony_ci 144362306a36Sopenharmony_ci``ETHTOOL_A_FEC_ACTIVE`` is the bit index of the FEC link mode currently 144462306a36Sopenharmony_ciactive on the interface. This attribute may not be present if device does 144562306a36Sopenharmony_cinot support FEC. 144662306a36Sopenharmony_ci 144762306a36Sopenharmony_ci``ETHTOOL_A_FEC_MODES`` and ``ETHTOOL_A_FEC_AUTO`` are only meaningful when 144862306a36Sopenharmony_ciautonegotiation is disabled. If ``ETHTOOL_A_FEC_AUTO`` is non-zero driver will 144962306a36Sopenharmony_ciselect the FEC mode automatically based on the parameters of the SFP module. 145062306a36Sopenharmony_ciThis is equivalent to the ``ETHTOOL_FEC_AUTO`` bit of the ioctl interface. 145162306a36Sopenharmony_ci``ETHTOOL_A_FEC_MODES`` carry the current FEC configuration using link mode 145262306a36Sopenharmony_cibits (rather than old ``ETHTOOL_FEC_*`` bits). 145362306a36Sopenharmony_ci 145462306a36Sopenharmony_ci``ETHTOOL_A_FEC_STATS`` are reported if ``ETHTOOL_FLAG_STATS`` was set in 145562306a36Sopenharmony_ci``ETHTOOL_A_HEADER_FLAGS``. 145662306a36Sopenharmony_ciEach attribute carries an array of 64bit statistics. First entry in the array 145762306a36Sopenharmony_cicontains the total number of events on the port, while the following entries 145862306a36Sopenharmony_ciare counters corresponding to lanes/PCS instances. The number of entries in 145962306a36Sopenharmony_cithe array will be: 146062306a36Sopenharmony_ci 146162306a36Sopenharmony_ci+--------------+---------------------------------------------+ 146262306a36Sopenharmony_ci| `0` | device does not support FEC statistics | 146362306a36Sopenharmony_ci+--------------+---------------------------------------------+ 146462306a36Sopenharmony_ci| `1` | device does not support per-lane break down | 146562306a36Sopenharmony_ci+--------------+---------------------------------------------+ 146662306a36Sopenharmony_ci| `1 + #lanes` | device has full support for FEC stats | 146762306a36Sopenharmony_ci+--------------+---------------------------------------------+ 146862306a36Sopenharmony_ci 146962306a36Sopenharmony_ciDrivers fill in the statistics in the following structure: 147062306a36Sopenharmony_ci 147162306a36Sopenharmony_ci.. kernel-doc:: include/linux/ethtool.h 147262306a36Sopenharmony_ci :identifiers: ethtool_fec_stats 147362306a36Sopenharmony_ci 147462306a36Sopenharmony_ciFEC_SET 147562306a36Sopenharmony_ci======= 147662306a36Sopenharmony_ci 147762306a36Sopenharmony_ciSets FEC parameters like ``ETHTOOL_SFECPARAM`` ioctl request. 147862306a36Sopenharmony_ci 147962306a36Sopenharmony_ciRequest contents: 148062306a36Sopenharmony_ci 148162306a36Sopenharmony_ci ===================================== ====== ========================== 148262306a36Sopenharmony_ci ``ETHTOOL_A_FEC_HEADER`` nested request header 148362306a36Sopenharmony_ci ``ETHTOOL_A_FEC_MODES`` bitset configured modes 148462306a36Sopenharmony_ci ``ETHTOOL_A_FEC_AUTO`` bool FEC mode auto selection 148562306a36Sopenharmony_ci ===================================== ====== ========================== 148662306a36Sopenharmony_ci 148762306a36Sopenharmony_ci``FEC_SET`` is only meaningful when autonegotiation is disabled. Otherwise 148862306a36Sopenharmony_ciFEC mode is selected as part of autonegotiation. 148962306a36Sopenharmony_ci 149062306a36Sopenharmony_ci``ETHTOOL_A_FEC_MODES`` selects which FEC mode should be used. It's recommended 149162306a36Sopenharmony_cito set only one bit, if multiple bits are set driver may choose between them 149262306a36Sopenharmony_ciin an implementation specific way. 149362306a36Sopenharmony_ci 149462306a36Sopenharmony_ci``ETHTOOL_A_FEC_AUTO`` requests the driver to choose FEC mode based on SFP 149562306a36Sopenharmony_cimodule parameters. This does not mean autonegotiation. 149662306a36Sopenharmony_ci 149762306a36Sopenharmony_ciMODULE_EEPROM_GET 149862306a36Sopenharmony_ci================= 149962306a36Sopenharmony_ci 150062306a36Sopenharmony_ciFetch module EEPROM data dump. 150162306a36Sopenharmony_ciThis interface is designed to allow dumps of at most 1/2 page at once. This 150262306a36Sopenharmony_cimeans only dumps of 128 (or less) bytes are allowed, without crossing half page 150362306a36Sopenharmony_ciboundary located at offset 128. For pages other than 0 only high 128 bytes are 150462306a36Sopenharmony_ciaccessible. 150562306a36Sopenharmony_ci 150662306a36Sopenharmony_ciRequest contents: 150762306a36Sopenharmony_ci 150862306a36Sopenharmony_ci ======================================= ====== ========================== 150962306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_HEADER`` nested request header 151062306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_OFFSET`` u32 offset within a page 151162306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_LENGTH`` u32 amount of bytes to read 151262306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_PAGE`` u8 page number 151362306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_BANK`` u8 bank number 151462306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS`` u8 page I2C address 151562306a36Sopenharmony_ci ======================================= ====== ========================== 151662306a36Sopenharmony_ci 151762306a36Sopenharmony_ciIf ``ETHTOOL_A_MODULE_EEPROM_BANK`` is not specified, bank 0 is assumed. 151862306a36Sopenharmony_ci 151962306a36Sopenharmony_ciKernel response contents: 152062306a36Sopenharmony_ci 152162306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 152262306a36Sopenharmony_ci | ``ETHTOOL_A_MODULE_EEPROM_HEADER`` | nested | reply header | 152362306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 152462306a36Sopenharmony_ci | ``ETHTOOL_A_MODULE_EEPROM_DATA`` | binary | array of bytes from | 152562306a36Sopenharmony_ci | | | module EEPROM | 152662306a36Sopenharmony_ci +---------------------------------------------+--------+---------------------+ 152762306a36Sopenharmony_ci 152862306a36Sopenharmony_ci``ETHTOOL_A_MODULE_EEPROM_DATA`` has an attribute length equal to the amount of 152962306a36Sopenharmony_cibytes driver actually read. 153062306a36Sopenharmony_ci 153162306a36Sopenharmony_ciSTATS_GET 153262306a36Sopenharmony_ci========= 153362306a36Sopenharmony_ci 153462306a36Sopenharmony_ciGet standard statistics for the interface. Note that this is not 153562306a36Sopenharmony_cia re-implementation of ``ETHTOOL_GSTATS`` which exposed driver-defined 153662306a36Sopenharmony_cistats. 153762306a36Sopenharmony_ci 153862306a36Sopenharmony_ciRequest contents: 153962306a36Sopenharmony_ci 154062306a36Sopenharmony_ci ======================================= ====== ========================== 154162306a36Sopenharmony_ci ``ETHTOOL_A_STATS_HEADER`` nested request header 154262306a36Sopenharmony_ci ``ETHTOOL_A_STATS_SRC`` u32 source of statistics 154362306a36Sopenharmony_ci ``ETHTOOL_A_STATS_GROUPS`` bitset requested groups of stats 154462306a36Sopenharmony_ci ======================================= ====== ========================== 154562306a36Sopenharmony_ci 154662306a36Sopenharmony_ciKernel response contents: 154762306a36Sopenharmony_ci 154862306a36Sopenharmony_ci +-----------------------------------+--------+--------------------------------+ 154962306a36Sopenharmony_ci | ``ETHTOOL_A_STATS_HEADER`` | nested | reply header | 155062306a36Sopenharmony_ci +-----------------------------------+--------+--------------------------------+ 155162306a36Sopenharmony_ci | ``ETHTOOL_A_STATS_SRC`` | u32 | source of statistics | 155262306a36Sopenharmony_ci +-----------------------------------+--------+--------------------------------+ 155362306a36Sopenharmony_ci | ``ETHTOOL_A_STATS_GRP`` | nested | one or more group of stats | 155462306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 155562306a36Sopenharmony_ci | | ``ETHTOOL_A_STATS_GRP_ID`` | u32 | group ID - ``ETHTOOL_STATS_*`` | 155662306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 155762306a36Sopenharmony_ci | | ``ETHTOOL_A_STATS_GRP_SS_ID`` | u32 | string set ID for names | 155862306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 155962306a36Sopenharmony_ci | | ``ETHTOOL_A_STATS_GRP_STAT`` | nested | nest containing a statistic | 156062306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 156162306a36Sopenharmony_ci | | ``ETHTOOL_A_STATS_GRP_HIST_RX`` | nested | histogram statistic (Rx) | 156262306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 156362306a36Sopenharmony_ci | | ``ETHTOOL_A_STATS_GRP_HIST_TX`` | nested | histogram statistic (Tx) | 156462306a36Sopenharmony_ci +-+---------------------------------+--------+--------------------------------+ 156562306a36Sopenharmony_ci 156662306a36Sopenharmony_ciUsers specify which groups of statistics they are requesting via 156762306a36Sopenharmony_cithe ``ETHTOOL_A_STATS_GROUPS`` bitset. Currently defined values are: 156862306a36Sopenharmony_ci 156962306a36Sopenharmony_ci ====================== ======== =============================================== 157062306a36Sopenharmony_ci ETHTOOL_STATS_ETH_MAC eth-mac Basic IEEE 802.3 MAC statistics (30.3.1.1.*) 157162306a36Sopenharmony_ci ETHTOOL_STATS_ETH_PHY eth-phy Basic IEEE 802.3 PHY statistics (30.3.2.1.*) 157262306a36Sopenharmony_ci ETHTOOL_STATS_ETH_CTRL eth-ctrl Basic IEEE 802.3 MAC Ctrl statistics (30.3.3.*) 157362306a36Sopenharmony_ci ETHTOOL_STATS_RMON rmon RMON (RFC 2819) statistics 157462306a36Sopenharmony_ci ====================== ======== =============================================== 157562306a36Sopenharmony_ci 157662306a36Sopenharmony_ciEach group should have a corresponding ``ETHTOOL_A_STATS_GRP`` in the reply. 157762306a36Sopenharmony_ci``ETHTOOL_A_STATS_GRP_ID`` identifies which group's statistics nest contains. 157862306a36Sopenharmony_ci``ETHTOOL_A_STATS_GRP_SS_ID`` identifies the string set ID for the names of 157962306a36Sopenharmony_cithe statistics in the group, if available. 158062306a36Sopenharmony_ci 158162306a36Sopenharmony_ciStatistics are added to the ``ETHTOOL_A_STATS_GRP`` nest under 158262306a36Sopenharmony_ci``ETHTOOL_A_STATS_GRP_STAT``. ``ETHTOOL_A_STATS_GRP_STAT`` should contain 158362306a36Sopenharmony_cisingle 8 byte (u64) attribute inside - the type of that attribute is 158462306a36Sopenharmony_cithe statistic ID and the value is the value of the statistic. 158562306a36Sopenharmony_ciEach group has its own interpretation of statistic IDs. 158662306a36Sopenharmony_ciAttribute IDs correspond to strings from the string set identified 158762306a36Sopenharmony_ciby ``ETHTOOL_A_STATS_GRP_SS_ID``. Complex statistics (such as RMON histogram 158862306a36Sopenharmony_cientries) are also listed inside ``ETHTOOL_A_STATS_GRP`` and do not have 158962306a36Sopenharmony_cia string defined in the string set. 159062306a36Sopenharmony_ci 159162306a36Sopenharmony_ciRMON "histogram" counters count number of packets within given size range. 159262306a36Sopenharmony_ciBecause RFC does not specify the ranges beyond the standard 1518 MTU devices 159362306a36Sopenharmony_cidiffer in definition of buckets. For this reason the definition of packet ranges 159462306a36Sopenharmony_ciis left to each driver. 159562306a36Sopenharmony_ci 159662306a36Sopenharmony_ci``ETHTOOL_A_STATS_GRP_HIST_RX`` and ``ETHTOOL_A_STATS_GRP_HIST_TX`` nests 159762306a36Sopenharmony_cicontain the following attributes: 159862306a36Sopenharmony_ci 159962306a36Sopenharmony_ci ================================= ====== =================================== 160062306a36Sopenharmony_ci ETHTOOL_A_STATS_RMON_HIST_BKT_LOW u32 low bound of the packet size bucket 160162306a36Sopenharmony_ci ETHTOOL_A_STATS_RMON_HIST_BKT_HI u32 high bound of the bucket 160262306a36Sopenharmony_ci ETHTOOL_A_STATS_RMON_HIST_VAL u64 packet counter 160362306a36Sopenharmony_ci ================================= ====== =================================== 160462306a36Sopenharmony_ci 160562306a36Sopenharmony_ciLow and high bounds are inclusive, for example: 160662306a36Sopenharmony_ci 160762306a36Sopenharmony_ci ============================= ==== ==== 160862306a36Sopenharmony_ci RFC statistic low high 160962306a36Sopenharmony_ci ============================= ==== ==== 161062306a36Sopenharmony_ci etherStatsPkts64Octets 0 64 161162306a36Sopenharmony_ci etherStatsPkts512to1023Octets 512 1023 161262306a36Sopenharmony_ci ============================= ==== ==== 161362306a36Sopenharmony_ci 161462306a36Sopenharmony_ci``ETHTOOL_A_STATS_SRC`` is optional. Similar to ``PAUSE_GET``, it takes values 161562306a36Sopenharmony_cifrom ``enum ethtool_mac_stats_src``. If absent from the request, stats will be 161662306a36Sopenharmony_ciprovided with an ``ETHTOOL_A_STATS_SRC`` attribute in the response equal to 161762306a36Sopenharmony_ci``ETHTOOL_MAC_STATS_SRC_AGGREGATE``. 161862306a36Sopenharmony_ci 161962306a36Sopenharmony_ciPHC_VCLOCKS_GET 162062306a36Sopenharmony_ci=============== 162162306a36Sopenharmony_ci 162262306a36Sopenharmony_ciQuery device PHC virtual clocks information. 162362306a36Sopenharmony_ci 162462306a36Sopenharmony_ciRequest contents: 162562306a36Sopenharmony_ci 162662306a36Sopenharmony_ci ==================================== ====== ========================== 162762306a36Sopenharmony_ci ``ETHTOOL_A_PHC_VCLOCKS_HEADER`` nested request header 162862306a36Sopenharmony_ci ==================================== ====== ========================== 162962306a36Sopenharmony_ci 163062306a36Sopenharmony_ciKernel response contents: 163162306a36Sopenharmony_ci 163262306a36Sopenharmony_ci ==================================== ====== ========================== 163362306a36Sopenharmony_ci ``ETHTOOL_A_PHC_VCLOCKS_HEADER`` nested reply header 163462306a36Sopenharmony_ci ``ETHTOOL_A_PHC_VCLOCKS_NUM`` u32 PHC virtual clocks number 163562306a36Sopenharmony_ci ``ETHTOOL_A_PHC_VCLOCKS_INDEX`` s32 PHC index array 163662306a36Sopenharmony_ci ==================================== ====== ========================== 163762306a36Sopenharmony_ci 163862306a36Sopenharmony_ciMODULE_GET 163962306a36Sopenharmony_ci========== 164062306a36Sopenharmony_ci 164162306a36Sopenharmony_ciGets transceiver module parameters. 164262306a36Sopenharmony_ci 164362306a36Sopenharmony_ciRequest contents: 164462306a36Sopenharmony_ci 164562306a36Sopenharmony_ci ===================================== ====== ========================== 164662306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_HEADER`` nested request header 164762306a36Sopenharmony_ci ===================================== ====== ========================== 164862306a36Sopenharmony_ci 164962306a36Sopenharmony_ciKernel response contents: 165062306a36Sopenharmony_ci 165162306a36Sopenharmony_ci ====================================== ====== ========================== 165262306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_HEADER`` nested reply header 165362306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_POWER_MODE_POLICY`` u8 power mode policy 165462306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_POWER_MODE`` u8 operational power mode 165562306a36Sopenharmony_ci ====================================== ====== ========================== 165662306a36Sopenharmony_ci 165762306a36Sopenharmony_ciThe optional ``ETHTOOL_A_MODULE_POWER_MODE_POLICY`` attribute encodes the 165862306a36Sopenharmony_citransceiver module power mode policy enforced by the host. The default policy 165962306a36Sopenharmony_ciis driver-dependent, but "auto" is the recommended default and it should be 166062306a36Sopenharmony_ciimplemented by new drivers and drivers where conformance to a legacy behavior 166162306a36Sopenharmony_ciis not critical. 166262306a36Sopenharmony_ci 166362306a36Sopenharmony_ciThe optional ``ETHTHOOL_A_MODULE_POWER_MODE`` attribute encodes the operational 166462306a36Sopenharmony_cipower mode policy of the transceiver module. It is only reported when a module 166562306a36Sopenharmony_ciis plugged-in. Possible values are: 166662306a36Sopenharmony_ci 166762306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 166862306a36Sopenharmony_ci :identifiers: ethtool_module_power_mode 166962306a36Sopenharmony_ci 167062306a36Sopenharmony_ciMODULE_SET 167162306a36Sopenharmony_ci========== 167262306a36Sopenharmony_ci 167362306a36Sopenharmony_ciSets transceiver module parameters. 167462306a36Sopenharmony_ci 167562306a36Sopenharmony_ciRequest contents: 167662306a36Sopenharmony_ci 167762306a36Sopenharmony_ci ====================================== ====== ========================== 167862306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_HEADER`` nested request header 167962306a36Sopenharmony_ci ``ETHTOOL_A_MODULE_POWER_MODE_POLICY`` u8 power mode policy 168062306a36Sopenharmony_ci ====================================== ====== ========================== 168162306a36Sopenharmony_ci 168262306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_MODULE_POWER_MODE_POLICY`` attribute is used 168362306a36Sopenharmony_cito set the transceiver module power policy enforced by the host. Possible 168462306a36Sopenharmony_civalues are: 168562306a36Sopenharmony_ci 168662306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 168762306a36Sopenharmony_ci :identifiers: ethtool_module_power_mode_policy 168862306a36Sopenharmony_ci 168962306a36Sopenharmony_ciFor SFF-8636 modules, low power mode is forced by the host according to table 169062306a36Sopenharmony_ci6-10 in revision 2.10a of the specification. 169162306a36Sopenharmony_ci 169262306a36Sopenharmony_ciFor CMIS modules, low power mode is forced by the host according to table 6-12 169362306a36Sopenharmony_ciin revision 5.0 of the specification. 169462306a36Sopenharmony_ci 169562306a36Sopenharmony_ciPSE_GET 169662306a36Sopenharmony_ci======= 169762306a36Sopenharmony_ci 169862306a36Sopenharmony_ciGets PSE attributes. 169962306a36Sopenharmony_ci 170062306a36Sopenharmony_ciRequest contents: 170162306a36Sopenharmony_ci 170262306a36Sopenharmony_ci ===================================== ====== ========================== 170362306a36Sopenharmony_ci ``ETHTOOL_A_PSE_HEADER`` nested request header 170462306a36Sopenharmony_ci ===================================== ====== ========================== 170562306a36Sopenharmony_ci 170662306a36Sopenharmony_ciKernel response contents: 170762306a36Sopenharmony_ci 170862306a36Sopenharmony_ci ====================================== ====== ============================= 170962306a36Sopenharmony_ci ``ETHTOOL_A_PSE_HEADER`` nested reply header 171062306a36Sopenharmony_ci ``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` u32 Operational state of the PoDL 171162306a36Sopenharmony_ci PSE functions 171262306a36Sopenharmony_ci ``ETHTOOL_A_PODL_PSE_PW_D_STATUS`` u32 power detection status of the 171362306a36Sopenharmony_ci PoDL PSE. 171462306a36Sopenharmony_ci ====================================== ====== ============================= 171562306a36Sopenharmony_ci 171662306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` attribute identifies 171762306a36Sopenharmony_cithe operational state of the PoDL PSE functions. The operational state of the 171862306a36Sopenharmony_ciPSE function can be changed using the ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` 171962306a36Sopenharmony_ciaction. This option is corresponding to ``IEEE 802.3-2018`` 30.15.1.1.2 172062306a36Sopenharmony_ciaPoDLPSEAdminState. Possible values are: 172162306a36Sopenharmony_ci 172262306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 172362306a36Sopenharmony_ci :identifiers: ethtool_podl_pse_admin_state 172462306a36Sopenharmony_ci 172562306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PODL_PSE_PW_D_STATUS`` attribute identifies 172662306a36Sopenharmony_cithe power detection status of the PoDL PSE. The status depend on internal PSE 172762306a36Sopenharmony_cistate machine and automatic PD classification support. This option is 172862306a36Sopenharmony_cicorresponding to ``IEEE 802.3-2018`` 30.15.1.1.3 aPoDLPSEPowerDetectionStatus. 172962306a36Sopenharmony_ciPossible values are: 173062306a36Sopenharmony_ci 173162306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 173262306a36Sopenharmony_ci :identifiers: ethtool_podl_pse_pw_d_status 173362306a36Sopenharmony_ci 173462306a36Sopenharmony_ciPSE_SET 173562306a36Sopenharmony_ci======= 173662306a36Sopenharmony_ci 173762306a36Sopenharmony_ciSets PSE parameters. 173862306a36Sopenharmony_ci 173962306a36Sopenharmony_ciRequest contents: 174062306a36Sopenharmony_ci 174162306a36Sopenharmony_ci ====================================== ====== ============================= 174262306a36Sopenharmony_ci ``ETHTOOL_A_PSE_HEADER`` nested request header 174362306a36Sopenharmony_ci ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` u32 Control PoDL PSE Admin state 174462306a36Sopenharmony_ci ====================================== ====== ============================= 174562306a36Sopenharmony_ci 174662306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` attribute is used 174762306a36Sopenharmony_cito control PoDL PSE Admin functions. This option is implementing 174862306a36Sopenharmony_ci``IEEE 802.3-2018`` 30.15.1.2.1 acPoDLPSEAdminControl. See 174962306a36Sopenharmony_ci``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` for supported values. 175062306a36Sopenharmony_ci 175162306a36Sopenharmony_ciRSS_GET 175262306a36Sopenharmony_ci======= 175362306a36Sopenharmony_ci 175462306a36Sopenharmony_ciGet indirection table, hash key and hash function info associated with a 175562306a36Sopenharmony_ciRSS context of an interface similar to ``ETHTOOL_GRSSH`` ioctl request. 175662306a36Sopenharmony_ci 175762306a36Sopenharmony_ciRequest contents: 175862306a36Sopenharmony_ci 175962306a36Sopenharmony_ci===================================== ====== ========================== 176062306a36Sopenharmony_ci ``ETHTOOL_A_RSS_HEADER`` nested request header 176162306a36Sopenharmony_ci ``ETHTOOL_A_RSS_CONTEXT`` u32 context number 176262306a36Sopenharmony_ci===================================== ====== ========================== 176362306a36Sopenharmony_ci 176462306a36Sopenharmony_ciKernel response contents: 176562306a36Sopenharmony_ci 176662306a36Sopenharmony_ci===================================== ====== ========================== 176762306a36Sopenharmony_ci ``ETHTOOL_A_RSS_HEADER`` nested reply header 176862306a36Sopenharmony_ci ``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func 176962306a36Sopenharmony_ci ``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes 177062306a36Sopenharmony_ci ``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes 177162306a36Sopenharmony_ci===================================== ====== ========================== 177262306a36Sopenharmony_ci 177362306a36Sopenharmony_ciETHTOOL_A_RSS_HFUNC attribute is bitmap indicating the hash function 177462306a36Sopenharmony_cibeing used. Current supported options are toeplitz, xor or crc32. 177562306a36Sopenharmony_ciETHTOOL_A_RSS_INDIR attribute returns RSS indrection table where each byte 177662306a36Sopenharmony_ciindicates queue number. 177762306a36Sopenharmony_ci 177862306a36Sopenharmony_ciPLCA_GET_CFG 177962306a36Sopenharmony_ci============ 178062306a36Sopenharmony_ci 178162306a36Sopenharmony_ciGets the IEEE 802.3cg-2019 Clause 148 Physical Layer Collision Avoidance 178262306a36Sopenharmony_ci(PLCA) Reconciliation Sublayer (RS) attributes. 178362306a36Sopenharmony_ci 178462306a36Sopenharmony_ciRequest contents: 178562306a36Sopenharmony_ci 178662306a36Sopenharmony_ci ===================================== ====== ========================== 178762306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_HEADER`` nested request header 178862306a36Sopenharmony_ci ===================================== ====== ========================== 178962306a36Sopenharmony_ci 179062306a36Sopenharmony_ciKernel response contents: 179162306a36Sopenharmony_ci 179262306a36Sopenharmony_ci ====================================== ====== ============================= 179362306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_HEADER`` nested reply header 179462306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_VERSION`` u16 Supported PLCA management 179562306a36Sopenharmony_ci interface standard/version 179662306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_ENABLED`` u8 PLCA Admin State 179762306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_NODE_ID`` u32 PLCA unique local node ID 179862306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_NODE_CNT`` u32 Number of PLCA nodes on the 179962306a36Sopenharmony_ci network, including the 180062306a36Sopenharmony_ci coordinator 180162306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_TO_TMR`` u32 Transmit Opportunity Timer 180262306a36Sopenharmony_ci value in bit-times (BT) 180362306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_BURST_CNT`` u32 Number of additional packets 180462306a36Sopenharmony_ci the node is allowed to send 180562306a36Sopenharmony_ci within a single TO 180662306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_BURST_TMR`` u32 Time to wait for the MAC to 180762306a36Sopenharmony_ci transmit a new frame before 180862306a36Sopenharmony_ci terminating the burst 180962306a36Sopenharmony_ci ====================================== ====== ============================= 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_VERSION`` attribute indicates which 181262306a36Sopenharmony_cistandard and version the PLCA management interface complies to. When not set, 181362306a36Sopenharmony_cithe interface is vendor-specific and (possibly) supplied by the driver. 181462306a36Sopenharmony_ciThe OPEN Alliance SIG specifies a standard register map for 10BASE-T1S PHYs 181562306a36Sopenharmony_ciembedding the PLCA Reconcialiation Sublayer. See "10BASE-T1S PLCA Management 181662306a36Sopenharmony_ciRegisters" at https://www.opensig.org/about/specifications/. 181762306a36Sopenharmony_ci 181862306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_ENABLED`` attribute indicates the 181962306a36Sopenharmony_ciadministrative state of the PLCA RS. When not set, the node operates in "plain" 182062306a36Sopenharmony_ciCSMA/CD mode. This option is corresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.1 182162306a36Sopenharmony_ciaPLCAAdminState / 30.16.1.2.1 acPLCAAdminControl. 182262306a36Sopenharmony_ci 182362306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_NODE_ID`` attribute indicates the 182462306a36Sopenharmony_ciconfigured local node ID of the PHY. This ID determines which transmit 182562306a36Sopenharmony_ciopportunity (TO) is reserved for the node to transmit into. This option is 182662306a36Sopenharmony_cicorresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.4 aPLCALocalNodeID. The valid 182762306a36Sopenharmony_cirange for this attribute is [0 .. 255] where 255 means "not configured". 182862306a36Sopenharmony_ci 182962306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_NODE_CNT`` attribute indicates the 183062306a36Sopenharmony_ciconfigured maximum number of PLCA nodes on the mixing-segment. This number 183162306a36Sopenharmony_cidetermines the total number of transmit opportunities generated during a 183262306a36Sopenharmony_ciPLCA cycle. This attribute is relevant only for the PLCA coordinator, which is 183362306a36Sopenharmony_cithe node with aPLCALocalNodeID set to 0. Follower nodes ignore this setting. 183462306a36Sopenharmony_ciThis option is corresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.3 183562306a36Sopenharmony_ciaPLCANodeCount. The valid range for this attribute is [1 .. 255]. 183662306a36Sopenharmony_ci 183762306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_TO_TMR`` attribute indicates the 183862306a36Sopenharmony_ciconfigured value of the transmit opportunity timer in bit-times. This value 183962306a36Sopenharmony_cimust be set equal across all nodes sharing the medium for PLCA to work 184062306a36Sopenharmony_cicorrectly. This option is corresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.5 184162306a36Sopenharmony_ciaPLCATransmitOpportunityTimer. The valid range for this attribute is 184262306a36Sopenharmony_ci[0 .. 255]. 184362306a36Sopenharmony_ci 184462306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_BURST_CNT`` attribute indicates the 184562306a36Sopenharmony_ciconfigured number of extra packets that the node is allowed to send during a 184662306a36Sopenharmony_cisingle transmit opportunity. By default, this attribute is 0, meaning that 184762306a36Sopenharmony_cithe node can only send a single frame per TO. When greater than 0, the PLCA RS 184862306a36Sopenharmony_cikeeps the TO after any transmission, waiting for the MAC to send a new frame 184962306a36Sopenharmony_cifor up to aPLCABurstTimer BTs. This can only happen a number of times per PLCA 185062306a36Sopenharmony_cicycle up to the value of this parameter. After that, the burst is over and the 185162306a36Sopenharmony_cinormal counting of TOs resumes. This option is corresponding to 185262306a36Sopenharmony_ci``IEEE 802.3cg-2019`` 30.16.1.1.6 aPLCAMaxBurstCount. The valid range for this 185362306a36Sopenharmony_ciattribute is [0 .. 255]. 185462306a36Sopenharmony_ci 185562306a36Sopenharmony_ciWhen set, the optional ``ETHTOOL_A_PLCA_BURST_TMR`` attribute indicates how 185662306a36Sopenharmony_cimany bit-times the PLCA RS waits for the MAC to initiate a new transmission 185762306a36Sopenharmony_ciwhen aPLCAMaxBurstCount is greater than 0. If the MAC fails to send a new 185862306a36Sopenharmony_ciframe within this time, the burst ends and the counting of TOs resumes. 185962306a36Sopenharmony_ciOtherwise, the new frame is sent as part of the current burst. This option 186062306a36Sopenharmony_ciis corresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.7 aPLCABurstTimer. The 186162306a36Sopenharmony_civalid range for this attribute is [0 .. 255]. Although, the value should be 186262306a36Sopenharmony_ciset greater than the Inter-Frame-Gap (IFG) time of the MAC (plus some margin) 186362306a36Sopenharmony_cifor PLCA burst mode to work as intended. 186462306a36Sopenharmony_ci 186562306a36Sopenharmony_ciPLCA_SET_CFG 186662306a36Sopenharmony_ci============ 186762306a36Sopenharmony_ci 186862306a36Sopenharmony_ciSets PLCA RS parameters. 186962306a36Sopenharmony_ci 187062306a36Sopenharmony_ciRequest contents: 187162306a36Sopenharmony_ci 187262306a36Sopenharmony_ci ====================================== ====== ============================= 187362306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_HEADER`` nested request header 187462306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_ENABLED`` u8 PLCA Admin State 187562306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_NODE_ID`` u8 PLCA unique local node ID 187662306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_NODE_CNT`` u8 Number of PLCA nodes on the 187762306a36Sopenharmony_ci netkork, including the 187862306a36Sopenharmony_ci coordinator 187962306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_TO_TMR`` u8 Transmit Opportunity Timer 188062306a36Sopenharmony_ci value in bit-times (BT) 188162306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_BURST_CNT`` u8 Number of additional packets 188262306a36Sopenharmony_ci the node is allowed to send 188362306a36Sopenharmony_ci within a single TO 188462306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_BURST_TMR`` u8 Time to wait for the MAC to 188562306a36Sopenharmony_ci transmit a new frame before 188662306a36Sopenharmony_ci terminating the burst 188762306a36Sopenharmony_ci ====================================== ====== ============================= 188862306a36Sopenharmony_ci 188962306a36Sopenharmony_ciFor a description of each attribute, see ``PLCA_GET_CFG``. 189062306a36Sopenharmony_ci 189162306a36Sopenharmony_ciPLCA_GET_STATUS 189262306a36Sopenharmony_ci=============== 189362306a36Sopenharmony_ci 189462306a36Sopenharmony_ciGets PLCA RS status information. 189562306a36Sopenharmony_ci 189662306a36Sopenharmony_ciRequest contents: 189762306a36Sopenharmony_ci 189862306a36Sopenharmony_ci ===================================== ====== ========================== 189962306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_HEADER`` nested request header 190062306a36Sopenharmony_ci ===================================== ====== ========================== 190162306a36Sopenharmony_ci 190262306a36Sopenharmony_ciKernel response contents: 190362306a36Sopenharmony_ci 190462306a36Sopenharmony_ci ====================================== ====== ============================= 190562306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_HEADER`` nested reply header 190662306a36Sopenharmony_ci ``ETHTOOL_A_PLCA_STATUS`` u8 PLCA RS operational status 190762306a36Sopenharmony_ci ====================================== ====== ============================= 190862306a36Sopenharmony_ci 190962306a36Sopenharmony_ciWhen set, the ``ETHTOOL_A_PLCA_STATUS`` attribute indicates whether the node is 191062306a36Sopenharmony_cidetecting the presence of the BEACON on the network. This flag is 191162306a36Sopenharmony_cicorresponding to ``IEEE 802.3cg-2019`` 30.16.1.1.2 aPLCAStatus. 191262306a36Sopenharmony_ci 191362306a36Sopenharmony_ciMM_GET 191462306a36Sopenharmony_ci====== 191562306a36Sopenharmony_ci 191662306a36Sopenharmony_ciRetrieve 802.3 MAC Merge parameters. 191762306a36Sopenharmony_ci 191862306a36Sopenharmony_ciRequest contents: 191962306a36Sopenharmony_ci 192062306a36Sopenharmony_ci ==================================== ====== ========================== 192162306a36Sopenharmony_ci ``ETHTOOL_A_MM_HEADER`` nested request header 192262306a36Sopenharmony_ci ==================================== ====== ========================== 192362306a36Sopenharmony_ci 192462306a36Sopenharmony_ciKernel response contents: 192562306a36Sopenharmony_ci 192662306a36Sopenharmony_ci ================================= ====== =================================== 192762306a36Sopenharmony_ci ``ETHTOOL_A_MM_HEADER`` nested request header 192862306a36Sopenharmony_ci ``ETHTOOL_A_MM_PMAC_ENABLED`` bool set if RX of preemptible and SMD-V 192962306a36Sopenharmony_ci frames is enabled 193062306a36Sopenharmony_ci ``ETHTOOL_A_MM_TX_ENABLED`` bool set if TX of preemptible frames is 193162306a36Sopenharmony_ci administratively enabled (might be 193262306a36Sopenharmony_ci inactive if verification failed) 193362306a36Sopenharmony_ci ``ETHTOOL_A_MM_TX_ACTIVE`` bool set if TX of preemptible frames is 193462306a36Sopenharmony_ci operationally enabled 193562306a36Sopenharmony_ci ``ETHTOOL_A_MM_TX_MIN_FRAG_SIZE`` u32 minimum size of transmitted 193662306a36Sopenharmony_ci non-final fragments, in octets 193762306a36Sopenharmony_ci ``ETHTOOL_A_MM_RX_MIN_FRAG_SIZE`` u32 minimum size of received non-final 193862306a36Sopenharmony_ci fragments, in octets 193962306a36Sopenharmony_ci ``ETHTOOL_A_MM_VERIFY_ENABLED`` bool set if TX of SMD-V frames is 194062306a36Sopenharmony_ci administratively enabled 194162306a36Sopenharmony_ci ``ETHTOOL_A_MM_VERIFY_STATUS`` u8 state of the verification function 194262306a36Sopenharmony_ci ``ETHTOOL_A_MM_VERIFY_TIME`` u32 delay between verification attempts 194362306a36Sopenharmony_ci ``ETHTOOL_A_MM_MAX_VERIFY_TIME``` u32 maximum verification interval 194462306a36Sopenharmony_ci supported by device 194562306a36Sopenharmony_ci ``ETHTOOL_A_MM_STATS`` nested IEEE 802.3-2018 subclause 30.14.1 194662306a36Sopenharmony_ci oMACMergeEntity statistics counters 194762306a36Sopenharmony_ci ================================= ====== =================================== 194862306a36Sopenharmony_ci 194962306a36Sopenharmony_ciThe attributes are populated by the device driver through the following 195062306a36Sopenharmony_cistructure: 195162306a36Sopenharmony_ci 195262306a36Sopenharmony_ci.. kernel-doc:: include/linux/ethtool.h 195362306a36Sopenharmony_ci :identifiers: ethtool_mm_state 195462306a36Sopenharmony_ci 195562306a36Sopenharmony_ciThe ``ETHTOOL_A_MM_VERIFY_STATUS`` will report one of the values from 195662306a36Sopenharmony_ci 195762306a36Sopenharmony_ci.. kernel-doc:: include/uapi/linux/ethtool.h 195862306a36Sopenharmony_ci :identifiers: ethtool_mm_verify_status 195962306a36Sopenharmony_ci 196062306a36Sopenharmony_ciIf ``ETHTOOL_A_MM_VERIFY_ENABLED`` was passed as false in the ``MM_SET`` 196162306a36Sopenharmony_cicommand, ``ETHTOOL_A_MM_VERIFY_STATUS`` will report either 196262306a36Sopenharmony_ci``ETHTOOL_MM_VERIFY_STATUS_INITIAL`` or ``ETHTOOL_MM_VERIFY_STATUS_DISABLED``, 196362306a36Sopenharmony_ciotherwise it should report one of the other states. 196462306a36Sopenharmony_ci 196562306a36Sopenharmony_ciIt is recommended that drivers start with the pMAC disabled, and enable it upon 196662306a36Sopenharmony_ciuser space request. It is also recommended that user space does not depend upon 196762306a36Sopenharmony_cithe default values from ``ETHTOOL_MSG_MM_GET`` requests. 196862306a36Sopenharmony_ci 196962306a36Sopenharmony_ci``ETHTOOL_A_MM_STATS`` are reported if ``ETHTOOL_FLAG_STATS`` was set in 197062306a36Sopenharmony_ci``ETHTOOL_A_HEADER_FLAGS``. The attribute will be empty if driver did not 197162306a36Sopenharmony_cireport any statistics. Drivers fill in the statistics in the following 197262306a36Sopenharmony_cistructure: 197362306a36Sopenharmony_ci 197462306a36Sopenharmony_ci.. kernel-doc:: include/linux/ethtool.h 197562306a36Sopenharmony_ci :identifiers: ethtool_mm_stats 197662306a36Sopenharmony_ci 197762306a36Sopenharmony_ciMM_SET 197862306a36Sopenharmony_ci====== 197962306a36Sopenharmony_ci 198062306a36Sopenharmony_ciModifies the configuration of the 802.3 MAC Merge layer. 198162306a36Sopenharmony_ci 198262306a36Sopenharmony_ciRequest contents: 198362306a36Sopenharmony_ci 198462306a36Sopenharmony_ci ================================= ====== ========================== 198562306a36Sopenharmony_ci ``ETHTOOL_A_MM_VERIFY_TIME`` u32 see MM_GET description 198662306a36Sopenharmony_ci ``ETHTOOL_A_MM_VERIFY_ENABLED`` bool see MM_GET description 198762306a36Sopenharmony_ci ``ETHTOOL_A_MM_TX_ENABLED`` bool see MM_GET description 198862306a36Sopenharmony_ci ``ETHTOOL_A_MM_PMAC_ENABLED`` bool see MM_GET description 198962306a36Sopenharmony_ci ``ETHTOOL_A_MM_TX_MIN_FRAG_SIZE`` u32 see MM_GET description 199062306a36Sopenharmony_ci ================================= ====== ========================== 199162306a36Sopenharmony_ci 199262306a36Sopenharmony_ciThe attributes are propagated to the driver through the following structure: 199362306a36Sopenharmony_ci 199462306a36Sopenharmony_ci.. kernel-doc:: include/linux/ethtool.h 199562306a36Sopenharmony_ci :identifiers: ethtool_mm_cfg 199662306a36Sopenharmony_ci 199762306a36Sopenharmony_ciRequest translation 199862306a36Sopenharmony_ci=================== 199962306a36Sopenharmony_ci 200062306a36Sopenharmony_ciThe following table maps ioctl commands to netlink commands providing their 200162306a36Sopenharmony_cifunctionality. Entries with "n/a" in right column are commands which do not 200262306a36Sopenharmony_cihave their netlink replacement yet. Entries which "n/a" in the left column 200362306a36Sopenharmony_ciare netlink only. 200462306a36Sopenharmony_ci 200562306a36Sopenharmony_ci =================================== ===================================== 200662306a36Sopenharmony_ci ioctl command netlink command 200762306a36Sopenharmony_ci =================================== ===================================== 200862306a36Sopenharmony_ci ``ETHTOOL_GSET`` ``ETHTOOL_MSG_LINKINFO_GET`` 200962306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_GET`` 201062306a36Sopenharmony_ci ``ETHTOOL_SSET`` ``ETHTOOL_MSG_LINKINFO_SET`` 201162306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_SET`` 201262306a36Sopenharmony_ci ``ETHTOOL_GDRVINFO`` n/a 201362306a36Sopenharmony_ci ``ETHTOOL_GREGS`` n/a 201462306a36Sopenharmony_ci ``ETHTOOL_GWOL`` ``ETHTOOL_MSG_WOL_GET`` 201562306a36Sopenharmony_ci ``ETHTOOL_SWOL`` ``ETHTOOL_MSG_WOL_SET`` 201662306a36Sopenharmony_ci ``ETHTOOL_GMSGLVL`` ``ETHTOOL_MSG_DEBUG_GET`` 201762306a36Sopenharmony_ci ``ETHTOOL_SMSGLVL`` ``ETHTOOL_MSG_DEBUG_SET`` 201862306a36Sopenharmony_ci ``ETHTOOL_NWAY_RST`` n/a 201962306a36Sopenharmony_ci ``ETHTOOL_GLINK`` ``ETHTOOL_MSG_LINKSTATE_GET`` 202062306a36Sopenharmony_ci ``ETHTOOL_GEEPROM`` n/a 202162306a36Sopenharmony_ci ``ETHTOOL_SEEPROM`` n/a 202262306a36Sopenharmony_ci ``ETHTOOL_GCOALESCE`` ``ETHTOOL_MSG_COALESCE_GET`` 202362306a36Sopenharmony_ci ``ETHTOOL_SCOALESCE`` ``ETHTOOL_MSG_COALESCE_SET`` 202462306a36Sopenharmony_ci ``ETHTOOL_GRINGPARAM`` ``ETHTOOL_MSG_RINGS_GET`` 202562306a36Sopenharmony_ci ``ETHTOOL_SRINGPARAM`` ``ETHTOOL_MSG_RINGS_SET`` 202662306a36Sopenharmony_ci ``ETHTOOL_GPAUSEPARAM`` ``ETHTOOL_MSG_PAUSE_GET`` 202762306a36Sopenharmony_ci ``ETHTOOL_SPAUSEPARAM`` ``ETHTOOL_MSG_PAUSE_SET`` 202862306a36Sopenharmony_ci ``ETHTOOL_GRXCSUM`` ``ETHTOOL_MSG_FEATURES_GET`` 202962306a36Sopenharmony_ci ``ETHTOOL_SRXCSUM`` ``ETHTOOL_MSG_FEATURES_SET`` 203062306a36Sopenharmony_ci ``ETHTOOL_GTXCSUM`` ``ETHTOOL_MSG_FEATURES_GET`` 203162306a36Sopenharmony_ci ``ETHTOOL_STXCSUM`` ``ETHTOOL_MSG_FEATURES_SET`` 203262306a36Sopenharmony_ci ``ETHTOOL_GSG`` ``ETHTOOL_MSG_FEATURES_GET`` 203362306a36Sopenharmony_ci ``ETHTOOL_SSG`` ``ETHTOOL_MSG_FEATURES_SET`` 203462306a36Sopenharmony_ci ``ETHTOOL_TEST`` n/a 203562306a36Sopenharmony_ci ``ETHTOOL_GSTRINGS`` ``ETHTOOL_MSG_STRSET_GET`` 203662306a36Sopenharmony_ci ``ETHTOOL_PHYS_ID`` n/a 203762306a36Sopenharmony_ci ``ETHTOOL_GSTATS`` n/a 203862306a36Sopenharmony_ci ``ETHTOOL_GTSO`` ``ETHTOOL_MSG_FEATURES_GET`` 203962306a36Sopenharmony_ci ``ETHTOOL_STSO`` ``ETHTOOL_MSG_FEATURES_SET`` 204062306a36Sopenharmony_ci ``ETHTOOL_GPERMADDR`` rtnetlink ``RTM_GETLINK`` 204162306a36Sopenharmony_ci ``ETHTOOL_GUFO`` ``ETHTOOL_MSG_FEATURES_GET`` 204262306a36Sopenharmony_ci ``ETHTOOL_SUFO`` ``ETHTOOL_MSG_FEATURES_SET`` 204362306a36Sopenharmony_ci ``ETHTOOL_GGSO`` ``ETHTOOL_MSG_FEATURES_GET`` 204462306a36Sopenharmony_ci ``ETHTOOL_SGSO`` ``ETHTOOL_MSG_FEATURES_SET`` 204562306a36Sopenharmony_ci ``ETHTOOL_GFLAGS`` ``ETHTOOL_MSG_FEATURES_GET`` 204662306a36Sopenharmony_ci ``ETHTOOL_SFLAGS`` ``ETHTOOL_MSG_FEATURES_SET`` 204762306a36Sopenharmony_ci ``ETHTOOL_GPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_GET`` 204862306a36Sopenharmony_ci ``ETHTOOL_SPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_SET`` 204962306a36Sopenharmony_ci ``ETHTOOL_GRXFH`` n/a 205062306a36Sopenharmony_ci ``ETHTOOL_SRXFH`` n/a 205162306a36Sopenharmony_ci ``ETHTOOL_GGRO`` ``ETHTOOL_MSG_FEATURES_GET`` 205262306a36Sopenharmony_ci ``ETHTOOL_SGRO`` ``ETHTOOL_MSG_FEATURES_SET`` 205362306a36Sopenharmony_ci ``ETHTOOL_GRXRINGS`` n/a 205462306a36Sopenharmony_ci ``ETHTOOL_GRXCLSRLCNT`` n/a 205562306a36Sopenharmony_ci ``ETHTOOL_GRXCLSRULE`` n/a 205662306a36Sopenharmony_ci ``ETHTOOL_GRXCLSRLALL`` n/a 205762306a36Sopenharmony_ci ``ETHTOOL_SRXCLSRLDEL`` n/a 205862306a36Sopenharmony_ci ``ETHTOOL_SRXCLSRLINS`` n/a 205962306a36Sopenharmony_ci ``ETHTOOL_FLASHDEV`` n/a 206062306a36Sopenharmony_ci ``ETHTOOL_RESET`` n/a 206162306a36Sopenharmony_ci ``ETHTOOL_SRXNTUPLE`` n/a 206262306a36Sopenharmony_ci ``ETHTOOL_GRXNTUPLE`` n/a 206362306a36Sopenharmony_ci ``ETHTOOL_GSSET_INFO`` ``ETHTOOL_MSG_STRSET_GET`` 206462306a36Sopenharmony_ci ``ETHTOOL_GRXFHINDIR`` n/a 206562306a36Sopenharmony_ci ``ETHTOOL_SRXFHINDIR`` n/a 206662306a36Sopenharmony_ci ``ETHTOOL_GFEATURES`` ``ETHTOOL_MSG_FEATURES_GET`` 206762306a36Sopenharmony_ci ``ETHTOOL_SFEATURES`` ``ETHTOOL_MSG_FEATURES_SET`` 206862306a36Sopenharmony_ci ``ETHTOOL_GCHANNELS`` ``ETHTOOL_MSG_CHANNELS_GET`` 206962306a36Sopenharmony_ci ``ETHTOOL_SCHANNELS`` ``ETHTOOL_MSG_CHANNELS_SET`` 207062306a36Sopenharmony_ci ``ETHTOOL_SET_DUMP`` n/a 207162306a36Sopenharmony_ci ``ETHTOOL_GET_DUMP_FLAG`` n/a 207262306a36Sopenharmony_ci ``ETHTOOL_GET_DUMP_DATA`` n/a 207362306a36Sopenharmony_ci ``ETHTOOL_GET_TS_INFO`` ``ETHTOOL_MSG_TSINFO_GET`` 207462306a36Sopenharmony_ci ``ETHTOOL_GMODULEINFO`` ``ETHTOOL_MSG_MODULE_EEPROM_GET`` 207562306a36Sopenharmony_ci ``ETHTOOL_GMODULEEEPROM`` ``ETHTOOL_MSG_MODULE_EEPROM_GET`` 207662306a36Sopenharmony_ci ``ETHTOOL_GEEE`` ``ETHTOOL_MSG_EEE_GET`` 207762306a36Sopenharmony_ci ``ETHTOOL_SEEE`` ``ETHTOOL_MSG_EEE_SET`` 207862306a36Sopenharmony_ci ``ETHTOOL_GRSSH`` ``ETHTOOL_MSG_RSS_GET`` 207962306a36Sopenharmony_ci ``ETHTOOL_SRSSH`` n/a 208062306a36Sopenharmony_ci ``ETHTOOL_GTUNABLE`` n/a 208162306a36Sopenharmony_ci ``ETHTOOL_STUNABLE`` n/a 208262306a36Sopenharmony_ci ``ETHTOOL_GPHYSTATS`` n/a 208362306a36Sopenharmony_ci ``ETHTOOL_PERQUEUE`` n/a 208462306a36Sopenharmony_ci ``ETHTOOL_GLINKSETTINGS`` ``ETHTOOL_MSG_LINKINFO_GET`` 208562306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_GET`` 208662306a36Sopenharmony_ci ``ETHTOOL_SLINKSETTINGS`` ``ETHTOOL_MSG_LINKINFO_SET`` 208762306a36Sopenharmony_ci ``ETHTOOL_MSG_LINKMODES_SET`` 208862306a36Sopenharmony_ci ``ETHTOOL_PHY_GTUNABLE`` n/a 208962306a36Sopenharmony_ci ``ETHTOOL_PHY_STUNABLE`` n/a 209062306a36Sopenharmony_ci ``ETHTOOL_GFECPARAM`` ``ETHTOOL_MSG_FEC_GET`` 209162306a36Sopenharmony_ci ``ETHTOOL_SFECPARAM`` ``ETHTOOL_MSG_FEC_SET`` 209262306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_CABLE_TEST_ACT`` 209362306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_CABLE_TEST_TDR_ACT`` 209462306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_TUNNEL_INFO_GET`` 209562306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_PHC_VCLOCKS_GET`` 209662306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_MODULE_GET`` 209762306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_MODULE_SET`` 209862306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_PLCA_GET_CFG`` 209962306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_PLCA_SET_CFG`` 210062306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_PLCA_GET_STATUS`` 210162306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_MM_GET`` 210262306a36Sopenharmony_ci n/a ``ETHTOOL_MSG_MM_SET`` 210362306a36Sopenharmony_ci =================================== ===================================== 2104