Pull networking updates from Paolo Abeni: "Core: - Introduce a config option to tweak MAX_SKB_FRAGS. Increasing the default value allows for better BIG TCP performances - Reduce compound page head access for zero-copy data transfers - RPS/RFS improvements, avoiding unneeded NET_RX_SOFTIRQ when possible - Threaded NAPI improvements, adding defer skb free support and unneeded softirq avoidance - Address dst_entry reference count scalability issues, via false sharing avoidance and optimize refcount tracking - Add lockless accesses annotation to sk_err[_soft] - Optimize again the skb struct layout - Extends the skb drop reasons to make it usable by multiple subsystems - Better const qualifier awareness for socket casts BPF: - Add skb and XDP typed dynptrs which allow BPF programs for more ergonomic and less brittle iteration through data and variable-sized accesses - Add a new BPF netfilter program type and minimal support to hook BPF programs to netfilter hooks such as prerouting or forward - Add more precise memory usage reporting for all BPF map types - Adds support for using {FOU,GUE} encap with an ipip device operating in collect_md mode and add a set of BPF kfuncs for controlling encap params - Allow BPF programs to detect at load time whether a particular kfunc exists or not, and also add support for this in light skeleton - Bigger batch of BPF verifier improvements to prepare for upcoming BPF open-coded iterators allowing for less restrictive looping capabilities - Rework RCU enforcement in the verifier, add kptr_rcu and enforce BPF programs to NULL-check before passing such pointers into kfunc - Add support for kptrs in percpu hashmaps, percpu LRU hashmaps and in local storage maps - Enable RCU semantics for task BPF kptrs and allow referenced kptr tasks to be stored in BPF maps - Add support for refcounted local kptrs to the verifier for allowing shared ownership, useful for adding a node to both the BPF list and rbtree - Add BPF verifier support for ST instructions in convert_ctx_access() which will help new -mcpu=v4 clang flag to start emitting them - Add ARM32 USDT support to libbpf - Improve bpftool's visual program dump which produces the control flow graph in a DOT format by adding C source inline annotations Protocols: - IPv4: Allow adding to IPv4 address a 'protocol' tag. Such value indicates the provenance of the IP address - IPv6: optimize route lookup, dropping unneeded R/W lock acquisition - Add the handshake upcall mechanism, allowing the user-space to implement generic TLS handshake on kernel's behalf - Bridge: support per-{Port, VLAN} neighbor suppression, increasing resilience to nodes failures - SCTP: add support for Fair Capacity and Weighted Fair Queueing schedulers - MPTCP: delay first subflow allocation up to its first usage. This will allow for later better LSM interaction - xfrm: Remove inner/outer modes from input/output path. These are not needed anymore - WiFi: - reduced neighbor report (RNR) handling for AP mode - HW timestamping support - support for randomized auth/deauth TA for PASN privacy - per-link debugfs for multi-link - TC offload support for mac80211 drivers - mac80211 mesh fast-xmit and fast-rx support - enable Wi-Fi 7 (EHT) mesh support Netfilter: - Add nf_tables 'brouting' support, to force a packet to be routed instead of being bridged - Update bridge netfilter and ovs conntrack helpers to handle IPv6 Jumbo packets properly, i.e. fetch the packet length from hop-by-hop extension header. This is needed for BIT TCP support - The iptables 32bit compat interface isn't compiled in by default anymore - Move ip(6)tables builtin icmp matches to the udptcp one. This has the advantage that icmp/icmpv6 match doesn't load the iptables/ip6tables modules anymore when iptables-nft is used - Extended netlink error report for netdevice in flowtables and netdev/chains. Allow for incrementally add/delete devices to netdev basechain. Allow to create netdev chain without device Driver API: - Remove redundant Device Control Error Reporting Enable, as PCI core has already error reporting enabled at enumeration time - Move Multicast DB netlink handlers to core, allowing devices other then bridge to use them - Allow the page_pool to directly recycle the pages from safely localized NAPI - Implement lockless TX queue stop/wake combo macros, allowing for further code de-duplication and sanitization - Add YNL support for user headers and struct attrs - Add partial YNL specification for devlink - Add partial YNL specification for ethtool - Add tc-mqprio and tc-taprio support for preemptible traffic classes - Add tx push buf len param to ethtool, specifies the maximum number of bytes of a transmitted packet a driver can push directly to the underlying device - Add basic LED support for switch/phy - Add NAPI documentation, stop relaying on external links - Convert dsa_master_ioctl() to netdev notifier. This is a preparatory work to make the hardware timestamping layer selectable by user space - Add transceiver support and improve the error messages for CAN-FD controllers New hardware / drivers: - Ethernet: - AMD/Pensando core device support - MediaTek MT7981 SoC - MediaTek MT7988 SoC - Broadcom BCM53134 embedded switch - Texas Instruments CPSW9G ethernet switch - Qualcomm EMAC3 DWMAC ethernet - StarFive JH7110 SoC - NXP CBTX ethernet PHY - WiFi: - Apple M1 Pro/Max devices - RealTek rtl8710bu/rtl8188gu - RealTek rtl8822bs, rtl8822cs and rtl8821cs SDIO chipset - Bluetooth: - Realtek RTL8821CS, RTL8851B, RTL8852BS - Mediatek MT7663, MT7922 - NXP w8997 - Actions Semi ATS2851 - QTI WCN6855 - Marvell 88W8997 - Can: - STMicroelectronics bxcan stm32f429 Drivers: - Ethernet NICs: - Intel (1G, icg): - add tracking and reporting of QBV config errors - add support for configuring max SDU for each Tx queue - Intel (100G, ice): - refactor mailbox overflow detection to support Scalable IOV - GNSS interface optimization - Intel (i40e): - support XDP multi-buffer - nVidia/Mellanox: - add the support for linux bridge multicast offload - enable TC offload for egress and engress MACVLAN over bond - add support for VxLAN GBP encap/decap flows offload - extend packet offload to fully support libreswan - support tunnel mode in mlx5 IPsec packet offload - extend XDP multi-buffer support - support MACsec VLAN offload - add support for dynamic msix vectors allocation - drop RX page_cache and fully use page_pool - implement thermal zone to report NIC temperature - Netronome/Corigine: - add support for multi-zone conntrack offload - Solarflare/Xilinx: - support offloading TC VLAN push/pop actions to the MAE - support TC decap rules - support unicast PTP - Other NICs: - Broadcom (bnxt): enforce software based freq adjustments only on shared PHC NIC - RealTek (r8169): refactor to addess ASPM issues during NAPI poll - Micrel (lan8841): add support for PTP_PF_PEROUT - Cadence (macb): enable PTP unicast - Engleder (tsnep): add XDP socket zero-copy support - virtio-net: implement exact header length guest feature - veth: add page_pool support for page recycling - vxlan: add MDB data path support - gve: add XDP support for GQI-QPL format - geneve: accept every ethertype - macvlan: allow some packets to bypass broadcast queue - mana: add support for jumbo frame - Ethernet high-speed switches: - Microchip (sparx5): Add support for TC flower templates - Ethernet embedded switches: - Broadcom (b54): - configure 6318 and 63268 RGMII ports - Marvell (mv88e6xxx): - faster C45 bus scan - Microchip: - lan966x: - add support for IS1 VCAP - better TX/RX from/to CPU performances - ksz9477: add ETS Qdisc support - ksz8: enhance static MAC table operations and error handling - sama7g5: add PTP capability - NXP (ocelot): - add support for external ports - add support for preemptible traffic classes - Texas Instruments: - add CPSWxG SGMII support for J7200 and J721E - Intel WiFi (iwlwifi): - preparation for Wi-Fi 7 EHT and multi-link support - EHT (Wi-Fi 7) sniffer support - hardware timestamping support for some devices/firwmares - TX beacon protection on newer hardware - Qualcomm 802.11ax WiFi (ath11k): - MU-MIMO parameters support - ack signal support for management packets - RealTek WiFi (rtw88): - SDIO bus support - better support for some SDIO devices (e.g. MAC address from efuse) - RealTek WiFi (rtw89): - HW scan support for 8852b - better support for 6 GHz scanning - support for various newer firmware APIs - framework firmware backwards compatibility - MediaTek WiFi (mt76): - P2P support - mesh A-MSDU support - EHT (Wi-Fi 7) support - coredump support" * tag 'net-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2078 commits) net: phy: hide the PHYLIB_LEDS knob net: phy: marvell-88x2222: remove unnecessary (void*) conversions tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp. net: amd: Fix link leak when verifying config failed net: phy: marvell: Fix inconsistent indenting in led_blink_set lan966x: Don't use xdp_frame when action is XDP_TX tsnep: Add XDP socket zero-copy TX support tsnep: Add XDP socket zero-copy RX support tsnep: Move skb receive action to separate function tsnep: Add functions for queue enable/disable tsnep: Rework TX/RX queue initialization tsnep: Replace modulo operation with mask net: phy: dp83867: Add led_brightness_set support net: phy: Fix reading LED reg property drivers: nfc: nfcsim: remove return value check of `dev_dir` net: phy: dp83867: Remove unnecessary (void*) conversions net: ethtool: coalesce: try to make user settings stick twice net: mana: Check if netdev/napi_alloc_frag returns single page net: mana: Rename mana_refill_rxoob and remove some empty lines net: veth: add page_pool stats ...
Showing the changes to include/uapi (14 of 1925 files). Show all
Unified · Split
| @@ -986,6 +986,7 @@ enum bpf_prog_type { · 985 unmodified lines | |||
| 986 | BPF_PROG_TYPE_LSM, | 986 | BPF_PROG_TYPE_LSM, |
| 987 | BPF_PROG_TYPE_SK_LOOKUP, | 987 | BPF_PROG_TYPE_SK_LOOKUP, |
| 988 | BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */ | 988 | BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */ |
| 989 | BPF_PROG_TYPE_NETFILTER, | ||
| 989 | }; | 990 | }; |
| 990 | 991 | ||
| 991 | enum bpf_attach_type { | 992 | enum bpf_attach_type { |
| @@ -1033,6 +1034,7 @@ enum bpf_attach_type { · 41 unmodified lines | |||
| 1033 | BPF_PERF_EVENT, | 1034 | BPF_PERF_EVENT, |
| 1034 | BPF_TRACE_KPROBE_MULTI, | 1035 | BPF_TRACE_KPROBE_MULTI, |
| 1035 | BPF_LSM_CGROUP, | 1036 | BPF_LSM_CGROUP, |
| 1037 | BPF_STRUCT_OPS, | ||
| 1036 | __MAX_BPF_ATTACH_TYPE | 1038 | __MAX_BPF_ATTACH_TYPE |
| 1037 | }; | 1039 | }; |
| 1038 | 1040 | ||
| @@ -1049,6 +1051,7 @@ enum bpf_link_type { · 10 unmodified lines | |||
| 1049 | BPF_LINK_TYPE_PERF_EVENT = 7, | 1051 | BPF_LINK_TYPE_PERF_EVENT = 7, |
| 1050 | BPF_LINK_TYPE_KPROBE_MULTI = 8, | 1052 | BPF_LINK_TYPE_KPROBE_MULTI = 8, |
| 1051 | BPF_LINK_TYPE_STRUCT_OPS = 9, | 1053 | BPF_LINK_TYPE_STRUCT_OPS = 9, |
| 1054 | BPF_LINK_TYPE_NETFILTER = 10, | ||
| 1052 | 1055 | ||
| 1053 | MAX_BPF_LINK_TYPE, | 1056 | MAX_BPF_LINK_TYPE, |
| 1054 | }; | 1057 | }; |
| @@ -1108,7 +1111,7 @@ enum bpf_link_type { · 53 unmodified lines | |||
| 1108 | */ | 1111 | */ |
| 1109 | #define BPF_F_STRICT_ALIGNMENT (1U << 0) | 1112 | #define BPF_F_STRICT_ALIGNMENT (1U << 0) |
| 1110 | 1113 | ||
| 1111 | /* If BPF_F_ANY_ALIGNMENT is used in BPF_PROF_LOAD command, the | 1114 | /* If BPF_F_ANY_ALIGNMENT is used in BPF_PROG_LOAD command, the |
| 1112 | * verifier will allow any alignment whatsoever. On platforms | 1115 | * verifier will allow any alignment whatsoever. On platforms |
| 1113 | * with strict alignment requirements for loads ands stores (such | 1116 | * with strict alignment requirements for loads ands stores (such |
| 1114 | * as sparc and mips) the verifier validates that all loads and | 1117 | * as sparc and mips) the verifier validates that all loads and |
| @@ -1266,6 +1269,9 @@ enum { · 151 unmodified lines | |||
| 1266 | 1269 | ||
| 1267 | /* Create a map that is suitable to be an inner map with dynamic max entries */ | 1270 | /* Create a map that is suitable to be an inner map with dynamic max entries */ |
| 1268 | BPF_F_INNER_MAP = (1U << 12), | 1271 | BPF_F_INNER_MAP = (1U << 12), |
| 1272 | |||
| 1273 | /* Create a map that will be registered/unregesitered by the backed bpf_link */ | ||
| 1274 | BPF_F_LINK = (1U << 13), | ||
| 1269 | }; | 1275 | }; |
| 1270 | 1276 | ||
| 1271 | /* Flags for BPF_PROG_QUERY. */ | 1277 | /* Flags for BPF_PROG_QUERY. */ |
| @@ -1403,6 +1409,11 @@ union bpf_attr { · 131 unmodified lines | |||
| 1403 | __aligned_u64 fd_array; /* array of FDs */ | 1409 | __aligned_u64 fd_array; /* array of FDs */ |
| 1404 | __aligned_u64 core_relos; | 1410 | __aligned_u64 core_relos; |
| 1405 | __u32 core_relo_rec_size; /* sizeof(struct bpf_core_relo) */ | 1411 | __u32 core_relo_rec_size; /* sizeof(struct bpf_core_relo) */ |
| 1412 | /* output: actual total log contents size (including termintaing zero). | ||
| 1413 | * It could be both larger than original log_size (if log was | ||
| 1414 | * truncated), or smaller (if log buffer wasn't filled completely). | ||
| 1415 | */ | ||
| 1416 | __u32 log_true_size; | ||
| 1406 | }; | 1417 | }; |
| 1407 | 1418 | ||
| 1408 | struct { /* anonymous struct used by BPF_OBJ_* commands */ | 1419 | struct { /* anonymous struct used by BPF_OBJ_* commands */ |
| @@ -1488,6 +1499,11 @@ union bpf_attr { · 79 unmodified lines | |||
| 1488 | __u32 btf_size; | 1499 | __u32 btf_size; |
| 1489 | __u32 btf_log_size; | 1500 | __u32 btf_log_size; |
| 1490 | __u32 btf_log_level; | 1501 | __u32 btf_log_level; |
| 1502 | /* output: actual total log contents size (including termintaing zero). | ||
| 1503 | * It could be both larger than original log_size (if log was | ||
| 1504 | * truncated), or smaller (if log buffer wasn't filled completely). | ||
| 1505 | */ | ||
| 1506 | __u32 btf_log_true_size; | ||
| 1491 | }; | 1507 | }; |
| 1492 | 1508 | ||
| 1493 | struct { | 1509 | struct { |
| @@ -1507,7 +1523,10 @@ union bpf_attr { · 13 unmodified lines | |||
| 1507 | } task_fd_query; | 1523 | } task_fd_query; |
| 1508 | 1524 | ||
| 1509 | struct { /* struct used by BPF_LINK_CREATE command */ | 1525 | struct { /* struct used by BPF_LINK_CREATE command */ |
| 1510 | __u32 prog_fd; /* eBPF program to attach */ | 1526 | union { |
| 1527 | __u32 prog_fd; /* eBPF program to attach */ | ||
| 1528 | __u32 map_fd; /* struct_ops to attach */ | ||
| 1529 | }; | ||
| 1511 | union { | 1530 | union { |
| 1512 | __u32 target_fd; /* object to attach to */ | 1531 | __u32 target_fd; /* object to attach to */ |
| 1513 | __u32 target_ifindex; /* target ifindex */ | 1532 | __u32 target_ifindex; /* target ifindex */ |
| @@ -1543,17 +1562,34 @@ union bpf_attr { · 29 unmodified lines | |||
| 1543 | */ | 1562 | */ |
| 1544 | __u64 cookie; | 1563 | __u64 cookie; |
| 1545 | } tracing; | 1564 | } tracing; |
| 1565 | struct { | ||
| 1566 | __u32 pf; | ||
| 1567 | __u32 hooknum; | ||
| 1568 | __s32 priority; | ||
| 1569 | __u32 flags; | ||
| 1570 | } netfilter; | ||
| 1546 | }; | 1571 | }; |
| 1547 | } link_create; | 1572 | } link_create; |
| 1548 | 1573 | ||
| 1549 | struct { /* struct used by BPF_LINK_UPDATE command */ | 1574 | struct { /* struct used by BPF_LINK_UPDATE command */ |
| 1550 | __u32 link_fd; /* link fd */ | 1575 | __u32 link_fd; /* link fd */ |
| 1551 | /* new program fd to update link with */ | 1576 | union { |
| 1552 | __u32 new_prog_fd; | 1577 | /* new program fd to update link with */ |
| 1578 | __u32 new_prog_fd; | ||
| 1579 | /* new struct_ops map fd to update link with */ | ||
| 1580 | __u32 new_map_fd; | ||
| 1581 | }; | ||
| 1553 | __u32 flags; /* extra flags */ | 1582 | __u32 flags; /* extra flags */ |
| 1554 | /* expected link's program fd; is specified only if | 1583 | union { |
| 1555 | * BPF_F_REPLACE flag is set in flags */ | 1584 | /* expected link's program fd; is specified only if |
| 1556 | __u32 old_prog_fd; | 1585 | * BPF_F_REPLACE flag is set in flags. |
| 1586 | */ | ||
| 1587 | __u32 old_prog_fd; | ||
| 1588 | /* expected link's map fd; is specified only | ||
| 1589 | * if BPF_F_REPLACE flag is set. | ||
| 1590 | */ | ||
| 1591 | __u32 old_map_fd; | ||
| 1592 | }; | ||
| 1557 | } link_update; | 1593 | } link_update; |
| 1558 | 1594 | ||
| 1559 | struct { | 1595 | struct { |
| @@ -1647,17 +1683,17 @@ union bpf_attr { · 87 unmodified lines | |||
| 1647 | * Description | 1683 | * Description |
| 1648 | * This helper is a "printk()-like" facility for debugging. It | 1684 | * This helper is a "printk()-like" facility for debugging. It |
| 1649 | * prints a message defined by format *fmt* (of size *fmt_size*) | 1685 | * prints a message defined by format *fmt* (of size *fmt_size*) |
| 1650 | * to file *\/sys/kernel/debug/tracing/trace* from DebugFS, if | 1686 | * to file *\/sys/kernel/tracing/trace* from TraceFS, if |
| 1651 | * available. It can take up to three additional **u64** | 1687 | * available. It can take up to three additional **u64** |
| 1652 | * arguments (as an eBPF helpers, the total number of arguments is | 1688 | * arguments (as an eBPF helpers, the total number of arguments is |
| 1653 | * limited to five). | 1689 | * limited to five). |
| 1654 | * | 1690 | * |
| 1655 | * Each time the helper is called, it appends a line to the trace. | 1691 | * Each time the helper is called, it appends a line to the trace. |
| 1656 | * Lines are discarded while *\/sys/kernel/debug/tracing/trace* is | 1692 | * Lines are discarded while *\/sys/kernel/tracing/trace* is |
| 1657 | * open, use *\/sys/kernel/debug/tracing/trace_pipe* to avoid this. | 1693 | * open, use *\/sys/kernel/tracing/trace_pipe* to avoid this. |
| 1658 | * The format of the trace is customizable, and the exact output | 1694 | * The format of the trace is customizable, and the exact output |
| 1659 | * one will get depends on the options set in | 1695 | * one will get depends on the options set in |
| 1660 | * *\/sys/kernel/debug/tracing/trace_options* (see also the | 1696 | * *\/sys/kernel/tracing/trace_options* (see also the |
| 1661 | * *README* file under the same directory). However, it usually | 1697 | * *README* file under the same directory). However, it usually |
| 1662 | * defaults to something like: | 1698 | * defaults to something like: |
| 1663 | * | 1699 | * |
| @@ -4969,6 +5005,12 @@ union bpf_attr { · 3305 unmodified lines | |||
| 4969 | * different maps if key/value layout matches across maps. | 5005 | * different maps if key/value layout matches across maps. |
| 4970 | * Every bpf_timer_set_callback() can have different callback_fn. | 5006 | * Every bpf_timer_set_callback() can have different callback_fn. |
| 4971 | * | 5007 | * |
| 5008 | * *flags* can be one of: | ||
| 5009 | * | ||
| 5010 | * **BPF_F_TIMER_ABS** | ||
| 5011 | * Start the timer in absolute expire value instead of the | ||
| 5012 | * default relative one. | ||
| 5013 | * | ||
| 4972 | * Return | 5014 | * Return |
| 4973 | * 0 on success. | 5015 | * 0 on success. |
| 4974 | * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier | 5016 | * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier |
| @@ -5325,11 +5367,22 @@ union bpf_attr { · 350 unmodified lines | |||
| 5325 | * Description | 5367 | * Description |
| 5326 | * Write *len* bytes from *src* into *dst*, starting from *offset* | 5368 | * Write *len* bytes from *src* into *dst*, starting from *offset* |
| 5327 | * into *dst*. | 5369 | * into *dst*. |
| 5328 | * *flags* is currently unused. | 5370 | * |
| 5371 | * *flags* must be 0 except for skb-type dynptrs. | ||
| 5372 | * | ||
| 5373 | * For skb-type dynptrs: | ||
| 5374 | * * All data slices of the dynptr are automatically | ||
| 5375 | * invalidated after **bpf_dynptr_write**\ (). This is | ||
| 5376 | * because writing may pull the skb and change the | ||
| 5377 | * underlying packet buffer. | ||
| 5378 | * | ||
| 5379 | * * For *flags*, please see the flags accepted by | ||
| 5380 | * **bpf_skb_store_bytes**\ (). | ||
| 5329 | * Return | 5381 | * Return |
| 5330 | * 0 on success, -E2BIG if *offset* + *len* exceeds the length | 5382 | * 0 on success, -E2BIG if *offset* + *len* exceeds the length |
| 5331 | * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst* | 5383 | * of *dst*'s data, -EINVAL if *dst* is an invalid dynptr or if *dst* |
| 5332 | * is a read-only dynptr or if *flags* is not 0. | 5384 | * is a read-only dynptr or if *flags* is not correct. For skb-type dynptrs, |
| 5385 | * other errors correspond to errors returned by **bpf_skb_store_bytes**\ (). | ||
| 5333 | * | 5386 | * |
| 5334 | * void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len) | 5387 | * void *bpf_dynptr_data(const struct bpf_dynptr *ptr, u32 offset, u32 len) |
| 5335 | * Description | 5388 | * Description |
| @@ -5337,6 +5390,9 @@ union bpf_attr { · 1 unmodified line | |||
| 5337 | * | 5390 | * |
| 5338 | * *len* must be a statically known value. The returned data slice | 5391 | * *len* must be a statically known value. The returned data slice |
| 5339 | * is invalidated whenever the dynptr is invalidated. | 5392 | * is invalidated whenever the dynptr is invalidated. |
| 5393 | * | ||
| 5394 | * skb and xdp type dynptrs may not use bpf_dynptr_data. They should | ||
| 5395 | * instead use bpf_dynptr_slice and bpf_dynptr_slice_rdwr. | ||
| 5340 | * Return | 5396 | * Return |
| 5341 | * Pointer to the underlying dynptr data, NULL if the dynptr is | 5397 | * Pointer to the underlying dynptr data, NULL if the dynptr is |
| 5342 | * read-only, if the dynptr is invalid, or if the offset and length | 5398 | * read-only, if the dynptr is invalid, or if the offset and length |
| @@ -6359,6 +6415,15 @@ struct bpf_link_info { · 1016 unmodified lines | |||
| 6359 | struct { | 6415 | struct { |
| 6360 | __u32 ifindex; | 6416 | __u32 ifindex; |
| 6361 | } xdp; | 6417 | } xdp; |
| 6418 | struct { | ||
| 6419 | __u32 map_id; | ||
| 6420 | } struct_ops; | ||
| 6421 | struct { | ||
| 6422 | __u32 pf; | ||
| 6423 | __u32 hooknum; | ||
| 6424 | __s32 priority; | ||
| 6425 | __u32 flags; | ||
| 6426 | } netfilter; | ||
| 6362 | }; | 6427 | }; |
| 6363 | } __attribute__((aligned(8))); | 6428 | } __attribute__((aligned(8))); |
| 6364 | 6429 | ||
| @@ -6934,6 +6999,10 @@ struct bpf_rb_node { · 569 unmodified lines | |||
| 6934 | __u64 :64; | 6999 | __u64 :64; |
| 6935 | } __attribute__((aligned(8))); | 7000 | } __attribute__((aligned(8))); |
| 6936 | 7001 | ||
| 7002 | struct bpf_refcount { | ||
| 7003 | __u32 :32; | ||
| 7004 | } __attribute__((aligned(4))); | ||
| 7005 | |||
| 6937 | struct bpf_sysctl { | 7006 | struct bpf_sysctl { |
| 6938 | __u32 write; /* Sysctl is being read (= 0) or written (= 1). | 7007 | __u32 write; /* Sysctl is being read (= 0) or written (= 1). |
| 6939 | * Allows 1,2,4-byte read, but no write. | 7008 | * Allows 1,2,4-byte read, but no write. |
| @@ -7083,4 +7152,21 @@ struct bpf_core_relo { · 143 unmodified lines | |||
| 7083 | enum bpf_core_relo_kind kind; | 7152 | enum bpf_core_relo_kind kind; |
| 7084 | }; | 7153 | }; |
| 7085 | 7154 | ||
| 7155 | /* | ||
| 7156 | * Flags to control bpf_timer_start() behaviour. | ||
| 7157 | * - BPF_F_TIMER_ABS: Timeout passed is absolute time, by default it is | ||
| 7158 | * relative to current time. | ||
| 7159 | */ | ||
| 7160 | enum { | ||
| 7161 | BPF_F_TIMER_ABS = (1ULL << 0), | ||
| 7162 | }; | ||
| 7163 | |||
| 7164 | /* BPF numbers iterator state */ | ||
| 7165 | struct bpf_iter_num { | ||
| 7166 | /* opaque iterator state; having __u64 here allows to preserve correct | ||
| 7167 | * alignment requirements in vmlinux.h, generated from BTF | ||
| 7168 | */ | ||
| 7169 | __u64 __opaque[1]; | ||
| 7170 | } __attribute__((aligned(8))); | ||
| 7171 | |||
| 7086 | #endif /* _UAPI__LINUX_BPF_H__ */ | 7172 | #endif /* _UAPI__LINUX_BPF_H__ */ |
| @@ -357,6 +357,8 @@ enum { · 356 unmodified lines | |||
| 357 | ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */ | 357 | ETHTOOL_A_RINGS_CQE_SIZE, /* u32 */ |
| 358 | ETHTOOL_A_RINGS_TX_PUSH, /* u8 */ | 358 | ETHTOOL_A_RINGS_TX_PUSH, /* u8 */ |
| 359 | ETHTOOL_A_RINGS_RX_PUSH, /* u8 */ | 359 | ETHTOOL_A_RINGS_RX_PUSH, /* u8 */ |
| 360 | ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN, /* u32 */ | ||
| 361 | ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX, /* u32 */ | ||
| 360 | 362 | ||
| 361 | /* add new constants above here */ | 363 | /* add new constants above here */ |
| 362 | __ETHTOOL_A_RINGS_CNT, | 364 | __ETHTOOL_A_RINGS_CNT, |
| @@ -0,0 +1,73 @@ | |||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | ||
| 2 | /* Do not edit directly, auto-generated from: */ | ||
| 3 | /* Documentation/netlink/specs/handshake.yaml */ | ||
| 4 | /* YNL-GEN uapi header */ | ||
| 5 | |||
| 6 | #ifndef _UAPI_LINUX_HANDSHAKE_H | ||
| 7 | #define _UAPI_LINUX_HANDSHAKE_H | ||
| 8 | |||
| 9 | #define HANDSHAKE_FAMILY_NAME "handshake" | ||
| 10 | #define HANDSHAKE_FAMILY_VERSION 1 | ||
| 11 | |||
| 12 | enum handshake_handler_class { | ||
| 13 | HANDSHAKE_HANDLER_CLASS_NONE, | ||
| 14 | HANDSHAKE_HANDLER_CLASS_TLSHD, | ||
| 15 | HANDSHAKE_HANDLER_CLASS_MAX, | ||
| 16 | }; | ||
| 17 | |||
| 18 | enum handshake_msg_type { | ||
| 19 | HANDSHAKE_MSG_TYPE_UNSPEC, | ||
| 20 | HANDSHAKE_MSG_TYPE_CLIENTHELLO, | ||
| 21 | HANDSHAKE_MSG_TYPE_SERVERHELLO, | ||
| 22 | }; | ||
| 23 | |||
| 24 | enum handshake_auth { | ||
| 25 | HANDSHAKE_AUTH_UNSPEC, | ||
| 26 | HANDSHAKE_AUTH_UNAUTH, | ||
| 27 | HANDSHAKE_AUTH_PSK, | ||
| 28 | HANDSHAKE_AUTH_X509, | ||
| 29 | }; | ||
| 30 | |||
| 31 | enum { | ||
| 32 | HANDSHAKE_A_X509_CERT = 1, | ||
| 33 | HANDSHAKE_A_X509_PRIVKEY, | ||
| 34 | |||
| 35 | __HANDSHAKE_A_X509_MAX, | ||
| 36 | HANDSHAKE_A_X509_MAX = (__HANDSHAKE_A_X509_MAX - 1) | ||
| 37 | }; | ||
| 38 | |||
| 39 | enum { | ||
| 40 | HANDSHAKE_A_ACCEPT_SOCKFD = 1, | ||
| 41 | HANDSHAKE_A_ACCEPT_HANDLER_CLASS, | ||
| 42 | HANDSHAKE_A_ACCEPT_MESSAGE_TYPE, | ||
| 43 | HANDSHAKE_A_ACCEPT_TIMEOUT, | ||
| 44 | HANDSHAKE_A_ACCEPT_AUTH_MODE, | ||
| 45 | HANDSHAKE_A_ACCEPT_PEER_IDENTITY, | ||
| 46 | HANDSHAKE_A_ACCEPT_CERTIFICATE, | ||
| 47 | |||
| 48 | __HANDSHAKE_A_ACCEPT_MAX, | ||
| 49 | HANDSHAKE_A_ACCEPT_MAX = (__HANDSHAKE_A_ACCEPT_MAX - 1) | ||
| 50 | }; | ||
| 51 | |||
| 52 | enum { | ||
| 53 | HANDSHAKE_A_DONE_STATUS = 1, | ||
| 54 | HANDSHAKE_A_DONE_SOCKFD, | ||
| 55 | HANDSHAKE_A_DONE_REMOTE_AUTH, | ||
| 56 | |||
| 57 | __HANDSHAKE_A_DONE_MAX, | ||
| 58 | HANDSHAKE_A_DONE_MAX = (__HANDSHAKE_A_DONE_MAX - 1) | ||
| 59 | }; | ||
| 60 | |||
| 61 | enum { | ||
| 62 | HANDSHAKE_CMD_READY = 1, | ||
| 63 | HANDSHAKE_CMD_ACCEPT, | ||
| 64 | HANDSHAKE_CMD_DONE, | ||
| 65 | |||
| 66 | __HANDSHAKE_CMD_MAX, | ||
| 67 | HANDSHAKE_CMD_MAX = (__HANDSHAKE_CMD_MAX - 1) | ||
| 68 | }; | ||
| 69 | |||
| 70 | #define HANDSHAKE_MCGRP_NONE "none" | ||
| 71 | #define HANDSHAKE_MCGRP_TLSHD "tlshd" | ||
| 72 | |||
| 73 | #endif /* _UAPI_LINUX_HANDSHAKE_H */ | ||
| @@ -525,6 +525,7 @@ enum { · 524 unmodified lines | |||
| 525 | BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, | 525 | BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, |
| 526 | BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS, | 526 | BRIDGE_VLANDB_ENTRY_MCAST_N_GROUPS, |
| 527 | BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS, | 527 | BRIDGE_VLANDB_ENTRY_MCAST_MAX_GROUPS, |
| 528 | BRIDGE_VLANDB_ENTRY_NEIGH_SUPPRESS, | ||
| 528 | __BRIDGE_VLANDB_ENTRY_MAX, | 529 | __BRIDGE_VLANDB_ENTRY_MAX, |
| 529 | }; | 530 | }; |
| 530 | #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) | 531 | #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) |
| @@ -633,6 +634,11 @@ enum { · 102 unmodified lines | |||
| 633 | MDBA_MDB_EATTR_GROUP_MODE, | 634 | MDBA_MDB_EATTR_GROUP_MODE, |
| 634 | MDBA_MDB_EATTR_SOURCE, | 635 | MDBA_MDB_EATTR_SOURCE, |
| 635 | MDBA_MDB_EATTR_RTPROT, | 636 | MDBA_MDB_EATTR_RTPROT, |
| 637 | MDBA_MDB_EATTR_DST, | ||
| 638 | MDBA_MDB_EATTR_DST_PORT, | ||
| 639 | MDBA_MDB_EATTR_VNI, | ||
| 640 | MDBA_MDB_EATTR_IFINDEX, | ||
| 641 | MDBA_MDB_EATTR_SRC_VNI, | ||
| 636 | __MDBA_MDB_EATTR_MAX | 642 | __MDBA_MDB_EATTR_MAX |
| 637 | }; | 643 | }; |
| 638 | #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) | 644 | #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) |
| @@ -728,6 +734,11 @@ enum { · 89 unmodified lines | |||
| 728 | MDBE_ATTR_SRC_LIST, | 734 | MDBE_ATTR_SRC_LIST, |
| 729 | MDBE_ATTR_GROUP_MODE, | 735 | MDBE_ATTR_GROUP_MODE, |
| 730 | MDBE_ATTR_RTPROT, | 736 | MDBE_ATTR_RTPROT, |
| 737 | MDBE_ATTR_DST, | ||
| 738 | MDBE_ATTR_DST_PORT, | ||
| 739 | MDBE_ATTR_VNI, | ||
| 740 | MDBE_ATTR_IFINDEX, | ||
| 741 | MDBE_ATTR_SRC_VNI, | ||
| 731 | __MDBE_ATTR_MAX, | 742 | __MDBE_ATTR_MAX, |
| 732 | }; | 743 | }; |
| 733 | #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) | 744 | #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) |
| @@ -569,6 +569,7 @@ enum { · 568 unmodified lines | |||
| 569 | IFLA_BRPORT_MAB, | 569 | IFLA_BRPORT_MAB, |
| 570 | IFLA_BRPORT_MCAST_N_GROUPS, | 570 | IFLA_BRPORT_MCAST_N_GROUPS, |
| 571 | IFLA_BRPORT_MCAST_MAX_GROUPS, | 571 | IFLA_BRPORT_MCAST_MAX_GROUPS, |
| 572 | IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, | ||
| 572 | __IFLA_BRPORT_MAX | 573 | __IFLA_BRPORT_MAX |
| 573 | }; | 574 | }; |
| 574 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 575 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -635,6 +636,7 @@ enum { · 60 unmodified lines | |||
| 635 | IFLA_MACVLAN_MACADDR_COUNT, | 636 | IFLA_MACVLAN_MACADDR_COUNT, |
| 636 | IFLA_MACVLAN_BC_QUEUE_LEN, | 637 | IFLA_MACVLAN_BC_QUEUE_LEN, |
| 637 | IFLA_MACVLAN_BC_QUEUE_LEN_USED, | 638 | IFLA_MACVLAN_BC_QUEUE_LEN_USED, |
| 639 | IFLA_MACVLAN_BC_CUTOFF, | ||
| 638 | __IFLA_MACVLAN_MAX, | 640 | __IFLA_MACVLAN_MAX, |
| 639 | }; | 641 | }; |
| 640 | 642 | ||
| @@ -59,6 +59,7 @@ struct sockaddr_ll { · 58 unmodified lines | |||
| 59 | #define PACKET_ROLLOVER_STATS 21 | 59 | #define PACKET_ROLLOVER_STATS 21 |
| 60 | #define PACKET_FANOUT_DATA 22 | 60 | #define PACKET_FANOUT_DATA 22 |
| 61 | #define PACKET_IGNORE_OUTGOING 23 | 61 | #define PACKET_IGNORE_OUTGOING 23 |
| 62 | #define PACKET_VNET_HDR_SZ 24 | ||
| 62 | 63 | ||
| 63 | #define PACKET_FANOUT_HASH 0 | 64 | #define PACKET_FANOUT_HASH 0 |
| 64 | #define PACKET_FANOUT_LB 1 | 65 | #define PACKET_FANOUT_LB 1 |
| @@ -685,7 +685,7 @@ enum nft_range_ops { · 684 unmodified lines | |||
| 685 | * enum nft_range_attributes - nf_tables range expression netlink attributes | 685 | * enum nft_range_attributes - nf_tables range expression netlink attributes |
| 686 | * | 686 | * |
| 687 | * @NFTA_RANGE_SREG: source register of data to compare (NLA_U32: nft_registers) | 687 | * @NFTA_RANGE_SREG: source register of data to compare (NLA_U32: nft_registers) |
| 688 | * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_cmp_ops) | 688 | * @NFTA_RANGE_OP: cmp operation (NLA_U32: nft_range_ops) |
| 689 | * @NFTA_RANGE_FROM_DATA: data range from (NLA_NESTED: nft_data_attributes) | 689 | * @NFTA_RANGE_FROM_DATA: data range from (NLA_NESTED: nft_data_attributes) |
| 690 | * @NFTA_RANGE_TO_DATA: data range to (NLA_NESTED: nft_data_attributes) | 690 | * @NFTA_RANGE_TO_DATA: data range to (NLA_NESTED: nft_data_attributes) |
| 691 | */ | 691 | */ |
| @@ -878,7 +878,7 @@ enum nft_exthdr_op { · 186 unmodified lines | |||
| 878 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) | 878 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) |
| 879 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) | 879 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) |
| 880 | * @NFTA_EXTHDR_OP: option match type (NLA_U32) | 880 | * @NFTA_EXTHDR_OP: option match type (NLA_U32) |
| 881 | * @NFTA_EXTHDR_SREG: option match type (NLA_U32) | 881 | * @NFTA_EXTHDR_SREG: source register (NLA_U32: nft_registers) |
| 882 | */ | 882 | */ |
| 883 | enum nft_exthdr_attributes { | 883 | enum nft_exthdr_attributes { |
| 884 | NFTA_EXTHDR_UNSPEC, | 884 | NFTA_EXTHDR_UNSPEC, |
| @@ -931,6 +931,7 @@ enum nft_exthdr_attributes { · 46 unmodified lines | |||
| 931 | * @NFT_META_TIME_HOUR: hour of day (in seconds) | 931 | * @NFT_META_TIME_HOUR: hour of day (in seconds) |
| 932 | * @NFT_META_SDIF: slave device interface index | 932 | * @NFT_META_SDIF: slave device interface index |
| 933 | * @NFT_META_SDIFNAME: slave device interface name | 933 | * @NFT_META_SDIFNAME: slave device interface name |
| 934 | * @NFT_META_BRI_BROUTE: packet br_netfilter_broute bit | ||
| 934 | */ | 935 | */ |
| 935 | enum nft_meta_keys { | 936 | enum nft_meta_keys { |
| 936 | NFT_META_LEN, | 937 | NFT_META_LEN, |
| @@ -969,6 +970,7 @@ enum nft_meta_keys { · 32 unmodified lines | |||
| 969 | NFT_META_TIME_HOUR, | 970 | NFT_META_TIME_HOUR, |
| 970 | NFT_META_SDIF, | 971 | NFT_META_SDIF, |
| 971 | NFT_META_SDIFNAME, | 972 | NFT_META_SDIFNAME, |
| 973 | NFT_META_BRI_BROUTE, | ||
| 972 | __NFT_META_IIFTYPE, | 974 | __NFT_META_IIFTYPE, |
| 973 | }; | 975 | }; |
| 974 | 976 | ||
| @@ -1260,10 +1262,10 @@ enum nft_last_attributes { · 285 unmodified lines | |||
| 1260 | /** | 1262 | /** |
| 1261 | * enum nft_log_attributes - nf_tables log expression netlink attributes | 1263 | * enum nft_log_attributes - nf_tables log expression netlink attributes |
| 1262 | * | 1264 | * |
| 1263 | * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32) | 1265 | * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U16) |
| 1264 | * @NFTA_LOG_PREFIX: prefix to prepend to log messages (NLA_STRING) | 1266 | * @NFTA_LOG_PREFIX: prefix to prepend to log messages (NLA_STRING) |
| 1265 | * @NFTA_LOG_SNAPLEN: length of payload to include in netlink message (NLA_U32) | 1267 | * @NFTA_LOG_SNAPLEN: length of payload to include in netlink message (NLA_U32) |
| 1266 | * @NFTA_LOG_QTHRESHOLD: queue threshold (NLA_U32) | 1268 | * @NFTA_LOG_QTHRESHOLD: queue threshold (NLA_U16) |
| 1267 | * @NFTA_LOG_LEVEL: log level (NLA_U32) | 1269 | * @NFTA_LOG_LEVEL: log level (NLA_U32) |
| 1268 | * @NFTA_LOG_FLAGS: logging flags (NLA_U32) | 1270 | * @NFTA_LOG_FLAGS: logging flags (NLA_U32) |
| 1269 | */ | 1271 | */ |
| @@ -32,8 +32,12 @@ enum nfnl_hook_attributes { · 31 unmodified lines | |||
| 32 | /** | 32 | /** |
| 33 | * enum nfnl_hook_chain_info_attributes - chain description | 33 | * enum nfnl_hook_chain_info_attributes - chain description |
| 34 | * | 34 | * |
| 35 | * NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED) | 35 | * @NFNLA_HOOK_INFO_DESC: nft chain and table name (NLA_NESTED) |
| 36 | * NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32) | 36 | * @NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32) |
| 37 | * | ||
| 38 | * NFNLA_HOOK_INFO_DESC depends on NFNLA_HOOK_INFO_TYPE value: | ||
| 39 | * NFNL_HOOK_TYPE_NFTABLES: enum nft_table_attributes | ||
| 40 | * NFNL_HOOK_TYPE_BPF: enum nfnl_hook_bpf_attributes | ||
| 37 | */ | 41 | */ |
| 38 | enum nfnl_hook_chain_info_attributes { | 42 | enum nfnl_hook_chain_info_attributes { |
| 39 | NFNLA_HOOK_INFO_UNSPEC, | 43 | NFNLA_HOOK_INFO_UNSPEC, |
| @@ -55,10 +59,24 @@ enum nfnl_hook_chain_desc_attributes { · 15 unmodified lines | |||
| 55 | /** | 59 | /** |
| 56 | * enum nfnl_hook_chaintype - chain type | 60 | * enum nfnl_hook_chaintype - chain type |
| 57 | * | 61 | * |
| 58 | * @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain | 62 | * @NFNL_HOOK_TYPE_NFTABLES: nf_tables base chain |
| 63 | * @NFNL_HOOK_TYPE_BPF: bpf program | ||
| 59 | */ | 64 | */ |
| 60 | enum nfnl_hook_chaintype { | 65 | enum nfnl_hook_chaintype { |
| 61 | NFNL_HOOK_TYPE_NFTABLES = 0x1, | 66 | NFNL_HOOK_TYPE_NFTABLES = 0x1, |
| 67 | NFNL_HOOK_TYPE_BPF, | ||
| 68 | }; | ||
| 69 | |||
| 70 | /** | ||
| 71 | * enum nfnl_hook_bpf_attributes - bpf prog description | ||
| 72 | * | ||
| 73 | * @NFNLA_HOOK_BPF_ID: bpf program id (NLA_U32) | ||
| 74 | */ | ||
| 75 | enum nfnl_hook_bpf_attributes { | ||
| 76 | NFNLA_HOOK_BPF_UNSPEC, | ||
| 77 | NFNLA_HOOK_BPF_ID, | ||
| 78 | __NFNLA_HOOK_BPF_MAX, | ||
| 62 | }; | 79 | }; |
| 80 | #define NFNLA_HOOK_BPF_MAX (__NFNLA_HOOK_BPF_MAX - 1) | ||
| 63 | 81 | ||
| 64 | #endif /* _NFNL_HOOK_H */ | 82 | #endif /* _NFNL_HOOK_H */ |
| @@ -62,6 +62,7 @@ enum nfqnl_attr_type { · 61 unmodified lines | |||
| 62 | NFQA_VLAN, /* nested attribute: packet vlan info */ | 62 | NFQA_VLAN, /* nested attribute: packet vlan info */ |
| 63 | NFQA_L2HDR, /* full L2 header */ | 63 | NFQA_L2HDR, /* full L2 header */ |
| 64 | NFQA_PRIORITY, /* skb->priority */ | 64 | NFQA_PRIORITY, /* skb->priority */ |
| 65 | NFQA_CGROUP_CLASSID, /* __u32 cgroup classid */ | ||
| 65 | 66 | ||
| 66 | __NFQA_MAX | 67 | __NFQA_MAX |
| 67 | }; | 68 | }; |
| @@ -1299,6 +1299,16 @@ · 1298 unmodified lines | |||
| 1299 | * @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station | 1299 | * @NL80211_CMD_MODIFY_LINK_STA: Modify a link of an MLD station |
| 1300 | * @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station | 1300 | * @NL80211_CMD_REMOVE_LINK_STA: Remove a link of an MLD station |
| 1301 | * | 1301 | * |
| 1302 | * @NL80211_CMD_SET_HW_TIMESTAMP: Enable/disable HW timestamping of Timing | ||
| 1303 | * measurement and Fine timing measurement frames. If %NL80211_ATTR_MAC | ||
| 1304 | * is included, enable/disable HW timestamping only for frames to/from the | ||
| 1305 | * specified MAC address. Otherwise enable/disable HW timestamping for | ||
| 1306 | * all TM/FTM frames (including ones that were enabled with specific MAC | ||
| 1307 | * address). If %NL80211_ATTR_HW_TIMESTAMP_ENABLED is not included, disable | ||
| 1308 | * HW timestamping. | ||
| 1309 | * The number of peers that HW timestamping can be enabled for concurrently | ||
| 1310 | * is indicated by %NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS. | ||
| 1311 | * | ||
| 1302 | * @NL80211_CMD_MAX: highest used command number | 1312 | * @NL80211_CMD_MAX: highest used command number |
| 1303 | * @__NL80211_CMD_AFTER_LAST: internal use | 1313 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 1304 | */ | 1314 | */ |
| @@ -1550,6 +1560,8 @@ enum nl80211_commands { · 245 unmodified lines | |||
| 1550 | NL80211_CMD_MODIFY_LINK_STA, | 1560 | NL80211_CMD_MODIFY_LINK_STA, |
| 1551 | NL80211_CMD_REMOVE_LINK_STA, | 1561 | NL80211_CMD_REMOVE_LINK_STA, |
| 1552 | 1562 | ||
| 1563 | NL80211_CMD_SET_HW_TIMESTAMP, | ||
| 1564 | |||
| 1553 | /* add new commands above here */ | 1565 | /* add new commands above here */ |
| 1554 | 1566 | ||
| 1555 | /* used to define NL80211_CMD_MAX below */ | 1567 | /* used to define NL80211_CMD_MAX below */ |
| @@ -2775,6 +2787,24 @@ enum nl80211_commands { · 1219 unmodified lines | |||
| 2775 | * indicates that the sub-channel is punctured. Higher 16 bits are | 2787 | * indicates that the sub-channel is punctured. Higher 16 bits are |
| 2776 | * reserved. | 2788 | * reserved. |
| 2777 | * | 2789 | * |
| 2790 | * @NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS: Maximum number of peers that HW | ||
| 2791 | * timestamping can be enabled for concurrently (u16), a wiphy attribute. | ||
| 2792 | * A value of 0xffff indicates setting for all peers (i.e. not specifying | ||
| 2793 | * an address with %NL80211_CMD_SET_HW_TIMESTAMP) is supported. | ||
| 2794 | * @NL80211_ATTR_HW_TIMESTAMP_ENABLED: Indicates whether HW timestamping should | ||
| 2795 | * be enabled or not (flag attribute). | ||
| 2796 | * | ||
| 2797 | * @NL80211_ATTR_EMA_RNR_ELEMS: Optional nested attribute for | ||
| 2798 | * reduced neighbor report (RNR) elements. This attribute can be used | ||
| 2799 | * only when NL80211_MBSSID_CONFIG_ATTR_EMA is enabled. | ||
| 2800 | * Userspace is responsible for splitting the RNR into multiple | ||
| 2801 | * elements such that each element excludes the non-transmitting | ||
| 2802 | * profiles already included in the MBSSID element | ||
| 2803 | * (%NL80211_ATTR_MBSSID_ELEMS) at the same index. Each EMA beacon | ||
| 2804 | * will be generated by adding MBSSID and RNR elements at the same | ||
| 2805 | * index. If the userspace includes more RNR elements than number of | ||
| 2806 | * MBSSID elements then these will be added in every EMA beacon. | ||
| 2807 | * | ||
| 2778 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2808 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2779 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2809 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 2780 | * @__NL80211_ATTR_AFTER_LAST: internal use | 2810 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -3306,6 +3336,11 @@ enum nl80211_attrs { · 525 unmodified lines | |||
| 3306 | 3336 | ||
| 3307 | NL80211_ATTR_PUNCT_BITMAP, | 3337 | NL80211_ATTR_PUNCT_BITMAP, |
| 3308 | 3338 | ||
| 3339 | NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS, | ||
| 3340 | NL80211_ATTR_HW_TIMESTAMP_ENABLED, | ||
| 3341 | |||
| 3342 | NL80211_ATTR_EMA_RNR_ELEMS, | ||
| 3343 | |||
| 3309 | /* add attributes here, update the policy in nl80211.c */ | 3344 | /* add attributes here, update the policy in nl80211.c */ |
| 3310 | 3345 | ||
| 3311 | __NL80211_ATTR_AFTER_LAST, | 3346 | __NL80211_ATTR_AFTER_LAST, |
| @@ -4026,6 +4061,10 @@ enum nl80211_band_iftype_attr { · 714 unmodified lines | |||
| 4026 | * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes | 4061 | * @NL80211_BAND_ATTR_EDMG_BW_CONFIG: Channel BW Configuration subfield encodes |
| 4027 | * the allowed channel bandwidth configurations. | 4062 | * the allowed channel bandwidth configurations. |
| 4028 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. | 4063 | * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13. |
| 4064 | * @NL80211_BAND_ATTR_S1G_MCS_NSS_SET: S1G capabilities, supported S1G-MCS and NSS | ||
| 4065 | * set subfield, as in the S1G information IE, 5 bytes | ||
| 4066 | * @NL80211_BAND_ATTR_S1G_CAPA: S1G capabilities information subfield as in the | ||
| 4067 | * S1G information IE, 10 bytes | ||
| 4029 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined | 4068 | * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined |
| 4030 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use | 4069 | * @__NL80211_BAND_ATTR_AFTER_LAST: internal use |
| 4031 | */ | 4070 | */ |
| @@ -4046,6 +4085,9 @@ enum nl80211_band_attr { · 14 unmodified lines | |||
| 4046 | NL80211_BAND_ATTR_EDMG_CHANNELS, | 4085 | NL80211_BAND_ATTR_EDMG_CHANNELS, |
| 4047 | NL80211_BAND_ATTR_EDMG_BW_CONFIG, | 4086 | NL80211_BAND_ATTR_EDMG_BW_CONFIG, |
| 4048 | 4087 | ||
| 4088 | NL80211_BAND_ATTR_S1G_MCS_NSS_SET, | ||
| 4089 | NL80211_BAND_ATTR_S1G_CAPA, | ||
| 4090 | |||
| 4049 | /* keep last */ | 4091 | /* keep last */ |
| 4050 | __NL80211_BAND_ATTR_AFTER_LAST, | 4092 | __NL80211_BAND_ATTR_AFTER_LAST, |
| 4051 | NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 | 4093 | NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 |
| @@ -6326,6 +6368,10 @@ enum nl80211_feature_flags { · 2274 unmodified lines | |||
| 6326 | * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables | 6368 | * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables |
| 6327 | * authentication, data encryption and message integrity. | 6369 | * authentication, data encryption and message integrity. |
| 6328 | * | 6370 | * |
| 6371 | * @NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA: Device supports randomized TA | ||
| 6372 | * in authentication and deauthentication frames sent to unassociated peer | ||
| 6373 | * using @NL80211_CMD_FRAME. | ||
| 6374 | * | ||
| 6329 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 6375 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6330 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 6376 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6331 | */ | 6377 | */ |
| @@ -6396,6 +6442,7 @@ enum nl80211_ext_feature_index { · 64 unmodified lines | |||
| 6396 | NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, | 6442 | NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, |
| 6397 | NL80211_EXT_FEATURE_PUNCT, | 6443 | NL80211_EXT_FEATURE_PUNCT, |
| 6398 | NL80211_EXT_FEATURE_SECURE_NAN, | 6444 | NL80211_EXT_FEATURE_SECURE_NAN, |
| 6445 | NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA, | ||
| 6399 | 6446 | ||
| 6400 | /* add new features before the definition below */ | 6447 | /* add new features before the definition below */ |
| 6401 | NUM_NL80211_EXT_FEATURES, | 6448 | NUM_NL80211_EXT_FEATURES, |
| @@ -6510,8 +6557,16 @@ enum nl80211_timeout_reason { · 108 unmodified lines | |||
| 6510 | * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with | 6557 | * @NL80211_SCAN_FLAG_FREQ_KHZ: report scan results with |
| 6511 | * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means | 6558 | * %NL80211_ATTR_SCAN_FREQ_KHZ. This also means |
| 6512 | * %NL80211_ATTR_SCAN_FREQUENCIES will not be included. | 6559 | * %NL80211_ATTR_SCAN_FREQUENCIES will not be included. |
| 6513 | * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for colocated APs reported by | 6560 | * @NL80211_SCAN_FLAG_COLOCATED_6GHZ: scan for collocated APs reported by |
| 6514 | * 2.4/5 GHz APs | 6561 | * 2.4/5 GHz APs. When the flag is set, the scan logic will use the |
| 6562 | * information from the RNR element found in beacons/probe responses | ||
| 6563 | * received on the 2.4/5 GHz channels to actively scan only the 6GHz | ||
| 6564 | * channels on which APs are expected to be found. Note that when not set, | ||
| 6565 | * the scan logic would scan all 6GHz channels, but since transmission of | ||
| 6566 | * probe requests on non PSC channels is limited, it is highly likely that | ||
| 6567 | * these channels would passively be scanned. Also note that when the flag | ||
| 6568 | * is set, in addition to the colocated APs, PSC channels would also be | ||
| 6569 | * scanned if the user space has asked for it. | ||
| 6515 | */ | 6570 | */ |
| 6516 | enum nl80211_scan_flags { | 6571 | enum nl80211_scan_flags { |
| 6517 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, | 6572 | NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| @@ -719,6 +719,11 @@ enum { · 718 unmodified lines | |||
| 719 | 719 | ||
| 720 | #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) | 720 | #define __TC_MQPRIO_SHAPER_MAX (__TC_MQPRIO_SHAPER_MAX - 1) |
| 721 | 721 | ||
| 722 | enum { | ||
| 723 | TC_FP_EXPRESS = 1, | ||
| 724 | TC_FP_PREEMPTIBLE = 2, | ||
| 725 | }; | ||
| 726 | |||
| 722 | struct tc_mqprio_qopt { | 727 | struct tc_mqprio_qopt { |
| 723 | __u8 num_tc; | 728 | __u8 num_tc; |
| 724 | __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; | 729 | __u8 prio_tc_map[TC_QOPT_BITMASK + 1]; |
| @@ -732,12 +737,23 @@ struct tc_mqprio_qopt { · 7 unmodified lines | |||
| 732 | #define TC_MQPRIO_F_MIN_RATE 0x4 | 737 | #define TC_MQPRIO_F_MIN_RATE 0x4 |
| 733 | #define TC_MQPRIO_F_MAX_RATE 0x8 | 738 | #define TC_MQPRIO_F_MAX_RATE 0x8 |
| 734 | 739 | ||
| 740 | enum { | ||
| 741 | TCA_MQPRIO_TC_ENTRY_UNSPEC, | ||
| 742 | TCA_MQPRIO_TC_ENTRY_INDEX, /* u32 */ | ||
| 743 | TCA_MQPRIO_TC_ENTRY_FP, /* u32 */ | ||
| 744 | |||
| 745 | /* add new constants above here */ | ||
| 746 | __TCA_MQPRIO_TC_ENTRY_CNT, | ||
| 747 | TCA_MQPRIO_TC_ENTRY_MAX = (__TCA_MQPRIO_TC_ENTRY_CNT - 1) | ||
| 748 | }; | ||
| 749 | |||
| 735 | enum { | 750 | enum { |
| 736 | TCA_MQPRIO_UNSPEC, | 751 | TCA_MQPRIO_UNSPEC, |
| 737 | TCA_MQPRIO_MODE, | 752 | TCA_MQPRIO_MODE, |
| 738 | TCA_MQPRIO_SHAPER, | 753 | TCA_MQPRIO_SHAPER, |
| 739 | TCA_MQPRIO_MIN_RATE64, | 754 | TCA_MQPRIO_MIN_RATE64, |
| 740 | TCA_MQPRIO_MAX_RATE64, | 755 | TCA_MQPRIO_MAX_RATE64, |
| 756 | TCA_MQPRIO_TC_ENTRY, | ||
| 741 | __TCA_MQPRIO_MAX, | 757 | __TCA_MQPRIO_MAX, |
| 742 | }; | 758 | }; |
| 743 | 759 | ||
| @@ -1236,6 +1252,7 @@ enum { · 492 unmodified lines | |||
| 1236 | TCA_TAPRIO_TC_ENTRY_UNSPEC, | 1252 | TCA_TAPRIO_TC_ENTRY_UNSPEC, |
| 1237 | TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */ | 1253 | TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */ |
| 1238 | TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */ | 1254 | TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */ |
| 1255 | TCA_TAPRIO_TC_ENTRY_FP, /* u32 */ | ||
| 1239 | 1256 | ||
| 1240 | /* add new constants above here */ | 1257 | /* add new constants above here */ |
| 1241 | __TCA_TAPRIO_TC_ENTRY_CNT, | 1258 | __TCA_TAPRIO_TC_ENTRY_CNT, |
| @@ -1211,7 +1211,9 @@ enum sctp_sched_type { · 1210 unmodified lines | |||
| 1211 | SCTP_SS_DEFAULT = SCTP_SS_FCFS, | 1211 | SCTP_SS_DEFAULT = SCTP_SS_FCFS, |
| 1212 | SCTP_SS_PRIO, | 1212 | SCTP_SS_PRIO, |
| 1213 | SCTP_SS_RR, | 1213 | SCTP_SS_RR, |
| 1214 | SCTP_SS_MAX = SCTP_SS_RR | 1214 | SCTP_SS_FC, |
| 1215 | SCTP_SS_WFQ, | ||
| 1216 | SCTP_SS_MAX = SCTP_SS_WFQ | ||
| 1215 | }; | 1217 | }; |
| 1216 | 1218 | ||
| 1217 | /* Probe Interval socket option */ | 1219 | /* Probe Interval socket option */ |
| @@ -34,6 +34,7 @@ enum { · 33 unmodified lines | |||
| 34 | */ | 34 | */ |
| 35 | TCA_TUNNEL_KEY_ENC_TOS, /* u8 */ | 35 | TCA_TUNNEL_KEY_ENC_TOS, /* u8 */ |
| 36 | TCA_TUNNEL_KEY_ENC_TTL, /* u8 */ | 36 | TCA_TUNNEL_KEY_ENC_TTL, /* u8 */ |
| 37 | TCA_TUNNEL_KEY_NO_FRAG, /* flag */ | ||
| 37 | __TCA_TUNNEL_KEY_MAX, | 38 | __TCA_TUNNEL_KEY_MAX, |
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| @@ -61,6 +61,7 @@ · 60 unmodified lines | |||
| 61 | #define VIRTIO_NET_F_GUEST_USO6 55 /* Guest can handle USOv6 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. */ | 62 | #define VIRTIO_NET_F_HOST_USO 56 /* Host can handle USO in. */ |
| 63 | #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ | 63 | #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */ |
| 64 | #define VIRTIO_NET_F_GUEST_HDRLEN 59 /* Guest provides the exact hdr_len value. */ | ||
| 64 | #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ | 65 | #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */ |
| 65 | #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ | 66 | #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */ |
| 66 | #define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device | 67 | #define VIRTIO_NET_F_STANDBY 62 /* Act as standby for another device |