linux-loongson/Documentation/netlink/specs/ethtool.yaml
Jakub Kicinski 0105101288 netlink: specs: ethtool: fix module EEPROM input/output arguments
Module (SFP) eeprom GET has a lot of input params, they are all
mistakenly listed as output in the spec. Looks like kernel doesn't
output them at all. Correct what are the inputs and what the outputs.

Reported-by: Duo Yi <duo@meta.com>
Fixes: a353318ebf ("tools: ynl: populate most of the ethtool spec")
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250730172137.1322351-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-07-31 10:57:02 -07:00

2733 lines
54 KiB
YAML

# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ethtool
protocol: genetlink-legacy
doc: Partial family for Ethtool Netlink.
uapi-header: linux/ethtool_netlink_generated.h
c-family-name: ethtool-genl-name
c-version-name: ethtool-genl-version
definitions:
-
name: udp-tunnel-type
enum-name:
type: enum
entries: [vxlan, geneve, vxlan-gpe]
enum-cnt-name: __ethtool-udp-tunnel-type-cnt
render-max: true
-
name: stringset
type: enum
entries: []
header: linux/ethtool.h # skip rendering, no actual definition
-
name: header-flags
type: flags
name-prefix: ethtool-flag-
doc: common ethtool header flags
entries:
-
name: compact-bitsets
doc: use compact bitsets in reply
-
name: omit-reply
doc: provide optional reply for SET or ACT requests
-
name: stats
doc: request statistics, if supported by the driver
-
name: module-fw-flash-status
type: enum
doc: plug-in module firmware flashing status
header: linux/ethtool.h
entries:
-
name: started
doc: The firmware flashing process has started.
-
name: in-progress
doc: The firmware flashing process is in progress.
-
name: completed
doc: The firmware flashing process was completed successfully.
-
name: error
doc: The firmware flashing process was stopped due to an error.
-
name: c33-pse-ext-state
doc: |
"groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4
Variables"
type: enum
name-prefix: ethtool-c33-pse-ext-state-
header: linux/ethtool.h
entries:
-
name: none
doc: none
-
name: error-condition
doc: Group of error_condition states
-
name: mr-mps-valid
doc: Group of mr_mps_valid states
-
name: mr-pse-enable
doc: Group of mr_pse_enable states
-
name: option-detect-ted
doc: Group of option_detect_ted states
-
name: option-vport-lim
doc: Group of option_vport_lim states
-
name: ovld-detected
doc: Group of ovld_detected states
-
name: power-not-available
doc: Group of power_not_available states
-
name: short-detected
doc: Group of short_detected states
-
name: phy-upstream-type
enum-name: phy-upstream
header: linux/ethtool.h
type: enum
name-prefix: phy-upstream
entries: [mac, phy]
-
name: tcp-data-split
type: enum
entries: [unknown, disabled, enabled]
-
name: hwtstamp-source
doc: Source of the hardware timestamp
enum-name: hwtstamp-source
name-prefix: hwtstamp-source-
type: enum
entries:
-
name: netdev
doc: |
Hardware timestamp comes from a MAC or a device
which has MAC and PHY integrated
value: 1
-
name: phylib
doc: |
Hardware timestamp comes from one PHY device
of the network topology
-
name: pse-event
doc: PSE event list for the PSE controller
type: flags
name-prefix: ethtool-
entries:
-
name: pse-event-over-current
doc: PSE output current is too high
-
name: pse-event-over-temp
doc: PSE in over temperature state
-
name: c33-pse-event-detection
doc: |
detection process occur on the PSE. IEEE 802.3-2022 33.2.5 and
145.2.6 PSE detection of PDs. IEEE 802.3-202 30.9.1.1.5
aPSEPowerDetectionStatus
-
name: c33-pse-event-classification
doc: |
classification process occur on the PSE. IEEE 802.3-2022 33.2.6
and 145.2.8 classification of PDs mutual identification.
IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
-
name: c33-pse-event-disconnection
doc: |
PD has been disconnected on the PSE. IEEE 802.3-2022 33.3.8
and 145.3.9 PD Maintain Power Signature. IEEE 802.3-2022
33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
aPSEMPSAbsentCounter.
-
name: pse-event-over-budget
doc: PSE turned off due to over budget situation
-
name: pse-event-sw-pw-control-error
doc: PSE faced an error managing the power control from software
-
name: input-xfrm
doc: RSS hash function transformations.
type: flags
enum-name:
name-prefix: rxh-xfrm-
header: linux/ethtool.h
entries:
-
name: sym-xor
doc: >-
XOR the corresponding source and destination fields of each specified
protocol. Both copies of the XOR'ed fields are fed into the RSS and
RXHASH calculation. Note that this XORing reduces the input set
entropy and could be exploited to reduce the RSS queue spread.
-
name: sym-or-xor
doc: >-
Similar to SYM_XOR, except that one copy of the XOR'ed fields is
replaced by an OR of the same fields.
-
name: rxfh-fields
name-prefix: rxh-
enum-name:
header: linux/ethtool.h
type: flags
entries:
-
name: l2da
value: 1
-
name: vlan
-
name: l3-proto
-
name: ip-src
-
name: ip-dst
-
name: l4-b-0-1
doc: src port in case of TCP/UDP/SCTP
-
name: l4-b-2-3
doc: dst port in case of TCP/UDP/SCTP
-
name: gtp-teid
-
name: discard
value: 31
attribute-sets:
-
name: header
attr-cnt-name: __ethtool-a-header-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: dev-index
type: u32
-
name: dev-name
type: string
-
name: flags
type: u32
enum: header-flags
-
name: phy-index
type: u32
-
name: bitset-bit
attr-cnt-name: __ethtool-a-bitset-bit-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: index
type: u32
-
name: name
type: string
-
name: value
type: flag
-
name: bitset-bits
attr-cnt-name: __ethtool-a-bitset-bits-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: bit
type: nest
multi-attr: true
nested-attributes: bitset-bit
-
name: bitset
attr-cnt-name: __ethtool-a-bitset-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: nomask
type: flag
-
name: size
type: u32
-
name: bits
type: nest
nested-attributes: bitset-bits
-
name: value
type: binary
-
name: mask
type: binary
-
name: string
attr-cnt-name: __ethtool-a-string-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: index
type: u32
-
name: value
type: string
-
name: strings
attr-cnt-name: __ethtool-a-strings-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: unspec
type: unused
value: 0
-
name: string
type: nest
multi-attr: true
nested-attributes: string
-
name: stringset
attr-cnt-name: __ethtool-a-stringset-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: id
type: u32
-
name: count
type: u32
-
name: strings
type: nest
multi-attr: true
nested-attributes: strings
-
name: stringsets
attr-cnt-name: __ethtool-a-stringsets-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: stringset
type: nest
multi-attr: true
nested-attributes: stringset
-
name: strset
attr-cnt-name: __ethtool-a-strset-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: stringsets
type: nest
nested-attributes: stringsets
-
name: counts-only
type: flag
-
name: privflags
attr-cnt-name: __ethtool-a-privflags-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: flags
type: nest
nested-attributes: bitset
-
name: rings
attr-cnt-name: __ethtool-a-rings-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: rx-max
type: u32
-
name: rx-mini-max
type: u32
-
name: rx-jumbo-max
type: u32
-
name: tx-max
type: u32
-
name: rx
type: u32
-
name: rx-mini
type: u32
-
name: rx-jumbo
type: u32
-
name: tx
type: u32
-
name: rx-buf-len
type: u32
-
name: tcp-data-split
type: u8
enum: tcp-data-split
-
name: cqe-size
type: u32
-
name: tx-push
type: u8
-
name: rx-push
type: u8
-
name: tx-push-buf-len
type: u32
-
name: tx-push-buf-len-max
type: u32
-
name: hds-thresh
type: u32
-
name: hds-thresh-max
type: u32
-
name: mm-stat
attr-cnt-name: __ethtool-a-mm-stat-cnt
doc: MAC Merge (802.3)
attributes:
-
name: unspec
type: unused
value: 0
-
name: pad
type: pad
-
name: reassembly-errors
doc: aMACMergeFrameAssErrorCount
type: u64
-
name: smd-errors
doc: aMACMergeFrameSmdErrorCount
type: u64
-
name: reassembly-ok
doc: aMACMergeFrameAssOkCount
type: u64
-
name: rx-frag-count
doc: aMACMergeFragCountRx
type: u64
-
name: tx-frag-count
doc: aMACMergeFragCountTx
type: u64
-
name: hold-count
doc: aMACMergeHoldCount
type: u64
-
name: mm
attr-cnt-name: __ethtool-a-mm-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: pmac-enabled
type: u8
-
name: tx-enabled
type: u8
-
name: tx-active
type: u8
-
name: tx-min-frag-size
type: u32
-
name: rx-min-frag-size
type: u32
-
name: verify-enabled
type: u8
-
name: verify-status
type: u8
-
name: verify-time
type: u32
-
name: max-verify-time
type: u32
-
name: stats
type: nest
nested-attributes: mm-stat
-
name: linkinfo
attr-cnt-name: __ethtool-a-linkinfo-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: port
type: u8
-
name: phyaddr
type: u8
-
name: tp-mdix
type: u8
-
name: tp-mdix-ctrl
type: u8
-
name: transceiver
type: u8
-
name: linkmodes
attr-cnt-name: __ethtool-a-linkmodes-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: autoneg
type: u8
-
name: ours
type: nest
nested-attributes: bitset
-
name: peer
type: nest
nested-attributes: bitset
-
name: speed
type: u32
-
name: duplex
type: u8
-
name: master-slave-cfg
type: u8
-
name: master-slave-state
type: u8
-
name: lanes
type: u32
-
name: rate-matching
type: u8
-
name: linkstate
attr-cnt-name: __ethtool-a-linkstate-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: link
type: u8
-
name: sqi
type: u32
-
name: sqi-max
type: u32
-
name: ext-state
type: u8
-
name: ext-substate
type: u8
-
name: ext-down-cnt
type: u32
-
name: debug
attr-cnt-name: __ethtool-a-debug-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: msgmask
type: nest
nested-attributes: bitset
-
name: wol
attr-cnt-name: __ethtool-a-wol-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: modes
type: nest
nested-attributes: bitset
-
name: sopass
type: binary
-
name: features
attr-cnt-name: __ethtool-a-features-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: hw
type: nest
nested-attributes: bitset
-
name: wanted
type: nest
nested-attributes: bitset
-
name: active
type: nest
nested-attributes: bitset
-
name: nochange
type: nest
nested-attributes: bitset
-
name: channels
attr-cnt-name: __ethtool-a-channels-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: rx-max
type: u32
-
name: tx-max
type: u32
-
name: other-max
type: u32
-
name: combined-max
type: u32
-
name: rx-count
type: u32
-
name: tx-count
type: u32
-
name: other-count
type: u32
-
name: combined-count
type: u32
-
name: irq-moderation
attr-cnt-name: __ethtool-a-irq-moderation-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: usec
type: u32
-
name: pkts
type: u32
-
name: comps
type: u32
-
name: profile
attr-cnt-name: __ethtool-a-profile-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: irq-moderation
type: nest
multi-attr: true
nested-attributes: irq-moderation
-
name: coalesce
attr-cnt-name: __ethtool-a-coalesce-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: rx-usecs
type: u32
-
name: rx-max-frames
type: u32
-
name: rx-usecs-irq
type: u32
-
name: rx-max-frames-irq
type: u32
-
name: tx-usecs
type: u32
-
name: tx-max-frames
type: u32
-
name: tx-usecs-irq
type: u32
-
name: tx-max-frames-irq
type: u32
-
name: stats-block-usecs
type: u32
-
name: use-adaptive-rx
type: u8
-
name: use-adaptive-tx
type: u8
-
name: pkt-rate-low
type: u32
-
name: rx-usecs-low
type: u32
-
name: rx-max-frames-low
type: u32
-
name: tx-usecs-low
type: u32
-
name: tx-max-frames-low
type: u32
-
name: pkt-rate-high
type: u32
-
name: rx-usecs-high
type: u32
-
name: rx-max-frames-high
type: u32
-
name: tx-usecs-high
type: u32
-
name: tx-max-frames-high
type: u32
-
name: rate-sample-interval
type: u32
-
name: use-cqe-mode-tx
type: u8
-
name: use-cqe-mode-rx
type: u8
-
name: tx-aggr-max-bytes
type: u32
-
name: tx-aggr-max-frames
type: u32
-
name: tx-aggr-time-usecs
type: u32
-
name: rx-profile
type: nest
nested-attributes: profile
-
name: tx-profile
type: nest
nested-attributes: profile
-
name: pause-stat
attr-cnt-name: __ethtool-a-pause-stat-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pad
type: pad
-
name: tx-frames
type: u64
-
name: rx-frames
type: u64
-
name: pause
attr-cnt-name: __ethtool-a-pause-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: autoneg
type: u8
-
name: rx
type: u8
-
name: tx
type: u8
-
name: stats
type: nest
nested-attributes: pause-stat
-
name: stats-src
type: u32
-
name: eee
attr-cnt-name: __ethtool-a-eee-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: modes-ours
type: nest
nested-attributes: bitset
-
name: modes-peer
type: nest
nested-attributes: bitset
-
name: active
type: u8
-
name: enabled
type: u8
-
name: tx-lpi-enabled
type: u8
-
name: tx-lpi-timer
type: u32
-
name: ts-stat
attr-cnt-name: __ethtool-a-ts-stat-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: tx-pkts
type: uint
-
name: tx-lost
type: uint
-
name: tx-err
type: uint
-
name: tx-onestep-pkts-unconfirmed
type: uint
-
name: ts-hwtstamp-provider
attr-cnt-name: __ethtool-a-ts-hwtstamp-provider-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: index
type: u32
-
name: qualifier
type: u32
-
name: tsinfo
attr-cnt-name: __ethtool-a-tsinfo-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: timestamping
type: nest
nested-attributes: bitset
-
name: tx-types
type: nest
nested-attributes: bitset
-
name: rx-filters
type: nest
nested-attributes: bitset
-
name: phc-index
type: u32
-
name: stats
type: nest
nested-attributes: ts-stat
-
name: hwtstamp-provider
type: nest
nested-attributes: ts-hwtstamp-provider
-
name: hwtstamp-source
type: u32
enum: hwtstamp-source
-
name: hwtstamp-phyindex
type: u32
-
name: cable-result
attr-cnt-name: __ethtool-a-cable-result-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pair
doc: ETHTOOL_A_CABLE_PAIR
type: u8
-
name: code
doc: ETHTOOL_A_CABLE_RESULT_CODE
type: u8
-
name: src
doc: ETHTOOL_A_CABLE_INF_SRC
type: u32
-
name: cable-fault-length
attr-cnt-name: __ethtool-a-cable-fault-length-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pair
type: u8
-
name: cm
type: u32
-
name: src
type: u32
-
name: cable-nest
attr-cnt-name: __ethtool-a-cable-nest-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: result
type: nest
nested-attributes: cable-result
-
name: fault-length
type: nest
nested-attributes: cable-fault-length
-
name: cable-test
attr-cnt-name: __ethtool-a-cable-test-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: cable-test-ntf
attr-cnt-name: __ethtool-a-cable-test-ntf-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: status
doc: _STARTED/_COMPLETE
type: u8
-
name: nest
type: nest
nested-attributes: cable-nest
-
name: cable-test-tdr-cfg
attr-cnt-name: __ethtool-a-cable-test-tdr-cfg-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: first
type: u32
-
name: last
type: u32
-
name: step
type: u32
-
name: pair
type: u8
-
name: cable-test-tdr-ntf
attr-cnt-name: __ethtool-a-cable-test-tdr-ntf-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: status
type: u8
-
name: nest
type: nest
nested-attributes: cable-nest
-
name: cable-test-tdr
attr-cnt-name: __ethtool-a-cable-test-tdr-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: cfg
type: nest
nested-attributes: cable-test-tdr-cfg
-
name: tunnel-udp-entry
attr-cnt-name: __ethtool-a-tunnel-udp-entry-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: port
type: u16
byte-order: big-endian
-
name: type
type: u32
enum: udp-tunnel-type
-
name: tunnel-udp-table
attr-cnt-name: __ethtool-a-tunnel-udp-table-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: size
type: u32
-
name: types
type: nest
nested-attributes: bitset
-
name: entry
type: nest
multi-attr: true
nested-attributes: tunnel-udp-entry
-
name: tunnel-udp
attr-cnt-name: __ethtool-a-tunnel-udp-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: table
type: nest
nested-attributes: tunnel-udp-table
-
name: tunnel-info
attr-cnt-name: __ethtool-a-tunnel-info-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: udp-ports
type: nest
nested-attributes: tunnel-udp
-
name: fec-stat
attr-cnt-name: __ethtool-a-fec-stat-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pad
type: pad
-
name: corrected
type: binary
sub-type: u64
-
name: uncorr
type: binary
sub-type: u64
-
name: corr-bits
type: binary
sub-type: u64
-
name: fec
attr-cnt-name: __ethtool-a-fec-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: modes
type: nest
nested-attributes: bitset
-
name: auto
type: u8
-
name: active
type: u32
-
name: stats
type: nest
nested-attributes: fec-stat
-
name: module-eeprom
attr-cnt-name: __ethtool-a-module-eeprom-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: offset
type: u32
-
name: length
type: u32
-
name: page
type: u8
-
name: bank
type: u8
-
name: i2c-address
type: u8
-
name: data
type: binary
-
name: stats-grp
attr-cnt-name: __ethtool-a-stats-grp-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pad
type: pad
-
name: id
type: u32
-
name: ss-id
type: u32
-
name: stat
type: u64
type-value: [id]
-
name: hist-rx
type: nest
nested-attributes: stats-grp-hist
-
name: hist-tx
type: nest
nested-attributes: stats-grp-hist
-
name: hist-bkt-low
type: u32
-
name: hist-bkt-hi
type: u32
-
name: hist-val
type: u64
-
name: stats-grp-hist
subset-of: stats-grp
attributes:
-
name: hist-bkt-low
-
name: hist-bkt-hi
-
name: hist-val
-
name: stats
attr-cnt-name: __ethtool-a-stats-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: pad
type: pad
-
name: header
type: nest
nested-attributes: header
-
name: groups
type: nest
nested-attributes: bitset
-
name: grp
type: nest
nested-attributes: stats-grp
-
name: src
type: u32
-
name: phc-vclocks
attr-cnt-name: __ethtool-a-phc-vclocks-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: num
type: u32
-
name: index
type: binary
sub-type: s32
-
name: module
attr-cnt-name: __ethtool-a-module-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: power-mode-policy
type: u8
-
name: power-mode
type: u8
-
name: c33-pse-pw-limit
attr-cnt-name: __ethtool-a-c33-pse-pw-limit-cnt
attr-max-name: __ethtool-a-c33-pse-pw-limit-max
attributes:
-
name: unspec
type: unused
value: 0
-
name: min
type: u32
-
name: max
type: u32
-
name: pse
attr-cnt-name: __ethtool-a-pse-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: podl-pse-admin-state
type: u32
name-prefix: ethtool-a-
-
name: podl-pse-admin-control
type: u32
name-prefix: ethtool-a-
-
name: podl-pse-pw-d-status
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-admin-state
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-admin-control
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-pw-d-status
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-pw-class
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-actual-pw
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-ext-state
type: u32
name-prefix: ethtool-a-
enum: c33-pse-ext-state
-
name: c33-pse-ext-substate
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-avail-pw-limit
type: u32
name-prefix: ethtool-a-
-
name: c33-pse-pw-limit-ranges
name-prefix: ethtool-a-
type: nest
multi-attr: true
nested-attributes: c33-pse-pw-limit
-
name: pse-pw-d-id
type: u32
name-prefix: ethtool-a-
-
name: pse-prio-max
type: u32
name-prefix: ethtool-a-
-
name: pse-prio
type: u32
name-prefix: ethtool-a-
-
name: flow
attr-cnt-name: --ethtool-a-flow-cnt
doc: |
Flow types, corresponding to those defined in the old
ethtool header for RXFH and RXNFC as ${PROTO}_FLOW.
The values are not matching the old ones to avoid carrying
into Netlink the IP_USER_FLOW vs IPV4_FLOW vs IPV4_USER_FLOW confusion.
attributes:
-
name: ether
type: uint
enum: rxfh-fields
-
name: ip4
type: uint
enum: rxfh-fields
-
name: ip6
type: uint
enum: rxfh-fields
-
name: tcp4
type: uint
enum: rxfh-fields
-
name: tcp6
type: uint
enum: rxfh-fields
-
name: udp4
type: uint
enum: rxfh-fields
-
name: udp6
type: uint
enum: rxfh-fields
-
name: sctp4
type: uint
enum: rxfh-fields
-
name: sctp6
type: uint
enum: rxfh-fields
-
name: ah4
type: uint
enum: rxfh-fields
-
name: ah6
type: uint
enum: rxfh-fields
-
name: esp4
type: uint
enum: rxfh-fields
-
name: esp6
type: uint
enum: rxfh-fields
-
name: ah-esp4
type: uint
enum: rxfh-fields
-
name: ah-esp6
type: uint
enum: rxfh-fields
-
name: gtpu4
type: uint
enum: rxfh-fields
-
name: gtpu6
type: uint
enum: rxfh-fields
-
name: gtpc4
type: uint
enum: rxfh-fields
-
name: gtpc6
type: uint
enum: rxfh-fields
-
name: gtpc-teid4
type: uint
enum: rxfh-fields
-
name: gtpc-teid6
type: uint
enum: rxfh-fields
-
name: gtpu-eh4
type: uint
enum: rxfh-fields
-
name: gtpu-eh6
type: uint
enum: rxfh-fields
-
name: gtpu-ul4
type: uint
enum: rxfh-fields
-
name: gtpu-ul6
type: uint
enum: rxfh-fields
-
name: gtpu-dl4
type: uint
enum: rxfh-fields
-
name: gtpu-dl6
type: uint
enum: rxfh-fields
-
name: rss
attr-cnt-name: __ethtool-a-rss-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: context
type: u32
-
name: hfunc
type: u32
-
name: indir
type: binary
sub-type: u32
-
name: hkey
type: binary
-
name: input-xfrm
type: u32
enum: input-xfrm
-
name: start-context
type: u32
-
name: flow-hash
type: nest
nested-attributes: flow
-
name: plca
attr-cnt-name: __ethtool-a-plca-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: version
type: u16
-
name: enabled
type: u8
-
name: status
type: u8
-
name: node-cnt
type: u32
-
name: node-id
type: u32
-
name: to-tmr
type: u32
-
name: burst-cnt
type: u32
-
name: burst-tmr
type: u32
-
name: module-fw-flash
attr-cnt-name: __ethtool-a-module-fw-flash-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: file-name
type: string
-
name: password
type: u32
-
name: status
type: u32
enum: module-fw-flash-status
-
name: status-msg
type: string
-
name: done
type: uint
-
name: total
type: uint
-
name: phy
attr-cnt-name: __ethtool-a-phy-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: index
type: u32
-
name: drvname
type: string
-
name: name
type: string
-
name: upstream-type
type: u32
enum: phy-upstream-type
-
name: upstream-index
type: u32
-
name: upstream-sfp-name
type: string
-
name: downstream-sfp-name
type: string
-
name: tsconfig
attr-cnt-name: __ethtool-a-tsconfig-cnt
attributes:
-
name: unspec
type: unused
value: 0
-
name: header
type: nest
nested-attributes: header
-
name: hwtstamp-provider
type: nest
nested-attributes: ts-hwtstamp-provider
-
name: tx-types
type: nest
nested-attributes: bitset
-
name: rx-filters
type: nest
nested-attributes: bitset
-
name: hwtstamp-flags
type: nest
nested-attributes: bitset
-
name: pse-ntf
attr-cnt-name: --ethtool-a-pse-ntf-cnt
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: events
type: uint
enum: pse-event
doc: List of events reported by the PSE controller
operations:
enum-model: directional
name-prefix: ethtool-msg-
list:
-
name: strset-get
doc: Get string set from the kernel.
attribute-set: strset
do: &strset-get-op
request:
attributes:
- header
- stringsets
- counts-only
reply:
attributes:
- header
- stringsets
dump: *strset-get-op
-
name: linkinfo-get
doc: Get link info.
attribute-set: linkinfo
do: &linkinfo-get-op
request:
attributes:
- header
reply:
attributes: &linkinfo
- header
- port
- phyaddr
- tp-mdix
- tp-mdix-ctrl
- transceiver
dump: *linkinfo-get-op
-
name: linkinfo-set
doc: Set link info.
attribute-set: linkinfo
do:
request:
attributes: *linkinfo
-
name: linkinfo-ntf
doc: Notification for change in link info.
notify: linkinfo-get
-
name: linkmodes-get
doc: Get link modes.
attribute-set: linkmodes
do: &linkmodes-get-op
request:
attributes:
- header
reply:
attributes: &linkmodes
- header
- autoneg
- ours
- peer
- speed
- duplex
- master-slave-cfg
- master-slave-state
- lanes
- rate-matching
dump: *linkmodes-get-op
-
name: linkmodes-set
doc: Set link modes.
attribute-set: linkmodes
do:
request:
attributes: *linkmodes
-
name: linkmodes-ntf
doc: Notification for change in link modes.
notify: linkmodes-get
-
name: linkstate-get
doc: Get link state.
attribute-set: linkstate
do: &linkstate-get-op
request:
attributes:
- header
reply:
attributes:
- header
- link
- sqi
- sqi-max
- ext-state
- ext-substate
- ext-down-cnt
dump: *linkstate-get-op
-
name: debug-get
doc: Get debug message mask.
attribute-set: debug
do: &debug-get-op
request:
attributes:
- header
reply:
attributes: &debug
- header
- msgmask
dump: *debug-get-op
-
name: debug-set
doc: Set debug message mask.
attribute-set: debug
do:
request:
attributes: *debug
-
name: debug-ntf
doc: Notification for change in debug message mask.
notify: debug-get
-
name: wol-get
doc: Get WOL params.
attribute-set: wol
do: &wol-get-op
request:
attributes:
- header
reply:
attributes: &wol
- header
- modes
- sopass
dump: *wol-get-op
-
name: wol-set
doc: Set WOL params.
attribute-set: wol
do:
request:
attributes: *wol
-
name: wol-ntf
doc: Notification for change in WOL params.
notify: wol-get
-
name: features-get
doc: Get features.
attribute-set: features
do: &feature-get-op
request:
attributes:
- header
reply:
attributes: &feature
- header
# User-changeable features.
- hw
# User-requested features.
- wanted
# Currently active features.
- active
# Unchangeable features.
- nochange
dump: *feature-get-op
-
name: features-set
doc: Set features.
attribute-set: features
do: &feature-set-op
request:
attributes: *feature
reply:
attributes: *feature
-
name: features-ntf
doc: Notification for change in features.
notify: features-get
-
name: privflags-get
doc: Get device private flags.
attribute-set: privflags
do: &privflag-get-op
request:
attributes:
- header
reply:
attributes: &privflag
- header
- flags
dump: *privflag-get-op
-
name: privflags-set
doc: Set device private flags.
attribute-set: privflags
do:
request:
attributes: *privflag
-
name: privflags-ntf
doc: Notification for change in device private flags.
notify: privflags-get
-
name: rings-get
doc: Get ring params.
attribute-set: rings
do: &ring-get-op
request:
attributes:
- header
reply:
attributes: &ring
- 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
- hds-thresh
- hds-thresh-max
dump: *ring-get-op
-
name: rings-set
doc: Set ring params.
attribute-set: rings
do:
request:
attributes: *ring
-
name: rings-ntf
doc: Notification for change in ring params.
notify: rings-get
-
name: channels-get
doc: Get channel params.
attribute-set: channels
do: &channel-get-op
request:
attributes:
- header
reply:
attributes: &channel
- header
- rx-max
- tx-max
- other-max
- combined-max
- rx-count
- tx-count
- other-count
- combined-count
dump: *channel-get-op
-
name: channels-set
doc: Set channel params.
attribute-set: channels
do:
request:
attributes: *channel
-
name: channels-ntf
doc: Notification for change in channel params.
notify: channels-get
-
name: coalesce-get
doc: Get coalesce params.
attribute-set: coalesce
do: &coalesce-get-op
request:
attributes:
- header
reply:
attributes: &coalesce
- 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
- rx-profile
- tx-profile
dump: *coalesce-get-op
-
name: coalesce-set
doc: Set coalesce params.
attribute-set: coalesce
do:
request:
attributes: *coalesce
-
name: coalesce-ntf
doc: Notification for change in coalesce params.
notify: coalesce-get
-
name: pause-get
doc: Get pause params.
attribute-set: pause
do: &pause-get-op
request:
attributes:
- header
reply:
attributes: &pause
- header
- autoneg
- rx
- tx
- stats
- stats-src
dump: *pause-get-op
-
name: pause-set
doc: Set pause params.
attribute-set: pause
do:
request:
attributes: *pause
-
name: pause-ntf
doc: Notification for change in pause params.
notify: pause-get
-
name: eee-get
doc: Get eee params.
attribute-set: eee
do: &eee-get-op
request:
attributes:
- header
reply:
attributes: &eee
- header
- modes-ours
- modes-peer
- active
- enabled
- tx-lpi-enabled
- tx-lpi-timer
dump: *eee-get-op
-
name: eee-set
doc: Set eee params.
attribute-set: eee
do:
request:
attributes: *eee
-
name: eee-ntf
doc: Notification for change in eee params.
notify: eee-get
-
name: tsinfo-get
doc: Get tsinfo params.
attribute-set: tsinfo
do: &tsinfo-get-op
request:
attributes:
- header
- hwtstamp-provider
reply:
attributes:
- header
- timestamping
- tx-types
- rx-filters
- phc-index
- stats
- hwtstamp-provider
- hwtstamp-source
- hwtstamp-phyindex
dump: *tsinfo-get-op
-
name: cable-test-act
doc: Cable test.
attribute-set: cable-test
do:
request:
attributes:
- header
-
name: cable-test-ntf
doc: Cable test notification.
attribute-set: cable-test-ntf
event:
attributes:
- header
- status
-
name: cable-test-tdr-act
doc: Cable test TDR.
attribute-set: cable-test-tdr
do:
request:
attributes:
- header
-
name: cable-test-tdr-ntf
doc: Cable test TDR notification.
attribute-set: cable-test-tdr-ntf
event:
attributes:
- header
- status
- nest
-
name: tunnel-info-get
doc: Get tsinfo params.
attribute-set: tunnel-info
do: &tunnel-info-get-op
request:
attributes:
- header
reply:
attributes:
- header
- udp-ports
dump: *tunnel-info-get-op
-
name: fec-get
doc: Get FEC params.
attribute-set: fec
do: &fec-get-op
request:
attributes:
- header
reply:
attributes: &fec
- header
- modes
- auto
- active
- stats
dump: *fec-get-op
-
name: fec-set
doc: Set FEC params.
attribute-set: fec
do:
request:
attributes: *fec
-
name: fec-ntf
doc: Notification for change in FEC params.
notify: fec-get
-
name: module-eeprom-get
doc: Get module EEPROM params.
attribute-set: module-eeprom
do: &module-eeprom-get-op
request:
attributes:
- header
- offset
- length
- page
- bank
- i2c-address
reply:
attributes:
- header
- data
dump: *module-eeprom-get-op
-
name: stats-get
doc: Get statistics.
attribute-set: stats
do: &stats-get-op
request:
attributes:
- header
- groups
reply:
attributes:
- header
- groups
- grp
- src
dump: *stats-get-op
-
name: phc-vclocks-get
doc: Get PHC VCLOCKs.
attribute-set: phc-vclocks
do: &phc-vclocks-get-op
request:
attributes:
- header
reply:
attributes:
- header
- num
dump: *phc-vclocks-get-op
-
name: module-get
doc: Get module params.
attribute-set: module
do: &module-get-op
request:
attributes:
- header
reply:
attributes: &module
- header
- power-mode-policy
- power-mode
dump: *module-get-op
-
name: module-set
doc: Set module params.
attribute-set: module
do:
request:
attributes: *module
-
name: module-ntf
doc: Notification for change in module params.
notify: module-get
-
name: pse-get
doc: Get Power Sourcing Equipment params.
attribute-set: pse
do: &pse-get-op
request:
attributes:
- header
reply:
attributes:
- header
- podl-pse-admin-state
- podl-pse-admin-control
- podl-pse-pw-d-status
- c33-pse-admin-state
- c33-pse-admin-control
- c33-pse-pw-d-status
- c33-pse-pw-class
- c33-pse-actual-pw
- c33-pse-ext-state
- c33-pse-ext-substate
- c33-pse-avail-pw-limit
- c33-pse-pw-limit-ranges
- pse-pw-d-id
- pse-prio-max
- pse-prio
dump: *pse-get-op
-
name: pse-set
doc: Set Power Sourcing Equipment params.
attribute-set: pse
do:
request:
attributes:
- header
- podl-pse-admin-control
- c33-pse-admin-control
- c33-pse-avail-pw-limit
- pse-prio
-
name: rss-get
doc: Get RSS params.
attribute-set: rss
do:
request:
attributes:
- header
- context
reply: &rss-reply
attributes:
- header
- context
- hfunc
- indir
- hkey
- input-xfrm
- flow-hash
dump:
request:
attributes:
- header
- start-context
reply: *rss-reply
-
name: plca-get-cfg
doc: Get PLCA params.
attribute-set: plca
do: &plca-get-op
request:
attributes:
- header
reply:
attributes: &plca
- header
- version
- enabled
- status
- node-cnt
- node-id
- to-tmr
- burst-cnt
- burst-tmr
dump: *plca-get-op
-
name: plca-set-cfg
doc: Set PLCA params.
attribute-set: plca
do:
request:
attributes: *plca
-
name: plca-get-status
doc: Get PLCA status params.
attribute-set: plca
do: &plca-get-status-op
request:
attributes:
- header
reply:
attributes: *plca
dump: *plca-get-status-op
-
name: plca-ntf
doc: Notification for change in PLCA params.
notify: plca-get-cfg
-
name: mm-get
doc: Get MAC Merge configuration and state
attribute-set: mm
do: &mm-get-op
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: *mm-get-op
-
name: mm-set
doc: Set MAC Merge configuration
attribute-set: mm
do:
request:
attributes:
- header
- verify-enabled
- verify-time
- tx-enabled
- pmac-enabled
- tx-min-frag-size
-
name: mm-ntf
doc: Notification for change in MAC Merge configuration.
notify: mm-get
-
name: module-fw-flash-act
doc: Flash transceiver module firmware.
attribute-set: module-fw-flash
do:
request:
attributes:
- header
- file-name
- password
-
name: module-fw-flash-ntf
doc: Notification for firmware flashing progress and status.
attribute-set: module-fw-flash
event:
attributes:
- header
- status
- status-msg
- done
- total
-
name: phy-get
doc: Get PHY devices attached to an interface
attribute-set: phy
do: &phy-get-op
request:
attributes:
- header
reply:
attributes:
- header
- index
- drvname
- name
- upstream-type
- upstream-index
- upstream-sfp-name
- downstream-sfp-name
dump: *phy-get-op
-
name: phy-ntf
doc: Notification for change in PHY devices.
notify: phy-get
-
name: tsconfig-get
doc: Get hwtstamp config.
attribute-set: tsconfig
do: &tsconfig-get-op
request:
attributes:
- header
reply:
attributes: &tsconfig
- header
- hwtstamp-provider
- tx-types
- rx-filters
- hwtstamp-flags
dump: *tsconfig-get-op
-
name: tsconfig-set
doc: Set hwtstamp config.
attribute-set: tsconfig
do:
request:
attributes: *tsconfig
reply:
attributes: *tsconfig
-
name: pse-ntf
doc: Notification for PSE events.
attribute-set: pse-ntf
event:
attributes:
- header
- events
-
name: rss-set
doc: Set RSS params.
attribute-set: rss
do:
request:
attributes:
- header
- context
- hfunc
- indir
- hkey
- input-xfrm
- flow-hash
-
name: rss-ntf
doc: |
Notification for change in RSS configuration.
For additional contexts only modifications use this notification,
creation and deletion have dedicated messages.
notify: rss-get
-
name: rss-create-act
doc: Create an RSS context.
attribute-set: rss
do:
request: &rss-create-attrs
attributes:
- header
- context
- hfunc
- indir
- hkey
- input-xfrm
reply: *rss-create-attrs
-
name: rss-create-ntf
doc: |
Notification for creation of an additional RSS context.
notify: rss-create-act
-
name: rss-delete-act
doc: Delete an RSS context.
attribute-set: rss
do:
request:
attributes:
- header
- context
-
name: rss-delete-ntf
doc: |
Notification for deletion of an additional RSS context.
attribute-set: rss
event:
attributes:
- header
- context
mcast-groups:
list:
-
name: monitor
c-define-name: ethtool-mcgrp-monitor-name