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
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
Date: February 2014
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
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/
**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
--------------

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:
- enum:
- allwinner,sun20i-d1-emac
- allwinner,sun50i-a100-emac
- allwinner,sun50i-h6-emac
- allwinner,sun50i-h616-emac0
- 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
configuration.
max-speed:
$ref: /schemas/types.yaml#/definitions/uint32
enum:
- 3000000
- 4000000
default: 3000000
firmware-name:
maxItems: 1
@ -65,6 +72,14 @@ properties:
description:
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:
- compatible
@ -78,10 +93,13 @@ examples:
bluetooth {
compatible = "nxp,88w8987-bt";
fw-init-baudrate = <3000000>;
max-speed = <4000000>;
firmware-name = "uartuart8987_bt_v0.bin";
device-wakeup-gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
nxp,wakein-pin = /bits/ 8 <18>;
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];
interrupt-parent = <&gpio>;
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;

View file

@ -62,6 +62,7 @@ properties:
- items:
- enum:
- 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
reg:
@ -114,6 +115,13 @@ properties:
power-domains:
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:
$ref: /schemas/types.yaml#/definitions/uint32
description:

View file

@ -66,6 +66,12 @@ properties:
- brcm,bcm63268-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:
- compatible
- reg

View file

@ -136,6 +136,16 @@ properties:
See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt for
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:
type: boolean
description:
@ -190,6 +200,18 @@ required:
- reg
$defs:
builtin-dsa-port:
patternProperties:
"^(ethernet-)?ports$":
patternProperties:
"^(ethernet-)?port@[0-6]$":
if:
required: [ ethernet ]
then:
properties:
phy-mode:
const: internal
mt7530-dsa-port:
patternProperties:
"^(ethernet-)?ports$":
@ -297,7 +319,7 @@ allOf:
- airoha,en7581-switch
- airoha,an7583-switch
then:
$ref: "#/$defs/mt7530-dsa-port"
$ref: "#/$defs/builtin-dsa-port"
properties:
gpio-controller: 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.
compatible:
enum:
- microchip,ksz8463
- microchip,ksz8765
- microchip,ksz8794
- microchip,ksz8795

View file

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

View file

@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Faraday Technology FTGMAC100 gigabit ethernet controller
allOf:
- $ref: ethernet-controller.yaml#
maintainers:
- Po-Yu Chuang <ratbert@faraday-tech.com>
@ -35,6 +32,9 @@ properties:
- description: MAC IP clock
- description: RMII RCLK gate for AST2500/2600
resets:
maxItems: 1
clock-names:
minItems: 1
items:
@ -74,6 +74,21 @@ required:
- reg
- interrupts
allOf:
- $ref: ethernet-controller.yaml#
- if:
properties:
compatible:
contains:
enum:
- aspeed,ast2600-mac
then:
properties:
resets: true
else:
properties:
resets: false
unevaluatedProperties: false
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
fixed-link: true
intel,npe-handle:
$ref: /schemas/types.yaml#/definitions/phandle-array
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:
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:
maxItems: 1
@ -54,6 +66,10 @@ properties:
- const: gmac
- const: ppe
sram:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to mmio SRAM
mediatek,ethsys:
$ref: /schemas/types.yaml#/definitions/phandle
description:
@ -135,6 +151,10 @@ allOf:
minItems: 3
maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks:
minItems: 4
maxItems: 4
@ -146,6 +166,8 @@ allOf:
- const: gp1
- const: gp2
sram: false
mediatek,infracfg: false
mediatek,wed: false
@ -166,6 +188,9 @@ allOf:
interrupts:
maxItems: 1
interrupt-names:
maxItems: 1
clocks:
minItems: 2
maxItems: 2
@ -175,6 +200,8 @@ allOf:
- const: ethif
- const: fe
sram: false
mediatek,infracfg: false
mediatek,wed: false
@ -192,6 +219,10 @@ allOf:
minItems: 3
maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks:
minItems: 11
maxItems: 11
@ -210,6 +241,8 @@ allOf:
- const: sgmii_ck
- const: eth2pll
sram: false
mediatek,infracfg: false
mediatek,sgmiisys:
@ -232,6 +265,10 @@ allOf:
minItems: 3
maxItems: 3
interrupt-names:
minItems: 3
maxItems: 3
clocks:
minItems: 17
maxItems: 17
@ -256,6 +293,8 @@ allOf:
- const: sgmii_ck
- const: eth2pll
sram: false
mediatek,sgmiisys:
minItems: 2
maxItems: 2
@ -272,7 +311,10 @@ allOf:
then:
properties:
interrupts:
minItems: 4
minItems: 8
interrupt-names:
minItems: 8
clocks:
minItems: 15
@ -310,7 +352,10 @@ allOf:
then:
properties:
interrupts:
minItems: 4
minItems: 8
interrupt-names:
minItems: 8
clocks:
minItems: 15
@ -348,7 +393,10 @@ allOf:
then:
properties:
interrupts:
minItems: 4
minItems: 8
interrupt-names:
minItems: 8
clocks:
minItems: 24
@ -382,7 +430,7 @@ allOf:
- const: xgp3
patternProperties:
"^mac@[0-1]$":
"^mac@[0-2]$":
type: object
unevaluatedProperties: false
allOf:
@ -507,7 +555,11 @@ examples:
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 197 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>,
<&ethsys CLK_ETH_GP2_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: |
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:
- compatible
- interrupts
@ -95,5 +101,6 @@ examples:
irq-status-read-quirk;
en2-rf-quirk;
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:
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:
type: object
additionalProperties: false
@ -68,6 +74,15 @@ properties:
"#size-cells":
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:
'^port@[0-7]$':
type: object
@ -106,10 +121,11 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
manager@0 {
manager0: manager@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
vmain-supply = <&pse1_supply>;
phys0: port@0 {
reg = <0>;
@ -161,7 +177,7 @@ examples:
pairset-names = "alternative-a", "alternative-b";
pairsets = <&phys0>, <&phys1>;
polarity-supported = "MDI", "S";
vpwr-supply = <&vpwr1>;
vpwr-supply = <&manager0>;
};
pse_pi1: pse-pi@1 {
reg = <1>;
@ -169,7 +185,7 @@ examples:
pairset-names = "alternative-a";
pairsets = <&phys2>;
polarity-supported = "MDI";
vpwr-supply = <&vpwr2>;
vpwr-supply = <&manager0>;
};
};
};

View file

@ -20,6 +20,9 @@ properties:
reg:
maxItems: 1
interrupts:
maxItems: 1
'#pse-cells':
const: 1
@ -27,10 +30,12 @@ properties:
maxItems: 1
channels:
description: each set of 8 ports can be assigned to one physical
channels or two for PoE4. This parameter describes the configuration
of the ports conversion matrix that establishes relationship between
the logical ports and the physical channels.
description: |
Defines the 8 physical delivery channels on the controller that can
be referenced by PSE PIs through their "pairsets" property. The actual
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
additionalProperties: false
@ -62,9 +67,12 @@ unevaluatedProperties: false
required:
- compatible
- reg
- interrupts
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
@ -72,6 +80,8 @@ examples:
ethernet-pse@20 {
compatible = "ti,tps23881";
reg = <0x20>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gpiog>;
channels {
#address-cells = <1>;

View file

@ -16,8 +16,37 @@ description: |
allOf:
- $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:
compatible:
enum:
- ethernet-phy-id004d.d0c0
qca,clk-out-frequency:
description: Clock output frequency in Hertz.
$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)
%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#
title: GBETH glue layer for Renesas RZ/V2H(P) (and similar SoCs)
@ -14,6 +14,7 @@ select:
compatible:
contains:
enum:
- renesas,r9a09g047-gbeth
- renesas,r9a09g056-gbeth
- renesas,r9a09g057-gbeth
- renesas,rzv2h-gbeth
@ -24,6 +25,7 @@ properties:
compatible:
items:
- enum:
- renesas,r9a09g047-gbeth # RZ/G3E
- renesas,r9a09g056-gbeth # RZ/V2N
- renesas,r9a09g057-gbeth # RZ/V2H(P)
- const: renesas,rzv2h-gbeth

View file

@ -30,6 +30,7 @@ select:
- snps,dwmac-4.00
- snps,dwmac-4.10a
- snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a
- snps,dwmac-5.20
- snps,dwmac-5.30a
@ -98,11 +99,13 @@ properties:
- snps,dwmac-4.00
- snps,dwmac-4.10a
- snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a
- snps,dwmac-5.20
- snps,dwmac-5.30a
- snps,dwxgmac
- snps,dwxgmac-2.10
- sophgo,sg2042-dwmac
- sophgo,sg2044-dwmac
- starfive,jh7100-dwmac
- starfive,jh7110-dwmac
@ -641,6 +644,7 @@ allOf:
- snps,dwmac-4.00
- snps,dwmac-4.10a
- snps,dwmac-4.20a
- snps,dwmac-5.00a
- snps,dwmac-5.10a
- snps,dwmac-5.20
- 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,12 +15,17 @@ select:
contains:
enum:
- sophgo,sg2044-dwmac
- sophgo,sg2042-dwmac
required:
- compatible
properties:
compatible:
items:
oneOf:
- items:
- const: sophgo,sg2042-dwmac
- const: snps,dwmac-5.00a
- items:
- const: sophgo,sg2044-dwmac
- const: snps,dwmac-5.30a

View file

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

View file

@ -12,7 +12,7 @@ maintainers:
description: |
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
to which the wireless chip is connected.
or AHB bus to which the wireless chip is connected.
allOf:
- $ref: ieee80211.yaml#
@ -35,6 +35,12 @@ properties:
- pci168c,0034 # AR9462
- pci168c,0036 # AR9565
- pci168c,0037 # AR1111 and AR9485
- qca,ar9130-wifi
- qca,ar9330-wifi
- qca,ar9340-wifi
- qca,qca9530-wifi
- qca,qca9550-wifi
- qca,qca9560-wifi
reg:
maxItems: 1
@ -88,3 +94,13 @@ examples:
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
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:
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
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
=============
@ -235,6 +253,31 @@ the pin.
``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
============================

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: conntrack
protocol: netlink-raw
protonum: 12

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: devlink
protocol: genetlink-legacy
@ -224,6 +224,10 @@ definitions:
value: 10
-
name: binary
-
name: rate-tc-index-max
type: const
value: 7
attribute-sets:
-
@ -744,7 +748,7 @@ attribute-sets:
name: flash-update-overwrite-mask
type: bitfield32
enum: flash-overwrite
enum-as-flags: True
enum-as-flags: true
-
name: reload-action
type: u8
@ -753,12 +757,12 @@ attribute-sets:
name: reload-actions-performed
type: bitfield32
enum: reload-action
enum-as-flags: True
enum-as-flags: true
-
name: reload-limits
type: bitfield32
enum: reload-action
enum-as-flags: True
enum-as-flags: true
-
name: dev-stats
type: nest
@ -844,7 +848,11 @@ attribute-sets:
-
name: region-direct
type: flag
-
name: rate-tc-bws
type: nest
multi-attr: true
nested-attributes: dl-rate-tc-bws
-
name: dl-dev-stats
subset-of: devlink
@ -917,7 +925,7 @@ attribute-sets:
name: caps
type: bitfield32
enum: port-fn-attr-cap
enum-as-flags: True
enum-as-flags: true
-
name: dl-dpipe-tables
@ -1249,6 +1257,22 @@ attribute-sets:
-
name: flash
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:
enum-model: directional
@ -1257,7 +1281,7 @@ operations:
name: get
doc: Get devlink instances.
attribute-set: devlink
dont-validate: [ strict, dump ]
dont-validate: [strict, dump]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1280,7 +1304,7 @@ operations:
name: port-get
doc: Get devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1304,8 +1328,8 @@ operations:
name: port-set
doc: Set devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1321,8 +1345,8 @@ operations:
name: port-new
doc: Create devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1343,8 +1367,8 @@ operations:
name: port-del
doc: Delete devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1355,8 +1379,8 @@ operations:
name: port-split
doc: Split devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1371,8 +1395,8 @@ operations:
name: port-unsplit
doc: Unplit devlink port instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1383,7 +1407,7 @@ operations:
name: sb-get
doc: Get shared buffer instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1405,7 +1429,7 @@ operations:
name: sb-pool-get
doc: Get shared buffer pool instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1428,8 +1452,8 @@ operations:
name: sb-pool-set
doc: Set shared buffer pool instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1446,7 +1470,7 @@ operations:
name: sb-port-pool-get
doc: Get shared buffer port-pool combinations and threshold.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1470,8 +1494,8 @@ operations:
name: sb-port-pool-set
doc: Set shared buffer port-pool combinations and threshold.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1488,7 +1512,7 @@ operations:
name: sb-tc-pool-bind-get
doc: Get shared buffer port-TC to pool bindings and threshold.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1513,8 +1537,8 @@ operations:
name: sb-tc-pool-bind-set
doc: Set shared buffer port-TC to pool bindings and threshold.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1533,8 +1557,8 @@ operations:
name: sb-occ-snapshot
doc: Take occupancy snapshot of shared buffer.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1549,8 +1573,8 @@ operations:
name: sb-occ-max-clear
doc: Clear occupancy watermarks of shared buffer.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1564,8 +1588,8 @@ operations:
name: eswitch-get
doc: Get eswitch attributes.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1584,8 +1608,8 @@ operations:
name: eswitch-set
doc: Set eswitch attributes.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1596,7 +1620,7 @@ operations:
name: dpipe-table-get
doc: Get dpipe table attributes.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1616,7 +1640,7 @@ operations:
name: dpipe-entries-get
doc: Get dpipe entries attributes.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1635,7 +1659,7 @@ operations:
name: dpipe-headers-get
doc: Get dpipe headers attributes.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1653,8 +1677,8 @@ operations:
name: dpipe-table-counters-set
doc: Set dpipe counter attributes.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1669,8 +1693,8 @@ operations:
name: resource-set
doc: Set resource attributes.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1685,7 +1709,7 @@ operations:
name: resource-dump
doc: Get resource attributes.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1704,8 +1728,8 @@ operations:
name: reload
doc: Reload devlink.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-dev-lock
post: devlink-nl-post-doit-dev-lock
@ -1728,7 +1752,7 @@ operations:
name: param-get
doc: Get param instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1748,8 +1772,8 @@ operations:
name: param-set
doc: Set param instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1766,7 +1790,7 @@ operations:
name: region-get
doc: Get region instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1789,8 +1813,8 @@ operations:
name: region-new
doc: Create region snapshot.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1810,8 +1834,8 @@ operations:
name: region-del
doc: Delete region snapshot.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1822,8 +1846,8 @@ operations:
name: region-read
doc: Read region data.
attribute-set: devlink
dont-validate: [ dump-strict ]
flags: [ admin-perm ]
dont-validate: [dump-strict]
flags: [admin-perm]
dump:
request:
attributes:
@ -1847,7 +1871,7 @@ operations:
name: port-param-get
doc: Get port param instances.
attribute-set: devlink
dont-validate: [ strict, dump-strict ]
dont-validate: [strict, dump-strict]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1863,8 +1887,8 @@ operations:
name: port-param-set
doc: Set port param instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port
post: devlink-nl-post-doit
@ -1873,9 +1897,11 @@ operations:
-
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
dont-validate: [ strict, dump ]
dont-validate: [strict, dump]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -1900,7 +1926,7 @@ operations:
name: health-reporter-get
doc: Get health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1921,8 +1947,8 @@ operations:
name: health-reporter-set
doc: Set health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1940,8 +1966,8 @@ operations:
name: health-reporter-recover
doc: Recover health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1952,8 +1978,8 @@ operations:
name: health-reporter-diagnose
doc: Diagnose health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1964,8 +1990,8 @@ operations:
name: health-reporter-dump-get
doc: Dump health reporter instances.
attribute-set: devlink
dont-validate: [ dump-strict ]
flags: [ admin-perm ]
dont-validate: [dump-strict]
flags: [admin-perm]
dump:
request:
attributes: *health-reporter-id-attrs
@ -1978,8 +2004,8 @@ operations:
name: health-reporter-dump-clear
doc: Clear dump of health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -1990,8 +2016,8 @@ operations:
name: flash-update
doc: Flash update devlink instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2007,7 +2033,7 @@ operations:
name: trap-get
doc: Get trap instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2029,8 +2055,8 @@ operations:
name: trap-set
doc: Set trap instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2045,7 +2071,7 @@ operations:
name: trap-group-get
doc: Get trap group instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2067,8 +2093,8 @@ operations:
name: trap-group-set
doc: Set trap group instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2084,7 +2110,7 @@ operations:
name: trap-policer-get
doc: Get trap policer instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2106,8 +2132,8 @@ operations:
name: trap-policer-set
doc: Get trap policer instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2123,8 +2149,8 @@ operations:
name: health-reporter-test
doc: Test health reporter instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit-port-optional
post: devlink-nl-post-doit
@ -2136,7 +2162,7 @@ operations:
name: rate-get
doc: Get rate instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2159,8 +2185,8 @@ operations:
name: rate-set
doc: Set rate instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2174,13 +2200,14 @@ operations:
- rate-tx-priority
- rate-tx-weight
- rate-parent-node-name
- rate-tc-bws
-
name: rate-new
doc: Create rate instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2194,13 +2221,14 @@ operations:
- rate-tx-priority
- rate-tx-weight
- rate-parent-node-name
- rate-tc-bws
-
name: rate-del
doc: Delete rate instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2214,7 +2242,7 @@ operations:
name: linecard-get
doc: Get line card instances.
attribute-set: devlink
dont-validate: [ strict ]
dont-validate: [strict]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2236,8 +2264,8 @@ operations:
name: linecard-set
doc: Set line card instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2252,7 +2280,7 @@ operations:
name: selftests-get
doc: Get device selftest instances.
attribute-set: devlink
dont-validate: [ strict, dump ]
dont-validate: [strict, dump]
do:
pre: devlink-nl-pre-doit
post: devlink-nl-post-doit
@ -2269,8 +2297,8 @@ operations:
name: selftests-run
doc: Run device selftest instances.
attribute-set: devlink
dont-validate: [ strict ]
flags: [ admin-perm ]
dont-validate: [strict]
flags: [admin-perm]
do:
pre: devlink-nl-pre-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)
---
name: dpll
doc: DPLL subsystem.
@ -240,6 +240,20 @@ definitions:
integer part of a measured phase offset value.
Value of (DPLL_A_PHASE_OFFSET % DPLL_PHASE_OFFSET_DIVIDER) is a
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:
-
@ -293,6 +307,14 @@ attribute-sets:
be put to message multiple times to indicate possible parallel
quality levels (e.g. one specified by ITU option 1 and another
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
enum-name: dpll_a_pin
@ -406,6 +428,15 @@ attribute-sets:
doc: |
A ratio of high to low state of a SYNC signal pulse embedded
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
subset-of: pin
@ -436,6 +467,14 @@ attribute-sets:
name: frequency-min
-
name: frequency-max
-
name: reference-sync
subset-of: pin
attributes:
-
name: id
-
name: state
operations:
enum-name: dpll_cmd
@ -445,7 +484,7 @@ operations:
doc: |
Get id of dpll device that matches given attributes
attribute-set: dpll
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-lock-doit
@ -464,7 +503,7 @@ operations:
doc: |
Get list of DPLL devices (dump) or attributes of a single dpll device
attribute-set: dpll
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-pre-doit
@ -483,6 +522,7 @@ operations:
- temp
- clock-id
- type
- phase-offset-monitor
dump:
reply: *dev-attrs
@ -491,7 +531,7 @@ operations:
name: device-set
doc: Set attributes for a DPLL device
attribute-set: dpll
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-pre-doit
@ -499,6 +539,7 @@ operations:
request:
attributes:
- id
- phase-offset-monitor
-
name: device-create-ntf
doc: Notification about device appearing
@ -519,7 +560,7 @@ operations:
doc: |
Get id of a pin that matches given attributes
attribute-set: pin
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-lock-doit
@ -547,7 +588,7 @@ operations:
a given dpll device
- do request with target dpll and target pin - single pin attributes
attribute-set: pin
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-pin-pre-doit
@ -574,6 +615,7 @@ operations:
- esync-frequency
- esync-frequency-supported
- esync-pulse
- reference-sync
dump:
request:
@ -585,7 +627,7 @@ operations:
name: pin-set
doc: Set attributes of a target pin
attribute-set: pin
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: dpll-pin-pre-doit
@ -601,6 +643,7 @@ operations:
- parent-pin
- phase-adjust
- esync-frequency
- reference-sync
-
name: pin-create-ntf
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)
---
name: ethtool
protocol: genetlink-legacy
@ -15,7 +15,7 @@ definitions:
name: udp-tunnel-type
enum-name:
type: enum
entries: [ vxlan, geneve, vxlan-gpe ]
entries: [vxlan, geneve, vxlan-gpe]
enum-cnt-name: __ethtool-udp-tunnel-type-cnt
render-max: true
-
@ -58,7 +58,9 @@ definitions:
doc: The firmware flashing process was stopped due to an error.
-
name: c33-pse-ext-state
doc: "groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4 Variables"
doc: |
"groups of PSE extended states functions. IEEE 802.3-2022 33.2.4.4
Variables"
type: enum
name-prefix: ethtool-c33-pse-ext-state-
header: linux/ethtool.h
@ -96,11 +98,11 @@ definitions:
header: linux/ethtool.h
type: enum
name-prefix: phy-upstream
entries: [ mac, phy ]
entries: [mac, phy]
-
name: tcp-data-split
type: enum
entries: [ unknown, disabled, enabled ]
entries: [unknown, disabled, enabled]
-
name: hwtstamp-source
doc: Source of the hardware timestamp
@ -119,6 +121,92 @@ definitions:
doc: |
Hardware timestamp comes from one PHY device
of the network topology
-
name: pse-event
doc: PSE event list for the PSE controller
type: flags
name-prefix: ethtool-
entries:
-
name: pse-event-over-current
doc: PSE output current is too high
-
name: pse-event-over-temp
doc: PSE in over temperature state
-
name: c33-pse-event-detection
doc: |
detection process occur on the PSE. IEEE 802.3-2022 33.2.5 and
145.2.6 PSE detection of PDs. IEEE 802.3-202 30.9.1.1.5
aPSEPowerDetectionStatus
-
name: c33-pse-event-classification
doc: |
classification process occur on the PSE. IEEE 802.3-2022 33.2.6
and 145.2.8 classification of PDs mutual identification.
IEEE 802.3-2022 30.9.1.1.8 aPSEPowerClassification.
-
name: c33-pse-event-disconnection
doc: |
PD has been disconnected on the PSE. IEEE 802.3-2022 33.3.8
and 145.3.9 PD Maintain Power Signature. IEEE 802.3-2022
33.5.1.2.9 MPS Absent. IEEE 802.3-2022 30.9.1.1.20
aPSEMPSAbsentCounter.
-
name: pse-event-over-budget
doc: PSE turned off due to over budget situation
-
name: pse-event-sw-pw-control-error
doc: PSE faced an error managing the power control from software
-
name: input-xfrm
doc: RSS hash function transformations.
type: flags
enum-name:
name-prefix: rxh-xfrm-
header: linux/ethtool.h
entries:
-
name: sym-xor
doc: >-
XOR the corresponding source and destination fields of each specified
protocol. Both copies of the XOR'ed fields are fed into the RSS and
RXHASH calculation. Note that this XORing reduces the input set
entropy and could be exploited to reduce the RSS queue spread.
-
name: sym-or-xor
doc: >-
Similar to SYM_XOR, except that one copy of the XOR'ed fields is
replaced by an OR of the same fields.
-
name: rxfh-fields
name-prefix: rxh-
enum-name:
header: linux/ethtool.h
type: flags
entries:
-
name: l2da
value: 1
-
name: vlan
-
name: l3-proto
-
name: ip-src
-
name: ip-dst
-
name: l4-b-0-1
doc: src port in case of TCP/UDP/SCTP
-
name: l4-b-2-3
doc: dst port in case of TCP/UDP/SCTP
-
name: gtp-teid
-
name: discard
value: 31
attribute-sets:
-
@ -1227,7 +1315,7 @@ attribute-sets:
-
name: stat
type: u64
type-value: [ id ]
type-value: [id]
-
name: hist-rx
type: nest
@ -1396,6 +1484,135 @@ attribute-sets:
type: nest
multi-attr: true
nested-attributes: c33-pse-pw-limit
-
name: pse-pw-d-id
type: u32
name-prefix: ethtool-a-
-
name: pse-prio-max
type: u32
name-prefix: ethtool-a-
-
name: pse-prio
type: u32
name-prefix: ethtool-a-
-
name: flow
attr-cnt-name: --ethtool-a-flow-cnt
doc: |
Flow types, corresponding to those defined in the old
ethtool header for RXFH and RXNFC as ${PROTO}_FLOW.
The values are not matching the old ones to avoid carrying
into Netlink the IP_USER_FLOW vs IPV4_FLOW vs IPV4_USER_FLOW confusion.
attributes:
-
name: ether
type: uint
enum: rxfh-fields
-
name: ip4
type: uint
enum: rxfh-fields
-
name: ip6
type: uint
enum: rxfh-fields
-
name: tcp4
type: uint
enum: rxfh-fields
-
name: tcp6
type: uint
enum: rxfh-fields
-
name: udp4
type: uint
enum: rxfh-fields
-
name: udp6
type: uint
enum: rxfh-fields
-
name: sctp4
type: uint
enum: rxfh-fields
-
name: sctp6
type: uint
enum: rxfh-fields
-
name: ah4
type: uint
enum: rxfh-fields
-
name: ah6
type: uint
enum: rxfh-fields
-
name: esp4
type: uint
enum: rxfh-fields
-
name: esp6
type: uint
enum: rxfh-fields
-
name: ah-esp4
type: uint
enum: rxfh-fields
-
name: ah-esp6
type: uint
enum: rxfh-fields
-
name: gtpu4
type: uint
enum: rxfh-fields
-
name: gtpu6
type: uint
enum: rxfh-fields
-
name: gtpc4
type: uint
enum: rxfh-fields
-
name: gtpc6
type: uint
enum: rxfh-fields
-
name: gtpc-teid4
type: uint
enum: rxfh-fields
-
name: gtpc-teid6
type: uint
enum: rxfh-fields
-
name: gtpu-eh4
type: uint
enum: rxfh-fields
-
name: gtpu-eh6
type: uint
enum: rxfh-fields
-
name: gtpu-ul4
type: uint
enum: rxfh-fields
-
name: gtpu-ul6
type: uint
enum: rxfh-fields
-
name: gtpu-dl4
type: uint
enum: rxfh-fields
-
name: gtpu-dl6
type: uint
enum: rxfh-fields
-
name: rss
attr-cnt-name: __ethtool-a-rss-cnt
@ -1424,9 +1641,14 @@ attribute-sets:
-
name: input-xfrm
type: u32
enum: input-xfrm
-
name: start-context
type: u32
-
name: flow-hash
type: nest
nested-attributes: flow
-
name: plca
attr-cnt-name: __ethtool-a-plca-cnt
@ -1556,6 +1778,19 @@ attribute-sets:
name: hwtstamp-flags
type: nest
nested-attributes: bitset
-
name: pse-ntf
attr-cnt-name: --ethtool-a-pse-ntf-cnt
attributes:
-
name: header
type: nest
nested-attributes: header
-
name: events
type: uint
enum: pse-event
doc: List of events reported by the PSE controller
operations:
enum-model: directional
@ -2206,6 +2441,9 @@ operations:
- c33-pse-ext-substate
- c33-pse-avail-pw-limit
- c33-pse-pw-limit-ranges
- pse-pw-d-id
- pse-prio-max
- pse-prio
dump: *pse-get-op
-
name: pse-set
@ -2220,6 +2458,7 @@ operations:
- podl-pse-admin-control
- c33-pse-admin-control
- c33-pse-avail-pw-limit
- pse-prio
-
name: rss-get
doc: Get RSS params.
@ -2239,6 +2478,7 @@ operations:
- indir
- hkey
- input-xfrm
- flow-hash
dump:
request:
attributes:
@ -2414,3 +2654,79 @@ operations:
attributes: *tsconfig
reply:
attributes: *tsconfig
-
name: pse-ntf
doc: Notification for PSE events.
attribute-set: pse-ntf
event:
attributes:
- header
- events
-
name: rss-set
doc: Set RSS params.
attribute-set: rss
do:
request:
attributes:
- header
- context
- hfunc
- indir
- hkey
- input-xfrm
- flow-hash
-
name: rss-ntf
doc: |
Notification for change in RSS configuration.
For additional contexts only modifications use this notification,
creation and deletion have dedicated messages.
notify: rss-get
-
name: rss-create-act
doc: Create an RSS context.
attribute-set: rss
do:
request: &rss-create-attrs
attributes:
- header
- context
- hfunc
- indir
- hkey
- input-xfrm
reply: *rss-create-attrs
-
name: rss-create-ntf
doc: |
Notification for creation of an additional RSS context.
notify: rss-create-act
-
name: rss-delete-act
doc: Delete an RSS context.
attribute-set: rss
do:
request:
attributes:
- header
- context
-
name: rss-delete-ntf
doc: |
Notification for deletion of an additional RSS context.
attribute-set: rss
event:
attributes:
- header
- context
mcast-groups:
list:
-
name: monitor
c-define-name: ethtool-mcgrp-monitor-name

View file

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

View file

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

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: mptcp_pm
protocol: genetlink-legacy
doc: Multipath TCP.
@ -61,8 +61,8 @@ definitions:
-
name: sub-closed
doc: >-
A subflow has been closed. An error (copy of sk_err) could be set if an
error has been detected for this subflow.
A subflow has been closed. An error (copy of sk_err) could be set if
an error has been detected for this subflow.
Attributes: token, family, loc_id, rem_id, saddr4 | saddr6, daddr4 |
daddr6, sport, dport, backup, if-idx [, error].
-
@ -277,8 +277,8 @@ operations:
name: add-addr
doc: Add endpoint
attribute-set: endpoint
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: &add-addr-attrs
request:
attributes:
@ -287,14 +287,14 @@ operations:
name: del-addr
doc: Delete endpoint
attribute-set: endpoint
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: *add-addr-attrs
-
name: get-addr
doc: Get endpoint information
attribute-set: attr
dont-validate: [ strict ]
dont-validate: [strict]
do: &get-addr-attrs
request:
attributes:
@ -311,15 +311,15 @@ operations:
name: flush-addrs
doc: Flush addresses
attribute-set: endpoint
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: *add-addr-attrs
-
name: set-limits
doc: Set protocol limits
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: &mptcp-limits
request:
attributes:
@ -329,7 +329,7 @@ operations:
name: get-limits
doc: Get protocol limits
attribute-set: attr
dont-validate: [ strict ]
dont-validate: [strict]
do: &mptcp-get-limits
request:
attributes:
@ -343,8 +343,8 @@ operations:
name: set-flags
doc: Change endpoint flags
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: &mptcp-set-flags
request:
attributes:
@ -355,8 +355,8 @@ operations:
name: announce
doc: Announce new address
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: &announce-add
request:
attributes:
@ -366,8 +366,8 @@ operations:
name: remove
doc: Announce removal
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do:
request:
attributes:
@ -377,8 +377,8 @@ operations:
name: subflow-create
doc: Create subflow
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: &sf-create
request:
attributes:
@ -389,6 +389,6 @@ operations:
name: subflow-destroy
doc: Destroy subflow
attribute-set: attr
dont-validate: [ strict ]
flags: [ uns-admin-perm ]
dont-validate: [strict]
flags: [uns-admin-perm]
do: *sf-create

View file

@ -1,4 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: net-shaper
doc: |
@ -243,7 +244,7 @@ operations:
The set operation can't be used to create a @node scope shaper,
use the @group operation instead.
attribute-set: net-shaper
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: net-shaper-nl-pre-doit
@ -274,7 +275,7 @@ operations:
node with infinite bandwidth. The queue's implicit node
feeds an implicit RR node at the root of the hierarchy.
attribute-set: net-shaper
flags: [ admin-perm ]
flags: [admin-perm]
do:
pre: net-shaper-nl-pre-doit
@ -305,7 +306,7 @@ operations:
full identifier, comprising @binding and @handle, is provided
as the reply.
attribute-set: net-shaper
flags: [ admin-perm ]
flags: [admin-perm]
do:
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)
---
name: netdev
doc:
@ -48,16 +48,19 @@ definitions:
entries:
-
name: timestamp
doc:
Device is capable of exposing receive HW timestamp via bpf_xdp_metadata_rx_timestamp().
doc: |
Device is capable of exposing receive HW timestamp via
bpf_xdp_metadata_rx_timestamp().
-
name: hash
doc:
Device is capable of exposing receive packet hash via bpf_xdp_metadata_rx_hash().
doc: |
Device is capable of exposing receive packet hash via
bpf_xdp_metadata_rx_hash().
-
name: vlan-tag
doc:
Device is capable of exposing receive packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag().
doc: |
Device is capable of exposing receive packet VLAN tag via
bpf_xdp_metadata_rx_vlan_tag().
-
type: flags
name: xsk-flags
@ -77,11 +80,15 @@ definitions:
-
name: queue-type
type: enum
entries: [ rx, tx ]
entries: [rx, tx]
-
name: qstats-scope
type: flags
entries: [ queue ]
entries: [queue]
-
name: napi-threaded
type: enum
entries: [disabled, enabled]
attribute-sets:
-
@ -280,6 +287,13 @@ attribute-sets:
doc: The timeout, in nanoseconds, of how long to suspend irq
processing, if event polling finds events
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
attributes: []
@ -425,9 +439,9 @@ attribute-sets:
-
name: rx-hw-gro-packets
doc: |
Number of packets that were coalesced from smaller packets by the device.
Counts only packets coalesced with the HW-GRO netdevice feature,
LRO-coalesced packets are not counted.
Number of packets that were coalesced from smaller packets by the
device. Counts only packets coalesced with the HW-GRO netdevice
feature, LRO-coalesced packets are not counted.
type: uint
-
name: rx-hw-gro-bytes
@ -436,8 +450,8 @@ attribute-sets:
-
name: rx-hw-gro-wire-packets
doc: |
Number of packets that were coalesced to bigger packetss with the HW-GRO
netdevice feature. LRO-coalesced packets are not counted.
Number of packets that were coalesced to bigger packetss with the
HW-GRO netdevice feature. LRO-coalesced packets are not counted.
type: uint
-
name: rx-hw-gro-wire-bytes
@ -691,6 +705,7 @@ operations:
- defer-hard-irqs
- gro-flush-timeout
- irq-suspend-timeout
- threaded
dump:
request:
attributes:
@ -721,7 +736,7 @@ operations:
name: bind-rx
doc: Bind dmabuf to netdev
attribute-set: dmabuf
flags: [ admin-perm ]
flags: [admin-perm]
do:
request:
attributes:
@ -735,7 +750,7 @@ operations:
name: napi-set
doc: Set configurable NAPI instance settings.
attribute-set: napi
flags: [ admin-perm ]
flags: [admin-perm]
do:
request:
attributes:
@ -743,6 +758,7 @@ operations:
- defer-hard-irqs
- gro-flush-timeout
- irq-suspend-timeout
- threaded
-
name: bind-tx
doc: Bind dmabuf to netdev for TX
@ -757,7 +773,7 @@ operations:
- id
kernel-family:
headers: [ "net/netdev_netlink.h"]
headers: ["net/netdev_netlink.h"]
sock-priv: struct netdev_nl_sock
mcast-groups:

View file

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

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nftables
protocol: netlink-raw
protonum: 12
@ -1205,7 +1205,9 @@ operations:
- name
-
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
fixed-header: nfgenmsg
do:
@ -1249,7 +1251,9 @@ operations:
- name
-
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
fixed-header: nfgenmsg
do:
@ -1307,7 +1311,8 @@ operations:
- name
-
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
fixed-header: nfgenmsg
do:
@ -1351,7 +1356,8 @@ operations:
- name
-
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
fixed-header: nfgenmsg
do:

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: nl80211
protocol: genetlink-legacy
@ -680,7 +680,7 @@ attribute-sets:
name: feature-flags
type: u32
enum: feature-flags
enum-as-flags: True
enum-as-flags: true
-
name: probe-resp-offload
type: u32
@ -1799,8 +1799,9 @@ operations:
-
name: get-wiphy
doc: |
Get information about a wiphy or dump a list of all wiphys. Requests to dump get-wiphy
should unconditionally include the split-wiphy-dump flag in the request.
Get information about a wiphy or dump a list of all wiphys. Requests to
dump get-wiphy should unconditionally include the split-wiphy-dump flag
in the request.
attribute-set: nl80211-attrs
do:
request:

View file

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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: ovs_vport
version: 2
protocol: genetlink-legacy
@ -21,7 +21,7 @@ definitions:
type: enum
enum-name: 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
type: struct

View file

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

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
---
name: rt-route
protocol: netlink-raw
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)
---
name: rt-rule
protocol: netlink-raw
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)
---
name: tc
protocol: netlink-raw
uapi-header: linux/pkt_cls.h
@ -56,6 +56,23 @@ definitions:
- tundf
- tunoam
- 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
type: struct
@ -76,7 +93,8 @@ definitions:
name: overlimits
type: u32
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
type: u32
@ -751,7 +769,9 @@ definitions:
-
name: count
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
type: u32
@ -822,6 +842,58 @@ definitions:
-
name: drop-overmemory
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
type: struct
@ -845,7 +917,7 @@ definitions:
-
name: ecn-mark
type: u32
doc: Packets marked with ecn
doc: Packets marked with ECN
-
name: new-flow-count
type: u32
@ -988,7 +1060,7 @@ definitions:
-
name: ecn-mark
type: u32
doc: Packets marked with ecn
doc: Packets marked with ECN
-
name: tc-red-xstats
type: struct
@ -2281,6 +2353,78 @@ attribute-sets:
-
name: quantum
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-prefix: tca-ematch-
@ -3705,6 +3849,9 @@ sub-messages:
-
value: drr
attribute-set: drr-attrs
-
value: dualpi2
attribute-set: dualpi2-attrs
-
value: etf
attribute-set: etf-attrs
@ -3872,6 +4019,9 @@ sub-messages:
-
value: codel
fixed-header: tc-codel-xstats
-
value: dualpi2
fixed-header: tc-dualpi2-xstats
-
value: fq
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)
---
name: tcp_metrics
protocol: genetlink-legacy
@ -133,7 +133,7 @@ operations:
doc: Retrieve metrics.
attribute-set: tcp-metrics
dont-validate: [ strict, dump ]
dont-validate: [strict, dump]
do:
request: &sel_attrs
@ -162,8 +162,8 @@ operations:
doc: Delete metrics.
attribute-set: tcp-metrics
dont-validate: [ strict, dump ]
flags: [ admin-perm ]
dont-validate: [strict, dump]
flags: [admin-perm]
do:
request: *sel_attrs

View file

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

View file

@ -209,13 +209,10 @@ Libbpf
Libbpf is a helper library for eBPF and XDP that makes using these
technologies a lot simpler. It also contains specific helper functions
in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It
contains two types of functions: those that can be used to make the
setup of AF_XDP socket easier and ones that can be used in the data
plane to access the rings safely and quickly. To see an example on how
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.
in tools/testing/selftests/bpf/xsk.h for facilitating the use of
AF_XDP. It contains two types of functions: those that can be used to
make the setup of AF_XDP socket easier and ones that can be used in the
data plane to access the rings safely and quickly.
We recommend that you use this library unless you have become a power
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
RX path, or by calling sendto().
An example of how to use this flag can be found in
samples/bpf/xdpsock_user.c. An example with the use of libbpf helpers
would look like this for the TX path:
An example with the use of libbpf helpers would look like this for the
TX path:
.. 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
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
-------------------------
@ -549,12 +554,12 @@ later in this document.
Usage
-----
In order to use AF_XDP sockets two parts are needed. The
user-space application and the XDP program. For a complete setup and
usage example, please refer to the sample application. The user-space
side is xdpsock_user.c and the XDP side is part of libbpf.
In order to use AF_XDP sockets two parts are needed. The user-space
application and the XDP program. For a complete setup and usage example,
please refer to the xdp-project at
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
@ -752,11 +757,12 @@ to facilitate extending a zero-copy driver with multi-buffer support.
Sample application
==================
There is a xdpsock benchmarking/test application included that
demonstrates how to use AF_XDP sockets with private UMEMs. Say that
you would like your UDP traffic from port 4242 to end up in queue 16,
that we will enable AF_XDP on. Here, we use ethtool for this::
There is a xdpsock benchmarking/test application that can be found at
https://github.com/xdp-project/bpf-examples/tree/main/AF_XDP-example
that demonstrates how to use AF_XDP sockets with private
UMEMs. Say that you would like your UDP traffic from port 4242 to end
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 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
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
code in tools/lib/bpf/xsk.[ch].
code in tools/testing/selftests/bpf/xsk.[ch].
FAQ
=======

View file

@ -562,6 +562,12 @@ lacp_rate
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
Specifies the number of bonding devices to create for this
@ -767,8 +773,9 @@ num_unsol_na
greater than 1.
The valid range is 0 - 255; the default value is 1. These options
affect only the active-backup mode. These options were added for
bonding versions 3.3.0 and 3.4.0 respectively.
affect the active-backup or 802.3ad (broadcast_neighbor enabled) mode.
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
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
----------------
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
dev->type = ARPHRD_CAN; /* the netdevice hardware type */
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 */
dev = alloc_candev_mqs(...);
The struct can_frame or struct canfd_frame is the payload of each socket
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_xdp.[ch] XDP files
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:
@ -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
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
==========
@ -268,6 +364,18 @@ RSS
- The user can provide a hash key, hash function, and configure the
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
=========

View file

@ -58,7 +58,9 @@ Contents:
ti/tlan
ti/icssg_prueth
wangxun/txgbe
wangxun/txgbevf
wangxun/ngbe
wangxun/ngbevf
.. 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]
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
-----------

View file

@ -1341,3 +1341,35 @@ Device Counters
- The number of times the device owned queue had not enough buffers
allocated.
- 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
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
------------------

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``
- u32
- 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.
``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
nodes with the same priority form a WFQ subgroup in the sibling group
and arbitration among them is based on assigned weights.

View file

@ -85,6 +85,8 @@ parameters, info versions, and other features it supports.
ionic
ice
ixgbe
kvaser_pciefd
kvaser_usb
mlx4
mlx5
mlxsw
@ -98,3 +100,4 @@ parameters, info versions, and other features it supports.
iosm
octeontx2
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:
- registerging/unregistering leaf rate objects per VF devlink port;
- registering/unregistering leaf rate objects per VF devlink port;
- creation/deletion node rate objects;
- setting tx_share and tx_max rate values 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_TSCONFIG_GET`` get 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:
@ -281,6 +284,7 @@ Kernel to userspace:
``ETHTOOL_MSG_MODULE_GET_REPLY`` transceiver module parameters
``ETHTOOL_MSG_PSE_GET_REPLY`` PSE parameters
``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_STATUS_REPLY`` PLCA RS status
``ETHTOOL_MSG_PLCA_NTF`` PLCA RS parameters
@ -290,6 +294,11 @@ Kernel to userspace:
``ETHTOOL_MSG_PHY_NTF`` Ethernet PHY information change
``ETHTOOL_MSG_TSCONFIG_GET_REPLY`` 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
@ -1788,6 +1797,11 @@ Kernel response contents:
limit of the PoE PSE.
``ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES`` nested Supported power limit
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
@ -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
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
=======
@ -1874,6 +1897,8 @@ Request contents:
``ETHTOOL_A_C33_PSE_ADMIN_CONTROL`` u32 Control PSE Admin state
``ETHTOOL_A_C33_PSE_AVAIL_PWR_LIMIT`` u32 Control PoE PSE available
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
@ -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
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
=======
@ -1919,14 +1976,15 @@ used to ignore context 0s and only dump additional contexts).
Kernel response contents:
===================================== ====== ==========================
===================================== ====== ===============================
``ETHTOOL_A_RSS_HEADER`` nested reply 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_HFUNC attribute is bitmap indicating the hash function
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
transformation applied to the input protocol fields before given to the RSS
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
============
@ -2386,8 +2505,8 @@ are netlink only.
``ETHTOOL_SFLAGS`` ``ETHTOOL_MSG_FEATURES_SET``
``ETHTOOL_GPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_GET``
``ETHTOOL_SPFLAGS`` ``ETHTOOL_MSG_PRIVFLAGS_SET``
``ETHTOOL_GRXFH`` n/a
``ETHTOOL_SRXFH`` n/a
``ETHTOOL_GRXFH`` ``ETHTOOL_MSG_RSS_GET``
``ETHTOOL_SRXFH`` ``ETHTOOL_MSG_RSS_SET``
``ETHTOOL_GGRO`` ``ETHTOOL_MSG_FEATURES_GET``
``ETHTOOL_SGRO`` ``ETHTOOL_MSG_FEATURES_SET``
``ETHTOOL_GRXRINGS`` n/a
@ -2401,8 +2520,8 @@ are netlink only.
``ETHTOOL_SRXNTUPLE`` n/a
``ETHTOOL_GRXNTUPLE`` n/a
``ETHTOOL_GSSET_INFO`` ``ETHTOOL_MSG_STRSET_GET``
``ETHTOOL_GRXFHINDIR`` n/a
``ETHTOOL_SRXFHINDIR`` n/a
``ETHTOOL_GRXFHINDIR`` ``ETHTOOL_MSG_RSS_GET``
``ETHTOOL_SRXFHINDIR`` ``ETHTOOL_MSG_RSS_SET``
``ETHTOOL_GFEATURES`` ``ETHTOOL_MSG_FEATURES_GET``
``ETHTOOL_SFEATURES`` ``ETHTOOL_MSG_FEATURES_SET``
``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.
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

View file

@ -68,6 +68,7 @@ unsigned_char addr_assign_type
unsigned_char addr_len
unsigned_char upper_level
unsigned_char lower_level
u8 threaded napi_poll(napi_enable,netif_set_threaded)
unsigned_short neigh_priv_len
unsigned_short padded
unsigned_short dev_id
@ -165,7 +166,6 @@ struct sfp_bus* sfp_bus
struct lock_class_key* qdisc_tx_busylock
bool proto_down
unsigned:1 wol_enabled
unsigned:1 threaded napi_poll(napi_enable,dev_set_threaded)
unsigned_long:1 see_all_hwtstamp_requests
unsigned_long:1 change_proto_down
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_PAWSACTIVEREJECTED
unsigned_long LINUX_MIB_PAWSESTABREJECTED
unsigned_long LINUX_MIB_BEYOND_WINDOW
unsigned_long LINUX_MIB_TSECR_REJECTED
unsigned_long LINUX_MIB_PAWS_OLD_ACK
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)
struct hrtimer pacing_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 rb_root out_of_order_queue read_mostly tcp_data_queue,tcp_fast_path_check
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] recv_sack_cache
struct sk_buff* highest_sack read_write tcp_event_new_data_sent
int lost_cnt_hint
u32 prior_ssthresh
u32 high_seq
u32 retrans_stamp

View file

@ -340,6 +340,38 @@ In this example, the message was sent by CPU 42.
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:
=================

View file

@ -85,7 +85,6 @@ nf_conntrack_log_invalid - INTEGER
- 1 - log ICMP packets
- 6 - log TCP packets
- 17 - log UDP packets
- 33 - log DCCP packets
- 41 - log ICMPv6 packets
- 136 - log UDPLITE packets
- 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
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
===========================

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
``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
=======

View file

@ -3340,10 +3340,15 @@ M: Dinh Nguyen <dinguyen@kernel.org>
S: Maintained
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
M: Maxime Chevallier <maxime.chevallier@bootlin.com>
S: Maintained
F: Documentation/devicetree/bindings/net/socfpga-dwmac.txt
F: drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
ARM/SOCFPGA EDAC BINDINGS
@ -4936,6 +4941,12 @@ F: drivers/firmware/broadcom/tee_bnxt_fw.c
F: drivers/net/ethernet/broadcom/bnxt/
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
M: Arend van Spriel <arend.vanspriel@broadcom.com>
L: linux-wireless@vger.kernel.org
@ -7405,6 +7416,8 @@ M: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
M: Jiri Pirko <jiri@resnulli.us>
L: netdev@vger.kernel.org
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: drivers/dpll/*
F: include/linux/dpll.h
@ -12610,7 +12623,7 @@ M: Miri Korenblit <miriam.rachel.korenblit@intel.com>
L: linux-wireless@vger.kernel.org
S: Supported
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/
INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
@ -16610,6 +16623,14 @@ L: linux-wireless@vger.kernel.org
S: Supported
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
M: Alexandre Belloni <alexandre.belloni@bootlin.com>
M: UNGLinuxDriver@microchip.com
@ -20460,7 +20481,7 @@ QUALCOMM ATHEROS QCA7K ETHERNET DRIVER
M: Stefan Wahren <wahrenst@gmx.net>
L: netdev@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/net/qca,qca7000.txt
F: Documentation/devicetree/bindings/net/qca,qca7000.yaml
F: drivers/net/ethernet/qualcomm/qca*
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/vsockmon.h
F: net/vmw_vsock/
F: tools/testing/selftests/vsock/
F: tools/testing/vsock/
VMALLOC

View file

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

View file

@ -72,10 +72,55 @@
cs-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
num-chipselects = <1>;
switch@0 {
ethernet-switch@0 {
compatible = "micrel,ks8995";
reg = <0>;
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
* FIXME: the boardfile defines .phy_mask = 0x1e for this port to enable output to
* all four switch ports, also using an out of tree multiphy patch.
* Do we need a new binding and property for this?
* EthB connects to the KS8995 CPU port and faces ports 1-4
* through the switch fabric.
*
* 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";
queue-rx = <&qmgr 3>;
queue-txready = <&qmgr 20>;
phy-mode = "rgmii";
phy-handle = <&phy4>;
phy-mode = "mii";
fixed-link {
speed = <100>;
full-duplex;
};
mdio {
#address-cells = <1>;
#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 {
reg = <4>;
};
/* Should be port 5 on the KS8995 switch */
phy5: ethernet-phy@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";
queue-rx = <&qmgr 4>;
queue-txready = <&qmgr 21>;
phy-mode = "rgmii";
phy-mode = "mii";
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_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m

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