.. SPDX-License-Identifier: GPL-2.0
.. NOTE: This document was auto-generated.


========================================
Family ``ethtool`` netlink specification
========================================


.. contents::


-------
Summary
-------


Partial family for Ethtool Netlink.

----------
Operations
----------



strset-get
==========
Get string set from the kernel.

:attribute-set: strset
:do:
    **request**
        :attributes: [``header``, ``stringsets``, ``counts-only``]

    **reply**
        :attributes: [``header``, ``stringsets``]

:dump:
    **request**
        :attributes: [``header``, ``stringsets``, ``counts-only``]

    **reply**
        :attributes: [``header``, ``stringsets``]




linkinfo-get
============
Get link info.

:attribute-set: linkinfo
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``port``, ``phyaddr``, ``tp-mdix``, ``tp-mdix-ctrl``, ``transceiver``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``port``, ``phyaddr``, ``tp-mdix``, ``tp-mdix-ctrl``, ``transceiver``]




linkinfo-set
============
Set link info.

:attribute-set: linkinfo
:do:
    **request**
        :attributes: [``header``, ``port``, ``phyaddr``, ``tp-mdix``, ``tp-mdix-ctrl``, ``transceiver``]




linkinfo-ntf
============
Notification for change in link info.

:notify: linkinfo-get



linkmodes-get
=============
Get link modes.

:attribute-set: linkmodes
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``autoneg``, ``ours``, ``peer``, ``speed``, ``duplex``, ``master-slave-cfg``, ``master-slave-state``, ``lanes``, ``rate-matching``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``autoneg``, ``ours``, ``peer``, ``speed``, ``duplex``, ``master-slave-cfg``, ``master-slave-state``, ``lanes``, ``rate-matching``]




linkmodes-set
=============
Set link modes.

:attribute-set: linkmodes
:do:
    **request**
        :attributes: [``header``, ``autoneg``, ``ours``, ``peer``, ``speed``, ``duplex``, ``master-slave-cfg``, ``master-slave-state``, ``lanes``, ``rate-matching``]




linkmodes-ntf
=============
Notification for change in link modes.

:notify: linkmodes-get



linkstate-get
=============
Get link state.

:attribute-set: linkstate
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``link``, ``sqi``, ``sqi-max``, ``ext-state``, ``ext-substate``, ``ext-down-cnt``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``link``, ``sqi``, ``sqi-max``, ``ext-state``, ``ext-substate``, ``ext-down-cnt``]




debug-get
=========
Get debug message mask.

:attribute-set: debug
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``msgmask``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``msgmask``]




debug-set
=========
Set debug message mask.

:attribute-set: debug
:do:
    **request**
        :attributes: [``header``, ``msgmask``]




debug-ntf
=========
Notification for change in debug message mask.

:notify: debug-get



wol-get
=======
Get WOL params.

:attribute-set: wol
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes``, ``sopass``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes``, ``sopass``]




wol-set
=======
Set WOL params.

:attribute-set: wol
:do:
    **request**
        :attributes: [``header``, ``modes``, ``sopass``]




wol-ntf
=======
Notification for change in WOL params.

:notify: wol-get



features-get
============
Get features.

:attribute-set: features
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``hw``, ``wanted``, ``active``, ``nochange``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``hw``, ``wanted``, ``active``, ``nochange``]




features-set
============
Set features.

:attribute-set: features
:do:
    **request**
        :attributes: [``header``, ``hw``, ``wanted``, ``active``, ``nochange``]

    **reply**
        :attributes: [``header``, ``hw``, ``wanted``, ``active``, ``nochange``]




features-ntf
============
Notification for change in features.

:notify: features-get



privflags-get
=============
Get device private flags.

:attribute-set: privflags
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``flags``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``flags``]




privflags-set
=============
Set device private flags.

:attribute-set: privflags
:do:
    **request**
        :attributes: [``header``, ``flags``]




privflags-ntf
=============
Notification for change in device private flags.

:notify: privflags-get



rings-get
=========
Get ring params.

:attribute-set: rings
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-max``, ``rx-mini-max``, ``rx-jumbo-max``, ``tx-max``, ``rx``, ``rx-mini``, ``rx-jumbo``, ``tx``, ``rx-buf-len``, ``tcp-data-split``, ``cqe-size``, ``tx-push``, ``rx-push``, ``tx-push-buf-len``, ``tx-push-buf-len-max``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-max``, ``rx-mini-max``, ``rx-jumbo-max``, ``tx-max``, ``rx``, ``rx-mini``, ``rx-jumbo``, ``tx``, ``rx-buf-len``, ``tcp-data-split``, ``cqe-size``, ``tx-push``, ``rx-push``, ``tx-push-buf-len``, ``tx-push-buf-len-max``]




rings-set
=========
Set ring params.

:attribute-set: rings
:do:
    **request**
        :attributes: [``header``, ``rx-max``, ``rx-mini-max``, ``rx-jumbo-max``, ``tx-max``, ``rx``, ``rx-mini``, ``rx-jumbo``, ``tx``, ``rx-buf-len``, ``tcp-data-split``, ``cqe-size``, ``tx-push``, ``rx-push``, ``tx-push-buf-len``, ``tx-push-buf-len-max``]




rings-ntf
=========
Notification for change in ring params.

:notify: rings-get



channels-get
============
Get channel params.

:attribute-set: channels
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-max``, ``tx-max``, ``other-max``, ``combined-max``, ``rx-count``, ``tx-count``, ``other-count``, ``combined-count``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-max``, ``tx-max``, ``other-max``, ``combined-max``, ``rx-count``, ``tx-count``, ``other-count``, ``combined-count``]




channels-set
============
Set channel params.

:attribute-set: channels
:do:
    **request**
        :attributes: [``header``, ``rx-max``, ``tx-max``, ``other-max``, ``combined-max``, ``rx-count``, ``tx-count``, ``other-count``, ``combined-count``]




channels-ntf
============
Notification for change in channel params.

:notify: channels-get



coalesce-get
============
Get coalesce params.

:attribute-set: coalesce
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-usecs``, ``rx-max-frames``, ``rx-usecs-irq``, ``rx-max-frames-irq``, ``tx-usecs``, ``tx-max-frames``, ``tx-usecs-irq``, ``tx-max-frames-irq``, ``stats-block-usecs``, ``use-adaptive-rx``, ``use-adaptive-tx``, ``pkt-rate-low``, ``rx-usecs-low``, ``rx-max-frames-low``, ``tx-usecs-low``, ``tx-max-frames-low``, ``pkt-rate-high``, ``rx-usecs-high``, ``rx-max-frames-high``, ``tx-usecs-high``, ``tx-max-frames-high``, ``rate-sample-interval``, ``use-cqe-mode-tx``, ``use-cqe-mode-rx``, ``tx-aggr-max-bytes``, ``tx-aggr-max-frames``, ``tx-aggr-time-usecs``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``rx-usecs``, ``rx-max-frames``, ``rx-usecs-irq``, ``rx-max-frames-irq``, ``tx-usecs``, ``tx-max-frames``, ``tx-usecs-irq``, ``tx-max-frames-irq``, ``stats-block-usecs``, ``use-adaptive-rx``, ``use-adaptive-tx``, ``pkt-rate-low``, ``rx-usecs-low``, ``rx-max-frames-low``, ``tx-usecs-low``, ``tx-max-frames-low``, ``pkt-rate-high``, ``rx-usecs-high``, ``rx-max-frames-high``, ``tx-usecs-high``, ``tx-max-frames-high``, ``rate-sample-interval``, ``use-cqe-mode-tx``, ``use-cqe-mode-rx``, ``tx-aggr-max-bytes``, ``tx-aggr-max-frames``, ``tx-aggr-time-usecs``]




coalesce-set
============
Set coalesce params.

:attribute-set: coalesce
:do:
    **request**
        :attributes: [``header``, ``rx-usecs``, ``rx-max-frames``, ``rx-usecs-irq``, ``rx-max-frames-irq``, ``tx-usecs``, ``tx-max-frames``, ``tx-usecs-irq``, ``tx-max-frames-irq``, ``stats-block-usecs``, ``use-adaptive-rx``, ``use-adaptive-tx``, ``pkt-rate-low``, ``rx-usecs-low``, ``rx-max-frames-low``, ``tx-usecs-low``, ``tx-max-frames-low``, ``pkt-rate-high``, ``rx-usecs-high``, ``rx-max-frames-high``, ``tx-usecs-high``, ``tx-max-frames-high``, ``rate-sample-interval``, ``use-cqe-mode-tx``, ``use-cqe-mode-rx``, ``tx-aggr-max-bytes``, ``tx-aggr-max-frames``, ``tx-aggr-time-usecs``]




coalesce-ntf
============
Notification for change in coalesce params.

:notify: coalesce-get



pause-get
=========
Get pause params.

:attribute-set: pause
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``autoneg``, ``rx``, ``tx``, ``stats``, ``stats-src``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``autoneg``, ``rx``, ``tx``, ``stats``, ``stats-src``]




pause-set
=========
Set pause params.

:attribute-set: pause
:do:
    **request**
        :attributes: [``header``, ``autoneg``, ``rx``, ``tx``, ``stats``, ``stats-src``]




pause-ntf
=========
Notification for change in pause params.

:notify: pause-get



eee-get
=======
Get eee params.

:attribute-set: eee
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes-ours``, ``modes-peer``, ``active``, ``enabled``, ``tx-lpi-enabled``, ``tx-lpi-timer``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes-ours``, ``modes-peer``, ``active``, ``enabled``, ``tx-lpi-enabled``, ``tx-lpi-timer``]




eee-set
=======
Set eee params.

:attribute-set: eee
:do:
    **request**
        :attributes: [``header``, ``modes-ours``, ``modes-peer``, ``active``, ``enabled``, ``tx-lpi-enabled``, ``tx-lpi-timer``]




eee-ntf
=======
Notification for change in eee params.

:notify: eee-get



tsinfo-get
==========
Get tsinfo params.

:attribute-set: tsinfo
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``timestamping``, ``tx-types``, ``rx-filters``, ``phc-index``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``timestamping``, ``tx-types``, ``rx-filters``, ``phc-index``]




cable-test-act
==============
Cable test.

:attribute-set: cable-test
:do:
    **request**
        :attributes: [``header``]




cable-test-ntf
==============
Cable test notification.

:attribute-set: cable-test-ntf
:event: {'attributes': ['header', 'status']}



cable-test-tdr-act
==================
Cable test TDR.

:attribute-set: cable-test-tdr
:do:
    **request**
        :attributes: [``header``]




cable-test-tdr-ntf
==================
Cable test TDR notification.

:attribute-set: cable-test-tdr-ntf
:event: {'attributes': ['header', 'status', 'nest']}



tunnel-info-get
===============
Get tsinfo params.

:attribute-set: tunnel-info
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``udp-ports``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``udp-ports``]




fec-get
=======
Get FEC params.

:attribute-set: fec
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes``, ``auto``, ``active``, ``stats``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``modes``, ``auto``, ``active``, ``stats``]




fec-set
=======
Set FEC params.

:attribute-set: fec
:do:
    **request**
        :attributes: [``header``, ``modes``, ``auto``, ``active``, ``stats``]




fec-ntf
=======
Notification for change in FEC params.

:notify: fec-get



module-eeprom-get
=================
Get module EEPROM params.

:attribute-set: module-eeprom
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``offset``, ``length``, ``page``, ``bank``, ``i2c-address``, ``data``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``offset``, ``length``, ``page``, ``bank``, ``i2c-address``, ``data``]




stats-get
=========
Get statistics.

:attribute-set: stats
:do:
    **request**
        :attributes: [``header``, ``groups``]

    **reply**
        :attributes: [``header``, ``groups``, ``grp``, ``src``]

:dump:
    **request**
        :attributes: [``header``, ``groups``]

    **reply**
        :attributes: [``header``, ``groups``, ``grp``, ``src``]




phc-vclocks-get
===============
Get PHC VCLOCKs.

:attribute-set: phc-vclocks
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``num``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``num``]




module-get
==========
Get module params.

:attribute-set: module
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``power-mode-policy``, ``power-mode``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``power-mode-policy``, ``power-mode``]




module-set
==========
Set module params.

:attribute-set: module
:do:
    **request**
        :attributes: [``header``, ``power-mode-policy``, ``power-mode``]




module-ntf
==========
Notification for change in module params.

:notify: module-get



pse-get
=======
Get Power Sourcing Equipment params.

:attribute-set: pse
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``admin-state``, ``admin-control``, ``pw-d-status``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``admin-state``, ``admin-control``, ``pw-d-status``]




pse-set
=======
Set Power Sourcing Equipment params.

:attribute-set: pse
:do:
    **request**
        :attributes: [``header``, ``admin-state``, ``admin-control``, ``pw-d-status``]




rss-get
=======
Get RSS params.

:attribute-set: rss
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``context``, ``hfunc``, ``indir``, ``hkey``, ``input_xfrm``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``context``, ``hfunc``, ``indir``, ``hkey``, ``input_xfrm``]




plca-get-cfg
============
Get PLCA params.

:attribute-set: plca
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``version``, ``enabled``, ``status``, ``node-cnt``, ``node-id``, ``to-tmr``, ``burst-cnt``, ``burst-tmr``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``version``, ``enabled``, ``status``, ``node-cnt``, ``node-id``, ``to-tmr``, ``burst-cnt``, ``burst-tmr``]




plca-set-cfg
============
Set PLCA params.

:attribute-set: plca
:do:
    **request**
        :attributes: [``header``, ``version``, ``enabled``, ``status``, ``node-cnt``, ``node-id``, ``to-tmr``, ``burst-cnt``, ``burst-tmr``]




plca-get-status
===============
Get PLCA status params.

:attribute-set: plca
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``version``, ``enabled``, ``status``, ``node-cnt``, ``node-id``, ``to-tmr``, ``burst-cnt``, ``burst-tmr``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``version``, ``enabled``, ``status``, ``node-cnt``, ``node-id``, ``to-tmr``, ``burst-cnt``, ``burst-tmr``]




plca-ntf
========
Notification for change in PLCA params.

:notify: plca-get-cfg



mm-get
======
Get MAC Merge configuration and state

:attribute-set: mm
:do:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``pmac-enabled``, ``tx-enabled``, ``tx-active``, ``tx-min-frag-size``, ``rx-min-frag-size``, ``verify-enabled``, ``verify-time``, ``max-verify-time``, ``stats``]

:dump:
    **request**
        :attributes: [``header``]

    **reply**
        :attributes: [``header``, ``pmac-enabled``, ``tx-enabled``, ``tx-active``, ``tx-min-frag-size``, ``rx-min-frag-size``, ``verify-enabled``, ``verify-time``, ``max-verify-time``, ``stats``]




mm-set
======
Set MAC Merge configuration

:attribute-set: mm
:do:
    **request**
        :attributes: [``header``, ``verify-enabled``, ``verify-time``, ``tx-enabled``, ``pmac-enabled``, ``tx-min-frag-size``]




mm-ntf
======
Notification for change in MAC Merge configuration.

:notify: mm-get



-----------
Definitions
-----------



udp-tunnel-type
===============
:enum-name: None
:type: enum


:entries:
    - ``vxlan``
    - ``geneve``
    - ``vxlan-gpe``



stringset
=========
:type: enum


:entries:



--------------
Attribute sets
--------------



header
======
dev-index (``u32``)
~~~~~~~~~~~~~~~~~~~


dev-name (``string``)
~~~~~~~~~~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~



bitset-bit
==========
index (``u32``)
~~~~~~~~~~~~~~~


name (``string``)
~~~~~~~~~~~~~~~~~


value (``flag``)
~~~~~~~~~~~~~~~~



bitset-bits
===========
bit (``nest``)
~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: bitset-bit



bitset
======
nomask (``flag``)
~~~~~~~~~~~~~~~~~


size (``u32``)
~~~~~~~~~~~~~~


bits (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: bitset-bits



string
======
index (``u32``)
~~~~~~~~~~~~~~~


value (``string``)
~~~~~~~~~~~~~~~~~~



strings
=======
string (``nest``)
~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: string



stringset
=========
id (``u32``)
~~~~~~~~~~~~


count (``u32``)
~~~~~~~~~~~~~~~


strings (``nest``)
~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: strings



stringsets
==========
stringset (``nest``)
~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: stringset



strset
======
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


stringsets (``nest``)
~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: stringsets


counts-only (``flag``)
~~~~~~~~~~~~~~~~~~~~~~



privflags
=========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


flags (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: bitset



rings
=====
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


rx-max (``u32``)
~~~~~~~~~~~~~~~~


rx-mini-max (``u32``)
~~~~~~~~~~~~~~~~~~~~~


rx-jumbo-max (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tx-max (``u32``)
~~~~~~~~~~~~~~~~


rx (``u32``)
~~~~~~~~~~~~


rx-mini (``u32``)
~~~~~~~~~~~~~~~~~


rx-jumbo (``u32``)
~~~~~~~~~~~~~~~~~~


tx (``u32``)
~~~~~~~~~~~~


rx-buf-len (``u32``)
~~~~~~~~~~~~~~~~~~~~


tcp-data-split (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


cqe-size (``u32``)
~~~~~~~~~~~~~~~~~~


tx-push (``u8``)
~~~~~~~~~~~~~~~~


rx-push (``u8``)
~~~~~~~~~~~~~~~~


tx-push-buf-len (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


tx-push-buf-len-max (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



mm-stat
=======
pad (``pad``)
~~~~~~~~~~~~~


reassembly-errors (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


smd-errors (``u64``)
~~~~~~~~~~~~~~~~~~~~


reassembly-ok (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~


rx-frag-count (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~


tx-frag-count (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~


hold-count (``u64``)
~~~~~~~~~~~~~~~~~~~~



mm
==
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


pmac-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~


tx-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~


tx-active (``u8``)
~~~~~~~~~~~~~~~~~~


tx-min-frag-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


rx-min-frag-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


verify-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


verify-status (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


verify-time (``u32``)
~~~~~~~~~~~~~~~~~~~~~


max-verify-time (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


stats (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: mm-stat



linkinfo
========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


port (``u8``)
~~~~~~~~~~~~~


phyaddr (``u8``)
~~~~~~~~~~~~~~~~


tp-mdix (``u8``)
~~~~~~~~~~~~~~~~


tp-mdix-ctrl (``u8``)
~~~~~~~~~~~~~~~~~~~~~


transceiver (``u8``)
~~~~~~~~~~~~~~~~~~~~



linkmodes
=========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


autoneg (``u8``)
~~~~~~~~~~~~~~~~


ours (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: bitset


peer (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: bitset


speed (``u32``)
~~~~~~~~~~~~~~~


duplex (``u8``)
~~~~~~~~~~~~~~~


master-slave-cfg (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


master-slave-state (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


lanes (``u32``)
~~~~~~~~~~~~~~~


rate-matching (``u8``)
~~~~~~~~~~~~~~~~~~~~~~



linkstate
=========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


link (``u8``)
~~~~~~~~~~~~~


sqi (``u32``)
~~~~~~~~~~~~~


sqi-max (``u32``)
~~~~~~~~~~~~~~~~~


ext-state (``u8``)
~~~~~~~~~~~~~~~~~~


ext-substate (``u8``)
~~~~~~~~~~~~~~~~~~~~~


ext-down-cnt (``u32``)
~~~~~~~~~~~~~~~~~~~~~~



debug
=====
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


msgmask (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset



wol
===
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


modes (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: bitset


sopass (``binary``)
~~~~~~~~~~~~~~~~~~~



features
========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


hw (``nest``)
~~~~~~~~~~~~~
:nested-attributes: bitset


wanted (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


active (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


nochange (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset



channels
========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


rx-max (``u32``)
~~~~~~~~~~~~~~~~


tx-max (``u32``)
~~~~~~~~~~~~~~~~


other-max (``u32``)
~~~~~~~~~~~~~~~~~~~


combined-max (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


rx-count (``u32``)
~~~~~~~~~~~~~~~~~~


tx-count (``u32``)
~~~~~~~~~~~~~~~~~~


other-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~


combined-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~



coalesce
========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


rx-usecs (``u32``)
~~~~~~~~~~~~~~~~~~


rx-max-frames (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


rx-usecs-irq (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


rx-max-frames-irq (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


tx-usecs (``u32``)
~~~~~~~~~~~~~~~~~~


tx-max-frames (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


tx-usecs-irq (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tx-max-frames-irq (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


stats-block-usecs (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


use-adaptive-rx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


use-adaptive-tx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


pkt-rate-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


rx-usecs-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


rx-max-frames-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


tx-usecs-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tx-max-frames-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


pkt-rate-high (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


rx-usecs-high (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


rx-max-frames-high (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


tx-usecs-high (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


tx-max-frames-high (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


rate-sample-interval (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


use-cqe-mode-tx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


use-cqe-mode-rx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


tx-aggr-max-bytes (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


tx-aggr-max-frames (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


tx-aggr-time-usecs (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~



pause-stat
==========
pad (``pad``)
~~~~~~~~~~~~~


tx-frames (``u64``)
~~~~~~~~~~~~~~~~~~~


rx-frames (``u64``)
~~~~~~~~~~~~~~~~~~~



pause
=====
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


autoneg (``u8``)
~~~~~~~~~~~~~~~~


rx (``u8``)
~~~~~~~~~~~


tx (``u8``)
~~~~~~~~~~~


stats (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: pause-stat


stats-src (``u32``)
~~~~~~~~~~~~~~~~~~~



eee
===
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


modes-ours (``nest``)
~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


modes-peer (``nest``)
~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


active (``u8``)
~~~~~~~~~~~~~~~


enabled (``u8``)
~~~~~~~~~~~~~~~~


tx-lpi-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


tx-lpi-timer (``u32``)
~~~~~~~~~~~~~~~~~~~~~~



tsinfo
======
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


timestamping (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


tx-types (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


rx-filters (``nest``)
~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


phc-index (``u32``)
~~~~~~~~~~~~~~~~~~~



cable-result
============
pair (``u8``)
~~~~~~~~~~~~~


code (``u8``)
~~~~~~~~~~~~~



cable-fault-length
==================
pair (``u8``)
~~~~~~~~~~~~~


cm (``u32``)
~~~~~~~~~~~~



cable-nest
==========
result (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: cable-result


fault-length (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: cable-fault-length



cable-test
==========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header



cable-test-ntf
==============
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


status (``u8``)
~~~~~~~~~~~~~~~


nest (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: cable-nest



cable-test-tdr-cfg
==================
first (``u32``)
~~~~~~~~~~~~~~~


last (``u32``)
~~~~~~~~~~~~~~


step (``u32``)
~~~~~~~~~~~~~~


pair (``u8``)
~~~~~~~~~~~~~



cable-test-tdr-ntf
==================
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


status (``u8``)
~~~~~~~~~~~~~~~


nest (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: cable-nest



cable-test-tdr
==============
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


cfg (``nest``)
~~~~~~~~~~~~~~
:nested-attributes: cable-test-tdr-cfg



tunnel-udp-entry
================
port (``u16``)
~~~~~~~~~~~~~~
:byte-order: big-endian


type (``u32``)
~~~~~~~~~~~~~~
:enum: udp-tunnel-type



tunnel-udp-table
================
size (``u32``)
~~~~~~~~~~~~~~


types (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: bitset


entry (``nest``)
~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: tunnel-udp-entry



tunnel-udp
==========
table (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: tunnel-udp-table



tunnel-info
===========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


udp-ports (``nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: tunnel-udp



fec-stat
========
pad (``pad``)
~~~~~~~~~~~~~


corrected (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:sub-type: u64


uncorr (``binary``)
~~~~~~~~~~~~~~~~~~~
:sub-type: u64


corr-bits (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:sub-type: u64



fec
===
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


modes (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: bitset


auto (``u8``)
~~~~~~~~~~~~~


active (``u32``)
~~~~~~~~~~~~~~~~


stats (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: fec-stat



module-eeprom
=============
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


offset (``u32``)
~~~~~~~~~~~~~~~~


length (``u32``)
~~~~~~~~~~~~~~~~


page (``u8``)
~~~~~~~~~~~~~


bank (``u8``)
~~~~~~~~~~~~~


i2c-address (``u8``)
~~~~~~~~~~~~~~~~~~~~


data (``binary``)
~~~~~~~~~~~~~~~~~



stats-grp
=========
pad (``pad``)
~~~~~~~~~~~~~


id (``u32``)
~~~~~~~~~~~~


ss-id (``u32``)
~~~~~~~~~~~~~~~


stat (``u64``)
~~~~~~~~~~~~~~
:type-value: ['id']


hist-rx (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: stats-grp-hist


hist-tx (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: stats-grp-hist


hist-bkt-low (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


hist-bkt-hi (``u32``)
~~~~~~~~~~~~~~~~~~~~~


hist-val (``u64``)
~~~~~~~~~~~~~~~~~~



stats-grp-hist
==============
hist-bkt-low
~~~~~~~~~~~~


hist-bkt-hi
~~~~~~~~~~~


hist-val
~~~~~~~~



stats
=====
pad (``pad``)
~~~~~~~~~~~~~


header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


groups (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: bitset


grp (``nest``)
~~~~~~~~~~~~~~
:nested-attributes: stats-grp


src (``u32``)
~~~~~~~~~~~~~



phc-vclocks
===========
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


num (``u32``)
~~~~~~~~~~~~~


index (``binary``)
~~~~~~~~~~~~~~~~~~
:sub-type: s32



module
======
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


power-mode-policy (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


power-mode (``u8``)
~~~~~~~~~~~~~~~~~~~



pse
===
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


admin-state (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:name-prefix: ethtool-a-podl-pse-


admin-control (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~
:name-prefix: ethtool-a-podl-pse-


pw-d-status (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:name-prefix: ethtool-a-podl-pse-



rss
===
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


context (``u32``)
~~~~~~~~~~~~~~~~~


hfunc (``u32``)
~~~~~~~~~~~~~~~


indir (``binary``)
~~~~~~~~~~~~~~~~~~


hkey (``binary``)
~~~~~~~~~~~~~~~~~


input_xfrm (``u32``)
~~~~~~~~~~~~~~~~~~~~



plca
====
header (``nest``)
~~~~~~~~~~~~~~~~~
:nested-attributes: header


version (``u16``)
~~~~~~~~~~~~~~~~~


enabled (``u8``)
~~~~~~~~~~~~~~~~


status (``u8``)
~~~~~~~~~~~~~~~


node-cnt (``u32``)
~~~~~~~~~~~~~~~~~~


node-id (``u32``)
~~~~~~~~~~~~~~~~~


to-tmr (``u32``)
~~~~~~~~~~~~~~~~


burst-cnt (``u32``)
~~~~~~~~~~~~~~~~~~~


burst-tmr (``u32``)
~~~~~~~~~~~~~~~~~~~

