]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic/linux: update linux headers from v5.16-rc6
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 24 Dec 2021 02:14:54 +0000 (11:14 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 25 Dec 2021 06:34:02 +0000 (15:34 +0900)
src/basic/linux/btrfs.h
src/basic/linux/btrfs_tree.h
src/basic/linux/can/netlink.h
src/basic/linux/if_bridge.h
src/basic/linux/if_ether.h
src/basic/linux/if_link.h
src/basic/linux/in.h
src/basic/linux/in6.h
src/basic/linux/netfilter/nf_tables.h
src/basic/linux/nl80211.h
src/basic/linux/pkt_sched.h

index 0f8306fdea645c49805990fcd757d4053957fd91..66cfd7b9477316535ac234a17d6583729b2a156d 100644 (file)
@@ -288,6 +288,7 @@ struct btrfs_ioctl_fs_info_args {
  * first mount when booting older kernel versions.
  */
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID  (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY                 (1ULL << 2)
 
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF   (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL  (1ULL << 1)
@@ -770,10 +771,16 @@ struct btrfs_ioctl_received_subvol_args {
  */
 #define BTRFS_SEND_FLAG_OMIT_END_CMD           0x4
 
+/*
+ * Read the protocol version in the structure
+ */
+#define BTRFS_SEND_FLAG_VERSION                        0x8
+
 #define BTRFS_SEND_FLAG_MASK \
        (BTRFS_SEND_FLAG_NO_FILE_DATA | \
         BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | \
-        BTRFS_SEND_FLAG_OMIT_END_CMD)
+        BTRFS_SEND_FLAG_OMIT_END_CMD | \
+        BTRFS_SEND_FLAG_VERSION)
 
 struct btrfs_ioctl_send_args {
        __s64 send_fd;                  /* in */
@@ -781,7 +788,8 @@ struct btrfs_ioctl_send_args {
        __u64 *clone_sources;   /* in */
        __u64 parent_root;              /* in */
        __u64 flags;                    /* in */
-       __u64 reserved[4];              /* in */
+       __u32 version;                  /* in */
+       __u8  reserved[28];             /* in */
 };
 
 /*
index ccdb40fe40dc254e120e86007b586cee548c2735..e1c4c732aabac20140cfb2924745b9a67448966c 100644 (file)
 #define BTRFS_INODE_REF_KEY            12
 #define BTRFS_INODE_EXTREF_KEY         13
 #define BTRFS_XATTR_ITEM_KEY           24
+
+/*
+ * fs verity items are stored under two different key types on disk.
+ * The descriptor items:
+ * [ inode objectid, BTRFS_VERITY_DESC_ITEM_KEY, offset ]
+ *
+ * At offset 0, we store a btrfs_verity_descriptor_item which tracks the size
+ * of the descriptor item and some extra data for encryption.
+ * Starting at offset 1, these hold the generic fs verity descriptor.  The
+ * latter are opaque to btrfs, we just read and write them as a blob for the
+ * higher level verity code.  The most common descriptor size is 256 bytes.
+ *
+ * The merkle tree items:
+ * [ inode objectid, BTRFS_VERITY_MERKLE_ITEM_KEY, offset ]
+ *
+ * These also start at offset 0, and correspond to the merkle tree bytes.  When
+ * fsverity asks for page 0 of the merkle tree, we pull up one page starting at
+ * offset 0 for this key type.  These are also opaque to btrfs, we're blindly
+ * storing whatever fsverity sends down.
+ */
+#define BTRFS_VERITY_DESC_ITEM_KEY     36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY   37
+
 #define BTRFS_ORPHAN_ITEM_KEY          48
 /* reserve 2-15 close to the inode for later flexibility */
 
@@ -991,4 +1014,16 @@ struct btrfs_qgroup_limit_item {
        __le64 rsv_excl;
 } __attribute__ ((__packed__));
 
+struct btrfs_verity_descriptor_item {
+       /* Size of the verity descriptor in bytes */
+       __le64 size;
+       /*
+        * When we implement support for fscrypt, we will need to encrypt the
+        * Merkle tree for encrypted verity files. These 128 bits are for the
+        * eventual storage of an fscrypt initialization vector.
+        */
+       __le64 reserved[2];
+       __u8 encryption;
+} __attribute__ ((__packed__));
+
 #endif /* _BTRFS_CTREE_H_ */
index f730d443b91846a3692b0fe7e68eb31b00ef75e5..75b85c60efb21f44d1460b195fb745d6a9e0a6fd 100644 (file)
@@ -101,6 +101,8 @@ struct can_ctrlmode {
 #define CAN_CTRLMODE_PRESUME_ACK       0x40    /* Ignore missing CAN ACKs */
 #define CAN_CTRLMODE_FD_NON_ISO                0x80    /* CAN FD in non-ISO mode */
 #define CAN_CTRLMODE_CC_LEN8_DLC       0x100   /* Classic CAN DLC option */
+#define CAN_CTRLMODE_TDC_AUTO          0x200   /* CAN transiver automatically calculates TDCV */
+#define CAN_CTRLMODE_TDC_MANUAL                0x400   /* TDCV is manually set up by user */
 
 /*
  * CAN device statistics
@@ -134,10 +136,35 @@ enum {
        IFLA_CAN_BITRATE_CONST,
        IFLA_CAN_DATA_BITRATE_CONST,
        IFLA_CAN_BITRATE_MAX,
-       __IFLA_CAN_MAX
+       IFLA_CAN_TDC,
+
+       /* add new constants above here */
+       __IFLA_CAN_MAX,
+       IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
 
-#define IFLA_CAN_MAX   (__IFLA_CAN_MAX - 1)
+/*
+ * CAN FD Transmitter Delay Compensation (TDC)
+ *
+ * Please refer to struct can_tdc_const and can_tdc in
+ * include/linux/can/bittiming.h for further details.
+ */
+enum {
+       IFLA_CAN_TDC_UNSPEC,
+       IFLA_CAN_TDC_TDCV_MIN,  /* u32 */
+       IFLA_CAN_TDC_TDCV_MAX,  /* u32 */
+       IFLA_CAN_TDC_TDCO_MIN,  /* u32 */
+       IFLA_CAN_TDC_TDCO_MAX,  /* u32 */
+       IFLA_CAN_TDC_TDCF_MIN,  /* u32 */
+       IFLA_CAN_TDC_TDCF_MAX,  /* u32 */
+       IFLA_CAN_TDC_TDCV,      /* u32 */
+       IFLA_CAN_TDC_TDCO,      /* u32 */
+       IFLA_CAN_TDC_TDCF,      /* u32 */
+
+       /* add new constants above here */
+       __IFLA_CAN_TDC,
+       IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
 
 /* u16 termination range: 1..65535 Ohms */
 #define CAN_TERMINATION_DISABLED 0
index 6b56a7549531c42da3e9884958ac664cdcf75638..2711c3522010db9eaf7b4f3586f1f3ac3af18c04 100644 (file)
@@ -479,16 +479,22 @@ enum {
 
 /* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
 #define BRIDGE_VLANDB_DUMPF_STATS      (1 << 0) /* Include stats in the dump */
+#define BRIDGE_VLANDB_DUMPF_GLOBAL     (1 << 1) /* Dump global vlan options only */
 
 /* Bridge vlan RTM attributes
  * [BRIDGE_VLANDB_ENTRY] = {
  *     [BRIDGE_VLANDB_ENTRY_INFO]
  *     ...
  * }
+ * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = {
+ *     [BRIDGE_VLANDB_GOPTS_ID]
+ *     ...
+ * }
  */
 enum {
        BRIDGE_VLANDB_UNSPEC,
        BRIDGE_VLANDB_ENTRY,
+       BRIDGE_VLANDB_GLOBAL_OPTIONS,
        __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -500,6 +506,7 @@ enum {
        BRIDGE_VLANDB_ENTRY_STATE,
        BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
        BRIDGE_VLANDB_ENTRY_STATS,
+       BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
        __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -538,6 +545,29 @@ enum {
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 
+enum {
+       BRIDGE_VLANDB_GOPTS_UNSPEC,
+       BRIDGE_VLANDB_GOPTS_ID,
+       BRIDGE_VLANDB_GOPTS_RANGE,
+       BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+       BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+       BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+       BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+       BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+       BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+       BRIDGE_VLANDB_GOPTS_PAD,
+       BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+       BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+       BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+       BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+       BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+       BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+       BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+       BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+       __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+
 /* Bridge multicast database attributes
  * [MDBA_MDB] = {
  *     [MDBA_MDB_ENTRY] = {
@@ -629,6 +659,7 @@ enum {
        MDBA_ROUTER_PATTR_TYPE,
        MDBA_ROUTER_PATTR_INET_TIMER,
        MDBA_ROUTER_PATTR_INET6_TIMER,
+       MDBA_ROUTER_PATTR_VID,
        __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -720,12 +751,14 @@ struct br_mcast_stats {
 
 /* bridge boolean options
  * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
+ * BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping
  *
  * IMPORTANT: if adding a new option do not forget to handle
  *            it in br_boolopt_toggle/get and bridge sysfs
  */
 enum br_boolopt_id {
        BR_BOOLOPT_NO_LL_LEARN,
+       BR_BOOLOPT_MCAST_VLAN_SNOOPING,
        BR_BOOLOPT_MAX
 };
 
@@ -738,4 +771,17 @@ struct br_boolopt_multi {
        __u32 optval;
        __u32 optmask;
 };
+
+enum {
+       BRIDGE_QUERIER_UNSPEC,
+       BRIDGE_QUERIER_IP_ADDRESS,
+       BRIDGE_QUERIER_IP_PORT,
+       BRIDGE_QUERIER_IP_OTHER_TIMER,
+       BRIDGE_QUERIER_PAD,
+       BRIDGE_QUERIER_IPV6_ADDRESS,
+       BRIDGE_QUERIER_IPV6_PORT,
+       BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+       __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif /* _UAPI_LINUX_IF_BRIDGE_H */
index a0b637911d3cf97fa9c0785d20b31ab00bffc372..c0c2f3ed57298e2fe843b99c02d0714fa12da1ec 100644 (file)
@@ -86,6 +86,7 @@
                                         * over Ethernet
                                         */
 #define ETH_P_PAE      0x888E          /* Port Access Entity (IEEE 802.1X) */
+#define ETH_P_REALTEK  0x8899          /* Multiple proprietary protocols */
 #define ETH_P_AOE      0x88A2          /* ATA over Ethernet            */
 #define ETH_P_8021AD   0x88A8          /* 802.1ad Service VLAN         */
 #define ETH_P_802_EX1  0x88B5          /* 802.1 Local Experimental 1.  */
 #define ETH_P_IFE      0xED3E          /* ForCES inter-FE LFB type */
 #define ETH_P_AF_IUCV   0xFBFB         /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
 
-#define ETH_P_802_3_MIN        0x0600          /* If the value in the ethernet type is less than this value
+#define ETH_P_802_3_MIN        0x0600          /* If the value in the ethernet type is more than this value
                                         * then the frame is Ethernet II. Else it is 802.3 */
 
 /*
 #define ETH_P_MAP      0x00F9          /* Qualcomm multiplexing and
                                         * aggregation protocol
                                         */
+#define ETH_P_MCTP     0x00FA          /* Management component transport
+                                        * protocol packets
+                                        */
 
 /*
  *     This is an Ethernet frame header.
index 4882e81514b664f5cb95f6a51d94a862efcd4a5c..eebd3894fe89a0dfda36d79e1a291743220db613 100644 (file)
@@ -417,6 +417,7 @@ enum {
        IFLA_INET6_ICMP6STATS,  /* statistics (icmpv6)          */
        IFLA_INET6_TOKEN,       /* device token                 */
        IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
+       IFLA_INET6_RA_MTU,      /* mtu carried in the RA message */
        __IFLA_INET6_MAX
 };
 
@@ -479,6 +480,7 @@ enum {
        IFLA_BR_MCAST_MLD_VERSION,
        IFLA_BR_VLAN_STATS_PER_PORT,
        IFLA_BR_MULTI_BOOLOPT,
+       IFLA_BR_MCAST_QUERIER_STATE,
        __IFLA_BR_MAX,
 };
 
@@ -855,6 +857,7 @@ enum {
        IFLA_BOND_AD_ACTOR_SYSTEM,
        IFLA_BOND_TLB_DYNAMIC_LB,
        IFLA_BOND_PEER_NOTIF_DELAY,
+       IFLA_BOND_AD_LACP_ACTIVE,
        __IFLA_BOND_MAX,
 };
 
@@ -1260,4 +1263,14 @@ struct ifla_rmnet_flags {
        __u32   mask;
 };
 
+/* MCTP section */
+
+enum {
+       IFLA_MCTP_UNSPEC,
+       IFLA_MCTP_NET,
+       __IFLA_MCTP_MAX,
+};
+
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
+
 #endif /* _UAPI_LINUX_IF_LINK_H */
index d1b327036ae43686d66019c18533ed1091ccc65b..14168225cecdc74cb7c46b3abd0c1f0bcf874a7a 100644 (file)
@@ -188,11 +188,22 @@ struct ip_mreq_source {
 };
 
 struct ip_msfilter {
-       __be32          imsf_multiaddr;
-       __be32          imsf_interface;
-       __u32           imsf_fmode;
-       __u32           imsf_numsrc;
-       __be32          imsf_slist[1];
+       union {
+               struct {
+                       __be32          imsf_multiaddr_aux;
+                       __be32          imsf_interface_aux;
+                       __u32           imsf_fmode_aux;
+                       __u32           imsf_numsrc_aux;
+                       __be32          imsf_slist[1];
+               };
+               struct {
+                       __be32          imsf_multiaddr;
+                       __be32          imsf_interface;
+                       __u32           imsf_fmode;
+                       __u32           imsf_numsrc;
+                       __be32          imsf_slist_flex[];
+               };
+       };
 };
 
 #define IP_MSFILTER_SIZE(numsrc) \
@@ -211,11 +222,22 @@ struct group_source_req {
 };
 
 struct group_filter {
-       __u32                            gf_interface;  /* interface index */
-       struct __kernel_sockaddr_storage gf_group;      /* multicast address */
-       __u32                            gf_fmode;      /* filter mode */
-       __u32                            gf_numsrc;     /* number of sources */
-       struct __kernel_sockaddr_storage gf_slist[1];   /* interface index */
+       union {
+               struct {
+                       __u32                            gf_interface_aux; /* interface index */
+                       struct __kernel_sockaddr_storage gf_group_aux;     /* multicast address */
+                       __u32                            gf_fmode_aux;     /* filter mode */
+                       __u32                            gf_numsrc_aux;    /* number of sources */
+                       struct __kernel_sockaddr_storage gf_slist[1];      /* interface index */
+               };
+               struct {
+                       __u32                            gf_interface;    /* interface index */
+                       struct __kernel_sockaddr_storage gf_group;        /* multicast address */
+                       __u32                            gf_fmode;        /* filter mode */
+                       __u32                            gf_numsrc;       /* number of sources */
+                       struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */
+               };
+       };
 };
 
 #define GROUP_FILTER_SIZE(numsrc) \
index 5ad396a57eb327a2e69cc288fe1d287d2d05287e..c4c53a9ab9595b2a5b95e5b22cafa5bd2cd6fd3c 100644 (file)
@@ -145,6 +145,7 @@ struct in6_flowlabel_req {
 #define IPV6_TLV_PADN          1
 #define IPV6_TLV_ROUTERALERT   5
 #define IPV6_TLV_CALIPSO       7       /* RFC 5570 */
+#define IPV6_TLV_IOAM          49      /* TEMPORARY IANA allocation for IOAM */
 #define IPV6_TLV_JUMBO         194
 #define IPV6_TLV_HAO           201     /* home address option */
 
index e94d1fa554cb224da089742468739b7f36f38395..466fd3f4447c2fc47ca2a52db149ec27dc079216 100644 (file)
@@ -753,11 +753,13 @@ enum nft_dynset_attributes {
  * @NFT_PAYLOAD_LL_HEADER: link layer header
  * @NFT_PAYLOAD_NETWORK_HEADER: network header
  * @NFT_PAYLOAD_TRANSPORT_HEADER: transport header
+ * @NFT_PAYLOAD_INNER_HEADER: inner header / payload
  */
 enum nft_payload_bases {
        NFT_PAYLOAD_LL_HEADER,
        NFT_PAYLOAD_NETWORK_HEADER,
        NFT_PAYLOAD_TRANSPORT_HEADER,
+       NFT_PAYLOAD_INNER_HEADER,
 };
 
 /**
@@ -896,7 +898,8 @@ enum nft_meta_keys {
        NFT_META_OIF,
        NFT_META_IIFNAME,
        NFT_META_OIFNAME,
-       NFT_META_IIFTYPE,
+       NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE       NFT_META_IFTYPE
        NFT_META_OIFTYPE,
        NFT_META_SKUID,
        NFT_META_SKGID,
@@ -923,6 +926,7 @@ enum nft_meta_keys {
        NFT_META_TIME_HOUR,
        NFT_META_SDIF,
        NFT_META_SDIFNAME,
+       __NFT_META_IIFTYPE,
 };
 
 /**
index c2efea98e060b38929e8e930aba05b505e3eaebb..61cab81e920de9aa7fef5640de75e5659fb498a7 100644 (file)
  * the interface goes down.
  */
 
+/**
+ * DOC: FILS shared key crypto offload
+ *
+ * This feature is applicable to drivers running in AP mode.
+ *
+ * FILS shared key crypto offload can be advertised by drivers by setting
+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
+ * FILS shared key crypto offload should be able to encrypt and decrypt
+ * association frames for FILS shared key authentication as per IEEE 802.11ai.
+ * With this capability, for FILS key derivation, drivers depend on userspace.
+ *
+ * After FILS key derivation, userspace shares the FILS AAD details with the
+ * driver and the driver stores the same to use in decryption of association
+ * request and in encryption of association response. The below parameters
+ * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
+ *     %NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
+ *     %NL80211_ATTR_FILS_KEK - Used for encryption or decryption
+ *     %NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
+ *                     (STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+ *
+ * Once the association is done, the driver cleans the FILS AAD data.
+ */
+
 /**
  * enum nl80211_commands - supported nl80211 commands
  *
  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
  *     %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
  *     userspace to request deletion of a virtual interface, then requires
- *     attribute %NL80211_ATTR_IFINDEX.
+ *     attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
+ *     enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
+ *     and if this command is used for the transmitting interface, then all
+ *     the non-transmitting interfaces are deleted as well.
  *
  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
  *     by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
  * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
  *     has completed
  *
+ * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
+ *     &NL80211_ATTR_MAC - for STA MAC address
+ *     &NL80211_ATTR_FILS_KEK - for KEK
+ *     &NL80211_ATTR_FILS_NONCES - for FILS Nonces
+ *             (STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1440,6 +1472,8 @@ enum nl80211_commands {
        NL80211_CMD_COLOR_CHANGE_ABORTED,
        NL80211_CMD_COLOR_CHANGE_COMPLETED,
 
+       NL80211_CMD_SET_FILS_AAD,
+
        /* add new commands above here */
 
        /* used to define NL80211_CMD_MAX below */
@@ -2593,6 +2627,18 @@ enum nl80211_commands {
  * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
  *     information for the time while performing a color switch.
  *
+ * @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID
+ *     advertisements (MBSSID) parameters in AP mode.
+ *     Kernel uses this attribute to indicate the driver's support for MBSSID
+ *     and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
+ *     Userspace should use this attribute to configure per interface MBSSID
+ *     parameters.
+ *     See &enum nl80211_mbssid_config_attributes for details.
+ *
+ * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
+ *     Mandatory parameter for the transmitting interface to enable MBSSID.
+ *     Optional for the non-transmitting interfaces.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3096,6 +3142,9 @@ enum nl80211_attrs {
        NL80211_ATTR_COLOR_CHANGE_COLOR,
        NL80211_ATTR_COLOR_CHANGE_ELEMS,
 
+       NL80211_ATTR_MBSSID_CONFIG,
+       NL80211_ATTR_MBSSID_ELEMS,
+
        /* add attributes here, update the policy in nl80211.c */
 
        __NL80211_ATTR_AFTER_LAST,
@@ -4929,6 +4978,7 @@ enum nl80211_txrate_gi {
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
+ * @NL80211_BAND_LC: light communication band (placeholder)
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *     since newer kernel versions may support more bands
  */
@@ -4938,6 +4988,7 @@ enum nl80211_band {
        NL80211_BAND_60GHZ,
        NL80211_BAND_6GHZ,
        NL80211_BAND_S1GHZ,
+       NL80211_BAND_LC,
 
        NUM_NL80211_BANDS,
 };
@@ -5995,6 +6046,11 @@ enum nl80211_feature_flags {
  * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
  *     detection and change announcemnts.
  *
+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
+ *     FILS encryption and decryption for (Re)Association Request and Response
+ *     frames. Userspace has to share FILS AAD details to the driver by using
+ *     @NL80211_CMD_SET_FILS_AAD.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6060,6 +6116,7 @@ enum nl80211_ext_feature_index {
        NL80211_EXT_FEATURE_SECURE_RTT,
        NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
        NL80211_EXT_FEATURE_BSS_COLOR,
+       NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -7349,4 +7406,60 @@ enum nl80211_sar_specs_attrs {
        NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
 
+/**
+ * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
+ * multi-BSSID advertisements (EMA) in AP mode.
+ * Kernel uses some of these attributes to advertise driver's support for
+ * MBSSID and EMA.
+ * Remaining attributes should be used by the userspace to configure the
+ * features.
+ *
+ * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
+ *     the maximum number of MBSSID interfaces supported by the driver.
+ *     Driver should indicate MBSSID support by setting
+ *     wiphy->mbssid_max_interfaces to a value more than or equal to 2.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
+ *     to advertise the maximum profile periodicity supported by the driver
+ *     if EMA is enabled. Driver should indicate EMA support to the userspace
+ *     by setting wiphy->ema_max_profile_periodicity to
+ *     a non-zero value.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
+ *     this BSS (u8) in the multiple BSSID set.
+ *     Value must be set to 0 for the transmitting interface and non-zero for
+ *     all non-transmitting interfaces. The userspace will be responsible
+ *     for using unique indices for the interfaces.
+ *     Range: 0 to wiphy->mbssid_max_interfaces-1.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
+ *     a non-transmitted profile which provides the interface index (u32) of
+ *     the transmitted profile. The value must match one of the interface
+ *     indices advertised by the kernel. Optional if the interface being set up
+ *     is the transmitting one, however, if provided then the value must match
+ *     the interface index of the same.
+ *
+ * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
+ *     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_LAST: Internal
+ * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
+ */
+enum nl80211_mbssid_config_attributes {
+       __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+
+       NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+       NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+       NL80211_MBSSID_CONFIG_ATTR_INDEX,
+       NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+       NL80211_MBSSID_CONFIG_ATTR_EMA,
+
+       /* keep last */
+       __NL80211_MBSSID_CONFIG_ATTR_LAST,
+       NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+
 #endif /* __LINUX_NL80211_H */
index 79a699f106b14ef36afe459b955ab136326e36a0..f292b467b27fcc3e9d0320773665b0aab59e5f1b 100644 (file)
@@ -827,6 +827,8 @@ struct tc_codel_xstats {
 
 /* FQ_CODEL */
 
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
+
 enum {
        TCA_FQ_CODEL_UNSPEC,
        TCA_FQ_CODEL_TARGET,
@@ -838,6 +840,8 @@ enum {
        TCA_FQ_CODEL_CE_THRESHOLD,
        TCA_FQ_CODEL_DROP_BATCH_SIZE,
        TCA_FQ_CODEL_MEMORY_LIMIT,
+       TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+       TCA_FQ_CODEL_CE_THRESHOLD_MASK,
        __TCA_FQ_CODEL_MAX
 };