569 lines
18 KiB
Diff
569 lines
18 KiB
Diff
|
From f0023a7d874697821516583c1b3be95e2f110668 Mon Sep 17 00:00:00 2001
|
||
|
From: Andrea Claudi <aclaudi@redhat.com>
|
||
|
Date: Thu, 4 Jun 2020 21:41:59 +0200
|
||
|
Subject: [PATCH] Update kernel headers
|
||
|
|
||
|
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1830485
|
||
|
Upstream Status: iproute2.git commit 7438afd2cc8d3
|
||
|
Conflicts: on devlink uapi due to missing commit 9dcd8788fe6bc
|
||
|
("Update kernel headers")
|
||
|
|
||
|
commit 7438afd2cc8d37fd7f12e29963e1d926de53dda7
|
||
|
Author: David Ahern <dsahern@gmail.com>
|
||
|
Date: Mon Nov 25 23:13:09 2019 +0000
|
||
|
|
||
|
Update kernel headers
|
||
|
|
||
|
Update kernel headers to commit:
|
||
|
c431047c4efe ("enetc: add support Credit Based Shaper(CBS) for hardware offload")
|
||
|
|
||
|
Signed-off-by: David Ahern <dsahern@gmail.com>
|
||
|
---
|
||
|
include/uapi/linux/bpf.h | 130 ++++++++++++++------
|
||
|
include/uapi/linux/gen_stats.h | 5 +-
|
||
|
include/uapi/linux/lwtunnel.h | 41 ++++++
|
||
|
include/uapi/linux/netfilter/ipset/ip_set.h | 2 +
|
||
|
include/uapi/linux/pkt_cls.h | 29 +++++
|
||
|
include/uapi/linux/pkt_sched.h | 22 ++--
|
||
|
include/uapi/linux/sctp.h | 15 +++
|
||
|
include/uapi/linux/tc_act/tc_tunnel_key.h | 29 +++++
|
||
|
include/uapi/linux/tipc.h | 21 ++++
|
||
|
include/uapi/linux/tipc_netlink.h | 4 +
|
||
|
10 files changed, 246 insertions(+), 52 deletions(-)
|
||
|
|
||
|
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
|
||
|
index 94aa5a1d38215..bf3475f915cf1 100644
|
||
|
--- a/include/uapi/linux/bpf.h
|
||
|
+++ b/include/uapi/linux/bpf.h
|
||
|
@@ -173,6 +173,7 @@ enum bpf_prog_type {
|
||
|
BPF_PROG_TYPE_CGROUP_SYSCTL,
|
||
|
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
|
||
|
BPF_PROG_TYPE_CGROUP_SOCKOPT,
|
||
|
+ BPF_PROG_TYPE_TRACING,
|
||
|
};
|
||
|
|
||
|
enum bpf_attach_type {
|
||
|
@@ -199,6 +200,9 @@ enum bpf_attach_type {
|
||
|
BPF_CGROUP_UDP6_RECVMSG,
|
||
|
BPF_CGROUP_GETSOCKOPT,
|
||
|
BPF_CGROUP_SETSOCKOPT,
|
||
|
+ BPF_TRACE_RAW_TP,
|
||
|
+ BPF_TRACE_FENTRY,
|
||
|
+ BPF_TRACE_FEXIT,
|
||
|
__MAX_BPF_ATTACH_TYPE
|
||
|
};
|
||
|
|
||
|
@@ -344,6 +348,9 @@ enum bpf_attach_type {
|
||
|
/* Clone map from listener for newly accepted socket */
|
||
|
#define BPF_F_CLONE (1U << 9)
|
||
|
|
||
|
+/* Enable memory-mapping BPF map */
|
||
|
+#define BPF_F_MMAPABLE (1U << 10)
|
||
|
+
|
||
|
/* flags for BPF_PROG_QUERY */
|
||
|
#define BPF_F_QUERY_EFFECTIVE (1U << 0)
|
||
|
|
||
|
@@ -421,6 +428,7 @@ union bpf_attr {
|
||
|
__aligned_u64 line_info; /* line info */
|
||
|
__u32 line_info_cnt; /* number of bpf_line_info records */
|
||
|
__u32 attach_btf_id; /* in-kernel BTF type id to attach to */
|
||
|
+ __u32 attach_prog_fd; /* 0 to attach to vmlinux */
|
||
|
};
|
||
|
|
||
|
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
||
|
@@ -579,10 +587,13 @@ union bpf_attr {
|
||
|
* Return
|
||
|
* 0 on success, or a negative error in case of failure.
|
||
|
*
|
||
|
- * int bpf_probe_read(void *dst, u32 size, const void *src)
|
||
|
+ * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
* Description
|
||
|
* For tracing programs, safely attempt to read *size* bytes from
|
||
|
- * address *src* and store the data in *dst*.
|
||
|
+ * kernel space address *unsafe_ptr* and store the data in *dst*.
|
||
|
+ *
|
||
|
+ * Generally, use bpf_probe_read_user() or bpf_probe_read_kernel()
|
||
|
+ * instead.
|
||
|
* Return
|
||
|
* 0 on success, or a negative error in case of failure.
|
||
|
*
|
||
|
@@ -1444,45 +1455,14 @@ union bpf_attr {
|
||
|
* Return
|
||
|
* 0 on success, or a negative error in case of failure.
|
||
|
*
|
||
|
- * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)
|
||
|
+ * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
* Description
|
||
|
- * Copy a NUL terminated string from an unsafe address
|
||
|
- * *unsafe_ptr* to *dst*. The *size* should include the
|
||
|
- * terminating NUL byte. In case the string length is smaller than
|
||
|
- * *size*, the target is not padded with further NUL bytes. If the
|
||
|
- * string length is larger than *size*, just *size*-1 bytes are
|
||
|
- * copied and the last byte is set to NUL.
|
||
|
- *
|
||
|
- * On success, the length of the copied string is returned. This
|
||
|
- * makes this helper useful in tracing programs for reading
|
||
|
- * strings, and more importantly to get its length at runtime. See
|
||
|
- * the following snippet:
|
||
|
- *
|
||
|
- * ::
|
||
|
- *
|
||
|
- * SEC("kprobe/sys_open")
|
||
|
- * void bpf_sys_open(struct pt_regs *ctx)
|
||
|
- * {
|
||
|
- * char buf[PATHLEN]; // PATHLEN is defined to 256
|
||
|
- * int res = bpf_probe_read_str(buf, sizeof(buf),
|
||
|
- * ctx->di);
|
||
|
- *
|
||
|
- * // Consume buf, for example push it to
|
||
|
- * // userspace via bpf_perf_event_output(); we
|
||
|
- * // can use res (the string length) as event
|
||
|
- * // size, after checking its boundaries.
|
||
|
- * }
|
||
|
+ * Copy a NUL terminated string from an unsafe kernel address
|
||
|
+ * *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for
|
||
|
+ * more details.
|
||
|
*
|
||
|
- * In comparison, using **bpf_probe_read()** helper here instead
|
||
|
- * to read the string would require to estimate the length at
|
||
|
- * compile time, and would often result in copying more memory
|
||
|
- * than necessary.
|
||
|
- *
|
||
|
- * Another useful use case is when parsing individual process
|
||
|
- * arguments or individual environment variables navigating
|
||
|
- * *current*\ **->mm->arg_start** and *current*\
|
||
|
- * **->mm->env_start**: using this helper and the return value,
|
||
|
- * one can quickly iterate at the right offset of the memory area.
|
||
|
+ * Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str()
|
||
|
+ * instead.
|
||
|
* Return
|
||
|
* On success, the strictly positive length of the string,
|
||
|
* including the trailing NUL character. On error, a negative
|
||
|
@@ -2793,6 +2773,72 @@ union bpf_attr {
|
||
|
* restricted to raw_tracepoint bpf programs.
|
||
|
* Return
|
||
|
* 0 on success, or a negative error in case of failure.
|
||
|
+ *
|
||
|
+ * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
+ * Description
|
||
|
+ * Safely attempt to read *size* bytes from user space address
|
||
|
+ * *unsafe_ptr* and store the data in *dst*.
|
||
|
+ * Return
|
||
|
+ * 0 on success, or a negative error in case of failure.
|
||
|
+ *
|
||
|
+ * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
+ * Description
|
||
|
+ * Safely attempt to read *size* bytes from kernel space address
|
||
|
+ * *unsafe_ptr* and store the data in *dst*.
|
||
|
+ * Return
|
||
|
+ * 0 on success, or a negative error in case of failure.
|
||
|
+ *
|
||
|
+ * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
+ * Description
|
||
|
+ * Copy a NUL terminated string from an unsafe user address
|
||
|
+ * *unsafe_ptr* to *dst*. The *size* should include the
|
||
|
+ * terminating NUL byte. In case the string length is smaller than
|
||
|
+ * *size*, the target is not padded with further NUL bytes. If the
|
||
|
+ * string length is larger than *size*, just *size*-1 bytes are
|
||
|
+ * copied and the last byte is set to NUL.
|
||
|
+ *
|
||
|
+ * On success, the length of the copied string is returned. This
|
||
|
+ * makes this helper useful in tracing programs for reading
|
||
|
+ * strings, and more importantly to get its length at runtime. See
|
||
|
+ * the following snippet:
|
||
|
+ *
|
||
|
+ * ::
|
||
|
+ *
|
||
|
+ * SEC("kprobe/sys_open")
|
||
|
+ * void bpf_sys_open(struct pt_regs *ctx)
|
||
|
+ * {
|
||
|
+ * char buf[PATHLEN]; // PATHLEN is defined to 256
|
||
|
+ * int res = bpf_probe_read_user_str(buf, sizeof(buf),
|
||
|
+ * ctx->di);
|
||
|
+ *
|
||
|
+ * // Consume buf, for example push it to
|
||
|
+ * // userspace via bpf_perf_event_output(); we
|
||
|
+ * // can use res (the string length) as event
|
||
|
+ * // size, after checking its boundaries.
|
||
|
+ * }
|
||
|
+ *
|
||
|
+ * In comparison, using **bpf_probe_read_user()** helper here
|
||
|
+ * instead to read the string would require to estimate the length
|
||
|
+ * at compile time, and would often result in copying more memory
|
||
|
+ * than necessary.
|
||
|
+ *
|
||
|
+ * Another useful use case is when parsing individual process
|
||
|
+ * arguments or individual environment variables navigating
|
||
|
+ * *current*\ **->mm->arg_start** and *current*\
|
||
|
+ * **->mm->env_start**: using this helper and the return value,
|
||
|
+ * one can quickly iterate at the right offset of the memory area.
|
||
|
+ * Return
|
||
|
+ * On success, the strictly positive length of the string,
|
||
|
+ * including the trailing NUL character. On error, a negative
|
||
|
+ * value.
|
||
|
+ *
|
||
|
+ * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
|
||
|
+ * Description
|
||
|
+ * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
|
||
|
+ * to *dst*. Same semantics as with bpf_probe_read_user_str() apply.
|
||
|
+ * Return
|
||
|
+ * On success, the strictly positive length of the string, including
|
||
|
+ * the trailing NUL character. On error, a negative value.
|
||
|
*/
|
||
|
#define __BPF_FUNC_MAPPER(FN) \
|
||
|
FN(unspec), \
|
||
|
@@ -2906,7 +2952,11 @@ union bpf_attr {
|
||
|
FN(sk_storage_delete), \
|
||
|
FN(send_signal), \
|
||
|
FN(tcp_gen_syncookie), \
|
||
|
- FN(skb_output),
|
||
|
+ FN(skb_output), \
|
||
|
+ FN(probe_read_user), \
|
||
|
+ FN(probe_read_kernel), \
|
||
|
+ FN(probe_read_user_str), \
|
||
|
+ FN(probe_read_kernel_str),
|
||
|
|
||
|
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||
|
* function eBPF program intends to call
|
||
|
diff --git a/include/uapi/linux/gen_stats.h b/include/uapi/linux/gen_stats.h
|
||
|
index 065408e16a807..852f234f1fd63 100644
|
||
|
--- a/include/uapi/linux/gen_stats.h
|
||
|
+++ b/include/uapi/linux/gen_stats.h
|
||
|
@@ -13,6 +13,7 @@ enum {
|
||
|
TCA_STATS_RATE_EST64,
|
||
|
TCA_STATS_PAD,
|
||
|
TCA_STATS_BASIC_HW,
|
||
|
+ TCA_STATS_PKT64,
|
||
|
__TCA_STATS_MAX,
|
||
|
};
|
||
|
#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
|
||
|
@@ -26,10 +27,6 @@ struct gnet_stats_basic {
|
||
|
__u64 bytes;
|
||
|
__u32 packets;
|
||
|
};
|
||
|
-struct gnet_stats_basic_packed {
|
||
|
- __u64 bytes;
|
||
|
- __u32 packets;
|
||
|
-} __attribute__ ((packed));
|
||
|
|
||
|
/**
|
||
|
* struct gnet_stats_rate_est - rate estimator
|
||
|
diff --git a/include/uapi/linux/lwtunnel.h b/include/uapi/linux/lwtunnel.h
|
||
|
index 0ba94063c1809..b7c0191fd1b5f 100644
|
||
|
--- a/include/uapi/linux/lwtunnel.h
|
||
|
+++ b/include/uapi/linux/lwtunnel.h
|
||
|
@@ -28,6 +28,7 @@ enum lwtunnel_ip_t {
|
||
|
LWTUNNEL_IP_TOS,
|
||
|
LWTUNNEL_IP_FLAGS,
|
||
|
LWTUNNEL_IP_PAD,
|
||
|
+ LWTUNNEL_IP_OPTS,
|
||
|
__LWTUNNEL_IP_MAX,
|
||
|
};
|
||
|
|
||
|
@@ -42,11 +43,51 @@ enum lwtunnel_ip6_t {
|
||
|
LWTUNNEL_IP6_TC,
|
||
|
LWTUNNEL_IP6_FLAGS,
|
||
|
LWTUNNEL_IP6_PAD,
|
||
|
+ LWTUNNEL_IP6_OPTS,
|
||
|
__LWTUNNEL_IP6_MAX,
|
||
|
};
|
||
|
|
||
|
#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
|
||
|
|
||
|
+enum {
|
||
|
+ LWTUNNEL_IP_OPTS_UNSPEC,
|
||
|
+ LWTUNNEL_IP_OPTS_GENEVE,
|
||
|
+ LWTUNNEL_IP_OPTS_VXLAN,
|
||
|
+ LWTUNNEL_IP_OPTS_ERSPAN,
|
||
|
+ __LWTUNNEL_IP_OPTS_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
|
||
|
+
|
||
|
+enum {
|
||
|
+ LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
|
||
|
+ LWTUNNEL_IP_OPT_GENEVE_CLASS,
|
||
|
+ LWTUNNEL_IP_OPT_GENEVE_TYPE,
|
||
|
+ LWTUNNEL_IP_OPT_GENEVE_DATA,
|
||
|
+ __LWTUNNEL_IP_OPT_GENEVE_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
|
||
|
+
|
||
|
+enum {
|
||
|
+ LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
|
||
|
+ LWTUNNEL_IP_OPT_VXLAN_GBP,
|
||
|
+ __LWTUNNEL_IP_OPT_VXLAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
|
||
|
+
|
||
|
+enum {
|
||
|
+ LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
|
||
|
+ LWTUNNEL_IP_OPT_ERSPAN_VER,
|
||
|
+ LWTUNNEL_IP_OPT_ERSPAN_INDEX,
|
||
|
+ LWTUNNEL_IP_OPT_ERSPAN_DIR,
|
||
|
+ LWTUNNEL_IP_OPT_ERSPAN_HWID,
|
||
|
+ __LWTUNNEL_IP_OPT_ERSPAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
|
||
|
+
|
||
|
enum {
|
||
|
LWT_BPF_PROG_UNSPEC,
|
||
|
LWT_BPF_PROG_FD,
|
||
|
diff --git a/include/uapi/linux/netfilter/ipset/ip_set.h b/include/uapi/linux/netfilter/ipset/ip_set.h
|
||
|
index c512003dba6ba..4b372f46f0d04 100644
|
||
|
--- a/include/uapi/linux/netfilter/ipset/ip_set.h
|
||
|
+++ b/include/uapi/linux/netfilter/ipset/ip_set.h
|
||
|
@@ -205,6 +205,8 @@ enum ipset_cadt_flags {
|
||
|
IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),
|
||
|
IPSET_FLAG_BIT_WITH_SKBINFO = 6,
|
||
|
IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),
|
||
|
+ IPSET_FLAG_BIT_IFACE_WILDCARD = 7,
|
||
|
+ IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD),
|
||
|
IPSET_FLAG_CADT_MAX = 15,
|
||
|
};
|
||
|
|
||
|
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
|
||
|
index c6ad22f76edee..449a63971451f 100644
|
||
|
--- a/include/uapi/linux/pkt_cls.h
|
||
|
+++ b/include/uapi/linux/pkt_cls.h
|
||
|
@@ -571,6 +571,14 @@ enum {
|
||
|
* TCA_FLOWER_KEY_ENC_OPT_GENEVE_
|
||
|
* attributes
|
||
|
*/
|
||
|
+ TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested
|
||
|
+ * TCA_FLOWER_KEY_ENC_OPT_VXLAN_
|
||
|
+ * attributes
|
||
|
+ */
|
||
|
+ TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested
|
||
|
+ * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
|
||
|
+ * attributes
|
||
|
+ */
|
||
|
__TCA_FLOWER_KEY_ENC_OPTS_MAX,
|
||
|
};
|
||
|
|
||
|
@@ -588,6 +596,27 @@ enum {
|
||
|
#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
|
||
|
(__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||
|
|
||
|
+enum {
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
|
||
|
+ __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \
|
||
|
+ (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
|
||
|
+
|
||
|
+enum {
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
|
||
|
+ TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
|
||
|
+ __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
|
||
|
+ (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
|
||
|
+
|
||
|
enum {
|
||
|
TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
|
||
|
TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
|
||
|
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
|
||
|
index 18f185299f472..dab60bd8f0f4a 100644
|
||
|
--- a/include/uapi/linux/pkt_sched.h
|
||
|
+++ b/include/uapi/linux/pkt_sched.h
|
||
|
@@ -950,19 +950,25 @@ enum {
|
||
|
TCA_PIE_BETA,
|
||
|
TCA_PIE_ECN,
|
||
|
TCA_PIE_BYTEMODE,
|
||
|
+ TCA_PIE_DQ_RATE_ESTIMATOR,
|
||
|
__TCA_PIE_MAX
|
||
|
};
|
||
|
#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
|
||
|
|
||
|
struct tc_pie_xstats {
|
||
|
- __u64 prob; /* current probability */
|
||
|
- __u32 delay; /* current delay in ms */
|
||
|
- __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */
|
||
|
- __u32 packets_in; /* total number of packets enqueued */
|
||
|
- __u32 dropped; /* packets dropped due to pie_action */
|
||
|
- __u32 overlimit; /* dropped due to lack of space in queue */
|
||
|
- __u32 maxq; /* maximum queue size */
|
||
|
- __u32 ecn_mark; /* packets marked with ecn*/
|
||
|
+ __u64 prob; /* current probability */
|
||
|
+ __u32 delay; /* current delay in ms */
|
||
|
+ __u32 avg_dq_rate; /* current average dq_rate in
|
||
|
+ * bits/pie_time
|
||
|
+ */
|
||
|
+ __u32 dq_rate_estimating; /* is avg_dq_rate being calculated? */
|
||
|
+ __u32 packets_in; /* total number of packets enqueued */
|
||
|
+ __u32 dropped; /* packets dropped due to pie_action */
|
||
|
+ __u32 overlimit; /* dropped due to lack of space
|
||
|
+ * in queue
|
||
|
+ */
|
||
|
+ __u32 maxq; /* maximum queue size */
|
||
|
+ __u32 ecn_mark; /* packets marked with ecn*/
|
||
|
};
|
||
|
|
||
|
/* CBS */
|
||
|
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
|
||
|
index 0d4c1507a169d..f8f218b16c280 100644
|
||
|
--- a/include/uapi/linux/sctp.h
|
||
|
+++ b/include/uapi/linux/sctp.h
|
||
|
@@ -105,6 +105,7 @@ typedef __s32 sctp_assoc_t;
|
||
|
#define SCTP_DEFAULT_SNDINFO 34
|
||
|
#define SCTP_AUTH_DEACTIVATE_KEY 35
|
||
|
#define SCTP_REUSE_PORT 36
|
||
|
+#define SCTP_PEER_ADDR_THLDS_V2 37
|
||
|
|
||
|
/* Internal Socket Options. Some of the sctp library functions are
|
||
|
* implemented using these socket options.
|
||
|
@@ -137,6 +138,8 @@ typedef __s32 sctp_assoc_t;
|
||
|
#define SCTP_ASCONF_SUPPORTED 128
|
||
|
#define SCTP_AUTH_SUPPORTED 129
|
||
|
#define SCTP_ECN_SUPPORTED 130
|
||
|
+#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
|
||
|
+#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
|
||
|
|
||
|
/* PR-SCTP policies */
|
||
|
#define SCTP_PR_SCTP_NONE 0x0000
|
||
|
@@ -410,6 +413,8 @@ enum sctp_spc_state {
|
||
|
SCTP_ADDR_ADDED,
|
||
|
SCTP_ADDR_MADE_PRIM,
|
||
|
SCTP_ADDR_CONFIRMED,
|
||
|
+ SCTP_ADDR_POTENTIALLY_FAILED,
|
||
|
+#define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED
|
||
|
};
|
||
|
|
||
|
|
||
|
@@ -917,6 +922,7 @@ struct sctp_paddrinfo {
|
||
|
enum sctp_spinfo_state {
|
||
|
SCTP_INACTIVE,
|
||
|
SCTP_PF,
|
||
|
+#define SCTP_POTENTIALLY_FAILED SCTP_PF
|
||
|
SCTP_ACTIVE,
|
||
|
SCTP_UNCONFIRMED,
|
||
|
SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */
|
||
|
@@ -1062,6 +1068,15 @@ struct sctp_paddrthlds {
|
||
|
__u16 spt_pathpfthld;
|
||
|
};
|
||
|
|
||
|
+/* Use a new structure with spt_pathcpthld for back compatibility */
|
||
|
+struct sctp_paddrthlds_v2 {
|
||
|
+ sctp_assoc_t spt_assoc_id;
|
||
|
+ struct sockaddr_storage spt_address;
|
||
|
+ __u16 spt_pathmaxrxt;
|
||
|
+ __u16 spt_pathpfthld;
|
||
|
+ __u16 spt_pathcpthld;
|
||
|
+};
|
||
|
+
|
||
|
/*
|
||
|
* Socket Option for Getting the Association/Stream-Specific PR-SCTP Status
|
||
|
*/
|
||
|
diff --git a/include/uapi/linux/tc_act/tc_tunnel_key.h b/include/uapi/linux/tc_act/tc_tunnel_key.h
|
||
|
index 41c8b462c177c..3f10dc4e7a4bb 100644
|
||
|
--- a/include/uapi/linux/tc_act/tc_tunnel_key.h
|
||
|
+++ b/include/uapi/linux/tc_act/tc_tunnel_key.h
|
||
|
@@ -50,6 +50,14 @@ enum {
|
||
|
* TCA_TUNNEL_KEY_ENC_OPTS_
|
||
|
* attributes
|
||
|
*/
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPTS_VXLAN, /* Nested
|
||
|
+ * TCA_TUNNEL_KEY_ENC_OPTS_
|
||
|
+ * attributes
|
||
|
+ */
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN, /* Nested
|
||
|
+ * TCA_TUNNEL_KEY_ENC_OPTS_
|
||
|
+ * attributes
|
||
|
+ */
|
||
|
__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
|
||
|
};
|
||
|
|
||
|
@@ -67,4 +75,25 @@ enum {
|
||
|
#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
|
||
|
(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
|
||
|
|
||
|
+enum {
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
|
||
|
+ __TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
|
||
|
+ (__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
|
||
|
+
|
||
|
+enum {
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
|
||
|
+ TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
|
||
|
+ __TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
|
||
|
+};
|
||
|
+
|
||
|
+#define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
|
||
|
+ (__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
|
||
|
+
|
||
|
#endif
|
||
|
diff --git a/include/uapi/linux/tipc.h b/include/uapi/linux/tipc.h
|
||
|
index 0f6f28b2e3010..de5bcd2a09fae 100644
|
||
|
--- a/include/uapi/linux/tipc.h
|
||
|
+++ b/include/uapi/linux/tipc.h
|
||
|
@@ -233,6 +233,27 @@ struct tipc_sioc_nodeid_req {
|
||
|
char node_id[TIPC_NODEID_LEN];
|
||
|
};
|
||
|
|
||
|
+/*
|
||
|
+ * TIPC Crypto, AEAD
|
||
|
+ */
|
||
|
+#define TIPC_AEAD_ALG_NAME (32)
|
||
|
+
|
||
|
+struct tipc_aead_key {
|
||
|
+ char alg_name[TIPC_AEAD_ALG_NAME];
|
||
|
+ unsigned int keylen; /* in bytes */
|
||
|
+ char key[];
|
||
|
+};
|
||
|
+
|
||
|
+#define TIPC_AEAD_KEYLEN_MIN (16 + 4)
|
||
|
+#define TIPC_AEAD_KEYLEN_MAX (32 + 4)
|
||
|
+#define TIPC_AEAD_KEY_SIZE_MAX (sizeof(struct tipc_aead_key) + \
|
||
|
+ TIPC_AEAD_KEYLEN_MAX)
|
||
|
+
|
||
|
+static __inline__ int tipc_aead_key_size(struct tipc_aead_key *key)
|
||
|
+{
|
||
|
+ return sizeof(*key) + key->keylen;
|
||
|
+}
|
||
|
+
|
||
|
/* The macros and functions below are deprecated:
|
||
|
*/
|
||
|
|
||
|
diff --git a/include/uapi/linux/tipc_netlink.h b/include/uapi/linux/tipc_netlink.h
|
||
|
index efb958fd167d0..6c2194ab745bd 100644
|
||
|
--- a/include/uapi/linux/tipc_netlink.h
|
||
|
+++ b/include/uapi/linux/tipc_netlink.h
|
||
|
@@ -63,6 +63,8 @@ enum {
|
||
|
TIPC_NL_PEER_REMOVE,
|
||
|
TIPC_NL_BEARER_ADD,
|
||
|
TIPC_NL_UDP_GET_REMOTEIP,
|
||
|
+ TIPC_NL_KEY_SET,
|
||
|
+ TIPC_NL_KEY_FLUSH,
|
||
|
|
||
|
__TIPC_NL_CMD_MAX,
|
||
|
TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
|
||
|
@@ -160,6 +162,8 @@ enum {
|
||
|
TIPC_NLA_NODE_UNSPEC,
|
||
|
TIPC_NLA_NODE_ADDR, /* u32 */
|
||
|
TIPC_NLA_NODE_UP, /* flag */
|
||
|
+ TIPC_NLA_NODE_ID, /* data */
|
||
|
+ TIPC_NLA_NODE_KEY, /* data */
|
||
|
|
||
|
__TIPC_NLA_NODE_MAX,
|
||
|
TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
|
||
|
--
|
||
|
2.26.2
|
||
|
|