naccyde / rpms / iproute

Forked from rpms/iproute 5 months ago
Clone

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

7e752c
From 356758b3303ab24b6fe8dccf94ed98ed7cbad224 Mon Sep 17 00:00:00 2001
7e752c
From: Andrea Claudi <aclaudi@redhat.com>
7e752c
Date: Thu, 13 Jun 2019 14:37:57 +0200
7e752c
Subject: [PATCH] Update kernel headers
7e752c
7e752c
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1716361
7e752c
Upstream Status: iproute2.git commit 17689d3075c8b
7e752c
7e752c
commit 17689d3075c8b9a29b8f398a57defb9dcabafe81
7e752c
Author: David Ahern <dsahern@gmail.com>
7e752c
Date:   Wed Dec 19 12:47:29 2018 -0800
7e752c
7e752c
    Update kernel headers
7e752c
7e752c
    Update kernel headers to commit
7e752c
       055722716c39 ("tipc: fix uninitialized value for broadcast retransmission")
7e752c
7e752c
    Signed-off-by: David Ahern <dsahern@gmail.com>
7e752c
---
7e752c
 include/uapi/linux/bpf.h           | 175 +++++++++++++++++++++--------
7e752c
 include/uapi/linux/btf.h           |  18 ++-
7e752c
 include/uapi/linux/if_bridge.h     |  21 ++++
7e752c
 include/uapi/linux/if_link.h       |   1 +
7e752c
 include/uapi/linux/if_tun.h        |   1 +
7e752c
 include/uapi/linux/neighbour.h     |   1 +
7e752c
 include/uapi/linux/net_namespace.h |   2 +
7e752c
 include/uapi/linux/snmp.h          |   1 +
7e752c
 8 files changed, 171 insertions(+), 49 deletions(-)
7e752c
7e752c
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
7e752c
index ff651ca661308..960a7f0a4d99b 100644
7e752c
--- a/include/uapi/linux/bpf.h
7e752c
+++ b/include/uapi/linux/bpf.h
7e752c
@@ -232,6 +232,20 @@ enum bpf_attach_type {
7e752c
  */
7e752c
 #define BPF_F_STRICT_ALIGNMENT	(1U << 0)
7e752c
 
7e752c
+/* If BPF_F_ANY_ALIGNMENT is used in BPF_PROF_LOAD command, the
7e752c
+ * verifier will allow any alignment whatsoever.  On platforms
7e752c
+ * with strict alignment requirements for loads ands stores (such
7e752c
+ * as sparc and mips) the verifier validates that all loads and
7e752c
+ * stores provably follow this requirement.  This flag turns that
7e752c
+ * checking and enforcement off.
7e752c
+ *
7e752c
+ * It is mostly used for testing when we want to validate the
7e752c
+ * context and memory access aspects of the verifier, but because
7e752c
+ * of an unaligned access the alignment check would trigger before
7e752c
+ * the one we are interested in.
7e752c
+ */
7e752c
+#define BPF_F_ANY_ALIGNMENT	(1U << 1)
7e752c
+
7e752c
 /* when bpf_ldimm64->src_reg == BPF_PSEUDO_MAP_FD, bpf_ldimm64->imm == fd */
7e752c
 #define BPF_PSEUDO_MAP_FD	1
7e752c
 
7e752c
@@ -257,9 +271,6 @@ enum bpf_attach_type {
7e752c
 /* Specify numa node during map creation */
7e752c
 #define BPF_F_NUMA_NODE		(1U << 2)
7e752c
 
7e752c
-/* flags for BPF_PROG_QUERY */
7e752c
-#define BPF_F_QUERY_EFFECTIVE	(1U << 0)
7e752c
-
7e752c
 #define BPF_OBJ_NAME_LEN 16U
7e752c
 
7e752c
 /* Flags for accessing BPF object */
7e752c
@@ -269,6 +280,12 @@ enum bpf_attach_type {
7e752c
 /* Flag for stack_map, store build_id+offset instead of pointer */
7e752c
 #define BPF_F_STACK_BUILD_ID	(1U << 5)
7e752c
 
7e752c
+/* Zero-initialize hash function seed. This should only be used for testing. */
7e752c
+#define BPF_F_ZERO_SEED		(1U << 6)
7e752c
+
7e752c
+/* flags for BPF_PROG_QUERY */
7e752c
+#define BPF_F_QUERY_EFFECTIVE	(1U << 0)
7e752c
+
7e752c
 enum bpf_stack_build_id_status {
7e752c
 	/* user space need an empty entry to identify end of a trace */
7e752c
 	BPF_STACK_BUILD_ID_EMPTY = 0,
7e752c
@@ -335,6 +352,13 @@ union bpf_attr {
7e752c
 		 * (context accesses, allowed helpers, etc).
7e752c
 		 */
7e752c
 		__u32		expected_attach_type;
7e752c
+		__u32		prog_btf_fd;	/* fd pointing to BTF type data */
7e752c
+		__u32		func_info_rec_size;	/* userspace bpf_func_info size */
7e752c
+		__aligned_u64	func_info;	/* func info */
7e752c
+		__u32		func_info_cnt;	/* number of bpf_func_info records */
7e752c
+		__u32		line_info_rec_size;	/* userspace bpf_line_info size */
7e752c
+		__aligned_u64	line_info;	/* line info */
7e752c
+		__u32		line_info_cnt;	/* number of bpf_line_info records */
7e752c
 	};
7e752c
 
7e752c
 	struct { /* anonymous struct used by BPF_OBJ_* commands */
7e752c
@@ -353,8 +377,11 @@ union bpf_attr {
7e752c
 	struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */
7e752c
 		__u32		prog_fd;
7e752c
 		__u32		retval;
7e752c
-		__u32		data_size_in;
7e752c
-		__u32		data_size_out;
7e752c
+		__u32		data_size_in;	/* input: len of data_in */
7e752c
+		__u32		data_size_out;	/* input/output: len of data_out
7e752c
+						 *   returns ENOSPC if data_out
7e752c
+						 *   is too small.
7e752c
+						 */
7e752c
 		__aligned_u64	data_in;
7e752c
 		__aligned_u64	data_out;
7e752c
 		__u32		repeat;
7e752c
@@ -475,18 +502,6 @@ union bpf_attr {
7e752c
  * 	Return
7e752c
  * 		0 on success, or a negative error in case of failure.
7e752c
  *
7e752c
- * int bpf_map_pop_elem(struct bpf_map *map, void *value)
7e752c
- * 	Description
7e752c
- * 		Pop an element from *map*.
7e752c
- * Return
7e752c
- * 		0 on success, or a negative error in case of failure.
7e752c
- *
7e752c
- * int bpf_map_peek_elem(struct bpf_map *map, void *value)
7e752c
- * 	Description
7e752c
- * 		Get an element from *map* without removing it.
7e752c
- * Return
7e752c
- * 		0 on success, or a negative error in case of failure.
7e752c
- *
7e752c
  * int bpf_probe_read(void *dst, u32 size, const void *src)
7e752c
  * 	Description
7e752c
  * 		For tracing programs, safely attempt to read *size* bytes from
7e752c
@@ -1910,9 +1925,9 @@ union bpf_attr {
7e752c
  *		is set to metric from route (IPv4/IPv6 only), and ifindex
7e752c
  *		is set to the device index of the nexthop from the FIB lookup.
7e752c
  *
7e752c
- *             *plen* argument is the size of the passed in struct.
7e752c
- *             *flags* argument can be a combination of one or more of the
7e752c
- *             following values:
7e752c
+ *		*plen* argument is the size of the passed in struct.
7e752c
+ *		*flags* argument can be a combination of one or more of the
7e752c
+ *		following values:
7e752c
  *
7e752c
  *		**BPF_FIB_LOOKUP_DIRECT**
7e752c
  *			Do a direct table lookup vs full lookup using FIB
7e752c
@@ -1921,9 +1936,9 @@ union bpf_attr {
7e752c
  *			Perform lookup from an egress perspective (default is
7e752c
  *			ingress).
7e752c
  *
7e752c
- *             *ctx* is either **struct xdp_md** for XDP programs or
7e752c
- *             **struct sk_buff** tc cls_act programs.
7e752c
- *     Return
7e752c
+ *		*ctx* is either **struct xdp_md** for XDP programs or
7e752c
+ *		**struct sk_buff** tc cls_act programs.
7e752c
+ *	Return
7e752c
  *		* < 0 if any input argument is invalid
7e752c
  *		*   0 on success (packet is forwarded, nexthop neighbor exists)
7e752c
  *		* > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
7e752c
@@ -2068,8 +2083,8 @@ union bpf_attr {
7e752c
  *		translated to a keycode using the rc keymap, and reported as
7e752c
  *		an input key down event. After a period a key up event is
7e752c
  *		generated. This period can be extended by calling either
7e752c
- *		**bpf_rc_keydown** () again with the same values, or calling
7e752c
- *		**bpf_rc_repeat** ().
7e752c
+ *		**bpf_rc_keydown**\ () again with the same values, or calling
7e752c
+ *		**bpf_rc_repeat**\ ().
7e752c
  *
7e752c
  *		Some protocols include a toggle bit, in case the button	was
7e752c
  *		released and pressed again between consecutive scancodes.
7e752c
@@ -2152,21 +2167,22 @@ union bpf_attr {
7e752c
  *		The *flags* meaning is specific for each map type,
7e752c
  *		and has to be 0 for cgroup local storage.
7e752c
  *
7e752c
- *		Depending on the bpf program type, a local storage area
7e752c
- *		can be shared between multiple instances of the bpf program,
7e752c
+ *		Depending on the BPF program type, a local storage area
7e752c
+ *		can be shared between multiple instances of the BPF program,
7e752c
  *		running simultaneously.
7e752c
  *
7e752c
  *		A user should care about the synchronization by himself.
7e752c
- *		For example, by using the BPF_STX_XADD instruction to alter
7e752c
+ *		For example, by using the **BPF_STX_XADD** instruction to alter
7e752c
  *		the shared data.
7e752c
  *	Return
7e752c
- *		Pointer to the local storage area.
7e752c
+ *		A pointer to the local storage area.
7e752c
  *
7e752c
  * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
7e752c
  *	Description
7e752c
- *		Select a SO_REUSEPORT sk from a	BPF_MAP_TYPE_REUSEPORT_ARRAY map
7e752c
- *		It checks the selected sk is matching the incoming
7e752c
- *		request in the skb.
7e752c
+ *		Select a **SO_REUSEPORT** socket from a
7e752c
+ *		**BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
7e752c
+ *		It checks the selected socket is matching the incoming
7e752c
+ *		request in the socket buffer.
7e752c
  *	Return
7e752c
  *		0 on success, or a negative error in case of failure.
7e752c
  *
7e752c
@@ -2174,7 +2190,7 @@ union bpf_attr {
7e752c
  *	Description
7e752c
  *		Look for TCP socket matching *tuple*, optionally in a child
7e752c
  *		network namespace *netns*. The return value must be checked,
7e752c
- *		and if non-NULL, released via **bpf_sk_release**\ ().
7e752c
+ *		and if non-**NULL**, released via **bpf_sk_release**\ ().
7e752c
  *
7e752c
  *		The *ctx* should point to the context of the program, such as
7e752c
  *		the skb or socket (depending on the hook in use). This is used
7e752c
@@ -2202,15 +2218,15 @@ union bpf_attr {
7e752c
  *		This helper is available only if the kernel was compiled with
7e752c
  *		**CONFIG_NET** configuration option.
7e752c
  *	Return
7e752c
- *		Pointer to *struct bpf_sock*, or NULL in case of failure.
7e752c
- *		For sockets with reuseport option, the *struct bpf_sock*
7e752c
- *		result is from reuse->socks[] using the hash of the tuple.
7e752c
+ *		Pointer to **struct bpf_sock**, or **NULL** in case of failure.
7e752c
+ *		For sockets with reuseport option, the **struct bpf_sock**
7e752c
+ *		result is from **reuse->socks**\ [] using the hash of the tuple.
7e752c
  *
7e752c
  * struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u64 netns, u64 flags)
7e752c
  *	Description
7e752c
  *		Look for UDP socket matching *tuple*, optionally in a child
7e752c
  *		network namespace *netns*. The return value must be checked,
7e752c
- *		and if non-NULL, released via **bpf_sk_release**\ ().
7e752c
+ *		and if non-**NULL**, released via **bpf_sk_release**\ ().
7e752c
  *
7e752c
  *		The *ctx* should point to the context of the program, such as
7e752c
  *		the skb or socket (depending on the hook in use). This is used
7e752c
@@ -2238,33 +2254,71 @@ union bpf_attr {
7e752c
  *		This helper is available only if the kernel was compiled with
7e752c
  *		**CONFIG_NET** configuration option.
7e752c
  *	Return
7e752c
- *		Pointer to *struct bpf_sock*, or NULL in case of failure.
7e752c
- *		For sockets with reuseport option, the *struct bpf_sock*
7e752c
- *		result is from reuse->socks[] using the hash of the tuple.
7e752c
+ *		Pointer to **struct bpf_sock**, or **NULL** in case of failure.
7e752c
+ *		For sockets with reuseport option, the **struct bpf_sock**
7e752c
+ *		result is from **reuse->socks**\ [] using the hash of the tuple.
7e752c
  *
7e752c
- * int bpf_sk_release(struct bpf_sock *sk)
7e752c
+ * int bpf_sk_release(struct bpf_sock *sock)
7e752c
  *	Description
7e752c
- *		Release the reference held by *sock*. *sock* must be a non-NULL
7e752c
- *		pointer that was returned from bpf_sk_lookup_xxx\ ().
7e752c
+ *		Release the reference held by *sock*. *sock* must be a
7e752c
+ *		non-**NULL** pointer that was returned from
7e752c
+ *		**bpf_sk_lookup_xxx**\ ().
7e752c
  *	Return
7e752c
  *		0 on success, or a negative error in case of failure.
7e752c
  *
7e752c
+ * int bpf_map_pop_elem(struct bpf_map *map, void *value)
7e752c
+ * 	Description
7e752c
+ * 		Pop an element from *map*.
7e752c
+ * 	Return
7e752c
+ * 		0 on success, or a negative error in case of failure.
7e752c
+ *
7e752c
+ * int bpf_map_peek_elem(struct bpf_map *map, void *value)
7e752c
+ * 	Description
7e752c
+ * 		Get an element from *map* without removing it.
7e752c
+ * 	Return
7e752c
+ * 		0 on success, or a negative error in case of failure.
7e752c
+ *
7e752c
  * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
7e752c
  *	Description
7e752c
- *		For socket policies, insert *len* bytes into msg at offset
7e752c
+ *		For socket policies, insert *len* bytes into *msg* at offset
7e752c
  *		*start*.
7e752c
  *
7e752c
  *		If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a
7e752c
- *		*msg* it may want to insert metadata or options into the msg.
7e752c
+ *		*msg* it may want to insert metadata or options into the *msg*.
7e752c
  *		This can later be read and used by any of the lower layer BPF
7e752c
  *		hooks.
7e752c
  *
7e752c
  *		This helper may fail if under memory pressure (a malloc
7e752c
  *		fails) in these cases BPF programs will get an appropriate
7e752c
  *		error and BPF programs will need to handle them.
7e752c
+ *	Return
7e752c
+ *		0 on success, or a negative error in case of failure.
7e752c
  *
7e752c
+ * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)
7e752c
+ *	Description
7e752c
+ *		Will remove *pop* bytes from a *msg* starting at byte *start*.
7e752c
+ *		This may result in **ENOMEM** errors under certain situations if
7e752c
+ *		an allocation and copy are required due to a full ring buffer.
7e752c
+ *		However, the helper will try to avoid doing the allocation
7e752c
+ *		if possible. Other errors can occur if input parameters are
7e752c
+ *		invalid either due to *start* byte not being valid part of *msg*
7e752c
+ *		payload and/or *pop* value being to large.
7e752c
  *	Return
7e752c
  *		0 on success, or a negative error in case of failure.
7e752c
+ *
7e752c
+ * int bpf_rc_pointer_rel(void *ctx, s32 rel_x, s32 rel_y)
7e752c
+ *	Description
7e752c
+ *		This helper is used in programs implementing IR decoding, to
7e752c
+ *		report a successfully decoded pointer movement.
7e752c
+ *
7e752c
+ *		The *ctx* should point to the lirc sample as passed into
7e752c
+ *		the program.
7e752c
+ *
7e752c
+ *		This helper is only available is the kernel was compiled with
7e752c
+ *		the **CONFIG_BPF_LIRC_MODE2** configuration option set to
7e752c
+ *		"**y**".
7e752c
+ *	Return
7e752c
+ *		0
7e752c
  */
7e752c
 #define __BPF_FUNC_MAPPER(FN)		\
7e752c
 	FN(unspec),			\
7e752c
@@ -2357,7 +2411,9 @@ union bpf_attr {
7e752c
 	FN(map_push_elem),		\
7e752c
 	FN(map_pop_elem),		\
7e752c
 	FN(map_peek_elem),		\
7e752c
-	FN(msg_push_data),
7e752c
+	FN(msg_push_data),		\
7e752c
+	FN(msg_pop_data),		\
7e752c
+	FN(rc_pointer_rel),
7e752c
 
7e752c
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
7e752c
  * function eBPF program intends to call
7e752c
@@ -2474,6 +2530,8 @@ struct __sk_buff {
7e752c
 
7e752c
 	__u32 data_meta;
7e752c
 	__bpf_md_ptr(struct bpf_flow_keys *, flow_keys);
7e752c
+	__u64 tstamp;
7e752c
+	__u32 wire_len;
7e752c
 };
7e752c
 
7e752c
 struct bpf_tunnel_key {
7e752c
@@ -2649,6 +2707,16 @@ struct bpf_prog_info {
7e752c
 	__u32 nr_jited_func_lens;
7e752c
 	__aligned_u64 jited_ksyms;
7e752c
 	__aligned_u64 jited_func_lens;
7e752c
+	__u32 btf_id;
7e752c
+	__u32 func_info_rec_size;
7e752c
+	__aligned_u64 func_info;
7e752c
+	__u32 nr_func_info;
7e752c
+	__u32 nr_line_info;
7e752c
+	__aligned_u64 line_info;
7e752c
+	__aligned_u64 jited_line_info;
7e752c
+	__u32 nr_jited_line_info;
7e752c
+	__u32 line_info_rec_size;
7e752c
+	__u32 jited_line_info_rec_size;
7e752c
 } __attribute__((aligned(8)));
7e752c
 
7e752c
 struct bpf_map_info {
7e752c
@@ -2960,4 +3028,19 @@ struct bpf_flow_keys {
7e752c
 	};
7e752c
 };
7e752c
 
7e752c
+struct bpf_func_info {
7e752c
+	__u32	insn_off;
7e752c
+	__u32	type_id;
7e752c
+};
7e752c
+
7e752c
+#define BPF_LINE_INFO_LINE_NUM(line_col)	((line_col) >> 10)
7e752c
+#define BPF_LINE_INFO_LINE_COL(line_col)	((line_col) & 0x3ff)
7e752c
+
7e752c
+struct bpf_line_info {
7e752c
+	__u32	insn_off;
7e752c
+	__u32	file_name_off;
7e752c
+	__u32	line_off;
7e752c
+	__u32	line_col;
7e752c
+};
7e752c
+
7e752c
 #endif /* __LINUX_BPF_H__ */
7e752c
diff --git a/include/uapi/linux/btf.h b/include/uapi/linux/btf.h
7e752c
index 8d2a8ffad56f9..f43d5a8e13d31 100644
7e752c
--- a/include/uapi/linux/btf.h
7e752c
+++ b/include/uapi/linux/btf.h
7e752c
@@ -40,7 +40,8 @@ struct btf_type {
7e752c
 	/* "size" is used by INT, ENUM, STRUCT and UNION.
7e752c
 	 * "size" tells the size of the type it is describing.
7e752c
 	 *
7e752c
-	 * "type" is used by PTR, TYPEDEF, VOLATILE, CONST and RESTRICT.
7e752c
+	 * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
7e752c
+	 * FUNC and FUNC_PROTO.
7e752c
 	 * "type" is a type_id referring to another type.
7e752c
 	 */
7e752c
 	union {
7e752c
@@ -64,8 +65,10 @@ struct btf_type {
7e752c
 #define BTF_KIND_VOLATILE	9	/* Volatile	*/
7e752c
 #define BTF_KIND_CONST		10	/* Const	*/
7e752c
 #define BTF_KIND_RESTRICT	11	/* Restrict	*/
7e752c
-#define BTF_KIND_MAX		11
7e752c
-#define NR_BTF_KINDS		12
7e752c
+#define BTF_KIND_FUNC		12	/* Function	*/
7e752c
+#define BTF_KIND_FUNC_PROTO	13	/* Function Proto	*/
7e752c
+#define BTF_KIND_MAX		13
7e752c
+#define NR_BTF_KINDS		14
7e752c
 
7e752c
 /* For some specific BTF_KIND, "struct btf_type" is immediately
7e752c
  * followed by extra data.
7e752c
@@ -110,4 +113,13 @@ struct btf_member {
7e752c
 	__u32	offset;	/* offset in bits */
7e752c
 };
7e752c
 
7e752c
+/* BTF_KIND_FUNC_PROTO is followed by multiple "struct btf_param".
7e752c
+ * The exact number of btf_param is stored in the vlen (of the
7e752c
+ * info in "struct btf_type").
7e752c
+ */
7e752c
+struct btf_param {
7e752c
+	__u32	name_off;
7e752c
+	__u32	type;
7e752c
+};
7e752c
+
7e752c
 #endif /* __LINUX_BTF_H__ */
7e752c
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
7e752c
index bdfecf9411320..04f763cf53029 100644
7e752c
--- a/include/uapi/linux/if_bridge.h
7e752c
+++ b/include/uapi/linux/if_bridge.h
7e752c
@@ -292,4 +292,25 @@ struct br_mcast_stats {
7e752c
 	__u64 mcast_bytes[BR_MCAST_DIR_SIZE];
7e752c
 	__u64 mcast_packets[BR_MCAST_DIR_SIZE];
7e752c
 };
7e752c
+
7e752c
+/* bridge boolean options
7e752c
+ * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
7e752c
+ *
7e752c
+ * IMPORTANT: if adding a new option do not forget to handle
7e752c
+ *            it in br_boolopt_toggle/get and bridge sysfs
7e752c
+ */
7e752c
+enum br_boolopt_id {
7e752c
+	BR_BOOLOPT_NO_LL_LEARN,
7e752c
+	BR_BOOLOPT_MAX
7e752c
+};
7e752c
+
7e752c
+/* struct br_boolopt_multi - change multiple bridge boolean options
7e752c
+ *
7e752c
+ * @optval: new option values (bit per option)
7e752c
+ * @optmask: options to change (bit per option)
7e752c
+ */
7e752c
+struct br_boolopt_multi {
7e752c
+	__u32 optval;
7e752c
+	__u32 optmask;
7e752c
+};
7e752c
 #endif /* _LINUX_IF_BRIDGE_H */
7e752c
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
7e752c
index 52e95197e0790..8e6087aee2c29 100644
7e752c
--- a/include/uapi/linux/if_link.h
7e752c
+++ b/include/uapi/linux/if_link.h
7e752c
@@ -286,6 +286,7 @@ enum {
7e752c
 	IFLA_BR_MCAST_IGMP_VERSION,
7e752c
 	IFLA_BR_MCAST_MLD_VERSION,
7e752c
 	IFLA_BR_VLAN_STATS_PER_PORT,
7e752c
+	IFLA_BR_MULTI_BOOLOPT,
7e752c
 	__IFLA_BR_MAX,
7e752c
 };
7e752c
 
7e752c
diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h
7e752c
index be9b744a16458..2f01165514a77 100644
7e752c
--- a/include/uapi/linux/if_tun.h
7e752c
+++ b/include/uapi/linux/if_tun.h
7e752c
@@ -59,6 +59,7 @@
7e752c
 #define TUNGETVNETBE _IOR('T', 223, int)
7e752c
 #define TUNSETSTEERINGEBPF _IOR('T', 224, int)
7e752c
 #define TUNSETFILTEREBPF _IOR('T', 225, int)
7e752c
+#define TUNSETCARRIER _IOW('T', 226, int)
7e752c
 
7e752c
 /* TUNSETIFF ifr flags */
7e752c
 #define IFF_TUN		0x0001
7e752c
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
7e752c
index 998155444e0db..cd144e3099a3c 100644
7e752c
--- a/include/uapi/linux/neighbour.h
7e752c
+++ b/include/uapi/linux/neighbour.h
7e752c
@@ -28,6 +28,7 @@ enum {
7e752c
 	NDA_MASTER,
7e752c
 	NDA_LINK_NETNSID,
7e752c
 	NDA_SRC_VNI,
7e752c
+	NDA_PROTOCOL,  /* Originator of entry */
7e752c
 	__NDA_MAX
7e752c
 };
7e752c
 
7e752c
diff --git a/include/uapi/linux/net_namespace.h b/include/uapi/linux/net_namespace.h
7e752c
index 6d64d0716800f..fa81f1e5ffa8f 100644
7e752c
--- a/include/uapi/linux/net_namespace.h
7e752c
+++ b/include/uapi/linux/net_namespace.h
7e752c
@@ -16,6 +16,8 @@ enum {
7e752c
 	NETNSA_NSID,
7e752c
 	NETNSA_PID,
7e752c
 	NETNSA_FD,
7e752c
+	NETNSA_TARGET_NSID,
7e752c
+	NETNSA_CURRENT_NSID,
7e752c
 	__NETNSA_MAX,
7e752c
 };
7e752c
 
7e752c
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
7e752c
index f80135e5feaa8..86dc24a96c90a 100644
7e752c
--- a/include/uapi/linux/snmp.h
7e752c
+++ b/include/uapi/linux/snmp.h
7e752c
@@ -243,6 +243,7 @@ enum
7e752c
 	LINUX_MIB_TCPREQQFULLDROP,		/* TCPReqQFullDrop */
7e752c
 	LINUX_MIB_TCPRETRANSFAIL,		/* TCPRetransFail */
7e752c
 	LINUX_MIB_TCPRCVCOALESCE,		/* TCPRcvCoalesce */
7e752c
+	LINUX_MIB_TCPBACKLOGCOALESCE,		/* TCPBacklogCoalesce */
7e752c
 	LINUX_MIB_TCPOFOQUEUE,			/* TCPOFOQueue */
7e752c
 	LINUX_MIB_TCPOFODROP,			/* TCPOFODrop */
7e752c
 	LINUX_MIB_TCPOFOMERGE,			/* TCPOFOMerge */
7e752c
-- 
7e752c
2.20.1
7e752c