naccyde / rpms / iproute

Forked from rpms/iproute 5 months ago
Clone

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

7e752c
From 7bd1daafe80ecd7e7419616fabadfe41c6e4fe7a Mon Sep 17 00:00:00 2001
7e752c
From: Phil Sutter <psutter@redhat.com>
7e752c
Date: Thu, 13 Sep 2018 21:29:59 +0200
7e752c
Subject: [PATCH] Update kernel headers
7e752c
7e752c
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1615915
7e752c
Upstream Status: RHEL-only
7e752c
7e752c
This updates include/uapi/linux to the state of upstream commit
7e752c
761ec9e29ff867452057f59dc6ca430688b409ea.
7e752c
---
7e752c
 include/uapi/linux/bpf.h                  |   9 +-
7e752c
 include/uapi/linux/btf.h                  | 113 +++++++++++++++++++++++++
7e752c
 include/uapi/linux/devlink.h              |  42 ++++++++++
7e752c
 include/uapi/linux/if_link.h              |   4 +
7e752c
 include/uapi/linux/ila.h                  |   1 +
7e752c
 include/uapi/linux/pkt_cls.h              |   9 ++
7e752c
 include/uapi/linux/pkt_sched.h            | 135 ++++++++++++++++++++++++++++++
7e752c
 include/uapi/linux/sctp.h                 |   5 ++
7e752c
 include/uapi/linux/tc_act/tc_pedit.h      |   9 +-
7e752c
 include/uapi/linux/tc_act/tc_skbedit.h    |   2 +
7e752c
 include/uapi/linux/tc_act/tc_tunnel_key.h |  28 +++++++
7e752c
 include/uapi/linux/tcp.h                  |   4 -
7e752c
 include/uapi/linux/tipc_netlink.h         |  14 ++++
7e752c
 13 files changed, 365 insertions(+), 10 deletions(-)
7e752c
 create mode 100644 include/uapi/linux/btf.h
7e752c
7e752c
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
7e752c
index 57e7390..b9a6367 100644
7e752c
--- a/include/uapi/linux/bpf.h
7e752c
+++ b/include/uapi/linux/bpf.h
7e752c
@@ -1826,7 +1826,7 @@ union bpf_attr {
7e752c
  * 		A non-negative value equal to or less than *size* on success,
7e752c
  * 		or a negative error in case of failure.
7e752c
  *
7e752c
- * int skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
7e752c
+ * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
7e752c
  * 	Description
7e752c
  * 		This helper is similar to **bpf_skb_load_bytes**\ () in that
7e752c
  * 		it provides an easy way to load *len* bytes from *offset*
7e752c
@@ -1877,7 +1877,7 @@ union bpf_attr {
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
- *		*     packet is not forwarded or needs assist from full stack
7e752c
+ *		  packet is not forwarded or needs assist from full stack
7e752c
  *
7e752c
  * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
7e752c
  *	Description
7e752c
@@ -2033,7 +2033,6 @@ union bpf_attr {
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
- *
7e752c
  *	Return
7e752c
  *		0
7e752c
  *
7e752c
@@ -2053,7 +2052,6 @@ union bpf_attr {
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
- *
7e752c
  *	Return
7e752c
  *		0
7e752c
  *
7e752c
@@ -2557,6 +2555,9 @@ enum {
7e752c
 					 * Arg1: old_state
7e752c
 					 * Arg2: new_state
7e752c
 					 */
7e752c
+	BPF_SOCK_OPS_TCP_LISTEN_CB,	/* Called on listen(2), right after
7e752c
+					 * socket transition to LISTEN state.
7e752c
+					 */
7e752c
 };
7e752c
 
7e752c
 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
7e752c
diff --git a/include/uapi/linux/btf.h b/include/uapi/linux/btf.h
7e752c
new file mode 100644
7e752c
index 0000000..5dd580a
7e752c
--- /dev/null
7e752c
+++ b/include/uapi/linux/btf.h
7e752c
@@ -0,0 +1,113 @@
7e752c
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
7e752c
+/* Copyright (c) 2018 Facebook */
7e752c
+#ifndef __LINUX_BTF_H__
7e752c
+#define __LINUX_BTF_H__
7e752c
+
7e752c
+#include <linux/types.h>
7e752c
+
7e752c
+#define BTF_MAGIC	0xeB9F
7e752c
+#define BTF_VERSION	1
7e752c
+
7e752c
+struct btf_header {
7e752c
+	__u16	magic;
7e752c
+	__u8	version;
7e752c
+	__u8	flags;
7e752c
+	__u32	hdr_len;
7e752c
+
7e752c
+	/* All offsets are in bytes relative to the end of this header */
7e752c
+	__u32	type_off;	/* offset of type section	*/
7e752c
+	__u32	type_len;	/* length of type section	*/
7e752c
+	__u32	str_off;	/* offset of string section	*/
7e752c
+	__u32	str_len;	/* length of string section	*/
7e752c
+};
7e752c
+
7e752c
+/* Max # of type identifier */
7e752c
+#define BTF_MAX_TYPE	0x0000ffff
7e752c
+/* Max offset into the string section */
7e752c
+#define BTF_MAX_NAME_OFFSET	0x0000ffff
7e752c
+/* Max # of struct/union/enum members or func args */
7e752c
+#define BTF_MAX_VLEN	0xffff
7e752c
+
7e752c
+struct btf_type {
7e752c
+	__u32 name_off;
7e752c
+	/* "info" bits arrangement
7e752c
+	 * bits  0-15: vlen (e.g. # of struct's members)
7e752c
+	 * bits 16-23: unused
7e752c
+	 * bits 24-27: kind (e.g. int, ptr, array...etc)
7e752c
+	 * bits 28-31: unused
7e752c
+	 */
7e752c
+	__u32 info;
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 a type_id referring to another type.
7e752c
+	 */
7e752c
+	union {
7e752c
+		__u32 size;
7e752c
+		__u32 type;
7e752c
+	};
7e752c
+};
7e752c
+
7e752c
+#define BTF_INFO_KIND(info)	(((info) >> 24) & 0x0f)
7e752c
+#define BTF_INFO_VLEN(info)	((info) & 0xffff)
7e752c
+
7e752c
+#define BTF_KIND_UNKN		0	/* Unknown	*/
7e752c
+#define BTF_KIND_INT		1	/* Integer	*/
7e752c
+#define BTF_KIND_PTR		2	/* Pointer	*/
7e752c
+#define BTF_KIND_ARRAY		3	/* Array	*/
7e752c
+#define BTF_KIND_STRUCT		4	/* Struct	*/
7e752c
+#define BTF_KIND_UNION		5	/* Union	*/
7e752c
+#define BTF_KIND_ENUM		6	/* Enumeration	*/
7e752c
+#define BTF_KIND_FWD		7	/* Forward	*/
7e752c
+#define BTF_KIND_TYPEDEF	8	/* Typedef	*/
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
+
7e752c
+/* For some specific BTF_KIND, "struct btf_type" is immediately
7e752c
+ * followed by extra data.
7e752c
+ */
7e752c
+
7e752c
+/* BTF_KIND_INT is followed by a u32 and the following
7e752c
+ * is the 32 bits arrangement:
7e752c
+ */
7e752c
+#define BTF_INT_ENCODING(VAL)	(((VAL) & 0x0f000000) >> 24)
7e752c
+#define BTF_INT_OFFSET(VAL)	(((VAL  & 0x00ff0000)) >> 16)
7e752c
+#define BTF_INT_BITS(VAL)	((VAL)  & 0x0000ffff)
7e752c
+
7e752c
+/* Attributes stored in the BTF_INT_ENCODING */
7e752c
+#define BTF_INT_SIGNED	(1 << 0)
7e752c
+#define BTF_INT_CHAR	(1 << 1)
7e752c
+#define BTF_INT_BOOL	(1 << 2)
7e752c
+
7e752c
+/* BTF_KIND_ENUM is followed by multiple "struct btf_enum".
7e752c
+ * The exact number of btf_enum is stored in the vlen (of the
7e752c
+ * info in "struct btf_type").
7e752c
+ */
7e752c
+struct btf_enum {
7e752c
+	__u32	name_off;
7e752c
+	__s32	val;
7e752c
+};
7e752c
+
7e752c
+/* BTF_KIND_ARRAY is followed by one "struct btf_array" */
7e752c
+struct btf_array {
7e752c
+	__u32	type;
7e752c
+	__u32	index_type;
7e752c
+	__u32	nelems;
7e752c
+};
7e752c
+
7e752c
+/* BTF_KIND_STRUCT and BTF_KIND_UNION are followed
7e752c
+ * by multiple "struct btf_member".  The exact number
7e752c
+ * of btf_member is stored in the vlen (of the info in
7e752c
+ * "struct btf_type").
7e752c
+ */
7e752c
+struct btf_member {
7e752c
+	__u32	name_off;
7e752c
+	__u32	type;
7e752c
+	__u32	offset;	/* offset in bits */
7e752c
+};
7e752c
+
7e752c
+#endif /* __LINUX_BTF_H__ */
7e752c
diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h
7e752c
index 493f71f..5ee0e73 100644
7e752c
--- a/include/uapi/linux/devlink.h
7e752c
+++ b/include/uapi/linux/devlink.h
7e752c
@@ -78,6 +78,17 @@ enum devlink_command {
7e752c
 	 */
7e752c
 	DEVLINK_CMD_RELOAD,
7e752c
 
7e752c
+	DEVLINK_CMD_PARAM_GET,		/* can dump */
7e752c
+	DEVLINK_CMD_PARAM_SET,
7e752c
+	DEVLINK_CMD_PARAM_NEW,
7e752c
+	DEVLINK_CMD_PARAM_DEL,
7e752c
+
7e752c
+	DEVLINK_CMD_REGION_GET,
7e752c
+	DEVLINK_CMD_REGION_SET,
7e752c
+	DEVLINK_CMD_REGION_NEW,
7e752c
+	DEVLINK_CMD_REGION_DEL,
7e752c
+	DEVLINK_CMD_REGION_READ,
7e752c
+
7e752c
 	/* add new commands above here */
7e752c
 	__DEVLINK_CMD_MAX,
7e752c
 	DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
7e752c
@@ -142,6 +153,16 @@ enum devlink_port_flavour {
7e752c
 				   */
7e752c
 };
7e752c
 
7e752c
+enum devlink_param_cmode {
7e752c
+	DEVLINK_PARAM_CMODE_RUNTIME,
7e752c
+	DEVLINK_PARAM_CMODE_DRIVERINIT,
7e752c
+	DEVLINK_PARAM_CMODE_PERMANENT,
7e752c
+
7e752c
+	/* Add new configuration modes above */
7e752c
+	__DEVLINK_PARAM_CMODE_MAX,
7e752c
+	DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1
7e752c
+};
7e752c
+
7e752c
 enum devlink_attr {
7e752c
 	/* don't change the order or add anything between, this is ABI! */
7e752c
 	DEVLINK_ATTR_UNSPEC,
7e752c
@@ -238,6 +259,27 @@ enum devlink_attr {
7e752c
 	DEVLINK_ATTR_PORT_NUMBER,		/* u32 */
7e752c
 	DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER,	/* u32 */
7e752c
 
7e752c
+	DEVLINK_ATTR_PARAM,			/* nested */
7e752c
+	DEVLINK_ATTR_PARAM_NAME,		/* string */
7e752c
+	DEVLINK_ATTR_PARAM_GENERIC,		/* flag */
7e752c
+	DEVLINK_ATTR_PARAM_TYPE,		/* u8 */
7e752c
+	DEVLINK_ATTR_PARAM_VALUES_LIST,		/* nested */
7e752c
+	DEVLINK_ATTR_PARAM_VALUE,		/* nested */
7e752c
+	DEVLINK_ATTR_PARAM_VALUE_DATA,		/* dynamic */
7e752c
+	DEVLINK_ATTR_PARAM_VALUE_CMODE,		/* u8 */
7e752c
+
7e752c
+	DEVLINK_ATTR_REGION_NAME,               /* string */
7e752c
+	DEVLINK_ATTR_REGION_SIZE,               /* u64 */
7e752c
+	DEVLINK_ATTR_REGION_SNAPSHOTS,          /* nested */
7e752c
+	DEVLINK_ATTR_REGION_SNAPSHOT,           /* nested */
7e752c
+	DEVLINK_ATTR_REGION_SNAPSHOT_ID,        /* u32 */
7e752c
+
7e752c
+	DEVLINK_ATTR_REGION_CHUNKS,             /* nested */
7e752c
+	DEVLINK_ATTR_REGION_CHUNK,              /* nested */
7e752c
+	DEVLINK_ATTR_REGION_CHUNK_DATA,         /* binary */
7e752c
+	DEVLINK_ATTR_REGION_CHUNK_ADDR,         /* u64 */
7e752c
+	DEVLINK_ATTR_REGION_CHUNK_LEN,          /* u64 */
7e752c
+
7e752c
 	/* add new attributes above here, update the policy in devlink.c */
7e752c
 
7e752c
 	__DEVLINK_ATTR_MAX,
7e752c
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
7e752c
index 4eccc7f..1c64ed4 100644
7e752c
--- a/include/uapi/linux/if_link.h
7e752c
+++ b/include/uapi/linux/if_link.h
7e752c
@@ -918,6 +918,7 @@ enum {
7e752c
 	XDP_ATTACHED_DRV,
7e752c
 	XDP_ATTACHED_SKB,
7e752c
 	XDP_ATTACHED_HW,
7e752c
+	XDP_ATTACHED_MULTI,
7e752c
 };
7e752c
 
7e752c
 enum {
7e752c
@@ -926,6 +927,9 @@ enum {
7e752c
 	IFLA_XDP_ATTACHED,
7e752c
 	IFLA_XDP_FLAGS,
7e752c
 	IFLA_XDP_PROG_ID,
7e752c
+	IFLA_XDP_DRV_PROG_ID,
7e752c
+	IFLA_XDP_SKB_PROG_ID,
7e752c
+	IFLA_XDP_HW_PROG_ID,
7e752c
 	__IFLA_XDP_MAX,
7e752c
 };
7e752c
 
7e752c
diff --git a/include/uapi/linux/ila.h b/include/uapi/linux/ila.h
7e752c
index 666292c..6a6c97c 100644
7e752c
--- a/include/uapi/linux/ila.h
7e752c
+++ b/include/uapi/linux/ila.h
7e752c
@@ -30,6 +30,7 @@ enum {
7e752c
 	ILA_CMD_ADD,
7e752c
 	ILA_CMD_DEL,
7e752c
 	ILA_CMD_GET,
7e752c
+	ILA_CMD_FLUSH,
7e752c
 
7e752c
 	__ILA_CMD_MAX,
7e752c
 };
7e752c
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
7e752c
index 84e4c1d..b451225 100644
7e752c
--- a/include/uapi/linux/pkt_cls.h
7e752c
+++ b/include/uapi/linux/pkt_cls.h
7e752c
@@ -469,6 +469,15 @@ enum {
7e752c
 	TCA_FLOWER_KEY_IP_TTL,		/* u8 */
7e752c
 	TCA_FLOWER_KEY_IP_TTL_MASK,	/* u8 */
7e752c
 
7e752c
+	TCA_FLOWER_KEY_CVLAN_ID,	/* be16 */
7e752c
+	TCA_FLOWER_KEY_CVLAN_PRIO,	/* u8   */
7e752c
+	TCA_FLOWER_KEY_CVLAN_ETH_TYPE,	/* be16 */
7e752c
+
7e752c
+	TCA_FLOWER_KEY_ENC_IP_TOS,	/* u8 */
7e752c
+	TCA_FLOWER_KEY_ENC_IP_TOS_MASK,	/* u8 */
7e752c
+	TCA_FLOWER_KEY_ENC_IP_TTL,	/* u8 */
7e752c
+	TCA_FLOWER_KEY_ENC_IP_TTL_MASK,	/* u8 */
7e752c
+
7e752c
 	__TCA_FLOWER_MAX,
7e752c
 };
7e752c
 
7e752c
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
7e752c
index 37b5096..d9cc9dc 100644
7e752c
--- a/include/uapi/linux/pkt_sched.h
7e752c
+++ b/include/uapi/linux/pkt_sched.h
7e752c
@@ -539,6 +539,7 @@ enum {
7e752c
 	TCA_NETEM_LATENCY64,
7e752c
 	TCA_NETEM_JITTER64,
7e752c
 	TCA_NETEM_SLOT,
7e752c
+	TCA_NETEM_SLOT_DIST,
7e752c
 	__TCA_NETEM_MAX,
7e752c
 };
7e752c
 
7e752c
@@ -581,6 +582,8 @@ struct tc_netem_slot {
7e752c
 	__s64   max_delay;
7e752c
 	__s32   max_packets;
7e752c
 	__s32   max_bytes;
7e752c
+	__s64	dist_delay; /* nsec */
7e752c
+	__s64	dist_jitter; /* nsec */
7e752c
 };
7e752c
 
7e752c
 enum {
7e752c
@@ -934,4 +937,136 @@ enum {
7e752c
 
7e752c
 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
7e752c
 
7e752c
+
7e752c
+/* ETF */
7e752c
+struct tc_etf_qopt {
7e752c
+	__s32 delta;
7e752c
+	__s32 clockid;
7e752c
+	__u32 flags;
7e752c
+#define TC_ETF_DEADLINE_MODE_ON	BIT(0)
7e752c
+#define TC_ETF_OFFLOAD_ON	BIT(1)
7e752c
+};
7e752c
+
7e752c
+enum {
7e752c
+	TCA_ETF_UNSPEC,
7e752c
+	TCA_ETF_PARMS,
7e752c
+	__TCA_ETF_MAX,
7e752c
+};
7e752c
+
7e752c
+#define TCA_ETF_MAX (__TCA_ETF_MAX - 1)
7e752c
+
7e752c
+
7e752c
+/* CAKE */
7e752c
+enum {
7e752c
+	TCA_CAKE_UNSPEC,
7e752c
+	TCA_CAKE_PAD,
7e752c
+	TCA_CAKE_BASE_RATE64,
7e752c
+	TCA_CAKE_DIFFSERV_MODE,
7e752c
+	TCA_CAKE_ATM,
7e752c
+	TCA_CAKE_FLOW_MODE,
7e752c
+	TCA_CAKE_OVERHEAD,
7e752c
+	TCA_CAKE_RTT,
7e752c
+	TCA_CAKE_TARGET,
7e752c
+	TCA_CAKE_AUTORATE,
7e752c
+	TCA_CAKE_MEMORY,
7e752c
+	TCA_CAKE_NAT,
7e752c
+	TCA_CAKE_RAW,
7e752c
+	TCA_CAKE_WASH,
7e752c
+	TCA_CAKE_MPU,
7e752c
+	TCA_CAKE_INGRESS,
7e752c
+	TCA_CAKE_ACK_FILTER,
7e752c
+	TCA_CAKE_SPLIT_GSO,
7e752c
+	__TCA_CAKE_MAX
7e752c
+};
7e752c
+#define TCA_CAKE_MAX	(__TCA_CAKE_MAX - 1)
7e752c
+
7e752c
+enum {
7e752c
+	__TCA_CAKE_STATS_INVALID,
7e752c
+	TCA_CAKE_STATS_PAD,
7e752c
+	TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
7e752c
+	TCA_CAKE_STATS_MEMORY_LIMIT,
7e752c
+	TCA_CAKE_STATS_MEMORY_USED,
7e752c
+	TCA_CAKE_STATS_AVG_NETOFF,
7e752c
+	TCA_CAKE_STATS_MIN_NETLEN,
7e752c
+	TCA_CAKE_STATS_MAX_NETLEN,
7e752c
+	TCA_CAKE_STATS_MIN_ADJLEN,
7e752c
+	TCA_CAKE_STATS_MAX_ADJLEN,
7e752c
+	TCA_CAKE_STATS_TIN_STATS,
7e752c
+	TCA_CAKE_STATS_DEFICIT,
7e752c
+	TCA_CAKE_STATS_COBALT_COUNT,
7e752c
+	TCA_CAKE_STATS_DROPPING,
7e752c
+	TCA_CAKE_STATS_DROP_NEXT_US,
7e752c
+	TCA_CAKE_STATS_P_DROP,
7e752c
+	TCA_CAKE_STATS_BLUE_TIMER_US,
7e752c
+	__TCA_CAKE_STATS_MAX
7e752c
+};
7e752c
+#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)
7e752c
+
7e752c
+enum {
7e752c
+	__TCA_CAKE_TIN_STATS_INVALID,
7e752c
+	TCA_CAKE_TIN_STATS_PAD,
7e752c
+	TCA_CAKE_TIN_STATS_SENT_PACKETS,
7e752c
+	TCA_CAKE_TIN_STATS_SENT_BYTES64,
7e752c
+	TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
7e752c
+	TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
7e752c
+	TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
7e752c
+	TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
7e752c
+	TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
7e752c
+	TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
7e752c
+	TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
7e752c
+	TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
7e752c
+	TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
7e752c
+	TCA_CAKE_TIN_STATS_TARGET_US,
7e752c
+	TCA_CAKE_TIN_STATS_INTERVAL_US,
7e752c
+	TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
7e752c
+	TCA_CAKE_TIN_STATS_WAY_MISSES,
7e752c
+	TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
7e752c
+	TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
7e752c
+	TCA_CAKE_TIN_STATS_AVG_DELAY_US,
7e752c
+	TCA_CAKE_TIN_STATS_BASE_DELAY_US,
7e752c
+	TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
7e752c
+	TCA_CAKE_TIN_STATS_BULK_FLOWS,
7e752c
+	TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
7e752c
+	TCA_CAKE_TIN_STATS_MAX_SKBLEN,
7e752c
+	TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
7e752c
+	__TCA_CAKE_TIN_STATS_MAX
7e752c
+};
7e752c
+#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
7e752c
+#define TC_CAKE_MAX_TINS (8)
7e752c
+
7e752c
+enum {
7e752c
+	CAKE_FLOW_NONE = 0,
7e752c
+	CAKE_FLOW_SRC_IP,
7e752c
+	CAKE_FLOW_DST_IP,
7e752c
+	CAKE_FLOW_HOSTS,    /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */
7e752c
+	CAKE_FLOW_FLOWS,
7e752c
+	CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */
7e752c
+	CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */
7e752c
+	CAKE_FLOW_TRIPLE,   /* = CAKE_FLOW_HOSTS  | CAKE_FLOW_FLOWS */
7e752c
+	CAKE_FLOW_MAX,
7e752c
+};
7e752c
+
7e752c
+enum {
7e752c
+	CAKE_DIFFSERV_DIFFSERV3 = 0,
7e752c
+	CAKE_DIFFSERV_DIFFSERV4,
7e752c
+	CAKE_DIFFSERV_DIFFSERV8,
7e752c
+	CAKE_DIFFSERV_BESTEFFORT,
7e752c
+	CAKE_DIFFSERV_PRECEDENCE,
7e752c
+	CAKE_DIFFSERV_MAX
7e752c
+};
7e752c
+
7e752c
+enum {
7e752c
+	CAKE_ACK_NONE = 0,
7e752c
+	CAKE_ACK_FILTER,
7e752c
+	CAKE_ACK_AGGRESSIVE,
7e752c
+	CAKE_ACK_MAX
7e752c
+};
7e752c
+
7e752c
+enum {
7e752c
+	CAKE_ATM_NONE = 0,
7e752c
+	CAKE_ATM_ATM,
7e752c
+	CAKE_ATM_PTM,
7e752c
+	CAKE_ATM_MAX
7e752c
+};
7e752c
+
7e752c
 #endif
7e752c
diff --git a/include/uapi/linux/sctp.h b/include/uapi/linux/sctp.h
7e752c
index 2d95ddc..dd164d7 100644
7e752c
--- a/include/uapi/linux/sctp.h
7e752c
+++ b/include/uapi/linux/sctp.h
7e752c
@@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t;
7e752c
 #define SCTP_RECVNXTINFO	33
7e752c
 #define SCTP_DEFAULT_SNDINFO	34
7e752c
 #define SCTP_AUTH_DEACTIVATE_KEY	35
7e752c
+#define SCTP_REUSE_PORT		36
7e752c
 
7e752c
 /* Internal Socket Options. Some of the sctp library functions are
7e752c
  * implemented using these socket options.
7e752c
@@ -762,6 +763,8 @@ enum  sctp_spp_flags {
7e752c
 	SPP_SACKDELAY_DISABLE = 1<<6,	/*Disable SACK*/
7e752c
 	SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
7e752c
 	SPP_HB_TIME_IS_ZERO = 1<<7,	/* Set HB delay to 0 */
7e752c
+	SPP_IPV6_FLOWLABEL = 1<<8,
7e752c
+	SPP_DSCP = 1<<9,
7e752c
 };
7e752c
 
7e752c
 struct sctp_paddrparams {
7e752c
@@ -772,6 +775,8 @@ struct sctp_paddrparams {
7e752c
 	__u32			spp_pathmtu;
7e752c
 	__u32			spp_sackdelay;
7e752c
 	__u32			spp_flags;
7e752c
+	__u32			spp_ipv6_flowlabel;
7e752c
+	__u8			spp_dscp;
7e752c
 } __attribute__((packed, aligned(4)));
7e752c
 
7e752c
 /*
7e752c
diff --git a/include/uapi/linux/tc_act/tc_pedit.h b/include/uapi/linux/tc_act/tc_pedit.h
7e752c
index 162d109..24ec792 100644
7e752c
--- a/include/uapi/linux/tc_act/tc_pedit.h
7e752c
+++ b/include/uapi/linux/tc_act/tc_pedit.h
7e752c
@@ -17,13 +17,15 @@ enum {
7e752c
 	TCA_PEDIT_KEY_EX,
7e752c
 	__TCA_PEDIT_MAX
7e752c
 };
7e752c
+
7e752c
 #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
7e752c
-                                                                                
7e752c
+
7e752c
 enum {
7e752c
 	TCA_PEDIT_KEY_EX_HTYPE = 1,
7e752c
 	TCA_PEDIT_KEY_EX_CMD = 2,
7e752c
 	__TCA_PEDIT_KEY_EX_MAX
7e752c
 };
7e752c
+
7e752c
 #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
7e752c
 
7e752c
  /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
7e752c
@@ -38,6 +40,7 @@ enum pedit_header_type {
7e752c
 	TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
7e752c
 	__PEDIT_HDR_TYPE_MAX,
7e752c
 };
7e752c
+
7e752c
 #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
7e752c
 
7e752c
 enum pedit_cmd {
7e752c
@@ -45,6 +48,7 @@ enum pedit_cmd {
7e752c
 	TCA_PEDIT_KEY_EX_CMD_ADD = 1,
7e752c
 	__PEDIT_CMD_MAX,
7e752c
 };
7e752c
+
7e752c
 #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
7e752c
 
7e752c
 struct tc_pedit_key {
7e752c
@@ -55,13 +59,14 @@ struct tc_pedit_key {
7e752c
 	__u32           offmask;
7e752c
 	__u32           shift;
7e752c
 };
7e752c
-                                                                                
7e752c
+
7e752c
 struct tc_pedit_sel {
7e752c
 	tc_gen;
7e752c
 	unsigned char           nkeys;
7e752c
 	unsigned char           flags;
7e752c
 	struct tc_pedit_key     keys[0];
7e752c
 };
7e752c
+
7e752c
 #define tc_pedit tc_pedit_sel
7e752c
 
7e752c
 #endif
7e752c
diff --git a/include/uapi/linux/tc_act/tc_skbedit.h b/include/uapi/linux/tc_act/tc_skbedit.h
7e752c
index fbcfe27..6de6071 100644
7e752c
--- a/include/uapi/linux/tc_act/tc_skbedit.h
7e752c
+++ b/include/uapi/linux/tc_act/tc_skbedit.h
7e752c
@@ -30,6 +30,7 @@
7e752c
 #define SKBEDIT_F_MARK			0x4
7e752c
 #define SKBEDIT_F_PTYPE			0x8
7e752c
 #define SKBEDIT_F_MASK			0x10
7e752c
+#define SKBEDIT_F_INHERITDSFIELD	0x20
7e752c
 
7e752c
 struct tc_skbedit {
7e752c
 	tc_gen;
7e752c
@@ -45,6 +46,7 @@ enum {
7e752c
 	TCA_SKBEDIT_PAD,
7e752c
 	TCA_SKBEDIT_PTYPE,
7e752c
 	TCA_SKBEDIT_MASK,
7e752c
+	TCA_SKBEDIT_FLAGS,
7e752c
 	__TCA_SKBEDIT_MAX
7e752c
 };
7e752c
 #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
7e752c
diff --git a/include/uapi/linux/tc_act/tc_tunnel_key.h b/include/uapi/linux/tc_act/tc_tunnel_key.h
7e752c
index 72bbefe..be384d6 100644
7e752c
--- a/include/uapi/linux/tc_act/tc_tunnel_key.h
7e752c
+++ b/include/uapi/linux/tc_act/tc_tunnel_key.h
7e752c
@@ -36,9 +36,37 @@ enum {
7e752c
 	TCA_TUNNEL_KEY_PAD,
7e752c
 	TCA_TUNNEL_KEY_ENC_DST_PORT,	/* be16 */
7e752c
 	TCA_TUNNEL_KEY_NO_CSUM,		/* u8 */
7e752c
+	TCA_TUNNEL_KEY_ENC_OPTS,	/* Nested TCA_TUNNEL_KEY_ENC_OPTS_
7e752c
+					 * attributes
7e752c
+					 */
7e752c
+	TCA_TUNNEL_KEY_ENC_TOS,		/* u8 */
7e752c
+	TCA_TUNNEL_KEY_ENC_TTL,		/* u8 */
7e752c
 	__TCA_TUNNEL_KEY_MAX,
7e752c
 };
7e752c
 
7e752c
 #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
7e752c
 
7e752c
+enum {
7e752c
+	TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
7e752c
+	TCA_TUNNEL_KEY_ENC_OPTS_GENEVE,		/* Nested
7e752c
+						 * TCA_TUNNEL_KEY_ENC_OPTS_
7e752c
+						 * attributes
7e752c
+						 */
7e752c
+	__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
7e752c
+};
7e752c
+
7e752c
+#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
7e752c
+
7e752c
+enum {
7e752c
+	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
7e752c
+	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS,		/* be16 */
7e752c
+	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE,		/* u8 */
7e752c
+	TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA,		/* 4 to 128 bytes */
7e752c
+
7e752c
+	__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
7e752c
+};
7e752c
+
7e752c
+#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
7e752c
+	(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
7e752c
+
7e752c
 #endif
7e752c
diff --git a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
7e752c
index 99e329b..2e766cf 100644
7e752c
--- a/include/uapi/linux/tcp.h
7e752c
+++ b/include/uapi/linux/tcp.h
7e752c
@@ -127,10 +127,6 @@ enum {
7e752c
 
7e752c
 #define TCP_CM_INQ		TCP_INQ
7e752c
 
7e752c
-#define TCP_REPAIR_ON		1
7e752c
-#define TCP_REPAIR_OFF		0
7e752c
-#define TCP_REPAIR_OFF_NO_WP	-1	/* Turn off without window probes */
7e752c
-
7e752c
 struct tcp_repair_opt {
7e752c
 	__u32	opt_code;
7e752c
 	__u32	opt_val;
7e752c
diff --git a/include/uapi/linux/tipc_netlink.h b/include/uapi/linux/tipc_netlink.h
7e752c
index 85c1198..0ebe02e 100644
7e752c
--- a/include/uapi/linux/tipc_netlink.h
7e752c
+++ b/include/uapi/linux/tipc_netlink.h
7e752c
@@ -121,6 +121,7 @@ enum {
7e752c
 	TIPC_NLA_SOCK_TIPC_STATE,	/* u32 */
7e752c
 	TIPC_NLA_SOCK_COOKIE,		/* u64 */
7e752c
 	TIPC_NLA_SOCK_PAD,		/* flag */
7e752c
+	TIPC_NLA_SOCK_GROUP,		/* nest */
7e752c
 
7e752c
 	__TIPC_NLA_SOCK_MAX,
7e752c
 	TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
7e752c
@@ -233,6 +234,19 @@ enum {
7e752c
 	TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
7e752c
 };
7e752c
 
7e752c
+/* Nest, socket group info */
7e752c
+enum {
7e752c
+	TIPC_NLA_SOCK_GROUP_ID,			/* u32 */
7e752c
+	TIPC_NLA_SOCK_GROUP_OPEN,		/* flag */
7e752c
+	TIPC_NLA_SOCK_GROUP_NODE_SCOPE,		/* flag */
7e752c
+	TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE,	/* flag */
7e752c
+	TIPC_NLA_SOCK_GROUP_INSTANCE,		/* u32 */
7e752c
+	TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT,	/* u32 */
7e752c
+
7e752c
+	__TIPC_NLA_SOCK_GROUP_MAX,
7e752c
+	TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1
7e752c
+};
7e752c
+
7e752c
 /* Nest, connection info */
7e752c
 enum {
7e752c
 	TIPC_NLA_CON_UNSPEC,
7e752c
-- 
7e752c
1.8.3.1
7e752c