]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
include: update kernel headers from v6.17-rc2
authorLuca Boccassi <luca.boccassi@gmail.com>
Tue, 2 Sep 2025 20:46:34 +0000 (21:46 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 3 Sep 2025 10:10:48 +0000 (12:10 +0200)
22 files changed:
src/basic/linux/batman_adv.h
src/basic/linux/bpf.h
src/basic/linux/btrfs.h
src/basic/linux/const.h
src/basic/linux/dm-ioctl.h
src/basic/linux/ethtool.h
src/basic/linux/fib_rules.h
src/basic/linux/if_bridge.h
src/basic/linux/if_link.h
src/basic/linux/if_tun.h
src/basic/linux/in6.h
src/basic/linux/input-event-codes.h
src/basic/linux/input.h
src/basic/linux/ipv6.h
src/basic/linux/neighbour.h
src/basic/linux/netfilter/nf_tables.h
src/basic/linux/nl80211.h
src/basic/linux/pkt_sched.h
src/basic/linux/rtnetlink.h
src/basic/linux/stddef.h
src/basic/linux/vm_sockets.h
src/basic/linux/wireguard.h

index ebe21775a797809d33a5125229aabd190f810fb0..61689ae859f0ba24447dac6c080fcb471588d312 100644 (file)
@@ -342,7 +342,7 @@ enum batadv_nl_attrs {
        BATADV_ATTR_MCAST_FLAGS_PRIV,
 
        /**
-        * @BATADV_ATTR_VLANID: VLAN id on top of soft interface
+        * @BATADV_ATTR_VLANID: VLAN id on top of mesh interface
         */
        BATADV_ATTR_VLANID,
 
@@ -380,7 +380,7 @@ enum batadv_nl_attrs {
        /**
         * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
         *  avoidance feature is enabled. This feature detects and avoids loops
-        *  between the mesh and devices bridged with the soft interface
+        *  between the mesh and devices bridged with the mesh interface
         */
        BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
 
@@ -509,7 +509,7 @@ enum batadv_nl_commands {
        BATADV_CMD_UNSPEC,
 
        /**
-        * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh
+        * @BATADV_CMD_GET_MESH: Get attributes from mesh(if)
         */
        BATADV_CMD_GET_MESH,
 
@@ -535,7 +535,7 @@ enum batadv_nl_commands {
 
        /**
         * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
-        *  current softif
+        *  current mesh(if)
         */
        BATADV_CMD_GET_HARDIF,
 
@@ -591,25 +591,25 @@ enum batadv_nl_commands {
        BATADV_CMD_GET_MCAST_FLAGS,
 
        /**
-        * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh
+        * @BATADV_CMD_SET_MESH: Set attributes for mesh(if)
         */
        BATADV_CMD_SET_MESH,
 
        /**
         * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
-        *  current softif
+        *  current mesh(if)
         */
        BATADV_CMD_SET_HARDIF,
 
        /**
         * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
-        *  current softif
+        *  current mesh(if)
         */
        BATADV_CMD_GET_VLAN,
 
        /**
         * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
-        *  current softif
+        *  current mesh(if)
         */
        BATADV_CMD_SET_VLAN,
 
@@ -691,7 +691,7 @@ enum batadv_ifla_attrs {
         */
        IFLA_BATADV_ALGO_NAME,
 
-       /* add attributes above here, update the policy in soft-interface.c */
+       /* add attributes above here, update the policy in mesh-interface.c */
 
        /**
         * @__IFLA_BATADV_MAX: internal use
index 535272c7b3124ecc9aca1479de101717360cfd07..936bb1c94c820552a7011328ba2246396dfcdea6 100644 (file)
@@ -51,6 +51,9 @@
 #define BPF_XCHG       (0xe0 | BPF_FETCH)      /* atomic exchange */
 #define BPF_CMPXCHG    (0xf0 | BPF_FETCH)      /* atomic compare-and-write */
 
+#define BPF_LOAD_ACQ   0x100   /* load-acquire */
+#define BPF_STORE_REL  0x110   /* store-release */
+
 enum bpf_cond_pseudo_jmp {
        BPF_MAY_GOTO = 0,
 };
@@ -447,6 +450,7 @@ union bpf_iter_link_info {
  *             * **struct bpf_map_info**
  *             * **struct bpf_btf_info**
  *             * **struct bpf_link_info**
+ *             * **struct bpf_token_info**
  *
  *     Return
  *             Returns zero on success. On error, -1 is returned and *errno*
@@ -903,6 +907,17 @@ union bpf_iter_link_info {
  *             A new file descriptor (a nonnegative integer), or -1 if an
  *             error occurred (in which case, *errno* is set appropriately).
  *
+ * BPF_PROG_STREAM_READ_BY_FD
+ *     Description
+ *             Read data of a program's BPF stream. The program is identified
+ *             by *prog_fd*, and the stream is identified by the *stream_id*.
+ *             The data is copied to a buffer pointed to by *stream_buf*, and
+ *             filled less than or equal to *stream_buf_len* bytes.
+ *
+ *     Return
+ *             Number of bytes read from the stream on success, or -1 if an
+ *             error occurred (in which case, *errno* is set appropriately).
+ *
  * NOTES
  *     eBPF objects (maps and programs) can be shared between processes.
  *
@@ -958,6 +973,7 @@ enum bpf_cmd {
        BPF_LINK_DETACH,
        BPF_PROG_BIND_MAP,
        BPF_TOKEN_CREATE,
+       BPF_PROG_STREAM_READ_BY_FD,
        __MAX_BPF_CMD,
 };
 
@@ -1207,6 +1223,7 @@ enum bpf_perf_event_type {
 #define BPF_F_BEFORE           (1U << 3)
 #define BPF_F_AFTER            (1U << 4)
 #define BPF_F_ID               (1U << 5)
+#define BPF_F_PREORDER         (1U << 6)
 #define BPF_F_LINK             BPF_F_LINK /* 1 << 13 */
 
 /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
@@ -1459,6 +1476,11 @@ struct bpf_stack_build_id {
 
 #define BPF_OBJ_NAME_LEN 16U
 
+enum {
+       BPF_STREAM_STDOUT = 1,
+       BPF_STREAM_STDERR = 2,
+};
+
 union bpf_attr {
        struct { /* anonymous struct used by BPF_MAP_CREATE command */
                __u32   map_type;       /* one of enum bpf_map_type */
@@ -1502,7 +1524,7 @@ union bpf_attr {
                __s32   map_token_fd;
        };
 
-       struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
+       struct { /* anonymous struct used by BPF_MAP_*_ELEM and BPF_MAP_FREEZE commands */
                __u32           map_fd;
                __aligned_u64   key;
                union {
@@ -1648,6 +1670,7 @@ union bpf_attr {
                };
                __u32           next_id;
                __u32           open_flags;
+               __s32           fd_by_id_token_fd;
        };
 
        struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */
@@ -1789,6 +1812,13 @@ union bpf_attr {
                                };
                                __u64           expected_revision;
                        } netkit;
+                       struct {
+                               union {
+                                       __u32   relative_fd;
+                                       __u32   relative_id;
+                               };
+                               __u64           expected_revision;
+                       } cgroup;
                };
        } link_create;
 
@@ -1837,6 +1867,13 @@ union bpf_attr {
                __u32           bpffs_fd;
        } token_create;
 
+       struct {
+               __aligned_u64   stream_buf;
+               __u32           stream_buf_len;
+               __u32           stream_id;
+               __u32           prog_fd;
+       } prog_stream_read;
+
 } __attribute__((aligned(8)));
 
 /* The description below is an attempt at providing documentation to eBPF
@@ -1990,11 +2027,15 @@ union bpf_attr {
  * long bpf_skb_store_bytes(struct sk_buff *skb, u32 offset, const void *from, u32 len, u64 flags)
  *     Description
  *             Store *len* bytes from address *from* into the packet
- *             associated to *skb*, at *offset*. *flags* are a combination of
- *             **BPF_F_RECOMPUTE_CSUM** (automatically recompute the
- *             checksum for the packet after storing the bytes) and
- *             **BPF_F_INVALIDATE_HASH** (set *skb*\ **->hash**, *skb*\
- *             **->swhash** and *skb*\ **->l4hash** to 0).
+ *             associated to *skb*, at *offset*. The *flags* are a combination
+ *             of the following values:
+ *
+ *             **BPF_F_RECOMPUTE_CSUM**
+ *                     Automatically update *skb*\ **->csum** after storing the
+ *                     bytes.
+ *             **BPF_F_INVALIDATE_HASH**
+ *                     Set *skb*\ **->hash**, *skb*\ **->swhash** and *skb*\
+ *                     **->l4hash** to 0.
  *
  *             A call to this helper is susceptible to change the underlying
  *             packet buffer. Therefore, at load time, all checks on pointers
@@ -2046,7 +2087,8 @@ union bpf_attr {
  *             untouched (unless **BPF_F_MARK_ENFORCE** is added as well), and
  *             for updates resulting in a null checksum the value is set to
  *             **CSUM_MANGLED_0** instead. Flag **BPF_F_PSEUDO_HDR** indicates
- *             the checksum is to be computed against a pseudo-header.
+ *             that the modified header field is part of the pseudo-header.
+ *             Flag **BPF_F_IPV6** should be set for IPv6 packets.
  *
  *             This helper works in combination with **bpf_csum_diff**\ (),
  *             which does not update the checksum in-place, but offers more
@@ -2393,7 +2435,7 @@ union bpf_attr {
  *             into it. An example is available in file
  *             *samples/bpf/trace_output_user.c* in the Linux kernel source
  *             tree (the eBPF program counterpart is in
- *             *samples/bpf/trace_output_kern.c*).
+ *             *samples/bpf/trace_output.bpf.c*).
  *
  *             **bpf_perf_event_output**\ () achieves better performance
  *             than **bpf_trace_printk**\ () for sharing data with user
@@ -4963,6 +5005,9 @@ union bpf_attr {
  *             the netns switch takes place from ingress to ingress without
  *             going through the CPU's backlog queue.
  *
+ *             *skb*\ **->mark** and *skb*\ **->tstamp** are not cleared during
+ *             the netns switch.
+ *
  *             The *flags* argument is reserved and must be 0. The helper is
  *             currently only supported for tc BPF program types at the
  *             ingress hook and for veth and netkit target device types. The
@@ -6019,7 +6064,10 @@ union bpf_attr {
        FN(user_ringbuf_drain, 209, ##ctx)              \
        FN(cgrp_storage_get, 210, ##ctx)                \
        FN(cgrp_storage_delete, 211, ##ctx)             \
-       /* */
+       /* This helper list is effectively frozen. If you are trying to \
+        * add a new helper, you should add a kfunc instead which has   \
+        * less stability guarantees. See Documentation/bpf/kfuncs.rst  \
+        */
 
 /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
  * know or care about integer value that is now passed as second argument
@@ -6057,6 +6105,7 @@ enum {
        BPF_F_PSEUDO_HDR                = (1ULL << 4),
        BPF_F_MARK_MANGLED_0            = (1ULL << 5),
        BPF_F_MARK_ENFORCE              = (1ULL << 6),
+       BPF_F_IPV6                      = (1ULL << 7),
 };
 
 /* BPF_FUNC_skb_set_tunnel_key and BPF_FUNC_skb_get_tunnel_key flags. */
@@ -6636,11 +6685,15 @@ struct bpf_link_info {
                struct {
                        __aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
                        __u32 tp_name_len;     /* in/out: tp_name buffer len */
+                       __u32 :32;
+                       __u64 cookie;
                } raw_tracepoint;
                struct {
                        __u32 attach_type;
                        __u32 target_obj_id; /* prog_id for PROG_EXT, otherwise btf object id */
                        __u32 target_btf_id; /* BTF type id inside the object */
+                       __u32 :32;
+                       __u64 cookie;
                } tracing;
                struct {
                        __u64 cgroup_id;
@@ -6712,6 +6765,7 @@ struct bpf_link_info {
                                        __u32 name_len;
                                        __u32 offset; /* offset from file_name */
                                        __u64 cookie;
+                                       __u64 ref_ctr_offset;
                                } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */
                                struct {
                                        __aligned_u64 func_name; /* in/out */
@@ -6750,6 +6804,13 @@ struct bpf_link_info {
        };
 } __attribute__((aligned(8)));
 
+struct bpf_token_info {
+       __u64 allowed_cmds;
+       __u64 allowed_maps;
+       __u64 allowed_progs;
+       __u64 allowed_attachs;
+} __attribute__((aligned(8)));
+
 /* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
  * by user and intended to be used by socket (e.g. to bind to, depends on
  * attach type).
@@ -6913,6 +6974,12 @@ enum {
        BPF_SOCK_OPS_ALL_CB_FLAGS       = 0x7F,
 };
 
+enum {
+       SK_BPF_CB_TX_TIMESTAMPING       = 1<<0,
+       SK_BPF_CB_MASK                  = (SK_BPF_CB_TX_TIMESTAMPING - 1) |
+                                          SK_BPF_CB_TX_TIMESTAMPING
+};
+
 /* List of known BPF sock_ops operators.
  * New entries can only be added at the end
  */
@@ -7025,6 +7092,29 @@ enum {
                                         * by the kernel or the
                                         * earlier bpf-progs.
                                         */
+       BPF_SOCK_OPS_TSTAMP_SCHED_CB,   /* Called when skb is passing
+                                        * through dev layer when
+                                        * SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SND_SW_CB,  /* Called when skb is about to send
+                                        * to the nic when SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SND_HW_CB,  /* Called in hardware phase when
+                                        * SK_BPF_CB_TX_TIMESTAMPING feature
+                                        * is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_ACK_CB,     /* Called when all the skbs in the
+                                        * same sendmsg call are acked
+                                        * when SK_BPF_CB_TX_TIMESTAMPING
+                                        * feature is on.
+                                        */
+       BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall
+                                        * is triggered. It's used to correlate
+                                        * sendmsg timestamp with corresponding
+                                        * tskey.
+                                        */
 };
 
 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -7091,6 +7181,7 @@ enum {
        TCP_BPF_SYN_IP          = 1006, /* Copy the IP[46] and TCP header */
        TCP_BPF_SYN_MAC         = 1007, /* Copy the MAC, IP[46], and TCP header */
        TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */
+       SK_BPF_CB_FLAGS         = 1009, /* Get or set sock ops flags in socket */
 };
 
 enum {
index c00a5b41f487418ae2153393651f11b002e96c41..196554c9cdb272c58315d851104f368405736d69 100644 (file)
@@ -615,7 +615,12 @@ struct btrfs_ioctl_clone_range_args {
  */
 #define BTRFS_DEFRAG_RANGE_COMPRESS 1
 #define BTRFS_DEFRAG_RANGE_START_IO 2
+#define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4
+/* Request no compression on the range (uncompress if necessary). */
+#define BTRFS_DEFRAG_RANGE_NOCOMPRESS  8
 #define BTRFS_DEFRAG_RANGE_FLAGS_SUPP  (BTRFS_DEFRAG_RANGE_COMPRESS |          \
+                                        BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL |    \
+                                        BTRFS_DEFRAG_RANGE_NOCOMPRESS |        \
                                         BTRFS_DEFRAG_RANGE_START_IO)
 
 struct btrfs_ioctl_defrag_range_args {
@@ -640,10 +645,18 @@ struct btrfs_ioctl_defrag_range_args {
 
        /*
         * which compression method to use if turning on compression
-        * for this defrag operation.  If unspecified, zlib will
-        * be used
+        * for this defrag operation. If unspecified, zlib will be
+        * used. If compression level is also being specified, set the
+        * BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL flag and fill the compress
+        * member structure instead of the compress_type field.
         */
-       __u32 compress_type;
+       union {
+               __u32 compress_type;
+               struct {
+                       __u8 type;
+                       __s8 level;
+               } compress;
+       };
 
        /* spare for later */
        __u32 unused[4];
index 2122610de7f97a8f0129bbd3e6d6f72e4b405414..95ede2334204048d49b228284e9fbc1561337a16 100644 (file)
@@ -33,7 +33,7 @@
  * Missing __asm__ support
  *
  * __BIT128() would not work in the __asm__ code, as it shifts an
- * 'unsigned __init128' data type as direct representation of
+ * 'unsigned __int128' data type as direct representation of
  * 128 bit constants is not supported in the gcc compiler, as
  * they get silently truncated.
  *
index a1106057942482d38ff1e8487559440a1b5d06ef..9327299a6c26fbc539d5187553efd11d08d9be4c 100644 (file)
@@ -258,10 +258,12 @@ enum {
        DM_DEV_SET_GEOMETRY_CMD,
        DM_DEV_ARM_POLL_CMD,
        DM_GET_TARGET_VERSION_CMD,
+       DM_MPATH_PROBE_PATHS_CMD,
 };
 
 #define DM_IOCTL 0xfd
 
+/* Control device ioctls */
 #define DM_VERSION       _IOWR(DM_IOCTL, DM_VERSION_CMD, struct dm_ioctl)
 #define DM_REMOVE_ALL    _IOWR(DM_IOCTL, DM_REMOVE_ALL_CMD, struct dm_ioctl)
 #define DM_LIST_DEVICES  _IOWR(DM_IOCTL, DM_LIST_DEVICES_CMD, struct dm_ioctl)
@@ -285,10 +287,13 @@ enum {
 #define DM_TARGET_MSG   _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY    _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 
+/* Block device ioctls */
+#define DM_MPATH_PROBE_PATHS _IO(DM_IOCTL, DM_MPATH_PROBE_PATHS_CMD)
+
 #define DM_VERSION_MAJOR       4
 #define DM_VERSION_MINOR       27
 #define DM_VERSION_PATCHLEVEL  0
-#define DM_VERSION_EXTRA       "-ioctl (2025-01-17)"
+#define DM_VERSION_EXTRA       "-ioctl (2025-04-28)"
 
 /* Status bits */
 #define DM_READONLY_FLAG       (1 << 0) /* In/Out */
index 34f5dabd33e8ea2fcef95624817d9b20a5b9aead..6c169eefa66661dadfba75c3050c86eca60113af 100644 (file)
@@ -680,6 +680,7 @@ enum ethtool_link_ext_substate_module {
  * @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
  * @ETH_SS_STATS_RMON: names of RMON statistics
  * @ETH_SS_STATS_PHY: names of PHY(dev) statistics
+ * @ETH_SS_TS_FLAGS: hardware timestamping flags
  *
  * @ETH_SS_COUNT: number of defined string sets
  */
@@ -706,6 +707,7 @@ enum ethtool_stringset {
        ETH_SS_STATS_ETH_CTRL,
        ETH_SS_STATS_RMON,
        ETH_SS_STATS_PHY,
+       ETH_SS_TS_FLAGS,
 
        /* add new constants above here */
        ETH_SS_COUNT
@@ -2055,6 +2057,24 @@ enum ethtool_link_mode_bit_indices {
        ETHTOOL_LINK_MODE_10baseT1S_Half_BIT             = 100,
        ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT        = 101,
        ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT           = 102,
+       ETHTOOL_LINK_MODE_200000baseCR_Full_BIT          = 103,
+       ETHTOOL_LINK_MODE_200000baseKR_Full_BIT          = 104,
+       ETHTOOL_LINK_MODE_200000baseDR_Full_BIT          = 105,
+       ETHTOOL_LINK_MODE_200000baseDR_2_Full_BIT        = 106,
+       ETHTOOL_LINK_MODE_200000baseSR_Full_BIT          = 107,
+       ETHTOOL_LINK_MODE_200000baseVR_Full_BIT          = 108,
+       ETHTOOL_LINK_MODE_400000baseCR2_Full_BIT         = 109,
+       ETHTOOL_LINK_MODE_400000baseKR2_Full_BIT         = 110,
+       ETHTOOL_LINK_MODE_400000baseDR2_Full_BIT         = 111,
+       ETHTOOL_LINK_MODE_400000baseDR2_2_Full_BIT       = 112,
+       ETHTOOL_LINK_MODE_400000baseSR2_Full_BIT         = 113,
+       ETHTOOL_LINK_MODE_400000baseVR2_Full_BIT         = 114,
+       ETHTOOL_LINK_MODE_800000baseCR4_Full_BIT         = 115,
+       ETHTOOL_LINK_MODE_800000baseKR4_Full_BIT         = 116,
+       ETHTOOL_LINK_MODE_800000baseDR4_Full_BIT         = 117,
+       ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT       = 118,
+       ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT         = 119,
+       ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT         = 120,
 
        /* must be last entry */
        __ETHTOOL_LINK_MODE_MASK_NBITS
@@ -2267,73 +2287,81 @@ static __inline__ int ethtool_validate_duplex(__u8 duplex)
  * be exploited to reduce the RSS queue spread.
  */
 #define        RXH_XFRM_SYM_XOR        (1 << 0)
+/* Similar to SYM_XOR, except that one copy of the XOR'ed fields is replaced by
+ * an OR of the same fields
+ */
+#define        RXH_XFRM_SYM_OR_XOR     (1 << 1)
 #define        RXH_XFRM_NO_CHANGE      0xff
 
-/* L2-L4 network traffic flow types */
-#define        TCP_V4_FLOW     0x01    /* hash or spec (tcp_ip4_spec) */
-#define        UDP_V4_FLOW     0x02    /* hash or spec (udp_ip4_spec) */
-#define        SCTP_V4_FLOW    0x03    /* hash or spec (sctp_ip4_spec) */
-#define        AH_ESP_V4_FLOW  0x04    /* hash only */
-#define        TCP_V6_FLOW     0x05    /* hash or spec (tcp_ip6_spec; nfc only) */
-#define        UDP_V6_FLOW     0x06    /* hash or spec (udp_ip6_spec; nfc only) */
-#define        SCTP_V6_FLOW    0x07    /* hash or spec (sctp_ip6_spec; nfc only) */
-#define        AH_ESP_V6_FLOW  0x08    /* hash only */
-#define        AH_V4_FLOW      0x09    /* hash or spec (ah_ip4_spec) */
-#define        ESP_V4_FLOW     0x0a    /* hash or spec (esp_ip4_spec) */
-#define        AH_V6_FLOW      0x0b    /* hash or spec (ah_ip6_spec; nfc only) */
-#define        ESP_V6_FLOW     0x0c    /* hash or spec (esp_ip6_spec; nfc only) */
-#define        IPV4_USER_FLOW  0x0d    /* spec only (usr_ip4_spec) */
-#define        IP_USER_FLOW    IPV4_USER_FLOW
-#define        IPV6_USER_FLOW  0x0e    /* spec only (usr_ip6_spec; nfc only) */
-#define        IPV4_FLOW       0x10    /* hash only */
-#define        IPV6_FLOW       0x11    /* hash only */
-#define        ETHER_FLOW      0x12    /* spec only (ether_spec) */
-
-/* Used for GTP-U IPv4 and IPv6.
- * The format of GTP packets only includes
- * elements such as TEID and GTP version.
- * It is primarily intended for data communication of the UE.
- */
-#define GTPU_V4_FLOW 0x13      /* hash only */
-#define GTPU_V6_FLOW 0x14      /* hash only */
-
-/* Use for GTP-C IPv4 and v6.
- * The format of these GTP packets does not include TEID.
- * Primarily expected to be used for communication
- * to create sessions for UE data communication,
- * commonly referred to as CSR (Create Session Request).
- */
-#define GTPC_V4_FLOW 0x15      /* hash only */
-#define GTPC_V6_FLOW 0x16      /* hash only */
-
-/* Use for GTP-C IPv4 and v6.
- * Unlike GTPC_V4_FLOW, the format of these GTP packets includes TEID.
- * After session creation, it becomes this packet.
- * This is mainly used for requests to realize UE handover.
- */
-#define GTPC_TEID_V4_FLOW 0x17 /* hash only */
-#define GTPC_TEID_V6_FLOW 0x18 /* hash only */
-
-/* Use for GTP-U and extended headers for the PSC (PDU Session Container).
- * The format of these GTP packets includes TEID and QFI.
- * In 5G communication using UPF (User Plane Function),
- * data communication with this extended header is performed.
- */
-#define GTPU_EH_V4_FLOW 0x19   /* hash only */
-#define GTPU_EH_V6_FLOW 0x1a   /* hash only */
-
-/* Use for GTP-U IPv4 and v6 PSC (PDU Session Container) extended headers.
- * This differs from GTPU_EH_V(4|6)_FLOW in that it is distinguished by
- * UL/DL included in the PSC.
- * There are differences in the data included based on Downlink/Uplink,
- * and can be used to distinguish packets.
- * The functions described so far are useful when you want to
- * handle communication from the mobile network in UPF, PGW, etc.
- */
-#define GTPU_UL_V4_FLOW 0x1b   /* hash only */
-#define GTPU_UL_V6_FLOW 0x1c   /* hash only */
-#define GTPU_DL_V4_FLOW 0x1d   /* hash only */
-#define GTPU_DL_V6_FLOW 0x1e   /* hash only */
+enum {
+       /* L2-L4 network traffic flow types */
+       TCP_V4_FLOW     = 0x01, /* hash or spec (tcp_ip4_spec) */
+       UDP_V4_FLOW     = 0x02, /* hash or spec (udp_ip4_spec) */
+       SCTP_V4_FLOW    = 0x03, /* hash or spec (sctp_ip4_spec) */
+       AH_ESP_V4_FLOW  = 0x04, /* hash only */
+       TCP_V6_FLOW     = 0x05, /* hash or spec (tcp_ip6_spec; nfc only) */
+       UDP_V6_FLOW     = 0x06, /* hash or spec (udp_ip6_spec; nfc only) */
+       SCTP_V6_FLOW    = 0x07, /* hash or spec (sctp_ip6_spec; nfc only) */
+       AH_ESP_V6_FLOW  = 0x08, /* hash only */
+       AH_V4_FLOW      = 0x09, /* hash or spec (ah_ip4_spec) */
+       ESP_V4_FLOW     = 0x0a, /* hash or spec (esp_ip4_spec) */
+       AH_V6_FLOW      = 0x0b, /* hash or spec (ah_ip6_spec; nfc only) */
+       ESP_V6_FLOW     = 0x0c, /* hash or spec (esp_ip6_spec; nfc only) */
+       IPV4_USER_FLOW  = 0x0d, /* spec only (usr_ip4_spec) */
+       IP_USER_FLOW    = IPV4_USER_FLOW,
+       IPV6_USER_FLOW  = 0x0e, /* spec only (usr_ip6_spec; nfc only) */
+       IPV4_FLOW       = 0x10, /* hash only */
+       IPV6_FLOW       = 0x11, /* hash only */
+       ETHER_FLOW      = 0x12, /* hash or spec (ether_spec) */
+
+       /* Used for GTP-U IPv4 and IPv6.
+        * The format of GTP packets only includes
+        * elements such as TEID and GTP version.
+        * It is primarily intended for data communication of the UE.
+        */
+       GTPU_V4_FLOW    = 0x13, /* hash only */
+       GTPU_V6_FLOW    = 0x14, /* hash only */
+
+       /* Use for GTP-C IPv4 and v6.
+        * The format of these GTP packets does not include TEID.
+        * Primarily expected to be used for communication
+        * to create sessions for UE data communication,
+        * commonly referred to as CSR (Create Session Request).
+        */
+       GTPC_V4_FLOW    = 0x15, /* hash only */
+       GTPC_V6_FLOW    = 0x16, /* hash only */
+
+       /* Use for GTP-C IPv4 and v6.
+        * Unlike GTPC_V4_FLOW, the format of these GTP packets includes TEID.
+        * After session creation, it becomes this packet.
+        * This is mainly used for requests to realize UE handover.
+        */
+       GTPC_TEID_V4_FLOW       = 0x17, /* hash only */
+       GTPC_TEID_V6_FLOW       = 0x18, /* hash only */
+
+       /* Use for GTP-U and extended headers for the PSC (PDU Session Container).
+        * The format of these GTP packets includes TEID and QFI.
+        * In 5G communication using UPF (User Plane Function),
+        * data communication with this extended header is performed.
+        */
+       GTPU_EH_V4_FLOW = 0x19, /* hash only */
+       GTPU_EH_V6_FLOW = 0x1a, /* hash only */
+
+       /* Use for GTP-U IPv4 and v6 PSC (PDU Session Container) extended headers.
+        * This differs from GTPU_EH_V(4|6)_FLOW in that it is distinguished by
+        * UL/DL included in the PSC.
+        * There are differences in the data included based on Downlink/Uplink,
+        * and can be used to distinguish packets.
+        * The functions described so far are useful when you want to
+        * handle communication from the mobile network in UPF, PGW, etc.
+        */
+       GTPU_UL_V4_FLOW = 0x1b, /* hash only */
+       GTPU_UL_V6_FLOW = 0x1c, /* hash only */
+       GTPU_DL_V4_FLOW = 0x1d, /* hash only */
+       GTPU_DL_V6_FLOW = 0x1e, /* hash only */
+
+       __FLOW_TYPE_COUNT,
+};
 
 /* Flag to enable additional fields in struct ethtool_rx_flow_spec */
 #define        FLOW_EXT        0x80000000
@@ -2341,7 +2369,7 @@ static __inline__ int ethtool_validate_duplex(__u8 duplex)
 /* Flag to enable RSS spreading of traffic matching rule (nfc only) */
 #define        FLOW_RSS        0x20000000
 
-/* L3-L4 network traffic flow hash options */
+/* L2-L4 network traffic flow hash options */
 #define        RXH_L2DA        (1 << 1)
 #define        RXH_VLAN        (1 << 2)
 #define        RXH_L3_PROTO    (1 << 3)
index 00e9890ca3c0555c44aeffb8b7fd35c76bb0403f..2df6e4035d50b7388b4766ea8e1a7c71aa51a068 100644 (file)
@@ -70,6 +70,9 @@ enum {
        FRA_DSCP,       /* dscp */
        FRA_FLOWLABEL,  /* flowlabel */
        FRA_FLOWLABEL_MASK,     /* flowlabel mask */
+       FRA_SPORT_MASK, /* sport mask */
+       FRA_DPORT_MASK, /* dport mask */
+       FRA_DSCP_MASK,  /* dscp mask */
        __FRA_MAX
 };
 
index c206cf6d9a1edffa5df211d69f8ef4ff772c6078..bed5e0c11218d6cee7e7db441088fa7b9cdf302a 100644 (file)
@@ -699,10 +699,11 @@ struct br_mdb_entry {
 #define MDB_TEMPORARY 0
 #define MDB_PERMANENT 1
        __u8 state;
-#define MDB_FLAGS_OFFLOAD      (1 << 0)
-#define MDB_FLAGS_FAST_LEAVE   (1 << 1)
-#define MDB_FLAGS_STAR_EXCL    (1 << 2)
-#define MDB_FLAGS_BLOCKED      (1 << 3)
+#define MDB_FLAGS_OFFLOAD              (1 << 0)
+#define MDB_FLAGS_FAST_LEAVE           (1 << 1)
+#define MDB_FLAGS_STAR_EXCL            (1 << 2)
+#define MDB_FLAGS_BLOCKED              (1 << 3)
+#define MDB_FLAGS_OFFLOAD_FAILED       (1 << 4)
        __u8 flags;
        __u16 vid;
        struct {
@@ -830,6 +831,7 @@ enum br_boolopt_id {
        BR_BOOLOPT_NO_LL_LEARN,
        BR_BOOLOPT_MCAST_VLAN_SNOOPING,
        BR_BOOLOPT_MST_ENABLE,
+       BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION,
        BR_BOOLOPT_MAX
 };
 
index 79e97dd1fcdc8b803c0e0d080993a9dd3b5fdee2..b450757c8d1fd8f3eb6715a612d5aa22e381649d 100644 (file)
@@ -378,6 +378,7 @@ enum {
        IFLA_GRO_IPV4_MAX_SIZE,
        IFLA_DPLL_PIN,
        IFLA_MAX_PACING_OFFLOAD_HORIZON,
+       IFLA_NETNS_IMMUTABLE,
        __IFLA_MAX
 };
 
@@ -1395,6 +1396,7 @@ enum {
        IFLA_VXLAN_LOCALBYPASS,
        IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
        IFLA_VXLAN_RESERVED_BITS,
+       IFLA_VXLAN_MC_ROUTE,
        __IFLA_VXLAN_MAX
 };
 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -1436,6 +1438,7 @@ enum {
        IFLA_GENEVE_TTL_INHERIT,
        IFLA_GENEVE_DF,
        IFLA_GENEVE_INNER_PROTO_INHERIT,
+       IFLA_GENEVE_PORT_RANGE,
        __IFLA_GENEVE_MAX
 };
 #define IFLA_GENEVE_MAX        (__IFLA_GENEVE_MAX - 1)
@@ -1448,6 +1451,11 @@ enum ifla_geneve_df {
        GENEVE_DF_MAX = __GENEVE_DF_END - 1,
 };
 
+struct ifla_geneve_port_range {
+       __be16 low;
+       __be16 high;
+};
+
 /* Bareudp section  */
 enum {
        IFLA_BAREUDP_UNSPEC,
@@ -1525,6 +1533,7 @@ enum {
        IFLA_BOND_MISSED_MAX,
        IFLA_BOND_NS_IP6_TARGET,
        IFLA_BOND_COUPLED_CONTROL,
+       IFLA_BOND_BROADCAST_NEIGH,
        __IFLA_BOND_MAX,
 };
 
@@ -1977,4 +1986,19 @@ enum {
 
 #define IFLA_DSA_MAX   (__IFLA_DSA_MAX - 1)
 
+/* OVPN section */
+
+enum ovpn_mode {
+       OVPN_MODE_P2P,
+       OVPN_MODE_MP,
+};
+
+enum {
+       IFLA_OVPN_UNSPEC,
+       IFLA_OVPN_MODE,
+       __IFLA_OVPN_MAX,
+};
+
+#define IFLA_OVPN_MAX  (__IFLA_OVPN_MAX - 1)
+
 #endif /* _LINUX_IF_LINK_H */
index 8a6d5d41b824578991b05f5dcb38cbc000267143..fa0d4dc0c43bfcd56b7f386136c588cdaa0ace96 100644 (file)
 #define TUN_F_USO4     0x20    /* I can handle USO for IPv4 packets */
 #define TUN_F_USO6     0x40    /* I can handle USO for IPv6 packets */
 
+/* I can handle TSO/USO for UDP tunneled packets */
+#define TUN_F_UDP_TUNNEL_GSO           0x080
+
+/*
+ * I can handle TSO/USO for UDP tunneled packets requiring csum offload for
+ * the outer header
+ */
+#define TUN_F_UDP_TUNNEL_GSO_CSUM      0x100
+
 /* Protocol info prepended to the packets (when IFF_NO_PI is not set) */
 #define TUN_PKT_STRIP  0x0001
 struct tun_pi {
index 776fb41c50e40294d7d6a5656fdb99a8b34bcd3e..671301569a7ec9ab4ee96f0338fe05b84609f92a 100644 (file)
@@ -152,7 +152,6 @@ struct in6_flowlabel_req {
 /*
  *     IPV6 socket options
  */
-#if __UAPI_DEF_IPV6_OPTIONS
 #define IPV6_ADDRFORM          1
 #define IPV6_2292PKTINFO       2
 #define IPV6_2292HOPOPTS       3
@@ -169,8 +168,10 @@ struct in6_flowlabel_req {
 #define IPV6_MULTICAST_IF      17
 #define IPV6_MULTICAST_HOPS    18
 #define IPV6_MULTICAST_LOOP    19
+#if __UAPI_DEF_IPV6_OPTIONS
 #define IPV6_ADD_MEMBERSHIP    20
 #define IPV6_DROP_MEMBERSHIP   21
+#endif
 #define IPV6_ROUTER_ALERT      22
 #define IPV6_MTU_DISCOVER      23
 #define IPV6_MTU               24
@@ -203,7 +204,6 @@ struct in6_flowlabel_req {
 #define IPV6_IPSEC_POLICY      34
 #define IPV6_XFRM_POLICY       35
 #define IPV6_HDRINCL           36
-#endif
 
 /*
  * Multicast:
index 7cd934c799308e4caa919b6c5e6f351379b43ea7..90295adc64c59d6aaf1977927460ffee3c2e1863 100644 (file)
 #define BTN_DPAD_LEFT          0x222
 #define BTN_DPAD_RIGHT         0x223
 
+#define BTN_GRIPL              0x224
+#define BTN_GRIPR              0x225
+#define BTN_GRIPL2             0x226
+#define BTN_GRIPR2             0x227
+
 #define KEY_ALS_TOGGLE         0x230   /* Ambient light sensor */
 #define KEY_ROTATE_LOCK_TOGGLE 0x231   /* Display rotation lock */
 #define KEY_REFRESH_RATE_TOGGLE        0x232   /* Display refresh rate toggle */
 #define KEY_KBD_LCD_MENU4              0x2bb
 #define KEY_KBD_LCD_MENU5              0x2bc
 
+/* Performance Boost key (Alienware)/G-Mode key (Dell) */
+#define KEY_PERFORMANCE                        0x2bd
+
 #define BTN_TRIGGER_HAPPY              0x2c0
 #define BTN_TRIGGER_HAPPY1             0x2c0
 #define BTN_TRIGGER_HAPPY2             0x2c1
 #define SW_MUTE_DEVICE         0x0e  /* set = device disabled */
 #define SW_PEN_INSERTED                0x0f  /* set = pen inserted */
 #define SW_MACHINE_COVER       0x10  /* set = cover closed */
-#define SW_MAX                 0x10
+#define SW_USB_INSERT          0x11  /* set = USB audio device connected */
+#define SW_MAX                 0x11
 #define SW_CNT                 (SW_MAX+1)
 
 /*
index 7f37e6e40ac954543eb483c0df8e115823d4d313..23b8047f7bb1686d597616163f2c62e02a62e858 100644 (file)
@@ -273,6 +273,7 @@ struct input_mask {
 #define BUS_CEC                        0x1E
 #define BUS_INTEL_ISHTP                0x1F
 #define BUS_AMD_SFH            0x20
+#define BUS_SDW                        0x21
 
 /*
  * MT_TOOL types
index 4724bbb2b7993176c9a6c42969e2c65117539849..11aaa040fe51888be1816658975b85e2909d25a9 100644 (file)
@@ -199,6 +199,7 @@ enum {
        DEVCONF_NDISC_EVICT_NOCARRIER,
        DEVCONF_ACCEPT_UNTRACKED_NA,
        DEVCONF_ACCEPT_RA_MIN_LFT,
+       DEVCONF_FORCE_FORWARDING,
        DEVCONF_MAX
 };
 
index 5e67a7eaf4a7e9ba4ac1f080a74f67c5fca27da2..1401f5730a001d859efa0251e6e7af2979a11c60 100644 (file)
@@ -54,6 +54,7 @@ enum {
 /* Extended flags under NDA_FLAGS_EXT: */
 #define NTF_EXT_MANAGED                (1 << 0)
 #define NTF_EXT_LOCKED         (1 << 1)
+#define NTF_EXT_EXT_VALIDATED  (1 << 2)
 
 /*
  *     Neighbor Cache Entry States.
@@ -92,6 +93,10 @@ enum {
  * bridge in response to a host trying to communicate via a locked bridge port
  * with MAB enabled. Their purpose is to notify user space that a host requires
  * authentication.
+ *
+ * NTF_EXT_EXT_VALIDATED flagged neighbor entries were externally validated by
+ * a user space control plane. The kernel will not remove or invalidate them,
+ * but it can probe them and notify user space when they become reachable.
  */
 
 struct nda_cacheinfo {
index 49c944e78463f3039c59848af4b1599125956485..2beb30be2c5f8e7452cb270daf3a3213abe4c2cf 100644 (file)
@@ -394,6 +394,8 @@ enum nft_set_field_attributes {
  * @NFTA_SET_HANDLE: set handle (NLA_U64)
  * @NFTA_SET_EXPR: set expression (NLA_NESTED: nft_expr_attributes)
  * @NFTA_SET_EXPRESSIONS: list of expressions (NLA_NESTED: nft_list_attributes)
+ * @NFTA_SET_TYPE: set backend type (NLA_STRING)
+ * @NFTA_SET_COUNT: number of set elements (NLA_U32)
  */
 enum nft_set_attributes {
        NFTA_SET_UNSPEC,
@@ -415,6 +417,8 @@ enum nft_set_attributes {
        NFTA_SET_HANDLE,
        NFTA_SET_EXPR,
        NFTA_SET_EXPRESSIONS,
+       NFTA_SET_TYPE,
+       NFTA_SET_COUNT,
        __NFTA_SET_MAX
 };
 #define NFTA_SET_MAX           (__NFTA_SET_MAX - 1)
@@ -1837,6 +1841,10 @@ enum nft_xfrm_keys {
  * @NFTA_TRACE_MARK: nfmark (NLA_U32)
  * @NFTA_TRACE_NFPROTO: nf protocol processed (NLA_U32)
  * @NFTA_TRACE_POLICY: policy that decided fate of packet (NLA_U32)
+ * @NFTA_TRACE_CT_ID: conntrack id (NLA_U32)
+ * @NFTA_TRACE_CT_DIRECTION: packets direction (NLA_U8)
+ * @NFTA_TRACE_CT_STATUS: conntrack status (NLA_U32)
+ * @NFTA_TRACE_CT_STATE: packet state (new, established, ...) (NLA_U32)
  */
 enum nft_trace_attributes {
        NFTA_TRACE_UNSPEC,
@@ -1857,6 +1865,10 @@ enum nft_trace_attributes {
        NFTA_TRACE_NFPROTO,
        NFTA_TRACE_POLICY,
        NFTA_TRACE_PAD,
+       NFTA_TRACE_CT_ID,
+       NFTA_TRACE_CT_DIRECTION,
+       NFTA_TRACE_CT_STATUS,
+       NFTA_TRACE_CT_STATE,
        __NFTA_TRACE_MAX
 };
 #define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
index f6c1b181c886d23089c8a7a48ffb3c3fe6d63275..d1a14f2892d9ee4d3077ad73e90f729bf70c7c53 100644 (file)
@@ -11,7 +11,7 @@
  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
  * Copyright 2008 Colin McCabe <colin@cozybit.com>
  * Copyright 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2024 Intel Corporation
+ * Copyright (C) 2018-2025 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  *      TID to Link mapping for downlink/uplink traffic.
  *
  * @NL80211_CMD_ASSOC_MLO_RECONF: For a non-AP MLD station, request to
- *      add/remove links to/from the association.
+ *      add/remove links to/from the association. To indicate link
+ *      reconfiguration request results from the driver, this command is also
+ *      used as an event to notify userspace about the added links information.
+ *      For notifying the removed links information, the existing
+ *      %NL80211_CMD_LINKS_REMOVED command is used. This command is also used to
+ *      notify userspace about newly added links for the current connection in
+ *      case of AP-initiated link recommendation requests, received via
+ *      a BTM (BSS Transition Management) request or a link reconfig notify
+ *      frame, where the driver handles the link recommendation offload.
  *
  * @NL80211_CMD_EPCS_CFG: EPCS configuration for a station. Used by userland to
  *     control EPCS configuration. Used to notify userland on the current state
@@ -2881,9 +2889,9 @@ enum nl80211_commands {
  * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
  *     A value of 0 means all radios.
  *
- * @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of
- *     supported selectors as defined by IEEE 802.11 7.3.2.2 but without the
- *     length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
+ * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array
+ *     of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but
+ *     without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
  *     This can be used to provide a list of selectors that are implemented
  *     by the supplicant. If not given, support for SAE_H2E is assumed.
  *
@@ -2893,6 +2901,33 @@ enum nl80211_commands {
  * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a
  *     station interface.
  *
+ * @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and
+ *     operations that userspace implements to use during association/ML
+ *     link reconfig, currently only "BTM MLD Recommendation For Multiple
+ *     APs Support". Drivers may set additional flags that they support
+ *     in the kernel or device.
+ *
+ * @NL80211_ATTR_WIPHY_RADIO_INDEX: (int) Integer attribute denoting the index
+ *     of the radio in interest. Internally a value of -1 is used to
+ *     indicate that the radio id is not given in user-space. This means
+ *     that all the attributes are applicable to all the radios. If there is
+ *     a radio index provided in user-space, the attributes will be
+ *     applicable to that specific radio only. If the radio id is greater
+ *     thank the number of radios, error denoting invalid value is returned.
+ *
+ * @NL80211_ATTR_S1G_LONG_BEACON_PERIOD: (u8) Integer attribute that represents
+ *     the number of beacon intervals between each long beacon transmission
+ *     for an S1G BSS with short beaconing enabled. This is a required
+ *     attribute for initialising an S1G short beaconing BSS. When updating
+ *     the short beacon data, this is not required. It has a minimum value of
+ *     2 (i.e 2 beacon intervals).
+ *
+ * @NL80211_ATTR_S1G_SHORT_BEACON: Nested attribute containing the short beacon
+ *     head and tail used to set or update the short beacon templates. When
+ *     bringing up a new interface, %NL80211_ATTR_S1G_LONG_BEACON_PERIOD is
+ *     required alongside this attribute. Refer to
+ *     @enum nl80211_s1g_short_beacon_attrs for the attribute definitions.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3448,6 +3483,13 @@ enum nl80211_attrs {
        NL80211_ATTR_MLO_RECONF_REM_LINKS,
        NL80211_ATTR_EPCS,
 
+       NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
+
+       NL80211_ATTR_WIPHY_RADIO_INDEX,
+
+       NL80211_ATTR_S1G_LONG_BEACON_PERIOD,
+       NL80211_ATTR_S1G_SHORT_BEACON,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -4327,6 +4369,8 @@ enum nl80211_wmm_rule {
  *     otherwise completely disabled.
  * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
  *     very low power (VLP) AP, despite being NO_IR.
+ * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
+ *     20 MHz bandwidth, despite being NO_IR.
  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
  *     currently defined
  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4371,6 +4415,7 @@ enum nl80211_frequency_attr {
        NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
        NL80211_FREQUENCY_ATTR_CAN_MONITOR,
        NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
+       NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
 
        /* keep last */
        __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4582,31 +4627,34 @@ enum nl80211_sched_scan_match_attr {
  * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
  * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
  *     despite NO_IR configuration.
+ * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
+ *     despite NO_IR configuration.
  */
 enum nl80211_reg_rule_flags {
-       NL80211_RRF_NO_OFDM             = 1<<0,
-       NL80211_RRF_NO_CCK              = 1<<1,
-       NL80211_RRF_NO_INDOOR           = 1<<2,
-       NL80211_RRF_NO_OUTDOOR          = 1<<3,
-       NL80211_RRF_DFS                 = 1<<4,
-       NL80211_RRF_PTP_ONLY            = 1<<5,
-       NL80211_RRF_PTMP_ONLY           = 1<<6,
-       NL80211_RRF_NO_IR               = 1<<7,
-       __NL80211_RRF_NO_IBSS           = 1<<8,
-       NL80211_RRF_AUTO_BW             = 1<<11,
-       NL80211_RRF_IR_CONCURRENT       = 1<<12,
-       NL80211_RRF_NO_HT40MINUS        = 1<<13,
-       NL80211_RRF_NO_HT40PLUS         = 1<<14,
-       NL80211_RRF_NO_80MHZ            = 1<<15,
-       NL80211_RRF_NO_160MHZ           = 1<<16,
-       NL80211_RRF_NO_HE               = 1<<17,
-       NL80211_RRF_NO_320MHZ           = 1<<18,
-       NL80211_RRF_NO_EHT              = 1<<19,
-       NL80211_RRF_PSD                 = 1<<20,
-       NL80211_RRF_DFS_CONCURRENT      = 1<<21,
-       NL80211_RRF_NO_6GHZ_VLP_CLIENT  = 1<<22,
-       NL80211_RRF_NO_6GHZ_AFC_CLIENT  = 1<<23,
-       NL80211_RRF_ALLOW_6GHZ_VLP_AP   = 1<<24,
+       NL80211_RRF_NO_OFDM                 = 1 << 0,
+       NL80211_RRF_NO_CCK                  = 1 << 1,
+       NL80211_RRF_NO_INDOOR               = 1 << 2,
+       NL80211_RRF_NO_OUTDOOR              = 1 << 3,
+       NL80211_RRF_DFS                     = 1 << 4,
+       NL80211_RRF_PTP_ONLY                = 1 << 5,
+       NL80211_RRF_PTMP_ONLY               = 1 << 6,
+       NL80211_RRF_NO_IR                   = 1 << 7,
+       __NL80211_RRF_NO_IBSS               = 1 << 8,
+       NL80211_RRF_AUTO_BW                 = 1 << 11,
+       NL80211_RRF_IR_CONCURRENT           = 1 << 12,
+       NL80211_RRF_NO_HT40MINUS            = 1 << 13,
+       NL80211_RRF_NO_HT40PLUS             = 1 << 14,
+       NL80211_RRF_NO_80MHZ                = 1 << 15,
+       NL80211_RRF_NO_160MHZ               = 1 << 16,
+       NL80211_RRF_NO_HE                   = 1 << 17,
+       NL80211_RRF_NO_320MHZ               = 1 << 18,
+       NL80211_RRF_NO_EHT                  = 1 << 19,
+       NL80211_RRF_PSD                     = 1 << 20,
+       NL80211_RRF_DFS_CONCURRENT          = 1 << 21,
+       NL80211_RRF_NO_6GHZ_VLP_CLIENT      = 1 << 22,
+       NL80211_RRF_NO_6GHZ_AFC_CLIENT      = 1 << 23,
+       NL80211_RRF_ALLOW_6GHZ_VLP_AP       = 1 << 24,
+       NL80211_RRF_ALLOW_20MHZ_ACTIVITY    = 1 << 25,
 };
 
 #define NL80211_RRF_PASSIVE_SCAN       NL80211_RRF_NO_IR
@@ -4727,8 +4775,8 @@ enum nl80211_survey_info {
  * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
  * @NL80211_MNTR_FLAG_CONTROL: pass control frames
  * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
- * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
- *     overrides all other flags.
+ * @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated
+ *     will unconditionally be refused
  * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
  *     and ACK incoming unicast packets.
  * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
@@ -8022,6 +8070,11 @@ enum nl80211_sar_specs_attrs {
  *     Setting this flag is permitted only if the driver advertises EMA support
  *     by setting wiphy->ema_max_profile_periodicity to non-zero.
  *
+ * @NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID: Link ID of the transmitted profile.
+ *     This parameter is mandatory when NL80211_ATTR_MBSSID_CONFIG attributes
+ *     are sent for a non-transmitted profile and if the transmitted profile
+ *     is part of an MLD. For all other cases this parameter is unnecessary.
+ *
  * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
  * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
  */
@@ -8033,6 +8086,7 @@ enum nl80211_mbssid_config_attributes {
        NL80211_MBSSID_CONFIG_ATTR_INDEX,
        NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
        NL80211_MBSSID_CONFIG_ATTR_EMA,
+       NL80211_MBSSID_CONFIG_ATTR_TX_LINK_ID,
 
        /* keep last */
        __NL80211_MBSSID_CONFIG_ATTR_LAST,
@@ -8068,6 +8122,7 @@ enum nl80211_ap_settings_flags {
  *     and contains attributes defined in &enum nl80211_if_combination_attrs.
  * @NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK: bitmask (u32) of antennas
  *     connected to this radio.
+ * @NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD: RTS threshold (u32) of this radio.
  *
  * @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal
  * @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute
@@ -8079,6 +8134,7 @@ enum nl80211_wiphy_radio_attrs {
        NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE,
        NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION,
        NL80211_WIPHY_RADIO_ATTR_ANTENNA_MASK,
+       NL80211_WIPHY_RADIO_ATTR_RTS_THRESHOLD,
 
        /* keep last */
        __NL80211_WIPHY_RADIO_ATTR_LAST,
@@ -8108,4 +8164,27 @@ enum nl80211_wiphy_radio_freq_range {
        NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1,
 };
 
+/**
+ * enum nl80211_s1g_short_beacon_attrs - S1G short beacon data
+ *
+ * @__NL80211_S1G_SHORT_BEACON_ATTR_INVALID: Invalid
+ *
+ * @NL80211_S1G_SHORT_BEACON_ATTR_HEAD: Short beacon head (binary).
+ * @NL80211_S1G_SHORT_BEACON_ATTR_TAIL: Short beacon tail (binary).
+ *
+ * @__NL80211_S1G_SHORT_BEACON_ATTR_LAST: Internal
+ * @NL80211_S1G_SHORT_BEACON_ATTR_MAX: Highest attribute
+ */
+enum nl80211_s1g_short_beacon_attrs {
+       __NL80211_S1G_SHORT_BEACON_ATTR_INVALID,
+
+       NL80211_S1G_SHORT_BEACON_ATTR_HEAD,
+       NL80211_S1G_SHORT_BEACON_ATTR_TAIL,
+
+       /* keep last */
+       __NL80211_S1G_SHORT_BEACON_ATTR_LAST,
+       NL80211_S1G_SHORT_BEACON_ATTR_MAX =
+               __NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1
+};
+
 #endif /* __LINUX_NL80211_H */
index 25a9a47001cdde59cf052ea658ba1ac26f4c34e8..15d1a37ac6d8ff72e97921c41beaee87337286fb 100644 (file)
@@ -1182,6 +1182,7 @@ enum {
        TCA_TAPRIO_ATTR_SCHED_SINGLE_ENTRY, /* single entry */
        TCA_TAPRIO_ATTR_SCHED_CLOCKID, /* s32 */
        TCA_TAPRIO_PAD,
+       TCA_TAPRIO_ATTR_PAD = TCA_TAPRIO_PAD,
        TCA_TAPRIO_ATTR_ADMIN_SCHED, /* The admin sched, only used in dump */
        TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
        TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
@@ -1210,4 +1211,72 @@ enum {
 
 #define TCA_ETS_MAX (__TCA_ETS_MAX - 1)
 
+/* DUALPI2 */
+enum tc_dualpi2_drop_overload {
+       TC_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
+       TC_DUALPI2_DROP_OVERLOAD_DROP = 1,
+       __TCA_DUALPI2_DROP_OVERLOAD_MAX,
+};
+#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
+
+enum tc_dualpi2_drop_early {
+       TC_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
+       TC_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
+       __TCA_DUALPI2_DROP_EARLY_MAX,
+};
+#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
+
+enum tc_dualpi2_ecn_mask {
+       TC_DUALPI2_ECN_MASK_L4S_ECT = 1,
+       TC_DUALPI2_ECN_MASK_CLA_ECT = 2,
+       TC_DUALPI2_ECN_MASK_ANY_ECT = 3,
+       __TCA_DUALPI2_ECN_MASK_MAX,
+};
+#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
+
+enum tc_dualpi2_split_gso {
+       TC_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
+       TC_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
+       __TCA_DUALPI2_SPLIT_GSO_MAX,
+};
+#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
+
+enum {
+       TCA_DUALPI2_UNSPEC,
+       TCA_DUALPI2_LIMIT,              /* Packets */
+       TCA_DUALPI2_MEMORY_LIMIT,       /* Bytes */
+       TCA_DUALPI2_TARGET,             /* us */
+       TCA_DUALPI2_TUPDATE,            /* us */
+       TCA_DUALPI2_ALPHA,              /* Hz scaled up by 256 */
+       TCA_DUALPI2_BETA,               /* Hz scaled up by 256 */
+       TCA_DUALPI2_STEP_THRESH_PKTS,   /* Step threshold in packets */
+       TCA_DUALPI2_STEP_THRESH_US,     /* Step threshold in microseconds */
+       TCA_DUALPI2_MIN_QLEN_STEP,      /* Minimum qlen to apply STEP_THRESH */
+       TCA_DUALPI2_COUPLING,           /* Coupling factor between queues */
+       TCA_DUALPI2_DROP_OVERLOAD,      /* Whether to drop on overload */
+       TCA_DUALPI2_DROP_EARLY,         /* Whether to drop on enqueue */
+       TCA_DUALPI2_C_PROTECTION,       /* Percentage */
+       TCA_DUALPI2_ECN_MASK,           /* L4S queue classification mask */
+       TCA_DUALPI2_SPLIT_GSO,          /* Split GSO packets at enqueue */
+       TCA_DUALPI2_PAD,
+       __TCA_DUALPI2_MAX
+};
+
+#define TCA_DUALPI2_MAX   (__TCA_DUALPI2_MAX - 1)
+
+struct tc_dualpi2_xstats {
+       __u32 prob;             /* current probability */
+       __u32 delay_c;          /* current delay in C queue */
+       __u32 delay_l;          /* current delay in L queue */
+       __u32 packets_in_c;     /* number of packets enqueued in C queue */
+       __u32 packets_in_l;     /* number of packets enqueued in L queue */
+       __u32 maxq;             /* maximum queue size */
+       __u32 ecn_mark;         /* packets marked with ecn*/
+       __u32 step_marks;       /* ECN marks due to the step AQM */
+       __s32 credit;           /* current c_protection credit */
+       __u32 memory_used;      /* Memory used by both queues */
+       __u32 max_memory_used;  /* Maximum used memory */
+       __u32 memory_limit;     /* Memory limit of both queues */
+};
+
 #endif
index 6c652145d8e704bbf2d144482b7d5ad827fb9545..085bb13970307852ae754e7a4ac27d7ca3fecd7b 100644 (file)
@@ -307,6 +307,7 @@ enum {
 #define RTPROT_MROUTED         17      /* Multicast daemon */
 #define RTPROT_KEEPALIVED      18      /* Keepalived daemon */
 #define RTPROT_BABEL           42      /* Babel daemon */
+#define RTPROT_OVN             84      /* OVN daemon */
 #define RTPROT_OPENR           99      /* Open Routing (Open/R) Routes */
 #define RTPROT_BGP             186     /* BGP Routes */
 #define RTPROT_ISIS            187     /* ISIS Routes */
index e1416f793738f56beb5b47447f1c422eb103da72..e1fcfcf3b33261939797d79f4e29a28fa1da6e10 100644 (file)
@@ -70,4 +70,6 @@
 #define __counted_by_be(m)
 #endif
 
+#define __kernel_nonstring
+
 #endif /* _LINUX_STDDEF_H */
index aa3ec6516c7843f9a87237339e330044a7de2341..e401160e5000aadf1e1a126d142d30c05a94bef4 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef _VM_SOCKETS_H
 #define _VM_SOCKETS_H
 
+#include <sys/socket.h>        /* for struct sockaddr and sa_family_t */
+
 #include <linux/socket.h>
 #include <linux/types.h>
 
index ae88be14c9478e2f8539e2ec5abe81ff87dcce5f..8c26391196d50fbbd32e1a2c2b335ad51d360872 100644 (file)
  *                    WGALLOWEDIP_A_FAMILY: NLA_U16
  *                    WGALLOWEDIP_A_IPADDR: struct in_addr or struct in6_addr
  *                    WGALLOWEDIP_A_CIDR_MASK: NLA_U8
+ *                    WGALLOWEDIP_A_FLAGS: NLA_U32, WGALLOWEDIP_F_REMOVE_ME if
+ *                                         the specified IP should be removed;
+ *                                         otherwise, this IP will be added if
+ *                                         it is not already present.
  *                0: NLA_NESTED
  *                    ...
  *                0: NLA_NESTED
@@ -184,11 +188,16 @@ enum wgpeer_attribute {
 };
 #define WGPEER_A_MAX (__WGPEER_A_LAST - 1)
 
+enum wgallowedip_flag {
+       WGALLOWEDIP_F_REMOVE_ME = 1U << 0,
+       __WGALLOWEDIP_F_ALL = WGALLOWEDIP_F_REMOVE_ME
+};
 enum wgallowedip_attribute {
        WGALLOWEDIP_A_UNSPEC,
        WGALLOWEDIP_A_FAMILY,
        WGALLOWEDIP_A_IPADDR,
        WGALLOWEDIP_A_CIDR_MASK,
+       WGALLOWEDIP_A_FLAGS,
        __WGALLOWEDIP_A_LAST
 };
 #define WGALLOWEDIP_A_MAX (__WGALLOWEDIP_A_LAST - 1)