]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Wed, 3 Nov 2021 19:22:15 +0000 (13:22 -0600)
committerDavid Ahern <dsahern@kernel.org>
Wed, 3 Nov 2021 19:22:15 +0000 (13:22 -0600)
Update kernel headers to commit:
    cc0356d6a02e ("Merge tag 'x86_core_for_v5.16_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip")

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/btf.h
include/uapi/linux/can/netlink.h
include/uapi/linux/if_ether.h
include/uapi/linux/ip.h
include/uapi/linux/netfilter.h
include/uapi/linux/pkt_sched.h
include/uapi/linux/stddef.h

index 53be00aa4b7073a387cea079f916a44b60e1e38f..0c3a514a35b3bebb40c7d46e7e847c7605454d98 100644 (file)
@@ -906,6 +906,7 @@ enum bpf_map_type {
        BPF_MAP_TYPE_RINGBUF,
        BPF_MAP_TYPE_INODE_STORAGE,
        BPF_MAP_TYPE_TASK_STORAGE,
+       BPF_MAP_TYPE_BLOOM_FILTER,
 };
 
 /* Note that tracing related programs such as
@@ -1274,6 +1275,13 @@ union bpf_attr {
                                                   * struct stored as the
                                                   * map value
                                                   */
+               /* Any per-map-type extra fields
+                *
+                * BPF_MAP_TYPE_BLOOM_FILTER - the lowest 4 bits indicate the
+                * number of hash functions (if 0, the bloom filter will default
+                * to using 5 hash functions).
+                */
+               __u64   map_extra;
        };
 
        struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -4909,6 +4917,27 @@ union bpf_attr {
  *     Return
  *             The number of bytes written to the buffer, or a negative error
  *             in case of failure.
+ *
+ * struct unix_sock *bpf_skc_to_unix_sock(void *sk)
+ *     Description
+ *             Dynamically cast a *sk* pointer to a *unix_sock* pointer.
+ *     Return
+ *             *sk* if casting is valid, or **NULL** otherwise.
+ *
+ * long bpf_kallsyms_lookup_name(const char *name, int name_sz, int flags, u64 *res)
+ *     Description
+ *             Get the address of a kernel symbol, returned in *res*. *res* is
+ *             set to 0 if the symbol is not found.
+ *     Return
+ *             On success, zero. On error, a negative value.
+ *
+ *             **-EINVAL** if *flags* is not zero.
+ *
+ *             **-EINVAL** if string *name* is not the same size as *name_sz*.
+ *
+ *             **-ENOENT** if symbol is not found.
+ *
+ *             **-EPERM** if caller does not have permission to obtain kernel address.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -5089,6 +5118,8 @@ union bpf_attr {
        FN(task_pt_regs),               \
        FN(get_branch_snapshot),        \
        FN(trace_vprintk),              \
+       FN(skc_to_unix_sock),           \
+       FN(kallsyms_lookup_name),       \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5613,6 +5644,7 @@ struct bpf_prog_info {
        __u64 run_time_ns;
        __u64 run_cnt;
        __u64 recursion_misses;
+       __u32 verified_insns;
 } __attribute__((aligned(8)));
 
 struct bpf_map_info {
@@ -5630,6 +5662,8 @@ struct bpf_map_info {
        __u32 btf_id;
        __u32 btf_key_type_id;
        __u32 btf_value_type_id;
+       __u32 :32;      /* alignment pad */
+       __u64 map_extra;
 } __attribute__((aligned(8)));
 
 struct bpf_btf_info {
index 50dac146c2a523f0907af0150e3dad9c92b8799e..3e90bfc6f71dfd33cab1f93e3647a1489f463b8c 100644 (file)
@@ -43,7 +43,7 @@ struct btf_type {
         * "size" tells the size of the type it is describing.
         *
         * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
-        * FUNC, FUNC_PROTO, VAR and TAG.
+        * FUNC, FUNC_PROTO, VAR and DECL_TAG.
         * "type" is a type_id referring to another type.
         */
        union {
@@ -74,7 +74,7 @@ enum {
        BTF_KIND_VAR            = 14,   /* Variable     */
        BTF_KIND_DATASEC        = 15,   /* Section      */
        BTF_KIND_FLOAT          = 16,   /* Floating point       */
-       BTF_KIND_TAG            = 17,   /* Tag */
+       BTF_KIND_DECL_TAG       = 17,   /* Decl Tag */
 
        NR_BTF_KINDS,
        BTF_KIND_MAX            = NR_BTF_KINDS - 1,
@@ -174,14 +174,14 @@ struct btf_var_secinfo {
        __u32   size;
 };
 
-/* BTF_KIND_TAG is followed by a single "struct btf_tag" to describe
+/* BTF_KIND_DECL_TAG is followed by a single "struct btf_decl_tag" to describe
  * additional information related to the tag applied location.
  * If component_idx == -1, the tag is applied to a struct, union,
  * variable or function. Otherwise, it is applied to a struct/union
  * member or a func argument, and component_idx indicates which member
  * or argument (0 ... vlen-1).
  */
-struct btf_tag {
+struct btf_decl_tag {
        __s32   component_idx;
 };
 
index 00c763dff1f351841c2f4b5459cc42b8e5c5df93..5f1054e050efef442f864d6b8fe84b73b13e35b2 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 84e01c081ae8377c60a2720570aa0c7490f03bf2..8d0f6826d0266d073828b442a6017a27a3e53cbf 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.  */
index f4ecd2fab84b5493a6201965813b04b02bf26064..75c46c1bd361245a508a95a191341c0146a7a143 100644 (file)
@@ -169,6 +169,7 @@ enum
        IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
        IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
        IPV4_DEVCONF_BC_FORWARDING,
+       IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
        __IPV4_DEVCONF_MAX
 };
 
index 566d8e40df0074f7a8abd296c12b94646ff736ca..30c045b818bb3a68f43c7b42fc3d12a9b24f1756 100644 (file)
@@ -49,6 +49,7 @@ enum nf_inet_hooks {
 
 enum nf_dev_hooks {
        NF_NETDEV_INGRESS,
+       NF_NETDEV_EGRESS,
        NF_NETDEV_NUMHOOKS
 };
 
index 6be9a84cccfa79bace1f3f7123d02f484b67a25e..f292b467b27fcc3e9d0320773665b0aab59e5f1b 100644 (file)
@@ -840,7 +840,8 @@ enum {
        TCA_FQ_CODEL_CE_THRESHOLD,
        TCA_FQ_CODEL_DROP_BATCH_SIZE,
        TCA_FQ_CODEL_MEMORY_LIMIT,
-       TCA_FQ_CODEL_CE_THRESHOLD_ECT1,
+       TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+       TCA_FQ_CODEL_CE_THRESHOLD_MASK,
        __TCA_FQ_CODEL_MAX
 };
 
index 23e025fec0419300dd61c3ec0e3ba1e8846ede38..d419e74216701ad7d9f4fcb2e2d6ab8c69ff7f52 100644 (file)
@@ -4,3 +4,40 @@
 #ifndef __always_inline
 #define __always_inline __inline__
 #endif
+
+/**
+ * __struct_group() - Create a mirrored named and anonyomous struct
+ *
+ * @TAG: The tag name for the named sub-struct (usually empty)
+ * @NAME: The identifier name of the mirrored sub-struct
+ * @ATTRS: Any struct attributes (usually empty)
+ * @MEMBERS: The member declarations for the mirrored structs
+ *
+ * Used to create an anonymous union of two structs with identical layout
+ * and size: one anonymous and one named. The former's members can be used
+ * normally without sub-struct naming, and the latter can be used to
+ * reason about the start, end, and size of the group of struct members.
+ * The named struct can also be explicitly tagged for layer reuse, as well
+ * as both having struct attributes appended.
+ */
+#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
+       union { \
+               struct { MEMBERS } ATTRS; \
+               struct TAG { MEMBERS } ATTRS NAME; \
+       }
+
+/**
+ * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union
+ *
+ * @TYPE: The type of each flexible array element
+ * @NAME: The name of the flexible array member
+ *
+ * In order to have a flexible array member in a union or alone in a
+ * struct, it needs to be wrapped in an anonymous struct with at least 1
+ * named member, but that member can be empty.
+ */
+#define __DECLARE_FLEX_ARRAY(TYPE, NAME)       \
+       struct { \
+               struct { } __empty_ ## NAME; \
+               TYPE NAME[]; \
+       }