Jakub Kicinski fe1eb24bd5 Revert "Introduce PHY listing and link_topology tracking"
This reverts commit 32bb4515e34469975abc936deb0a116c4a445817.
This reverts commit d078d480639a4f3b5fc2d56247afa38e0956483a.
This reverts commit fcc4b105caa4b844bf043375bf799c20a9c99db1.
This reverts commit 345237dbc1bdbb274c9fb9ec38976261ff4a40b8.
This reverts commit 7db69ec9cfb8b4ab50420262631fb2d1908b25bf.
This reverts commit 95132a018f00f5dad38bdcfd4180d1af955d46f6.
This reverts commit 63d5eaf35ac36cad00cfb3809d794ef0078c822b.
This reverts commit c29451aefcb42359905d18678de38e52eccb3bb5.
This reverts commit 2ab0edb505faa9ac90dee1732571390f074e8113.
This reverts commit dedd702a35793ab462fce4c737eeba0badf9718e.
This reverts commit 034fcc210349b873ece7356905be5c6ca11eef2a.
This reverts commit 9c5625f559ad6fe9f6f733c11475bf470e637d34.
This reverts commit 02018c544ef113e980a2349eba89003d6f399d22.

Looks like we need more time for reviews, and incremental
changes will be hard to make sense of. So revert.

Link: https://lore.kernel.org/all/ZZP6FV5sXEf+xd58@shell.armlinux.org.uk/
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-01-04 16:05:47 -08:00

1696 lines
31 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.
definitions:
-
name: udp-tunnel-type
enum-name:
type: enum
entries: [ vxlan, geneve, vxlan-gpe ]
-
name: stringset
type: enum
entries: []
attribute-sets:
-
name: header
attributes:
-
name: dev-index
type: u32
-
name: dev-name
type: string
-
name: flags
type: u32
-
name: bitset-bit
attributes:
-
name: index
type: u32
-
name: name
type: string
-
name: value
type: flag
-
name: bitset-bits
attributes:
-
name: bit
type: nest
multi-attr: true
nested-attributes: bitset-bit
-
name: bitset
attributes:
-
name: nomask
type: flag
-
name: size
type: u32
-
name: bits
type: nest
nested-attributes: bitset-bits
-
name: string
attributes:
-
name: index
type: u32
-
name: value
type: string
-
name: strings
attributes:
-
name: string
type: nest
multi-attr: true
nested-attributes: string
-
name: stringset
attributes:
-
name: id
type: u32
-
name: count
type: u32
-
name: strings
type: nest
multi-attr: true
nested-attributes: strings
-
name: stringsets
attributes:
-
name: stringset
type: nest
multi-attr: true
nested-attributes: stringset
-
name: strset
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: stringsets
type: nest
nested-attributes: stringsets
-
name: counts-only
type: flag
-
name: privflags
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: flags
type: nest
nested-attributes: bitset
-
name: rings
attributes:
-
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
-
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: mm-stat
attributes:
-
name: pad
type: pad
-
name: reassembly-errors
type: u64
-
name: smd-errors
type: u64
-
name: reassembly-ok
type: u64
-
name: rx-frag-count
type: u64
-
name: tx-frag-count
type: u64
-
name: hold-count
type: u64
-
name: mm
attributes:
-
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
attributes:
-
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
attributes:
-
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
attributes:
-
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
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: msgmask
type: nest
nested-attributes: bitset
-
name: wol
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: modes
type: nest
nested-attributes: bitset
-
name: sopass
type: binary
-
name: features
attributes:
-
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
attributes:
-
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: coalesce
attributes:
-
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: pause-stat
attributes:
-
name: pad
type: pad
-
name: tx-frames
type: u64
-
name: rx-frames
type: u64
-
name: pause
attributes:
-
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
attributes:
-
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: tsinfo
attributes:
-
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: cable-result
attributes:
-
name: pair
type: u8
-
name: code
type: u8
-
name: cable-fault-length
attributes:
-
name: pair
type: u8
-
name: cm
type: u32
-
name: cable-nest
attributes:
-
name: result
type: nest
nested-attributes: cable-result
-
name: fault-length
type: nest
nested-attributes: cable-fault-length
-
name: cable-test
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: cable-test-ntf
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: status
type: u8
-
name: nest
type: nest
nested-attributes: cable-nest
-
name: cable-test-tdr-cfg
attributes:
-
name: first
type: u32
-
name: last
type: u32
-
name: step
type: u32
-
name: pair
type: u8
-
name: cable-test-tdr-ntf
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: status
type: u8
-
name: nest
type: nest
nested-attributes: cable-nest
-
name: cable-test-tdr
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: cfg
type: nest
nested-attributes: cable-test-tdr-cfg
-
name: tunnel-udp-entry
attributes:
-
name: port
type: u16
byte-order: big-endian
-
name: type
type: u32
enum: udp-tunnel-type
-
name: tunnel-udp-table
attributes:
-
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
attributes:
-
name: table
type: nest
nested-attributes: tunnel-udp-table
-
name: tunnel-info
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: udp-ports
type: nest
nested-attributes: tunnel-udp
-
name: fec-stat
attributes:
-
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
attributes:
-
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
attributes:
-
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
attributes:
-
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
attributes:
-
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
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: num
type: u32
-
name: index
type: binary
sub-type: s32
-
name: module
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: power-mode-policy
type: u8
-
name: power-mode
type: u8
-
name: pse
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: admin-state
type: u32
name-prefix: ethtool-a-podl-pse-
-
name: admin-control
type: u32
name-prefix: ethtool-a-podl-pse-
-
name: pw-d-status
type: u32
name-prefix: ethtool-a-podl-pse-
-
name: rss
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: context
type: u32
-
name: hfunc
type: u32
-
name: indir
type: binary
-
name: hkey
type: binary
-
name: input_xfrm
type: u32
-
name: plca
attributes:
-
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
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
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
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
reply:
attributes:
- header
- timestamping
- tx-types
- rx-filters
- phc-index
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
reply:
attributes:
- header
- offset
- length
- page
- bank
- i2c-address
- 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: &pse
- header
- admin-state
- admin-control
- pw-d-status
dump: *pse-get-op
-
name: pse-set
doc: Set Power Sourcing Equipment params.
attribute-set: pse
do:
request:
attributes: *pse
-
name: rss-get
doc: Get RSS params.
attribute-set: rss
do: &rss-get-op
request:
attributes:
- header
reply:
attributes:
- header
- context
- hfunc
- indir
- hkey
- input_xfrm
dump: *rss-get-op
-
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