mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	Update MPTCP
This commit is contained in:
		
							parent
							
								
									e131493bf1
								
							
						
					
					
						commit
						1ce31508e2
					
				
					 1 changed files with 168 additions and 101 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,20 @@
 | 
			
		|||
diff -aurN linux-5.4/Documentation/admin-guide/kernel-parameters.txt mptcp-mptcp_trunk/Documentation/admin-guide/kernel-parameters.txt
 | 
			
		||||
--- linux-5.4/Documentation/admin-guide/kernel-parameters.txt	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/Documentation/admin-guide/kernel-parameters.txt	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -2724,6 +2724,10 @@
 | 
			
		||||
 			allocations which rules out almost all kernel
 | 
			
		||||
 			allocations. Use with caution!
 | 
			
		||||
 
 | 
			
		||||
+	mptcp_htable_entries=
 | 
			
		||||
+			[KNL,NET] Set number of hash buckets for MPTCP token
 | 
			
		||||
+			hashtables.
 | 
			
		||||
+
 | 
			
		||||
 	MTD_Partition=	[MTD]
 | 
			
		||||
 			Format: <name>,<region-number>,<size>,<offset>
 | 
			
		||||
 
 | 
			
		||||
diff -aurN linux-5.4/Documentation/networking/ip-sysctl.txt mptcp-mptcp_trunk/Documentation/networking/ip-sysctl.txt
 | 
			
		||||
--- linux-5.4/Documentation/networking/ip-sysctl.txt	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/Documentation/networking/ip-sysctl.txt	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/Documentation/networking/ip-sysctl.txt	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -818,6 +818,18 @@
 | 
			
		||||
 
 | 
			
		||||
 	Default: 0 (disabled)
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +36,7 @@ diff -aurN linux-5.4/Documentation/networking/ip-sysctl.txt mptcp-mptcp_trunk/Do
 | 
			
		|||
 udp_l3mdev_accept - BOOLEAN
 | 
			
		||||
diff -aurN linux-5.4/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_trunk/drivers/infiniband/hw/cxgb4/cm.c
 | 
			
		||||
--- linux-5.4/drivers/infiniband/hw/cxgb4/cm.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/drivers/infiniband/hw/cxgb4/cm.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/drivers/infiniband/hw/cxgb4/cm.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -3946,7 +3946,7 @@
 | 
			
		||||
 	 */
 | 
			
		||||
 	memset(&tmp_opt, 0, sizeof(tmp_opt));
 | 
			
		||||
| 
						 | 
				
			
			@ -34,7 +48,7 @@ diff -aurN linux-5.4/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_trunk/drivers/
 | 
			
		|||
 	memset(req, 0, sizeof(*req));
 | 
			
		||||
diff -aurN linux-5.4/include/linux/skbuff.h mptcp-mptcp_trunk/include/linux/skbuff.h
 | 
			
		||||
--- linux-5.4/include/linux/skbuff.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/linux/skbuff.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/linux/skbuff.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -717,7 +717,7 @@
 | 
			
		||||
 	 * want to keep them across layers you have to do a skb_clone()
 | 
			
		||||
 	 * first. This is owned by whoever has the skb queued ATM.
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +60,7 @@ diff -aurN linux-5.4/include/linux/skbuff.h mptcp-mptcp_trunk/include/linux/skbu
 | 
			
		|||
 		struct {
 | 
			
		||||
diff -aurN linux-5.4/include/linux/tcp.h mptcp-mptcp_trunk/include/linux/tcp.h
 | 
			
		||||
--- linux-5.4/include/linux/tcp.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/linux/tcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/linux/tcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -54,7 +54,7 @@
 | 
			
		||||
 /* TCP Fast Open */
 | 
			
		||||
 #define TCP_FASTOPEN_COOKIE_MIN	4	/* Min Fast Open Cookie size in bytes */
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +219,7 @@ diff -aurN linux-5.4/include/linux/tcp.h mptcp-mptcp_trunk/include/linux/tcp.h
 | 
			
		|||
 static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk)
 | 
			
		||||
diff -aurN linux-5.4/include/net/inet_common.h mptcp-mptcp_trunk/include/net/inet_common.h
 | 
			
		||||
--- linux-5.4/include/net/inet_common.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_common.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_common.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
 #ifndef _INET_COMMON_H
 | 
			
		||||
 #define _INET_COMMON_H
 | 
			
		||||
| 
						 | 
				
			
			@ -225,7 +239,7 @@ diff -aurN linux-5.4/include/net/inet_common.h mptcp-mptcp_trunk/include/net/ine
 | 
			
		|||
 			int addr_len, int flags);
 | 
			
		||||
diff -aurN linux-5.4/include/net/inet_connection_sock.h mptcp-mptcp_trunk/include/net/inet_connection_sock.h
 | 
			
		||||
--- linux-5.4/include/net/inet_connection_sock.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_connection_sock.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_connection_sock.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -25,6 +25,7 @@
 | 
			
		||||
 
 | 
			
		||||
 struct inet_bind_bucket;
 | 
			
		||||
| 
						 | 
				
			
			@ -236,7 +250,7 @@ diff -aurN linux-5.4/include/net/inet_connection_sock.h mptcp-mptcp_trunk/includ
 | 
			
		|||
  * Pointers to address related TCP functions
 | 
			
		||||
diff -aurN linux-5.4/include/net/inet_sock.h mptcp-mptcp_trunk/include/net/inet_sock.h
 | 
			
		||||
--- linux-5.4/include/net/inet_sock.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_sock.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/inet_sock.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -79,7 +79,7 @@
 | 
			
		||||
 #define ireq_state		req.__req_common.skc_state
 | 
			
		||||
 #define ireq_family		req.__req_common.skc_family
 | 
			
		||||
| 
						 | 
				
			
			@ -257,8 +271,8 @@ diff -aurN linux-5.4/include/net/inet_sock.h mptcp-mptcp_trunk/include/net/inet_
 | 
			
		|||
 	union {
 | 
			
		||||
diff -aurN linux-5.4/include/net/mptcp.h mptcp-mptcp_trunk/include/net/mptcp.h
 | 
			
		||||
--- linux-5.4/include/net/mptcp.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1542 @@
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1545 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
+ *
 | 
			
		||||
| 
						 | 
				
			
			@ -940,6 +954,11 @@ diff -aurN linux-5.4/include/net/mptcp.h mptcp-mptcp_trunk/include/net/mptcp.h
 | 
			
		|||
+	__u8	addr_id;
 | 
			
		||||
+} __attribute__((__packed__));
 | 
			
		||||
+
 | 
			
		||||
+struct mptcp_hashtable {
 | 
			
		||||
+	struct hlist_nulls_head *hashtable;
 | 
			
		||||
+	unsigned int mask;
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+static inline int mptcp_sub_len_dss(const struct mp_dss *m, const int csum)
 | 
			
		||||
+{
 | 
			
		||||
+	return 4 + m->A * (4 + m->a * 4) + m->M * (10 + m->m * 4 + csum * 2);
 | 
			
		||||
| 
						 | 
				
			
			@ -1046,9 +1065,7 @@ diff -aurN linux-5.4/include/net/mptcp.h mptcp-mptcp_trunk/include/net/mptcp.h
 | 
			
		|||
+ */
 | 
			
		||||
+extern u32 mptcp_seed;
 | 
			
		||||
+
 | 
			
		||||
+#define MPTCP_HASH_SIZE                1024
 | 
			
		||||
+
 | 
			
		||||
+extern struct hlist_nulls_head tk_hashtable[MPTCP_HASH_SIZE];
 | 
			
		||||
+extern struct mptcp_hashtable mptcp_tk_htable;
 | 
			
		||||
+
 | 
			
		||||
+/* Request-sockets can be hashed in the tk_htb for collision-detection or in
 | 
			
		||||
+ * the regular htb for join-connections. We need to define different NULLS
 | 
			
		||||
| 
						 | 
				
			
			@ -1803,7 +1820,7 @@ diff -aurN linux-5.4/include/net/mptcp.h mptcp-mptcp_trunk/include/net/mptcp.h
 | 
			
		|||
+#endif /* _MPTCP_H */
 | 
			
		||||
diff -aurN linux-5.4/include/net/mptcp_v4.h mptcp-mptcp_trunk/include/net/mptcp_v4.h
 | 
			
		||||
--- linux-5.4/include/net/mptcp_v4.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp_v4.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp_v4.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,76 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
| 
						 | 
				
			
			@ -1883,7 +1900,7 @@ diff -aurN linux-5.4/include/net/mptcp_v4.h mptcp-mptcp_trunk/include/net/mptcp_
 | 
			
		|||
+#endif /* MPTCP_V4_H_ */
 | 
			
		||||
diff -aurN linux-5.4/include/net/mptcp_v6.h mptcp-mptcp_trunk/include/net/mptcp_v6.h
 | 
			
		||||
--- linux-5.4/include/net/mptcp_v6.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp_v6.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/mptcp_v6.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,77 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
| 
						 | 
				
			
			@ -1964,7 +1981,7 @@ diff -aurN linux-5.4/include/net/mptcp_v6.h mptcp-mptcp_trunk/include/net/mptcp_
 | 
			
		|||
+#endif /* _MPTCP_V6_H */
 | 
			
		||||
diff -aurN linux-5.4/include/net/net_namespace.h mptcp-mptcp_trunk/include/net/net_namespace.h
 | 
			
		||||
--- linux-5.4/include/net/net_namespace.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/net_namespace.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/net_namespace.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -19,6 +19,7 @@
 | 
			
		||||
 #include <net/netns/packet.h>
 | 
			
		||||
 #include <net/netns/ipv4.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -1985,7 +2002,7 @@ diff -aurN linux-5.4/include/net/net_namespace.h mptcp-mptcp_trunk/include/net/n
 | 
			
		|||
 #endif
 | 
			
		||||
diff -aurN linux-5.4/include/net/netns/mptcp.h mptcp-mptcp_trunk/include/net/netns/mptcp.h
 | 
			
		||||
--- linux-5.4/include/net/netns/mptcp.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/netns/mptcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/netns/mptcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,52 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - MPTCP namespace
 | 
			
		||||
| 
						 | 
				
			
			@ -2041,7 +2058,7 @@ diff -aurN linux-5.4/include/net/netns/mptcp.h mptcp-mptcp_trunk/include/net/net
 | 
			
		|||
+#endif /* __NETNS_MPTCP_H__ */
 | 
			
		||||
diff -aurN linux-5.4/include/net/snmp.h mptcp-mptcp_trunk/include/net/snmp.h
 | 
			
		||||
--- linux-5.4/include/net/snmp.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/snmp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/snmp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -86,7 +86,6 @@
 | 
			
		||||
 	atomic_long_t	mibs[ICMP6MSG_MIB_MAX];
 | 
			
		||||
 };
 | 
			
		||||
| 
						 | 
				
			
			@ -2052,7 +2069,7 @@ diff -aurN linux-5.4/include/net/snmp.h mptcp-mptcp_trunk/include/net/snmp.h
 | 
			
		|||
 struct tcp_mib {
 | 
			
		||||
diff -aurN linux-5.4/include/net/sock.h mptcp-mptcp_trunk/include/net/sock.h
 | 
			
		||||
--- linux-5.4/include/net/sock.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/sock.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/sock.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -814,6 +814,7 @@
 | 
			
		||||
 	SOCK_TXTIME,
 | 
			
		||||
 	SOCK_XDP, /* XDP is attached */
 | 
			
		||||
| 
						 | 
				
			
			@ -2071,7 +2088,7 @@ diff -aurN linux-5.4/include/net/sock.h mptcp-mptcp_trunk/include/net/sock.h
 | 
			
		|||
 #ifdef CONFIG_PROC_FS
 | 
			
		||||
diff -aurN linux-5.4/include/net/tcp.h mptcp-mptcp_trunk/include/net/tcp.h
 | 
			
		||||
--- linux-5.4/include/net/tcp.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/tcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/tcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -182,6 +182,7 @@
 | 
			
		||||
 #define TCPOPT_SACK             5       /* SACK Block */
 | 
			
		||||
 #define TCPOPT_TIMESTAMP	8	/* Better RTT estimations/PAWS */
 | 
			
		||||
| 
						 | 
				
			
			@ -2418,7 +2435,7 @@ diff -aurN linux-5.4/include/net/tcp.h mptcp-mptcp_trunk/include/net/tcp.h
 | 
			
		|||
 {
 | 
			
		||||
diff -aurN linux-5.4/include/net/tcp_states.h mptcp-mptcp_trunk/include/net/tcp_states.h
 | 
			
		||||
--- linux-5.4/include/net/tcp_states.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/tcp_states.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/tcp_states.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
 	TCP_LISTEN,
 | 
			
		||||
 	TCP_CLOSING,	/* Now a valid state */
 | 
			
		||||
| 
						 | 
				
			
			@ -2437,7 +2454,7 @@ diff -aurN linux-5.4/include/net/tcp_states.h mptcp-mptcp_trunk/include/net/tcp_
 | 
			
		|||
 #endif	/* _LINUX_TCP_STATES_H */
 | 
			
		||||
diff -aurN linux-5.4/include/net/transp_v6.h mptcp-mptcp_trunk/include/net/transp_v6.h
 | 
			
		||||
--- linux-5.4/include/net/transp_v6.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/transp_v6.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/net/transp_v6.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -58,6 +58,8 @@
 | 
			
		||||
 
 | 
			
		||||
 /* address family specific functions */
 | 
			
		||||
| 
						 | 
				
			
			@ -2449,7 +2466,7 @@ diff -aurN linux-5.4/include/net/transp_v6.h mptcp-mptcp_trunk/include/net/trans
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/include/trace/events/tcp.h mptcp-mptcp_trunk/include/trace/events/tcp.h
 | 
			
		||||
--- linux-5.4/include/trace/events/tcp.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/trace/events/tcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/trace/events/tcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
 #include <linux/tracepoint.h>
 | 
			
		||||
 #include <net/ipv6.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2500,7 +2517,7 @@ diff -aurN linux-5.4/include/trace/events/tcp.h mptcp-mptcp_trunk/include/trace/
 | 
			
		|||
 #endif /* _TRACE_TCP_H */
 | 
			
		||||
diff -aurN linux-5.4/include/uapi/linux/bpf.h mptcp-mptcp_trunk/include/uapi/linux/bpf.h
 | 
			
		||||
--- linux-5.4/include/uapi/linux/bpf.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/bpf.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/bpf.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -3438,6 +3438,7 @@
 | 
			
		||||
 	BPF_TCP_LISTEN,
 | 
			
		||||
 	BPF_TCP_CLOSING,	/* Now a valid state */
 | 
			
		||||
| 
						 | 
				
			
			@ -2511,7 +2528,7 @@ diff -aurN linux-5.4/include/uapi/linux/bpf.h mptcp-mptcp_trunk/include/uapi/lin
 | 
			
		|||
 };
 | 
			
		||||
diff -aurN linux-5.4/include/uapi/linux/if.h mptcp-mptcp_trunk/include/uapi/linux/if.h
 | 
			
		||||
--- linux-5.4/include/uapi/linux/if.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/if.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/if.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -132,6 +132,9 @@
 | 
			
		||||
 #define IFF_ECHO			IFF_ECHO
 | 
			
		||||
 #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
 | 
			
		||||
| 
						 | 
				
			
			@ -2524,7 +2541,7 @@ diff -aurN linux-5.4/include/uapi/linux/if.h mptcp-mptcp_trunk/include/uapi/linu
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/include/uapi/linux/mptcp.h mptcp-mptcp_trunk/include/uapi/linux/mptcp.h
 | 
			
		||||
--- linux-5.4/include/uapi/linux/mptcp.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/mptcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/mptcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,149 @@
 | 
			
		||||
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 | 
			
		||||
+/*
 | 
			
		||||
| 
						 | 
				
			
			@ -2677,7 +2694,7 @@ diff -aurN linux-5.4/include/uapi/linux/mptcp.h mptcp-mptcp_trunk/include/uapi/l
 | 
			
		|||
+#endif /* _LINUX_MPTCP_H */
 | 
			
		||||
diff -aurN linux-5.4/include/uapi/linux/tcp.h mptcp-mptcp_trunk/include/uapi/linux/tcp.h
 | 
			
		||||
--- linux-5.4/include/uapi/linux/tcp.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/tcp.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/include/uapi/linux/tcp.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -18,9 +18,15 @@
 | 
			
		||||
 #ifndef _UAPI_LINUX_TCP_H
 | 
			
		||||
 #define _UAPI_LINUX_TCP_H
 | 
			
		||||
| 
						 | 
				
			
			@ -2765,7 +2782,7 @@ diff -aurN linux-5.4/include/uapi/linux/tcp.h mptcp-mptcp_trunk/include/uapi/lin
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/core/dev.c mptcp-mptcp_trunk/net/core/dev.c
 | 
			
		||||
--- linux-5.4/net/core/dev.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/dev.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/dev.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -7855,7 +7855,7 @@
 | 
			
		||||
 
 | 
			
		||||
 	dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
 | 
			
		||||
| 
						 | 
				
			
			@ -2777,7 +2794,7 @@ diff -aurN linux-5.4/net/core/dev.c mptcp-mptcp_trunk/net/core/dev.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/core/net-traces.c mptcp-mptcp_trunk/net/core/net-traces.c
 | 
			
		||||
--- linux-5.4/net/core/net-traces.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/net-traces.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/net-traces.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -60,3 +60,5 @@
 | 
			
		||||
 EXPORT_TRACEPOINT_SYMBOL_GPL(napi_poll);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -2786,7 +2803,7 @@ diff -aurN linux-5.4/net/core/net-traces.c mptcp-mptcp_trunk/net/core/net-traces
 | 
			
		|||
+EXPORT_TRACEPOINT_SYMBOL_GPL(mptcp_retransmit);
 | 
			
		||||
diff -aurN linux-5.4/net/core/skbuff.c mptcp-mptcp_trunk/net/core/skbuff.c
 | 
			
		||||
--- linux-5.4/net/core/skbuff.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/skbuff.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/skbuff.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -573,7 +573,7 @@
 | 
			
		||||
 	skb_drop_list(&skb_shinfo(skb)->frag_list);
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -2798,7 +2815,7 @@ diff -aurN linux-5.4/net/core/skbuff.c mptcp-mptcp_trunk/net/core/skbuff.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/core/sock.c mptcp-mptcp_trunk/net/core/sock.c
 | 
			
		||||
--- linux-5.4/net/core/sock.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/sock.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/core/sock.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -135,6 +135,11 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <trace/events/sock.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2860,7 +2877,7 @@ diff -aurN linux-5.4/net/core/sock.c mptcp-mptcp_trunk/net/core/sock.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/af_inet.c mptcp-mptcp_trunk/net/ipv4/af_inet.c
 | 
			
		||||
--- linux-5.4/net/ipv4/af_inet.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/af_inet.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/af_inet.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -100,6 +100,7 @@
 | 
			
		||||
 #include <net/ip_fib.h>
 | 
			
		||||
 #include <net/inet_connection_sock.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2926,7 +2943,7 @@ diff -aurN linux-5.4/net/ipv4/af_inet.c mptcp-mptcp_trunk/net/ipv4/af_inet.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/inet_connection_sock.c mptcp-mptcp_trunk/net/ipv4/inet_connection_sock.c
 | 
			
		||||
--- linux-5.4/net/ipv4/inet_connection_sock.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/inet_connection_sock.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/inet_connection_sock.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -19,6 +19,7 @@
 | 
			
		||||
 #include <net/route.h>
 | 
			
		||||
 #include <net/tcp_states.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2986,7 +3003,7 @@ diff -aurN linux-5.4/net/ipv4/inet_connection_sock.c mptcp-mptcp_trunk/net/ipv4/
 | 
			
		|||
 		cond_resched();
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/ip_sockglue.c mptcp-mptcp_trunk/net/ipv4/ip_sockglue.c
 | 
			
		||||
--- linux-5.4/net/ipv4/ip_sockglue.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/ip_sockglue.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/ip_sockglue.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -44,6 +44,8 @@
 | 
			
		||||
 #endif
 | 
			
		||||
 #include <net/ip_fib.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -3028,7 +3045,7 @@ diff -aurN linux-5.4/net/ipv4/ip_sockglue.c mptcp-mptcp_trunk/net/ipv4/ip_sockgl
 | 
			
		|||
 	case IP_TTL:
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/Kconfig mptcp-mptcp_trunk/net/ipv4/Kconfig
 | 
			
		||||
--- linux-5.4/net/ipv4/Kconfig	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/Kconfig	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/Kconfig	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -654,6 +654,51 @@
 | 
			
		||||
 	bufferbloat, policers, or AQM schemes that do not provide a delay
 | 
			
		||||
 	signal. It requires the fq ("Fair Queue") pacing packet scheduler.
 | 
			
		||||
| 
						 | 
				
			
			@ -3116,7 +3133,7 @@ diff -aurN linux-5.4/net/ipv4/Kconfig mptcp-mptcp_trunk/net/ipv4/Kconfig
 | 
			
		|||
 	default "cdg" if DEFAULT_CDG
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/syncookies.c mptcp-mptcp_trunk/net/ipv4/syncookies.c
 | 
			
		||||
--- linux-5.4/net/ipv4/syncookies.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/syncookies.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/syncookies.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -12,6 +12,8 @@
 | 
			
		||||
 #include <linux/siphash.h>
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -3244,7 +3261,7 @@ diff -aurN linux-5.4/net/ipv4/syncookies.c mptcp-mptcp_trunk/net/ipv4/syncookies
 | 
			
		|||
 	 */
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp.c mptcp-mptcp_trunk/net/ipv4/tcp.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -270,6 +270,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <net/icmp.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -3987,7 +4004,7 @@ diff -aurN linux-5.4/net/ipv4/tcp.c mptcp-mptcp_trunk/net/ipv4/tcp.c
 | 
			
		|||
 EXPORT_SYMBOL_GPL(tcp_abort);
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_cong.c mptcp-mptcp_trunk/net/ipv4/tcp_cong.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_cong.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_cong.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_cong.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -328,13 +328,19 @@
 | 
			
		||||
 	return ret;
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -4012,7 +4029,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_cong.c mptcp-mptcp_trunk/net/ipv4/tcp_cong.c
 | 
			
		|||
 	const struct tcp_congestion_ops *ca;
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_diag.c mptcp-mptcp_trunk/net/ipv4/tcp_diag.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_diag.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_diag.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_diag.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -31,7 +31,7 @@
 | 
			
		||||
 		r->idiag_wqueue = READ_ONCE(tp->write_seq) - tp->snd_una;
 | 
			
		||||
 	}
 | 
			
		||||
| 
						 | 
				
			
			@ -4024,7 +4041,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_diag.c mptcp-mptcp_trunk/net/ipv4/tcp_diag.c
 | 
			
		|||
 #ifdef CONFIG_TCP_MD5SIG
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_fastopen.c mptcp-mptcp_trunk/net/ipv4/tcp_fastopen.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_fastopen.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_fastopen.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_fastopen.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -9,6 +9,7 @@
 | 
			
		||||
 #include <linux/rculist.h>
 | 
			
		||||
 #include <net/inetpeer.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -4085,7 +4102,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_fastopen.c mptcp-mptcp_trunk/net/ipv4/tcp_fast
 | 
			
		|||
 	 */
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_input.c mptcp-mptcp_trunk/net/ipv4/tcp_input.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_input.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_input.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_input.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -76,35 +76,15 @@
 | 
			
		||||
 #include <linux/ipsec.h>
 | 
			
		||||
 #include <asm/unaligned.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -4969,7 +4986,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_input.c mptcp-mptcp_trunk/net/ipv4/tcp_input.c
 | 
			
		|||
 		tcp_rsk(req)->tfo_listener = false;
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_ipv4.c mptcp-mptcp_trunk/net/ipv4/tcp_ipv4.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_ipv4.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_ipv4.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_ipv4.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -62,6 +62,8 @@
 | 
			
		||||
 #include <net/icmp.h>
 | 
			
		||||
 #include <net/inet_hashtables.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -5434,7 +5451,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_ipv4.c mptcp-mptcp_trunk/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_minisocks.c mptcp-mptcp_trunk/net/ipv4/tcp_minisocks.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_minisocks.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_minisocks.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_minisocks.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -19,11 +19,13 @@
 | 
			
		||||
  *		Jorge Cwik, <jorge@laser.satlink.net>
 | 
			
		||||
  */
 | 
			
		||||
| 
						 | 
				
			
			@ -5676,7 +5693,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_minisocks.c mptcp-mptcp_trunk/net/ipv4/tcp_min
 | 
			
		|||
 }
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_output.c mptcp-mptcp_trunk/net/ipv4/tcp_output.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_output.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_output.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_output.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -37,6 +37,12 @@
 | 
			
		||||
 
 | 
			
		||||
 #define pr_fmt(fmt) "TCP: " fmt
 | 
			
		||||
| 
						 | 
				
			
			@ -6267,7 +6284,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_output.c mptcp-mptcp_trunk/net/ipv4/tcp_output
 | 
			
		|||
 		/* Cancel probe timer, if it is not required. */
 | 
			
		||||
diff -aurN linux-5.4/net/ipv4/tcp_timer.c mptcp-mptcp_trunk/net/ipv4/tcp_timer.c
 | 
			
		||||
--- linux-5.4/net/ipv4/tcp_timer.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_timer.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv4/tcp_timer.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -21,6 +21,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <linux/module.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6481,7 +6498,7 @@ diff -aurN linux-5.4/net/ipv4/tcp_timer.c mptcp-mptcp_trunk/net/ipv4/tcp_timer.c
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/ipv6/addrconf.c mptcp-mptcp_trunk/net/ipv6/addrconf.c
 | 
			
		||||
--- linux-5.4/net/ipv6/addrconf.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/addrconf.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/addrconf.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -967,6 +967,7 @@
 | 
			
		||||
 
 | 
			
		||||
 	kfree_rcu(ifp, rcu);
 | 
			
		||||
| 
						 | 
				
			
			@ -6492,7 +6509,7 @@ diff -aurN linux-5.4/net/ipv6/addrconf.c mptcp-mptcp_trunk/net/ipv6/addrconf.c
 | 
			
		|||
 ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
 | 
			
		||||
diff -aurN linux-5.4/net/ipv6/af_inet6.c mptcp-mptcp_trunk/net/ipv6/af_inet6.c
 | 
			
		||||
--- linux-5.4/net/ipv6/af_inet6.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/af_inet6.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/af_inet6.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -104,8 +104,7 @@
 | 
			
		||||
 	return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -6505,7 +6522,7 @@ diff -aurN linux-5.4/net/ipv6/af_inet6.c mptcp-mptcp_trunk/net/ipv6/af_inet6.c
 | 
			
		|||
 	struct ipv6_pinfo *np;
 | 
			
		||||
diff -aurN linux-5.4/net/ipv6/ipv6_sockglue.c mptcp-mptcp_trunk/net/ipv6/ipv6_sockglue.c
 | 
			
		||||
--- linux-5.4/net/ipv6/ipv6_sockglue.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/ipv6_sockglue.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/ipv6_sockglue.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -44,6 +44,8 @@
 | 
			
		||||
 #include <net/addrconf.h>
 | 
			
		||||
 #include <net/inet_common.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6531,7 +6548,7 @@ diff -aurN linux-5.4/net/ipv6/ipv6_sockglue.c mptcp-mptcp_trunk/net/ipv6/ipv6_so
 | 
			
		|||
 				tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
 | 
			
		||||
diff -aurN linux-5.4/net/ipv6/syncookies.c mptcp-mptcp_trunk/net/ipv6/syncookies.c
 | 
			
		||||
--- linux-5.4/net/ipv6/syncookies.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/syncookies.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/syncookies.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -15,6 +15,8 @@
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
 #include <net/secure_seq.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6621,7 +6638,7 @@ diff -aurN linux-5.4/net/ipv6/syncookies.c mptcp-mptcp_trunk/net/ipv6/syncookies
 | 
			
		|||
 out_free:
 | 
			
		||||
diff -aurN linux-5.4/net/ipv6/tcp_ipv6.c mptcp-mptcp_trunk/net/ipv6/tcp_ipv6.c
 | 
			
		||||
--- linux-5.4/net/ipv6/tcp_ipv6.c	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/tcp_ipv6.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/ipv6/tcp_ipv6.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -58,6 +58,8 @@
 | 
			
		||||
 #include <net/timewait_sock.h>
 | 
			
		||||
 #include <net/inet_common.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -7215,7 +7232,7 @@ diff -aurN linux-5.4/net/ipv6/tcp_ipv6.c mptcp-mptcp_trunk/net/ipv6/tcp_ipv6.c
 | 
			
		|||
 /* thinking of making this const? Don't.
 | 
			
		||||
diff -aurN linux-5.4/net/Kconfig mptcp-mptcp_trunk/net/Kconfig
 | 
			
		||||
--- linux-5.4/net/Kconfig	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/Kconfig	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/Kconfig	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -91,6 +91,7 @@
 | 
			
		||||
 source "net/ipv4/Kconfig"
 | 
			
		||||
 source "net/ipv6/Kconfig"
 | 
			
		||||
| 
						 | 
				
			
			@ -7226,7 +7243,7 @@ diff -aurN linux-5.4/net/Kconfig mptcp-mptcp_trunk/net/Kconfig
 | 
			
		|||
 
 | 
			
		||||
diff -aurN linux-5.4/net/Makefile mptcp-mptcp_trunk/net/Makefile
 | 
			
		||||
--- linux-5.4/net/Makefile	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/Makefile	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/Makefile	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
 obj-$(CONFIG_XFRM)		+= xfrm/
 | 
			
		||||
 obj-$(CONFIG_UNIX_SCM)		+= unix/
 | 
			
		||||
| 
						 | 
				
			
			@ -7237,7 +7254,7 @@ diff -aurN linux-5.4/net/Makefile mptcp-mptcp_trunk/net/Makefile
 | 
			
		|||
 obj-$(CONFIG_NET_KEY)		+= key/
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/Kconfig mptcp-mptcp_trunk/net/mptcp/Kconfig
 | 
			
		||||
--- linux-5.4/net/mptcp/Kconfig	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/Kconfig	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/Kconfig	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,152 @@
 | 
			
		||||
+#
 | 
			
		||||
+# MPTCP configuration
 | 
			
		||||
| 
						 | 
				
			
			@ -7393,7 +7410,7 @@ diff -aurN linux-5.4/net/mptcp/Kconfig mptcp-mptcp_trunk/net/mptcp/Kconfig
 | 
			
		|||
+
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/Makefile mptcp-mptcp_trunk/net/mptcp/Makefile
 | 
			
		||||
--- linux-5.4/net/mptcp/Makefile	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/Makefile	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/Makefile	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
+#
 | 
			
		||||
+## Makefile for MultiPath TCP support code.
 | 
			
		||||
| 
						 | 
				
			
			@ -7422,7 +7439,7 @@ diff -aurN linux-5.4/net/mptcp/Makefile mptcp-mptcp_trunk/net/mptcp/Makefile
 | 
			
		|||
+mptcp-$(subst m,y,$(CONFIG_IPV6)) += mptcp_ipv6.o
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mctcp_desync.c mptcp-mptcp_trunk/net/mptcp/mctcp_desync.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mctcp_desync.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mctcp_desync.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mctcp_desync.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,193 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *  Desynchronized Multi-Channel TCP Congestion Control Algorithm
 | 
			
		||||
| 
						 | 
				
			
			@ -7619,7 +7636,7 @@ diff -aurN linux-5.4/net/mptcp/mctcp_desync.c mptcp-mptcp_trunk/net/mptcp/mctcp_
 | 
			
		|||
+MODULE_VERSION("1.0");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_balia.c mptcp-mptcp_trunk/net/mptcp/mptcp_balia.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_balia.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_balia.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_balia.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,261 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Balia Congestion Control
 | 
			
		||||
| 
						 | 
				
			
			@ -7884,7 +7901,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_balia.c mptcp-mptcp_trunk/net/mptcp/mptcp_b
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_binder.c mptcp-mptcp_trunk/net/mptcp/mptcp_binder.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_binder.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_binder.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_binder.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,494 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -8382,7 +8399,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_binder.c mptcp-mptcp_trunk/net/mptcp/mptcp_
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_blest.c mptcp-mptcp_trunk/net/mptcp/mptcp_blest.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_blest.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_blest.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_blest.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,285 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
+/*	MPTCP Scheduler to reduce HoL-blocking and spurious retransmissions.
 | 
			
		||||
| 
						 | 
				
			
			@ -8671,7 +8688,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_blest.c mptcp-mptcp_trunk/net/mptcp/mptcp_b
 | 
			
		|||
+MODULE_VERSION("0.95");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_coupled.c mptcp-mptcp_trunk/net/mptcp/mptcp_coupled.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_coupled.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_coupled.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_coupled.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,262 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Linked Increase congestion control Algorithm (LIA)
 | 
			
		||||
| 
						 | 
				
			
			@ -8937,8 +8954,8 @@ diff -aurN linux-5.4/net/mptcp/mptcp_coupled.c mptcp-mptcp_trunk/net/mptcp/mptcp
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ctrl.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_ctrl.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ctrl.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,3250 @@
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ctrl.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,3299 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - MPTCP-control
 | 
			
		||||
+ *
 | 
			
		||||
| 
						 | 
				
			
			@ -8986,6 +9003,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+#include <net/transp_v6.h>
 | 
			
		||||
+#include <net/xfrm.h>
 | 
			
		||||
+
 | 
			
		||||
+#include <linux/memblock.h>
 | 
			
		||||
+#include <linux/cryptohash.h>
 | 
			
		||||
+#include <linux/kconfig.h>
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -9113,16 +9131,16 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+	{ }
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+static inline u32 mptcp_hash_tk(u32 token)
 | 
			
		||||
+static inline u32 mptcp_hash_tk(u32 token, struct mptcp_hashtable *htable)
 | 
			
		||||
+{
 | 
			
		||||
+	return token % MPTCP_HASH_SIZE;
 | 
			
		||||
+	return token & htable->mask;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+struct hlist_nulls_head tk_hashtable[MPTCP_HASH_SIZE];
 | 
			
		||||
+EXPORT_SYMBOL(tk_hashtable);
 | 
			
		||||
+struct mptcp_hashtable mptcp_tk_htable;
 | 
			
		||||
+EXPORT_SYMBOL(mptcp_tk_htable);
 | 
			
		||||
+
 | 
			
		||||
+/* The following hash table is used to avoid collision of token */
 | 
			
		||||
+static struct hlist_nulls_head mptcp_reqsk_tk_htb[MPTCP_HASH_SIZE];
 | 
			
		||||
+static struct mptcp_hashtable mptcp_reqsk_tk_htb;
 | 
			
		||||
+
 | 
			
		||||
+/* Lock, protecting the two hash-tables that hold the token. Namely,
 | 
			
		||||
+ * mptcp_reqsk_tk_htb and tk_hashtable
 | 
			
		||||
| 
						 | 
				
			
			@ -9131,13 +9149,14 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+
 | 
			
		||||
+static bool mptcp_reqsk_find_tk(const u32 token)
 | 
			
		||||
+{
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token);
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token, &mptcp_reqsk_tk_htb);
 | 
			
		||||
+	const struct mptcp_request_sock *mtreqsk;
 | 
			
		||||
+	const struct hlist_nulls_node *node;
 | 
			
		||||
+
 | 
			
		||||
+begin:
 | 
			
		||||
+	hlist_nulls_for_each_entry_rcu(mtreqsk, node,
 | 
			
		||||
+				       &mptcp_reqsk_tk_htb[hash], hash_entry) {
 | 
			
		||||
+				       &mptcp_reqsk_tk_htb.hashtable[hash],
 | 
			
		||||
+				       hash_entry) {
 | 
			
		||||
+		if (token == mtreqsk->mptcp_loc_token)
 | 
			
		||||
+			return true;
 | 
			
		||||
+	}
 | 
			
		||||
| 
						 | 
				
			
			@ -9154,10 +9173,10 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+
 | 
			
		||||
+static void mptcp_reqsk_insert_tk(struct request_sock *reqsk, const u32 token)
 | 
			
		||||
+{
 | 
			
		||||
+	u32 hash = mptcp_hash_tk(token);
 | 
			
		||||
+	u32 hash = mptcp_hash_tk(token, &mptcp_reqsk_tk_htb);
 | 
			
		||||
+
 | 
			
		||||
+	hlist_nulls_add_head_rcu(&mptcp_rsk(reqsk)->hash_entry,
 | 
			
		||||
+				 &mptcp_reqsk_tk_htb[hash]);
 | 
			
		||||
+				 &mptcp_reqsk_tk_htb.hashtable[hash]);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static void mptcp_reqsk_remove_tk(const struct request_sock *reqsk)
 | 
			
		||||
| 
						 | 
				
			
			@ -9179,19 +9198,23 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+
 | 
			
		||||
+static void __mptcp_hash_insert(struct tcp_sock *meta_tp, const u32 token)
 | 
			
		||||
+{
 | 
			
		||||
+	u32 hash = mptcp_hash_tk(token);
 | 
			
		||||
+	hlist_nulls_add_head_rcu(&meta_tp->tk_table, &tk_hashtable[hash]);
 | 
			
		||||
+	u32 hash = mptcp_hash_tk(token, &mptcp_tk_htable);
 | 
			
		||||
+
 | 
			
		||||
+	hlist_nulls_add_head_rcu(&meta_tp->tk_table,
 | 
			
		||||
+				 &mptcp_tk_htable.hashtable[hash]);
 | 
			
		||||
+	meta_tp->inside_tk_table = 1;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static bool mptcp_find_token(u32 token)
 | 
			
		||||
+{
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token);
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token, &mptcp_tk_htable);
 | 
			
		||||
+	const struct tcp_sock *meta_tp;
 | 
			
		||||
+	const struct hlist_nulls_node *node;
 | 
			
		||||
+
 | 
			
		||||
+begin:
 | 
			
		||||
+	hlist_nulls_for_each_entry_rcu(meta_tp, node, &tk_hashtable[hash], tk_table) {
 | 
			
		||||
+	hlist_nulls_for_each_entry_rcu(meta_tp, node,
 | 
			
		||||
+				       &mptcp_tk_htable.hashtable[hash],
 | 
			
		||||
+				       tk_table) {
 | 
			
		||||
+		if (token == meta_tp->mptcp_loc_token)
 | 
			
		||||
+			return true;
 | 
			
		||||
+	}
 | 
			
		||||
| 
						 | 
				
			
			@ -9470,7 +9493,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+ */
 | 
			
		||||
+struct sock *mptcp_hash_find(const struct net *net, const u32 token)
 | 
			
		||||
+{
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token);
 | 
			
		||||
+	const u32 hash = mptcp_hash_tk(token, &mptcp_tk_htable);
 | 
			
		||||
+	const struct tcp_sock *meta_tp;
 | 
			
		||||
+	struct sock *meta_sk = NULL;
 | 
			
		||||
+	const struct hlist_nulls_node *node;
 | 
			
		||||
| 
						 | 
				
			
			@ -9478,7 +9501,8 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+	rcu_read_lock();
 | 
			
		||||
+	local_bh_disable();
 | 
			
		||||
+begin:
 | 
			
		||||
+	hlist_nulls_for_each_entry_rcu(meta_tp, node, &tk_hashtable[hash],
 | 
			
		||||
+	hlist_nulls_for_each_entry_rcu(meta_tp, node,
 | 
			
		||||
+				       &mptcp_tk_htable.hashtable[hash],
 | 
			
		||||
+				       tk_table) {
 | 
			
		||||
+		meta_sk = (struct sock *)meta_tp;
 | 
			
		||||
+		if (token == meta_tp->mptcp_loc_token &&
 | 
			
		||||
| 
						 | 
				
			
			@ -11978,17 +12002,18 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+{
 | 
			
		||||
+	struct tcp_sock *meta_tp;
 | 
			
		||||
+	const struct net *net = seq->private;
 | 
			
		||||
+	int i, n = 0;
 | 
			
		||||
+	unsigned int i, n = 0;
 | 
			
		||||
+
 | 
			
		||||
+	seq_printf(seq, "  sl  loc_tok  rem_tok  v6 local_address                         remote_address                        st ns tx_queue rx_queue inode");
 | 
			
		||||
+	seq_putc(seq, '\n');
 | 
			
		||||
+
 | 
			
		||||
+	for (i = 0; i < MPTCP_HASH_SIZE; i++) {
 | 
			
		||||
+	for (i = 0; i <= mptcp_tk_htable.mask; i++) {
 | 
			
		||||
+		struct hlist_nulls_node *node;
 | 
			
		||||
+		rcu_read_lock();
 | 
			
		||||
+		local_bh_disable();
 | 
			
		||||
+		hlist_nulls_for_each_entry_rcu(meta_tp, node,
 | 
			
		||||
+					       &tk_hashtable[i], tk_table) {
 | 
			
		||||
+					       &mptcp_tk_htable.hashtable[i],
 | 
			
		||||
+					       tk_table) {
 | 
			
		||||
+			struct sock *meta_sk = (struct sock *)meta_tp;
 | 
			
		||||
+			struct inet_sock *isk = inet_sk(meta_sk);
 | 
			
		||||
+			struct mptcp_cb *mpcb = meta_tp->mpcb;
 | 
			
		||||
| 
						 | 
				
			
			@ -12102,10 +12127,27 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+	.exit = mptcp_pm_exit_net,
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+static unsigned long mptcp_htable_entries __initdata;
 | 
			
		||||
+
 | 
			
		||||
+static int __init set_mptcp_htable_entries(char *str)
 | 
			
		||||
+{
 | 
			
		||||
+	ssize_t ret;
 | 
			
		||||
+
 | 
			
		||||
+	if (!str)
 | 
			
		||||
+		return 0;
 | 
			
		||||
+
 | 
			
		||||
+	ret = kstrtoul(str, 0, &mptcp_htable_entries);
 | 
			
		||||
+	if (ret)
 | 
			
		||||
+		return 0;
 | 
			
		||||
+
 | 
			
		||||
+	return 1;
 | 
			
		||||
+}
 | 
			
		||||
+__setup("mptcp_htable_entries=", set_mptcp_htable_entries);
 | 
			
		||||
+
 | 
			
		||||
+/* General initialization of mptcp */
 | 
			
		||||
+void __init mptcp_init(void)
 | 
			
		||||
+{
 | 
			
		||||
+	int i;
 | 
			
		||||
+	unsigned int i;
 | 
			
		||||
+	struct ctl_table_header *mptcp_sysctl;
 | 
			
		||||
+
 | 
			
		||||
+	mptcp_sock_cache = kmem_cache_create("mptcp_sock",
 | 
			
		||||
| 
						 | 
				
			
			@ -12133,10 +12175,34 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+	if (!mptcp_wq)
 | 
			
		||||
+		goto alloc_workqueue_failed;
 | 
			
		||||
+
 | 
			
		||||
+	for (i = 0; i < MPTCP_HASH_SIZE; i++) {
 | 
			
		||||
+		INIT_HLIST_NULLS_HEAD(&tk_hashtable[i], i);
 | 
			
		||||
+		INIT_HLIST_NULLS_HEAD(&mptcp_reqsk_tk_htb[i], i);
 | 
			
		||||
+	}
 | 
			
		||||
+	mptcp_tk_htable.hashtable =
 | 
			
		||||
+		alloc_large_system_hash("MPTCP tokens",
 | 
			
		||||
+					sizeof(mptcp_tk_htable.hashtable[0]),
 | 
			
		||||
+					mptcp_htable_entries,
 | 
			
		||||
+					18, /* one slot per 256KB of memory */
 | 
			
		||||
+					0,
 | 
			
		||||
+					NULL,
 | 
			
		||||
+					&mptcp_tk_htable.mask,
 | 
			
		||||
+					1024,
 | 
			
		||||
+					mptcp_htable_entries ? 0 : 1024 * 1024);
 | 
			
		||||
+
 | 
			
		||||
+	for (i = 0; i <= mptcp_tk_htable.mask; i++)
 | 
			
		||||
+		INIT_HLIST_NULLS_HEAD(&mptcp_tk_htable.hashtable[i], i);
 | 
			
		||||
+
 | 
			
		||||
+	mptcp_reqsk_tk_htb.hashtable =
 | 
			
		||||
+		alloc_large_system_hash("MPTCP request tokens",
 | 
			
		||||
+					sizeof(mptcp_reqsk_tk_htb.hashtable[0]),
 | 
			
		||||
+					mptcp_htable_entries,
 | 
			
		||||
+					18, /* one slot per 256KB of memory */
 | 
			
		||||
+					0,
 | 
			
		||||
+					NULL,
 | 
			
		||||
+					&mptcp_reqsk_tk_htb.mask,
 | 
			
		||||
+					1024,
 | 
			
		||||
+					mptcp_htable_entries ? 0 : 1024 * 1024);
 | 
			
		||||
+
 | 
			
		||||
+	for (i = 0; i <= mptcp_reqsk_tk_htb.mask; i++)
 | 
			
		||||
+		INIT_HLIST_NULLS_HEAD(&mptcp_reqsk_tk_htb.hashtable[i], i);
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
+	spin_lock_init(&mptcp_tk_hashlock);
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -12191,7 +12257,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ctrl.c mptcp-mptcp_trunk/net/mptcp/mptcp_ct
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_ecf.c mptcp-mptcp_trunk/net/mptcp/mptcp_ecf.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_ecf.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ecf.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ecf.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,195 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
+/*	MPTCP ECF Scheduler
 | 
			
		||||
| 
						 | 
				
			
			@ -12390,8 +12456,8 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ecf.c mptcp-mptcp_trunk/net/mptcp/mptcp_ecf
 | 
			
		|||
+MODULE_VERSION("0.95");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_trunk/net/mptcp/mptcp_fullmesh.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_fullmesh.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_fullmesh.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1937 @@
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_fullmesh.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1938 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+#include <linux/proc_fs.h>
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -13239,12 +13305,13 @@ diff -aurN linux-5.4/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_trunk/net/mptcp/mptc
 | 
			
		|||
+		goto next_event;
 | 
			
		||||
+
 | 
			
		||||
+	/* Now we iterate over the MPTCP-sockets and apply the event. */
 | 
			
		||||
+	for (i = 0; i < MPTCP_HASH_SIZE; i++) {
 | 
			
		||||
+	for (i = 0; i <= mptcp_tk_htable.mask; i++) {
 | 
			
		||||
+		const struct hlist_nulls_node *node;
 | 
			
		||||
+		struct tcp_sock *meta_tp;
 | 
			
		||||
+
 | 
			
		||||
+		rcu_read_lock_bh();
 | 
			
		||||
+		hlist_nulls_for_each_entry_rcu(meta_tp, node, &tk_hashtable[i],
 | 
			
		||||
+		hlist_nulls_for_each_entry_rcu(meta_tp, node,
 | 
			
		||||
+					       &mptcp_tk_htable.hashtable[i],
 | 
			
		||||
+					       tk_table) {
 | 
			
		||||
+			struct sock *meta_sk = (struct sock *)meta_tp, *sk;
 | 
			
		||||
+			bool meta_v4 = meta_sk->sk_family == AF_INET;
 | 
			
		||||
| 
						 | 
				
			
			@ -14331,7 +14398,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_trunk/net/mptcp/mptc
 | 
			
		|||
+MODULE_VERSION("0.88");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_input.c mptcp-mptcp_trunk/net/mptcp/mptcp_input.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_input.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_input.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_input.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,2529 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Sending side
 | 
			
		||||
| 
						 | 
				
			
			@ -16864,7 +16931,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_input.c mptcp-mptcp_trunk/net/mptcp/mptcp_i
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_ipv4.c mptcp-mptcp_trunk/net/mptcp/mptcp_ipv4.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_ipv4.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ipv4.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ipv4.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,430 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - IPv4-specific functions
 | 
			
		||||
| 
						 | 
				
			
			@ -17298,7 +17365,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ipv4.c mptcp-mptcp_trunk/net/mptcp/mptcp_ip
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_ipv6.c mptcp-mptcp_trunk/net/mptcp/mptcp_ipv6.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_ipv6.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ipv6.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ipv6.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,478 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - IPv6-specific functions
 | 
			
		||||
| 
						 | 
				
			
			@ -17780,7 +17847,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ipv6.c mptcp-mptcp_trunk/net/mptcp/mptcp_ip
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_trunk/net/mptcp/mptcp_ndiffports.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_ndiffports.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ndiffports.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_ndiffports.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,174 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -17958,7 +18025,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_trunk/net/mptcp/mp
 | 
			
		|||
+MODULE_VERSION("0.88");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_netlink.c mptcp-mptcp_trunk/net/mptcp/mptcp_netlink.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_netlink.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_netlink.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_netlink.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1271 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
+/*	MPTCP implementation - Netlink Path Manager
 | 
			
		||||
| 
						 | 
				
			
			@ -19233,7 +19300,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_netlink.c mptcp-mptcp_trunk/net/mptcp/mptcp
 | 
			
		|||
+MODULE_ALIAS_GENL_FAMILY(MPTCP_GENL_NAME);
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_olia.c mptcp-mptcp_trunk/net/mptcp/mptcp_olia.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_olia.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_olia.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_olia.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,318 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * MPTCP implementation - OPPORTUNISTIC LINKED INCREASES CONGESTION CONTROL:
 | 
			
		||||
| 
						 | 
				
			
			@ -19555,7 +19622,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_olia.c mptcp-mptcp_trunk/net/mptcp/mptcp_ol
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_output.c mptcp-mptcp_trunk/net/mptcp/mptcp_output.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_output.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_output.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_output.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,1994 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Sending side
 | 
			
		||||
| 
						 | 
				
			
			@ -21553,7 +21620,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_output.c mptcp-mptcp_trunk/net/mptcp/mptcp_
 | 
			
		|||
+
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_pm.c mptcp-mptcp_trunk/net/mptcp/mptcp_pm.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_pm.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_pm.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_pm.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,226 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *     MPTCP implementation - MPTCP-subflow-management
 | 
			
		||||
| 
						 | 
				
			
			@ -21783,7 +21850,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_pm.c mptcp-mptcp_trunk/net/mptcp/mptcp_pm.c
 | 
			
		|||
+late_initcall(mptcp_path_manager_default);
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_redundant.c mptcp-mptcp_trunk/net/mptcp/mptcp_redundant.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_redundant.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_redundant.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_redundant.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,392 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP Scheduler to reduce latency and jitter.
 | 
			
		||||
| 
						 | 
				
			
			@ -22179,7 +22246,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_redundant.c mptcp-mptcp_trunk/net/mptcp/mpt
 | 
			
		|||
+MODULE_VERSION("0.90");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_rr.c mptcp-mptcp_trunk/net/mptcp/mptcp_rr.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_rr.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_rr.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_rr.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,309 @@
 | 
			
		||||
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -22492,7 +22559,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_rr.c mptcp-mptcp_trunk/net/mptcp/mptcp_rr.c
 | 
			
		|||
+MODULE_VERSION("0.89");
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_sched.c mptcp-mptcp_trunk/net/mptcp/mptcp_sched.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_sched.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_sched.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_sched.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,647 @@
 | 
			
		||||
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -23143,7 +23210,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_sched.c mptcp-mptcp_trunk/net/mptcp/mptcp_s
 | 
			
		|||
+late_initcall(mptcp_scheduler_default);
 | 
			
		||||
diff -aurN linux-5.4/net/mptcp/mptcp_wvegas.c mptcp-mptcp_trunk/net/mptcp/mptcp_wvegas.c
 | 
			
		||||
--- linux-5.4/net/mptcp/mptcp_wvegas.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_wvegas.c	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/net/mptcp/mptcp_wvegas.c	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,271 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - WEIGHTED VEGAS
 | 
			
		||||
| 
						 | 
				
			
			@ -23418,7 +23485,7 @@ diff -aurN linux-5.4/net/mptcp/mptcp_wvegas.c mptcp-mptcp_trunk/net/mptcp/mptcp_
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN linux-5.4/tools/include/uapi/linux/bpf.h mptcp-mptcp_trunk/tools/include/uapi/linux/bpf.h
 | 
			
		||||
--- linux-5.4/tools/include/uapi/linux/bpf.h	2019-11-25 01:32:01.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_trunk/tools/include/uapi/linux/bpf.h	2020-06-08 19:41:07.000000000 +0200
 | 
			
		||||
+++ mptcp-mptcp_trunk/tools/include/uapi/linux/bpf.h	2020-06-09 17:33:41.000000000 +0200
 | 
			
		||||
@@ -3438,6 +3438,7 @@
 | 
			
		||||
 	BPF_TCP_LISTEN,
 | 
			
		||||
 	BPF_TCP_CLOSING,	/* Now a valid state */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue