]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
uapi: update headers to 6.5-rc1
authorStephen Hemminger <stephen@networkplumber.org>
Mon, 10 Jul 2023 17:00:07 +0000 (10:00 -0700)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 10 Jul 2023 17:00:07 +0000 (10:00 -0700)
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
include/uapi/linux/bpf.h
include/uapi/linux/can.h
include/uapi/linux/capability.h
include/uapi/linux/mptcp.h
include/uapi/linux/types.h

index 1ff326ddc1fde2a3f47b4679b1d81fa85ce329f7..e33a01219c3ba921b3169ff033e05b417128851a 100644 (file)
@@ -3178,6 +3178,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).
@@ -6832,6 +6836,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 +6897,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 */
 };
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 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 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