History

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

Pull networking updates from Paolo Abeni: "Core: - Allow live renaming when an interface is up - Add retpoline wrappers for tc, improving considerably the performances of complex queue discipline configurations - Add inet drop monitor support - A few GRO performance improvements - Add infrastructure for atomic dev stats, addressing long standing data races - De-duplicate common code between OVS and conntrack offloading infrastructure - A bunch of UBSAN_BOUNDS/FORTIFY_SOURCE improvements - Netfilter: introduce packet parser for tunneled packets - Replace IPVS timer-based estimators with kthreads to scale up the workload with the number of available CPUs - Add the helper support for connection-tracking OVS offload BPF: - Support for user defined BPF objects: the use case is to allocate own objects, build own object hierarchies and use the building blocks to build own data structures flexibly, for example, linked lists in BPF - Make cgroup local storage available to non-cgroup attached BPF programs - Avoid unnecessary deadlock detection and failures wrt BPF task storage helpers - A relevant bunch of BPF verifier fixes and improvements - Veristat tool improvements to support custom filtering, sorting, and replay of results - Add LLVM disassembler as default library for dumping JITed code - Lots of new BPF documentation for various BPF maps - Add bpf_rcu_read_{,un}lock() support for sleepable programs - Add RCU grace period chaining to BPF to wait for the completion of access from both sleepable and non-sleepable BPF programs - Add support storing struct task_struct objects as kptrs in maps - Improve helper UAPI by explicitly defining BPF_FUNC_xxx integer values - Add libbpf *_opts API-variants for bpf_*_get_fd_by_id() functions Protocols: - TCP: implement Protective Load Balancing across switch links - TCP: allow dynamically disabling TCP-MD5 static key, reverting back to fast[er]-path - UDP: Introduce optional per-netns hash lookup table - IPv6: simplify and cleanup sockets disposal - Netlink: support different type policies for each generic netlink operation - MPTCP: add MSG_FASTOPEN and FastOpen listener side support - MPTCP: add netlink notification support for listener sockets events - SCTP: add VRF support, allowing sctp sockets binding to VRF devices - Add bridging MAC Authentication Bypass (MAB) support - Extensions for Ethernet VPN bridging implementation to better support multicast scenarios - More work for Wi-Fi 7 support, comprising conversion of all the existing drivers to internal TX queue usage - IPSec: introduce a new offload type (packet offload) allowing complete header processing and crypto offloading - IPSec: extended ack support for more descriptive XFRM error reporting - RXRPC: increase SACK table size and move processing into a per-local endpoint kernel thread, reducing considerably the required locking - IEEE 802154: synchronous send frame and extended filtering support, initial support for scanning available 15.4 networks - Tun: bump the link speed from 10Mbps to 10Gbps - Tun/VirtioNet: implement UDP segmentation offload support Driver API: - PHY/SFP: improve power level switching between standard level 1 and the higher power levels - New API for netdev <-> devlink_port linkage - PTP: convert existing drivers to new frequency adjustment implementation - DSA: add support for rx offloading - Autoload DSA tagging driver when dynamically changing protocol - Add new PCP and APPTRUST attributes to Data Center Bridging - Add configuration support for 800Gbps link speed - Add devlink port function attribute to enable/disable RoCE and migratable - Extend devlink-rate to support strict prioriry and weighted fair queuing - Add devlink support to directly reading from region memory - New device tree helper to fetch MAC address from nvmem - New big TCP helper to simplify temporary header stripping New hardware / drivers: - Ethernet: - Marvel Octeon CNF95N and CN10KB Ethernet Switches - Marvel Prestera AC5X Ethernet Switch - WangXun 10 Gigabit NIC - Motorcomm yt8521 Gigabit Ethernet - Microchip ksz9563 Gigabit Ethernet Switch - Microsoft Azure Network Adapter - Linux Automation 10Base-T1L adapter - PHY: - Aquantia AQR112 and AQR412 - Motorcomm YT8531S - PTP: - Orolia ART-CARD - WiFi: - MediaTek Wi-Fi 7 (802.11be) devices - RealTek rtw8821cu, rtw8822bu, rtw8822cu and rtw8723du USB devices - Bluetooth: - Broadcom BCM4377/4378/4387 Bluetooth chipsets - Realtek RTL8852BE and RTL8723DS - Cypress.CYW4373A0 WiFi + Bluetooth combo device Drivers: - CAN: - gs_usb: bus error reporting support - kvaser_usb: listen only and bus error reporting support - Ethernet NICs: - Intel (100G): - extend action skbedit to RX queue mapping - implement devlink-rate support - support direct read from memory - nVidia/Mellanox (mlx5): - SW steering improvements, increasing rules update rate - Support for enhanced events compression - extend H/W offload packet manipulation capabilities - implement IPSec packet offload mode - nVidia/Mellanox (mlx4): - better big TCP support - Netronome Ethernet NICs (nfp): - IPsec offload support - add support for multicast filter - Broadcom: - RSS and PTP support improvements - AMD/SolarFlare: - netlink extened ack improvements - add basic flower matches to offload, and related stats - Virtual NICs: - ibmvnic: introduce affinity hint support - small / embedded: - FreeScale fec: add initial XDP support - Marvel mv643xx_eth: support MII/GMII/RGMII modes for Kirkwood - TI am65-cpsw: add suspend/resume support - Mediatek MT7986: add RX wireless wthernet dispatch support - Realtek 8169: enable GRO software interrupt coalescing per default - Ethernet high-speed switches: - Microchip (sparx5): - add support for Sparx5 TC/flower H/W offload via VCAP - Mellanox mlxsw: - add 802.1X and MAC Authentication Bypass offload support - add ip6gre support - Embedded Ethernet switches: - Mediatek (mtk_eth_soc): - improve PCS implementation, add DSA untag support - enable flow offload support - Renesas: - add rswitch R-Car Gen4 gPTP support - Microchip (lan966x): - add full XDP support - add TC H/W offload via VCAP - enable PTP on bridge interfaces - Microchip (ksz8): - add MTU support for KSZ8 series - Qualcomm 802.11ax WiFi (ath11k): - support configuring channel dwell time during scan - MediaTek WiFi (mt76): - enable Wireless Ethernet Dispatch (WED) offload support - add ack signal support - enable coredump support - remain_on_channel support - Intel WiFi (iwlwifi): - enable Wi-Fi 7 Extremely High Throughput (EHT) PHY capabilities - 320 MHz channels support - RealTek WiFi (rtw89): - new dynamic header firmware format support - wake-over-WLAN support" * tag 'net-next-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2002 commits) ipvs: fix type warning in do_div() on 32 bit net: lan966x: Remove a useless test in lan966x_ptp_add_trap() net: ipa: add IPA v4.7 support dt-bindings: net: qcom,ipa: Add SM6350 compatible bnxt: Use generic HBH removal helper in tx path IPv6/GRO: generic helper to remove temporary HBH/jumbo header in driver selftests: forwarding: Add bridge MDB test selftests: forwarding: Rename bridge_mdb test bridge: mcast: Support replacement of MDB port group entries bridge: mcast: Allow user space to specify MDB entry routing protocol bridge: mcast: Allow user space to add (*, G) with a source list and filter mode bridge: mcast: Add support for (*, G) with a source list and filter mode bridge: mcast: Avoid arming group timer when (S, G) corresponds to a source bridge: mcast: Add a flag for user installed source entries bridge: mcast: Expose __br_multicast_del_group_src() bridge: mcast: Expose br_multicast_new_group_src() bridge: mcast: Add a centralized error path bridge: mcast: Place netlink policy before validation functions bridge: mcast: Split (*, G) and (S, G) addition into different functions bridge: mcast: Do not derive entry type from its filter mode ...

Linus Torvalds committed 3 years ago

Commit 7e68dd72 parents 1ca06f1 7c4a6302013 files · +165982 −34401Browse files

Showing the changes to include/uapi (24 of 2013 files). Show all

Unified · Split

24 files
  1. include/uapi/linux/bpf.h +296 −228
  2. include/uapi/linux/dcbnl.h +8 −0
  3. include/uapi/linux/devlink.h +18 −0
  4. include/uapi/linux/ethtool.h +12 −6
  5. include/uapi/linux/ethtool_netlink.h +15 −0
  6. include/uapi/linux/if_bridge.h +21 −0
  7. include/uapi/linux/if_link.h +3 −0
  8. include/uapi/linux/if_packet.h +1 −0
  9. include/uapi/linux/if_tun.h +2 −0
  10. include/uapi/linux/mptcp.h +9 −0
  11. include/uapi/linux/neighbour.h +7 −1
  12. include/uapi/linux/net_tstamp.h +2 −1
  13. include/uapi/linux/netfilter/ipset/ip_set.h +2 −0
  14. include/uapi/linux/netfilter/nf_conntrack_sctp.h +1 −0
  15. include/uapi/linux/netfilter/nf_tables.h +29 −0
  16. include/uapi/linux/netfilter/nfnetlink_cttimeout.h +1 −0
  17. include/uapi/linux/nl80211.h +3 −0
  18. include/uapi/linux/openvswitch.h +14 −0
  19. include/uapi/linux/snmp.h +1 −0
  20. include/uapi/linux/tc_act/tc_ct.h +3 −0
  21. include/uapi/linux/tcp.h +6 −0
  22. include/uapi/linux/virtio_bt.h +8 −0
  23. include/uapi/linux/virtio_net.h +4 −0
  24. include/uapi/linux/xfrm.h +6 −0
include/uapi/linux/bpf.h+296−228
@@ -922,7 +922,14 @@ enum bpf_map_type { · 921 unmodified lines
922922 BPF_MAP_TYPE_CPUMAP,
923923 BPF_MAP_TYPE_XSKMAP,
924924 BPF_MAP_TYPE_SOCKHASH,
925− BPF_MAP_TYPE_CGROUP_STORAGE,
925+ BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
926+ /* BPF_MAP_TYPE_CGROUP_STORAGE is available to bpf programs attaching
927+ * to a cgroup. The newer BPF_MAP_TYPE_CGRP_STORAGE is available to
928+ * both cgroup-attached and other progs and supports all functionality
929+ * provided by BPF_MAP_TYPE_CGROUP_STORAGE. So mark
930+ * BPF_MAP_TYPE_CGROUP_STORAGE deprecated.
931+ */
932+ BPF_MAP_TYPE_CGROUP_STORAGE = BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED,
926933 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
927934 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
928935 BPF_MAP_TYPE_QUEUE,
@@ -935,6 +942,7 @@ enum bpf_map_type { · 6 unmodified lines
935942 BPF_MAP_TYPE_TASK_STORAGE,
936943 BPF_MAP_TYPE_BLOOM_FILTER,
937944 BPF_MAP_TYPE_USER_RINGBUF,
945+ BPF_MAP_TYPE_CGRP_STORAGE,
938946 };
939947
940948 /* Note that tracing related programs such as
@@ -2576,14 +2584,19 @@ union bpf_attr { · 1635 unmodified lines
25762584 * * **SOL_SOCKET**, which supports the following *optname*\ s:
25772585 * **SO_RCVBUF**, **SO_SNDBUF**, **SO_MAX_PACING_RATE**,
25782586 * **SO_PRIORITY**, **SO_RCVLOWAT**, **SO_MARK**,
2579− * **SO_BINDTODEVICE**, **SO_KEEPALIVE**.
2587+ * **SO_BINDTODEVICE**, **SO_KEEPALIVE**, **SO_REUSEADDR**,
2588+ * **SO_REUSEPORT**, **SO_BINDTOIFINDEX**, **SO_TXREHASH**.
25802589 * * **IPPROTO_TCP**, which supports the following *optname*\ s:
25812590 * **TCP_CONGESTION**, **TCP_BPF_IW**,
25822591 * **TCP_BPF_SNDCWND_CLAMP**, **TCP_SAVE_SYN**,
25832592 * **TCP_KEEPIDLE**, **TCP_KEEPINTVL**, **TCP_KEEPCNT**,
2584− * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**.
2593+ * **TCP_SYNCNT**, **TCP_USER_TIMEOUT**, **TCP_NOTSENT_LOWAT**,
2594+ * **TCP_NODELAY**, **TCP_MAXSEG**, **TCP_WINDOW_CLAMP**,
2595+ * **TCP_THIN_LINEAR_TIMEOUTS**, **TCP_BPF_DELACK_MAX**,
2596+ * **TCP_BPF_RTO_MIN**.
25852597 * * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
2586− * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
2598+ * * **IPPROTO_IPV6**, which supports the following *optname*\ s:
2599+ * **IPV6_TCLASS**, **IPV6_AUTOFLOWLABEL**.
25872600 * Return
25882601 * 0 on success, or a negative error in case of failure.
25892602 *
@@ -2639,7 +2652,7 @@ union bpf_attr { · 49 unmodified lines
26392652 * Return
26402653 * 0 on success, or a negative error in case of failure.
26412654 *
2642− * long bpf_redirect_map(struct bpf_map *map, u32 key, u64 flags)
2655+ * long bpf_redirect_map(struct bpf_map *map, u64 key, u64 flags)
26432656 * Description
26442657 * Redirect the packet to the endpoint referenced by *map* at
26452658 * index *key*. Depending on its type, this *map* can contain
@@ -2800,12 +2813,10 @@ union bpf_attr { · 154 unmodified lines
28002813 * and **BPF_CGROUP_INET6_CONNECT**.
28012814 *
28022815 * This helper actually implements a subset of **getsockopt()**.
2803− * It supports the following *level*\ s:
2804− *
2805− * * **IPPROTO_TCP**, which supports *optname*
2806− * **TCP_CONGESTION**.
2807− * * **IPPROTO_IP**, which supports *optname* **IP_TOS**.
2808− * * **IPPROTO_IPV6**, which supports *optname* **IPV6_TCLASS**.
2816+ * It supports the same set of *optname*\ s that is supported by
2817+ * the **bpf_setsockopt**\ () helper. The exceptions are
2818+ * **TCP_BPF_*** is **bpf_setsockopt**\ () only and
2819+ * **TCP_SAVED_SYN** is **bpf_getsockopt**\ () only.
28092820 * Return
28102821 * 0 on success, or a negative error in case of failure.
28112822 *
@@ -5282,7 +5293,7 @@ union bpf_attr { · 2470 unmodified lines
52825293 * Return
52835294 * Nothing. Always succeeds.
52845295 *
5285− * long bpf_dynptr_read(void *dst, u32 len, struct bpf_dynptr *src, u32 offset, u64 flags)
5296+ * long bpf_dynptr_read(void *dst, u32 len, const struct bpf_dynptr *src, u32 offset, u64 flags)
52865297 * Description
52875298 * Read *len* bytes from *src* into *dst*, starting from *offset*
52885299 * into *src*.
@@ -5292,7 +5303,7 @@ union bpf_attr { · 3 unmodified lines
52925303 * of *src*'s data, -EINVAL if *src* is an invalid dynptr or if
52935304 * *flags* is not 0.
52945305 *
5295− * long bpf_dynptr_write(struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags)
5306+ * long bpf_dynptr_write(const struct bpf_dynptr *dst, u32 offset, void *src, u32 len, u64 flags)
52965307 * Description
52975308 * Write *len* bytes from *src* into *dst*, starting from *offset*
52985309 * into *dst*.
@@ -5302,7 +5313,7 @@ union bpf_attr { · 3 unmodified lines
53025313 * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst*
53035314 * is a read-only dynptr or if *flags* is not 0.
53045315 *
5305− * void *bpf_dynptr_data(struct bpf_dynptr *ptr, u32 offset, u32 len)
5316+ * void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len)
53065317 * Description
53075318 * Get a pointer to the underlying dynptr data.
53085319 *
@@ -5403,7 +5414,7 @@ union bpf_attr { · 94 unmodified lines
54035414 * Drain samples from the specified user ring buffer, and invoke
54045415 * the provided callback for each such sample:
54055416 *
5406− * long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx);
5417+ * long (\*callback_fn)(const struct bpf_dynptr \*dynptr, void \*ctx);
54075418 *
54085419 * If **callback_fn** returns 0, the helper will continue to try
54095420 * and drain the next sample, up to a maximum of
@@ -5435,226 +5446,272 @@ union bpf_attr { · 25 unmodified lines
54355446 * **-E2BIG** if user-space has tried to publish a sample which is
54365447 * larger than the size of the ring buffer, or which cannot fit
54375448 * within a struct bpf_dynptr.
5449+ *
5450+ * void *bpf_cgrp_storage_get(struct bpf_map *map, struct cgroup *cgroup, void *value, u64 flags)
5451+ * Description
5452+ * Get a bpf_local_storage from the *cgroup*.
5453+ *
5454+ * Logically, it could be thought of as getting the value from
5455+ * a *map* with *cgroup* as the **key**. From this
5456+ * perspective, the usage is not much different from
5457+ * **bpf_map_lookup_elem**\ (*map*, **&**\ *cgroup*) except this
5458+ * helper enforces the key must be a cgroup struct and the map must also
5459+ * be a **BPF_MAP_TYPE_CGRP_STORAGE**.
5460+ *
5461+ * In reality, the local-storage value is embedded directly inside of the
5462+ * *cgroup* object itself, rather than being located in the
5463+ * **BPF_MAP_TYPE_CGRP_STORAGE** map. When the local-storage value is
5464+ * queried for some *map* on a *cgroup* object, the kernel will perform an
5465+ * O(n) iteration over all of the live local-storage values for that
5466+ * *cgroup* object until the local-storage value for the *map* is found.
5467+ *
5468+ * An optional *flags* (**BPF_LOCAL_STORAGE_GET_F_CREATE**) can be
5469+ * used such that a new bpf_local_storage will be
5470+ * created if one does not exist. *value* can be used
5471+ * together with **BPF_LOCAL_STORAGE_GET_F_CREATE** to specify
5472+ * the initial value of a bpf_local_storage. If *value* is
5473+ * **NULL**, the new bpf_local_storage will be zero initialized.
5474+ * Return
5475+ * A bpf_local_storage pointer is returned on success.
5476+ *
5477+ * **NULL** if not found or there was an error in adding
5478+ * a new bpf_local_storage.
5479+ *
5480+ * long bpf_cgrp_storage_delete(struct bpf_map *map, struct cgroup *cgroup)
5481+ * Description
5482+ * Delete a bpf_local_storage from a *cgroup*.
5483+ * Return
5484+ * 0 on success.
5485+ *
5486+ * **-ENOENT** if the bpf_local_storage cannot be found.
54385487 */
5439−#define __BPF_FUNC_MAPPER(FN) \
5440− FN(unspec), \
5441− FN(map_lookup_elem), \
5442− FN(map_update_elem), \
5443− FN(map_delete_elem), \
5444− FN(probe_read), \
5445− FN(ktime_get_ns), \
5446− FN(trace_printk), \
5447− FN(get_prandom_u32), \
5448− FN(get_smp_processor_id), \
5449− FN(skb_store_bytes), \
5450− FN(l3_csum_replace), \
5451− FN(l4_csum_replace), \
5452− FN(tail_call), \
5453− FN(clone_redirect), \
5454− FN(get_current_pid_tgid), \
5455− FN(get_current_uid_gid), \
5456− FN(get_current_comm), \
5457− FN(get_cgroup_classid), \
5458− FN(skb_vlan_push), \
5459− FN(skb_vlan_pop), \
5460− FN(skb_get_tunnel_key), \
5461− FN(skb_set_tunnel_key), \
5462− FN(perf_event_read), \
5463− FN(redirect), \
5464− FN(get_route_realm), \
5465− FN(perf_event_output), \
5466− FN(skb_load_bytes), \
5467− FN(get_stackid), \
5468− FN(csum_diff), \
5469− FN(skb_get_tunnel_opt), \
5470− FN(skb_set_tunnel_opt), \
5471− FN(skb_change_proto), \
5472− FN(skb_change_type), \
5473− FN(skb_under_cgroup), \
5474− FN(get_hash_recalc), \
5475− FN(get_current_task), \
5476− FN(probe_write_user), \
5477− FN(current_task_under_cgroup), \
5478− FN(skb_change_tail), \
5479− FN(skb_pull_data), \
5480− FN(csum_update), \
5481− FN(set_hash_invalid), \
5482− FN(get_numa_node_id), \
5483− FN(skb_change_head), \
5484− FN(xdp_adjust_head), \
5485− FN(probe_read_str), \
5486− FN(get_socket_cookie), \
5487− FN(get_socket_uid), \
5488− FN(set_hash), \
5489− FN(setsockopt), \
5490− FN(skb_adjust_room), \
5491− FN(redirect_map), \
5492− FN(sk_redirect_map), \
5493− FN(sock_map_update), \
5494− FN(xdp_adjust_meta), \
5495− FN(perf_event_read_value), \
5496− FN(perf_prog_read_value), \
5497− FN(getsockopt), \
5498− FN(override_return), \
5499− FN(sock_ops_cb_flags_set), \
5500− FN(msg_redirect_map), \
5501− FN(msg_apply_bytes), \
5502− FN(msg_cork_bytes), \
5503− FN(msg_pull_data), \
5504− FN(bind), \
5505− FN(xdp_adjust_tail), \
5506− FN(skb_get_xfrm_state), \
5507− FN(get_stack), \
5508− FN(skb_load_bytes_relative), \
5509− FN(fib_lookup), \
5510− FN(sock_hash_update), \
5511− FN(msg_redirect_hash), \
5512− FN(sk_redirect_hash), \
5513− FN(lwt_push_encap), \
5514− FN(lwt_seg6_store_bytes), \
5515− FN(lwt_seg6_adjust_srh), \
5516− FN(lwt_seg6_action), \
5517− FN(rc_repeat), \
5518− FN(rc_keydown), \
5519− FN(skb_cgroup_id), \
5520− FN(get_current_cgroup_id), \
5521− FN(get_local_storage), \
5522− FN(sk_select_reuseport), \
5523− FN(skb_ancestor_cgroup_id), \
5524− FN(sk_lookup_tcp), \
5525− FN(sk_lookup_udp), \
5526− FN(sk_release), \
5527− FN(map_push_elem), \
5528− FN(map_pop_elem), \
5529− FN(map_peek_elem), \
5530− FN(msg_push_data), \
5531− FN(msg_pop_data), \
5532− FN(rc_pointer_rel), \
5533− FN(spin_lock), \
5534− FN(spin_unlock), \
5535− FN(sk_fullsock), \
5536− FN(tcp_sock), \
5537− FN(skb_ecn_set_ce), \
5538− FN(get_listener_sock), \
5539− FN(skc_lookup_tcp), \
5540− FN(tcp_check_syncookie), \
5541− FN(sysctl_get_name), \
5542− FN(sysctl_get_current_value), \
5543− FN(sysctl_get_new_value), \
5544− FN(sysctl_set_new_value), \
5545− FN(strtol), \
5546− FN(strtoul), \
5547− FN(sk_storage_get), \
5548− FN(sk_storage_delete), \
5549− FN(send_signal), \
5550− FN(tcp_gen_syncookie), \
5551− FN(skb_output), \
5552− FN(probe_read_user), \
5553− FN(probe_read_kernel), \
5554− FN(probe_read_user_str), \
5555− FN(probe_read_kernel_str), \
5556− FN(tcp_send_ack), \
5557− FN(send_signal_thread), \
5558− FN(jiffies64), \
5559− FN(read_branch_records), \
5560− FN(get_ns_current_pid_tgid), \
5561− FN(xdp_output), \
5562− FN(get_netns_cookie), \
5563− FN(get_current_ancestor_cgroup_id), \
5564− FN(sk_assign), \
5565− FN(ktime_get_boot_ns), \
5566− FN(seq_printf), \
5567− FN(seq_write), \
5568− FN(sk_cgroup_id), \
5569− FN(sk_ancestor_cgroup_id), \
5570− FN(ringbuf_output), \
5571− FN(ringbuf_reserve), \
5572− FN(ringbuf_submit), \
5573− FN(ringbuf_discard), \
5574− FN(ringbuf_query), \
5575− FN(csum_level), \
5576− FN(skc_to_tcp6_sock), \
5577− FN(skc_to_tcp_sock), \
5578− FN(skc_to_tcp_timewait_sock), \
5579− FN(skc_to_tcp_request_sock), \
5580− FN(skc_to_udp6_sock), \
5581− FN(get_task_stack), \
5582− FN(load_hdr_opt), \
5583− FN(store_hdr_opt), \
5584− FN(reserve_hdr_opt), \
5585− FN(inode_storage_get), \
5586− FN(inode_storage_delete), \
5587− FN(d_path), \
5588− FN(copy_from_user), \
5589− FN(snprintf_btf), \
5590− FN(seq_printf_btf), \
5591− FN(skb_cgroup_classid), \
5592− FN(redirect_neigh), \
5593− FN(per_cpu_ptr), \
5594− FN(this_cpu_ptr), \
5595− FN(redirect_peer), \
5596− FN(task_storage_get), \
5597− FN(task_storage_delete), \
5598− FN(get_current_task_btf), \
5599− FN(bprm_opts_set), \
5600− FN(ktime_get_coarse_ns), \
5601− FN(ima_inode_hash), \
5602− FN(sock_from_file), \
5603− FN(check_mtu), \
5604− FN(for_each_map_elem), \
5605− FN(snprintf), \
5606− FN(sys_bpf), \
5607− FN(btf_find_by_name_kind), \
5608− FN(sys_close), \
5609− FN(timer_init), \
5610− FN(timer_set_callback), \
5611− FN(timer_start), \
5612− FN(timer_cancel), \
5613− FN(get_func_ip), \
5614− FN(get_attach_cookie), \
5615− FN(task_pt_regs), \
5616− FN(get_branch_snapshot), \
5617− FN(trace_vprintk), \
5618− FN(skc_to_unix_sock), \
5619− FN(kallsyms_lookup_name), \
5620− FN(find_vma), \
5621− FN(loop), \
5622− FN(strncmp), \
5623− FN(get_func_arg), \
5624− FN(get_func_ret), \
5625− FN(get_func_arg_cnt), \
5626− FN(get_retval), \
5627− FN(set_retval), \
5628− FN(xdp_get_buff_len), \
5629− FN(xdp_load_bytes), \
5630− FN(xdp_store_bytes), \
5631− FN(copy_from_user_task), \
5632− FN(skb_set_tstamp), \
5633− FN(ima_file_hash), \
5634− FN(kptr_xchg), \
5635− FN(map_lookup_percpu_elem), \
5636− FN(skc_to_mptcp_sock), \
5637− FN(dynptr_from_mem), \
5638− FN(ringbuf_reserve_dynptr), \
5639− FN(ringbuf_submit_dynptr), \
5640− FN(ringbuf_discard_dynptr), \
5641− FN(dynptr_read), \
5642− FN(dynptr_write), \
5643− FN(dynptr_data), \
5644− FN(tcp_raw_gen_syncookie_ipv4), \
5645− FN(tcp_raw_gen_syncookie_ipv6), \
5646− FN(tcp_raw_check_syncookie_ipv4), \
5647− FN(tcp_raw_check_syncookie_ipv6), \
5648− FN(ktime_get_tai_ns), \
5649− FN(user_ringbuf_drain), \
5488+#define ___BPF_FUNC_MAPPER(FN, ctx...) \
5489+ FN(unspec, 0, ##ctx) \
5490+ FN(map_lookup_elem, 1, ##ctx) \
5491+ FN(map_update_elem, 2, ##ctx) \
5492+ FN(map_delete_elem, 3, ##ctx) \
5493+ FN(probe_read, 4, ##ctx) \
5494+ FN(ktime_get_ns, 5, ##ctx) \
5495+ FN(trace_printk, 6, ##ctx) \
5496+ FN(get_prandom_u32, 7, ##ctx) \
5497+ FN(get_smp_processor_id, 8, ##ctx) \
5498+ FN(skb_store_bytes, 9, ##ctx) \
5499+ FN(l3_csum_replace, 10, ##ctx) \
5500+ FN(l4_csum_replace, 11, ##ctx) \
5501+ FN(tail_call, 12, ##ctx) \
5502+ FN(clone_redirect, 13, ##ctx) \
5503+ FN(get_current_pid_tgid, 14, ##ctx) \
5504+ FN(get_current_uid_gid, 15, ##ctx) \
5505+ FN(get_current_comm, 16, ##ctx) \
5506+ FN(get_cgroup_classid, 17, ##ctx) \
5507+ FN(skb_vlan_push, 18, ##ctx) \
5508+ FN(skb_vlan_pop, 19, ##ctx) \
5509+ FN(skb_get_tunnel_key, 20, ##ctx) \
5510+ FN(skb_set_tunnel_key, 21, ##ctx) \
5511+ FN(perf_event_read, 22, ##ctx) \
5512+ FN(redirect, 23, ##ctx) \
5513+ FN(get_route_realm, 24, ##ctx) \
5514+ FN(perf_event_output, 25, ##ctx) \
5515+ FN(skb_load_bytes, 26, ##ctx) \
5516+ FN(get_stackid, 27, ##ctx) \
5517+ FN(csum_diff, 28, ##ctx) \
5518+ FN(skb_get_tunnel_opt, 29, ##ctx) \
5519+ FN(skb_set_tunnel_opt, 30, ##ctx) \
5520+ FN(skb_change_proto, 31, ##ctx) \
5521+ FN(skb_change_type, 32, ##ctx) \
5522+ FN(skb_under_cgroup, 33, ##ctx) \
5523+ FN(get_hash_recalc, 34, ##ctx) \
5524+ FN(get_current_task, 35, ##ctx) \
5525+ FN(probe_write_user, 36, ##ctx) \
5526+ FN(current_task_under_cgroup, 37, ##ctx) \
5527+ FN(skb_change_tail, 38, ##ctx) \
5528+ FN(skb_pull_data, 39, ##ctx) \
5529+ FN(csum_update, 40, ##ctx) \
5530+ FN(set_hash_invalid, 41, ##ctx) \
5531+ FN(get_numa_node_id, 42, ##ctx) \
5532+ FN(skb_change_head, 43, ##ctx) \
5533+ FN(xdp_adjust_head, 44, ##ctx) \
5534+ FN(probe_read_str, 45, ##ctx) \
5535+ FN(get_socket_cookie, 46, ##ctx) \
5536+ FN(get_socket_uid, 47, ##ctx) \
5537+ FN(set_hash, 48, ##ctx) \
5538+ FN(setsockopt, 49, ##ctx) \
5539+ FN(skb_adjust_room, 50, ##ctx) \
5540+ FN(redirect_map, 51, ##ctx) \
5541+ FN(sk_redirect_map, 52, ##ctx) \
5542+ FN(sock_map_update, 53, ##ctx) \
5543+ FN(xdp_adjust_meta, 54, ##ctx) \
5544+ FN(perf_event_read_value, 55, ##ctx) \
5545+ FN(perf_prog_read_value, 56, ##ctx) \
5546+ FN(getsockopt, 57, ##ctx) \
5547+ FN(override_return, 58, ##ctx) \
5548+ FN(sock_ops_cb_flags_set, 59, ##ctx) \
5549+ FN(msg_redirect_map, 60, ##ctx) \
5550+ FN(msg_apply_bytes, 61, ##ctx) \
5551+ FN(msg_cork_bytes, 62, ##ctx) \
5552+ FN(msg_pull_data, 63, ##ctx) \
5553+ FN(bind, 64, ##ctx) \
5554+ FN(xdp_adjust_tail, 65, ##ctx) \
5555+ FN(skb_get_xfrm_state, 66, ##ctx) \
5556+ FN(get_stack, 67, ##ctx) \
5557+ FN(skb_load_bytes_relative, 68, ##ctx) \
5558+ FN(fib_lookup, 69, ##ctx) \
5559+ FN(sock_hash_update, 70, ##ctx) \
5560+ FN(msg_redirect_hash, 71, ##ctx) \
5561+ FN(sk_redirect_hash, 72, ##ctx) \
5562+ FN(lwt_push_encap, 73, ##ctx) \
5563+ FN(lwt_seg6_store_bytes, 74, ##ctx) \
5564+ FN(lwt_seg6_adjust_srh, 75, ##ctx) \
5565+ FN(lwt_seg6_action, 76, ##ctx) \
5566+ FN(rc_repeat, 77, ##ctx) \
5567+ FN(rc_keydown, 78, ##ctx) \
5568+ FN(skb_cgroup_id, 79, ##ctx) \
5569+ FN(get_current_cgroup_id, 80, ##ctx) \
5570+ FN(get_local_storage, 81, ##ctx) \
5571+ FN(sk_select_reuseport, 82, ##ctx) \
5572+ FN(skb_ancestor_cgroup_id, 83, ##ctx) \
5573+ FN(sk_lookup_tcp, 84, ##ctx) \
5574+ FN(sk_lookup_udp, 85, ##ctx) \
5575+ FN(sk_release, 86, ##ctx) \
5576+ FN(map_push_elem, 87, ##ctx) \
5577+ FN(map_pop_elem, 88, ##ctx) \
5578+ FN(map_peek_elem, 89, ##ctx) \
5579+ FN(msg_push_data, 90, ##ctx) \
5580+ FN(msg_pop_data, 91, ##ctx) \
5581+ FN(rc_pointer_rel, 92, ##ctx) \
5582+ FN(spin_lock, 93, ##ctx) \
5583+ FN(spin_unlock, 94, ##ctx) \
5584+ FN(sk_fullsock, 95, ##ctx) \
5585+ FN(tcp_sock, 96, ##ctx) \
5586+ FN(skb_ecn_set_ce, 97, ##ctx) \
5587+ FN(get_listener_sock, 98, ##ctx) \
5588+ FN(skc_lookup_tcp, 99, ##ctx) \
5589+ FN(tcp_check_syncookie, 100, ##ctx) \
5590+ FN(sysctl_get_name, 101, ##ctx) \
5591+ FN(sysctl_get_current_value, 102, ##ctx) \
5592+ FN(sysctl_get_new_value, 103, ##ctx) \
5593+ FN(sysctl_set_new_value, 104, ##ctx) \
5594+ FN(strtol, 105, ##ctx) \
5595+ FN(strtoul, 106, ##ctx) \
5596+ FN(sk_storage_get, 107, ##ctx) \
5597+ FN(sk_storage_delete, 108, ##ctx) \
5598+ FN(send_signal, 109, ##ctx) \
5599+ FN(tcp_gen_syncookie, 110, ##ctx) \
5600+ FN(skb_output, 111, ##ctx) \
5601+ FN(probe_read_user, 112, ##ctx) \
5602+ FN(probe_read_kernel, 113, ##ctx) \
5603+ FN(probe_read_user_str, 114, ##ctx) \
5604+ FN(probe_read_kernel_str, 115, ##ctx) \
5605+ FN(tcp_send_ack, 116, ##ctx) \
5606+ FN(send_signal_thread, 117, ##ctx) \
5607+ FN(jiffies64, 118, ##ctx) \
5608+ FN(read_branch_records, 119, ##ctx) \
5609+ FN(get_ns_current_pid_tgid, 120, ##ctx) \
5610+ FN(xdp_output, 121, ##ctx) \
5611+ FN(get_netns_cookie, 122, ##ctx) \
5612+ FN(get_current_ancestor_cgroup_id, 123, ##ctx) \
5613+ FN(sk_assign, 124, ##ctx) \
5614+ FN(ktime_get_boot_ns, 125, ##ctx) \
5615+ FN(seq_printf, 126, ##ctx) \
5616+ FN(seq_write, 127, ##ctx) \
5617+ FN(sk_cgroup_id, 128, ##ctx) \
5618+ FN(sk_ancestor_cgroup_id, 129, ##ctx) \
5619+ FN(ringbuf_output, 130, ##ctx) \
5620+ FN(ringbuf_reserve, 131, ##ctx) \
5621+ FN(ringbuf_submit, 132, ##ctx) \
5622+ FN(ringbuf_discard, 133, ##ctx) \
5623+ FN(ringbuf_query, 134, ##ctx) \
5624+ FN(csum_level, 135, ##ctx) \
5625+ FN(skc_to_tcp6_sock, 136, ##ctx) \
5626+ FN(skc_to_tcp_sock, 137, ##ctx) \
5627+ FN(skc_to_tcp_timewait_sock, 138, ##ctx) \
5628+ FN(skc_to_tcp_request_sock, 139, ##ctx) \
5629+ FN(skc_to_udp6_sock, 140, ##ctx) \
5630+ FN(get_task_stack, 141, ##ctx) \
5631+ FN(load_hdr_opt, 142, ##ctx) \
5632+ FN(store_hdr_opt, 143, ##ctx) \
5633+ FN(reserve_hdr_opt, 144, ##ctx) \
5634+ FN(inode_storage_get, 145, ##ctx) \
5635+ FN(inode_storage_delete, 146, ##ctx) \
5636+ FN(d_path, 147, ##ctx) \
5637+ FN(copy_from_user, 148, ##ctx) \
5638+ FN(snprintf_btf, 149, ##ctx) \
5639+ FN(seq_printf_btf, 150, ##ctx) \
5640+ FN(skb_cgroup_classid, 151, ##ctx) \
5641+ FN(redirect_neigh, 152, ##ctx) \
5642+ FN(per_cpu_ptr, 153, ##ctx) \
5643+ FN(this_cpu_ptr, 154, ##ctx) \
5644+ FN(redirect_peer, 155, ##ctx) \
5645+ FN(task_storage_get, 156, ##ctx) \
5646+ FN(task_storage_delete, 157, ##ctx) \
5647+ FN(get_current_task_btf, 158, ##ctx) \
5648+ FN(bprm_opts_set, 159, ##ctx) \
5649+ FN(ktime_get_coarse_ns, 160, ##ctx) \
5650+ FN(ima_inode_hash, 161, ##ctx) \
5651+ FN(sock_from_file, 162, ##ctx) \
5652+ FN(check_mtu, 163, ##ctx) \
5653+ FN(for_each_map_elem, 164, ##ctx) \
5654+ FN(snprintf, 165, ##ctx) \
5655+ FN(sys_bpf, 166, ##ctx) \
5656+ FN(btf_find_by_name_kind, 167, ##ctx) \
5657+ FN(sys_close, 168, ##ctx) \
5658+ FN(timer_init, 169, ##ctx) \
5659+ FN(timer_set_callback, 170, ##ctx) \
5660+ FN(timer_start, 171, ##ctx) \
5661+ FN(timer_cancel, 172, ##ctx) \
5662+ FN(get_func_ip, 173, ##ctx) \
5663+ FN(get_attach_cookie, 174, ##ctx) \
5664+ FN(task_pt_regs, 175, ##ctx) \
5665+ FN(get_branch_snapshot, 176, ##ctx) \
5666+ FN(trace_vprintk, 177, ##ctx) \
5667+ FN(skc_to_unix_sock, 178, ##ctx) \
5668+ FN(kallsyms_lookup_name, 179, ##ctx) \
5669+ FN(find_vma, 180, ##ctx) \
5670+ FN(loop, 181, ##ctx) \
5671+ FN(strncmp, 182, ##ctx) \
5672+ FN(get_func_arg, 183, ##ctx) \
5673+ FN(get_func_ret, 184, ##ctx) \
5674+ FN(get_func_arg_cnt, 185, ##ctx) \
5675+ FN(get_retval, 186, ##ctx) \
5676+ FN(set_retval, 187, ##ctx) \
5677+ FN(xdp_get_buff_len, 188, ##ctx) \
5678+ FN(xdp_load_bytes, 189, ##ctx) \
5679+ FN(xdp_store_bytes, 190, ##ctx) \
5680+ FN(copy_from_user_task, 191, ##ctx) \
5681+ FN(skb_set_tstamp, 192, ##ctx) \
5682+ FN(ima_file_hash, 193, ##ctx) \
5683+ FN(kptr_xchg, 194, ##ctx) \
5684+ FN(map_lookup_percpu_elem, 195, ##ctx) \
5685+ FN(skc_to_mptcp_sock, 196, ##ctx) \
5686+ FN(dynptr_from_mem, 197, ##ctx) \
5687+ FN(ringbuf_reserve_dynptr, 198, ##ctx) \
5688+ FN(ringbuf_submit_dynptr, 199, ##ctx) \
5689+ FN(ringbuf_discard_dynptr, 200, ##ctx) \
5690+ FN(dynptr_read, 201, ##ctx) \
5691+ FN(dynptr_write, 202, ##ctx) \
5692+ FN(dynptr_data, 203, ##ctx) \
5693+ FN(tcp_raw_gen_syncookie_ipv4, 204, ##ctx) \
5694+ FN(tcp_raw_gen_syncookie_ipv6, 205, ##ctx) \
5695+ FN(tcp_raw_check_syncookie_ipv4, 206, ##ctx) \
5696+ FN(tcp_raw_check_syncookie_ipv6, 207, ##ctx) \
5697+ FN(ktime_get_tai_ns, 208, ##ctx) \
5698+ FN(user_ringbuf_drain, 209, ##ctx) \
5699+ FN(cgrp_storage_get, 210, ##ctx) \
5700+ FN(cgrp_storage_delete, 211, ##ctx) \
56505701 /* */
56515702
5703+/* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
5704+ * know or care about integer value that is now passed as second argument
5705+ */
5706+#define __BPF_FUNC_MAPPER_APPLY(name, value, FN) FN(name),
5707+#define __BPF_FUNC_MAPPER(FN) ___BPF_FUNC_MAPPER(__BPF_FUNC_MAPPER_APPLY, FN)
5708+
56525709 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
56535710 * function eBPF program intends to call
56545711 */
5655−#define __BPF_ENUM_FN(x) BPF_FUNC_ ## x
5712+#define __BPF_ENUM_FN(x, y) BPF_FUNC_ ## x = y,
56565713 enum bpf_func_id {
5657− __BPF_FUNC_MAPPER(__BPF_ENUM_FN)
5714+ ___BPF_FUNC_MAPPER(__BPF_ENUM_FN)
56585715 __BPF_FUNC_MAX_ID,
56595716 };
56605717 #undef __BPF_ENUM_FN
@@ -6391,6 +6448,7 @@ struct bpf_sock_ops { · 730 unmodified lines
63916448 * the outgoing header has not
63926449 * been written yet.
63936450 */
6451+ __u64 skb_hwtstamp;
63946452 };
63956453
63966454 /* Definitions for bpf_sock_ops_cb_flags */
@@ -6833,6 +6891,16 @@ struct bpf_dynptr { · 436 unmodified lines
68336891 __u64 :64;
68346892 } __attribute__((aligned(8)));
68356893
6894+struct bpf_list_head {
6895+ __u64 :64;
6896+ __u64 :64;
6897+} __attribute__((aligned(8)));
6898+
6899+struct bpf_list_node {
6900+ __u64 :64;
6901+ __u64 :64;
6902+} __attribute__((aligned(8)));
6903+
68366904 struct bpf_sysctl {
68376905 __u32 write; /* Sysctl is being read (= 0) or written (= 1).
68386906 * Allows 1,2,4-byte read, but no write.
include/uapi/linux/dcbnl.h+8−0
@@ -218,6 +218,9 @@ struct cee_pfc { · 217 unmodified lines
218218 #define IEEE_8021QAZ_APP_SEL_ANY 4
219219 #define IEEE_8021QAZ_APP_SEL_DSCP 5
220220
221+/* Non-std selector values */
222+#define DCB_APP_SEL_PCP 255
223+
221224 /* This structure contains the IEEE 802.1Qaz APP managed object. This
222225 * object is also used for the CEE std as well.
223226 *
@@ -247,6 +250,8 @@ struct dcb_app { · 23 unmodified lines
247250 __u16 protocol;
248251 };
249252
253+#define IEEE_8021QAZ_APP_SEL_MAX 255
254+
250255 /**
251256 * struct dcb_peer_app_info - APP feature information sent by the peer
252257 *
@@ -405,6 +410,7 @@ enum dcbnl_attrs { · 152 unmodified lines
405410 * @DCB_ATTR_IEEE_PEER_ETS: peer ETS configuration - get only
406411 * @DCB_ATTR_IEEE_PEER_PFC: peer PFC configuration - get only
407412 * @DCB_ATTR_IEEE_PEER_APP: peer APP tlv - get only
413+ * @DCB_ATTR_DCB_APP_TRUST_TABLE: selector trust table
408414 */
409415 enum ieee_attrs {
410416 DCB_ATTR_IEEE_UNSPEC,
@@ -418,6 +424,7 @@ enum ieee_attrs { · 7 unmodified lines
418424 DCB_ATTR_IEEE_QCN,
419425 DCB_ATTR_IEEE_QCN_STATS,
420426 DCB_ATTR_DCB_BUFFER,
427+ DCB_ATTR_DCB_APP_TRUST_TABLE,
421428 __DCB_ATTR_IEEE_MAX
422429 };
423430 #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
@@ -425,6 +432,7 @@ enum ieee_attrs { · 1 unmodified line
425432 enum ieee_attrs_app {
426433 DCB_ATTR_IEEE_APP_UNSPEC,
427434 DCB_ATTR_IEEE_APP,
435+ DCB_ATTR_DCB_APP,
428436 __DCB_ATTR_IEEE_APP_MAX
429437 };
430438 #define DCB_ATTR_IEEE_APP_MAX (__DCB_ATTR_IEEE_APP_MAX - 1)
include/uapi/linux/devlink.h+18−0
@@ -607,6 +607,11 @@ enum devlink_attr { · 606 unmodified lines
607607
608608 DEVLINK_ATTR_SELFTESTS, /* nested */
609609
610+ DEVLINK_ATTR_RATE_TX_PRIORITY, /* u32 */
611+ DEVLINK_ATTR_RATE_TX_WEIGHT, /* u32 */
612+
613+ DEVLINK_ATTR_REGION_DIRECT, /* flag */
614+
610615 /* add new attributes above here, update the policy in devlink.c */
611616
612617 __DEVLINK_ATTR_MAX,
@@ -653,11 +658,24 @@ enum devlink_resource_unit { · 40 unmodified lines
653658 DEVLINK_RESOURCE_UNIT_ENTRY,
654659 };
655660
661+enum devlink_port_fn_attr_cap {
662+ DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
663+ DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT,
664+
665+ /* Add new caps above */
666+ __DEVLINK_PORT_FN_ATTR_CAPS_MAX,
667+};
668+
669+#define DEVLINK_PORT_FN_CAP_ROCE _BITUL(DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT)
670+#define DEVLINK_PORT_FN_CAP_MIGRATABLE \
671+ _BITUL(DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT)
672+
656673 enum devlink_port_function_attr {
657674 DEVLINK_PORT_FUNCTION_ATTR_UNSPEC,
658675 DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR, /* binary */
659676 DEVLINK_PORT_FN_ATTR_STATE, /* u8 */
660677 DEVLINK_PORT_FN_ATTR_OPSTATE, /* u8 */
678+ DEVLINK_PORT_FN_ATTR_CAPS, /* bitfield32 */
661679
662680 __DEVLINK_PORT_FUNCTION_ATTR_MAX,
663681 DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
include/uapi/linux/ethtool.h+12−6
@@ -159,8 +159,10 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 158 unmodified lines
159159 * in its bus driver structure (e.g. pci_driver::name). Must
160160 * not be an empty string.
161161 * @version: Driver version string; may be an empty string
162− * @fw_version: Firmware version string; may be an empty string
163− * @erom_version: Expansion ROM version string; may be an empty string
162+ * @fw_version: Firmware version string; driver defined; may be an
163+ * empty string
164+ * @erom_version: Expansion ROM version string; driver defined; may be
165+ * an empty string
164166 * @bus_info: Device bus address. This should match the dev_name()
165167 * string for the underlying bus device, if there is one. May be
166168 * an empty string.
@@ -179,10 +181,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 12 unmodified lines
179181 *
180182 * Users can use the %ETHTOOL_GSSET_INFO command to get the number of
181183 * strings in any string set (from Linux 2.6.34).
182− *
183− * Drivers should set at most @driver, @version, @fw_version and
184− * @bus_info in their get_drvinfo() implementation. The ethtool
185− * core fills in the other fields using other driver operations.
186184 */
187185 struct ethtool_drvinfo {
188186 __u32 cmd;
@@ -1737,6 +1735,13 @@ enum ethtool_link_mode_bit_indices { · 1548 unmodified lines
17371735 ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
17381736 ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
17391737 ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
1738+ ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
1739+ ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
1740+ ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
1741+ ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
1742+ ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
1743+ ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
1744+
17401745 /* must be last entry */
17411746 __ETHTOOL_LINK_MODE_MASK_NBITS
17421747 };
@@ -1848,6 +1853,7 @@ enum ethtool_link_mode_bit_indices { · 105 unmodified lines
18481853 #define SPEED_100000 100000
18491854 #define SPEED_200000 200000
18501855 #define SPEED_400000 400000
1856+#define SPEED_800000 800000
18511857
18521858 #define SPEED_UNKNOWN -1
18531859
include/uapi/linux/ethtool_netlink.h+15−0
@@ -51,6 +51,7 @@ enum { · 50 unmodified lines
5151 ETHTOOL_MSG_MODULE_SET,
5252 ETHTOOL_MSG_PSE_GET,
5353 ETHTOOL_MSG_PSE_SET,
54+ ETHTOOL_MSG_RSS_GET,
5455
5556 /* add new constants above here */
5657 __ETHTOOL_MSG_USER_CNT,
@@ -97,6 +98,7 @@ enum { · 40 unmodified lines
9798 ETHTOOL_MSG_MODULE_GET_REPLY,
9899 ETHTOOL_MSG_MODULE_NTF,
99100 ETHTOOL_MSG_PSE_GET_REPLY,
101+ ETHTOOL_MSG_RSS_GET_REPLY,
100102
101103 /* add new constants above here */
102104 __ETHTOOL_MSG_KERNEL_CNT,
@@ -262,6 +264,7 @@ enum { · 159 unmodified lines
262264 ETHTOOL_A_LINKSTATE_SQI_MAX, /* u32 */
263265 ETHTOOL_A_LINKSTATE_EXT_STATE, /* u8 */
264266 ETHTOOL_A_LINKSTATE_EXT_SUBSTATE, /* u8 */
267+ ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT, /* u32 */
265268
266269 /* add new constants above here */
267270 __ETHTOOL_A_LINKSTATE_CNT,
@@ -879,6 +882,18 @@ enum { · 611 unmodified lines
879882 ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
880883 };
881884
885+enum {
886+ ETHTOOL_A_RSS_UNSPEC,
887+ ETHTOOL_A_RSS_HEADER,
888+ ETHTOOL_A_RSS_CONTEXT, /* u32 */
889+ ETHTOOL_A_RSS_HFUNC, /* u32 */
890+ ETHTOOL_A_RSS_INDIR, /* binary */
891+ ETHTOOL_A_RSS_HKEY, /* binary */
892+
893+ __ETHTOOL_A_RSS_CNT,
894+ ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
895+};
896+
882897 /* generic netlink info */
883898 #define ETHTOOL_GENL_NAME "ethtool"
884899 #define ETHTOOL_GENL_VERSION 1
include/uapi/linux/if_bridge.h+21−0
@@ -723,10 +723,31 @@ enum { · 722 unmodified lines
723723 enum {
724724 MDBE_ATTR_UNSPEC,
725725 MDBE_ATTR_SOURCE,
726+ MDBE_ATTR_SRC_LIST,
727+ MDBE_ATTR_GROUP_MODE,
728+ MDBE_ATTR_RTPROT,
726729 __MDBE_ATTR_MAX,
727730 };
728731 #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
729732
733+/* per mdb entry source */
734+enum {
735+ MDBE_SRC_LIST_UNSPEC,
736+ MDBE_SRC_LIST_ENTRY,
737+ __MDBE_SRC_LIST_MAX,
738+};
739+#define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1)
740+
741+/* per mdb entry per source attributes
742+ * these are embedded in MDBE_SRC_LIST_ENTRY
743+ */
744+enum {
745+ MDBE_SRCATTR_UNSPEC,
746+ MDBE_SRCATTR_ADDRESS,
747+ __MDBE_SRCATTR_MAX,
748+};
749+#define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1)
750+
730751 /* Embedded inside LINK_XSTATS_TYPE_BRIDGE */
731752 enum {
732753 BRIDGE_XSTATS_UNSPEC,
include/uapi/linux/if_link.h+3−0
@@ -372,6 +372,8 @@ enum { · 371 unmodified lines
372372 IFLA_TSO_MAX_SEGS,
373373 IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
374374
375+ IFLA_DEVLINK_PORT,
376+
375377 __IFLA_MAX
376378 };
377379
@@ -561,6 +563,7 @@ enum { · 183 unmodified lines
561563 IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
562564 IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
563565 IFLA_BRPORT_LOCKED,
566+ IFLA_BRPORT_MAB,
564567 __IFLA_BRPORT_MAX
565568 };
566569 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
include/uapi/linux/if_packet.h+1−0
@@ -70,6 +70,7 @@ struct sockaddr_ll { · 69 unmodified lines
7070 #define PACKET_FANOUT_EBPF 7
7171 #define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
7272 #define PACKET_FANOUT_FLAG_UNIQUEID 0x2000
73+#define PACKET_FANOUT_FLAG_IGNORE_OUTGOING 0x4000
7374 #define PACKET_FANOUT_FLAG_DEFRAG 0x8000
7475
7576 struct tpacket_stats {
include/uapi/linux/if_tun.h+2−0
@@ -90,6 +90,8 @@ · 89 unmodified lines
9090 #define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
9191 #define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
9292 #define TUN_F_UFO 0x10 /* I can handle UFO packets */
93+#define TUN_F_USO4 0x20 /* I can handle USO for IPv4 packets */
94+#define TUN_F_USO6 0x40 /* I can handle USO for IPv6 packets */
9395
9496 /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
9597 #define TUN_PKT_STRIP 0x0001
include/uapi/linux/mptcp.h+9−0
@@ -160,6 +160,12 @@ struct mptcp_info { · 159 unmodified lines
160160 * daddr4 | daddr6, sport, dport, backup, if_idx
161161 * [, error]
162162 * The priority of a subflow has changed. 'error' should not be set.
163+ *
164+ * MPTCP_EVENT_LISTENER_CREATED: family, sport, saddr4 | saddr6
165+ * A new PM listener is created.
166+ *
167+ * MPTCP_EVENT_LISTENER_CLOSED: family, sport, saddr4 | saddr6
168+ * A PM listener is closed.
163169 */
164170 enum mptcp_event_type {
165171 MPTCP_EVENT_UNSPEC = 0,
@@ -174,6 +180,9 @@ enum mptcp_event_type { · 8 unmodified lines
174180 MPTCP_EVENT_SUB_CLOSED = 11,
175181
176182 MPTCP_EVENT_SUB_PRIORITY = 13,
183+
184+ MPTCP_EVENT_LISTENER_CREATED = 15,
185+ MPTCP_EVENT_LISTENER_CLOSED = 16,
177186 };
178187
179188 enum mptcp_event_attr {
include/uapi/linux/neighbour.h+7−1
@@ -52,7 +52,8 @@ enum { · 51 unmodified lines
5252 #define NTF_STICKY (1 << 6)
5353 #define NTF_ROUTER (1 << 7)
5454 /* Extended flags under NDA_FLAGS_EXT: */
55−#define NTF_EXT_MANAGED (1 << 0)
55+#define NTF_EXT_MANAGED (1 << 0)
56+#define NTF_EXT_LOCKED (1 << 1)
5657
5758 /*
5859 * Neighbor Cache Entry States.
@@ -86,6 +87,11 @@ enum { · 27 unmodified lines
8687 * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf
8788 * of a user space control plane, and automatically refreshed so that (if
8889 * possible) they remain in NUD_REACHABLE state.
90+ *
91+ * NTF_EXT_LOCKED flagged bridge FDB entries are entries generated by the
92+ * bridge in response to a host trying to communicate via a locked bridge port
93+ * with MAB enabled. Their purpose is to notify user space that a host requires
94+ * authentication.
8995 */
9096
9197 struct nda_cacheinfo {
include/uapi/linux/net_tstamp.h+2−1
@@ -31,8 +31,9 @@ enum { · 30 unmodified lines
3131 SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
3232 SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),
3333 SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
34+ SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
3435
35− SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
36+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_ID_TCP,
3637 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
3738 SOF_TIMESTAMPING_LAST
3839 };
include/uapi/linux/netfilter/ipset/ip_set.h+2−0
@@ -85,6 +85,7 @@ enum { · 84 unmodified lines
8585 IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO, /* 9 */
8686 IPSET_ATTR_MARK, /* 10 */
8787 IPSET_ATTR_MARKMASK, /* 11 */
88+ IPSET_ATTR_BITMASK, /* 12 */
8889 /* Reserve empty slots */
8990 IPSET_ATTR_CADT_MAX = 16,
9091 /* Create-only specific attributes */
@@ -153,6 +154,7 @@ enum ipset_errno { · 62 unmodified lines
153154 IPSET_ERR_COMMENT,
154155 IPSET_ERR_INVALID_MARKMASK,
155156 IPSET_ERR_SKBINFO,
157+ IPSET_ERR_BITMASK_NETMASK_EXCL,
156158
157159 /* Type specific error codes */
158160 IPSET_ERR_TYPE_SPECIFIC = 4352,
include/uapi/linux/netfilter/nf_conntrack_sctp.h+1−0
@@ -16,6 +16,7 @@ enum sctp_conntrack { · 15 unmodified lines
1616 SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
1717 SCTP_CONNTRACK_HEARTBEAT_SENT,
1818 SCTP_CONNTRACK_HEARTBEAT_ACKED,
19+ SCTP_CONNTRACK_DATA_SENT,
1920 SCTP_CONNTRACK_MAX
2021 };
2122
include/uapi/linux/netfilter/nf_tables.h+29−0
@@ -97,6 +97,7 @@ enum nft_verdicts { · 96 unmodified lines
9797 * @NFT_MSG_NEWFLOWTABLE: add new flow table (enum nft_flowtable_attributes)
9898 * @NFT_MSG_GETFLOWTABLE: get flow table (enum nft_flowtable_attributes)
9999 * @NFT_MSG_DELFLOWTABLE: delete flow table (enum nft_flowtable_attributes)
100+ * @NFT_MSG_GETRULE_RESET: get rules and reset stateful expressions (enum nft_obj_attributes)
100101 */
101102 enum nf_tables_msg_types {
102103 NFT_MSG_NEWTABLE,
@@ -124,6 +125,7 @@ enum nf_tables_msg_types { · 21 unmodified lines
124125 NFT_MSG_NEWFLOWTABLE,
125126 NFT_MSG_GETFLOWTABLE,
126127 NFT_MSG_DELFLOWTABLE,
128+ NFT_MSG_GETRULE_RESET,
127129 NFT_MSG_MAX,
128130 };
129131
@@ -760,6 +762,7 @@ enum nft_payload_bases { · 630 unmodified lines
760762 NFT_PAYLOAD_NETWORK_HEADER,
761763 NFT_PAYLOAD_TRANSPORT_HEADER,
762764 NFT_PAYLOAD_INNER_HEADER,
765+ NFT_PAYLOAD_TUN_HEADER,
763766 };
764767
765768 /**
@@ -779,6 +782,32 @@ enum nft_payload_csum_flags { · 13 unmodified lines
779782 NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0),
780783 };
781784
785+enum nft_inner_type {
786+ NFT_INNER_UNSPEC = 0,
787+ NFT_INNER_VXLAN,
788+ NFT_INNER_GENEVE,
789+};
790+
791+enum nft_inner_flags {
792+ NFT_INNER_HDRSIZE = (1 << 0),
793+ NFT_INNER_LL = (1 << 1),
794+ NFT_INNER_NH = (1 << 2),
795+ NFT_INNER_TH = (1 << 3),
796+};
797+#define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | \
798+ NFT_INNER_NH | NFT_INNER_TH)
799+
800+enum nft_inner_attributes {
801+ NFTA_INNER_UNSPEC,
802+ NFTA_INNER_NUM,
803+ NFTA_INNER_TYPE,
804+ NFTA_INNER_FLAGS,
805+ NFTA_INNER_HDRSIZE,
806+ NFTA_INNER_EXPR,
807+ __NFTA_INNER_MAX
808+};
809+#define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1)
810+
782811 /**
783812 * enum nft_payload_attributes - nf_tables payload expression netlink attributes
784813 *
include/uapi/linux/netfilter/nfnetlink_cttimeout.h+1−0
@@ -95,6 +95,7 @@ enum ctattr_timeout_sctp { · 94 unmodified lines
9595 CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
9696 CTA_TIMEOUT_SCTP_HEARTBEAT_SENT,
9797 CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED,
98+ CTA_TIMEOUT_SCTP_DATA_SENT,
9899 __CTA_TIMEOUT_SCTP_MAX
99100 };
100101 #define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
include/uapi/linux/nl80211.h+3−0
@@ -2749,6 +2749,8 @@ enum nl80211_commands { · 2748 unmodified lines
27492749 * When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
27502750 * timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
27512751 * the incoming frame RX timestamp.
2752+ * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
2753+ * (re)associations.
27522754 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
27532755 * @NL80211_ATTR_MAX: highest attribute number currently defined
27542756 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3276,6 +3278,7 @@ enum nl80211_attrs { · 521 unmodified lines
32763278
32773279 NL80211_ATTR_TX_HW_TIMESTAMP,
32783280 NL80211_ATTR_RX_HW_TIMESTAMP,
3281+ NL80211_ATTR_TD_BITMAP,
32793282
32803283 /* add attributes here, update the policy in nl80211.c */
32813284
include/uapi/linux/openvswitch.h+14−0
@@ -277,11 +277,25 @@ enum ovs_vport_attr { · 276 unmodified lines
277277 OVS_VPORT_ATTR_PAD,
278278 OVS_VPORT_ATTR_IFINDEX,
279279 OVS_VPORT_ATTR_NETNSID,
280+ OVS_VPORT_ATTR_UPCALL_STATS,
280281 __OVS_VPORT_ATTR_MAX
281282 };
282283
283284 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
284285
286+/**
287+ * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands
288+ * @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets.
289+ * @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets.
290+ */
291+enum ovs_vport_upcall_attr {
292+ OVS_VPORT_UPCALL_ATTR_SUCCESS,
293+ OVS_VPORT_UPCALL_ATTR_FAIL,
294+ __OVS_VPORT_UPCALL_ATTR_MAX
295+};
296+
297+#define OVS_VPORT_UPCALL_ATTR_MAX (__OVS_VPORT_UPCALL_ATTR_MAX - 1)
298+
285299 enum {
286300 OVS_VXLAN_EXT_UNSPEC,
287301 OVS_VXLAN_EXT_GBP, /* Flag or __u32 */
include/uapi/linux/snmp.h+1−0
@@ -292,6 +292,7 @@ enum · 291 unmodified lines
292292 LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
293293 LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */
294294 LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */
295+ LINUX_MIB_TCPPLBREHASH, /* TCPPLBRehash */
295296 __LINUX_MIB_MAX
296297 };
297298
include/uapi/linux/tc_act/tc_ct.h+3−0
@@ -22,6 +22,9 @@ enum { · 21 unmodified lines
2222 TCA_CT_NAT_PORT_MIN, /* be16 */
2323 TCA_CT_NAT_PORT_MAX, /* be16 */
2424 TCA_CT_PAD,
25+ TCA_CT_HELPER_NAME, /* string */
26+ TCA_CT_HELPER_FAMILY, /* u8 */
27+ TCA_CT_HELPER_PROTO, /* u8 */
2528 __TCA_CT_MAX
2629 };
2730
include/uapi/linux/tcp.h+6−0
@@ -284,6 +284,11 @@ struct tcp_info { · 283 unmodified lines
284284 __u32 tcpi_snd_wnd; /* peer's advertised receive window after
285285 * scaling (bytes)
286286 */
287+ __u32 tcpi_rcv_wnd; /* local advertised receive window after
288+ * scaling (bytes)
289+ */
290+
291+ __u32 tcpi_rehash; /* PLB or timeout triggered rehash attempts */
287292 };
288293
289294 /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
@@ -315,6 +320,7 @@ enum { · 25 unmodified lines
315320 TCP_NLA_BYTES_NOTSENT, /* Bytes in write queue not yet sent */
316321 TCP_NLA_EDT, /* Earliest departure time (CLOCK_MONOTONIC) */
317322 TCP_NLA_TTL, /* TTL or hop limit of a packet received */
323+ TCP_NLA_REHASH, /* PLB and timeout triggered rehash attempts */
318324 };
319325
320326 /* for TCP_MD5SIG socket option */
include/uapi/linux/virtio_bt.h+8−0
@@ -9,6 +9,7 @@ · 8 unmodified lines
99 #define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */
1010 #define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */
1111 #define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */
12+#define VIRTIO_BT_F_CONFIG_V2 3 /* Use second version configuration */
1213
1314 enum virtio_bt_config_type {
1415 VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
@@ -28,4 +29,11 @@ struct virtio_bt_config { · 13 unmodified lines
2829 __u16 msft_opcode;
2930 } __attribute__((packed));
3031
32+struct virtio_bt_config_v2 {
33+ __u8 type;
34+ __u8 alignment;
35+ __u16 vendor;
36+ __u16 msft_opcode;
37+};
38+
3139 #endif /* _UAPI_LINUX_VIRTIO_BT_H */
include/uapi/linux/virtio_net.h+4−0
@@ -57,6 +57,9 @@ · 56 unmodified lines
5757 * Steering */
5858 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
5959 #define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */
60+#define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */
61+#define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 in. */
62+#define VIRTIO_NET_F_HOST_USO 56 /* Host can handle USO in. */
6063 #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */
6164 #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */
6265 #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */
@@ -130,6 +133,7 @@ struct virtio_net_hdr_v1 { · 67 unmodified lines
130133 #define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
131134 #define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
132135 #define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
136+#define VIRTIO_NET_HDR_GSO_UDP_L4 5 /* GSO frame, IPv4& IPv6 UDP (USO) */
133137 #define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
134138 __u8 gso_type;
135139 __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
include/uapi/linux/xfrm.h+6−0
@@ -519,6 +519,12 @@ struct xfrm_user_offload { · 518 unmodified lines
519519 */
520520 #define XFRM_OFFLOAD_IPV6 1
521521 #define XFRM_OFFLOAD_INBOUND 2
522+/* Two bits above are relevant for state path only, while
523+ * offload is used for both policy and state flows.
524+ *
525+ * In policy offload mode, they are free and can be safely reused.
526+ */
527+#define XFRM_OFFLOAD_PACKET 4
522528
523529 struct xfrm_userpolicy_default {
524530 #define XFRM_USERPOLICY_UNSPEC 0