Skip to content
Networking changes for 6.3.

Core
----

 - Add dedicated kmem_cache for typical/small skb->head, avoid having
   to access struct page at kfree time, and improve memory use.

 - Introduce sysctl to set default RPS configuration for new netdevs.

 - Define Netlink protocol specification format which can be used
   to describe messages used by each family and auto-generate parsers.
   Add tools for generating kernel data structures and uAPI headers.

 - Expose all net/core sysctls inside netns.

 - Remove 4s sleep in netpoll if carrier is instantly detected on boot.

 - Add configurable limit of MDB entries per port, and port-vlan.

 - Continue populating drop reasons throughout the stack.

 - Retire a handful of legacy Qdiscs and classifiers.

Protocols
---------

 - Support IPv4 big TCP (TSO frames larger than 64kB).

 - Add IP_LOCAL_PORT_RANGE socket option, to control local port range
   on socket by socket basis.

 - Track and report in procfs number of MPTCP sockets used.

 - Support mixing IPv4 and IPv6 flows in the in-kernel MPTCP
   path manager.

 - IPv6: don't check net.ipv6.route.max_size and rely on garbage
   collection to free memory (similarly to IPv4).

 - Support Penultimate Segment Pop (PSP) flavor in SRv6 (RFC8986).

 - ICMP: add per-rate limit counters.

 - Add support for user scanning requests in ieee802154.

 - Remove static WEP support.

 - Support minimal Wi-Fi 7 Extremely High Throughput (EHT) rate
   reporting.

 - WiFi 7 EHT channel puncturing support (client & AP).

BPF
---

 - Add a rbtree data structure following the "next-gen data structure"
   precedent set by recently added linked list, that is, by using
   kfunc + kptr instead of adding a new BPF map type.

 - Expose XDP hints via kfuncs with initial support for RX hash and
   timestamp metadata.

 - Add BPF_F_NO_TUNNEL_KEY extension to bpf_skb_set_tunnel_key
   to better support decap on GRE tunnel devices not operating
   in collect metadata.

 - Improve x86 JIT's codegen for PROBE_MEM runtime error checks.

 - Remove the need for trace_printk_lock for bpf_trace_printk
   and bpf_trace_vprintk helpers.

 - Extend libbpf's bpf_tracing.h support for tracing arguments of
   kprobes/uprobes and syscall as a special case.

 - Significantly reduce the search time for module symbols
   by livepatch and BPF.

 - Enable cpumasks to be used as kptrs, which is useful for tracing
   programs tracking which tasks end up running on which CPUs in
   different time intervals.

 - Add support for BPF trampoline on s390x and riscv64.

 - Add capability to export the XDP features supported by the NIC.

 - Add __bpf_kfunc tag for marking kernel functions as kfuncs.

 - Add cgroup.memory=nobpf kernel parameter option to disable BPF
   memory accounting for container environments.

Netfilter
---------

 - Remove the CLUSTERIP target. It has been marked as obsolete
   for years, and we still have WARN splats wrt. races of
   the out-of-band /proc interface installed by this target.

 - Add 'destroy' commands to nf_tables. They are identical to
   the existing 'delete' commands, but do not return an error if
   the referenced object (set, chain, rule...) did not exist.

Driver API
----------

 - Improve cpumask_local_spread() locality to help NICs set the right
   IRQ affinity on AMD platforms.

 - Separate C22 and C45 MDIO bus transactions more clearly.

 - Introduce new DCB table to control DSCP rewrite on egress.

 - Support configuration of Physical Layer Collision Avoidance (PLCA)
   Reconciliation Sublayer (RS) (802.3cg-2019). Modern version of
   shared medium Ethernet.

 - Support for MAC Merge layer (IEEE 802.3-2018 clause 99). Allowing
   preemption of low priority frames by high priority frames.

 - Add support for controlling MACSec offload using netlink SET.

 - Rework devlink instance refcounts to allow registration and
   de-registration under the instance lock. Split the code into multiple
   files, drop some of the unnecessarily granular locks and factor out
   common parts of netlink operation handling.

 - Add TX frame aggregation parameters (for USB drivers).

 - Add a new attr TCA_EXT_WARN_MSG to report TC (offload) warning
   messages with notifications for debug.

 - Allow offloading of UDP NEW connections via act_ct.

 - Add support for per action HW stats in TC.

 - Support hardware miss to TC action (continue processing in SW from
   a specific point in the action chain).

 - Warn if old Wireless Extension user space interface is used with
   modern cfg80211/mac80211 drivers. Do not support Wireless Extensions
   for Wi-Fi 7 devices at all. Everyone should switch to using nl80211
   interface instead.

 - Improve the CAN bit timing configuration. Use extack to return error
   messages directly to user space, update the SJW handling, including
   the definition of a new default value that will benefit CAN-FD
   controllers, by increasing their oscillator tolerance.

New hardware / drivers
----------------------

 - Ethernet:
   - nVidia BlueField-3 support (control traffic driver)
   - Ethernet support for imx93 SoCs
   - Motorcomm yt8531 gigabit Ethernet PHY
   - onsemi NCN26000 10BASE-T1S PHY (with support for PLCA)
   - Microchip LAN8841 PHY (incl. cable diagnostics and PTP)
   - Amlogic gxl MDIO mux

 - WiFi:
   - RealTek RTL8188EU (rtl8xxxu)
   - Qualcomm Wi-Fi 7 devices (ath12k)

 - CAN:
   - Renesas R-Car V4H

Drivers
-------

 - Bluetooth:
   - Set Per Platform Antenna Gain (PPAG) for Intel controllers.

 - Ethernet NICs:
   - Intel (1G, igc):
     - support TSN / Qbv / packet scheduling features of i226 model
   - Intel (100G, ice):
     - use GNSS subsystem instead of TTY
     - multi-buffer XDP support
     - extend support for GPIO pins to E823 devices
   - nVidia/Mellanox:
     - update the shared buffer configuration on PFC commands
     - implement PTP adjphase function for HW offset control
     - TC support for Geneve and GRE with VF tunnel offload
     - more efficient crypto key management method
     - multi-port eswitch support
   - Netronome/Corigine:
     - add DCB IEEE support
     - support IPsec offloading for NFP3800
   - Freescale/NXP (enetc):
     - enetc: support XDP_REDIRECT for XDP non-linear buffers
     - enetc: improve reconfig, avoid link flap and waiting for idle
     - enetc: support MAC Merge layer
   - Other NICs:
     - sfc/ef100: add basic devlink support for ef100
     - ionic: rx_push mode operation (writing descriptors via MMIO)
     - bnxt: use the auxiliary bus abstraction for RDMA
     - r8169: disable ASPM and reset bus in case of tx timeout
     - cpsw: support QSGMII mode for J721e CPSW9G
     - cpts: support pulse-per-second output
     - ngbe: add an mdio bus driver
     - usbnet: optimize usbnet_bh() by avoiding unnecessary queuing
     - r8152: handle devices with FW with NCM support
     - amd-xgbe: support 10Mbps, 2.5GbE speeds and rx-adaptation
     - virtio-net: support multi buffer XDP
     - virtio/vsock: replace virtio_vsock_pkt with sk_buff
     - tsnep: XDP support

 - Ethernet high-speed switches:
   - nVidia/Mellanox (mlxsw):
     - add support for latency TLV (in FW control messages)
   - Microchip (sparx5):
     - separate explicit and implicit traffic forwarding rules, make
       the implicit rules always active
     - add support for egress DSCP rewrite
     - IS0 VCAP support (Ingress Classification)
     - IS2 VCAP filters (protos, L3 addrs, L4 ports, flags, ToS etc.)
     - ES2 VCAP support (Egress Access Control)
     - support for Per-Stream Filtering and Policing (802.1Q, 8.6.5.1)

 - Ethernet embedded switches:
   - Marvell (mv88e6xxx):
     - add MAB (port auth) offload support
     - enable PTP receive for mv88e6390
   - NXP (ocelot):
     - support MAC Merge layer
     - support for the the vsc7512 internal copper phys
   - Microchip:
     - lan9303: convert to PHYLINK
     - lan966x: support TC flower filter statistics
     - lan937x: PTP support for KSZ9563/KSZ8563 and LAN937x
     - lan937x: support Credit Based Shaper configuration
     - ksz9477: support Energy Efficient Ethernet
   - other:
     - qca8k: convert to regmap read/write API, use bulk operations
     - rswitch: Improve TX timestamp accuracy

 - Intel WiFi (iwlwifi):
   - EHT (Wi-Fi 7) rate reporting
   - STEP equalizer support: transfer some STEP (connection to radio
     on platforms with integrated wifi) related parameters from the
     BIOS to the firmware.

 - Qualcomm 802.11ax WiFi (ath11k):
   - IPQ5018 support
   - Fine Timing Measurement (FTM) responder role support
   - channel 177 support

 - MediaTek WiFi (mt76):
   - per-PHY LED support
   - mt7996: EHT (Wi-Fi 7) support
   - Wireless Ethernet Dispatch (WED) reset support
   - switch to using page pool allocator

 - RealTek WiFi (rtw89):
   - support new version of Bluetooth co-existance

 - Mobile:
   - rmnet: support TX aggregation.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>