History

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

Pull networking updates from Jakub Kicinski: "Core & protocols: - Continue Netlink conversions to per-namespace RTNL lock (IPv4 routing, routing rules, routing next hops, ARP ioctls) - Continue extending the use of netdev instance locks. As a driver opt-in protect queue operations and (in due course) ethtool operations with the instance lock and not RTNL lock. - Support collecting TCP timestamps (data submitted, sent, acked) in BPF, allowing for transparent (to the application) and lower overhead tracking of TCP RPC performance. - Tweak existing networking Rx zero-copy infra to support zero-copy Rx via io_uring. - Optimize MPTCP performance in single subflow mode by 29%. - Enable GRO on packets which went thru XDP CPU redirect (were queued for processing on a different CPU). Improving TCP stream performance up to 2x. - Improve performance of contended connect() by 200% by searching for an available 4-tuple under RCU rather than a spin lock. Bring an additional 229% improvement by tweaking hash distribution. - Avoid unconditionally touching sk_tsflags on RX, improving performance under UDP flood by as much as 10%. - Avoid skb_clone() dance in ping_rcv() to improve performance under ping flood. - Avoid FIB lookup in netfilter if socket is available, 20% perf win. - Rework network device creation (in-kernel) API to more clearly identify network namespaces and their roles. There are up to 4 namespace roles but we used to have just 2 netns pointer arguments, interpreted differently based on context. - Use sysfs_break_active_protection() instead of trylock to avoid deadlocks between unregistering objects and sysfs access. - Add a new sysctl and sockopt for capping max retransmit timeout in TCP. - Support masking port and DSCP in routing rule matches. - Support dumping IPv4 multicast addresses with RTM_GETMULTICAST. - Support specifying at what time packet should be sent on AF_XDP sockets. - Expose TCP ULP diagnostic info (for TLS and MPTCP) to non-admin users. - Add Netlink YAML spec for WiFi (nl80211) and conntrack. - Introduce EXPORT_IPV6_MOD() and EXPORT_IPV6_MOD_GPL() for symbols which only need to be exported when IPv6 support is built as a module. - Age FDB entries based on Rx not Tx traffic in VxLAN, similar to normal bridging. - Allow users to specify source port range for GENEVE tunnels. - netconsole: allow attaching kernel release, CPU ID and task name to messages as metadata Driver API: - Continue rework / fixing of Energy Efficient Ethernet (EEE) across the SW layers. Delegate the responsibilities to phylink where possible. Improve its handling in phylib. - Support symmetric OR-XOR RSS hashing algorithm. - Support tracking and preserving IRQ affinity by NAPI itself. - Support loopback mode speed selection for interface selftests. Device drivers: - Remove the IBM LCS driver for s390 - Remove the sb1000 cable modem driver - Add support for SFP module access over SMBus - Add MCTP transport driver for MCTP-over-USB - Enable XDP metadata support in multiple drivers - Ethernet high-speed NICs: - Broadcom (bnxt): - add PCIe TLP Processing Hints (TPH) support for new AMD platforms - support dumping RoCE queue state for debug - opt into instance locking - Intel (100G, ice, idpf): - ice: rework MSI-X IRQ management and distribution - ice: support for E830 devices - iavf: add support for Rx timestamping - iavf: opt into instance locking - nVidia/Mellanox: - mlx4: use page pool memory allocator for Rx - mlx5: support for one PTP device per hardware clock - mlx5: support for 200Gbps per-lane link modes - mlx5: move IPSec policy check after decryption - AMD/Solarflare: - support FW flashing via devlink - Cisco (enic): - use page pool memory allocator for Rx - enable 32, 64 byte CQEs - get max rx/tx ring size from the device - Meta (fbnic): - support flow steering and RSS configuration - report queue stats - support TCP segmentation - support IRQ coalescing - support ring size configuration - Marvell/Cavium: - support AF_XDP - Wangxun: - support for PTP clock and timestamping - Huawei (hibmcge): - checksum offload - add more statistics - Ethernet virtual: - VirtIO net: - aggressively suppress Tx completions, improve perf by 96% with 1 CPU and 55% with 2 CPUs - expose NAPI to IRQ mapping and persist NAPI settings - Google (gve): - support XDP in DQO RDA Queue Format - opt into instance locking - Microsoft vNIC: - support BIG TCP - Ethernet NICs consumer, and embedded: - Synopsys (stmmac): - cleanup Tx and Tx clock setting and other link-focused cleanups - enable SGMII and 2500BASEX mode switching for Intel platforms - support Sophgo SG2044 - Broadcom switches (b53): - support for BCM53101 - TI: - iep: add perout configuration support - icssg: support XDP - Cadence (macb): - implement BQL - Xilinx (axinet): - support dynamic IRQ moderation and changing coalescing at runtime - implement BQL - report standard stats - MediaTek: - support phylink managed EEE - Intel: - igc: don't restart the interface on every XDP program change - RealTek (r8169): - support reading registers of internal PHYs directly - increase max jumbo packet size on RTL8125/RTL8126 - Airoha: - support for RISC-V NPU packet processing unit - enable scatter-gather and support MTU up to 9kB - Tehuti (tn40xx): - support cards with TN4010 MAC and an Aquantia AQR105 PHY - Ethernet PHYs: - support for TJA1102S, TJA1121 - dp83tg720: add randomized polling intervals for link detection - dp83822: support changing the transmit amplitude voltage - support for LEDs on 88q2xxx - CAN: - canxl: support Remote Request Substitution bit access - flexcan: add S32G2/S32G3 SoC - WiFi: - remove cooked monitor support - strict mode for better AP testing - basic EPCS support - OMI RX bandwidth reduction support - batman-adv: add support for jumbo frames - WiFi drivers: - RealTek (rtw88): - support RTL8814AE and RTL8814AU - RealTek (rtw89): - switch using wiphy_lock and wiphy_work - add BB context to manipulate two PHY as preparation of MLO - improve BT-coexistence mechanism to play A2DP smoothly - Intel (iwlwifi): - add new iwlmld sub-driver for latest HW/FW combinations - MediaTek (mt76): - preparation for mt7996 Multi-Link Operation (MLO) support - Qualcomm/Atheros (ath12k): - continued work on MLO - Silabs (wfx): - Wake-on-WLAN support - Bluetooth: - add support for skb TX SND/COMPLETION timestamping - hci_core: enable buffer flow control for SCO/eSCO - coredump: log devcd dumps into the monitor - Bluetooth drivers: - intel: add support to configure TX power - nxp: handle bootloader error during cmd5 and cmd7" * tag 'net-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1681 commits) unix: fix up for "apparmor: add fine grained af_unix mediation" mctp: Fix incorrect tx flow invalidation condition in mctp-i2c net: usb: asix: ax88772: Increase phy_name size net: phy: Introduce PHY_ID_SIZE — minimum size for PHY ID string net: libwx: fix Tx L4 checksum net: libwx: fix Tx descriptor content for some tunnel packets atm: Fix NULL pointer dereference net: tn40xx: add pci-id of the aqr105-based Tehuti TN4010 cards net: tn40xx: prepare tn40xx driver to find phy of the TN9510 card net: tn40xx: create swnode for mdio and aqr105 phy and add to mdiobus net: phy: aquantia: add essential functions to aqr105 driver net: phy: aquantia: search for firmware-name in fwnode net: phy: aquantia: add probe function to aqr105 for firmware loading net: phy: Add swnode support to mdiobus_scan gve: add XDP DROP and PASS support for DQ gve: update XDP allocation path support RX buffer posting gve: merge packet buffer size fields gve: update GQ RX to use buf_size gve: introduce config-based allocation for XDP gve: remove xdp_xsk_done and xdp_xsk_wakeup statistics ...

Linus Torvalds committed 1 year ago

Commit 1a9239b2 parents e61f332 023b1e91522 files · +130806 −42738Browse files

Showing the changes to include/uapi/linux (17 of 1522 files). Show all

Unified · Split

17 files
  1. include/uapi/linux/batman_adv.h +9 −9
  2. include/uapi/linux/bpf.h +30 −0
  3. include/uapi/linux/can.h +2 −1
  4. include/uapi/linux/errqueue.h +1 −0
  5. include/uapi/linux/ethtool.h +22 −0
  6. include/uapi/linux/fib_rules.h +3 −0
  7. include/uapi/linux/if_cablemodem.h +0 −23
  8. include/uapi/linux/if_link.h +7 −0
  9. include/uapi/linux/if_xdp.h +10 −0
  10. include/uapi/linux/net_tstamp.h +4 −2
  11. include/uapi/linux/netdev.h +16 −0
  12. include/uapi/linux/nl80211.h +43 −29
  13. include/uapi/linux/rtnetlink.h +1 −0
  14. include/uapi/linux/snmp.h +7 −6
  15. include/uapi/linux/tcp.h +9 −3
  16. include/uapi/linux/usb/ch9.h +1 −0
  17. include/uapi/linux/virtio_net.h +13 −0
include/uapi/linux/batman_adv.h+9−9
@@ -342,7 +342,7 @@ enum batadv_nl_attrs { · 341 unmodified lines
342342 BATADV_ATTR_MCAST_FLAGS_PRIV,
343343
344344 /**
345− * @BATADV_ATTR_VLANID: VLAN id on top of soft interface
345+ * @BATADV_ATTR_VLANID: VLAN id on top of mesh interface
346346 */
347347 BATADV_ATTR_VLANID,
348348
@@ -380,7 +380,7 @@ enum batadv_nl_attrs { · 31 unmodified lines
380380 /**
381381 * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
382382 * avoidance feature is enabled. This feature detects and avoids loops
383− * between the mesh and devices bridged with the soft interface
383+ * between the mesh and devices bridged with the mesh interface
384384 */
385385 BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
386386
@@ -509,7 +509,7 @@ enum batadv_nl_commands { · 122 unmodified lines
509509 BATADV_CMD_UNSPEC,
510510
511511 /**
512− * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh
512+ * @BATADV_CMD_GET_MESH: Get attributes from mesh(if)
513513 */
514514 BATADV_CMD_GET_MESH,
515515
@@ -535,7 +535,7 @@ enum batadv_nl_commands { · 19 unmodified lines
535535
536536 /**
537537 * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
538− * current softif
538+ * current mesh(if)
539539 */
540540 BATADV_CMD_GET_HARDIF,
541541
@@ -591,25 +591,25 @@ enum batadv_nl_commands { · 49 unmodified lines
591591 BATADV_CMD_GET_MCAST_FLAGS,
592592
593593 /**
594− * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh
594+ * @BATADV_CMD_SET_MESH: Set attributes for mesh(if)
595595 */
596596 BATADV_CMD_SET_MESH,
597597
598598 /**
599599 * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
600− * current softif
600+ * current mesh(if)
601601 */
602602 BATADV_CMD_SET_HARDIF,
603603
604604 /**
605605 * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
606− * current softif
606+ * current mesh(if)
607607 */
608608 BATADV_CMD_GET_VLAN,
609609
610610 /**
611611 * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
612− * current softif
612+ * current mesh(if)
613613 */
614614 BATADV_CMD_SET_VLAN,
615615
@@ -691,7 +691,7 @@ enum batadv_ifla_attrs { · 75 unmodified lines
691691 */
692692 IFLA_BATADV_ALGO_NAME,
693693
694− /* add attributes above here, update the policy in soft-interface.c */
694+ /* add attributes above here, update the policy in mesh-interface.c */
695695
696696 /**
697697 * @__IFLA_BATADV_MAX: internal use
include/uapi/linux/bpf.h+30−0
@@ -6913,6 +6913,12 @@ enum { · 6912 unmodified lines
69136913 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F,
69146914 };
69156915
6916+enum {
6917+ SK_BPF_CB_TX_TIMESTAMPING = 1<<0,
6918+ SK_BPF_CB_MASK = (SK_BPF_CB_TX_TIMESTAMPING - 1) |
6919+ SK_BPF_CB_TX_TIMESTAMPING
6920+};
6921+
69166922 /* List of known BPF sock_ops operators.
69176923 * New entries can only be added at the end
69186924 */
@@ -7025,6 +7031,29 @@ enum { · 106 unmodified lines
70257031 * by the kernel or the
70267032 * earlier bpf-progs.
70277033 */
7034+ BPF_SOCK_OPS_TSTAMP_SCHED_CB, /* Called when skb is passing
7035+ * through dev layer when
7036+ * SK_BPF_CB_TX_TIMESTAMPING
7037+ * feature is on.
7038+ */
7039+ BPF_SOCK_OPS_TSTAMP_SND_SW_CB, /* Called when skb is about to send
7040+ * to the nic when SK_BPF_CB_TX_TIMESTAMPING
7041+ * feature is on.
7042+ */
7043+ BPF_SOCK_OPS_TSTAMP_SND_HW_CB, /* Called in hardware phase when
7044+ * SK_BPF_CB_TX_TIMESTAMPING feature
7045+ * is on.
7046+ */
7047+ BPF_SOCK_OPS_TSTAMP_ACK_CB, /* Called when all the skbs in the
7048+ * same sendmsg call are acked
7049+ * when SK_BPF_CB_TX_TIMESTAMPING
7050+ * feature is on.
7051+ */
7052+ BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall
7053+ * is triggered. It's used to correlate
7054+ * sendmsg timestamp with corresponding
7055+ * tskey.
7056+ */
70287057 };
70297058
70307059 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -7091,6 +7120,7 @@ enum { · 60 unmodified lines
70917120 TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */
70927121 TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */
70937122 TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */
7123+ SK_BPF_CB_FLAGS = 1009, /* Get or set sock ops flags in socket */
70947124 };
70957125
70967126 enum {
include/uapi/linux/can.h+2−1
@@ -182,7 +182,7 @@ struct canfd_frame { · 181 unmodified lines
182182 /*
183183 * defined bits for canxl_frame.flags
184184 *
185− * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC
185+ * The canxl_frame.flags element contains three bits CANXL_[XLF|SEC|RRS]
186186 * and shares the relative position of the struct can[fd]_frame.len element.
187187 * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame.
188188 * As a side effect setting this bit intentionally breaks the length checks
@@ -192,6 +192,7 @@ struct canfd_frame { · 3 unmodified lines
192192 */
193193 #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
194194 #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
195+#define CANXL_RRS 0x02 /* Remote Request Substitution */
195196
196197 /* the 8-bit VCID is optionally placed in the canxl_frame.prio element */
197198 #define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */
include/uapi/linux/errqueue.h+1−0
@@ -73,6 +73,7 @@ enum { · 72 unmodified lines
7373 SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */
7474 SCM_TSTAMP_SCHED, /* data entered the packet scheduler */
7575 SCM_TSTAMP_ACK, /* data acknowledged by peer */
76+ SCM_TSTAMP_COMPLETION, /* packet tx completion */
7677 };
7778
7879 #endif /* _UAPI_LINUX_ERRQUEUE_H */
include/uapi/linux/ethtool.h+22−0
@@ -2059,6 +2059,24 @@ enum ethtool_link_mode_bit_indices { · 2058 unmodified lines
20592059 ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
20602060 ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
20612061 ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102,
2062+ ETHTOOL_LINK_MODE_200000baseCR_Full_BIT = 103,
2063+ ETHTOOL_LINK_MODE_200000baseKR_Full_BIT = 104,
2064+ ETHTOOL_LINK_MODE_200000baseDR_Full_BIT = 105,
2065+ ETHTOOL_LINK_MODE_200000baseDR_2_Full_BIT = 106,
2066+ ETHTOOL_LINK_MODE_200000baseSR_Full_BIT = 107,
2067+ ETHTOOL_LINK_MODE_200000baseVR_Full_BIT = 108,
2068+ ETHTOOL_LINK_MODE_400000baseCR2_Full_BIT = 109,
2069+ ETHTOOL_LINK_MODE_400000baseKR2_Full_BIT = 110,
2070+ ETHTOOL_LINK_MODE_400000baseDR2_Full_BIT = 111,
2071+ ETHTOOL_LINK_MODE_400000baseDR2_2_Full_BIT = 112,
2072+ ETHTOOL_LINK_MODE_400000baseSR2_Full_BIT = 113,
2073+ ETHTOOL_LINK_MODE_400000baseVR2_Full_BIT = 114,
2074+ ETHTOOL_LINK_MODE_800000baseCR4_Full_BIT = 115,
2075+ ETHTOOL_LINK_MODE_800000baseKR4_Full_BIT = 116,
2076+ ETHTOOL_LINK_MODE_800000baseDR4_Full_BIT = 117,
2077+ ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118,
2078+ ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119,
2079+ ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120,
20622080
20632081 /* must be last entry */
20642082 __ETHTOOL_LINK_MODE_MASK_NBITS
@@ -2271,6 +2289,10 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 206 unmodified lines
22712289 * be exploited to reduce the RSS queue spread.
22722290 */
22732291 #define RXH_XFRM_SYM_XOR (1 << 0)
2292+/* Similar to SYM_XOR, except that one copy of the XOR'ed fields is replaced by
2293+ * an OR of the same fields
2294+ */
2295+#define RXH_XFRM_SYM_OR_XOR (1 << 1)
22742296 #define RXH_XFRM_NO_CHANGE 0xff
22752297
22762298 /* L2-L4 network traffic flow types */
include/uapi/linux/fib_rules.h+3−0
@@ -70,6 +70,9 @@ enum { · 69 unmodified lines
7070 FRA_DSCP, /* dscp */
7171 FRA_FLOWLABEL, /* flowlabel */
7272 FRA_FLOWLABEL_MASK, /* flowlabel mask */
73+ FRA_SPORT_MASK, /* sport mask */
74+ FRA_DPORT_MASK, /* dport mask */
75+ FRA_DSCP_MASK, /* dscp mask */
7376 __FRA_MAX
7477 };
7578
include/uapi/linux/if_cablemodem.h+0−23
@@ -1,23 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2−#ifndef _LINUX_CABLEMODEM_H_
3−#define _LINUX_CABLEMODEM_H_
4−/*
5− * Author: Franco Venturi <fventuri@mediaone.net>
6− * Copyright 1998 Franco Venturi
7− *
8− * This program is free software; you can redistribute it
9− * and/or modify it under the terms of the GNU General
10− * Public License as published by the Free Software
11− * Foundation; either version 2 of the License, or (at
12− * your option) any later version.
13− */
14−
15−/* some useful defines for sb1000.c e cmconfig.c - fv */
16−#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */
17−#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */
18−#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */
19−#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */
20−#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */
21−#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */
22−
23−#endif
include/uapi/linux/if_link.h+7−0
@@ -378,6 +378,7 @@ enum { · 377 unmodified lines
378378 IFLA_GRO_IPV4_MAX_SIZE,
379379 IFLA_DPLL_PIN,
380380 IFLA_MAX_PACING_OFFLOAD_HORIZON,
381+ IFLA_NETNS_IMMUTABLE,
381382 __IFLA_MAX
382383 };
383384
@@ -1438,6 +1439,7 @@ enum { · 1054 unmodified lines
14381439 IFLA_GENEVE_TTL_INHERIT,
14391440 IFLA_GENEVE_DF,
14401441 IFLA_GENEVE_INNER_PROTO_INHERIT,
1442+ IFLA_GENEVE_PORT_RANGE,
14411443 __IFLA_GENEVE_MAX
14421444 };
14431445 #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
@@ -1450,6 +1452,11 @@ enum ifla_geneve_df { · 6 unmodified lines
14501452 GENEVE_DF_MAX = __GENEVE_DF_END - 1,
14511453 };
14521454
1455+struct ifla_geneve_port_range {
1456+ __be16 low;
1457+ __be16 high;
1458+};
1459+
14531460 /* Bareudp section */
14541461 enum {
14551462 IFLA_BAREUDP_UNSPEC,
include/uapi/linux/if_xdp.h+10−0
@@ -127,6 +127,12 @@ struct xdp_options { · 126 unmodified lines
127127 */
128128 #define XDP_TXMD_FLAGS_CHECKSUM (1 << 1)
129129
130+/* Request launch time hardware offload. The device will schedule the packet for
131+ * transmission at a pre-determined time called launch time. The value of
132+ * launch time is communicated via launch_time field of struct xsk_tx_metadata.
133+ */
134+#define XDP_TXMD_FLAGS_LAUNCH_TIME (1 << 2)
135+
130136 /* AF_XDP offloads request. 'request' union member is consumed by the driver
131137 * when the packet is being transmitted. 'completion' union member is
132138 * filled by the driver when the transmit completion arrives.
@@ -142,6 +148,10 @@ struct xsk_tx_metadata { · 9 unmodified lines
142148 __u16 csum_start;
143149 /* Offset from csum_start where checksum should be stored. */
144150 __u16 csum_offset;
151+
152+ /* XDP_TXMD_FLAGS_LAUNCH_TIME */
153+ /* Launch time in nanosecond against the PTP HW Clock */
154+ __u64 launch_time;
145155 } request;
146156
147157 struct {
include/uapi/linux/net_tstamp.h+4−2
@@ -44,8 +44,9 @@ enum { · 43 unmodified lines
4444 SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
4545 SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
4646 SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17),
47+ SOF_TIMESTAMPING_TX_COMPLETION = (1 << 18),
4748
48− SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_RX_FILTER,
49+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_TX_COMPLETION,
4950 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
5051 SOF_TIMESTAMPING_LAST
5152 };
@@ -58,7 +59,8 @@ enum { · 6 unmodified lines
5859 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \
5960 SOF_TIMESTAMPING_TX_SOFTWARE | \
6061 SOF_TIMESTAMPING_TX_SCHED | \
61− SOF_TIMESTAMPING_TX_ACK)
62+ SOF_TIMESTAMPING_TX_ACK | \
63+ SOF_TIMESTAMPING_TX_COMPLETION)
6264
6365 /**
6466 * struct so_timestamping - SO_TIMESTAMPING parameter
include/uapi/linux/netdev.h+16−0
@@ -59,10 +59,13 @@ enum netdev_xdp_rx_metadata { · 58 unmodified lines
5959 * by the driver.
6060 * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
6161 * driver.
62+ * @NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO: Launch time HW offload is supported
63+ * by the driver.
6264 */
6365 enum netdev_xsk_flags {
6466 NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
6567 NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
68+ NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4,
6669 };
6770
6871 enum netdev_queue_type {
@@ -86,6 +89,11 @@ enum { · 17 unmodified lines
8689 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
8790 };
8891
92+enum {
93+ __NETDEV_A_IO_URING_PROVIDER_INFO_MAX,
94+ NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1)
95+};
96+
8997 enum {
9098 NETDEV_A_PAGE_POOL_ID = 1,
9199 NETDEV_A_PAGE_POOL_IFINDEX,
@@ -94,6 +102,7 @@ enum { · 2 unmodified lines
94102 NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
95103 NETDEV_A_PAGE_POOL_DETACH_TIME,
96104 NETDEV_A_PAGE_POOL_DMABUF,
105+ NETDEV_A_PAGE_POOL_IO_URING,
97106
98107 __NETDEV_A_PAGE_POOL_MAX,
99108 NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
@@ -130,12 +139,19 @@ enum { · 30 unmodified lines
130139 NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
131140 };
132141
142+enum {
143+ __NETDEV_A_XSK_INFO_MAX,
144+ NETDEV_A_XSK_INFO_MAX = (__NETDEV_A_XSK_INFO_MAX - 1)
145+};
146+
133147 enum {
134148 NETDEV_A_QUEUE_ID = 1,
135149 NETDEV_A_QUEUE_IFINDEX,
136150 NETDEV_A_QUEUE_TYPE,
137151 NETDEV_A_QUEUE_NAPI_ID,
138152 NETDEV_A_QUEUE_DMABUF,
153+ NETDEV_A_QUEUE_IO_URING,
154+ NETDEV_A_QUEUE_XSK,
139155
140156 __NETDEV_A_QUEUE_MAX,
141157 NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
include/uapi/linux/nl80211.h+43−29
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
1212 * Copyright 2008 Colin McCabe <colin@cozybit.com>
1313 * Copyright 2015-2017 Intel Deutschland GmbH
14− * Copyright (C) 2018-2024 Intel Corporation
14+ * Copyright (C) 2018-2025 Intel Corporation
1515 *
1616 * Permission to use, copy, modify, and/or distribute this software for any
1717 * purpose with or without fee is hereby granted, provided that the above
@@ -2881,9 +2881,9 @@ enum nl80211_commands { · 2863 unmodified lines
28812881 * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
28822882 * A value of 0 means all radios.
28832883 *
2884− * @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of
2885− * supported selectors as defined by IEEE 802.11 7.3.2.2 but without the
2886− * length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
2884+ * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array
2885+ * of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but
2886+ * without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
28872887 * This can be used to provide a list of selectors that are implemented
28882888 * by the supplicant. If not given, support for SAE_H2E is assumed.
28892889 *
@@ -2893,6 +2893,12 @@ enum nl80211_commands { · 3 unmodified lines
28932893 * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a
28942894 * station interface.
28952895 *
2896+ * @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and
2897+ * operations that userspace implements to use during association/ML
2898+ * link reconfig, currently only "BTM MLD Recommendation For Multiple
2899+ * APs Support". Drivers may set additional flags that they support
2900+ * in the kernel or device.
2901+ *
28962902 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
28972903 * @NL80211_ATTR_MAX: highest attribute number currently defined
28982904 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3448,6 +3454,8 @@ enum nl80211_attrs { · 549 unmodified lines
34483454 NL80211_ATTR_MLO_RECONF_REM_LINKS,
34493455 NL80211_ATTR_EPCS,
34503456
3457+ NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
3458+
34513459 /* add attributes here, update the policy in nl80211.c */
34523460
34533461 __NL80211_ATTR_AFTER_LAST,
@@ -4327,6 +4335,8 @@ enum nl80211_wmm_rule { · 873 unmodified lines
43274335 * otherwise completely disabled.
43284336 * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
43294337 * very low power (VLP) AP, despite being NO_IR.
4338+ * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
4339+ * 20 MHz bandwidth, despite being NO_IR.
43304340 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
43314341 * currently defined
43324342 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4371,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines
43714381 NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
43724382 NL80211_FREQUENCY_ATTR_CAN_MONITOR,
43734383 NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
4384+ NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
43744385
43754386 /* keep last */
43764387 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4582,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines
45824593 * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
45834594 * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
45844595 * despite NO_IR configuration.
4596+ * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
4597+ * despite NO_IR configuration.
45854598 */
45864599 enum nl80211_reg_rule_flags {
4587− NL80211_RRF_NO_OFDM = 1<<0,
4588− NL80211_RRF_NO_CCK = 1<<1,
4589− NL80211_RRF_NO_INDOOR = 1<<2,
4590− NL80211_RRF_NO_OUTDOOR = 1<<3,
4591− NL80211_RRF_DFS = 1<<4,
4592− NL80211_RRF_PTP_ONLY = 1<<5,
4593− NL80211_RRF_PTMP_ONLY = 1<<6,
4594− NL80211_RRF_NO_IR = 1<<7,
4595− __NL80211_RRF_NO_IBSS = 1<<8,
4596− NL80211_RRF_AUTO_BW = 1<<11,
4597− NL80211_RRF_IR_CONCURRENT = 1<<12,
4598− NL80211_RRF_NO_HT40MINUS = 1<<13,
4599− NL80211_RRF_NO_HT40PLUS = 1<<14,
4600− NL80211_RRF_NO_80MHZ = 1<<15,
4601− NL80211_RRF_NO_160MHZ = 1<<16,
4602− NL80211_RRF_NO_HE = 1<<17,
4603− NL80211_RRF_NO_320MHZ = 1<<18,
4604− NL80211_RRF_NO_EHT = 1<<19,
4605− NL80211_RRF_PSD = 1<<20,
4606− NL80211_RRF_DFS_CONCURRENT = 1<<21,
4607− NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22,
4608− NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23,
4609− NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24,
4600+ NL80211_RRF_NO_OFDM = 1 << 0,
4601+ NL80211_RRF_NO_CCK = 1 << 1,
4602+ NL80211_RRF_NO_INDOOR = 1 << 2,
4603+ NL80211_RRF_NO_OUTDOOR = 1 << 3,
4604+ NL80211_RRF_DFS = 1 << 4,
4605+ NL80211_RRF_PTP_ONLY = 1 << 5,
4606+ NL80211_RRF_PTMP_ONLY = 1 << 6,
4607+ NL80211_RRF_NO_IR = 1 << 7,
4608+ __NL80211_RRF_NO_IBSS = 1 << 8,
4609+ NL80211_RRF_AUTO_BW = 1 << 11,
4610+ NL80211_RRF_IR_CONCURRENT = 1 << 12,
4611+ NL80211_RRF_NO_HT40MINUS = 1 << 13,
4612+ NL80211_RRF_NO_HT40PLUS = 1 << 14,
4613+ NL80211_RRF_NO_80MHZ = 1 << 15,
4614+ NL80211_RRF_NO_160MHZ = 1 << 16,
4615+ NL80211_RRF_NO_HE = 1 << 17,
4616+ NL80211_RRF_NO_320MHZ = 1 << 18,
4617+ NL80211_RRF_NO_EHT = 1 << 19,
4618+ NL80211_RRF_PSD = 1 << 20,
4619+ NL80211_RRF_DFS_CONCURRENT = 1 << 21,
4620+ NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
4621+ NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
4622+ NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
4623+ NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25,
46104624 };
46114625
46124626 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
@@ -4727,8 +4741,8 @@ enum nl80211_survey_info { · 114 unmodified lines
47274741 * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
47284742 * @NL80211_MNTR_FLAG_CONTROL: pass control frames
47294743 * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
4730− * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
4731− * overrides all other flags.
4744+ * @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated
4745+ * will unconditionally be refused
47324746 * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
47334747 * and ACK incoming unicast packets.
47344748 * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
include/uapi/linux/rtnetlink.h+1−0
@@ -307,6 +307,7 @@ enum { · 306 unmodified lines
307307 #define RTPROT_MROUTED 17 /* Multicast daemon */
308308 #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
309309 #define RTPROT_BABEL 42 /* Babel daemon */
310+#define RTPROT_OVN 84 /* OVN daemon */
310311 #define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */
311312 #define RTPROT_BGP 186 /* BGP Routes */
312313 #define RTPROT_ISIS 187 /* ISIS Routes */
include/uapi/linux/snmp.h+7−6
@@ -23,9 +23,14 @@ enum · 22 unmodified lines
2323 IPSTATS_MIB_INPKTS, /* InReceives */
2424 IPSTATS_MIB_INOCTETS, /* InOctets */
2525 IPSTATS_MIB_INDELIVERS, /* InDelivers */
26− IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
26+ IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
27+ IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
28+ IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
29+ IPSTATS_MIB_CEPKTS, /* InCEPkts */
2730 IPSTATS_MIB_OUTREQUESTS, /* OutRequests */
31+ IPSTATS_MIB_OUTPKTS, /* OutTransmits */
2832 IPSTATS_MIB_OUTOCTETS, /* OutOctets */
33+ IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
2934 /* other fields */
3035 IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */
3136 IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */
@@ -52,12 +57,7 @@ enum · 20 unmodified lines
5257 IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */
5358 IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */
5459 IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */
55− IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
56− IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
57− IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
58− IPSTATS_MIB_CEPKTS, /* InCEPkts */
5960 IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
60− IPSTATS_MIB_OUTPKTS, /* OutTransmits */
6161 __IPSTATS_MIB_MAX
6262 };
6363
@@ -186,6 +186,7 @@ enum · 122 unmodified lines
186186 LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
187187 LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
188188 LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
189+ LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
189190 LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
190191 LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
191192 LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */
include/uapi/linux/tcp.h+9−3
@@ -28,7 +28,8 @@ struct tcphdr { · 27 unmodified lines
2828 __be32 seq;
2929 __be32 ack_seq;
3030 #if defined(__LITTLE_ENDIAN_BITFIELD)
31− __u16 res1:4,
31+ __u16 ae:1,
32+ res1:3,
3233 doff:4,
3334 fin:1,
3435 syn:1,
@@ -40,7 +41,8 @@ struct tcphdr { · 5 unmodified lines
4041 cwr:1;
4142 #elif defined(__BIG_ENDIAN_BITFIELD)
4243 __u16 doff:4,
43− res1:4,
44+ res1:3,
45+ ae:1,
4446 cwr:1,
4547 ece:1,
4648 urg:1,
@@ -70,6 +72,7 @@ union tcp_word_hdr { · 23 unmodified lines
7072 #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])
7173
7274 enum {
75+ TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000),
7376 TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
7477 TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
7578 TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
@@ -78,7 +81,7 @@ enum { · 2 unmodified lines
7881 TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
7982 TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
8083 TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
81− TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
84+ TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0E000000),
8285 TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
8386 };
8487
@@ -136,6 +139,9 @@ enum { · 51 unmodified lines
136139 #define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */
137140
138141 #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */
142+#define TCP_RTO_MAX_MS 44 /* max rto time in ms */
143+#define TCP_RTO_MIN_US 45 /* min rto time in us */
144+#define TCP_DELACK_MAX_US 46 /* max delayed ack time in us */
139145
140146 #define TCP_REPAIR_ON 1
141147 #define TCP_REPAIR_OFF 0
include/uapi/linux/usb/ch9.h+1−0
@@ -330,6 +330,7 @@ struct usb_device_descriptor { · 329 unmodified lines
330330 #define USB_CLASS_AUDIO_VIDEO 0x10
331331 #define USB_CLASS_BILLBOARD 0x11
332332 #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
333+#define USB_CLASS_MCTP 0x14
333334 #define USB_CLASS_MISC 0xef
334335 #define USB_CLASS_APP_SPEC 0xfe
335336 #define USB_SUBCLASS_DFU 0x01
include/uapi/linux/virtio_net.h+13−0
@@ -327,6 +327,19 @@ struct virtio_net_rss_config { · 326 unmodified lines
327327 __u8 hash_key_data[/* hash_key_length */];
328328 };
329329
330+struct virtio_net_rss_config_hdr {
331+ __le32 hash_types;
332+ __le16 indirection_table_mask;
333+ __le16 unclassified_queue;
334+ __le16 indirection_table[/* 1 + indirection_table_mask */];
335+};
336+
337+struct virtio_net_rss_config_trailer {
338+ __le16 max_tx_vq;
339+ __u8 hash_key_length;
340+ __u8 hash_key_data[/* hash_key_length */];
341+};
342+
330343 #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
331344
332345 /*