# 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: [] - name: header-flags type: flags entries: [ compact-bitsets, omit-reply, stats ] - name: module-fw-flash-status type: enum entries: [ started, in_progress, completed, error ] - name: c33-pse-ext-state enum-name: type: enum name-prefix: ethtool-c33-pse-ext-state- entries: - none - error-condition - mr-mps-valid - mr-pse-enable - option-detect-ted - option-vport-lim - ovld-detected - power-not-available - short-detected - name: phy-upstream-type enum-name: type: enum entries: [ mac, phy ] attribute-sets: - name: header attributes: - 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 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: value type: binary - name: mask type: binary - 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: irq-moderation attributes: - name: usec type: u32 - name: pkts type: u32 - name: comps type: u32 - name: profile attributes: - name: irq-moderation type: nest multi-attr: true nested-attributes: irq-moderation - 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: rx-profile type: nest nested-attributes: profile - name: tx-profile type: nest nested-attributes: profile - 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: ts-stat attributes: - name: tx-pkts type: uint - name: tx-lost type: uint - name: tx-err type: uint - 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: stats type: nest nested-attributes: ts-stat - name: cable-result attributes: - name: pair type: u8 - name: code type: u8 - name: src type: u32 - name: cable-fault-length attributes: - name: pair type: u8 - name: cm type: u32 - name: src 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: c33-pse-pw-limit attributes: - name: min type: u32 - name: max type: u32 - name: pse attributes: - 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: rss attributes: - 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 - name: start-context 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 - name: module-fw-flash attributes: - 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 attributes: - 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 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 - 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 reply: attributes: - header - timestamping - tx-types - rx-filters - phc-index - stats 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: - 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 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 - 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 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