d8fb9e
From 821d2b6a1350f69b350a3413fc08845f68788077 Mon Sep 17 00:00:00 2001
d8fb9e
From: Andrea Claudi <aclaudi@redhat.com>
d8fb9e
Date: Tue, 21 Apr 2020 14:53:23 +0200
d8fb9e
Subject: [PATCH] Update kernel headers
d8fb9e
d8fb9e
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1637437
d8fb9e
Upstream Status: iproute2.git commit d9c0be4e97954
d8fb9e
d8fb9e
commit d9c0be4e9795473a73793058674c34d56cdb5eea
d8fb9e
Author: David Ahern <dsahern@gmail.com>
d8fb9e
Date:   Fri Sep 28 10:51:15 2018 -0700
d8fb9e
d8fb9e
    Update kernel headers
d8fb9e
d8fb9e
    Update kernel headers to commit
d8fb9e
    a804e5e218754 ("selftests: forwarding: test for bridge sticky flag")
d8fb9e
d8fb9e
    Signed-off-by: David Ahern <dsahern@gmail.com>
d8fb9e
---
d8fb9e
 include/uapi/linux/bpf.h       | 26 ++++++++++++++++++++++++++
d8fb9e
 include/uapi/linux/gen_stats.h |  1 +
d8fb9e
 include/uapi/linux/if_addr.h   |  1 +
d8fb9e
 include/uapi/linux/if_arp.h    | 18 +++++++++---------
d8fb9e
 include/uapi/linux/if_link.h   |  2 ++
d8fb9e
 include/uapi/linux/if_packet.h |  1 +
d8fb9e
 include/uapi/linux/in6.h       |  1 +
d8fb9e
 include/uapi/linux/neighbour.h |  1 +
d8fb9e
 include/uapi/linux/pkt_cls.h   |  2 ++
d8fb9e
 include/uapi/linux/pkt_sched.h |  6 +++---
d8fb9e
 10 files changed, 47 insertions(+), 12 deletions(-)
d8fb9e
d8fb9e
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
d8fb9e
index 8eb284d2f1acb..abb7f7748c2de 100644
d8fb9e
--- a/include/uapi/linux/bpf.h
d8fb9e
+++ b/include/uapi/linux/bpf.h
d8fb9e
@@ -152,6 +152,7 @@ enum bpf_prog_type {
d8fb9e
 	BPF_PROG_TYPE_LWT_SEG6LOCAL,
d8fb9e
 	BPF_PROG_TYPE_LIRC_MODE2,
d8fb9e
 	BPF_PROG_TYPE_SK_REUSEPORT,
d8fb9e
+	BPF_PROG_TYPE_FLOW_DISSECTOR,
d8fb9e
 };
d8fb9e
 
d8fb9e
 enum bpf_attach_type {
d8fb9e
@@ -172,6 +173,7 @@ enum bpf_attach_type {
d8fb9e
 	BPF_CGROUP_UDP4_SENDMSG,
d8fb9e
 	BPF_CGROUP_UDP6_SENDMSG,
d8fb9e
 	BPF_LIRC_MODE2,
d8fb9e
+	BPF_FLOW_DISSECTOR,
d8fb9e
 	__MAX_BPF_ATTACH_TYPE
d8fb9e
 };
d8fb9e
 
d8fb9e
@@ -2333,6 +2335,7 @@ struct __sk_buff {
d8fb9e
 	/* ... here. */
d8fb9e
 
d8fb9e
 	__u32 data_meta;
d8fb9e
+	struct bpf_flow_keys *flow_keys;
d8fb9e
 };
d8fb9e
 
d8fb9e
 struct bpf_tunnel_key {
d8fb9e
@@ -2778,4 +2781,27 @@ enum bpf_task_fd_type {
d8fb9e
 	BPF_FD_TYPE_URETPROBE,		/* filename + offset */
d8fb9e
 };
d8fb9e
 
d8fb9e
+struct bpf_flow_keys {
d8fb9e
+	__u16	nhoff;
d8fb9e
+	__u16	thoff;
d8fb9e
+	__u16	addr_proto;			/* ETH_P_* of valid addrs */
d8fb9e
+	__u8	is_frag;
d8fb9e
+	__u8	is_first_frag;
d8fb9e
+	__u8	is_encap;
d8fb9e
+	__u8	ip_proto;
d8fb9e
+	__be16	n_proto;
d8fb9e
+	__be16	sport;
d8fb9e
+	__be16	dport;
d8fb9e
+	union {
d8fb9e
+		struct {
d8fb9e
+			__be32	ipv4_src;
d8fb9e
+			__be32	ipv4_dst;
d8fb9e
+		};
d8fb9e
+		struct {
d8fb9e
+			__u32	ipv6_src[4];	/* in6_addr; network order */
d8fb9e
+			__u32	ipv6_dst[4];	/* in6_addr; network order */
d8fb9e
+		};
d8fb9e
+	};
d8fb9e
+};
d8fb9e
+
d8fb9e
 #endif /* __LINUX_BPF_H__ */
d8fb9e
diff --git a/include/uapi/linux/gen_stats.h b/include/uapi/linux/gen_stats.h
d8fb9e
index 24a861c0d29d3..065408e16a807 100644
d8fb9e
--- a/include/uapi/linux/gen_stats.h
d8fb9e
+++ b/include/uapi/linux/gen_stats.h
d8fb9e
@@ -12,6 +12,7 @@ enum {
d8fb9e
 	TCA_STATS_APP,
d8fb9e
 	TCA_STATS_RATE_EST64,
d8fb9e
 	TCA_STATS_PAD,
d8fb9e
+	TCA_STATS_BASIC_HW,
d8fb9e
 	__TCA_STATS_MAX,
d8fb9e
 };
d8fb9e
 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
d8fb9e
diff --git a/include/uapi/linux/if_addr.h b/include/uapi/linux/if_addr.h
d8fb9e
index a924606f36e56..c4dd87f9b44a1 100644
d8fb9e
--- a/include/uapi/linux/if_addr.h
d8fb9e
+++ b/include/uapi/linux/if_addr.h
d8fb9e
@@ -34,6 +34,7 @@ enum {
d8fb9e
 	IFA_MULTICAST,
d8fb9e
 	IFA_FLAGS,
d8fb9e
 	IFA_RT_PRIORITY,  /* u32, priority/metric for prefix route */
d8fb9e
+	IFA_TARGET_NETNSID,
d8fb9e
 	__IFA_MAX,
d8fb9e
 };
d8fb9e
 
d8fb9e
diff --git a/include/uapi/linux/if_arp.h b/include/uapi/linux/if_arp.h
d8fb9e
index cd136a6f821bb..dbfbc227deb8e 100644
d8fb9e
--- a/include/uapi/linux/if_arp.h
d8fb9e
+++ b/include/uapi/linux/if_arp.h
d8fb9e
@@ -114,18 +114,18 @@
d8fb9e
 
d8fb9e
 /* ARP ioctl request. */
d8fb9e
 struct arpreq {
d8fb9e
-  struct sockaddr	arp_pa;		/* protocol address		*/
d8fb9e
-  struct sockaddr	arp_ha;		/* hardware address		*/
d8fb9e
-  int			arp_flags;	/* flags			*/
d8fb9e
-  struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
d8fb9e
-  char			arp_dev[16];
d8fb9e
+	struct sockaddr	arp_pa;		/* protocol address		 */
d8fb9e
+	struct sockaddr	arp_ha;		/* hardware address		 */
d8fb9e
+	int		arp_flags;	/* flags			 */
d8fb9e
+	struct sockaddr arp_netmask;    /* netmask (only for proxy arps) */
d8fb9e
+	char		arp_dev[IFNAMSIZ];
d8fb9e
 };
d8fb9e
 
d8fb9e
 struct arpreq_old {
d8fb9e
-  struct sockaddr	arp_pa;		/* protocol address		*/
d8fb9e
-  struct sockaddr	arp_ha;		/* hardware address		*/
d8fb9e
-  int			arp_flags;	/* flags			*/
d8fb9e
-  struct sockaddr       arp_netmask;    /* netmask (only for proxy arps) */
d8fb9e
+	struct sockaddr	arp_pa;		/* protocol address		 */
d8fb9e
+	struct sockaddr	arp_ha;		/* hardware address		 */
d8fb9e
+	int		arp_flags;	/* flags			 */
d8fb9e
+	struct sockaddr	arp_netmask;    /* netmask (only for proxy arps) */
d8fb9e
 };
d8fb9e
 
d8fb9e
 /* ARP Flag values. */
d8fb9e
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
d8fb9e
index 1caf56584a690..502b065f0614b 100644
d8fb9e
--- a/include/uapi/linux/if_link.h
d8fb9e
+++ b/include/uapi/linux/if_link.h
d8fb9e
@@ -161,6 +161,7 @@ enum {
d8fb9e
 	IFLA_EVENT,
d8fb9e
 	IFLA_NEW_NETNSID,
d8fb9e
 	IFLA_IF_NETNSID,
d8fb9e
+	IFLA_TARGET_NETNSID = IFLA_IF_NETNSID, /* new alias */
d8fb9e
 	IFLA_CARRIER_UP_COUNT,
d8fb9e
 	IFLA_CARRIER_DOWN_COUNT,
d8fb9e
 	IFLA_NEW_IFINDEX,
d8fb9e
@@ -551,6 +552,7 @@ enum {
d8fb9e
 	IFLA_GENEVE_UDP_ZERO_CSUM6_TX,
d8fb9e
 	IFLA_GENEVE_UDP_ZERO_CSUM6_RX,
d8fb9e
 	IFLA_GENEVE_LABEL,
d8fb9e
+	IFLA_GENEVE_TTL_INHERIT,
d8fb9e
 	__IFLA_GENEVE_MAX
d8fb9e
 };
d8fb9e
 #define IFLA_GENEVE_MAX	(__IFLA_GENEVE_MAX - 1)
d8fb9e
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
d8fb9e
index 67b61d91d89bf..467b654bd4c7d 100644
d8fb9e
--- a/include/uapi/linux/if_packet.h
d8fb9e
+++ b/include/uapi/linux/if_packet.h
d8fb9e
@@ -57,6 +57,7 @@ struct sockaddr_ll {
d8fb9e
 #define PACKET_QDISC_BYPASS		20
d8fb9e
 #define PACKET_ROLLOVER_STATS		21
d8fb9e
 #define PACKET_FANOUT_DATA		22
d8fb9e
+#define PACKET_IGNORE_OUTGOING		23
d8fb9e
 
d8fb9e
 #define PACKET_FANOUT_HASH		0
d8fb9e
 #define PACKET_FANOUT_LB		1
d8fb9e
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h
d8fb9e
index 409bb3f3aed67..2bb132a97333e 100644
d8fb9e
--- a/include/uapi/linux/in6.h
d8fb9e
+++ b/include/uapi/linux/in6.h
d8fb9e
@@ -177,6 +177,7 @@ struct in6_flowlabel_req {
d8fb9e
 #define IPV6_V6ONLY		26
d8fb9e
 #define IPV6_JOIN_ANYCAST	27
d8fb9e
 #define IPV6_LEAVE_ANYCAST	28
d8fb9e
+#define IPV6_MULTICAST_ALL	29
d8fb9e
 
d8fb9e
 /* IPV6_MTU_DISCOVER values */
d8fb9e
 #define IPV6_PMTUDISC_DONT		0
d8fb9e
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
d8fb9e
index 904db61484766..998155444e0db 100644
d8fb9e
--- a/include/uapi/linux/neighbour.h
d8fb9e
+++ b/include/uapi/linux/neighbour.h
d8fb9e
@@ -43,6 +43,7 @@ enum {
d8fb9e
 #define NTF_PROXY	0x08	/* == ATF_PUBL */
d8fb9e
 #define NTF_EXT_LEARNED	0x10
d8fb9e
 #define NTF_OFFLOADED   0x20
d8fb9e
+#define NTF_STICKY	0x40
d8fb9e
 #define NTF_ROUTER	0x80
d8fb9e
 
d8fb9e
 /*
d8fb9e
diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h
d8fb9e
index be382fb0592d8..401d0c1e612d3 100644
d8fb9e
--- a/include/uapi/linux/pkt_cls.h
d8fb9e
+++ b/include/uapi/linux/pkt_cls.h
d8fb9e
@@ -483,6 +483,8 @@ enum {
d8fb9e
 	TCA_FLOWER_KEY_ENC_OPTS,
d8fb9e
 	TCA_FLOWER_KEY_ENC_OPTS_MASK,
d8fb9e
 
d8fb9e
+	TCA_FLOWER_IN_HW_COUNT,
d8fb9e
+
d8fb9e
 	__TCA_FLOWER_MAX,
d8fb9e
 };
d8fb9e
 
d8fb9e
diff --git a/include/uapi/linux/pkt_sched.h b/include/uapi/linux/pkt_sched.h
d8fb9e
index d9cc9dc4f547c..76ba49b0ec65f 100644
d8fb9e
--- a/include/uapi/linux/pkt_sched.h
d8fb9e
+++ b/include/uapi/linux/pkt_sched.h
d8fb9e
@@ -380,9 +380,9 @@ enum {
d8fb9e
 struct tc_htb_xstats {
d8fb9e
 	__u32 lends;
d8fb9e
 	__u32 borrows;
d8fb9e
-	__u32 giants;	/* too big packets (rate will not be accurate) */
d8fb9e
-	__u32 tokens;
d8fb9e
-	__u32 ctokens;
d8fb9e
+	__u32 giants;	/* unused since 'Make HTB scheduler work with TSO.' */
d8fb9e
+	__s32 tokens;
d8fb9e
+	__s32 ctokens;
d8fb9e
 };
d8fb9e
 
d8fb9e
 /* HFSC section */
d8fb9e
-- 
d8fb9e
2.25.3
d8fb9e