]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
uapi: update from 5.18-rc1
authorStephen Hemminger <stephen@networkplumber.org>
Wed, 6 Apr 2022 15:22:40 +0000 (08:22 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 6 Apr 2022 15:22:40 +0000 (08:22 -0700)
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
include/uapi/linux/bpf.h
include/uapi/linux/types.h
include/uapi/linux/virtio_config.h

index 3b05552b3db5814c71bf768a7e5e4d03a549067d..5889a4d30ab3ad4012499fde0c311c89c4ff0472 100644 (file)
@@ -997,6 +997,7 @@ enum bpf_attach_type {
        BPF_SK_REUSEPORT_SELECT,
        BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
        BPF_PERF_EVENT,
+       BPF_TRACE_KPROBE_MULTI,
        __MAX_BPF_ATTACH_TYPE
 };
 
@@ -1011,6 +1012,7 @@ enum bpf_link_type {
        BPF_LINK_TYPE_NETNS = 5,
        BPF_LINK_TYPE_XDP = 6,
        BPF_LINK_TYPE_PERF_EVENT = 7,
+       BPF_LINK_TYPE_KPROBE_MULTI = 8,
 
        MAX_BPF_LINK_TYPE,
 };
@@ -1118,6 +1120,11 @@ enum bpf_link_type {
  */
 #define BPF_F_XDP_HAS_FRAGS    (1U << 5)
 
+/* link_create.kprobe_multi.flags used in LINK_CREATE command for
+ * BPF_TRACE_KPROBE_MULTI attach type to create return probe.
+ */
+#define BPF_F_KPROBE_MULTI_RETURN      (1U << 0)
+
 /* When BPF ldimm64's insn[0].src_reg != 0 then this can have
  * the following extensions:
  *
@@ -1232,6 +1239,8 @@ enum {
 
 /* If set, run the test on the cpu specified by bpf_attr.test.cpu */
 #define BPF_F_TEST_RUN_ON_CPU  (1U << 0)
+/* If set, XDP frames will be transmitted after processing */
+#define BPF_F_TEST_XDP_LIVE_FRAMES     (1U << 1)
 
 /* type for BPF_ENABLE_STATS */
 enum bpf_stats_type {
@@ -1393,6 +1402,7 @@ union bpf_attr {
                __aligned_u64   ctx_out;
                __u32           flags;
                __u32           cpu;
+               __u32           batch_size;
        } test;
 
        struct { /* anonymous struct used by BPF_*_GET_*_ID */
@@ -1472,6 +1482,13 @@ union bpf_attr {
                                 */
                                __u64           bpf_cookie;
                        } perf_event;
+                       struct {
+                               __u32           flags;
+                               __u32           cnt;
+                               __aligned_u64   syms;
+                               __aligned_u64   addrs;
+                               __aligned_u64   cookies;
+                       } kprobe_multi;
                };
        } link_create;
 
@@ -2299,8 +2316,8 @@ union bpf_attr {
  *     Return
  *             The return value depends on the result of the test, and can be:
  *
- *             * 0, if current task belongs to the cgroup2.
- *             * 1, if current task does not belong to the cgroup2.
+ *             * 1, if current task belongs to the cgroup2.
+ *             * 0, if current task does not belong to the cgroup2.
  *             * A negative error code, if an error occurred.
  *
  * long bpf_skb_change_tail(struct sk_buff *skb, u32 len, u64 flags)
@@ -2992,8 +3009,8 @@ union bpf_attr {
  *
  *                     # sysctl kernel.perf_event_max_stack=<new value>
  *     Return
- *             A non-negative value equal to or less than *size* on success,
- *             or a negative error in case of failure.
+ *             The non-negative copied *buf* length equal to or less than
+ *             *size* on success, or a negative error in case of failure.
  *
  * long bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
  *     Description
@@ -4299,8 +4316,8 @@ union bpf_attr {
  *
  *                     # sysctl kernel.perf_event_max_stack=<new value>
  *     Return
- *             A non-negative value equal to or less than *size* on success,
- *             or a negative error in case of failure.
+ *             The non-negative copied *buf* length equal to or less than
+ *             *size* on success, or a negative error in case of failure.
  *
  * long bpf_load_hdr_opt(struct bpf_sock_ops *skops, void *searchby_res, u32 len, u64 flags)
  *     Description
@@ -5087,23 +5104,22 @@ union bpf_attr {
  *             0 on success, or a negative error in case of failure. On error
  *             *dst* buffer is zeroed out.
  *
- * long bpf_skb_set_delivery_time(struct sk_buff *skb, u64 dtime, u32 dtime_type)
+ * long bpf_skb_set_tstamp(struct sk_buff *skb, u64 tstamp, u32 tstamp_type)
  *     Description
- *             Set a *dtime* (delivery time) to the __sk_buff->tstamp and also
- *             change the __sk_buff->delivery_time_type to *dtime_type*.
- *
- *             When setting a delivery time (non zero *dtime*) to
- *             __sk_buff->tstamp, only BPF_SKB_DELIVERY_TIME_MONO *dtime_type*
- *             is supported.  It is the only delivery_time_type that will be
- *             kept after bpf_redirect_*().
+ *             Change the __sk_buff->tstamp_type to *tstamp_type*
+ *             and set *tstamp* to the __sk_buff->tstamp together.
  *
- *             If there is no need to change the __sk_buff->delivery_time_type,
- *             the delivery time can be directly written to __sk_buff->tstamp
+ *             If there is no need to change the __sk_buff->tstamp_type,
+ *             the tstamp value can be directly written to __sk_buff->tstamp
  *             instead.
  *
- *             *dtime* 0 and *dtime_type* BPF_SKB_DELIVERY_TIME_NONE
- *             can be used to clear any delivery time stored in
- *             __sk_buff->tstamp.
+ *             BPF_SKB_TSTAMP_DELIVERY_MONO is the only tstamp that
+ *             will be kept during bpf_redirect_*().  A non zero
+ *             *tstamp* must be used with the BPF_SKB_TSTAMP_DELIVERY_MONO
+ *             *tstamp_type*.
+ *
+ *             A BPF_SKB_TSTAMP_UNSPEC *tstamp_type* can only be used
+ *             with a zero *tstamp*.
  *
  *             Only IPv4 and IPv6 skb->protocol are supported.
  *
@@ -5116,7 +5132,17 @@ union bpf_attr {
  *     Return
  *             0 on success.
  *             **-EINVAL** for invalid input
- *             **-EOPNOTSUPP** for unsupported delivery_time_type and protocol
+ *             **-EOPNOTSUPP** for unsupported protocol
+ *
+ * long bpf_ima_file_hash(struct file *file, void *dst, u32 size)
+ *     Description
+ *             Returns a calculated IMA hash of the *file*.
+ *             If the hash is larger than *size*, then only *size*
+ *             bytes will be copied to *dst*
+ *     Return
+ *             The **hash_algo** is returned on success,
+ *             **-EOPNOTSUP** if the hash calculation failed or **-EINVAL** if
+ *             invalid arguments are passed.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -5311,7 +5337,8 @@ union bpf_attr {
        FN(xdp_load_bytes),             \
        FN(xdp_store_bytes),            \
        FN(copy_from_user_task),        \
-       FN(skb_set_delivery_time),      \
+       FN(skb_set_tstamp),             \
+       FN(ima_file_hash),              \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5502,9 +5529,12 @@ union {                                  \
 } __attribute__((aligned(8)))
 
 enum {
-       BPF_SKB_DELIVERY_TIME_NONE,
-       BPF_SKB_DELIVERY_TIME_UNSPEC,
-       BPF_SKB_DELIVERY_TIME_MONO,
+       BPF_SKB_TSTAMP_UNSPEC,
+       BPF_SKB_TSTAMP_DELIVERY_MONO,   /* tstamp has mono delivery time */
+       /* For any BPF_SKB_TSTAMP_* that the bpf prog cannot handle,
+        * the bpf prog should handle it like BPF_SKB_TSTAMP_UNSPEC
+        * and try to deduce it by ingress, egress or skb->sk->sk_clockid.
+        */
 };
 
 /* user accessible mirror of in-kernel sk_buff.
@@ -5547,7 +5577,7 @@ struct __sk_buff {
        __u32 gso_segs;
        __bpf_md_ptr(struct bpf_sock *, sk);
        __u32 gso_size;
-       __u8  delivery_time_type;
+       __u8  tstamp_type;
        __u32 :24;              /* Padding, future use. */
        __u64 hwtstamp;
 };
index 999cb0fa88ebdf0a3c9503b43eb2605cd9c487aa..7f957444ccba0022b3ab4ef49686a8f8c7b0e221 100644 (file)
  * any application/library that wants linux/types.h.
  */
 
+/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */
 #ifdef __CHECKER__
-#define __bitwise__ __attribute__((bitwise))
+#define __bitwise      __attribute__((bitwise))
 #else
-#define __bitwise__
+#define __bitwise
 #endif
-#define __bitwise __bitwise__
 
 typedef __u16 __bitwise __le16;
 typedef __u16 __bitwise __be16;
index 3bf6c8bf8477934f4f76c5632db1f5a89f886aef..93574a0d0082d54a540ffb02d66525979a277b93 100644 (file)
 /* This feature indicates support for the packed virtqueue layout. */
 #define VIRTIO_F_RING_PACKED           34
 
+/*
+ * Inorder feature indicates that all buffers are used by the device
+ * in the same order in which they have been made available.
+ */
+#define VIRTIO_F_IN_ORDER              35
+
 /*
  * This feature indicates that memory accesses by the driver and the
  * device are ordered in a way described by the platform.