Networking changes for 6.17.

Core & protocols
 ----------------
 
  - Wrap datapath globals into net_aligned_data, to avoid false sharing.
 
  - Preserve MSG_ZEROCOPY in forwarding (e.g. out of a container).
 
  - Add SO_INQ and SCM_INQ support to AF_UNIX.
 
  - Add SIOCINQ support to AF_VSOCK.
 
  - Add TCP_MAXSEG sockopt to MPTCP.
 
  - Add IPv6 force_forwarding sysctl to enable forwarding per interface.
 
  - Make TCP validation of whether packet fully fits in the receive
    window and the rcv_buf more strict. With increased use of HW
    aggregation a single "packet" can be multiple 100s of kB.
 
  - Add MSG_MORE flag to optimize large TCP transmissions via sockmap,
    improves latency up to 33% for sockmap users.
 
  - Convert TCP send queue handling from tasklet to BH workque.
 
  - Improve BPF iteration over TCP sockets to see each socket exactly once.
 
  - Remove obsolete and unused TCP RFC3517/RFC6675 loss recovery code.
 
  - Support enabling kernel threads for NAPI processing on per-NAPI
    instance basis rather than a whole device. Fully stop the kernel NAPI
    thread when threaded NAPI gets disabled. Previously thread would stick
    around until ifdown due to tricky synchronization.
 
  - Allow multicast routing to take effect on locally-generated packets.
 
  - Add output interface argument for End.X in segment routing.
 
  - MCTP: add support for gateway routing, improve bind() handling.
 
  - Don't require rtnl_lock when fetching an IPv6 neighbor over Netlink.
 
  - Add a new neighbor flag ("extern_valid"), which cedes refresh
    responsibilities to userspace. This is needed for EVPN multi-homing
    where a neighbor entry for a multi-homed host needs to be synced
    across all the VTEPs among which the host is multi-homed.
 
  - Support NUD_PERMANENT for proxy neighbor entries.
 
  - Add a new queuing discipline for IETF RFC9332 DualQ Coupled AQM.
 
  - Add sequence numbers to netconsole messages. Unregister netconsole's
    console when all net targets are removed. Code refactoring.
    Add a number of selftests.
 
  - Align IPSec inbound SA lookup to RFC 4301. Only SPI and protocol
    should be used for an inbound SA lookup.
 
  - Support inspecting ref_tracker state via DebugFS.
 
  - Don't force bonding advertisement frames tx to ~333 ms boundaries.
    Add broadcast_neighbor option to send ARP/ND on all bonded links.
 
  - Allow providing upcall pid for the 'execute' command in openvswitch.
 
  - Remove DCCP support from Netfilter's conntrack.
 
  - Disallow multiple packet duplications in the queuing layer.
 
  - Prevent use of deprecated iptables code on PREEMPT_RT.
 
 Driver API
 ----------
 
  - Support RSS and hashing configuration over ethtool Netlink.
 
  - Add dedicated ethtool callbacks for getting and setting hashing fields.
 
  - Add support for power budget evaluation strategy in PSE /
    Power-over-Ethernet. Generate Netlink events for overcurrent etc.
 
  - Support DPLL phase offset monitoring across all device inputs.
    Support providing clock reference and SYNC over separate DPLL
    inputs.
 
  - Support traffic classes in devlink rate API for bandwidth management.
 
  - Remove rtnl_lock dependency from UDP tunnel port configuration.
 
 Device drivers
 --------------
 
  - Add a new Broadcom driver for 800G Ethernet (bnge).
 
  - Add a standalone driver for Microchip ZL3073x DPLL.
 
  - Remove IBM's NETIUCV device driver.
 
  - Ethernet high-speed NICs:
    - Broadcom (bnxt):
     - support zero-copy Tx of DMABUF memory
     - take page size into account for page pool recycling rings
    - Intel (100G, ice, idpf):
      - idpf: XDP and AF_XDP support preparations
      - idpf: add flow steering
      - add link_down_events statistic
      - clean up the TSPLL code
      - preparations for live VM migration
    - nVidia/Mellanox:
     - support zero-copy Rx/Tx interfaces (DMABUF and io_uring)
     - optimize context memory usage for matchers
     - expose serial numbers in devlink info
     - support PCIe congestion metrics
    - Meta (fbnic):
      - add 25G, 50G, and 100G link modes to phylink
      - support dumping FW logs
    - Marvell/Cavium:
      - support for CN20K generation of the Octeon chips
    - Amazon:
      - add HW clock (without timestamping, just hypervisor time access)
 
  - Ethernet virtual:
    - VirtIO net:
      - support segmentation of UDP-tunnel-encapsulated packets
    - Google (gve):
      - support packet timestamping and clock synchronization
    - Microsoft vNIC:
      - add handler for device-originated servicing events
      - allow dynamic MSI-X vector allocation
      - support Tx bandwidth clamping
 
  - Ethernet NICs consumer, and embedded:
    - AMD:
      - amd-xgbe: hardware timestamping and PTP clock support
    - Broadcom integrated MACs (bcmgenet, bcmasp):
      - use napi_complete_done() return value to support NAPI polling
      - add support for re-starting auto-negotiation
    - Broadcom switches (b53):
      - support BCM5325 switches
      - add bcm63xx EPHY power control
    - Synopsys (stmmac):
      - lots of code refactoring and cleanups
    - TI:
      - icssg-prueth: read firmware-names from device tree
      - icssg: PRP offload support
    - Microchip:
      - lan78xx: convert to PHYLINK for improved PHY and MAC management
      - ksz: add KSZ8463 switch support
    - Intel:
      - support similar queue priority scheme in multi-queue and
        time-sensitive networking (taprio)
      - support packet pre-emption in both
    - RealTek (r8169):
      - enable EEE at 5Gbps on RTL8126
    - Airoha:
      - add PPPoE offload support
      - MDIO bus controller for Airoha AN7583
 
  - Ethernet PHYs:
    - support for the IPQ5018 internal GE PHY
    - micrel KSZ9477 switch-integrated PHYs:
      - add MDI/MDI-X control support
      - add RX error counters
      - add cable test support
      - add Signal Quality Indicator (SQI) reporting
    - dp83tg720: improve reset handling and reduce link recovery time
    - support bcm54811 (and its MII-Lite interface type)
    - air_en8811h: support resume/suspend
    - support PHY counters for QCA807x and QCA808x
    - support WoL for QCA807x
 
  - CAN drivers:
    - rcar_canfd: support for Transceiver Delay Compensation
    - kvaser: report FW versions via devlink dev info
 
  - WiFi:
    - extended regulatory info support (6 GHz)
    - add statistics and beacon monitor for Multi-Link Operation (MLO)
    - support S1G aggregation, improve S1G support
    - add Radio Measurement action fields
    - support per-radio RTS threshold
    - some work around how FIPS affects wifi, which was wrong (RC4 is used
      by TKIP, not only WEP)
    - improvements for unsolicited probe response handling
 
  - WiFi drivers:
    - RealTek (rtw88):
      - IBSS mode for SDIO devices
    - RealTek (rtw89):
      - BT coexistence for MLO/WiFi7
      - concurrent station + P2P support
      - support for USB devices RTL8851BU/RTL8852BU
    - Intel (iwlwifi):
      - use embedded PNVM in (to be released) FW images to fix
        compatibility issues
      - many cleanups (unused FW APIs, PCIe code, WoWLAN)
      - some FIPS interoperability
    - MediaTek (mt76):
      - firmware recovery improvements
      - more MLO work
    - Qualcomm/Atheros (ath12k):
      - fix scan on multi-radio devices
      - more EHT/Wi-Fi 7 features
      - encapsulation/decapsulation offload
    - Broadcom (brcm80211):
      - support SDIO 43751 device
 
  - Bluetooth:
    - hci_event: add support for handling LE BIG Sync Lost event
    - ISO: add socket option to report packet seqnum via CMSG
    - ISO: support SCM_TIMESTAMPING for ISO TS
 
  - Bluetooth drivers:
    - intel_pcie: support Function Level Reset
    - nxpuart: add support for 4M baudrate
    - nxpuart: implement powerup sequence, reset, FW dump, and FW loading
 
 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE6jPA+I1ugmIBA4hXMUZtbf5SIrsFAmiFgLgACgkQMUZtbf5S
 IrvafxAAnQRwYBoIG+piCILx6z5pRvBGHkmEQ4AQgSCFuq2eO3ubwMFIqEybfma1
 5+QFjUZAV3OgGgKRBS2KGWxtSzdiF+/JGV1VOIN67sX3Mm0a2QgjA4n5CgKL0FPr
 o6BEzjX5XwG1zvGcBNQ5BZ19xUUKjoZQgTtnea8sZ57Fsp5RtRgmYRqoewNvNk/n
 uImh0NFsDVb0UeOpSzC34VD9l1dJvLGdui4zJAjno/vpvmT1DkXjoK419J/r52SS
 X+5WgsfJ6DkjHqVN1tIhhK34yWqBOcwGFZJgEnWHMkFIl2FqRfFKMHyqtfLlVnLA
 mnIpSyz8Sq2AHtx0TlgZ3At/Ri8p5+yYJgHOXcDKyABa8y8Zf4wrycmr6cV9JLuL
 z54nLEVnJuvfDVDVJjsLYdJXyhMpZFq6+uAItdxKaw8Ugp/QqG4QtoRj+XIHz4ZW
 z6OohkCiCzTwEISFK+pSTxPS30eOxq43kCspcvuLiwCCStJBRkRb5GdZA4dm7LA+
 1Od4ADAkHjyrFtBqTyyC2scX8UJ33DlAIpAYyIeS6w9Cj9EXxtp1z33IAAAZ03MW
 jJwIaJuc8bK2fWKMmiG7ucIXjPo4t//KiWlpkwwqLhPbjZgfDAcxq1AC2TLoqHBL
 y4EOgKpHDCMAghSyiFIAn2JprGcEt8dp+11B0JRXIn4Pm/eYDH8=
 =lqbe
 -----END PGP SIGNATURE-----

Merge tag 'net-next-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

Pull networking updates from Jakub Kicinski:
 "Core & protocols:

   - Wrap datapath globals into net_aligned_data, to avoid false sharing

   - Preserve MSG_ZEROCOPY in forwarding (e.g. out of a container)

   - Add SO_INQ and SCM_INQ support to AF_UNIX

   - Add SIOCINQ support to AF_VSOCK

   - Add TCP_MAXSEG sockopt to MPTCP

   - Add IPv6 force_forwarding sysctl to enable forwarding per interface

   - Make TCP validation of whether packet fully fits in the receive
     window and the rcv_buf more strict. With increased use of HW
     aggregation a single "packet" can be multiple 100s of kB

   - Add MSG_MORE flag to optimize large TCP transmissions via sockmap,
     improves latency up to 33% for sockmap users

   - Convert TCP send queue handling from tasklet to BH workque

   - Improve BPF iteration over TCP sockets to see each socket exactly
     once

   - Remove obsolete and unused TCP RFC3517/RFC6675 loss recovery code

   - Support enabling kernel threads for NAPI processing on per-NAPI
     instance basis rather than a whole device. Fully stop the kernel
     NAPI thread when threaded NAPI gets disabled. Previously thread
     would stick around until ifdown due to tricky synchronization

   - Allow multicast routing to take effect on locally-generated packets

   - Add output interface argument for End.X in segment routing

   - MCTP: add support for gateway routing, improve bind() handling

   - Don't require rtnl_lock when fetching an IPv6 neighbor over Netlink

   - Add a new neighbor flag ("extern_valid"), which cedes refresh
     responsibilities to userspace. This is needed for EVPN multi-homing
     where a neighbor entry for a multi-homed host needs to be synced
     across all the VTEPs among which the host is multi-homed

   - Support NUD_PERMANENT for proxy neighbor entries

   - Add a new queuing discipline for IETF RFC9332 DualQ Coupled AQM

   - Add sequence numbers to netconsole messages. Unregister
     netconsole's console when all net targets are removed. Code
     refactoring. Add a number of selftests

   - Align IPSec inbound SA lookup to RFC 4301. Only SPI and protocol
     should be used for an inbound SA lookup

   - Support inspecting ref_tracker state via DebugFS

   - Don't force bonding advertisement frames tx to ~333 ms boundaries.
     Add broadcast_neighbor option to send ARP/ND on all bonded links

   - Allow providing upcall pid for the 'execute' command in openvswitch

   - Remove DCCP support from Netfilter's conntrack

   - Disallow multiple packet duplications in the queuing layer

   - Prevent use of deprecated iptables code on PREEMPT_RT

  Driver API:

   - Support RSS and hashing configuration over ethtool Netlink

   - Add dedicated ethtool callbacks for getting and setting hashing
     fields

   - Add support for power budget evaluation strategy in PSE /
     Power-over-Ethernet. Generate Netlink events for overcurrent etc

   - Support DPLL phase offset monitoring across all device inputs.
     Support providing clock reference and SYNC over separate DPLL
     inputs

   - Support traffic classes in devlink rate API for bandwidth
     management

   - Remove rtnl_lock dependency from UDP tunnel port configuration

  Device drivers:

   - Add a new Broadcom driver for 800G Ethernet (bnge)

   - Add a standalone driver for Microchip ZL3073x DPLL

   - Remove IBM's NETIUCV device driver

   - Ethernet high-speed NICs:
      - Broadcom (bnxt):
         - support zero-copy Tx of DMABUF memory
         - take page size into account for page pool recycling rings
      - Intel (100G, ice, idpf):
         - idpf: XDP and AF_XDP support preparations
         - idpf: add flow steering
         - add link_down_events statistic
         - clean up the TSPLL code
         - preparations for live VM migration
      - nVidia/Mellanox:
         - support zero-copy Rx/Tx interfaces (DMABUF and io_uring)
         - optimize context memory usage for matchers
         - expose serial numbers in devlink info
         - support PCIe congestion metrics
      - Meta (fbnic):
         - add 25G, 50G, and 100G link modes to phylink
         - support dumping FW logs
      - Marvell/Cavium:
         - support for CN20K generation of the Octeon chips
      - Amazon:
         - add HW clock (without timestamping, just hypervisor time access)

   - Ethernet virtual:
      - VirtIO net:
         - support segmentation of UDP-tunnel-encapsulated packets
      - Google (gve):
         - support packet timestamping and clock synchronization
      - Microsoft vNIC:
         - add handler for device-originated servicing events
         - allow dynamic MSI-X vector allocation
         - support Tx bandwidth clamping

   - Ethernet NICs consumer, and embedded:
      - AMD:
         - amd-xgbe: hardware timestamping and PTP clock support
      - Broadcom integrated MACs (bcmgenet, bcmasp):
         - use napi_complete_done() return value to support NAPI polling
         - add support for re-starting auto-negotiation
      - Broadcom switches (b53):
         - support BCM5325 switches
         - add bcm63xx EPHY power control
      - Synopsys (stmmac):
         - lots of code refactoring and cleanups
      - TI:
         - icssg-prueth: read firmware-names from device tree
         - icssg: PRP offload support
      - Microchip:
         - lan78xx: convert to PHYLINK for improved PHY and MAC management
         - ksz: add KSZ8463 switch support
      - Intel:
         - support similar queue priority scheme in multi-queue and
           time-sensitive networking (taprio)
         - support packet pre-emption in both
      - RealTek (r8169):
         - enable EEE at 5Gbps on RTL8126
      - Airoha:
         - add PPPoE offload support
         - MDIO bus controller for Airoha AN7583

   - Ethernet PHYs:
      - support for the IPQ5018 internal GE PHY
      - micrel KSZ9477 switch-integrated PHYs:
         - add MDI/MDI-X control support
         - add RX error counters
         - add cable test support
         - add Signal Quality Indicator (SQI) reporting
      - dp83tg720: improve reset handling and reduce link recovery time
      - support bcm54811 (and its MII-Lite interface type)
      - air_en8811h: support resume/suspend
      - support PHY counters for QCA807x and QCA808x
      - support WoL for QCA807x

   - CAN drivers:
      - rcar_canfd: support for Transceiver Delay Compensation
      - kvaser: report FW versions via devlink dev info

   - WiFi:
      - extended regulatory info support (6 GHz)
      - add statistics and beacon monitor for Multi-Link Operation (MLO)
      - support S1G aggregation, improve S1G support
      - add Radio Measurement action fields
      - support per-radio RTS threshold
      - some work around how FIPS affects wifi, which was wrong (RC4 is
        used by TKIP, not only WEP)
      - improvements for unsolicited probe response handling

   - WiFi drivers:
      - RealTek (rtw88):
         - IBSS mode for SDIO devices
      - RealTek (rtw89):
         - BT coexistence for MLO/WiFi7
         - concurrent station + P2P support
         - support for USB devices RTL8851BU/RTL8852BU
      - Intel (iwlwifi):
         - use embedded PNVM in (to be released) FW images to fix
           compatibility issues
         - many cleanups (unused FW APIs, PCIe code, WoWLAN)
         - some FIPS interoperability
      - MediaTek (mt76):
         - firmware recovery improvements
         - more MLO work
      - Qualcomm/Atheros (ath12k):
         - fix scan on multi-radio devices
         - more EHT/Wi-Fi 7 features
         - encapsulation/decapsulation offload
      - Broadcom (brcm80211):
         - support SDIO 43751 device

   - Bluetooth:
      - hci_event: add support for handling LE BIG Sync Lost event
      - ISO: add socket option to report packet seqnum via CMSG
      - ISO: support SCM_TIMESTAMPING for ISO TS

   - Bluetooth drivers:
      - intel_pcie: support Function Level Reset
      - nxpuart: add support for 4M baudrate
      - nxpuart: implement powerup sequence, reset, FW dump, and FW loading"

* tag 'net-next-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1742 commits)
  dpll: zl3073x: Fix build failure
  selftests: bpf: fix legacy netfilter options
  ipv6: annotate data-races around rt->fib6_nsiblings
  ipv6: fix possible infinite loop in fib6_info_uses_dev()
  ipv6: prevent infinite loop in rt6_nlmsg_size()
  ipv6: add a retry logic in net6_rt_notify()
  vrf: Drop existing dst reference in vrf_ip6_input_dst
  net/sched: taprio: align entry index attr validation with mqprio
  net: fsl_pq_mdio: use dev_err_probe
  selftests: rtnetlink.sh: remove esp4_offload after test
  vsock: remove unnecessary null check in vsock_getname()
  igb: xsk: solve negative overflow of nb_pkts in zerocopy mode
  stmmac: xsk: fix negative overflow of budget in zerocopy mode
  dt-bindings: ieee802154: Convert at86rf230.txt yaml format
  net: dsa: microchip: Disable PTP function of KSZ8463
  net: dsa: microchip: Setup fiber ports for KSZ8463
  net: dsa: microchip: Write switch MAC address differently for KSZ8463
  net: dsa: microchip: Use different registers for KSZ8463
  net: dsa: microchip: Add KSZ8463 switch support to KSZ DSA driver
  dt-bindings: net: dsa: microchip: Add KSZ8463 switch support
  ...
This commit is contained in:
Linus Torvalds 2025-07-30 08:58:55 -07:00
commit 8be4d31cb8
1904 changed files with 83318 additions and 29344 deletions

View file

@ -26,6 +26,16 @@ Description:
This ID is used to match the device with the appropriate This ID is used to match the device with the appropriate
driver. driver.
What: /sys/class/mdio_bus/<bus>/<device>/c45_phy_ids/mmd<n>_device_id
Date: June 2025
KernelVersion: 6.17
Contact: netdev@vger.kernel.org
Description:
This attribute contains the 32-bit PHY Identifier as reported
by the device during bus enumeration, encoded in hexadecimal.
These C45 IDs are used to match the device with the appropriate
driver. These files are invisible to the C22 device.
What: /sys/class/mdio_bus/<bus>/<device>/phy_interface What: /sys/class/mdio_bus/<bus>/<device>/phy_interface
Date: February 2014 Date: February 2014
KernelVersion: 3.15 KernelVersion: 3.15

View file

@ -305,24 +305,3 @@ xpram shows up under devices/system/ as 'xpram'.
For each cpu, a directory is created under devices/system/cpu/. Each cpu has an For each cpu, a directory is created under devices/system/cpu/. Each cpu has an
attribute 'online' which can be 0 or 1. attribute 'online' which can be 0 or 1.
4. Other devices
----------------
4.1 Netiucv
-----------
The netiucv driver creates an attribute 'connection' under
bus/iucv/drivers/netiucv. Piping to this attribute creates a new netiucv
connection to the specified host.
Netiucv connections show up under devices/iucv/ as "netiucv<ifnum>". The interface
number is assigned sequentially to the connections defined via the 'connection'
attribute.
user
- shows the connection partner.
buffer
- maximum buffer size. Pipe to it to change buffer size.

View file

@ -495,6 +495,15 @@ Comments
See: https://lore.kernel.org/lkml/20131006222342.GT19510@leaf/ See: https://lore.kernel.org/lkml/20131006222342.GT19510@leaf/
**UNCOMMENTED_RGMII_MODE**
Historically, the RGMII PHY modes specified in Device Trees have been
used inconsistently, often referring to the usage of delays on the PHY
side rather than describing the board.
PHY modes "rgmii", "rgmii-rxid" and "rgmii-txid" modes require the clock
signal to be delayed on the PCB; this unusual configuration should be
described in a comment. If they are not (meaning that the delay is realized
internally in the MAC or PHY), "rgmii-id" is the correct PHY mode.
Commit message Commit message
-------------- --------------

View file

@ -0,0 +1,76 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dpll/dpll-device.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Digital Phase-Locked Loop (DPLL) Device
maintainers:
- Ivan Vecera <ivecera@redhat.com>
description:
Digital Phase-Locked Loop (DPLL) device is used for precise clock
synchronization in networking and telecom hardware. The device can
have one or more channels (DPLLs) and one or more physical input and
output pins. Each DPLL channel can either produce pulse-per-clock signal
or drive ethernet equipment clock. The type of each channel can be
indicated by dpll-types property.
properties:
$nodename:
pattern: "^dpll(@.*)?$"
"#address-cells":
const: 0
"#size-cells":
const: 0
dpll-types:
description: List of DPLL channel types, one per DPLL instance.
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
items:
enum: [pps, eec]
input-pins:
type: object
description: DPLL input pins
unevaluatedProperties: false
properties:
"#address-cells":
const: 1
"#size-cells":
const: 0
patternProperties:
"^pin@[0-9a-f]+$":
$ref: /schemas/dpll/dpll-pin.yaml
unevaluatedProperties: false
required:
- "#address-cells"
- "#size-cells"
output-pins:
type: object
description: DPLL output pins
unevaluatedProperties: false
properties:
"#address-cells":
const: 1
"#size-cells":
const: 0
patternProperties:
"^pin@[0-9]+$":
$ref: /schemas/dpll/dpll-pin.yaml
unevaluatedProperties: false
required:
- "#address-cells"
- "#size-cells"
additionalProperties: true

View file

@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dpll/dpll-pin.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: DPLL Pin
maintainers:
- Ivan Vecera <ivecera@redhat.com>
description: |
The DPLL pin is either a physical input or output pin that is provided
by a DPLL( Digital Phase-Locked Loop) device. The pin is identified by
its physical order number that is stored in reg property and can have
an additional set of properties like supported (allowed) frequencies,
label, type and may support embedded sync.
Note that the pin in this context has nothing to do with pinctrl.
properties:
reg:
description: Hardware index of the DPLL pin.
maxItems: 1
connection-type:
description: Connection type of the pin
$ref: /schemas/types.yaml#/definitions/string
enum: [ext, gnss, int, mux, synce]
esync-control:
description: Indicates whether the pin supports embedded sync functionality.
type: boolean
label:
description: String exposed as the pin board label
$ref: /schemas/types.yaml#/definitions/string
supported-frequencies-hz:
description: List of supported frequencies for this pin, expressed in Hz.
required:
- reg
additionalProperties: false

View file

@ -0,0 +1,115 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dpll/microchip,zl30731.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip Azurite DPLL device
maintainers:
- Ivan Vecera <ivecera@redhat.com>
description:
Microchip Azurite DPLL (ZL3073x) is a family of DPLL devices that
provides up to 5 independent DPLL channels, up to 10 differential or
single-ended inputs and 10 differential or 20 single-ended outputs.
These devices support both I2C and SPI interfaces.
properties:
compatible:
enum:
- microchip,zl30731
- microchip,zl30732
- microchip,zl30733
- microchip,zl30734
- microchip,zl30735
reg:
maxItems: 1
required:
- compatible
- reg
allOf:
- $ref: /schemas/dpll/dpll-device.yaml#
- $ref: /schemas/spi/spi-peripheral-props.yaml#
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
dpll@70 {
compatible = "microchip,zl30732";
reg = <0x70>;
dpll-types = "pps", "eec";
input-pins {
#address-cells = <1>;
#size-cells = <0>;
pin@0 { /* REF0P */
reg = <0>;
connection-type = "ext";
label = "Input 0";
supported-frequencies-hz = /bits/ 64 <1 1000>;
};
};
output-pins {
#address-cells = <1>;
#size-cells = <0>;
pin@3 { /* OUT1N */
reg = <3>;
connection-type = "gnss";
esync-control;
label = "Output 1";
supported-frequencies-hz = /bits/ 64 <1 10000>;
};
};
};
};
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
dpll@70 {
compatible = "microchip,zl30731";
reg = <0x70>;
spi-max-frequency = <12500000>;
dpll-types = "pps";
input-pins {
#address-cells = <1>;
#size-cells = <0>;
pin@0 { /* REF0P */
reg = <0>;
connection-type = "ext";
label = "Input 0";
supported-frequencies-hz = /bits/ 64 <1 1000>;
};
};
output-pins {
#address-cells = <1>;
#size-cells = <0>;
pin@3 { /* OUT1N */
reg = <3>;
connection-type = "gnss";
esync-control;
label = "Output 1";
supported-frequencies-hz = /bits/ 64 <1 10000>;
};
};
};
};
...

View file

@ -0,0 +1,59 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/airoha,an7583-mdio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Airoha AN7583 Dedicated MDIO Controller
maintainers:
- Christian Marangi <ansuelsmth@gmail.com>
description:
Airoha AN7583 SoC have 3 different MDIO Controller.
One comes from the intergated Switch based on MT7530.
The other 2 (that this schema describe) live under the SCU
register supporting both C22 and C45 PHYs.
$ref: mdio.yaml#
properties:
compatible:
const: airoha,an7583-mdio
reg:
enum: [0xc8, 0xcc]
clocks:
maxItems: 1
resets:
maxItems: 1
clock-frequency:
default: 2500000
required:
- compatible
- reg
- clocks
- resets
unevaluatedProperties: false
examples:
- |
system-controller {
#address-cells = <1>;
#size-cells = <0>;
mdio-bus@c8 {
compatible = "airoha,an7583-mdio";
reg = <0xc8>;
clocks = <&scu>;
resets = <&scu>;
};
};

View file

@ -21,6 +21,7 @@ properties:
- items: - items:
- enum: - enum:
- allwinner,sun20i-d1-emac - allwinner,sun20i-d1-emac
- allwinner,sun50i-a100-emac
- allwinner,sun50i-h6-emac - allwinner,sun50i-h6-emac
- allwinner,sun50i-h616-emac0 - allwinner,sun50i-h616-emac0
- allwinner,sun55i-a523-gmac0 - allwinner,sun55i-a523-gmac0

View file

@ -0,0 +1,49 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
# Copyright (C) 2025 Altera Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/altr,gmii-to-sgmii-2.0.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Altera GMII to SGMII Converter
maintainers:
- Matthew Gerlach <matthew.gerlach@altera.com>
description:
This binding describes the Altera GMII to SGMII converter.
properties:
compatible:
const: altr,gmii-to-sgmii-2.0
reg:
items:
- description: Registers for the emac splitter IP
- description: Registers for the GMII to SGMII converter.
- description: Registers for TSE control.
reg-names:
items:
- const: hps_emac_interface_splitter_avalon_slave
- const: gmii_to_sgmii_adapter_avalon_slave
- const: eth_tse_control_port
required:
- compatible
- reg
- reg-names
unevaluatedProperties: false
examples:
- |
phy@ff000240 {
compatible = "altr,gmii-to-sgmii-2.0";
reg = <0xff000240 0x00000008>,
<0xff000200 0x00000040>,
<0xff000250 0x00000008>;
reg-names = "hps_emac_interface_splitter_avalon_slave",
"gmii_to_sgmii_adapter_avalon_slave",
"eth_tse_control_port";
};

View file

@ -0,0 +1,171 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/altr,socfpga-stmmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Altera SOCFPGA SoC DWMAC controller
maintainers:
- Matthew Gerlach <matthew.gerlach@altera.com>
description:
This binding describes the Altera SOCFPGA SoC implementation of the
Synopsys DWMAC for the Cyclone5, Arria5, Stratix10, Agilex5 and Agilex7
families of chips.
# TODO: Determine how to handle the Arria10 reset-name, stmmaceth-ocp, that
# does not validate against net/snps,dwmac.yaml.
select:
properties:
compatible:
contains:
enum:
- altr,socfpga-stmmac
- altr,socfpga-stmmac-a10-s10
- altr,socfpga-stmmac-agilex5
required:
- compatible
properties:
compatible:
oneOf:
- items:
- const: altr,socfpga-stmmac
- const: snps,dwmac-3.70a
- const: snps,dwmac
- items:
- const: altr,socfpga-stmmac-a10-s10
- const: snps,dwmac-3.72a
- const: snps,dwmac
- items:
- const: altr,socfpga-stmmac-a10-s10
- const: snps,dwmac-3.74a
- const: snps,dwmac
- items:
- const: altr,socfpga-stmmac-agilex5
- const: snps,dwxgmac-2.10
clocks:
minItems: 1
items:
- description: GMAC main clock
- description:
PTP reference clock. This clock is used for programming the
Timestamp Addend Register. If not passed then the system
clock will be used and this is fine on some platforms.
clock-names:
minItems: 1
items:
- const: stmmaceth
- const: ptp_ref
iommus:
minItems: 1
maxItems: 2
phy-mode:
enum:
- gmii
- mii
- rgmii
- rgmii-id
- rgmii-rxid
- rgmii-txid
- sgmii
- 1000base-x
rxc-skew-ps:
description: Skew control of RXC pad
rxd0-skew-ps:
description: Skew control of RX data 0 pad
rxd1-skew-ps:
description: Skew control of RX data 1 pad
rxd2-skew-ps:
description: Skew control of RX data 2 pad
rxd3-skew-ps:
description: Skew control of RX data 3 pad
rxdv-skew-ps:
description: Skew control of RX CTL pad
txc-skew-ps:
description: Skew control of TXC pad
txen-skew-ps:
description: Skew control of TXC pad
altr,emac-splitter:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Should be the phandle to the emac splitter soft IP node if DWMAC
controller is connected an emac splitter.
altr,f2h_ptp_ref_clk:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle to Precision Time Protocol reference clock. This clock is
common to gmac instances and defaults to osc1.
altr,gmii-to-sgmii-converter:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Should be the phandle to the gmii to sgmii converter soft IP.
altr,sysmgr-syscon:
$ref: /schemas/types.yaml#/definitions/phandle-array
description:
Should be the phandle to the system manager node that encompass
the glue register, the register offset, and the register shift.
On Cyclone5/Arria5, the register shift represents the PHY mode
bits, while on the Arria10/Stratix10/Agilex platforms, the
register shift represents bit for each emac to enable/disable
signals from the FPGA fabric to the EMAC modules.
items:
- items:
- description: phandle to the system manager node
- description: offset of the control register
- description: shift within the control register
patternProperties:
"^mdio[0-9]$":
type: object
required:
- compatible
- clocks
- clock-names
- altr,sysmgr-syscon
allOf:
- $ref: snps,dwmac.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
soc {
#address-cells = <1>;
#size-cells = <1>;
ethernet@ff700000 {
compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a",
"snps,dwmac";
altr,sysmgr-syscon = <&sysmgr 0x60 0>;
reg = <0xff700000 0x2000>;
interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq";
mac-address = [00 00 00 00 00 00]; /* Filled in by U-Boot */
clocks = <&emac_0_clk>;
clock-names = "stmmaceth";
phy-mode = "sgmii";
};
};

View file

@ -34,6 +34,13 @@ properties:
This property depends on the module vendor's This property depends on the module vendor's
configuration. configuration.
max-speed:
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 3000000
- 4000000
default: 3000000
firmware-name: firmware-name:
maxItems: 1 maxItems: 1
@ -65,6 +72,14 @@ properties:
description: description:
The GPIO number of the NXP chipset used for BT_WAKE_OUT. The GPIO number of the NXP chipset used for BT_WAKE_OUT.
vcc-supply:
description:
phandle of the regulator that provides the supply voltage.
reset-gpios:
description:
Chip powerdown/reset signal (PDn).
required: required:
- compatible - compatible
@ -78,10 +93,13 @@ examples:
bluetooth { bluetooth {
compatible = "nxp,88w8987-bt"; compatible = "nxp,88w8987-bt";
fw-init-baudrate = <3000000>; fw-init-baudrate = <3000000>;
max-speed = <4000000>;
firmware-name = "uartuart8987_bt_v0.bin"; firmware-name = "uartuart8987_bt_v0.bin";
device-wakeup-gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; device-wakeup-gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
nxp,wakein-pin = /bits/ 8 <18>; nxp,wakein-pin = /bits/ 8 <18>;
nxp,wakeout-pin = /bits/ 8 <19>; nxp,wakeout-pin = /bits/ 8 <19>;
vcc-supply = <&nxp_iw612_supply>;
reset-gpios = <&gpioctrl 2 GPIO_ACTIVE_LOW>;
local-bd-address = [66 55 44 33 22 11]; local-bd-address = [66 55 44 33 22 11];
interrupt-parent = <&gpio>; interrupt-parent = <&gpio>;
interrupts = <8 IRQ_TYPE_EDGE_FALLING>; interrupts = <8 IRQ_TYPE_EDGE_FALLING>;

View file

@ -62,6 +62,7 @@ properties:
- items: - items:
- enum: - enum:
- microchip,sam9x7-gem # Microchip SAM9X7 gigabit ethernet interface - microchip,sam9x7-gem # Microchip SAM9X7 gigabit ethernet interface
- microchip,sama7d65-gem # Microchip SAMA7D65 gigabit ethernet interface
- const: microchip,sama7g5-gem # Microchip SAMA7G5 gigabit ethernet interface - const: microchip,sama7g5-gem # Microchip SAMA7G5 gigabit ethernet interface
reg: reg:
@ -114,6 +115,13 @@ properties:
power-domains: power-domains:
maxItems: 1 maxItems: 1
cdns,refclk-ext:
type: boolean
description:
This selects if the REFCLK for RMII is provided by an external source.
For RGMII mode this selects if the 125MHz REF clock is provided by an external
source.
cdns,rx-watermark: cdns,rx-watermark:
$ref: /schemas/types.yaml#/definitions/uint32 $ref: /schemas/types.yaml#/definitions/uint32
description: description:

View file

@ -66,6 +66,12 @@ properties:
- brcm,bcm63268-switch - brcm,bcm63268-switch
- const: brcm,bcm63xx-switch - const: brcm,bcm63xx-switch
brcm,gpio-ctrl:
description:
A phandle to the syscon node of the bcm63xx gpio controller
which contains phy control registers
$ref: /schemas/types.yaml#/definitions/phandle
required: required:
- compatible - compatible
- reg - reg

View file

@ -136,6 +136,16 @@ properties:
See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt for See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt for
details for the regulator setup on these boards. details for the regulator setup on these boards.
mdio:
$ref: /schemas/net/mdio.yaml#
unevaluatedProperties: false
properties:
mediatek,pio:
$ref: /schemas/types.yaml#/definitions/phandle
description:
Phandle pointing to the mediatek pinctrl node.
mediatek,mcm: mediatek,mcm:
type: boolean type: boolean
description: description:
@ -190,6 +200,18 @@ required:
- reg - reg
$defs: $defs:
builtin-dsa-port:
patternProperties:
"^(ethernet-)?ports$":
patternProperties:
"^(ethernet-)?port@[0-6]$":
if:
required: [ ethernet ]
then:
properties:
phy-mode:
const: internal
mt7530-dsa-port: mt7530-dsa-port:
patternProperties: patternProperties:
"^(ethernet-)?ports$": "^(ethernet-)?ports$":
@ -297,7 +319,7 @@ allOf:
- airoha,en7581-switch - airoha,en7581-switch
- airoha,an7583-switch - airoha,an7583-switch
then: then:
$ref: "#/$defs/mt7530-dsa-port" $ref: "#/$defs/builtin-dsa-port"
properties: properties:
gpio-controller: false gpio-controller: false
mediatek,mcm: false mediatek,mcm: false

View file

@ -0,0 +1,135 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/micrel,ks8995.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Micrel KS8995 Family DSA Switches
maintainers:
- Linus Walleij <linus.walleij@linaro.org>
description:
The Micrel KS8995 DSA Switches are 100 Mbit switches that were produced in
the early-to-mid 2000s. The chip features a CPU port and four outgoing ports,
each with an internal PHY. The chip itself is managed over SPI, but all the
PHYs need to be accessed from an external MDIO channel.
Further, a fifth PHY is available and can be used separately from the switch
fabric, connected to an external MII interface name MII-P5. This is
unrelated from the CPU-facing port 5 which is used for DSA MII traffic.
properties:
compatible:
enum:
- micrel,ks8995
- micrel,ksz8795
- micrel,ksz8864
reg:
maxItems: 1
reset-gpios:
description: GPIO to be used to reset the whole device
maxItems: 1
allOf:
- $ref: dsa.yaml#/$defs/ethernet-ports
- $ref: /schemas/spi/spi-peripheral-props.yaml#
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
spi {
#address-cells = <1>;
#size-cells = <0>;
ethernet-switch@0 {
compatible = "micrel,ks8995";
reg = <0>;
spi-max-frequency = <25000000>;
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
ethernet-port@0 {
reg = <0>;
label = "lan1";
};
ethernet-port@1 {
reg = <1>;
label = "lan2";
};
ethernet-port@2 {
reg = <2>;
label = "lan3";
};
ethernet-port@3 {
reg = <3>;
label = "lan4";
};
ethernet-port@4 {
reg = <4>;
ethernet = <&mac2>;
phy-mode = "mii";
fixed-link {
speed = <100>;
full-duplex;
};
};
};
};
};
soc {
#address-cells = <1>;
#size-cells = <1>;
/* The WAN port connected on MII-P5 */
ethernet-port@1000 {
reg = <0x00001000 0x1000>;
label = "wan";
phy-mode = "mii";
phy-handle = <&phy5>;
};
mac2: ethernet-port@2000 {
reg = <0x00002000 0x1000>;
phy-mode = "mii";
fixed-link {
speed = <100>;
full-duplex;
};
};
};
mdio {
#address-cells = <1>;
#size-cells = <0>;
/* LAN PHYs 1-4 accessible over external MDIO */
phy1: ethernet-phy@1 {
reg = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
};
phy4: ethernet-phy@4 {
reg = <4>;
};
/* WAN PHY accessible over external MDIO */
phy5: ethernet-phy@5 {
reg = <5>;
};
};

View file

@ -18,6 +18,7 @@ properties:
# required and optional properties. # required and optional properties.
compatible: compatible:
enum: enum:
- microchip,ksz8463
- microchip,ksz8765 - microchip,ksz8765
- microchip,ksz8794 - microchip,ksz8794
- microchip,ksz8795 - microchip,ksz8795

View file

@ -39,6 +39,7 @@ properties:
# MAC. # MAC.
- internal - internal
- mii - mii
- mii-lite
- gmii - gmii
- sgmii - sgmii
- psgmii - psgmii

View file

@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Faraday Technology FTGMAC100 gigabit ethernet controller title: Faraday Technology FTGMAC100 gigabit ethernet controller
allOf:
- $ref: ethernet-controller.yaml#
maintainers: maintainers:
- Po-Yu Chuang <ratbert@faraday-tech.com> - Po-Yu Chuang <ratbert@faraday-tech.com>
@ -35,6 +32,9 @@ properties:
- description: MAC IP clock - description: MAC IP clock
- description: RMII RCLK gate for AST2500/2600 - description: RMII RCLK gate for AST2500/2600
resets:
maxItems: 1
clock-names: clock-names:
minItems: 1 minItems: 1
items: items:
@ -74,6 +74,21 @@ required:
- reg - reg
- interrupts - interrupts
allOf:
- $ref: ethernet-controller.yaml#
- if:
properties:
compatible:
contains:
enum:
- aspeed,ast2600-mac
then:
properties:
resets: true
else:
properties:
resets: false
unevaluatedProperties: false unevaluatedProperties: false
examples: examples:

View file

@ -1,27 +0,0 @@
* AT86RF230 IEEE 802.15.4 *
Required properties:
- compatible: should be "atmel,at86rf230", "atmel,at86rf231",
"atmel,at86rf233" or "atmel,at86rf212"
- spi-max-frequency: maximal bus speed, should be set to 7500000 depends
sync or async operation mode
- reg: the chipselect index
- interrupts: the interrupt generated by the device. Non high-level
can occur deadlocks while handling isr.
Optional properties:
- reset-gpio: GPIO spec for the rstn pin
- sleep-gpio: GPIO spec for the slp_tr pin
- xtal-trim: u8 value for fine tuning the internal capacitance
arrays of xtal pins: 0 = +0 pF, 0xf = +4.5 pF
Example:
at86rf231@0 {
compatible = "atmel,at86rf231";
spi-max-frequency = <7500000>;
reg = <0>;
interrupts = <19 4>;
interrupt-parent = <&gpio3>;
xtal-trim = /bits/ 8 <0x06>;
};

View file

@ -0,0 +1,66 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/ieee802154/atmel,at86rf233.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: AT86RF230 IEEE 802.15.4
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
enum:
- atmel,at86rf212
- atmel,at86rf230
- atmel,at86rf231
- atmel,at86rf233
reg:
maxItems: 1
interrupts:
maxItems: 1
reset-gpio:
maxItems: 1
sleep-gpio:
maxItems: 1
spi-max-frequency:
maximum: 7500000
xtal-trim:
$ref: /schemas/types.yaml#/definitions/uint8
maximum: 0xf
description: |
Fine tuning the internal capacitance arrays of xtal pins:
0 = +0 pF, 0xf = +4.5 pF
required:
- compatible
- reg
- interrupts
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
unevaluatedProperties: false
examples:
- |
spi {
#address-cells = <1>;
#size-cells = <0>;
zigbee@0 {
compatible = "atmel,at86rf231";
reg = <0>;
spi-max-frequency = <7500000>;
interrupts = <19 4>;
interrupt-parent = <&gpio3>;
xtal-trim = /bits/ 8 <0x06>;
};
};

View file

@ -47,6 +47,8 @@ properties:
phy-handle: true phy-handle: true
fixed-link: true
intel,npe-handle: intel,npe-handle:
$ref: /schemas/types.yaml#/definitions/phandle-array $ref: /schemas/types.yaml#/definitions/phandle-array
items: items:

View file

@ -1,28 +0,0 @@
* NXP LPC32xx SoC Ethernet Controller
Required properties:
- compatible: Should be "nxp,lpc-eth"
- reg: Address and length of the register set for the device
- interrupts: Should contain ethernet controller interrupt
Optional properties:
- phy-mode: See ethernet.txt file in the same directory. If the property is
absent, "rmii" is assumed.
- use-iram: Use LPC32xx internal SRAM (IRAM) for DMA buffering
Optional subnodes:
- mdio : specifies the mdio bus, used as a container for phy nodes according to
phy.txt in the same directory
Example:
mac: ethernet@31060000 {
compatible = "nxp,lpc-eth";
reg = <0x31060000 0x1000>;
interrupt-parent = <&mic>;
interrupts = <29 0>;
phy-mode = "rmii";
use-iram;
};

View file

@ -40,7 +40,19 @@ properties:
interrupts: interrupts:
minItems: 1 minItems: 1
maxItems: 4 maxItems: 8
interrupt-names:
minItems: 1
items:
- const: fe0
- const: fe1
- const: fe2
- const: fe3
- const: pdma0
- const: pdma1
- const: pdma2
- const: pdma3
power-domains: power-domains:
maxItems: 1 maxItems: 1
@ -54,6 +66,10 @@ properties:
- const: gmac - const: gmac
- const: ppe - const: ppe
sram:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to mmio SRAM
mediatek,ethsys: mediatek,ethsys:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: description:
@ -135,6 +151,10 @@ allOf:
minItems: 3 minItems: 3
maxItems: 3 maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks: clocks:
minItems: 4 minItems: 4
maxItems: 4 maxItems: 4
@ -146,6 +166,8 @@ allOf:
- const: gp1 - const: gp1
- const: gp2 - const: gp2
sram: false
mediatek,infracfg: false mediatek,infracfg: false
mediatek,wed: false mediatek,wed: false
@ -166,6 +188,9 @@ allOf:
interrupts: interrupts:
maxItems: 1 maxItems: 1
interrupt-names:
maxItems: 1
clocks: clocks:
minItems: 2 minItems: 2
maxItems: 2 maxItems: 2
@ -175,6 +200,8 @@ allOf:
- const: ethif - const: ethif
- const: fe - const: fe
sram: false
mediatek,infracfg: false mediatek,infracfg: false
mediatek,wed: false mediatek,wed: false
@ -192,6 +219,10 @@ allOf:
minItems: 3 minItems: 3
maxItems: 3 maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks: clocks:
minItems: 11 minItems: 11
maxItems: 11 maxItems: 11
@ -210,6 +241,8 @@ allOf:
- const: sgmii_ck - const: sgmii_ck
- const: eth2pll - const: eth2pll
sram: false
mediatek,infracfg: false mediatek,infracfg: false
mediatek,sgmiisys: mediatek,sgmiisys:
@ -232,6 +265,10 @@ allOf:
minItems: 3 minItems: 3
maxItems: 3 maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks: clocks:
minItems: 17 minItems: 17
maxItems: 17 maxItems: 17
@ -256,6 +293,8 @@ allOf:
- const: sgmii_ck - const: sgmii_ck
- const: eth2pll - const: eth2pll
sram: false
mediatek,sgmiisys: mediatek,sgmiisys:
minItems: 2 minItems: 2
maxItems: 2 maxItems: 2
@ -272,7 +311,10 @@ allOf:
then: then:
properties: properties:
interrupts: interrupts:
minItems: 4 minItems: 8
interrupt-names:
minItems: 8
clocks: clocks:
minItems: 15 minItems: 15
@ -310,7 +352,10 @@ allOf:
then: then:
properties: properties:
interrupts: interrupts:
minItems: 4 minItems: 8
interrupt-names:
minItems: 8
clocks: clocks:
minItems: 15 minItems: 15
@ -348,7 +393,10 @@ allOf:
then: then:
properties: properties:
interrupts: interrupts:
minItems: 4 minItems: 8
interrupt-names:
minItems: 8
clocks: clocks:
minItems: 24 minItems: 24
@ -382,7 +430,7 @@ allOf:
- const: xgp3 - const: xgp3
patternProperties: patternProperties:
"^mac@[0-1]$": "^mac@[0-2]$":
type: object type: object
unevaluatedProperties: false unevaluatedProperties: false
allOf: allOf:
@ -507,7 +555,11 @@ examples:
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>; <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ethsys CLK_ETH_FE_EN>, clocks = <&ethsys CLK_ETH_FE_EN>,
<&ethsys CLK_ETH_GP2_EN>, <&ethsys CLK_ETH_GP2_EN>,
<&ethsys CLK_ETH_GP1_EN>, <&ethsys CLK_ETH_GP1_EN>,

View file

@ -1,20 +0,0 @@
Micrel KS8995 SPI controlled Ethernet Switch families
Required properties (according to spi-bus.txt):
- compatible: either "micrel,ks8995", "micrel,ksz8864" or "micrel,ksz8795"
Optional properties:
- reset-gpios : phandle of gpio that will be used to reset chip during probe
Example:
spi-master {
...
switch@0 {
compatible = "micrel,ksz8795";
reg = <0>;
spi-max-frequency = <50000000>;
reset-gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
};
};

View file

@ -55,6 +55,12 @@ properties:
description: | description: |
Regulator for supply voltage to VIN pin Regulator for supply voltage to VIN pin
ti,rx-gain-reduction-db:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Specify an RX gain reduction to reduce antenna sensitivity with 5dB per
increment, with a maximum of 15dB. Supported values: [0, 5, 10, 15].
required: required:
- compatible - compatible
- interrupts - interrupts
@ -95,5 +101,6 @@ examples:
irq-status-read-quirk; irq-status-read-quirk;
en2-rf-quirk; en2-rf-quirk;
clock-frequency = <27120000>; clock-frequency = <27120000>;
ti,rx-gain-reduction-db = <15>;
}; };
}; };

View file

@ -0,0 +1,48 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/nxp,lpc-eth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP LPC32xx SoC Ethernet Controller
maintainers:
- Frank Li <Frank.Li@nxp.com>
properties:
compatible:
const: nxp,lpc-eth
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
use-iram:
$ref: /schemas/types.yaml#/definitions/flag
description: Use LPC32xx internal SRAM (IRAM) for DMA buffering
required:
- compatible
- reg
- interrupts
allOf:
- $ref: ethernet-controller.yaml#
unevaluatedProperties: false
examples:
- |
ethernet@31060000 {
compatible = "nxp,lpc-eth";
reg = <0x31060000 0x1000>;
interrupt-parent = <&mic>;
interrupts = <29 0>;
phy-mode = "rmii";
use-iram;
};

View file

@ -1,20 +0,0 @@
* NXP LPC1850 GMAC ethernet controller
This device is a platform glue layer for stmmac.
Please see stmmac.txt for the other unchanged properties.
Required properties:
- compatible: Should contain "nxp,lpc1850-dwmac"
Examples:
mac: ethernet@40010000 {
compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
reg = <0x40010000 0x2000>;
interrupts = <5>;
interrupt-names = "macirq";
clocks = <&ccu1 CLK_CPU_ETHERNET>;
clock-names = "stmmaceth";
resets = <&rgu 22>;
reset-names = "stmmaceth";
}

View file

@ -0,0 +1,85 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/nxp,lpc1850-dwmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP LPC1850 GMAC ethernet controller
maintainers:
- Frank Li <Frank.Li@nxp.com>
# We need a select here so we don't match all nodes with 'snps,dwmac'
select:
properties:
compatible:
contains:
enum:
- nxp,lpc1850-dwmac
required:
- compatible
properties:
compatible:
items:
- enum:
- nxp,lpc1850-dwmac
- const: snps,dwmac-3.611
- const: snps,dwmac
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: stmmaceth
interrupts:
maxItems: 1
interrupt-names:
items:
- const: macirq
resets:
maxItems: 1
reset-names:
items:
- const: stmmaceth
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
- interrupt-names
allOf:
- $ref: snps,dwmac.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/lpc18xx-ccu.h>
ethernet@40010000 {
compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
reg = <0x40010000 0x2000>;
interrupts = <5>;
interrupt-names = "macirq";
clocks = <&ccu1 CLK_CPU_ETHERNET>;
clock-names = "stmmaceth";
resets = <&rgu 22>;
reset-names = "stmmaceth";
rx-fifo-depth = <256>;
tx-fifo-depth = <256>;
snps,pbl = <4>;
snps,force_thresh_dma_mode;
phy-mode = "rgmii-id";
};

View file

@ -22,6 +22,12 @@ properties:
reg: reg:
maxItems: 1 maxItems: 1
vdd-supply:
description: Regulator that provides 3.3V VDD power supply.
vdda-supply:
description: Regulator that provides 3.3V VDDA power supply.
managers: managers:
type: object type: object
additionalProperties: false additionalProperties: false
@ -68,6 +74,15 @@ properties:
"#size-cells": "#size-cells":
const: 0 const: 0
vmain-supply:
description: Regulator that provides 44-57V VMAIN power supply.
vaux5-supply:
description: Regulator that provides 5V VAUX5 power supply.
vaux3p3-supply:
description: Regulator that provides 3.3V VAUX3P3 power supply.
patternProperties: patternProperties:
'^port@[0-7]$': '^port@[0-7]$':
type: object type: object
@ -106,10 +121,11 @@ examples:
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
manager@0 { manager0: manager@0 {
reg = <0>; reg = <0>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
vmain-supply = <&pse1_supply>;
phys0: port@0 { phys0: port@0 {
reg = <0>; reg = <0>;
@ -161,7 +177,7 @@ examples:
pairset-names = "alternative-a", "alternative-b"; pairset-names = "alternative-a", "alternative-b";
pairsets = <&phys0>, <&phys1>; pairsets = <&phys0>, <&phys1>;
polarity-supported = "MDI", "S"; polarity-supported = "MDI", "S";
vpwr-supply = <&vpwr1>; vpwr-supply = <&manager0>;
}; };
pse_pi1: pse-pi@1 { pse_pi1: pse-pi@1 {
reg = <1>; reg = <1>;
@ -169,7 +185,7 @@ examples:
pairset-names = "alternative-a"; pairset-names = "alternative-a";
pairsets = <&phys2>; pairsets = <&phys2>;
polarity-supported = "MDI"; polarity-supported = "MDI";
vpwr-supply = <&vpwr2>; vpwr-supply = <&manager0>;
}; };
}; };
}; };

View file

@ -20,6 +20,9 @@ properties:
reg: reg:
maxItems: 1 maxItems: 1
interrupts:
maxItems: 1
'#pse-cells': '#pse-cells':
const: 1 const: 1
@ -27,10 +30,12 @@ properties:
maxItems: 1 maxItems: 1
channels: channels:
description: each set of 8 ports can be assigned to one physical description: |
channels or two for PoE4. This parameter describes the configuration Defines the 8 physical delivery channels on the controller that can
of the ports conversion matrix that establishes relationship between be referenced by PSE PIs through their "pairsets" property. The actual
the logical ports and the physical channels. port matrix mapping is created when PSE PIs reference these channels in
their pairsets. For 4-pair operation, two channels from the same group
(0-3 or 4-7) must be referenced by a single PSE PI.
type: object type: object
additionalProperties: false additionalProperties: false
@ -62,9 +67,12 @@ unevaluatedProperties: false
required: required:
- compatible - compatible
- reg - reg
- interrupts
examples: examples:
- | - |
#include <dt-bindings/interrupt-controller/irq.h>
i2c { i2c {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
@ -72,6 +80,8 @@ examples:
ethernet-pse@20 { ethernet-pse@20 {
compatible = "ti,tps23881"; compatible = "ti,tps23881";
reg = <0x20>; reg = <0x20>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gpiog>;
channels { channels {
#address-cells = <1>; #address-cells = <1>;

View file

@ -16,8 +16,37 @@ description: |
allOf: allOf:
- $ref: ethernet-phy.yaml# - $ref: ethernet-phy.yaml#
- if:
properties:
compatible:
contains:
enum:
- ethernet-phy-id004d.d0c0
then:
properties:
reg:
const: 7 # This PHY is always at MDIO address 7 in the IPQ5018 SoC
resets:
items:
- description:
GE PHY MISC reset which triggers a reset across MDC, DSP, RX, and TX lines.
qcom,dac-preset-short-cable:
description:
Set if this phy is connected to another phy to adjust the values for
MDAC and EDAC to adjust amplitude, bias current settings, and error
detection and correction algorithm to accommodate for short cable length.
If not set, DAC values are not modified and it is assumed the MDI output pins
of this PHY are directly connected to an RJ45 connector.
type: boolean
properties: properties:
compatible:
enum:
- ethernet-phy-id004d.d0c0
qca,clk-out-frequency: qca,clk-out-frequency:
description: Clock output frequency in Hertz. description: Clock output frequency in Hertz.
$ref: /schemas/types.yaml#/definitions/uint32 $ref: /schemas/types.yaml#/definitions/uint32
@ -132,3 +161,17 @@ examples:
}; };
}; };
}; };
- |
#include <dt-bindings/reset/qcom,gcc-ipq5018.h>
mdio {
#address-cells = <1>;
#size-cells = <0>;
ge_phy: ethernet-phy@7 {
compatible = "ethernet-phy-id004d.d0c0";
reg = <7>;
resets = <&gcc GCC_GEPHY_MISC_ARES>;
};
};

View file

@ -1,87 +0,0 @@
* Qualcomm QCA7000
The QCA7000 is a serial-to-powerline bridge with a host interface which could
be configured either as SPI or UART slave. This configuration is done by
the QCA7000 firmware.
(a) Ethernet over SPI
In order to use the QCA7000 as SPI device it must be defined as a child of a
SPI master in the device tree.
Required properties:
- compatible : Should be "qca,qca7000"
- reg : Should specify the SPI chip select
- interrupts : The first cell should specify the index of the source
interrupt and the second cell should specify the trigger
type as rising edge
- spi-cpha : Must be set
- spi-cpol : Must be set
Optional properties:
- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at.
Numbers smaller than 1000000 or greater than 16000000
are invalid. Missing the property will set the SPI
frequency to 8000000 Hertz.
- qca,legacy-mode : Set the SPI data transfer of the QCA7000 to legacy mode.
In this mode the SPI master must toggle the chip select
between each data word. In burst mode these gaps aren't
necessary, which is faster. This setting depends on how
the QCA7000 is setup via GPIO pin strapping. If the
property is missing the driver defaults to burst mode.
The MAC address will be determined using the optional properties
defined in ethernet.txt.
SPI Example:
/* Freescale i.MX28 SPI master*/
ssp2: spi@80014000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx28-spi";
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>;
qca7000: ethernet@0 {
compatible = "qca,qca7000";
reg = <0x0>;
interrupt-parent = <&gpio3>; /* GPIO Bank 3 */
interrupts = <25 0x1>; /* Index: 25, rising edge */
spi-cpha; /* SPI mode: CPHA=1 */
spi-cpol; /* SPI mode: CPOL=1 */
spi-max-frequency = <8000000>; /* freq: 8 MHz */
local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
};
};
(b) Ethernet over UART
In order to use the QCA7000 as UART slave it must be defined as a child of a
UART master in the device tree. It is possible to preconfigure the UART
settings of the QCA7000 firmware, but it's not possible to change them during
runtime.
Required properties:
- compatible : Should be "qca,qca7000"
Optional properties:
- local-mac-address : see ./ethernet.txt
- current-speed : current baud rate of QCA7000 which defaults to 115200
if absent, see also ../serial/serial.yaml
UART Example:
/* Freescale i.MX28 UART */
auart0: serial@8006a000 {
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006a000 0x2000>;
pinctrl-names = "default";
pinctrl-0 = <&auart0_2pins_a>;
qca7000: ethernet {
compatible = "qca,qca7000";
local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
current-speed = <38400>;
};
};

View file

@ -0,0 +1,109 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/qca,qca7000.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm QCA7000
maintainers:
- Frank Li <Frank.Li@nxp.com>
description: |
The QCA7000 is a serial-to-powerline bridge with a host interface which could
be configured either as SPI or UART slave. This configuration is done by
the QCA7000 firmware.
(a) Ethernet over SPI
In order to use the QCA7000 as SPI device it must be defined as a child of a
SPI master in the device tree.
(b) Ethernet over UART
In order to use the QCA7000 as UART slave it must be defined as a child of a
UART master in the device tree. It is possible to preconfigure the UART
settings of the QCA7000 firmware, but it's not possible to change them during
runtime
properties:
compatible:
const: qca,qca7000
reg:
maxItems: 1
interrupts:
maxItems: 1
qca,legacy-mode:
$ref: /schemas/types.yaml#/definitions/flag
description:
Set the SPI data transfer of the QCA7000 to legacy mode.
In this mode the SPI master must toggle the chip select
between each data word. In burst mode these gaps aren't
necessary, which is faster. This setting depends on how
the QCA7000 is setup via GPIO pin strapping. If the
property is missing the driver defaults to burst mode.
allOf:
- $ref: ethernet-controller.yaml#
- if:
required:
- reg
then:
properties:
spi-cpha: true
spi-cpol: true
spi-max-frequency:
default: 8000000
maximum: 16000000
minimum: 1000000
allOf:
- $ref: /schemas/spi/spi-peripheral-props.yaml#
else:
properties:
current-speed:
default: 115200
qca,legacy-mode: false
allOf:
- $ref: /schemas/serial/serial-peripheral-props.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
spi {
#address-cells = <1>;
#size-cells = <0>;
ethernet@0 {
compatible = "qca,qca7000";
reg = <0x0>;
interrupt-parent = <&gpio3>;
interrupts = <25 IRQ_TYPE_EDGE_RISING>;
spi-cpha;
spi-cpol;
spi-max-frequency = <8000000>;
local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
};
};
- |
serial {
ethernet {
compatible = "qca,qca7000";
local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
current-speed = <38400>;
};
};

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2 %YAML 1.2
--- ---
$id: http://devicetree.org/schemas/net/renesas,r9a09g057-gbeth.yaml# $id: http://devicetree.org/schemas/net/renesas,rzv2h-gbeth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml#
title: GBETH glue layer for Renesas RZ/V2H(P) (and similar SoCs) title: GBETH glue layer for Renesas RZ/V2H(P) (and similar SoCs)
@ -14,6 +14,7 @@ select:
compatible: compatible:
contains: contains:
enum: enum:
- renesas,r9a09g047-gbeth
- renesas,r9a09g056-gbeth - renesas,r9a09g056-gbeth
- renesas,r9a09g057-gbeth - renesas,r9a09g057-gbeth
- renesas,rzv2h-gbeth - renesas,rzv2h-gbeth
@ -24,6 +25,7 @@ properties:
compatible: compatible:
items: items:
- enum: - enum:
- renesas,r9a09g047-gbeth # RZ/G3E
- renesas,r9a09g056-gbeth # RZ/V2N - renesas,r9a09g056-gbeth # RZ/V2N
- renesas,r9a09g057-gbeth # RZ/V2H(P) - renesas,r9a09g057-gbeth # RZ/V2H(P)
- const: renesas,rzv2h-gbeth - const: renesas,rzv2h-gbeth

View file

@ -30,6 +30,7 @@ select:
- snps,dwmac-4.00 - snps,dwmac-4.00
- snps,dwmac-4.10a - snps,dwmac-4.10a
- snps,dwmac-4.20a - snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a - snps,dwmac-5.10a
- snps,dwmac-5.20 - snps,dwmac-5.20
- snps,dwmac-5.30a - snps,dwmac-5.30a
@ -98,11 +99,13 @@ properties:
- snps,dwmac-4.00 - snps,dwmac-4.00
- snps,dwmac-4.10a - snps,dwmac-4.10a
- snps,dwmac-4.20a - snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a - snps,dwmac-5.10a
- snps,dwmac-5.20 - snps,dwmac-5.20
- snps,dwmac-5.30a - snps,dwmac-5.30a
- snps,dwxgmac - snps,dwxgmac
- snps,dwxgmac-2.10 - snps,dwxgmac-2.10
- sophgo,sg2042-dwmac
- sophgo,sg2044-dwmac - sophgo,sg2044-dwmac
- starfive,jh7100-dwmac - starfive,jh7100-dwmac
- starfive,jh7110-dwmac - starfive,jh7110-dwmac
@ -641,6 +644,7 @@ allOf:
- snps,dwmac-4.00 - snps,dwmac-4.00
- snps,dwmac-4.10a - snps,dwmac-4.10a
- snps,dwmac-4.20a - snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a - snps,dwmac-5.10a
- snps,dwmac-5.20 - snps,dwmac-5.20
- snps,dwmac-5.30a - snps,dwmac-5.30a

View file

@ -1,57 +0,0 @@
Altera SOCFPGA SoC DWMAC controller
This is a variant of the dwmac/stmmac driver an inherits all descriptions
present in Documentation/devicetree/bindings/net/stmmac.txt.
The device node has additional properties:
Required properties:
- compatible : For Cyclone5/Arria5 SoCs it should contain
"altr,socfpga-stmmac". For Arria10/Agilex/Stratix10 SoCs
"altr,socfpga-stmmac-a10-s10".
Along with "snps,dwmac" and any applicable more detailed
designware version numbers documented in stmmac.txt
- altr,sysmgr-syscon : Should be the phandle to the system manager node that
encompasses the glue register, the register offset, and the register shift.
On Cyclone5/Arria5, the register shift represents the PHY mode bits, while
on the Arria10/Stratix10/Agilex platforms, the register shift represents
bit for each emac to enable/disable signals from the FPGA fabric to the
EMAC modules.
- altr,f2h_ptp_ref_clk use f2h_ptp_ref_clk instead of default eosc1 clock
for ptp ref clk. This affects all emacs as the clock is common.
Optional properties:
altr,emac-splitter: Should be the phandle to the emac splitter soft IP node if
DWMAC controller is connected emac splitter.
phy-mode: The phy mode the ethernet operates in
altr,sgmii-to-sgmii-converter: phandle to the TSE SGMII converter
This device node has additional phandle dependency, the sgmii converter:
Required properties:
- compatible : Should be altr,gmii-to-sgmii-2.0
- reg-names : Should be "eth_tse_control_port"
Example:
gmii_to_sgmii_converter: phy@100000240 {
compatible = "altr,gmii-to-sgmii-2.0";
reg = <0x00000001 0x00000240 0x00000008>,
<0x00000001 0x00000200 0x00000040>;
reg-names = "eth_tse_control_port";
clocks = <&sgmii_1_clk_0 &emac1 1 &sgmii_clk_125 &sgmii_clk_125>;
clock-names = "tse_pcs_ref_clk_clock_connection", "tse_rx_cdr_refclk";
};
gmac0: ethernet@ff700000 {
compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
altr,sysmgr-syscon = <&sysmgr 0x60 0>;
reg = <0xff700000 0x2000>;
interrupts = <0 115 4>;
interrupt-names = "macirq";
mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
clocks = <&emac_0_clk>;
clock-names = "stmmaceth";
phy-mode = "sgmii";
altr,gmii-to-sgmii-converter = <&gmii_to_sgmii_converter>;
};

View file

@ -0,0 +1,114 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/sophgo,cv1800b-dwmac.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sophgo CV1800B DWMAC glue layer
maintainers:
- Inochi Amaoto <inochiama@gmail.com>
select:
properties:
compatible:
contains:
enum:
- sophgo,cv1800b-dwmac
required:
- compatible
properties:
compatible:
items:
- const: sophgo,cv1800b-dwmac
- const: snps,dwmac-3.70a
reg:
maxItems: 1
clocks:
items:
- description: GMAC main clock
- description: PTP clock
clock-names:
items:
- const: stmmaceth
- const: ptp_ref
interrupts:
maxItems: 1
interrupt-names:
maxItems: 1
resets:
maxItems: 1
reset-names:
const: stmmaceth
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
- interrupt-names
- resets
- reset-names
allOf:
- $ref: snps,dwmac.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
ethernet@4070000 {
compatible = "sophgo,cv1800b-dwmac", "snps,dwmac-3.70a";
reg = <0x04070000 0x10000>;
clocks = <&clk 35>, <&clk 36>;
clock-names = "stmmaceth", "ptp_ref";
interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq";
phy-handle = <&internal_ephy>;
phy-mode = "internal";
resets = <&rst 12>;
reset-names = "stmmaceth";
rx-fifo-depth = <8192>;
tx-fifo-depth = <8192>;
snps,multicast-filter-bins = <0>;
snps,perfect-filter-entries = <1>;
snps,aal;
snps,txpbl = <8>;
snps,rxpbl = <8>;
snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
snps,axi-config = <&gmac0_stmmac_axi_setup>;
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
};
gmac0_mtl_rx_setup: rx-queues-config {
snps,rx-queues-to-use = <1>;
queue0 {};
};
gmac0_mtl_tx_setup: tx-queues-config {
snps,tx-queues-to-use = <1>;
queue0 {};
};
gmac0_stmmac_axi_setup: stmmac-axi-config {
snps,blen = <16 8 4 0 0 0 0>;
snps,rd_osr_lmt = <2>;
snps,wr_osr_lmt = <1>;
};
};

View file

@ -15,14 +15,19 @@ select:
contains: contains:
enum: enum:
- sophgo,sg2044-dwmac - sophgo,sg2044-dwmac
- sophgo,sg2042-dwmac
required: required:
- compatible - compatible
properties: properties:
compatible: compatible:
items: oneOf:
- const: sophgo,sg2044-dwmac - items:
- const: snps,dwmac-5.30a - const: sophgo,sg2042-dwmac
- const: snps,dwmac-5.00a
- items:
- const: sophgo,sg2044-dwmac
- const: snps,dwmac-5.30a
reg: reg:
maxItems: 1 maxItems: 1

View file

@ -284,7 +284,7 @@ examples:
ti,syscon-efuse = <&mcu_conf 0x200>; ti,syscon-efuse = <&mcu_conf 0x200>;
phys = <&phy_gmii_sel 1>; phys = <&phy_gmii_sel 1>;
phy-mode = "rgmii-rxid"; phy-mode = "rgmii-id";
phy-handle = <&phy0>; phy-handle = <&phy0>;
}; };
}; };

View file

@ -12,7 +12,7 @@ maintainers:
description: | description: |
This node provides properties for configuring the ath9k wireless device. This node provides properties for configuring the ath9k wireless device.
The node is expected to be specified as a child node of the PCI controller The node is expected to be specified as a child node of the PCI controller
to which the wireless chip is connected. or AHB bus to which the wireless chip is connected.
allOf: allOf:
- $ref: ieee80211.yaml# - $ref: ieee80211.yaml#
@ -35,6 +35,12 @@ properties:
- pci168c,0034 # AR9462 - pci168c,0034 # AR9462
- pci168c,0036 # AR9565 - pci168c,0036 # AR9565
- pci168c,0037 # AR1111 and AR9485 - pci168c,0037 # AR1111 and AR9485
- qca,ar9130-wifi
- qca,ar9330-wifi
- qca,ar9340-wifi
- qca,qca9530-wifi
- qca,qca9550-wifi
- qca,qca9560-wifi
reg: reg:
maxItems: 1 maxItems: 1
@ -88,3 +94,13 @@ examples:
nvmem-cell-names = "mac-address", "calibration"; nvmem-cell-names = "mac-address", "calibration";
}; };
}; };
- |
ahb {
#address-cells = <1>;
#size-cells = <1>;
wifi@180c0000 {
compatible = "qca,ar9130-wifi";
reg = <0x180c0000 0x230000>;
interrupts = <2>;
};
};

View file

@ -35,6 +35,12 @@ properties:
string to uniquely identify variant of the calibration data for designs string to uniquely identify variant of the calibration data for designs
with colliding bus and device ids with colliding bus and device ids
firmware-name:
maxItems: 1
description:
If present, a board or platform specific string used to lookup
usecase-specific firmware files for the device.
vddrfacmn-supply: vddrfacmn-supply:
description: VDD_RFA_CMN supply regulator handle description: VDD_RFA_CMN supply regulator handle

View file

@ -0,0 +1,49 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/ralink,rt2880.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ralink RT2880 wireless device
maintainers:
- Stanislaw Gruszka <stf_xl@wp.pl>
description: |
This node provides properties for configuring RT2880 SOC wifi devices.
The node is expected to be specified as a root node of the device.
allOf:
- $ref: ieee80211.yaml#
properties:
compatible:
enum:
- ralink,rt2880-wifi
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- clocks
- interrupts
additionalProperties: false
examples:
- |
wifi@110180000 {
compatible = "ralink,rt2880-wifi";
reg = <0x10180000 0x40000>;
clocks = <&sysc 16>;
interrupt-parent = <&cpuintc>;
interrupts = <6>;
};

View file

@ -214,6 +214,24 @@ offset values are fractional with 3-digit decimal places and shell be
divided with ``DPLL_PIN_PHASE_OFFSET_DIVIDER`` to get integer part and divided with ``DPLL_PIN_PHASE_OFFSET_DIVIDER`` to get integer part and
modulo divided to get fractional part. modulo divided to get fractional part.
Phase offset monitor
====================
Phase offset measurement is typically performed against the current active
source. However, some DPLL (Digital Phase-Locked Loop) devices may offer
the capability to monitor phase offsets across all available inputs.
The attribute and current feature state shall be included in the response
message of the ``DPLL_CMD_DEVICE_GET`` command for supported DPLL devices.
In such cases, users can also control the feature using the
``DPLL_CMD_DEVICE_SET`` command by setting the ``enum dpll_feature_state``
values for the attribute.
Once enabled the phase offset measurements for the input shall be returned
in the ``DPLL_A_PIN_PHASE_OFFSET`` attribute.
=============================== ========================
``DPLL_A_PHASE_OFFSET_MONITOR`` attr state of a feature
=============================== ========================
Embedded SYNC Embedded SYNC
============= =============
@ -235,6 +253,31 @@ the pin.
``DPLL_A_PIN_ESYNC_PULSE`` pulse type of Embedded SYNC ``DPLL_A_PIN_ESYNC_PULSE`` pulse type of Embedded SYNC
========================================= ================================= ========================================= =================================
Reference SYNC
==============
The device may support the Reference SYNC feature, which allows the combination
of two inputs into a input pair. In this configuration, clock signals
from both inputs are used to synchronize the DPLL device. The higher frequency
signal is utilized for the loop bandwidth of the DPLL, while the lower frequency
signal is used to syntonize the output signal of the DPLL device. This feature
enables the provision of a high-quality loop bandwidth signal from an external
source.
A capable input provides a list of inputs that can be bound with to create
Reference SYNC. To control this feature, the user must request a desired
state for a target pin: use ``DPLL_PIN_STATE_CONNECTED`` to enable or
``DPLL_PIN_STATE_DISCONNECTED`` to disable the feature. An input pin can be
bound to only one other pin at any given time.
============================== ==========================================
``DPLL_A_PIN_REFERENCE_SYNC`` nested attribute for providing info or
requesting configuration of the Reference
SYNC feature
``DPLL_A_PIN_ID`` target pin id for Reference SYNC feature
``DPLL_A_PIN_STATE`` state of Reference SYNC connection
============================== ==========================================
Configuration commands group Configuration commands group
============================ ============================

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: conntrack name: conntrack
protocol: netlink-raw protocol: netlink-raw
protonum: 12 protonum: 12
@ -195,17 +195,17 @@ attribute-sets:
- -
name: tuple-attrs name: tuple-attrs
attributes: attributes:
- -
name: tuple-ip name: tuple-ip
type: nest type: nest
nested-attributes: tuple-ip-attrs nested-attributes: tuple-ip-attrs
doc: conntrack l3 information doc: conntrack l3 information
- -
name: tuple-proto name: tuple-proto
type: nest type: nest
nested-attributes: tuple-proto-attrs nested-attributes: tuple-proto-attrs
doc: conntrack l4 information doc: conntrack l4 information
- -
name: tuple-zone name: tuple-zone
type: u16 type: u16
byte-order: big-endian byte-order: big-endian
@ -213,74 +213,74 @@ attribute-sets:
- -
name: protoinfo-tcp-attrs name: protoinfo-tcp-attrs
attributes: attributes:
- -
name: tcp-state name: tcp-state
type: u8 type: u8
enum: nf-ct-tcp-state enum: nf-ct-tcp-state
doc: tcp connection state doc: tcp connection state
- -
name: tcp-wscale-original name: tcp-wscale-original
type: u8 type: u8
doc: window scaling factor in original direction doc: window scaling factor in original direction
- -
name: tcp-wscale-reply name: tcp-wscale-reply
type: u8 type: u8
doc: window scaling factor in reply direction doc: window scaling factor in reply direction
- -
name: tcp-flags-original name: tcp-flags-original
type: binary type: binary
struct: nf-ct-tcp-flags-mask struct: nf-ct-tcp-flags-mask
- -
name: tcp-flags-reply name: tcp-flags-reply
type: binary type: binary
struct: nf-ct-tcp-flags-mask struct: nf-ct-tcp-flags-mask
- -
name: protoinfo-dccp-attrs name: protoinfo-dccp-attrs
attributes: attributes:
- -
name: dccp-state name: dccp-state
type: u8 type: u8
doc: dccp connection state doc: dccp connection state
- -
name: dccp-role name: dccp-role
type: u8 type: u8
- -
name: dccp-handshake-seq name: dccp-handshake-seq
type: u64 type: u64
byte-order: big-endian byte-order: big-endian
- -
name: dccp-pad name: dccp-pad
type: pad type: pad
- -
name: protoinfo-sctp-attrs name: protoinfo-sctp-attrs
attributes: attributes:
- -
name: sctp-state name: sctp-state
type: u8 type: u8
doc: sctp connection state doc: sctp connection state
enum: nf-ct-sctp-state enum: nf-ct-sctp-state
- -
name: vtag-original name: vtag-original
type: u32 type: u32
byte-order: big-endian byte-order: big-endian
- -
name: vtag-reply name: vtag-reply
type: u32 type: u32
byte-order: big-endian byte-order: big-endian
- -
name: protoinfo-attrs name: protoinfo-attrs
attributes: attributes:
- -
name: protoinfo-tcp name: protoinfo-tcp
type: nest type: nest
nested-attributes: protoinfo-tcp-attrs nested-attributes: protoinfo-tcp-attrs
doc: conntrack tcp state information doc: conntrack tcp state information
- -
name: protoinfo-dccp name: protoinfo-dccp
type: nest type: nest
nested-attributes: protoinfo-dccp-attrs nested-attributes: protoinfo-dccp-attrs
doc: conntrack dccp state information doc: conntrack dccp state information
- -
name: protoinfo-sctp name: protoinfo-sctp
type: nest type: nest
nested-attributes: protoinfo-sctp-attrs nested-attributes: protoinfo-sctp-attrs

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: devlink name: devlink
protocol: genetlink-legacy protocol: genetlink-legacy
@ -224,6 +224,10 @@ definitions:
value: 10 value: 10
- -
name: binary name: binary
-
name: rate-tc-index-max
type: const
value: 7
attribute-sets: attribute-sets:
- -
@ -744,7 +748,7 @@ attribute-sets:
name: flash-update-overwrite-mask name: flash-update-overwrite-mask
type: bitfield32 type: bitfield32
enum: flash-overwrite enum: flash-overwrite
enum-as-flags: True enum-as-flags: true
- -
name: reload-action name: reload-action
type: u8 type: u8
@ -753,12 +757,12 @@ attribute-sets:
name: reload-actions-performed name: reload-actions-performed
type: bitfield32 type: bitfield32
enum: reload-action enum: reload-action
enum-as-flags: True enum-as-flags: true
- -
name: reload-limits name: reload-limits
type: bitfield32 type: bitfield32
enum: reload-action enum: reload-action
enum-as-flags: True enum-as-flags: true
- -
name: dev-stats name: dev-stats
type: nest type: nest
@ -812,14 +816,14 @@ attribute-sets:
name: rate-parent-node-name name: rate-parent-node-name
type: string type: string
- -
name: region-max-snapshots name: region-max-snapshots
type: u32 type: u32
- -
name: linecard-index name: linecard-index
type: u32 type: u32
- -
name: linecard-state name: linecard-state
type: u8 type: u8
- -
name: linecard-type name: linecard-type
type: string type: string
@ -844,7 +848,11 @@ attribute-sets:
- -
name: region-direct name: region-direct
type: flag type: flag
-
name: rate-tc-bws
type: nest
multi-attr: true
nested-attributes: dl-rate-tc-bws
- -
name: dl-dev-stats name: dl-dev-stats
subset-of: devlink subset-of: devlink
@ -917,7 +925,7 @@ attribute-sets:
name: caps name: caps
type: bitfield32 type: bitfield32
enum: port-fn-attr-cap enum: port-fn-attr-cap
enum-as-flags: True enum-as-flags: true
- -
name: dl-dpipe-tables name: dl-dpipe-tables
@ -1139,7 +1147,7 @@ attribute-sets:
- -
name: param-type name: param-type
# TODO: fill in the attribute param-value-list # TODO: fill in the attribute param-value-list
- -
name: dl-region-snapshots name: dl-region-snapshots
@ -1249,6 +1257,22 @@ attribute-sets:
- -
name: flash name: flash
type: flag type: flag
-
name: dl-rate-tc-bws
name-prefix: devlink-rate-tc-attr-
attributes:
-
name: index
type: u8
checks:
max: rate-tc-index-max
-
name: bw
type: u32
doc: |
Specifies the bandwidth share assigned to the Traffic Class.
The bandwidth for the traffic class is determined
in proportion to the sum of the shares of all configured classes.
operations: operations:
enum-model: directional enum-model: directional
@ -1257,7 +1281,7 @@ operations:
name: get name: get
doc: Get devlink instances. doc: Get devlink instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1266,7 +1290,7 @@ operations:
attributes: &dev-id-attrs attributes: &dev-id-attrs
- bus-name - bus-name
- dev-name - dev-name
reply: &get-reply reply: &get-reply
value: 3 value: 3
attributes: attributes:
- bus-name - bus-name
@ -1280,7 +1304,7 @@ operations:
name: port-get name: port-get
doc: Get devlink port instances. doc: Get devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1304,8 +1328,8 @@ operations:
name: port-set name: port-set
doc: Set devlink port instances. doc: Set devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1321,8 +1345,8 @@ operations:
name: port-new name: port-new
doc: Create devlink port instances. doc: Create devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1343,8 +1367,8 @@ operations:
name: port-del name: port-del
doc: Delete devlink port instances. doc: Delete devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1355,8 +1379,8 @@ operations:
name: port-split name: port-split
doc: Split devlink port instances. doc: Split devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1371,8 +1395,8 @@ operations:
name: port-unsplit name: port-unsplit
doc: Unplit devlink port instances. doc: Unplit devlink port instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1383,7 +1407,7 @@ operations:
name: sb-get name: sb-get
doc: Get shared buffer instances. doc: Get shared buffer instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1405,7 +1429,7 @@ operations:
name: sb-pool-get name: sb-pool-get
doc: Get shared buffer pool instances. doc: Get shared buffer pool instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1428,8 +1452,8 @@ operations:
name: sb-pool-set name: sb-pool-set
doc: Set shared buffer pool instances. doc: Set shared buffer pool instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1446,7 +1470,7 @@ operations:
name: sb-port-pool-get name: sb-port-pool-get
doc: Get shared buffer port-pool combinations and threshold. doc: Get shared buffer port-pool combinations and threshold.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1470,8 +1494,8 @@ operations:
name: sb-port-pool-set name: sb-port-pool-set
doc: Set shared buffer port-pool combinations and threshold. doc: Set shared buffer port-pool combinations and threshold.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1488,7 +1512,7 @@ operations:
name: sb-tc-pool-bind-get name: sb-tc-pool-bind-get
doc: Get shared buffer port-TC to pool bindings and threshold. doc: Get shared buffer port-TC to pool bindings and threshold.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1513,8 +1537,8 @@ operations:
name: sb-tc-pool-bind-set name: sb-tc-pool-bind-set
doc: Set shared buffer port-TC to pool bindings and threshold. doc: Set shared buffer port-TC to pool bindings and threshold.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1533,8 +1557,8 @@ operations:
name: sb-occ-snapshot name: sb-occ-snapshot
doc: Take occupancy snapshot of shared buffer. doc: Take occupancy snapshot of shared buffer.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1549,8 +1573,8 @@ operations:
name: sb-occ-max-clear name: sb-occ-max-clear
doc: Clear occupancy watermarks of shared buffer. doc: Clear occupancy watermarks of shared buffer.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1564,8 +1588,8 @@ operations:
name: eswitch-get name: eswitch-get
doc: Get eswitch attributes. doc: Get eswitch attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1584,8 +1608,8 @@ operations:
name: eswitch-set name: eswitch-set
doc: Set eswitch attributes. doc: Set eswitch attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1596,7 +1620,7 @@ operations:
name: dpipe-table-get name: dpipe-table-get
doc: Get dpipe table attributes. doc: Get dpipe table attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1616,7 +1640,7 @@ operations:
name: dpipe-entries-get name: dpipe-entries-get
doc: Get dpipe entries attributes. doc: Get dpipe entries attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1635,7 +1659,7 @@ operations:
name: dpipe-headers-get name: dpipe-headers-get
doc: Get dpipe headers attributes. doc: Get dpipe headers attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1653,8 +1677,8 @@ operations:
name: dpipe-table-counters-set name: dpipe-table-counters-set
doc: Set dpipe counter attributes. doc: Set dpipe counter attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1669,8 +1693,8 @@ operations:
name: resource-set name: resource-set
doc: Set resource attributes. doc: Set resource attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1685,7 +1709,7 @@ operations:
name: resource-dump name: resource-dump
doc: Get resource attributes. doc: Get resource attributes.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1704,8 +1728,8 @@ operations:
name: reload name: reload
doc: Reload devlink. doc: Reload devlink.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-dev-lock pre: devlink-nl-pre-doit-dev-lock
post: devlink-nl-post-doit-dev-lock post: devlink-nl-post-doit-dev-lock
@ -1728,7 +1752,7 @@ operations:
name: param-get name: param-get
doc: Get param instances. doc: Get param instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1748,8 +1772,8 @@ operations:
name: param-set name: param-set
doc: Set param instances. doc: Set param instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1766,7 +1790,7 @@ operations:
name: region-get name: region-get
doc: Get region instances. doc: Get region instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1789,8 +1813,8 @@ operations:
name: region-new name: region-new
doc: Create region snapshot. doc: Create region snapshot.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1810,8 +1834,8 @@ operations:
name: region-del name: region-del
doc: Delete region snapshot. doc: Delete region snapshot.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1822,8 +1846,8 @@ operations:
name: region-read name: region-read
doc: Read region data. doc: Read region data.
attribute-set: devlink attribute-set: devlink
dont-validate: [ dump-strict ] dont-validate: [dump-strict]
flags: [ admin-perm ] flags: [admin-perm]
dump: dump:
request: request:
attributes: attributes:
@ -1847,7 +1871,7 @@ operations:
name: port-param-get name: port-param-get
doc: Get port param instances. doc: Get port param instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict, dump-strict ] dont-validate: [strict, dump-strict]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1863,8 +1887,8 @@ operations:
name: port-param-set name: port-param-set
doc: Set port param instances. doc: Set port param instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1873,9 +1897,11 @@ operations:
- -
name: info-get name: info-get
doc: Get device information, like driver name, hardware and firmware versions etc. doc: |
Get device information, like driver name, hardware and firmware versions
etc.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1900,7 +1926,7 @@ operations:
name: health-reporter-get name: health-reporter-get
doc: Get health reporter instances. doc: Get health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1921,8 +1947,8 @@ operations:
name: health-reporter-set name: health-reporter-set
doc: Set health reporter instances. doc: Set health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1940,8 +1966,8 @@ operations:
name: health-reporter-recover name: health-reporter-recover
doc: Recover health reporter instances. doc: Recover health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1952,8 +1978,8 @@ operations:
name: health-reporter-diagnose name: health-reporter-diagnose
doc: Diagnose health reporter instances. doc: Diagnose health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1964,8 +1990,8 @@ operations:
name: health-reporter-dump-get name: health-reporter-dump-get
doc: Dump health reporter instances. doc: Dump health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ dump-strict ] dont-validate: [dump-strict]
flags: [ admin-perm ] flags: [admin-perm]
dump: dump:
request: request:
attributes: *health-reporter-id-attrs attributes: *health-reporter-id-attrs
@ -1978,8 +2004,8 @@ operations:
name: health-reporter-dump-clear name: health-reporter-dump-clear
doc: Clear dump of health reporter instances. doc: Clear dump of health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -1990,8 +2016,8 @@ operations:
name: flash-update name: flash-update
doc: Flash update devlink instances. doc: Flash update devlink instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2007,7 +2033,7 @@ operations:
name: trap-get name: trap-get
doc: Get trap instances. doc: Get trap instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2029,8 +2055,8 @@ operations:
name: trap-set name: trap-set
doc: Set trap instances. doc: Set trap instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2045,7 +2071,7 @@ operations:
name: trap-group-get name: trap-group-get
doc: Get trap group instances. doc: Get trap group instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2067,8 +2093,8 @@ operations:
name: trap-group-set name: trap-group-set
doc: Set trap group instances. doc: Set trap group instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2084,7 +2110,7 @@ operations:
name: trap-policer-get name: trap-policer-get
doc: Get trap policer instances. doc: Get trap policer instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2106,8 +2132,8 @@ operations:
name: trap-policer-set name: trap-policer-set
doc: Get trap policer instances. doc: Get trap policer instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2123,8 +2149,8 @@ operations:
name: health-reporter-test name: health-reporter-test
doc: Test health reporter instances. doc: Test health reporter instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit-port-optional pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2136,7 +2162,7 @@ operations:
name: rate-get name: rate-get
doc: Get rate instances. doc: Get rate instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2159,8 +2185,8 @@ operations:
name: rate-set name: rate-set
doc: Set rate instances. doc: Set rate instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2174,13 +2200,14 @@ operations:
- rate-tx-priority - rate-tx-priority
- rate-tx-weight - rate-tx-weight
- rate-parent-node-name - rate-parent-node-name
- rate-tc-bws
- -
name: rate-new name: rate-new
doc: Create rate instances. doc: Create rate instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2194,13 +2221,14 @@ operations:
- rate-tx-priority - rate-tx-priority
- rate-tx-weight - rate-tx-weight
- rate-parent-node-name - rate-parent-node-name
- rate-tc-bws
- -
name: rate-del name: rate-del
doc: Delete rate instances. doc: Delete rate instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2214,7 +2242,7 @@ operations:
name: linecard-get name: linecard-get
doc: Get line card instances. doc: Get line card instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2236,8 +2264,8 @@ operations:
name: linecard-set name: linecard-set
doc: Set line card instances. doc: Set line card instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2252,7 +2280,7 @@ operations:
name: selftests-get name: selftests-get
doc: Get device selftest instances. doc: Get device selftest instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit
@ -2269,8 +2297,8 @@ operations:
name: selftests-run name: selftests-run
doc: Run device selftest instances. doc: Run device selftest instances.
attribute-set: devlink attribute-set: devlink
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: devlink-nl-pre-doit pre: devlink-nl-pre-doit
post: devlink-nl-post-doit post: devlink-nl-post-doit

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: dpll name: dpll
doc: DPLL subsystem. doc: DPLL subsystem.
@ -240,6 +240,20 @@ definitions:
integer part of a measured phase offset value. integer part of a measured phase offset value.
Value of (DPLL_A_PHASE_OFFSET % DPLL_PHASE_OFFSET_DIVIDER) is a Value of (DPLL_A_PHASE_OFFSET % DPLL_PHASE_OFFSET_DIVIDER) is a
fractional part of a measured phase offset value. fractional part of a measured phase offset value.
-
type: enum
name: feature-state
doc: |
Allow control (enable/disable) and status checking over features.
entries:
-
name: disable
doc: |
feature shall be disabled
-
name: enable
doc: |
feature shall be enabled
attribute-sets: attribute-sets:
- -
@ -293,6 +307,14 @@ attribute-sets:
be put to message multiple times to indicate possible parallel be put to message multiple times to indicate possible parallel
quality levels (e.g. one specified by ITU option 1 and another quality levels (e.g. one specified by ITU option 1 and another
one specified by option 2). one specified by option 2).
-
name: phase-offset-monitor
type: u32
enum: feature-state
doc: Receive or request state of phase offset monitor feature.
If enabled, dpll device shall monitor and notify all currently
available inputs for changes of their phase offset against the
dpll device.
- -
name: pin name: pin
enum-name: dpll_a_pin enum-name: dpll_a_pin
@ -406,6 +428,15 @@ attribute-sets:
doc: | doc: |
A ratio of high to low state of a SYNC signal pulse embedded A ratio of high to low state of a SYNC signal pulse embedded
into base clock frequency. Value is in percents. into base clock frequency. Value is in percents.
-
name: reference-sync
type: nest
multi-attr: true
nested-attributes: reference-sync
doc: |
Capable pin provides list of pins that can be bound to create a
reference-sync pin pair.
- -
name: pin-parent-device name: pin-parent-device
subset-of: pin subset-of: pin
@ -436,6 +467,14 @@ attribute-sets:
name: frequency-min name: frequency-min
- -
name: frequency-max name: frequency-max
-
name: reference-sync
subset-of: pin
attributes:
-
name: id
-
name: state
operations: operations:
enum-name: dpll_cmd enum-name: dpll_cmd
@ -445,7 +484,7 @@ operations:
doc: | doc: |
Get id of dpll device that matches given attributes Get id of dpll device that matches given attributes
attribute-set: dpll attribute-set: dpll
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-lock-doit pre: dpll-lock-doit
@ -464,7 +503,7 @@ operations:
doc: | doc: |
Get list of DPLL devices (dump) or attributes of a single dpll device Get list of DPLL devices (dump) or attributes of a single dpll device
attribute-set: dpll attribute-set: dpll
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-pre-doit pre: dpll-pre-doit
@ -483,6 +522,7 @@ operations:
- temp - temp
- clock-id - clock-id
- type - type
- phase-offset-monitor
dump: dump:
reply: *dev-attrs reply: *dev-attrs
@ -491,7 +531,7 @@ operations:
name: device-set name: device-set
doc: Set attributes for a DPLL device doc: Set attributes for a DPLL device
attribute-set: dpll attribute-set: dpll
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-pre-doit pre: dpll-pre-doit
@ -499,6 +539,7 @@ operations:
request: request:
attributes: attributes:
- id - id
- phase-offset-monitor
- -
name: device-create-ntf name: device-create-ntf
doc: Notification about device appearing doc: Notification about device appearing
@ -519,7 +560,7 @@ operations:
doc: | doc: |
Get id of a pin that matches given attributes Get id of a pin that matches given attributes
attribute-set: pin attribute-set: pin
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-lock-doit pre: dpll-lock-doit
@ -547,7 +588,7 @@ operations:
a given dpll device a given dpll device
- do request with target dpll and target pin - single pin attributes - do request with target dpll and target pin - single pin attributes
attribute-set: pin attribute-set: pin
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-pin-pre-doit pre: dpll-pin-pre-doit
@ -574,6 +615,7 @@ operations:
- esync-frequency - esync-frequency
- esync-frequency-supported - esync-frequency-supported
- esync-pulse - esync-pulse
- reference-sync
dump: dump:
request: request:
@ -585,7 +627,7 @@ operations:
name: pin-set name: pin-set
doc: Set attributes of a target pin doc: Set attributes of a target pin
attribute-set: pin attribute-set: pin
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: dpll-pin-pre-doit pre: dpll-pin-pre-doit
@ -601,6 +643,7 @@ operations:
- parent-pin - parent-pin
- phase-adjust - phase-adjust
- esync-frequency - esync-frequency
- reference-sync
- -
name: pin-create-ntf name: pin-create-ntf
doc: Notification about pin appearing doc: Notification about pin appearing

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ethtool name: ethtool
protocol: genetlink-legacy protocol: genetlink-legacy
@ -15,14 +15,14 @@ definitions:
name: udp-tunnel-type name: udp-tunnel-type
enum-name: enum-name:
type: enum type: enum
entries: [ vxlan, geneve, vxlan-gpe ] entries: [vxlan, geneve, vxlan-gpe]
enum-cnt-name: __ethtool-udp-tunnel-type-cnt enum-cnt-name: __ethtool-udp-tunnel-type-cnt
render-max: true render-max: true
- -
name: stringset name: stringset
type: enum type: enum
entries: [] entries: []
header: linux/ethtool.h # skip rendering, no actual definition header: linux/ethtool.h # skip rendering, no actual definition
- -
name: header-flags name: header-flags
type: flags type: flags
@ -58,49 +58,51 @@ definitions:
doc: The firmware flashing process was stopped due to an error. doc: The firmware flashing process was stopped due to an error.
- -
name: c33-pse-ext-state name: c33-pse-ext-state
doc: "groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4 Variables" doc: |
"groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4
Variables"
type: enum type: enum
name-prefix: ethtool-c33-pse-ext-state- name-prefix: ethtool-c33-pse-ext-state-
header: linux/ethtool.h header: linux/ethtool.h
entries: entries:
- -
name: none name: none
doc: none doc: none
- -
name: error-condition name: error-condition
doc: Group of error_condition states doc: Group of error_condition states
- -
name: mr-mps-valid name: mr-mps-valid
doc: Group of mr_mps_valid states doc: Group of mr_mps_valid states
- -
name: mr-pse-enable name: mr-pse-enable
doc: Group of mr_pse_enable states doc: Group of mr_pse_enable states
- -
name: option-detect-ted name: option-detect-ted
doc: Group of option_detect_ted states doc: Group of option_detect_ted states
- -
name: option-vport-lim name: option-vport-lim
doc: Group of option_vport_lim states doc: Group of option_vport_lim states
- -
name: ovld-detected name: ovld-detected
doc: Group of ovld_detected states doc: Group of ovld_detected states
- -
name: power-not-available name: power-not-available
doc: Group of power_not_available states doc: Group of power_not_available states
- -
name: short-detected name: short-detected
doc: Group of short_detected states doc: Group of short_detected states
- -
name: phy-upstream-type name: phy-upstream-type
enum-name: phy-upstream enum-name: phy-upstream
header: linux/ethtool.h header: linux/ethtool.h
type: enum type: enum
name-prefix: phy-upstream name-prefix: phy-upstream
entries: [ mac, phy ] entries: [mac, phy]
- -
name: tcp-data-split name: tcp-data-split
type: enum type: enum
entries: [ unknown, disabled, enabled ] entries: [unknown, disabled, enabled]
- -
name: hwtstamp-source name: hwtstamp-source
doc: Source of the hardware timestamp doc: Source of the hardware timestamp
@ -119,6 +121,92 @@ definitions:
doc: | doc: |
Hardware timestamp comes from one PHY device Hardware timestamp comes from one PHY device
of the network topology 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: attribute-sets:
- -
@ -1227,7 +1315,7 @@ attribute-sets:
- -
name: stat name: stat
type: u64 type: u64
type-value: [ id ] type-value: [id]
- -
name: hist-rx name: hist-rx
type: nest type: nest
@ -1396,6 +1484,135 @@ attribute-sets:
type: nest type: nest
multi-attr: true multi-attr: true
nested-attributes: c33-pse-pw-limit 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 name: rss
attr-cnt-name: __ethtool-a-rss-cnt attr-cnt-name: __ethtool-a-rss-cnt
@ -1424,9 +1641,14 @@ attribute-sets:
- -
name: input-xfrm name: input-xfrm
type: u32 type: u32
enum: input-xfrm
- -
name: start-context name: start-context
type: u32 type: u32
-
name: flow-hash
type: nest
nested-attributes: flow
- -
name: plca name: plca
attr-cnt-name: __ethtool-a-plca-cnt attr-cnt-name: __ethtool-a-plca-cnt
@ -1556,6 +1778,19 @@ attribute-sets:
name: hwtstamp-flags name: hwtstamp-flags
type: nest type: nest
nested-attributes: bitset 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: operations:
enum-model: directional enum-model: directional
@ -2206,6 +2441,9 @@ operations:
- c33-pse-ext-substate - c33-pse-ext-substate
- c33-pse-avail-pw-limit - c33-pse-avail-pw-limit
- c33-pse-pw-limit-ranges - c33-pse-pw-limit-ranges
- pse-pw-d-id
- pse-prio-max
- pse-prio
dump: *pse-get-op dump: *pse-get-op
- -
name: pse-set name: pse-set
@ -2220,6 +2458,7 @@ operations:
- podl-pse-admin-control - podl-pse-admin-control
- c33-pse-admin-control - c33-pse-admin-control
- c33-pse-avail-pw-limit - c33-pse-avail-pw-limit
- pse-prio
- -
name: rss-get name: rss-get
doc: Get RSS params. doc: Get RSS params.
@ -2239,6 +2478,7 @@ operations:
- indir - indir
- hkey - hkey
- input-xfrm - input-xfrm
- flow-hash
dump: dump:
request: request:
attributes: attributes:
@ -2414,3 +2654,79 @@ operations:
attributes: *tsconfig attributes: *tsconfig
reply: reply:
attributes: *tsconfig 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

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: fou name: fou
protocol: genetlink-legacy protocol: genetlink-legacy
@ -18,7 +18,7 @@ definitions:
name: encap-type name: encap-type
name-prefix: fou-encap- name-prefix: fou-encap-
enum-name: enum-name:
entries: [ unspec, direct, gue ] entries: [unspec, direct, gue]
attribute-sets: attribute-sets:
- -
@ -81,8 +81,8 @@ operations:
doc: Add port. doc: Add port.
attribute-set: fou attribute-set: fou
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: &all_attrs request: &all_attrs
@ -103,8 +103,8 @@ operations:
doc: Delete port. doc: Delete port.
attribute-set: fou attribute-set: fou
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: &select_attrs request: &select_attrs
@ -122,7 +122,7 @@ operations:
name: get name: get
doc: Get tunnel info. doc: Get tunnel info.
attribute-set: fou attribute-set: fou
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
do: do:
request: *select_attrs request: *select_attrs

View file

@ -4,7 +4,7 @@
# #
# Copyright (c) 2023, Oracle and/or its affiliates. # Copyright (c) 2023, Oracle and/or its affiliates.
# #
---
name: handshake name: handshake
protocol: genetlink protocol: genetlink
@ -16,17 +16,17 @@ definitions:
type: enum type: enum
name: handler-class name: handler-class
value-start: 0 value-start: 0
entries: [ none, tlshd, max ] entries: [none, tlshd, max]
- -
type: enum type: enum
name: msg-type name: msg-type
value-start: 0 value-start: 0
entries: [ unspec, clienthello, serverhello ] entries: [unspec, clienthello, serverhello]
- -
type: enum type: enum
name: auth name: auth
value-start: 0 value-start: 0
entries: [ unspec, unauth, psk, x509 ] entries: [unspec, unauth, psk, x509]
attribute-sets: attribute-sets:
- -
@ -71,6 +71,9 @@ attribute-sets:
- -
name: peername name: peername
type: string type: string
-
name: keyring
type: u32
- -
name: done name: done
attributes: attributes:
@ -95,7 +98,7 @@ operations:
name: accept name: accept
doc: Handler retrieves next queued handshake request doc: Handler retrieves next queued handshake request
attribute-set: accept attribute-set: accept
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -109,6 +112,7 @@ operations:
- peer-identity - peer-identity
- certificate - certificate
- peername - peername
- keyring
- -
name: done name: done
doc: Handler reports handshake completion doc: Handler reports handshake completion

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: lockd name: lockd
protocol: genetlink protocol: genetlink
uapi-header: linux/lockd_netlink.h uapi-header: linux/lockd_netlink.h
@ -26,7 +26,7 @@ operations:
name: server-set name: server-set
doc: set the lockd server parameters doc: set the lockd server parameters
attribute-set: server attribute-set: server
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: mptcp_pm name: mptcp_pm
protocol: genetlink-legacy protocol: genetlink-legacy
doc: Multipath TCP. doc: Multipath TCP.
@ -17,72 +17,72 @@ definitions:
enum-name: mptcp-event-type enum-name: mptcp-event-type
name-prefix: mptcp-event- name-prefix: mptcp-event-
entries: entries:
- -
name: unspec name: unspec
doc: unused event doc: unused event
- -
name: created name: created
doc: >- doc: >-
A new MPTCP connection has been created. It is the good time to A new MPTCP connection has been created. It is the good time to
allocate memory and send ADD_ADDR if needed. Depending on the allocate memory and send ADD_ADDR if needed. Depending on the
traffic-patterns it can take a long time until the traffic-patterns it can take a long time until the
MPTCP_EVENT_ESTABLISHED is sent. MPTCP_EVENT_ESTABLISHED is sent.
Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
dport, server-side. dport, server-side.
- -
name: established name: established
doc: >- doc: >-
A MPTCP connection is established (can start new subflows). A MPTCP connection is established (can start new subflows).
Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport, Attributes: token, family, saddr4 | saddr6, daddr4 | daddr6, sport,
dport, server-side. dport, server-side.
- -
name: closed name: closed
doc: >- doc: >-
A MPTCP connection has stopped. A MPTCP connection has stopped.
Attribute: token. Attribute: token.
- -
name: announced name: announced
value: 6 value: 6
doc: >- doc: >-
A new address has been announced by the peer. A new address has been announced by the peer.
Attributes: token, rem_id, family, daddr4 | daddr6 [, dport]. Attributes: token, rem_id, family, daddr4 | daddr6 [, dport].
- -
name: removed name: removed
doc: >- doc: >-
An address has been lost by the peer. An address has been lost by the peer.
Attributes: token, rem_id. Attributes: token, rem_id.
- -
name: sub-established name: sub-established
value: 10 value: 10
doc: >- doc: >-
A new subflow has been established. 'error' should not be set. A new subflow has been established. 'error' should not be set.
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
daddr6, sport, dport, backup, if-idx [, error]. daddr6, sport, dport, backup, if-idx [, error].
- -
name: sub-closed name: sub-closed
doc: >- doc: >-
A subflow has been closed. An error (copy of sk_err) could be set if an A subflow has been closed. An error (copy of sk_err) could be set if
error has been detected for this subflow. an error has been detected for this subflow.
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
daddr6, sport, dport, backup, if-idx [, error]. daddr6, sport, dport, backup, if-idx [, error].
- -
name: sub-priority name: sub-priority
value: 13 value: 13
doc: >- doc: >-
The priority of a subflow has changed. 'error' should not be set. The priority of a subflow has changed. 'error' should not be set.
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 | Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
daddr6, sport, dport, backup, if-idx [, error]. daddr6, sport, dport, backup, if-idx [, error].
- -
name: listener-created name: listener-created
value: 15 value: 15
doc: >- doc: >-
A new PM listener is created. A new PM listener is created.
Attributes: family, sport, saddr4 | saddr6. Attributes: family, sport, saddr4 | saddr6.
- -
name: listener-closed name: listener-closed
doc: >- doc: >-
A PM listener is closed. A PM listener is closed.
Attributes: family, sport, saddr4 | saddr6. Attributes: family, sport, saddr4 | saddr6.
attribute-sets: attribute-sets:
- -
@ -277,8 +277,8 @@ operations:
name: add-addr name: add-addr
doc: Add endpoint doc: Add endpoint
attribute-set: endpoint attribute-set: endpoint
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: &add-addr-attrs do: &add-addr-attrs
request: request:
attributes: attributes:
@ -287,39 +287,39 @@ operations:
name: del-addr name: del-addr
doc: Delete endpoint doc: Delete endpoint
attribute-set: endpoint attribute-set: endpoint
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: *add-addr-attrs do: *add-addr-attrs
- -
name: get-addr name: get-addr
doc: Get endpoint information doc: Get endpoint information
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
do: &get-addr-attrs do: &get-addr-attrs
request: request:
attributes: attributes:
- addr - addr
- token - token
reply: reply:
attributes: attributes:
- addr - addr
dump: dump:
reply: reply:
attributes: attributes:
- addr - addr
- -
name: flush-addrs name: flush-addrs
doc: Flush addresses doc: Flush addresses
attribute-set: endpoint attribute-set: endpoint
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: *add-addr-attrs do: *add-addr-attrs
- -
name: set-limits name: set-limits
doc: Set protocol limits doc: Set protocol limits
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: &mptcp-limits do: &mptcp-limits
request: request:
attributes: attributes:
@ -329,10 +329,10 @@ operations:
name: get-limits name: get-limits
doc: Get protocol limits doc: Get protocol limits
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
do: &mptcp-get-limits do: &mptcp-get-limits
request: request:
attributes: attributes:
- rcv-add-addrs - rcv-add-addrs
- subflows - subflows
reply: reply:
@ -343,8 +343,8 @@ operations:
name: set-flags name: set-flags
doc: Change endpoint flags doc: Change endpoint flags
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: &mptcp-set-flags do: &mptcp-set-flags
request: request:
attributes: attributes:
@ -355,8 +355,8 @@ operations:
name: announce name: announce
doc: Announce new address doc: Announce new address
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: &announce-add do: &announce-add
request: request:
attributes: attributes:
@ -366,19 +366,19 @@ operations:
name: remove name: remove
doc: Announce removal doc: Announce removal
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: do:
request: request:
attributes: attributes:
- token - token
- loc-id - loc-id
- -
name: subflow-create name: subflow-create
doc: Create subflow doc: Create subflow
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: &sf-create do: &sf-create
request: request:
attributes: attributes:
@ -389,6 +389,6 @@ operations:
name: subflow-destroy name: subflow-destroy
doc: Destroy subflow doc: Destroy subflow
attribute-set: attr attribute-set: attr
dont-validate: [ strict ] dont-validate: [strict]
flags: [ uns-admin-perm ] flags: [uns-admin-perm]
do: *sf-create do: *sf-create

View file

@ -1,4 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: net-shaper name: net-shaper
doc: | doc: |
@ -243,7 +244,7 @@ operations:
The set operation can't be used to create a @node scope shaper, The set operation can't be used to create a @node scope shaper,
use the @group operation instead. use the @group operation instead.
attribute-set: net-shaper attribute-set: net-shaper
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: net-shaper-nl-pre-doit pre: net-shaper-nl-pre-doit
@ -274,7 +275,7 @@ operations:
node with infinite bandwidth. The queue's implicit node node with infinite bandwidth. The queue's implicit node
feeds an implicit RR node at the root of the hierarchy. feeds an implicit RR node at the root of the hierarchy.
attribute-set: net-shaper attribute-set: net-shaper
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: net-shaper-nl-pre-doit pre: net-shaper-nl-pre-doit
@ -305,7 +306,7 @@ operations:
full identifier, comprising @binding and @handle, is provided full identifier, comprising @binding and @handle, is provided
as the reply. as the reply.
attribute-set: net-shaper attribute-set: net-shaper
flags: [ admin-perm ] flags: [admin-perm]
do: do:
pre: net-shaper-nl-pre-doit pre: net-shaper-nl-pre-doit

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: netdev name: netdev
doc: doc:
@ -31,7 +31,7 @@ definitions:
- -
name: hw-offload name: hw-offload
doc: doc:
This feature informs if netdev supports XDP hw offloading. This feature informs if netdev supports XDP hw offloading.
- -
name: rx-sg name: rx-sg
doc: doc:
@ -48,16 +48,19 @@ definitions:
entries: entries:
- -
name: timestamp name: timestamp
doc: doc: |
Device is capable of exposing receive HW timestamp via bpf_xdp_metadata_rx_timestamp(). Device is capable of exposing receive HW timestamp via
bpf_xdp_metadata_rx_timestamp().
- -
name: hash name: hash
doc: doc: |
Device is capable of exposing receive packet hash via bpf_xdp_metadata_rx_hash(). Device is capable of exposing receive packet hash via
bpf_xdp_metadata_rx_hash().
- -
name: vlan-tag name: vlan-tag
doc: doc: |
Device is capable of exposing receive packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag(). Device is capable of exposing receive packet VLAN tag via
bpf_xdp_metadata_rx_vlan_tag().
- -
type: flags type: flags
name: xsk-flags name: xsk-flags
@ -77,11 +80,15 @@ definitions:
- -
name: queue-type name: queue-type
type: enum type: enum
entries: [ rx, tx ] entries: [rx, tx]
- -
name: qstats-scope name: qstats-scope
type: flags type: flags
entries: [ queue ] entries: [queue]
-
name: napi-threaded
type: enum
entries: [disabled, enabled]
attribute-sets: attribute-sets:
- -
@ -205,7 +212,7 @@ attribute-sets:
- -
name: alloc-fast name: alloc-fast
type: uint type: uint
value: 8 # reserve some attr ids in case we need more metadata later value: 8 # reserve some attr ids in case we need more metadata later
- -
name: alloc-slow name: alloc-slow
type: uint type: uint
@ -280,6 +287,13 @@ attribute-sets:
doc: The timeout, in nanoseconds, of how long to suspend irq doc: The timeout, in nanoseconds, of how long to suspend irq
processing, if event polling finds events processing, if event polling finds events
type: uint type: uint
-
name: threaded
doc: Whether the NAPI is configured to operate in threaded polling
mode. If this is set to enabled then the NAPI context operates
in threaded polling mode.
type: u32
enum: napi-threaded
- -
name: xsk-info name: xsk-info
attributes: [] attributes: []
@ -367,7 +381,7 @@ attribute-sets:
For drivers supporting XDP, XDP is considered the first layer For drivers supporting XDP, XDP is considered the first layer
of the stack, so packets consumed by XDP are still counted here. of the stack, so packets consumed by XDP are still counted here.
type: uint type: uint
value: 8 # reserve some attr ids in case we need more metadata later value: 8 # reserve some attr ids in case we need more metadata later
- -
name: rx-bytes name: rx-bytes
doc: Successfully received bytes, see `rx-packets`. doc: Successfully received bytes, see `rx-packets`.
@ -425,9 +439,9 @@ attribute-sets:
- -
name: rx-hw-gro-packets name: rx-hw-gro-packets
doc: | doc: |
Number of packets that were coalesced from smaller packets by the device. Number of packets that were coalesced from smaller packets by the
Counts only packets coalesced with the HW-GRO netdevice feature, device. Counts only packets coalesced with the HW-GRO netdevice
LRO-coalesced packets are not counted. feature, LRO-coalesced packets are not counted.
type: uint type: uint
- -
name: rx-hw-gro-bytes name: rx-hw-gro-bytes
@ -436,8 +450,8 @@ attribute-sets:
- -
name: rx-hw-gro-wire-packets name: rx-hw-gro-wire-packets
doc: | doc: |
Number of packets that were coalesced to bigger packetss with the HW-GRO Number of packets that were coalesced to bigger packetss with the
netdevice feature. LRO-coalesced packets are not counted. HW-GRO netdevice feature. LRO-coalesced packets are not counted.
type: uint type: uint
- -
name: rx-hw-gro-wire-bytes name: rx-hw-gro-wire-bytes
@ -691,6 +705,7 @@ operations:
- defer-hard-irqs - defer-hard-irqs
- gro-flush-timeout - gro-flush-timeout
- irq-suspend-timeout - irq-suspend-timeout
- threaded
dump: dump:
request: request:
attributes: attributes:
@ -721,7 +736,7 @@ operations:
name: bind-rx name: bind-rx
doc: Bind dmabuf to netdev doc: Bind dmabuf to netdev
attribute-set: dmabuf attribute-set: dmabuf
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -735,7 +750,7 @@ operations:
name: napi-set name: napi-set
doc: Set configurable NAPI instance settings. doc: Set configurable NAPI instance settings.
attribute-set: napi attribute-set: napi
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -743,6 +758,7 @@ operations:
- defer-hard-irqs - defer-hard-irqs
- gro-flush-timeout - gro-flush-timeout
- irq-suspend-timeout - irq-suspend-timeout
- threaded
- -
name: bind-tx name: bind-tx
doc: Bind dmabuf to netdev for TX doc: Bind dmabuf to netdev for TX
@ -757,7 +773,7 @@ operations:
- id - id
kernel-family: kernel-family:
headers: [ "net/netdev_netlink.h"] headers: ["net/netdev_netlink.h"]
sock-priv: struct netdev_nl_sock sock-priv: struct netdev_nl_sock
mcast-groups: mcast-groups:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nfsd name: nfsd
protocol: genetlink protocol: genetlink
uapi-header: linux/nfsd_netlink.h uapi-header: linux/nfsd_netlink.h
@ -151,7 +151,7 @@ operations:
name: threads-set name: threads-set
doc: set the number of running threads doc: set the number of running threads
attribute-set: server attribute-set: server
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -174,7 +174,7 @@ operations:
name: version-set name: version-set
doc: set nfs enabled versions doc: set nfs enabled versions
attribute-set: server-proto attribute-set: server-proto
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -191,7 +191,7 @@ operations:
name: listener-set name: listener-set
doc: set nfs running sockets doc: set nfs running sockets
attribute-set: server-sock attribute-set: server-sock
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:
@ -208,7 +208,7 @@ operations:
name: pool-mode-set name: pool-mode-set
doc: set the current server pool-mode doc: set the current server pool-mode
attribute-set: pool-mode attribute-set: pool-mode
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
attributes: attributes:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nftables name: nftables
protocol: netlink-raw protocol: netlink-raw
protonum: 12 protonum: 12
@ -1205,7 +1205,9 @@ operations:
- name - name
- -
name: destroytable name: destroytable
doc: Delete an existing table with destroy semantics (ignoring ENOENT errors). doc: |
Delete an existing table with destroy semantics (ignoring ENOENT
errors).
attribute-set: table-attrs attribute-set: table-attrs
fixed-header: nfgenmsg fixed-header: nfgenmsg
do: do:
@ -1249,7 +1251,9 @@ operations:
- name - name
- -
name: destroychain name: destroychain
doc: Delete an existing chain with destroy semantics (ignoring ENOENT errors). doc: |
Delete an existing chain with destroy semantics (ignoring ENOENT
errors).
attribute-set: chain-attrs attribute-set: chain-attrs
fixed-header: nfgenmsg fixed-header: nfgenmsg
do: do:
@ -1307,7 +1311,8 @@ operations:
- name - name
- -
name: destroyrule name: destroyrule
doc: Delete an existing rule with destroy semantics (ignoring ENOENT errors). doc: |
Delete an existing rule with destroy semantics (ignoring ENOENT errors).
attribute-set: rule-attrs attribute-set: rule-attrs
fixed-header: nfgenmsg fixed-header: nfgenmsg
do: do:
@ -1351,7 +1356,8 @@ operations:
- name - name
- -
name: destroyset name: destroyset
doc: Delete an existing set with destroy semantics (ignoring ENOENT errors). doc: |
Delete an existing set with destroy semantics (ignoring ENOENT errors).
attribute-set: set-attrs attribute-set: set-attrs
fixed-header: nfgenmsg fixed-header: nfgenmsg
do: do:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nl80211 name: nl80211
protocol: genetlink-legacy protocol: genetlink-legacy
@ -285,7 +285,7 @@ attribute-sets:
type: u16 type: u16
- -
name: sta-flags name: sta-flags
type: binary # TODO: nest type: binary # TODO: nest
- -
name: sta-listen-interval name: sta-listen-interval
type: u16 type: u16
@ -297,14 +297,14 @@ attribute-sets:
type: u32 type: u32
- -
name: sta-info name: sta-info
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wiphy-bands name: wiphy-bands
type: nest type: nest
nested-attributes: wiphy-bands nested-attributes: wiphy-bands
- -
name: mntr-flags name: mntr-flags
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mesh-id name: mesh-id
type: binary type: binary
@ -317,7 +317,7 @@ attribute-sets:
display-hint: mac display-hint: mac
- -
name: mpath-info name: mpath-info
type: binary # TODO: nest type: binary # TODO: nest
- -
name: bss-cts-prot name: bss-cts-prot
type: u8 type: u8
@ -339,16 +339,16 @@ attribute-sets:
type: binary type: binary
- -
name: reg-rules name: reg-rules
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mesh-config name: mesh-config
type: binary # TODO: nest type: binary # TODO: nest
- -
name: bss-basic-rates name: bss-basic-rates
type: binary type: binary
- -
name: wiphy-txq-params name: wiphy-txq-params
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wiphy-freq name: wiphy-freq
type: u32 type: u32
@ -370,16 +370,16 @@ attribute-sets:
type: u8 type: u8
- -
name: scan-frequencies name: scan-frequencies
type: binary # TODO: nest type: binary # TODO: nest
- -
name: scan-ssids name: scan-ssids
type: binary # TODO: nest type: binary # TODO: nest
- -
name: generation name: generation
type: u32 type: u32
- -
name: bss name: bss
type: binary # TODO: nest type: binary # TODO: nest
- -
name: reg-initiator name: reg-initiator
type: u8 type: u8
@ -416,10 +416,10 @@ attribute-sets:
display-hint: hex display-hint: hex
- -
name: freq-before name: freq-before
type: binary # TODO: nest type: binary # TODO: nest
- -
name: freq-after name: freq-after
type: binary # TODO: nest type: binary # TODO: nest
- -
name: freq-fixed name: freq-fixed
type: flag type: flag
@ -483,10 +483,10 @@ attribute-sets:
type: binary type: binary
- -
name: key name: key
type: binary # TODO: nest type: binary # TODO: nest
- -
name: keys name: keys
type: binary # TODO: nest type: binary # TODO: nest
- -
name: pid name: pid
type: u32 type: u32
@ -495,7 +495,7 @@ attribute-sets:
type: u8 type: u8
- -
name: survey-info name: survey-info
type: binary # TODO: nest type: binary # TODO: nest
- -
name: pmkid name: pmkid
type: binary type: binary
@ -513,7 +513,7 @@ attribute-sets:
type: u8 type: u8
- -
name: tx-rates name: tx-rates
type: binary # TODO: nest type: binary # TODO: nest
- -
name: frame-match name: frame-match
type: binary type: binary
@ -525,7 +525,7 @@ attribute-sets:
type: u32 type: u32
- -
name: cqm name: cqm
type: binary # TODO: nest type: binary # TODO: nest
- -
name: local-state-change name: local-state-change
type: flag type: flag
@ -575,13 +575,13 @@ attribute-sets:
type: u16 type: u16
- -
name: key-default-types name: key-default-types
type: binary # TODO: nest type: binary # TODO: nest
- -
name: max-remain-on-channel-duration name: max-remain-on-channel-duration
type: u32 type: u32
- -
name: mesh-setup name: mesh-setup
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wiphy-antenna-avail-tx name: wiphy-antenna-avail-tx
type: u32 type: u32
@ -596,7 +596,7 @@ attribute-sets:
type: u8 type: u8
- -
name: wowlan-triggers name: wowlan-triggers
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wowlan-triggers-supported name: wowlan-triggers-supported
type: nest type: nest
@ -615,7 +615,7 @@ attribute-sets:
nested-attributes: supported-iftypes nested-attributes: supported-iftypes
- -
name: rekey-data name: rekey-data
type: binary # TODO: nest type: binary # TODO: nest
- -
name: max-num-sched-scan-ssids name: max-num-sched-scan-ssids
type: u8 type: u8
@ -624,7 +624,7 @@ attribute-sets:
type: u16 type: u16
- -
name: scan-supp-rates name: scan-supp-rates
type: binary # TODO: nest type: binary # TODO: nest
- -
name: hidden-ssid name: hidden-ssid
type: u32 type: u32
@ -636,7 +636,7 @@ attribute-sets:
type: binary type: binary
- -
name: sta-wme name: sta-wme
type: binary # TODO: nest type: binary # TODO: nest
- -
name: support-ap-uapsd name: support-ap-uapsd
type: flag type: flag
@ -645,13 +645,13 @@ attribute-sets:
type: flag type: flag
- -
name: sched-scan-match name: sched-scan-match
type: binary # TODO: nest type: binary # TODO: nest
- -
name: max-match-sets name: max-match-sets
type: u8 type: u8
- -
name: pmksa-candidate name: pmksa-candidate
type: binary # TODO: nest type: binary # TODO: nest
- -
name: tx-no-cck-rate name: tx-no-cck-rate
type: flag type: flag
@ -680,7 +680,7 @@ attribute-sets:
name: feature-flags name: feature-flags
type: u32 type: u32
enum: feature-flags enum: feature-flags
enum-as-flags: True enum-as-flags: true
- -
name: probe-resp-offload name: probe-resp-offload
type: u32 type: u32
@ -749,7 +749,7 @@ attribute-sets:
type: u32 type: u32
- -
name: mac-addrs name: mac-addrs
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mac-acl-max name: mac-acl-max
type: u32 type: u32
@ -798,7 +798,7 @@ attribute-sets:
type: u16 type: u16
- -
name: coalesce-rule name: coalesce-rule
type: binary # TODO: nest type: binary # TODO: nest
- -
name: ch-switch-count name: ch-switch-count
type: u32 type: u32
@ -807,7 +807,7 @@ attribute-sets:
type: flag type: flag
- -
name: csa-ies name: csa-ies
type: binary # TODO: nest type: binary # TODO: nest
- -
name: cntdwn-offs-beacon name: cntdwn-offs-beacon
type: binary type: binary
@ -929,13 +929,13 @@ attribute-sets:
type: u32 type: u32
- -
name: sched-scan-plans name: sched-scan-plans
type: binary # TODO: nest type: binary # TODO: nest
- -
name: pbss name: pbss
type: flag type: flag
- -
name: bss-select name: bss-select
type: binary # TODO: nest type: binary # TODO: nest
- -
name: sta-support-p2p-ps name: sta-support-p2p-ps
type: u8 type: u8
@ -944,7 +944,7 @@ attribute-sets:
type: binary type: binary
- -
name: iftype-ext-capa name: iftype-ext-capa
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mu-mimo-group-data name: mu-mimo-group-data
type: binary type: binary
@ -975,10 +975,10 @@ attribute-sets:
type: u32 type: u32
- -
name: nan-func name: nan-func
type: binary # TODO: nest type: binary # TODO: nest
- -
name: nan-match name: nan-match
type: binary # TODO: nest type: binary # TODO: nest
- -
name: fils-kek name: fils-kek
type: binary type: binary
@ -1067,16 +1067,16 @@ attribute-sets:
type: binary type: binary
- -
name: ftm-responder name: ftm-responder
type: binary # TODO: nest type: binary # TODO: nest
- -
name: ftm-responder-stats name: ftm-responder-stats
type: binary # TODO: nest type: binary # TODO: nest
- -
name: timeout name: timeout
type: u32 type: u32
- -
name: peer-measurements name: peer-measurements
type: binary # TODO: nest type: binary # TODO: nest
- -
name: airtime-weight name: airtime-weight
type: u16 type: u16
@ -1094,7 +1094,7 @@ attribute-sets:
type: flag type: flag
- -
name: he-obss-pd name: he-obss-pd
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wiphy-edmg-channels name: wiphy-edmg-channels
type: u8 type: u8
@ -1106,13 +1106,13 @@ attribute-sets:
type: u16 type: u16
- -
name: he-bss-color name: he-bss-color
type: binary # TODO: nest type: binary # TODO: nest
- -
name: iftype-akm-suites name: iftype-akm-suites
type: binary # TODO: nest type: binary # TODO: nest
- -
name: tid-config name: tid-config
type: binary # TODO: nest type: binary # TODO: nest
- -
name: control-port-no-preauth name: control-port-no-preauth
type: flag type: flag
@ -1133,16 +1133,16 @@ attribute-sets:
type: u32 type: u32
- -
name: scan-freq-khz name: scan-freq-khz
type: binary # TODO: nest type: binary # TODO: nest
- -
name: he-6ghz-capability name: he-6ghz-capability
type: binary type: binary
- -
name: fils-discovery name: fils-discovery
type: binary # TOOD: nest type: binary # TOOD: nest
- -
name: unsol-bcast-probe-resp name: unsol-bcast-probe-resp
type: binary # TOOD: nest type: binary # TOOD: nest
- -
name: s1g-capability name: s1g-capability
type: binary type: binary
@ -1173,13 +1173,13 @@ attribute-sets:
type: u8 type: u8
- -
name: color-change-elems name: color-change-elems
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mbssid-config name: mbssid-config
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mbssid-elems name: mbssid-elems
type: binary # TODO: nest type: binary # TODO: nest
- -
name: radar-background name: radar-background
type: flag type: flag
@ -1194,7 +1194,7 @@ attribute-sets:
type: flag type: flag
- -
name: mlo-links name: mlo-links
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mlo-link-id name: mlo-link-id
type: u8 type: u8
@ -1234,7 +1234,7 @@ attribute-sets:
type: flag type: flag
- -
name: ema-rnr-elems name: ema-rnr-elems
type: binary # TODO: nest type: binary # TODO: nest
- -
name: mlo-link-disabled name: mlo-link-disabled
type: flag type: flag
@ -1252,10 +1252,10 @@ attribute-sets:
type: flag type: flag
- -
name: wiphy-radios name: wiphy-radios
type: binary # TODO: nest type: binary # TODO: nest
- -
name: wiphy-interface-combinations name: wiphy-interface-combinations
type: binary # TODO: nest type: binary # TODO: nest
- -
name: vif-radio-mask name: vif-radio-mask
type: u32 type: u32
@ -1799,8 +1799,9 @@ operations:
- -
name: get-wiphy name: get-wiphy
doc: | doc: |
Get information about a wiphy or dump a list of all wiphys. Requests to dump get-wiphy Get information about a wiphy or dump a list of all wiphys. Requests to
should unconditionally include the split-wiphy-dump flag in the request. dump get-wiphy should unconditionally include the split-wiphy-dump flag
in the request.
attribute-set: nl80211-attrs attribute-set: nl80211-attrs
do: do:
request: request:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nlctrl name: nlctrl
protocol: genetlink-legacy protocol: genetlink-legacy
uapi-header: linux/genetlink.h uapi-header: linux/genetlink.h
@ -76,12 +76,12 @@ attribute-sets:
- -
name: policy name: policy
type: nest-type-value type: nest-type-value
type-value: [ policy-id, attr-id ] type-value: [policy-id, attr-id]
nested-attributes: policy-attrs nested-attributes: policy-attrs
- -
name: op-policy name: op-policy
type: nest-type-value type: nest-type-value
type-value: [ op-id ] type-value: [op-id]
nested-attributes: op-policy-attrs nested-attributes: op-policy-attrs
- -
name: op name: op

View file

@ -4,7 +4,7 @@
# #
# Copyright (c) 2024-2025, OpenVPN Inc. # Copyright (c) 2024-2025, OpenVPN Inc.
# #
---
name: ovpn name: ovpn
protocol: genetlink protocol: genetlink
@ -19,7 +19,7 @@ definitions:
- -
type: enum type: enum
name: cipher-alg name: cipher-alg
entries: [ none, aes-gcm, chacha20-poly1305 ] entries: [none, aes-gcm, chacha20-poly1305]
- -
type: enum type: enum
name: del-peer-reason name: del-peer-reason
@ -32,7 +32,7 @@ definitions:
- -
type: enum type: enum
name: key-slot name: key-slot
entries: [ primary, secondary ] entries: [primary, secondary]
attribute-sets: attribute-sets:
- -
@ -42,8 +42,8 @@ attribute-sets:
name: id name: id
type: u32 type: u32
doc: >- doc: >-
The unique ID of the peer in the device context. To be used to identify The unique ID of the peer in the device context. To be used to
peers during operations for a specific device identify peers during operations for a specific device
checks: checks:
max: 0xFFFFFF max: 0xFFFFFF
- -
@ -382,7 +382,7 @@ operations:
- -
name: peer-new name: peer-new
attribute-set: ovpn-peer-new-input attribute-set: ovpn-peer-new-input
flags: [ admin-perm ] flags: [admin-perm]
doc: Add a remote peer doc: Add a remote peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -394,7 +394,7 @@ operations:
- -
name: peer-set name: peer-set
attribute-set: ovpn-peer-set-input attribute-set: ovpn-peer-set-input
flags: [ admin-perm ] flags: [admin-perm]
doc: modify a remote peer doc: modify a remote peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -406,7 +406,7 @@ operations:
- -
name: peer-get name: peer-get
attribute-set: ovpn attribute-set: ovpn
flags: [ admin-perm ] flags: [admin-perm]
doc: Retrieve data about existing remote peers (or a specific one) doc: Retrieve data about existing remote peers (or a specific one)
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -428,7 +428,7 @@ operations:
- -
name: peer-del name: peer-del
attribute-set: ovpn-peer-del-input attribute-set: ovpn-peer-del-input
flags: [ admin-perm ] flags: [admin-perm]
doc: Delete existing remote peer doc: Delete existing remote peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -446,7 +446,7 @@ operations:
- -
name: key-new name: key-new
attribute-set: ovpn attribute-set: ovpn
flags: [ admin-perm ] flags: [admin-perm]
doc: Add a cipher key for a specific peer doc: Add a cipher key for a specific peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -458,7 +458,7 @@ operations:
- -
name: key-get name: key-get
attribute-set: ovpn-keyconf-get attribute-set: ovpn-keyconf-get
flags: [ admin-perm ] flags: [admin-perm]
doc: Retrieve non-sensitive data about peer key and cipher doc: Retrieve non-sensitive data about peer key and cipher
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -473,7 +473,7 @@ operations:
- -
name: key-swap name: key-swap
attribute-set: ovpn-keyconf-swap-input attribute-set: ovpn-keyconf-swap-input
flags: [ admin-perm ] flags: [admin-perm]
doc: Swap primary and secondary session keys for a specific peer doc: Swap primary and secondary session keys for a specific peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit
@ -492,7 +492,7 @@ operations:
- -
name: key-del name: key-del
attribute-set: ovpn-keyconf-del-input attribute-set: ovpn-keyconf-del-input
flags: [ admin-perm ] flags: [admin-perm]
doc: Delete cipher key for a specific peer doc: Delete cipher key for a specific peer
do: do:
pre: ovpn-nl-pre-doit pre: ovpn-nl-pre-doit

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ovs_datapath name: ovs_datapath
version: 2 version: 2
protocol: genetlink-legacy protocol: genetlink-legacy

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ovs_flow name: ovs_flow
version: 1 version: 1
protocol: genetlink-legacy protocol: genetlink-legacy
@ -293,9 +293,10 @@ definitions:
enum-name: ovs-hash-alg enum-name: ovs-hash-alg
type: enum type: enum
doc: | doc: |
Data path hash algorithm for computing Datapath hash. The algorithm type only specifies Data path hash algorithm for computing Datapath hash. The algorithm type
the fields in a flow will be used as part of the hash. Each datapath is free to use its only specifies the fields in a flow will be used as part of the hash. Each
own hash algorithm. The hash value will be opaque to the user space daemon. datapath is free to use its own hash algorithm. The hash value will be
opaque to the user space daemon.
entries: entries:
- ovs-hash-alg-l4 - ovs-hash-alg-l4
@ -615,7 +616,9 @@ attribute-sets:
name: set name: set
type: nest type: nest
nested-attributes: key-attrs nested-attributes: key-attrs
doc: Replaces the contents of an existing header. The single nested attribute specifies a header to modify and its value. doc: |
Replaces the contents of an existing header. The single nested
attribute specifies a header to modify and its value.
- -
name: push-vlan name: push-vlan
type: binary type: binary
@ -630,7 +633,8 @@ attribute-sets:
type: nest type: nest
nested-attributes: sample-attrs nested-attributes: sample-attrs
doc: | doc: |
Probabilistically executes actions, as specified in the nested attributes. Probabilistically executes actions, as specified in the nested
attributes.
- -
name: recirc name: recirc
type: u32 type: u32

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ovs_vport name: ovs_vport
version: 2 version: 2
protocol: genetlink-legacy protocol: genetlink-legacy
@ -21,7 +21,7 @@ definitions:
type: enum type: enum
enum-name: ovs-vport-type enum-name: ovs-vport-type
name-prefix: ovs-vport-type- name-prefix: ovs-vport-type-
entries: [ unspec, netdev, internal, gre, vxlan, geneve ] entries: [unspec, netdev, internal, gre, vxlan, geneve]
- -
name: ovs-vport-stats name: ovs-vport-stats
type: struct type: struct

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-addr name: rt-addr
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/rtnetlink.h uapi-header: linux/rtnetlink.h

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-link name: rt-link
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/rtnetlink.h uapi-header: linux/rtnetlink.h

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-neigh name: rt-neigh
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/rtnetlink.h uapi-header: linux/rtnetlink.h
@ -79,6 +79,7 @@ definitions:
entries: entries:
- managed - managed
- locked - locked
- ext-validated
- -
name: rtm-type name: rtm-type
type: enum type: enum

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-route name: rt-route
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/rtnetlink.h uapi-header: linux/rtnetlink.h
@ -117,7 +117,7 @@ attribute-sets:
name: multipath name: multipath
type: binary type: binary
- -
name: protoinfo # not used name: protoinfo # not used
type: binary type: binary
- -
name: flow name: flow
@ -127,10 +127,10 @@ attribute-sets:
type: binary type: binary
struct: rta-cacheinfo struct: rta-cacheinfo
- -
name: session # not used name: session # not used
type: binary type: binary
- -
name: mp-algo # not used name: mp-algo # not used
type: binary type: binary
- -
name: table name: table
@ -155,7 +155,7 @@ attribute-sets:
type: u16 type: u16
- -
name: encap name: encap
type: binary # tunnel specific nest type: binary # tunnel specific nest
- -
name: expires name: expires
type: u32 type: u32

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-rule name: rt-rule
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/fib_rules.h uapi-header: linux/fib_rules.h

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: tc name: tc
protocol: netlink-raw protocol: netlink-raw
uapi-header: linux/pkt_cls.h uapi-header: linux/pkt_cls.h
@ -56,6 +56,23 @@ definitions:
- tundf - tundf
- tunoam - tunoam
- tuncrit - tuncrit
-
name: dualpi2-drop-overload
type: enum
entries: [overflow, drop]
-
name: dualpi2-drop-early
type: enum
entries: [drop-dequeue, drop-enqueue]
-
name: dualpi2-ecn-mask
type: enum
value-start: 1
entries: [l4s-ect, cla-ect, any-ect]
-
name: dualpi2-split-gso
type: enum
entries: [no-split-gso, split-gso]
- -
name: tc-stats name: tc-stats
type: struct type: struct
@ -76,7 +93,8 @@ definitions:
name: overlimits name: overlimits
type: u32 type: u32
doc: | doc: |
Number of throttle events when this flow goes out of allocated bandwidth Number of throttle events when this flow goes out of allocated
bandwidth
- -
name: bps name: bps
type: u32 type: u32
@ -751,7 +769,9 @@ definitions:
- -
name: count name: count
type: u32 type: u32
doc: How many drops we've done since the last time we entered dropping state doc: |
How many drops we've done since the last time we entered dropping
state
- -
name: lastcount name: lastcount
type: u32 type: u32
@ -822,6 +842,58 @@ definitions:
- -
name: drop-overmemory name: drop-overmemory
type: u32 type: u32
-
name: tc-dualpi2-xstats
type: struct
members:
-
name: prob
type: u32
doc: Current base PI probability
-
name: delay-c
type: u32
doc: Current C-queue delay in microseconds
-
name: delay-l
type: u32
doc: Current L-queue delay in microseconds
-
name: pkts-in-c
type: u32
doc: Number of packets enqueued in the C-queue
-
name: pkts-in-l
type: u32
doc: Number of packets enqueued in the L-queue
-
name: maxq
type: u32
doc: Maximum number of packets seen by the DualPI2
-
name: ecn-mark
type: u32
doc: All packets marked with ECN
-
name: step-mark
type: u32
doc: Only packets marked with ECN due to L-queue step AQM
-
name: credit
type: s32
doc: Current credit value for WRR
-
name: memory-used
type: u32
doc: Memory used in bytes by the DualPI2
-
name: max-memory-used
type: u32
doc: Maximum memory used in bytes by the DualPI2
-
name: memory-limit
type: u32
doc: Memory limit in bytes
- -
name: tc-fq-pie-xstats name: tc-fq-pie-xstats
type: struct type: struct
@ -845,7 +917,7 @@ definitions:
- -
name: ecn-mark name: ecn-mark
type: u32 type: u32
doc: Packets marked with ecn doc: Packets marked with ECN
- -
name: new-flow-count name: new-flow-count
type: u32 type: u32
@ -988,7 +1060,7 @@ definitions:
- -
name: ecn-mark name: ecn-mark
type: u32 type: u32
doc: Packets marked with ecn doc: Packets marked with ECN
- -
name: tc-red-xstats name: tc-red-xstats
type: struct type: struct
@ -1161,7 +1233,7 @@ definitions:
- -
name: keys name: keys
type: binary type: binary
struct: tc-u32-key # TODO: array struct: tc-u32-key # TODO: array
- -
name: tc-u32-pcnt name: tc-u32-pcnt
type: struct type: struct
@ -1174,7 +1246,7 @@ definitions:
type: u64 type: u64
- -
name: kcnts name: kcnts
type: u64 # TODO: array type: u64 # TODO: array
- -
name: tcf-t name: tcf-t
type: struct type: struct
@ -1336,7 +1408,7 @@ definitions:
- -
name: keys name: keys
type: binary type: binary
struct: tc-pedit-key # TODO: array struct: tc-pedit-key # TODO: array
- -
name: tc-pedit-key name: tc-pedit-key
type: struct type: struct
@ -2281,6 +2353,78 @@ attribute-sets:
- -
name: quantum name: quantum
type: u32 type: u32
-
name: dualpi2-attrs
name-prefix: tca-dualpi2-
attributes:
-
name: limit
type: u32
doc: Limit of total number of packets in queue
-
name: memory-limit
type: u32
doc: Memory limit of total number of packets in queue
-
name: target
type: u32
doc: Classic target delay in microseconds
-
name: tupdate
type: u32
doc: Drop probability update interval time in microseconds
-
name: alpha
type: u32
doc: Integral gain factor in Hz for PI controller
-
name: beta
type: u32
doc: Proportional gain factor in Hz for PI controller
-
name: step-thresh-pkts
type: u32
doc: L4S step marking threshold in packets
-
name: step-thresh-us
type: u32
doc: L4S Step marking threshold in microseconds
-
name: min-qlen-step
type: u32
doc: Packets enqueued to the L-queue can apply the step threshold
when the queue length of L-queue is larger than this value.
(0 is recommended)
-
name: coupling
type: u8
doc: Probability coupling factor between Classic and L4S
(2 is recommended)
-
name: drop-overload
type: u8
doc: Control the overload strategy (drop to preserve latency or
let the queue overflow)
enum: dualpi2-drop-overload
-
name: drop-early
type: u8
doc: Decide where the Classic packets are PI-based dropped or marked
enum: dualpi2-drop-early
-
name: c-protection
type: u8
doc: Classic WRR weight in percentage (from 0 to 100)
-
name: ecn-mask
type: u8
doc: Configure the L-queue ECN classifier
enum: dualpi2-ecn-mask
-
name: split-gso
type: u8
doc: Split aggregated skb or not
enum: dualpi2-split-gso
- -
name: ematch-attrs name: ematch-attrs
name-prefix: tca-ematch- name-prefix: tca-ematch-
@ -2885,7 +3029,7 @@ attribute-sets:
attributes: attributes:
- -
name: parms name: parms
type: binary # array of struct: tc-gred-qopt type: binary # array of struct: tc-gred-qopt
- -
name: stab name: stab
type: binary type: binary
@ -3335,10 +3479,10 @@ attribute-sets:
struct: tc-police struct: tc-police
- -
name: rate name: rate
type: binary # TODO type: binary # TODO
- -
name: peakrate name: peakrate
type: binary # TODO type: binary # TODO
- -
name: avrate name: avrate
type: u32 type: u32
@ -3698,13 +3842,16 @@ sub-messages:
value: choke value: choke
attribute-set: choke-attrs attribute-set: choke-attrs
- -
value: clsact # no content value: clsact # no content
- -
value: codel value: codel
attribute-set: codel-attrs attribute-set: codel-attrs
- -
value: drr value: drr
attribute-set: drr-attrs attribute-set: drr-attrs
-
value: dualpi2
attribute-set: dualpi2-attrs
- -
value: etf value: etf
attribute-set: etf-attrs attribute-set: etf-attrs
@ -3742,12 +3889,12 @@ sub-messages:
value: htb value: htb
attribute-set: htb-attrs attribute-set: htb-attrs
- -
value: ingress # no content value: ingress # no content
- -
value: matchall value: matchall
attribute-set: matchall-attrs attribute-set: matchall-attrs
- -
value: mq # no content value: mq # no content
- -
value: mqprio value: mqprio
fixed-header: tc-mqprio-qopt fixed-header: tc-mqprio-qopt
@ -3872,6 +4019,9 @@ sub-messages:
- -
value: codel value: codel
fixed-header: tc-codel-xstats fixed-header: tc-codel-xstats
-
value: dualpi2
fixed-header: tc-dualpi2-xstats
- -
value: fq value: fq
fixed-header: tc-fq-qd-stats fixed-header: tc-fq-qd-stats

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: tcp_metrics name: tcp_metrics
protocol: genetlink-legacy protocol: genetlink-legacy
@ -133,7 +133,7 @@ operations:
doc: Retrieve metrics. doc: Retrieve metrics.
attribute-set: tcp-metrics attribute-set: tcp-metrics
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
do: do:
request: &sel_attrs request: &sel_attrs
@ -162,8 +162,8 @@ operations:
doc: Delete metrics. doc: Delete metrics.
attribute-set: tcp-metrics attribute-set: tcp-metrics
dont-validate: [ strict, dump ] dont-validate: [strict, dump]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: *sel_attrs request: *sel_attrs

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: team name: team
protocol: genetlink-legacy protocol: genetlink-legacy
@ -152,7 +152,7 @@ operations:
doc: No operation doc: No operation
value: 0 value: 0
attribute-set: team attribute-set: team
dont-validate: [ strict ] dont-validate: [strict]
do: do:
# Actually it only reply the team netlink family # Actually it only reply the team netlink family
@ -164,8 +164,8 @@ operations:
name: options-set name: options-set
doc: Set team options doc: Set team options
attribute-set: team attribute-set: team
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: &option_attrs request: &option_attrs
@ -178,8 +178,8 @@ operations:
name: options-get name: options-get
doc: Get team options info doc: Get team options info
attribute-set: team attribute-set: team
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:
@ -191,8 +191,8 @@ operations:
name: port-list-get name: port-list-get
doc: Get team ports info doc: Get team ports info
attribute-set: team attribute-set: team
dont-validate: [ strict ] dont-validate: [strict]
flags: [ admin-perm ] flags: [admin-perm]
do: do:
request: request:

View file

@ -209,13 +209,10 @@ Libbpf
Libbpf is a helper library for eBPF and XDP that makes using these Libbpf is a helper library for eBPF and XDP that makes using these
technologies a lot simpler. It also contains specific helper functions technologies a lot simpler. It also contains specific helper functions
in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It in tools/testing/selftests/bpf/xsk.h for facilitating the use of
contains two types of functions: those that can be used to make the AF_XDP. It contains two types of functions: those that can be used to
setup of AF_XDP socket easier and ones that can be used in the data make the setup of AF_XDP socket easier and ones that can be used in the
plane to access the rings safely and quickly. To see an example on how data plane to access the rings safely and quickly.
to use this API, please take a look at the sample application in
samples/bpf/xdpsock_usr.c which uses libbpf for both setup and data
plane operations.
We recommend that you use this library unless you have become a power We recommend that you use this library unless you have become a power
user. It will make your program a lot simpler. user. It will make your program a lot simpler.
@ -372,9 +369,8 @@ needs to explicitly notify the kernel to send any packets put on the
TX ring. This can be accomplished either by a poll() call, as in the TX ring. This can be accomplished either by a poll() call, as in the
RX path, or by calling sendto(). RX path, or by calling sendto().
An example of how to use this flag can be found in An example with the use of libbpf helpers would look like this for the
samples/bpf/xdpsock_user.c. An example with the use of libbpf helpers TX path:
would look like this for the TX path:
.. code-block:: c .. code-block:: c
@ -442,6 +438,15 @@ is created by a privileged process and passed to a non-privileged one.
Once the option is set, kernel will refuse attempts to bind that socket Once the option is set, kernel will refuse attempts to bind that socket
to a different interface. Updating the value requires CAP_NET_RAW. to a different interface. Updating the value requires CAP_NET_RAW.
XDP_MAX_TX_SKB_BUDGET setsockopt
--------------------------------
This setsockopt sets the maximum number of descriptors that can be handled
and passed to the driver at one send syscall. It is applied in the copy
mode to allow application to tune the per-socket maximum iteration for
better throughput and less frequency of send syscall.
Allowed range is [32, xs->tx->nentries].
XDP_STATISTICS getsockopt XDP_STATISTICS getsockopt
------------------------- -------------------------
@ -549,12 +554,12 @@ later in this document.
Usage Usage
----- -----
In order to use AF_XDP sockets two parts are needed. The In order to use AF_XDP sockets two parts are needed. The user-space
user-space application and the XDP program. For a complete setup and application and the XDP program. For a complete setup and usage example,
usage example, please refer to the sample application. The user-space please refer to the xdp-project at
side is xdpsock_user.c and the XDP side is part of libbpf. https://github.com/xdp-project/bpf-examples/tree/main/AF_XDP-example.
The XDP code sample included in tools/lib/bpf/xsk.c is the following: The XDP code sample is the following:
.. code-block:: c .. code-block:: c
@ -752,11 +757,12 @@ to facilitate extending a zero-copy driver with multi-buffer support.
Sample application Sample application
================== ==================
There is a xdpsock benchmarking/test application that can be found at
There is a xdpsock benchmarking/test application included that https://github.com/xdp-project/bpf-examples/tree/main/AF_XDP-example
demonstrates how to use AF_XDP sockets with private UMEMs. Say that that demonstrates how to use AF_XDP sockets with private
you would like your UDP traffic from port 4242 to end up in queue 16, UMEMs. Say that you would like your UDP traffic from port 4242 to end
that we will enable AF_XDP on. Here, we use ethtool for this:: up in queue 16, that we will enable AF_XDP on. Here, we use ethtool
for this::
ethtool -N p3p2 rx-flow-hash udp4 fn ethtool -N p3p2 rx-flow-hash udp4 fn
ethtool -N p3p2 flow-type udp4 src-port 4242 dst-port 4242 \ ethtool -N p3p2 flow-type udp4 src-port 4242 dst-port 4242 \
@ -773,7 +779,7 @@ can be displayed with "-h", as usual.
This sample application uses libbpf to make the setup and usage of This sample application uses libbpf to make the setup and usage of
AF_XDP simpler. If you want to know how the raw uapi of AF_XDP is AF_XDP simpler. If you want to know how the raw uapi of AF_XDP is
really used to make something more advanced, take a look at the libbpf really used to make something more advanced, take a look at the libbpf
code in tools/lib/bpf/xsk.[ch]. code in tools/testing/selftests/bpf/xsk.[ch].
FAQ FAQ
======= =======

View file

@ -562,6 +562,12 @@ lacp_rate
The default is slow. The default is slow.
broadcast_neighbor
Option specifying whether to broadcast ARP/ND packets to all
active slaves. This option has no effect in modes other than
802.3ad mode. The default is off (0).
max_bonds max_bonds
Specifies the number of bonding devices to create for this Specifies the number of bonding devices to create for this
@ -767,8 +773,9 @@ num_unsol_na
greater than 1. greater than 1.
The valid range is 0 - 255; the default value is 1. These options The valid range is 0 - 255; the default value is 1. These options
affect only the active-backup mode. These options were added for affect the active-backup or 802.3ad (broadcast_neighbor enabled) mode.
bonding versions 3.3.0 and 3.4.0 respectively. These options were added for bonding versions 3.3.0 and 3.4.0
respectively.
From Linux 3.0 and bonding version 3.7.1, these notifications From Linux 3.0 and bonding version 3.7.1, these notifications
are generated by the ipv4 and ipv6 code and the numbers of are generated by the ipv4 and ipv6 code and the numbers of

View file

@ -1104,15 +1104,12 @@ for writing CAN network device driver are described below:
General Settings General Settings
---------------- ----------------
CAN network device drivers can use alloc_candev_mqs() and friends instead of
alloc_netdev_mqs(), to automatically take care of CAN-specific setup:
.. code-block:: C .. code-block:: C
dev->type = ARPHRD_CAN; /* the netdevice hardware type */ dev = alloc_candev_mqs(...);
dev->flags = IFF_NOARP; /* CAN has no arp */
dev->mtu = CAN_MTU; /* sizeof(struct can_frame) -> Classical CAN interface */
or alternative, when the controller supports CAN with flexible data rate:
dev->mtu = CANFD_MTU; /* sizeof(struct canfd_frame) -> CAN FD interface */
The struct can_frame or struct canfd_frame is the payload of each socket The struct can_frame or struct canfd_frame is the payload of each socket
buffer (skbuff) in the protocol family PF_CAN. buffer (skbuff) in the protocol family PF_CAN.

View file

@ -56,6 +56,9 @@ ena_netdev.[ch] Main Linux kernel driver.
ena_ethtool.c ethtool callbacks. ena_ethtool.c ethtool callbacks.
ena_xdp.[ch] XDP files ena_xdp.[ch] XDP files
ena_pci_id_tbl.h Supported device IDs. ena_pci_id_tbl.h Supported device IDs.
ena_phc.[ch] PTP hardware clock infrastructure (see `PHC`_ for more info)
ena_devlink.[ch] devlink files.
ena_debugfs.[ch] debugfs files.
================= ====================================================== ================= ======================================================
Management Interface: Management Interface:
@ -221,6 +224,99 @@ descriptor it was received on would be recycled. When a packet smaller
than RX copybreak bytes is received, it is copied into a new memory than RX copybreak bytes is received, it is copied into a new memory
buffer and the RX descriptor is returned to HW. buffer and the RX descriptor is returned to HW.
.. _`PHC`:
PTP Hardware Clock (PHC)
========================
.. _`ptp-userspace-api`: https://docs.kernel.org/driver-api/ptp.html#ptp-hardware-clock-user-space-api
.. _`testptp`: https://elixir.bootlin.com/linux/latest/source/tools/testing/selftests/ptp/testptp.c
ENA Linux driver supports PTP hardware clock providing timestamp reference to achieve nanosecond resolution.
**PHC support**
PHC depends on the PTP module, which needs to be either loaded as a module or compiled into the kernel.
Verify if the PTP module is present:
.. code-block:: shell
grep -w '^CONFIG_PTP_1588_CLOCK=[ym]' /boot/config-`uname -r`
- If no output is provided, the ENA driver cannot be loaded with PHC support.
**PHC activation**
The feature is turned off by default, in order to turn the feature on, the ENA driver
can be loaded in the following way:
- devlink:
.. code-block:: shell
sudo devlink dev param set pci/<domain:bus:slot.function> name enable_phc value true cmode driverinit
sudo devlink dev reload pci/<domain:bus:slot.function>
# for example:
sudo devlink dev param set pci/0000:00:06.0 name enable_phc value true cmode driverinit
sudo devlink dev reload pci/0000:00:06.0
All available PTP clock sources can be tracked here:
.. code-block:: shell
ls /sys/class/ptp
PHC support and capabilities can be verified using ethtool:
.. code-block:: shell
ethtool -T <interface>
**PHC timestamp**
To retrieve PHC timestamp, use `ptp-userspace-api`_, usage example using `testptp`_:
.. code-block:: shell
testptp -d /dev/ptp$(ethtool -T <interface> | awk '/PTP Hardware Clock:/ {print $NF}') -k 1
PHC get time requests should be within reasonable bounds,
avoid excessive utilization to ensure optimal performance and efficiency.
The ENA device restricts the frequency of PHC get time requests to a maximum
of 125 requests per second. If this limit is surpassed, the get time request
will fail, leading to an increment in the phc_err_ts statistic.
**PHC statistics**
PHC can be monitored using debugfs (if mounted):
.. code-block:: shell
sudo cat /sys/kernel/debug/<domain:bus:slot.function>/phc_stats
# for example:
sudo cat /sys/kernel/debug/0000:00:06.0/phc_stats
PHC errors must remain below 1% of all PHC requests to maintain the desired level of accuracy and reliability
================= ======================================================
**phc_cnt** | Number of successful retrieved timestamps (below expire timeout).
**phc_exp** | Number of expired retrieved timestamps (above expire timeout).
**phc_skp** | Number of skipped get time attempts (during block period).
**phc_err_dv** | Number of failed get time attempts due to device errors (entering into block state).
**phc_err_ts** | Number of failed get time attempts due to timestamp errors (entering into block state),
| This occurs if driver exceeded the request limit or device received an invalid timestamp.
================= ======================================================
PHC timeouts:
================= ======================================================
**expire** | Max time for a valid timestamp retrieval, passing this threshold will fail
| the get time request and block new requests until block timeout.
**block** | Blocking period starts once get time request expires or fails,
| all get time requests during block period will be skipped.
================= ======================================================
Statistics Statistics
========== ==========
@ -268,6 +364,18 @@ RSS
- The user can provide a hash key, hash function, and configure the - The user can provide a hash key, hash function, and configure the
indirection table through `ethtool(8)`. indirection table through `ethtool(8)`.
DEVLINK SUPPORT
===============
.. _`devlink`: https://www.kernel.org/doc/html/latest/networking/devlink/index.html
`devlink`_ supports reloading the driver and initiating re-negotiation with the ENA device
.. code-block:: shell
sudo devlink dev reload pci/<domain:bus:slot.function>
# for example:
sudo devlink dev reload pci/0000:00:06.0
DATA PATH DATA PATH
========= =========

View file

@ -58,7 +58,9 @@ Contents:
ti/tlan ti/tlan
ti/icssg_prueth ti/icssg_prueth
wangxun/txgbe wangxun/txgbe
wangxun/txgbevf
wangxun/ngbe wangxun/ngbe
wangxun/ngbevf
.. only:: subproject and html .. only:: subproject and html

View file

@ -927,6 +927,19 @@ To enable/disable UDP Segmentation Offload, issue the following command::
# ethtool -K <ethX> tx-udp-segmentation [off|on] # ethtool -K <ethX> tx-udp-segmentation [off|on]
PTP pin interface
-----------------
All adapters support standard PTP pin interface. SDPs (Software Definable Pin)
are single ended pins with both periodic output and external timestamp
supported. There are also specific differential input/output pins (TIME_SYNC,
1PPS) with only one of the functions supported.
There are adapters with DPLL, where pins are connected to the DPLL instead of
being exposed on the board. You have to be aware that in those configurations,
only SDP pins are exposed and each pin has its own fixed direction.
To see input signal on those PTP pins, you need to configure DPLL properly.
Output signal is only visible on DPLL and to send it to the board SMA/U.FL pins,
DPLL output pins have to be manually configured.
GNSS module GNSS module
----------- -----------

View file

@ -1341,3 +1341,35 @@ Device Counters
- The number of times the device owned queue had not enough buffers - The number of times the device owned queue had not enough buffers
allocated. allocated.
- Error - Error
* - `pci_bw_inbound_high`
- The number of times the device crossed the high inbound pcie bandwidth
threshold. To be compared to pci_bw_inbound_low to check if the device
is in a congested state.
If pci_bw_inbound_high == pci_bw_inbound_low then the device is not congested.
If pci_bw_inbound_high > pci_bw_inbound_low then the device is congested.
- Tnformative
* - `pci_bw_inbound_low`
- The number of times the device crossed the low inbound PCIe bandwidth
threshold. To be compared to pci_bw_inbound_high to check if the device
is in a congested state.
If pci_bw_inbound_high == pci_bw_inbound_low then the device is not congested.
If pci_bw_inbound_high > pci_bw_inbound_low then the device is congested.
- Informative
* - `pci_bw_outbound_high`
- The number of times the device crossed the high outbound pcie bandwidth
threshold. To be compared to pci_bw_outbound_low to check if the device
is in a congested state.
If pci_bw_outbound_high == pci_bw_outbound_low then the device is not congested.
If pci_bw_outbound_high > pci_bw_outbound_low then the device is congested.
- Informative
* - `pci_bw_outbound_low`
- The number of times the device crossed the low outbound PCIe bandwidth
threshold. To be compared to pci_bw_outbound_high to check if the device
is in a congested state.
If pci_bw_outbound_high == pci_bw_outbound_low then the device is not congested.
If pci_bw_outbound_high > pci_bw_outbound_low then the device is congested.
- Informative

View file

@ -28,6 +28,36 @@ devlink dev info provides version information for all three components. In
addition to the version the hg commit hash of the build is included as a addition to the version the hg commit hash of the build is included as a
separate entry. separate entry.
Configuration
-------------
Ringparams (ethtool -g / -G)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fbnic has two submission (host -> device) rings for every completion
(device -> host) ring. The three ring objects together form a single
"queue" as used by higher layer software (a Rx, or a Tx queue).
For Rx the two submission rings are used to pass empty pages to the NIC.
Ring 0 is the Header Page Queue (HPQ), NIC will use its pages to place
L2-L4 headers (or full frames if frame is not header-data split).
Ring 1 is the Payload Page Queue (PPQ) and used for packet payloads.
The completion ring is used to receive packet notifications / metadata.
ethtool ``rx`` ringparam maps to the size of the completion ring,
``rx-mini`` to the HPQ, and ``rx-jumbo`` to the PPQ.
For Tx both submission rings can be used to submit packets, the completion
ring carries notifications for both. fbnic uses one of the submission
rings for normal traffic from the stack and the second one for XDP frames.
ethtool ``tx`` ringparam controls both the size of the submission rings
and the completion ring.
Every single entry on the HPQ and PPQ (``rx-mini``, ``rx-jumbo``)
corresponds to 4kB of allocated memory, while entries on the remaining
rings are in units of descriptors (8B). The ideal ratio of submission
and completion ring sizes will depend on the workload, as for small packets
multiple packets will fit into a single page.
Upgrading Firmware Upgrading Firmware
------------------ ------------------

View file

@ -0,0 +1,16 @@
.. SPDX-License-Identifier: GPL-2.0+
==================================================================
Linux Base Virtual Function Driver for Wangxun(R) Gigabit Ethernet
==================================================================
WangXun Gigabit Virtual Function Linux driver.
Copyright(c) 2015 - 2025 Beijing WangXun Technology Co., Ltd.
Support
=======
For general information, go to the website at:
https://www.net-swift.com
If you got any problem, contact Wangxun support team via nic-support@net-swift.com
and Cc: netdev.

View file

@ -0,0 +1,16 @@
.. SPDX-License-Identifier: GPL-2.0+
===========================================================================
Linux Base Virtual Function Driver for Wangxun(R) 10/25/40 Gigabit Ethernet
===========================================================================
WangXun 10/25/40 Gigabit Virtual Function Linux driver.
Copyright(c) 2015 - 2025 Beijing WangXun Technology Co., Ltd.
Support
=======
For general information, go to the website at:
https://www.net-swift.com
If you got any problem, contact Wangxun support team via nic-support@net-swift.com
and Cc: netdev.

View file

@ -137,3 +137,9 @@ own name.
* - ``event_eq_size`` * - ``event_eq_size``
- u32 - u32
- Control the size of asynchronous control events EQ. - Control the size of asynchronous control events EQ.
* - ``enable_phc``
- Boolean
- Enable PHC (PTP Hardware Clock) functionality in the device.
* - ``clock_id``
- u64
- Clock ID used by the device for registering DPLL devices and pins.

View file

@ -418,6 +418,14 @@ API allows to configure following rate object's parameters:
to all node children limits. ``tx_max`` is an upper limit for children. to all node children limits. ``tx_max`` is an upper limit for children.
``tx_share`` is a total bandwidth distributed among children. ``tx_share`` is a total bandwidth distributed among children.
``tc_bw``
Allow users to set the bandwidth allocation per traffic class on rate
objects. This enables fine-grained QoS configurations by assigning a relative
share value to each traffic class. The bandwidth is distributed in proportion
to the share value for each class, relative to the sum of all shares.
When applied to a non-leaf node, tc_bw determines how bandwidth is shared
among its child elements.
``tx_priority`` and ``tx_weight`` can be used simultaneously. In that case ``tx_priority`` and ``tx_weight`` can be used simultaneously. In that case
nodes with the same priority form a WFQ subgroup in the sibling group nodes with the same priority form a WFQ subgroup in the sibling group
and arbitration among them is based on assigned weights. and arbitration among them is based on assigned weights.

View file

@ -85,6 +85,8 @@ parameters, info versions, and other features it supports.
ionic ionic
ice ice
ixgbe ixgbe
kvaser_pciefd
kvaser_usb
mlx4 mlx4
mlx5 mlx5
mlxsw mlxsw
@ -98,3 +100,4 @@ parameters, info versions, and other features it supports.
iosm iosm
octeontx2 octeontx2
sfc sfc
zl3073x

View file

@ -0,0 +1,24 @@
.. SPDX-License-Identifier: GPL-2.0
=============================
kvaser_pciefd devlink support
=============================
This document describes the devlink features implemented by the
``kvaser_pciefd`` device driver.
Info versions
=============
The ``kvaser_pciefd`` driver reports the following versions
.. list-table:: devlink info versions implemented
:widths: 5 5 90
* - Name
- Type
- Description
* - ``fw``
- running
- Version of the firmware running on the device. Also available
through ``ethtool -i`` as ``firmware-version``.

View file

@ -0,0 +1,33 @@
.. SPDX-License-Identifier: GPL-2.0
==========================
kvaser_usb devlink support
==========================
This document describes the devlink features implemented by the
``kvaser_usb`` device driver.
Info versions
=============
The ``kvaser_usb`` driver reports the following versions
.. list-table:: devlink info versions implemented
:widths: 5 5 90
* - Name
- Type
- Description
* - ``fw``
- running
- Version of the firmware running on the device. Also available
through ``ethtool -i`` as ``firmware-version``.
* - ``board.rev``
- fixed
- The device hardware revision.
* - ``board.id``
- fixed
- The device EAN (product number).
* - ``serial_number``
- fixed
- The device serial number.

View file

@ -62,7 +62,7 @@ Rate objects
The ``netdevsim`` driver supports rate objects management, which includes: The ``netdevsim`` driver supports rate objects management, which includes:
- registerging/unregistering leaf rate objects per VF devlink port; - registering/unregistering leaf rate objects per VF devlink port;
- creation/deletion node rate objects; - creation/deletion node rate objects;
- setting tx_share and tx_max rate values for any rate object type; - setting tx_share and tx_max rate values for any rate object type;
- setting parent node for any rate object type. - setting parent node for any rate object type.

View file

@ -0,0 +1,51 @@
.. SPDX-License-Identifier: GPL-2.0
=======================
zl3073x devlink support
=======================
This document describes the devlink features implemented by the ``zl3073x``
device driver.
Parameters
==========
.. list-table:: Generic parameters implemented
:widths: 5 5 90
* - Name
- Mode
- Notes
* - ``clock_id``
- driverinit
- Set the clock ID that is used by the driver for registering DPLL devices
and pins.
Info versions
=============
The ``zl3073x`` driver reports the following versions
.. list-table:: devlink info versions implemented
:widths: 5 5 5 90
* - Name
- Type
- Example
- Description
* - ``asic.id``
- fixed
- 1E94
- Chip identification number
* - ``asic.rev``
- fixed
- 300
- Chip revision number
* - ``fw``
- running
- 7006
- Firmware version number
* - ``custom_cfg``
- running
- 1.3.0.1
- Device configuration version customized by OEM

View file

@ -239,6 +239,9 @@ Userspace to kernel:
``ETHTOOL_MSG_PHY_GET`` get Ethernet PHY information ``ETHTOOL_MSG_PHY_GET`` get Ethernet PHY information
``ETHTOOL_MSG_TSCONFIG_GET`` get hw timestamping configuration ``ETHTOOL_MSG_TSCONFIG_GET`` get hw timestamping configuration
``ETHTOOL_MSG_TSCONFIG_SET`` set hw timestamping configuration ``ETHTOOL_MSG_TSCONFIG_SET`` set hw timestamping configuration
``ETHTOOL_MSG_RSS_SET`` set RSS settings
``ETHTOOL_MSG_RSS_CREATE_ACT`` create an additional RSS context
``ETHTOOL_MSG_RSS_DELETE_ACT`` delete an additional RSS context
===================================== ================================= ===================================== =================================
Kernel to userspace: Kernel to userspace:
@ -281,6 +284,7 @@ Kernel to userspace:
``ETHTOOL_MSG_MODULE_GET_REPLY`` transceiver module parameters ``ETHTOOL_MSG_MODULE_GET_REPLY`` transceiver module parameters
``ETHTOOL_MSG_PSE_GET_REPLY`` PSE parameters ``ETHTOOL_MSG_PSE_GET_REPLY`` PSE parameters
``ETHTOOL_MSG_RSS_GET_REPLY`` RSS settings ``ETHTOOL_MSG_RSS_GET_REPLY`` RSS settings
``ETHTOOL_MSG_RSS_NTF`` RSS settings
``ETHTOOL_MSG_PLCA_GET_CFG_REPLY`` PLCA RS parameters ``ETHTOOL_MSG_PLCA_GET_CFG_REPLY`` PLCA RS parameters
``ETHTOOL_MSG_PLCA_GET_STATUS_REPLY`` PLCA RS status ``ETHTOOL_MSG_PLCA_GET_STATUS_REPLY`` PLCA RS status
``ETHTOOL_MSG_PLCA_NTF`` PLCA RS parameters ``ETHTOOL_MSG_PLCA_NTF`` PLCA RS parameters
@ -290,6 +294,11 @@ Kernel to userspace:
``ETHTOOL_MSG_PHY_NTF`` Ethernet PHY information change ``ETHTOOL_MSG_PHY_NTF`` Ethernet PHY information change
``ETHTOOL_MSG_TSCONFIG_GET_REPLY`` hw timestamping configuration ``ETHTOOL_MSG_TSCONFIG_GET_REPLY`` hw timestamping configuration
``ETHTOOL_MSG_TSCONFIG_SET_REPLY`` new hw timestamping configuration ``ETHTOOL_MSG_TSCONFIG_SET_REPLY`` new hw timestamping configuration
``ETHTOOL_MSG_PSE_NTF`` PSE events notification
``ETHTOOL_MSG_RSS_NTF`` RSS settings notification
``ETHTOOL_MSG_RSS_CREATE_ACT_REPLY`` create an additional RSS context
``ETHTOOL_MSG_RSS_CREATE_NTF`` additional RSS context created
``ETHTOOL_MSG_RSS_DELETE_NTF`` additional RSS context deleted
======================================== ================================= ======================================== =================================
``GET`` requests are sent by userspace applications to retrieve device ``GET`` requests are sent by userspace applications to retrieve device
@ -1788,6 +1797,11 @@ Kernel response contents:
limit of the PoE PSE. limit of the PoE PSE.
``ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES`` nested Supported power limit ``ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES`` nested Supported power limit
configuration ranges. configuration ranges.
``ETHTOOL_A_PSE_PW_D_ID`` u32 Index of the PSE power domain
``ETHTOOL_A_PSE_PRIO_MAX`` u32 Priority maximum configurable
on the PoE PSE
``ETHTOOL_A_PSE_PRIO`` u32 Priority of the PoE PSE
currently configured
========================================== ====== ============================= ========================================== ====== =============================
When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` attribute identifies When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_STATE`` attribute identifies
@ -1861,6 +1875,15 @@ identifies the C33 PSE power limit ranges through
If the controller works with fixed classes, the min and max values will be If the controller works with fixed classes, the min and max values will be
equal. equal.
The ``ETHTOOL_A_PSE_PW_D_ID`` attribute identifies the index of PSE power
domain.
When set, the optional ``ETHTOOL_A_PSE_PRIO_MAX`` attribute identifies
the PSE maximum priority value.
When set, the optional ``ETHTOOL_A_PSE_PRIO`` attributes is used to
identifies the currently configured PSE priority.
For a description of PSE priority attributes, see ``PSE_SET``.
PSE_SET PSE_SET
======= =======
@ -1874,6 +1897,8 @@ Request contents:
``ETHTOOL_A_C33_PSE_ADMIN_CONTROL`` u32 Control PSE Admin state ``ETHTOOL_A_C33_PSE_ADMIN_CONTROL`` u32 Control PSE Admin state
``ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT`` u32 Control PoE PSE available ``ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT`` u32 Control PoE PSE available
power limit power limit
``ETHTOOL_A_PSE_PRIO`` u32 Control priority of the
PoE PSE
====================================== ====== ============================= ====================================== ====== =============================
When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` attribute is used When set, the optional ``ETHTOOL_A_PODL_PSE_ADMIN_CONTROL`` attribute is used
@ -1896,6 +1921,38 @@ various existing products that document power consumption in watts rather than
classes. If power limit configuration based on classes is needed, the classes. If power limit configuration based on classes is needed, the
conversion can be done in user space, for example by ethtool. conversion can be done in user space, for example by ethtool.
When set, the optional ``ETHTOOL_A_PSE_PRIO`` attributes is used to
control the PSE priority. Allowed priority value are between zero and
the value of ``ETHTOOL_A_PSE_PRIO_MAX`` attribute.
A lower value indicates a higher priority, meaning that a priority value
of 0 corresponds to the highest port priority.
Port priority serves two functions:
- Power-up Order: After a reset, ports are powered up in order of their
priority from highest to lowest. Ports with higher priority
(lower values) power up first.
- Shutdown Order: When the power budget is exceeded, ports with lower
priority (higher values) are turned off first.
PSE_NTF
=======
Notify PSE events.
Notification contents:
=============================== ====== ========================
``ETHTOOL_A_PSE_HEADER`` nested request header
``ETHTOOL_A_PSE_EVENTS`` bitset PSE events
=============================== ====== ========================
When set, the optional ``ETHTOOL_A_PSE_EVENTS`` attribute identifies the
PSE events.
.. kernel-doc:: include/uapi/linux/ethtool_netlink_generated.h
:identifiers: ethtool_pse_event
RSS_GET RSS_GET
======= =======
@ -1919,14 +1976,15 @@ used to ignore context 0s and only dump additional contexts).
Kernel response contents: Kernel response contents:
===================================== ====== ========================== ===================================== ====== ===============================
``ETHTOOL_A_RSS_HEADER`` nested reply header ``ETHTOOL_A_RSS_HEADER`` nested reply header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number ``ETHTOOL_A_RSS_CONTEXT`` u32 context number
``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func ``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func
``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes ``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes
``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes ``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes
``ETHTOOL_A_RSS_INPUT_XFRM`` u32 RSS input data transformation ``ETHTOOL_A_RSS_INPUT_XFRM`` u32 RSS input data transformation
===================================== ====== ========================== ``ETHTOOL_A_RSS_FLOW_HASH`` nested Header fields included in hash
===================================== ====== ===============================
ETHTOOL_A_RSS_HFUNC attribute is bitmap indicating the hash function ETHTOOL_A_RSS_HFUNC attribute is bitmap indicating the hash function
being used. Current supported options are toeplitz, xor or crc32. being used. Current supported options are toeplitz, xor or crc32.
@ -1935,6 +1993,67 @@ indicates queue number.
ETHTOOL_A_RSS_INPUT_XFRM attribute is a bitmap indicating the type of ETHTOOL_A_RSS_INPUT_XFRM attribute is a bitmap indicating the type of
transformation applied to the input protocol fields before given to the RSS transformation applied to the input protocol fields before given to the RSS
hfunc. Current supported options are symmetric-xor and symmetric-or-xor. hfunc. Current supported options are symmetric-xor and symmetric-or-xor.
ETHTOOL_A_RSS_FLOW_HASH carries per-flow type bitmask of which header
fields are included in the hash calculation.
RSS_SET
=======
Request contents:
===================================== ====== ==============================
``ETHTOOL_A_RSS_HEADER`` nested request header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number
``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func
``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes
``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes
``ETHTOOL_A_RSS_INPUT_XFRM`` u32 RSS input data transformation
``ETHTOOL_A_RSS_FLOW_HASH`` nested Header fields included in hash
===================================== ====== ==============================
``ETHTOOL_A_RSS_INDIR`` is the minimal RSS table the user expects. Kernel and
the device driver may replicate the table if its smaller than smallest table
size supported by the device. For example if user requests ``[0, 1]`` but the
device needs at least 8 entries - the real table in use will end up being
``[0, 1, 0, 1, 0, 1, 0, 1]``. Most devices require the table size to be power
of 2, so tables which size is not a power of 2 will likely be rejected.
Using table of size 0 will reset the indirection table to the default.
RSS_CREATE_ACT
==============
Request contents:
===================================== ====== ==============================
``ETHTOOL_A_RSS_HEADER`` nested request header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number
``ETHTOOL_A_RSS_HFUNC`` u32 RSS hash func
``ETHTOOL_A_RSS_INDIR`` binary Indir table bytes
``ETHTOOL_A_RSS_HKEY`` binary Hash key bytes
``ETHTOOL_A_RSS_INPUT_XFRM`` u32 RSS input data transformation
===================================== ====== ==============================
Kernel response contents:
===================================== ====== ==============================
``ETHTOOL_A_RSS_HEADER`` nested request header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number
===================================== ====== ==============================
Create an additional RSS context, if ``ETHTOOL_A_RSS_CONTEXT`` is not
specified kernel will allocate one automatically.
RSS_DELETE_ACT
==============
Request contents:
===================================== ====== ==============================
``ETHTOOL_A_RSS_HEADER`` nested request header
``ETHTOOL_A_RSS_CONTEXT`` u32 context number
===================================== ====== ==============================
Delete an additional RSS context.
PLCA_GET_CFG PLCA_GET_CFG
============ ============
@ -2386,8 +2505,8 @@ are netlink only.
``ETHTOOL_SFLAGS`` ``ETHTOOL_MSG_FEATURES_SET`` ``ETHTOOL_SFLAGS`` ``ETHTOOL_MSG_FEATURES_SET``
``ETHTOOL_GPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_GET`` ``ETHTOOL_GPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_GET``
``ETHTOOL_SPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_SET`` ``ETHTOOL_SPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_SET``
``ETHTOOL_GRXFH`` n/a ``ETHTOOL_GRXFH`` ``ETHTOOL_MSG_RSS_GET``
``ETHTOOL_SRXFH`` n/a ``ETHTOOL_SRXFH`` ``ETHTOOL_MSG_RSS_SET``
``ETHTOOL_GGRO`` ``ETHTOOL_MSG_FEATURES_GET`` ``ETHTOOL_GGRO`` ``ETHTOOL_MSG_FEATURES_GET``
``ETHTOOL_SGRO`` ``ETHTOOL_MSG_FEATURES_SET`` ``ETHTOOL_SGRO`` ``ETHTOOL_MSG_FEATURES_SET``
``ETHTOOL_GRXRINGS`` n/a ``ETHTOOL_GRXRINGS`` n/a
@ -2401,8 +2520,8 @@ are netlink only.
``ETHTOOL_SRXNTUPLE`` n/a ``ETHTOOL_SRXNTUPLE`` n/a
``ETHTOOL_GRXNTUPLE`` n/a ``ETHTOOL_GRXNTUPLE`` n/a
``ETHTOOL_GSSET_INFO`` ``ETHTOOL_MSG_STRSET_GET`` ``ETHTOOL_GSSET_INFO`` ``ETHTOOL_MSG_STRSET_GET``
``ETHTOOL_GRXFHINDIR`` n/a ``ETHTOOL_GRXFHINDIR`` ``ETHTOOL_MSG_RSS_GET``
``ETHTOOL_SRXFHINDIR`` n/a ``ETHTOOL_SRXFHINDIR`` ``ETHTOOL_MSG_RSS_SET``
``ETHTOOL_GFEATURES`` ``ETHTOOL_MSG_FEATURES_GET`` ``ETHTOOL_GFEATURES`` ``ETHTOOL_MSG_FEATURES_GET``
``ETHTOOL_SFEATURES`` ``ETHTOOL_MSG_FEATURES_SET`` ``ETHTOOL_SFEATURES`` ``ETHTOOL_MSG_FEATURES_SET``
``ETHTOOL_GCHANNELS`` ``ETHTOOL_MSG_CHANNELS_GET`` ``ETHTOOL_GCHANNELS`` ``ETHTOOL_MSG_CHANNELS_GET``

File diff suppressed because it is too large Load diff

View file

@ -444,7 +444,14 @@ dependent). The NAPI instance IDs will be assigned in the opposite
order than the process IDs of the kernel threads. order than the process IDs of the kernel threads.
Threaded NAPI is controlled by writing 0/1 to the ``threaded`` file in Threaded NAPI is controlled by writing 0/1 to the ``threaded`` file in
netdev's sysfs directory. netdev's sysfs directory. It can also be enabled for a specific NAPI using
netlink interface.
For example, using the script:
.. code-block:: bash
$ ynl --family netdev --do napi-set --json='{"id": 66, "threaded": 1}'
.. rubric:: Footnotes .. rubric:: Footnotes

View file

@ -68,6 +68,7 @@ unsigned_char addr_assign_type
unsigned_char addr_len unsigned_char addr_len
unsigned_char upper_level unsigned_char upper_level
unsigned_char lower_level unsigned_char lower_level
u8 threaded napi_poll(napi_enable,netif_set_threaded)
unsigned_short neigh_priv_len unsigned_short neigh_priv_len
unsigned_short padded unsigned_short padded
unsigned_short dev_id unsigned_short dev_id
@ -165,7 +166,6 @@ struct sfp_bus* sfp_bus
struct lock_class_key* qdisc_tx_busylock struct lock_class_key* qdisc_tx_busylock
bool proto_down bool proto_down
unsigned:1 wol_enabled unsigned:1 wol_enabled
unsigned:1 threaded napi_poll(napi_enable,dev_set_threaded)
unsigned_long:1 see_all_hwtstamp_requests unsigned_long:1 see_all_hwtstamp_requests
unsigned_long:1 change_proto_down unsigned_long:1 change_proto_down
unsigned_long:1 netns_immutable unsigned_long:1 netns_immutable

View file

@ -36,6 +36,7 @@ unsigned_long LINUX_MIB_TIMEWAITRECYCLED
unsigned_long LINUX_MIB_TIMEWAITKILLED unsigned_long LINUX_MIB_TIMEWAITKILLED
unsigned_long LINUX_MIB_PAWSACTIVEREJECTED unsigned_long LINUX_MIB_PAWSACTIVEREJECTED
unsigned_long LINUX_MIB_PAWSESTABREJECTED unsigned_long LINUX_MIB_PAWSESTABREJECTED
unsigned_long LINUX_MIB_BEYOND_WINDOW
unsigned_long LINUX_MIB_TSECR_REJECTED unsigned_long LINUX_MIB_TSECR_REJECTED
unsigned_long LINUX_MIB_PAWS_OLD_ACK unsigned_long LINUX_MIB_PAWS_OLD_ACK
unsigned_long LINUX_MIB_PAWS_TW_REJECTED unsigned_long LINUX_MIB_PAWS_TW_REJECTED

View file

@ -115,7 +115,6 @@ u32 lost_out read_mostly read_m
u32 sacked_out read_mostly read_mostly tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_clean_rtx_queue(rx) u32 sacked_out read_mostly read_mostly tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_clean_rtx_queue(rx)
struct hrtimer pacing_timer struct hrtimer pacing_timer
struct hrtimer compressed_ack_timer struct hrtimer compressed_ack_timer
struct sk_buff* lost_skb_hint read_mostly tcp_clean_rtx_queue
struct sk_buff* retransmit_skb_hint read_mostly tcp_clean_rtx_queue struct sk_buff* retransmit_skb_hint read_mostly tcp_clean_rtx_queue
struct rb_root out_of_order_queue read_mostly tcp_data_queue,tcp_fast_path_check struct rb_root out_of_order_queue read_mostly tcp_data_queue,tcp_fast_path_check
struct sk_buff* ooo_last_skb struct sk_buff* ooo_last_skb
@ -123,7 +122,6 @@ struct tcp_sack_block[1] duplicate_sack
struct tcp_sack_block[4] selective_acks struct tcp_sack_block[4] selective_acks
struct tcp_sack_block[4] recv_sack_cache struct tcp_sack_block[4] recv_sack_cache
struct sk_buff* highest_sack read_write tcp_event_new_data_sent struct sk_buff* highest_sack read_write tcp_event_new_data_sent
int lost_cnt_hint
u32 prior_ssthresh u32 prior_ssthresh
u32 high_seq u32 high_seq
u32 retrans_stamp u32 retrans_stamp

View file

@ -340,6 +340,38 @@ In this example, the message was sent by CPU 42.
cpu=42 # kernel-populated value cpu=42 # kernel-populated value
Message ID auto population in userdata
--------------------------------------
Within the netconsole configfs hierarchy, there is a file named `msgid_enabled`
located in the `userdata` directory. This file controls the message ID
auto-population feature, which assigns a numeric id to each message sent to a
given target and appends the ID to userdata dictionary in every message sent.
The message ID is generated using a per-target 32 bit counter that is
incremented for every message sent to the target. Note that this counter will
eventually wrap around after reaching uint32_t max value, so the message ID is
not globally unique over time. However, it can still be used by the target to
detect if messages were dropped before reaching the target by identifying gaps
in the sequence of IDs.
It is important to distinguish message IDs from the message <sequnum> field.
Some kernel messages may never reach netconsole (for example, due to printk
rate limiting). Thus, a gap in <sequnum> cannot be solely relied upon to
indicate that a message was dropped during transmission, as it may never have
been sent via netconsole. The message ID, on the other hand, is only assigned
to messages that are actually transmitted via netconsole.
Example::
echo "This is message #1" > /dev/kmsg
echo "This is message #2" > /dev/kmsg
13,434,54928466,-;This is message #1
msgid=1
13,435,54934019,-;This is message #2
msgid=2
Extended console: Extended console:
================= =================

View file

@ -85,7 +85,6 @@ nf_conntrack_log_invalid - INTEGER
- 1 - log ICMP packets - 1 - log ICMP packets
- 6 - log TCP packets - 6 - log TCP packets
- 17 - log UDP packets - 17 - log UDP packets
- 33 - log DCCP packets
- 41 - log ICMPv6 packets - 41 - log ICMPv6 packets
- 136 - log UDPLITE packets - 136 - log UDPLITE packets
- 255 - log packets of any protocol - 255 - log packets of any protocol

View file

@ -333,6 +333,13 @@ Some of the interface modes are described below:
SerDes lane, each port having speeds of 2.5G / 1G / 100M / 10M achieved SerDes lane, each port having speeds of 2.5G / 1G / 100M / 10M achieved
through symbol replication. The PCS expects the standard USXGMII code word. through symbol replication. The PCS expects the standard USXGMII code word.
``PHY_INTERFACE_MODE_MIILITE``
Non-standard, simplified MII mode, without TXER, RXER, CRS and COL signals
as defined for the MII. The absence of COL signal makes half-duplex link
modes impossible but does not interfere with BroadR-Reach link modes on
Broadcom (and other two-wire Ethernet) PHYs, because they are full-duplex
only.
Pause frames / flow control Pause frames / flow control
=========================== ===========================

View file

@ -120,6 +120,39 @@ It is possible to query which kfunc the particular netdev implements via
netlink. See ``xdp-rx-metadata-features`` attribute set in netlink. See ``xdp-rx-metadata-features`` attribute set in
``Documentation/netlink/specs/netdev.yaml``. ``Documentation/netlink/specs/netdev.yaml``.
Driver Implementation
=====================
Certain devices may prepend metadata to received packets. However, as of now,
``AF_XDP`` lacks the ability to communicate the size of the ``data_meta`` area
to the consumer. Therefore, it is the responsibility of the driver to copy any
device-reserved metadata out from the metadata area and ensure that
``xdp_buff->data_meta`` is pointing to ``xdp_buff->data`` before presenting the
frame to the XDP program. This is necessary so that, after the XDP program
adjusts the metadata area, the consumer can reliably retrieve the metadata
address using ``METADATA_SIZE`` offset.
The following diagram shows how custom metadata is positioned relative to the
packet data and how pointers are adjusted for metadata access::
|<-- bpf_xdp_adjust_meta(xdp_buff, -METADATA_SIZE) --|
new xdp_buff->data_meta old xdp_buff->data_meta
| |
| xdp_buff->data
| |
+----------+----------------------------------------------------+------+
| headroom | custom metadata | data |
+----------+----------------------------------------------------+------+
| |
| xdp_desc->addr
|<------ xsk_umem__get_data() - METADATA_SIZE -------|
``bpf_xdp_adjust_meta`` ensures that ``METADATA_SIZE`` is aligned to 4 bytes,
does not exceed 252 bytes, and leaves sufficient space for building the
xdp_frame. If these conditions are not met, it returns a negative error. In this
case, the BPF program should not proceed to populate data into the ``data_meta``
area.
Example Example
======= =======

View file

@ -3340,10 +3340,15 @@ M: Dinh Nguyen <dinguyen@kernel.org>
S: Maintained S: Maintained
F: drivers/clk/socfpga/ F: drivers/clk/socfpga/
ARM/SOCFPGA DWMAC GLUE LAYER BINDINGS
M: Matthew Gerlach <matthew.gerlach@altera.com>
S: Maintained
F: Documentation/devicetree/bindings/net/altr,gmii-to-sgmii-2.0.yaml
F: Documentation/devicetree/bindings/net/altr,socfpga-stmmac.yaml
ARM/SOCFPGA DWMAC GLUE LAYER ARM/SOCFPGA DWMAC GLUE LAYER
M: Maxime Chevallier <maxime.chevallier@bootlin.com> M: Maxime Chevallier <maxime.chevallier@bootlin.com>
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/net/socfpga-dwmac.txt
F: drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c F: drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
ARM/SOCFPGA EDAC BINDINGS ARM/SOCFPGA EDAC BINDINGS
@ -4936,6 +4941,12 @@ F: drivers/firmware/broadcom/tee_bnxt_fw.c
F: drivers/net/ethernet/broadcom/bnxt/ F: drivers/net/ethernet/broadcom/bnxt/
F: include/linux/firmware/broadcom/tee_bnxt_fw.h F: include/linux/firmware/broadcom/tee_bnxt_fw.h
BROADCOM BNG_EN 800 GIGABIT ETHERNET DRIVER
M: Vikas Gupta <vikas.gupta@broadcom.com>
L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/broadcom/bnge/
BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS
M: Arend van Spriel <arend.vanspriel@broadcom.com> M: Arend van Spriel <arend.vanspriel@broadcom.com>
L: linux-wireless@vger.kernel.org L: linux-wireless@vger.kernel.org
@ -7405,6 +7416,8 @@ M: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
M: Jiri Pirko <jiri@resnulli.us> M: Jiri Pirko <jiri@resnulli.us>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Supported S: Supported
F: Documentation/devicetree/bindings/dpll/dpll-device.yaml
F: Documentation/devicetree/bindings/dpll/dpll-pin.yaml
F: Documentation/driver-api/dpll.rst F: Documentation/driver-api/dpll.rst
F: drivers/dpll/* F: drivers/dpll/*
F: include/linux/dpll.h F: include/linux/dpll.h
@ -12610,7 +12623,7 @@ M: Miri Korenblit <miriam.rachel.korenblit@intel.com>
L: linux-wireless@vger.kernel.org L: linux-wireless@vger.kernel.org
S: Supported S: Supported
W: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi W: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
T: git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi.git T: git https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next.git/
F: drivers/net/wireless/intel/iwlwifi/ F: drivers/net/wireless/intel/iwlwifi/
INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
@ -16610,6 +16623,14 @@ L: linux-wireless@vger.kernel.org
S: Supported S: Supported
F: drivers/net/wireless/microchip/ F: drivers/net/wireless/microchip/
MICROCHIP ZL3073X DRIVER
M: Ivan Vecera <ivecera@redhat.com>
M: Prathosh Satish <Prathosh.Satish@microchip.com>
L: netdev@vger.kernel.org
S: Supported
F: Documentation/devicetree/bindings/dpll/microchip,zl30731.yaml
F: drivers/dpll/zl3073x/
MICROSEMI MIPS SOCS MICROSEMI MIPS SOCS
M: Alexandre Belloni <alexandre.belloni@bootlin.com> M: Alexandre Belloni <alexandre.belloni@bootlin.com>
M: UNGLinuxDriver@microchip.com M: UNGLinuxDriver@microchip.com
@ -20460,7 +20481,7 @@ QUALCOMM ATHEROS QCA7K ETHERNET DRIVER
M: Stefan Wahren <wahrenst@gmx.net> M: Stefan Wahren <wahrenst@gmx.net>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/net/qca,qca7000.txt F: Documentation/devicetree/bindings/net/qca,qca7000.yaml
F: drivers/net/ethernet/qualcomm/qca* F: drivers/net/ethernet/qualcomm/qca*
QUALCOMM BAM-DMUX WWAN NETWORK DRIVER QUALCOMM BAM-DMUX WWAN NETWORK DRIVER
@ -26598,6 +26619,7 @@ F: include/uapi/linux/vm_sockets.h
F: include/uapi/linux/vm_sockets_diag.h F: include/uapi/linux/vm_sockets_diag.h
F: include/uapi/linux/vsockmon.h F: include/uapi/linux/vsockmon.h
F: net/vmw_vsock/ F: net/vmw_vsock/
F: tools/testing/selftests/vsock/
F: tools/testing/vsock/ F: tools/testing/vsock/
VMALLOC VMALLOC

View file

@ -152,6 +152,9 @@
#define SO_PASSRIGHTS 83 #define SO_PASSRIGHTS 83
#define SO_INQ 84
#define SCM_INQ SO_INQ
#if !defined(__KERNEL__) #if !defined(__KERNEL__)
#if __BITS_PER_LONG == 64 #if __BITS_PER_LONG == 64

View file

@ -72,10 +72,55 @@
cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>; cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
num-chipselects = <1>; num-chipselects = <1>;
switch@0 { ethernet-switch@0 {
compatible = "micrel,ks8995"; compatible = "micrel,ks8995";
reg = <0>; reg = <0>;
spi-max-frequency = <50000000>; spi-max-frequency = <50000000>;
/*
* The PHYs are accessed over the external MDIO
* bus and not internally through the switch control
* registers.
*/
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
ethernet-port@0 {
reg = <0>;
label = "1";
phy-mode = "mii";
phy-handle = <&phy1>;
};
ethernet-port@1 {
reg = <1>;
label = "2";
phy-mode = "mii";
phy-handle = <&phy2>;
};
ethernet-port@2 {
reg = <2>;
label = "3";
phy-mode = "mii";
phy-handle = <&phy3>;
};
ethernet-port@3 {
reg = <3>;
label = "4";
phy-mode = "mii";
phy-handle = <&phy4>;
};
ethernet-port@4 {
reg = <4>;
ethernet = <&ethb>;
phy-mode = "mii";
fixed-link {
speed = <100>;
full-duplex;
};
};
};
}; };
}; };
@ -135,40 +180,59 @@
}; };
/* /*
* EthB - connected to the KS8995 switch ports 1-4 * EthB connects to the KS8995 CPU port and faces ports 1-4
* FIXME: the boardfile defines .phy_mask = 0x1e for this port to enable output to * through the switch fabric.
* all four switch ports, also using an out of tree multiphy patch. *
* Do we need a new binding and property for this? * To complicate things, the MDIO channel is also only
* accessible through EthB, but used independently for PHY
* control.
*/ */
ethernet@c8009000 { ethb: ethernet@c8009000 {
status = "okay"; status = "okay";
queue-rx = <&qmgr 3>; queue-rx = <&qmgr 3>;
queue-txready = <&qmgr 20>; queue-txready = <&qmgr 20>;
phy-mode = "rgmii"; phy-mode = "mii";
phy-handle = <&phy4>; fixed-link {
speed = <100>;
full-duplex;
};
mdio { mdio {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
/* Should be ports 1-4 on the KS8995 switch */ /*
* LAN ports 1-4 on the KS8995 switch
* and PHY5 for WAN need to be accessed
* through this external MDIO channel.
*/
phy1: ethernet-phy@1 {
reg = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
};
phy4: ethernet-phy@4 { phy4: ethernet-phy@4 {
reg = <4>; reg = <4>;
}; };
/* Should be port 5 on the KS8995 switch */
phy5: ethernet-phy@5 { phy5: ethernet-phy@5 {
reg = <5>; reg = <5>;
}; };
}; };
}; };
/* EthC - connected to KS8995 switch port 5 */ /*
ethernet@c800a000 { * EthC connects to MII-P5 on the KS8995 bypassing
* all of the switch logic and facing PHY5
*/
ethc: ethernet@c800a000 {
status = "okay"; status = "okay";
queue-rx = <&qmgr 4>; queue-rx = <&qmgr 4>;
queue-txready = <&qmgr 21>; queue-txready = <&qmgr 21>;
phy-mode = "rgmii"; phy-mode = "mii";
phy-handle = <&phy5>; phy-handle = <&phy5>;
}; };
}; };

View file

@ -142,7 +142,6 @@ CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_ESP=m

Some files were not shown because too many files have changed in this diff Show more