naccyde / rpms / iproute

Forked from rpms/iproute 8 months ago
Clone

Blame SOURCES/0002-Update-kernel-headers.patch

0ac2f3
From 864c5a906ccfe205f886aa4bfb69f738a9a4fb45 Mon Sep 17 00:00:00 2001
0ac2f3
From: Andrea Claudi <aclaudi@redhat.com>
0ac2f3
Date: Thu, 16 Apr 2020 12:41:49 +0200
0ac2f3
Subject: [PATCH] Update kernel headers
0ac2f3
0ac2f3
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1770671
0ac2f3
Upstream Status: iproute2.git commit 17a948c80af57
0ac2f3
0ac2f3
commit 17a948c80af57da2fa86a8e34153f755f86e9c9c
0ac2f3
Author: David Ahern <dsahern@gmail.com>
0ac2f3
Date:   Sat Nov 2 07:43:01 2019 -0700
0ac2f3
0ac2f3
    Update kernel headers
0ac2f3
0ac2f3
    Update kernel headers to commit:
0ac2f3
        c23fcbbc6aa4 ("tc-testing: added tests with cookie for conntrack TC action")
0ac2f3
0ac2f3
    Signed-off-by: David Ahern <dsahern@gmail.com>
0ac2f3
---
0ac2f3
 include/uapi/linux/bpf.h     | 28 +++++++++++++++++++++++++++-
0ac2f3
 include/uapi/linux/pkt_cls.h |  5 +++++
0ac2f3
 include/uapi/linux/tcp.h     | 10 +++++++++-
0ac2f3
 include/uapi/linux/tipc.h    |  1 +
0ac2f3
 4 files changed, 42 insertions(+), 2 deletions(-)
0ac2f3
0ac2f3
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
0ac2f3
index 79701d3e66f0b..3e195ff43fa01 100644
0ac2f3
--- a/include/uapi/linux/bpf.h
0ac2f3
+++ b/include/uapi/linux/bpf.h
0ac2f3
@@ -413,6 +413,7 @@ union bpf_attr {
0ac2f3
 		__u32		line_info_rec_size;	/* userspace bpf_line_info size */
0ac2f3
 		__aligned_u64	line_info;	/* line info */
0ac2f3
 		__u32		line_info_cnt;	/* number of bpf_line_info records */
0ac2f3
+		__u32		attach_btf_id;	/* in-kernel BTF type id to attach to */
0ac2f3
 	};
0ac2f3
 
0ac2f3
 	struct { /* anonymous struct used by BPF_OBJ_* commands */
0ac2f3
@@ -2741,6 +2742,30 @@ union bpf_attr {
0ac2f3
  *		**-EOPNOTSUPP** kernel configuration does not enable SYN cookies
0ac2f3
  *
0ac2f3
  *		**-EPROTONOSUPPORT** IP packet version is not 4 or 6
0ac2f3
+ *
0ac2f3
+ * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
0ac2f3
+ * 	Description
0ac2f3
+ * 		Write raw *data* blob into a special BPF perf event held by
0ac2f3
+ * 		*map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
0ac2f3
+ * 		event must have the following attributes: **PERF_SAMPLE_RAW**
0ac2f3
+ * 		as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and
0ac2f3
+ * 		**PERF_COUNT_SW_BPF_OUTPUT** as **config**.
0ac2f3
+ *
0ac2f3
+ * 		The *flags* are used to indicate the index in *map* for which
0ac2f3
+ * 		the value must be put, masked with **BPF_F_INDEX_MASK**.
0ac2f3
+ * 		Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU**
0ac2f3
+ * 		to indicate that the index of the current CPU core should be
0ac2f3
+ * 		used.
0ac2f3
+ *
0ac2f3
+ * 		The value to write, of *size*, is passed through eBPF stack and
0ac2f3
+ * 		pointed by *data*.
0ac2f3
+ *
0ac2f3
+ * 		*ctx* is a pointer to in-kernel struct sk_buff.
0ac2f3
+ *
0ac2f3
+ * 		This helper is similar to **bpf_perf_event_output**\ () but
0ac2f3
+ * 		restricted to raw_tracepoint bpf programs.
0ac2f3
+ * 	Return
0ac2f3
+ * 		0 on success, or a negative error in case of failure.
0ac2f3
  */
0ac2f3
 #define __BPF_FUNC_MAPPER(FN)		\
0ac2f3
 	FN(unspec),			\
0ac2f3
@@ -2853,7 +2878,8 @@ union bpf_attr {
0ac2f3
 	FN(sk_storage_get),		\
0ac2f3
 	FN(sk_storage_delete),		\
0ac2f3
 	FN(send_signal),		\
0ac2f3
-	FN(tcp_gen_syncookie),
0ac2f3
+	FN(tcp_gen_syncookie),		\
0ac2f3
+	FN(skb_output),
0ac2f3
 
0ac2f3
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
0ac2f3
  * function eBPF program intends to call
0ac2f3
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
0ac2f3
index b057aeeb63386..0a9ab625cba7b 100644
0ac2f3
--- a/include/uapi/linux/pkt_cls.h
0ac2f3
+++ b/include/uapi/linux/pkt_cls.h
0ac2f3
@@ -16,9 +16,14 @@ enum {
0ac2f3
 	TCA_ACT_STATS,
0ac2f3
 	TCA_ACT_PAD,
0ac2f3
 	TCA_ACT_COOKIE,
0ac2f3
+	TCA_ACT_FLAGS,
0ac2f3
 	__TCA_ACT_MAX
0ac2f3
 };
0ac2f3
 
0ac2f3
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
0ac2f3
+					 * actions stats.
0ac2f3
+					 */
0ac2f3
+
0ac2f3
 #define TCA_ACT_MAX __TCA_ACT_MAX
0ac2f3
 #define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
0ac2f3
 #define TCA_ACT_MAX_PRIO 32
0ac2f3
diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
0ac2f3
index 3fd9b29146b17..acb15ca8558c0 100644
0ac2f3
--- a/include/uapi/linux/tcp.h
0ac2f3
+++ b/include/uapi/linux/tcp.h
0ac2f3
@@ -155,6 +155,14 @@ enum {
0ac2f3
 	TCP_QUEUES_NR,
0ac2f3
 };
0ac2f3
 
0ac2f3
+/* why fastopen failed from client perspective */
0ac2f3
+enum tcp_fastopen_client_fail {
0ac2f3
+	TFO_STATUS_UNSPEC, /* catch-all */
0ac2f3
+	TFO_COOKIE_UNAVAILABLE, /* if not in TFO_CLIENT_NO_COOKIE mode */
0ac2f3
+	TFO_DATA_NOT_ACKED, /* SYN-ACK did not ack SYN data */
0ac2f3
+	TFO_SYN_RETRANSMITTED, /* SYN-ACK did not ack SYN data after timeout */
0ac2f3
+};
0ac2f3
+
0ac2f3
 /* for TCP_INFO socket option */
0ac2f3
 #define TCPI_OPT_TIMESTAMPS	1
0ac2f3
 #define TCPI_OPT_SACK		2
0ac2f3
@@ -211,7 +219,7 @@ struct tcp_info {
0ac2f3
 	__u8	tcpi_backoff;
0ac2f3
 	__u8	tcpi_options;
0ac2f3
 	__u8	tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
0ac2f3
-	__u8	tcpi_delivery_rate_app_limited:1;
0ac2f3
+	__u8	tcpi_delivery_rate_app_limited:1, tcpi_fastopen_client_fail:2;
0ac2f3
 
0ac2f3
 	__u32	tcpi_rto;
0ac2f3
 	__u32	tcpi_ato;
0ac2f3
diff --git a/include/uapi/linux/tipc.h b/include/uapi/linux/tipc.h
0ac2f3
index e16cb4e2af587..0f6f28b2e3010 100644
0ac2f3
--- a/include/uapi/linux/tipc.h
0ac2f3
+++ b/include/uapi/linux/tipc.h
0ac2f3
@@ -191,6 +191,7 @@ struct sockaddr_tipc {
0ac2f3
 #define TIPC_GROUP_JOIN         135     /* Takes struct tipc_group_req* */
0ac2f3
 #define TIPC_GROUP_LEAVE        136     /* No argument */
0ac2f3
 #define TIPC_SOCK_RECVQ_USED    137     /* Default: none (read only) */
0ac2f3
+#define TIPC_NODELAY            138     /* Default: false */
0ac2f3
 
0ac2f3
 /*
0ac2f3
  * Flag values
0ac2f3
-- 
0ac2f3
2.25.4
0ac2f3