]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@kernel.org>
Tue, 5 Oct 2021 14:28:28 +0000 (08:28 -0600)
committerDavid Ahern <dsahern@kernel.org>
Tue, 5 Oct 2021 14:28:28 +0000 (08:28 -0600)
Update kernel headers to commit:
    49ed8dde3715 ("net: usb: use eth_hw_addr_set() for dev->addr_len cases")

Update to linux/mptcp.h is removed because it breaks compilation
of ipmptcp.c in a nontrivial way.

Signed-off-by: David Ahern <dsahern@kernel.org>
include/uapi/linux/bpf.h
include/uapi/linux/btf.h
include/uapi/linux/devlink.h
include/uapi/linux/ioam6_iptunnel.h
include/uapi/linux/tls.h

index 177cdc57c370442cd9a6974a9a86d94c42da12c9..53be00aa4b7073a387cea079f916a44b60e1e38f 100644 (file)
@@ -1629,7 +1629,7 @@ union bpf_attr {
  * u32 bpf_get_smp_processor_id(void)
  *     Description
  *             Get the SMP (symmetric multiprocessing) processor id. Note that
- *             all programs run with preemption disabled, which means that the
+ *             all programs run with migration disabled, which means that the
  *             SMP processor id is stable during all the execution of the
  *             program.
  *     Return
@@ -4046,7 +4046,7 @@ union bpf_attr {
  *             arguments. The *data* are a **u64** array and corresponding format string
  *             values are stored in the array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data* array.
- *             The *data_len* is the size of *data* in bytes.
+ *             The *data_len* is the size of *data* in bytes - must be a multiple of 8.
  *
  *             Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory.
  *             Reading kernel memory may fail due to either invalid address or
@@ -4751,7 +4751,8 @@ union bpf_attr {
  *             Each format specifier in **fmt** corresponds to one u64 element
  *             in the **data** array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data*
- *             array. The *data_len* is the size of *data* in bytes.
+ *             array. The *data_len* is the size of *data* in bytes - must be
+ *             a multiple of 8.
  *
  *             Formats **%s** and **%p{i,I}{4,6}** require to read kernel
  *             memory. Reading kernel memory may fail due to either invalid
@@ -4877,6 +4878,37 @@ union bpf_attr {
  *             Get the struct pt_regs associated with **task**.
  *     Return
  *             A pointer to struct pt_regs.
+ *
+ * long bpf_get_branch_snapshot(void *entries, u32 size, u64 flags)
+ *     Description
+ *             Get branch trace from hardware engines like Intel LBR. The
+ *             hardware engine is stopped shortly after the helper is
+ *             called. Therefore, the user need to filter branch entries
+ *             based on the actual use case. To capture branch trace
+ *             before the trigger point of the BPF program, the helper
+ *             should be called at the beginning of the BPF program.
+ *
+ *             The data is stored as struct perf_branch_entry into output
+ *             buffer *entries*. *size* is the size of *entries* in bytes.
+ *             *flags* is reserved for now and must be zero.
+ *
+ *     Return
+ *             On success, number of bytes written to *buf*. On error, a
+ *             negative value.
+ *
+ *             **-EINVAL** if *flags* is not zero.
+ *
+ *             **-ENOENT** if architecture does not support branch records.
+ *
+ * long bpf_trace_vprintk(const char *fmt, u32 fmt_size, const void *data, u32 data_len)
+ *     Description
+ *             Behaves like **bpf_trace_printk**\ () helper, but takes an array of u64
+ *             to format and can handle more format args as a result.
+ *
+ *             Arguments are to be used as in **bpf_seq_printf**\ () helper.
+ *     Return
+ *             The number of bytes written to the buffer, or a negative error
+ *             in case of failure.
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -5055,6 +5087,8 @@ union bpf_attr {
        FN(get_func_ip),                \
        FN(get_attach_cookie),          \
        FN(task_pt_regs),               \
+       FN(get_branch_snapshot),        \
+       FN(trace_vprintk),              \
        /* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5284,6 +5318,8 @@ struct __sk_buff {
        __u32 gso_segs;
        __bpf_md_ptr(struct bpf_sock *, sk);
        __u32 gso_size;
+       __u32 :32;              /* Padding, future use. */
+       __u64 hwtstamp;
 };
 
 struct bpf_tunnel_key {
index 2c42dcac7cd88b9ab558474a09afcc841eef1332..50dac146c2a523f0907af0150e3dad9c92b8799e 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 and VAR.
+        * FUNC, FUNC_PROTO, VAR and TAG.
         * "type" is a type_id referring to another type.
         */
        union {
@@ -56,25 +56,29 @@ struct btf_type {
 #define BTF_INFO_VLEN(info)    ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info)   ((info) >> 31)
 
-#define BTF_KIND_UNKN          0       /* Unknown      */
-#define BTF_KIND_INT           1       /* Integer      */
-#define BTF_KIND_PTR           2       /* Pointer      */
-#define BTF_KIND_ARRAY         3       /* Array        */
-#define BTF_KIND_STRUCT                4       /* Struct       */
-#define BTF_KIND_UNION         5       /* Union        */
-#define BTF_KIND_ENUM          6       /* Enumeration  */
-#define BTF_KIND_FWD           7       /* Forward      */
-#define BTF_KIND_TYPEDEF       8       /* Typedef      */
-#define BTF_KIND_VOLATILE      9       /* Volatile     */
-#define BTF_KIND_CONST         10      /* Const        */
-#define BTF_KIND_RESTRICT      11      /* Restrict     */
-#define BTF_KIND_FUNC          12      /* Function     */
-#define BTF_KIND_FUNC_PROTO    13      /* Function Proto       */
-#define BTF_KIND_VAR           14      /* Variable     */
-#define BTF_KIND_DATASEC       15      /* Section      */
-#define BTF_KIND_FLOAT         16      /* Floating point       */
-#define BTF_KIND_MAX           BTF_KIND_FLOAT
-#define NR_BTF_KINDS           (BTF_KIND_MAX + 1)
+enum {
+       BTF_KIND_UNKN           = 0,    /* Unknown      */
+       BTF_KIND_INT            = 1,    /* Integer      */
+       BTF_KIND_PTR            = 2,    /* Pointer      */
+       BTF_KIND_ARRAY          = 3,    /* Array        */
+       BTF_KIND_STRUCT         = 4,    /* Struct       */
+       BTF_KIND_UNION          = 5,    /* Union        */
+       BTF_KIND_ENUM           = 6,    /* Enumeration  */
+       BTF_KIND_FWD            = 7,    /* Forward      */
+       BTF_KIND_TYPEDEF        = 8,    /* Typedef      */
+       BTF_KIND_VOLATILE       = 9,    /* Volatile     */
+       BTF_KIND_CONST          = 10,   /* Const        */
+       BTF_KIND_RESTRICT       = 11,   /* Restrict     */
+       BTF_KIND_FUNC           = 12,   /* Function     */
+       BTF_KIND_FUNC_PROTO     = 13,   /* Function Proto       */
+       BTF_KIND_VAR            = 14,   /* Variable     */
+       BTF_KIND_DATASEC        = 15,   /* Section      */
+       BTF_KIND_FLOAT          = 16,   /* Floating point       */
+       BTF_KIND_TAG            = 17,   /* Tag */
+
+       NR_BTF_KINDS,
+       BTF_KIND_MAX            = NR_BTF_KINDS - 1,
+};
 
 /* For some specific BTF_KIND, "struct btf_type" is immediately
  * followed by extra data.
@@ -170,4 +174,15 @@ struct btf_var_secinfo {
        __u32   size;
 };
 
+/* BTF_KIND_TAG is followed by a single "struct btf_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 {
+       __s32   component_idx;
+};
+
 #endif /* __LINUX_BTF_H__ */
index 6408b40f240248b49b7e613f339292cfb2d5131e..210d4fbffa9f215fc6e19c1c440156a08be73b3d 100644 (file)
@@ -551,6 +551,8 @@ enum devlink_attr {
        DEVLINK_ATTR_RATE_NODE_NAME,            /* string */
        DEVLINK_ATTR_RATE_PARENT_NODE_NAME,     /* string */
 
+       DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,      /* u32 */
+
        /* add new attributes above here, update the policy in devlink.c */
 
        __DEVLINK_ATTR_MAX,
index fdf52e66583c9539c6130a91031344e344c7912c..79b6442592a4409e841455ab7a68effe27300930 100644 (file)
@@ -9,9 +9,38 @@
 #ifndef _LINUX_IOAM6_IPTUNNEL_H
 #define _LINUX_IOAM6_IPTUNNEL_H
 
+/* Encap modes:
+ *  - inline: direct insertion
+ *  - encap: ip6ip6 encapsulation
+ *  - auto: __inline__ for local packets, encap for in-transit packets
+ */
+enum {
+       __IOAM6_IPTUNNEL_MODE_MIN,
+
+       IOAM6_IPTUNNEL_MODE_INLINE,
+       IOAM6_IPTUNNEL_MODE_ENCAP,
+       IOAM6_IPTUNNEL_MODE_AUTO,
+
+       __IOAM6_IPTUNNEL_MODE_MAX,
+};
+
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+
 enum {
        IOAM6_IPTUNNEL_UNSPEC,
+
+       /* Encap mode */
+       IOAM6_IPTUNNEL_MODE,            /* u8 */
+
+       /* Tunnel dst address.
+        * For encap,auto modes.
+        */
+       IOAM6_IPTUNNEL_DST,             /* struct in6_addr */
+
+       /* IOAM Trace Header */
        IOAM6_IPTUNNEL_TRACE,           /* struct ioam6_trace_hdr */
+
        __IOAM6_IPTUNNEL_MAX,
 };
 
index 805cbce6ce3d60f90a5aa97d4608242ef996c92e..3ad54af2101a03d9cbb52f8991c5ad24b204ec9b 100644 (file)
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE  16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE      8
 
+#define TLS_CIPHER_SM4_GCM                             55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE                     8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE            16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE           4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE            16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE                8
+
+#define TLS_CIPHER_SM4_CCM                             56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE                     8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE            16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE           4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE            16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE                8
+
 #define TLS_SET_RECORD_TYPE    1
 #define TLS_GET_RECORD_TYPE    2
 
@@ -124,6 +138,22 @@ struct tls12_crypto_info_chacha20_poly1305 {
        unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
 
+struct tls12_crypto_info_sm4_gcm {
+       struct tls_crypto_info info;
+       unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+       unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+       unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+       unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+
+struct tls12_crypto_info_sm4_ccm {
+       struct tls_crypto_info info;
+       unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+       unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+       unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+       unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
+
 enum {
        TLS_INFO_UNSPEC,
        TLS_INFO_VERSION,