]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Wed, 2 Aug 2023 15:27:51 +0000 (09:27 -0600)
committerDavid Ahern <dsahern@kernel.org>
Wed, 2 Aug 2023 15:27:51 +0000 (09:27 -0600)
Update kernel headers to commit:
    34093c9fa05d ("net: Remove duplicated include in mac.c")

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/can.h
include/uapi/linux/capability.h
include/uapi/linux/if_link.h
include/uapi/linux/if_packet.h
include/uapi/linux/mptcp.h
include/uapi/linux/pkt_cls.h
include/uapi/linux/types.h
include/uapi/linux/virtio_net.h

index 1ff326ddc1fde2a3f47b4679b1d81fa85ce329f7..007f7e538ce7fd3d2ce51b18be40f69b09f8b615 100644 (file)
@@ -1036,6 +1036,8 @@ enum bpf_attach_type {
        BPF_LSM_CGROUP,
        BPF_STRUCT_OPS,
        BPF_NETFILTER,
+       BPF_TCX_INGRESS,
+       BPF_TCX_EGRESS,
        __MAX_BPF_ATTACH_TYPE
 };
 
@@ -1053,10 +1055,20 @@ enum bpf_link_type {
        BPF_LINK_TYPE_KPROBE_MULTI = 8,
        BPF_LINK_TYPE_STRUCT_OPS = 9,
        BPF_LINK_TYPE_NETFILTER = 10,
-
+       BPF_LINK_TYPE_TCX = 11,
        MAX_BPF_LINK_TYPE,
 };
 
+enum bpf_perf_event_type {
+       BPF_PERF_EVENT_UNSPEC = 0,
+       BPF_PERF_EVENT_UPROBE = 1,
+       BPF_PERF_EVENT_URETPROBE = 2,
+       BPF_PERF_EVENT_KPROBE = 3,
+       BPF_PERF_EVENT_KRETPROBE = 4,
+       BPF_PERF_EVENT_TRACEPOINT = 5,
+       BPF_PERF_EVENT_EVENT = 6,
+};
+
 /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command
  *
  * NONE(default): No further bpf programs allowed in the subtree.
@@ -1103,7 +1115,12 @@ enum bpf_link_type {
  */
 #define BPF_F_ALLOW_OVERRIDE   (1U << 0)
 #define BPF_F_ALLOW_MULTI      (1U << 1)
+/* Generic attachment flags. */
 #define BPF_F_REPLACE          (1U << 2)
+#define BPF_F_BEFORE           (1U << 3)
+#define BPF_F_AFTER            (1U << 4)
+#define BPF_F_ID               (1U << 5)
+#define BPF_F_LINK             BPF_F_LINK /* 1 << 13 */
 
 /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
  * verifier will perform strict alignment checking as if the kernel
@@ -1434,14 +1451,19 @@ union bpf_attr {
        };
 
        struct { /* anonymous struct used by BPF_PROG_ATTACH/DETACH commands */
-               __u32           target_fd;      /* container object to attach to */
-               __u32           attach_bpf_fd;  /* eBPF program to attach */
+               union {
+                       __u32   target_fd;      /* target object to attach to or ... */
+                       __u32   target_ifindex; /* target ifindex */
+               };
+               __u32           attach_bpf_fd;
                __u32           attach_type;
                __u32           attach_flags;
-               __u32           replace_bpf_fd; /* previously attached eBPF
-                                                * program to replace if
-                                                * BPF_F_REPLACE is used
-                                                */
+               __u32           replace_bpf_fd;
+               union {
+                       __u32   relative_fd;
+                       __u32   relative_id;
+               };
+               __u64           expected_revision;
        };
 
        struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
@@ -1487,16 +1509,26 @@ union bpf_attr {
        } info;
 
        struct { /* anonymous struct used by BPF_PROG_QUERY command */
-               __u32           target_fd;      /* container object to query */
+               union {
+                       __u32   target_fd;      /* target object to query or ... */
+                       __u32   target_ifindex; /* target ifindex */
+               };
                __u32           attach_type;
                __u32           query_flags;
                __u32           attach_flags;
                __aligned_u64   prog_ids;
-               __u32           prog_cnt;
+               union {
+                       __u32   prog_cnt;
+                       __u32   count;
+               };
+               __u32           :32;
                /* output: per-program attach_flags.
                 * not allowed to be set during effective query.
                 */
                __aligned_u64   prog_attach_flags;
+               __aligned_u64   link_ids;
+               __aligned_u64   link_attach_flags;
+               __u64           revision;
        } query;
 
        struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
@@ -1539,13 +1571,13 @@ union bpf_attr {
                        __u32           map_fd;         /* struct_ops to attach */
                };
                union {
-                       __u32           target_fd;      /* object to attach to */
-                       __u32           target_ifindex; /* target ifindex */
+                       __u32   target_fd;      /* target object to attach to or ... */
+                       __u32   target_ifindex; /* target ifindex */
                };
                __u32           attach_type;    /* attach type */
                __u32           flags;          /* extra flags */
                union {
-                       __u32           target_btf_id;  /* btf_id of target to attach to */
+                       __u32   target_btf_id;  /* btf_id of target to attach to */
                        struct {
                                __aligned_u64   iter_info;      /* extra bpf_iter_link_info */
                                __u32           iter_info_len;  /* iter_info length */
@@ -1579,6 +1611,13 @@ union bpf_attr {
                                __s32           priority;
                                __u32           flags;
                        } netfilter;
+                       struct {
+                               union {
+                                       __u32   relative_fd;
+                                       __u32   relative_id;
+                               };
+                               __u64           expected_revision;
+                       } tcx;
                };
        } link_create;
 
@@ -3178,6 +3217,10 @@ union bpf_attr {
  *             **BPF_FIB_LOOKUP_DIRECT**
  *                     Do a direct table lookup vs full lookup using FIB
  *                     rules.
+ *             **BPF_FIB_LOOKUP_TBID**
+ *                     Used with BPF_FIB_LOOKUP_DIRECT.
+ *                     Use the routing table ID present in *params*->tbid
+ *                     for the fib lookup.
  *             **BPF_FIB_LOOKUP_OUTPUT**
  *                     Perform lookup from an egress perspective (default is
  *                     ingress).
@@ -6183,6 +6226,19 @@ struct bpf_sock_tuple {
        };
 };
 
+/* (Simplified) user return codes for tcx prog type.
+ * A valid tcx program must return one of these defined values. All other
+ * return codes are reserved for future use. Must remain compatible with
+ * their TC_ACT_* counter-parts. For compatibility in behavior, unknown
+ * return codes are mapped to TCX_NEXT.
+ */
+enum tcx_action_base {
+       TCX_NEXT        = -1,
+       TCX_PASS        = 0,
+       TCX_DROP        = 2,
+       TCX_REDIRECT    = 7,
+};
+
 struct bpf_xdp_sock {
        __u32 queue_id;
 };
@@ -6435,6 +6491,40 @@ struct bpf_link_info {
                        __s32 priority;
                        __u32 flags;
                } netfilter;
+               struct {
+                       __aligned_u64 addrs;
+                       __u32 count; /* in/out: kprobe_multi function count */
+                       __u32 flags;
+               } kprobe_multi;
+               struct {
+                       __u32 type; /* enum bpf_perf_event_type */
+                       __u32 :32;
+                       union {
+                               struct {
+                                       __aligned_u64 file_name; /* in/out */
+                                       __u32 name_len;
+                                       __u32 offset; /* offset from file_name */
+                               } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */
+                               struct {
+                                       __aligned_u64 func_name; /* in/out */
+                                       __u32 name_len;
+                                       __u32 offset; /* offset from func_name */
+                                       __u64 addr;
+                               } kprobe; /* BPF_PERF_EVENT_KPROBE, BPF_PERF_EVENT_KRETPROBE */
+                               struct {
+                                       __aligned_u64 tp_name;   /* in/out */
+                                       __u32 name_len;
+                               } tracepoint; /* BPF_PERF_EVENT_TRACEPOINT */
+                               struct {
+                                       __u64 config;
+                                       __u32 type;
+                               } event; /* BPF_PERF_EVENT_EVENT */
+                       };
+               } perf_event;
+               struct {
+                       __u32 ifindex;
+                       __u32 attach_type;
+               } tcx;
        };
 } __attribute__((aligned(8)));
 
@@ -6832,6 +6922,7 @@ enum {
        BPF_FIB_LOOKUP_DIRECT  = (1U << 0),
        BPF_FIB_LOOKUP_OUTPUT  = (1U << 1),
        BPF_FIB_LOOKUP_SKIP_NEIGH = (1U << 2),
+       BPF_FIB_LOOKUP_TBID    = (1U << 3),
 };
 
 enum {
@@ -6892,9 +6983,19 @@ struct bpf_fib_lookup {
                __u32           ipv6_dst[4];  /* in6_addr; network order */
        };
 
-       /* output */
-       __be16  h_vlan_proto;
-       __be16  h_vlan_TCI;
+       union {
+               struct {
+                       /* output */
+                       __be16  h_vlan_proto;
+                       __be16  h_vlan_TCI;
+               };
+               /* input: when accompanied with the
+                * 'BPF_FIB_LOOKUP_DIRECT | BPF_FIB_LOOKUP_TBID` flags, a
+                * specific routing table to use for the fib lookup.
+                */
+               __u32   tbid;
+       };
+
        __u8    smac[6];     /* ETH_ALEN */
        __u8    dmac[6];     /* ETH_ALEN */
 };
@@ -6997,6 +7098,7 @@ struct bpf_list_head {
 struct bpf_list_node {
        __u64 :64;
        __u64 :64;
+       __u64 :64;
 } __attribute__((aligned(8)));
 
 struct bpf_rb_root {
@@ -7008,6 +7110,7 @@ struct bpf_rb_node {
        __u64 :64;
        __u64 :64;
        __u64 :64;
+       __u64 :64;
 } __attribute__((aligned(8)));
 
 struct bpf_refcount {
index 892c53b0f94e33da90ed958adcf65812e2703bfc..23d5bf4a561b11122403cee4e4303659703d6e97 100644 (file)
@@ -285,6 +285,5 @@ struct can_filter {
 };
 
 #define CAN_INV_FILTER 0x20000000U /* to be set in can_filter.can_id */
-#define CAN_RAW_FILTER_MAX 512 /* maximum number of can_filter set via setsockopt() */
 
 #endif /* !_UAPI_CAN_H */
index efce9435b5bdd8660256ef92ca3de1186d58d7d7..e48f039ec0eca6979ad959949dd22e477361b797 100644 (file)
@@ -41,11 +41,12 @@ typedef struct __user_cap_header_struct {
        int pid;
 } *cap_user_header_t;
 
-typedef struct __user_cap_data_struct {
+struct __user_cap_data_struct {
         __u32 effective;
         __u32 permitted;
         __u32 inheritable;
-} *cap_user_data_t;
+};
+typedef struct __user_cap_data_struct *cap_user_data_t;
 
 
 #define VFS_CAP_REVISION_MASK  0xFF000000
index 02af33ceb3b4aa8ac51bdd76518958aeacf4ac4e..c2ca7a6add0eb2ea3a0cad49393c9c20ffd88af8 100644 (file)
@@ -568,6 +568,7 @@ enum {
        IFLA_BRPORT_MCAST_N_GROUPS,
        IFLA_BRPORT_MCAST_MAX_GROUPS,
        IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
+       IFLA_BRPORT_BACKUP_NHID,
        __IFLA_BRPORT_MAX
 };
 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
index 9efc42382fdb98f9e9b5470ae2a66ccf4d0ba4e1..4d0ad22f83b56be6566765766a43195d59e966aa 100644 (file)
@@ -18,7 +18,11 @@ struct sockaddr_ll {
        unsigned short  sll_hatype;
        unsigned char   sll_pkttype;
        unsigned char   sll_halen;
-       unsigned char   sll_addr[8];
+       union {
+               unsigned char   sll_addr[8];
+               /* Actual length is in sll_halen. */
+               __DECLARE_FLEX_ARRAY(unsigned char, sll_addr_flex);
+       };
 };
 
 /* Packet types */
index 5e7e0553f6f29a88e0198ef4996d883872003381..159d32f04cd025c24a63b0520df3b31b84bf5d22 100644 (file)
@@ -121,6 +121,11 @@ struct mptcp_info {
        __u8    mptcpi_local_addr_used;
        __u8    mptcpi_local_addr_max;
        __u8    mptcpi_csum_enabled;
+       __u32   mptcpi_retransmits;
+       __u64   mptcpi_bytes_retrans;
+       __u64   mptcpi_bytes_sent;
+       __u64   mptcpi_bytes_received;
+       __u64   mptcpi_bytes_acked;
 };
 
 /*
@@ -242,9 +247,33 @@ struct mptcp_subflow_addrs {
        };
 };
 
+struct mptcp_subflow_info {
+       __u32                           id;
+       struct mptcp_subflow_addrs      addrs;
+};
+
+struct mptcp_full_info {
+       __u32           size_tcpinfo_kernel;    /* must be 0, set by kernel */
+       __u32           size_tcpinfo_user;
+       __u32           size_sfinfo_kernel;     /* must be 0, set by kernel */
+       __u32           size_sfinfo_user;
+       __u32           num_subflows;           /* must be 0, set by kernel (real subflow count) */
+       __u32           size_arrays_user;       /* max subflows that userspace is interested in;
+                                                * the buffers at subflow_info/tcp_info
+                                                * are respectively at least:
+                                                *  size_arrays * size_sfinfo_user
+                                                *  size_arrays * size_tcpinfo_user
+                                                * bytes wide
+                                                */
+       __aligned_u64           subflow_info;
+       __aligned_u64           tcp_info;
+       struct mptcp_info       mptcp_info;
+};
+
 /* MPTCP socket options */
 #define MPTCP_INFO             1
 #define MPTCP_TCPINFO          2
 #define MPTCP_SUBFLOW_ADDRS    3
+#define MPTCP_FULL_INFO                4
 
 #endif /* _MPTCP_H */
index 7865f5a9885b9bc12332448418cfef8214391f09..75506f157340015e28982ba9da64d3efea4fdf83 100644 (file)
@@ -598,6 +598,9 @@ enum {
 
        TCA_FLOWER_KEY_CFM,             /* nested */
 
+       TCA_FLOWER_KEY_SPI,             /* be32 */
+       TCA_FLOWER_KEY_SPI_MASK,        /* be32 */
+
        __TCA_FLOWER_MAX,
 };
 
index 6546100a69f2419d841ac2241ca1df8bc5c5b11c..e6700138c2096dc31452ba87d12c19a905101cae 100644 (file)
@@ -8,6 +8,10 @@
 
 #include <linux/posix_types.h>
 
+#ifdef __SIZEOF_INT128__
+typedef __signed__ __int128 __s128 __attribute__((aligned(16)));
+typedef unsigned __int128 __u128 __attribute__((aligned(16)));
+#endif
 
 /*
  * Below are truly Linux-specific types that should never collide with
index 8b9bc4fdc1551ae0c542a44e994d799579aa70ba..5775077dc6e44b5cf086c6bd1343fc2393c83b27 100644 (file)
@@ -56,6 +56,7 @@
 #define VIRTIO_NET_F_MQ        22      /* Device supports Receive Flow
                                         * Steering */
 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23  /* Set MAC address */
+#define VIRTIO_NET_F_VQ_NOTF_COAL 52   /* Device supports virtqueue notification coalescing */
 #define VIRTIO_NET_F_NOTF_COAL 53      /* Device supports notifications coalescing */
 #define VIRTIO_NET_F_GUEST_USO4        54      /* Guest can handle USOv4 in. */
 #define VIRTIO_NET_F_GUEST_USO6        55      /* Guest can handle USOv6 in. */
@@ -391,5 +392,18 @@ struct virtio_net_ctrl_coal_rx {
 };
 
 #define VIRTIO_NET_CTRL_NOTF_COAL_RX_SET               1
+#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET               2
+#define VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET               3
+
+struct virtio_net_ctrl_coal {
+       __le32 max_packets;
+       __le32 max_usecs;
+};
+
+struct  virtio_net_ctrl_coal_vq {
+       __le16 vqn;
+       __le16 reserved;
+       struct virtio_net_ctrl_coal coal;
+};
 
 #endif /* _LINUX_VIRTIO_NET_H */