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
							
								
									4891797626
								
							
						
					
					
						commit
						85acbc94ae
					
				
					 1 changed files with 154 additions and 151 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
diff -aurN a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
 | 
			
		||||
--- a/Documentation/networking/ip-sysctl.txt	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/Documentation/networking/ip-sysctl.txt	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/Documentation/networking/ip-sysctl.txt	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/Documentation/networking/ip-sysctl.txt	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -725,6 +725,18 @@
 | 
			
		||||
 	in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
 | 
			
		||||
 	Default: 100
 | 
			
		||||
| 
						 | 
				
			
			@ -21,8 +21,8 @@ diff -aurN a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/i
 | 
			
		|||
 
 | 
			
		||||
 udp_l3mdev_accept - BOOLEAN
 | 
			
		||||
diff -aurN a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
 | 
			
		||||
--- a/drivers/infiniband/hw/cxgb4/cm.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/drivers/infiniband/hw/cxgb4/cm.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/drivers/infiniband/hw/cxgb4/cm.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/drivers/infiniband/hw/cxgb4/cm.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -3752,7 +3752,7 @@
 | 
			
		||||
 	 */
 | 
			
		||||
 	memset(&tmp_opt, 0, sizeof(tmp_opt));
 | 
			
		||||
| 
						 | 
				
			
			@ -33,8 +33,8 @@ diff -aurN a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
 | 
			
		|||
 	req = __skb_push(skb, sizeof(*req));
 | 
			
		||||
 	memset(req, 0, sizeof(*req));
 | 
			
		||||
diff -aurN a/include/linux/skbuff.h b/include/linux/skbuff.h
 | 
			
		||||
--- a/include/linux/skbuff.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/linux/skbuff.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/linux/skbuff.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/linux/skbuff.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -690,7 +690,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.
 | 
			
		||||
| 
						 | 
				
			
			@ -45,8 +45,8 @@ diff -aurN a/include/linux/skbuff.h b/include/linux/skbuff.h
 | 
			
		|||
 	unsigned long		_skb_refdst;
 | 
			
		||||
 	void			(*destructor)(struct sk_buff *skb);
 | 
			
		||||
diff -aurN a/include/linux/tcp.h b/include/linux/tcp.h
 | 
			
		||||
--- a/include/linux/tcp.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/linux/tcp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/linux/tcp.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/linux/tcp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -58,7 +58,7 @@
 | 
			
		||||
 /* TCP Fast Open */
 | 
			
		||||
 #define TCP_FASTOPEN_COOKIE_MIN	4	/* Min Fast Open Cookie size in bytes */
 | 
			
		||||
| 
						 | 
				
			
			@ -204,8 +204,8 @@ diff -aurN a/include/linux/tcp.h b/include/linux/tcp.h
 | 
			
		|||
 
 | 
			
		||||
 static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk)
 | 
			
		||||
diff -aurN a/include/net/inet_common.h b/include/net/inet_common.h
 | 
			
		||||
--- a/include/net/inet_common.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/inet_common.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/inet_common.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/inet_common.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -2,6 +2,8 @@
 | 
			
		||||
 #ifndef _INET_COMMON_H
 | 
			
		||||
 #define _INET_COMMON_H
 | 
			
		||||
| 
						 | 
				
			
			@ -225,8 +225,8 @@ diff -aurN a/include/net/inet_common.h b/include/net/inet_common.h
 | 
			
		|||
 int inet_stream_connect(struct socket *sock, struct sockaddr *uaddr,
 | 
			
		||||
 			int addr_len, int flags);
 | 
			
		||||
diff -aurN a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
 | 
			
		||||
--- a/include/net/inet_connection_sock.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/inet_connection_sock.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/inet_connection_sock.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/inet_connection_sock.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -30,6 +30,7 @@
 | 
			
		||||
 
 | 
			
		||||
 struct inet_bind_bucket;
 | 
			
		||||
| 
						 | 
				
			
			@ -236,8 +236,8 @@ diff -aurN a/include/net/inet_connection_sock.h b/include/net/inet_connection_so
 | 
			
		|||
 /*
 | 
			
		||||
  * Pointers to address related TCP functions
 | 
			
		||||
diff -aurN a/include/net/inet_sock.h b/include/net/inet_sock.h
 | 
			
		||||
--- a/include/net/inet_sock.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/inet_sock.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/inet_sock.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/inet_sock.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -90,7 +90,9 @@
 | 
			
		||||
 				wscale_ok  : 1,
 | 
			
		||||
 				ecn_ok	   : 1,
 | 
			
		||||
| 
						 | 
				
			
			@ -251,7 +251,7 @@ diff -aurN a/include/net/inet_sock.h b/include/net/inet_sock.h
 | 
			
		|||
 		struct ip_options_rcu __rcu	*ireq_opt;
 | 
			
		||||
diff -aurN a/include/net/mptcp.h b/include/net/mptcp.h
 | 
			
		||||
--- a/include/net/mptcp.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/include/net/mptcp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/include/net/mptcp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,1510 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
| 
						 | 
				
			
			@ -1765,7 +1765,7 @@ diff -aurN a/include/net/mptcp.h b/include/net/mptcp.h
 | 
			
		|||
+#endif /* _MPTCP_H */
 | 
			
		||||
diff -aurN a/include/net/mptcp_v4.h b/include/net/mptcp_v4.h
 | 
			
		||||
--- a/include/net/mptcp_v4.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/include/net/mptcp_v4.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/include/net/mptcp_v4.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,68 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
| 
						 | 
				
			
			@ -1837,7 +1837,7 @@ diff -aurN a/include/net/mptcp_v4.h b/include/net/mptcp_v4.h
 | 
			
		|||
+#endif /* MPTCP_V4_H_ */
 | 
			
		||||
diff -aurN a/include/net/mptcp_v6.h b/include/net/mptcp_v6.h
 | 
			
		||||
--- a/include/net/mptcp_v6.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/include/net/mptcp_v6.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/include/net/mptcp_v6.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,69 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation
 | 
			
		||||
| 
						 | 
				
			
			@ -1909,8 +1909,8 @@ diff -aurN a/include/net/mptcp_v6.h b/include/net/mptcp_v6.h
 | 
			
		|||
+
 | 
			
		||||
+#endif /* _MPTCP_V6_H */
 | 
			
		||||
diff -aurN a/include/net/net_namespace.h b/include/net/net_namespace.h
 | 
			
		||||
--- a/include/net/net_namespace.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/net_namespace.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/net_namespace.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/net_namespace.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -18,6 +18,7 @@
 | 
			
		||||
 #include <net/netns/packet.h>
 | 
			
		||||
 #include <net/netns/ipv4.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -1931,7 +1931,7 @@ diff -aurN a/include/net/net_namespace.h b/include/net/net_namespace.h
 | 
			
		|||
 #endif
 | 
			
		||||
diff -aurN a/include/net/netns/mptcp.h b/include/net/netns/mptcp.h
 | 
			
		||||
--- a/include/net/netns/mptcp.h	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/include/net/netns/mptcp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/include/net/netns/mptcp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,52 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - MPTCP namespace
 | 
			
		||||
| 
						 | 
				
			
			@ -1986,8 +1986,8 @@ diff -aurN a/include/net/netns/mptcp.h b/include/net/netns/mptcp.h
 | 
			
		|||
+
 | 
			
		||||
+#endif /* __NETNS_MPTCP_H__ */
 | 
			
		||||
diff -aurN a/include/net/snmp.h b/include/net/snmp.h
 | 
			
		||||
--- a/include/net/snmp.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/snmp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/snmp.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/snmp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -91,7 +91,6 @@
 | 
			
		||||
 	atomic_long_t	mibs[ICMP6MSG_MIB_MAX];
 | 
			
		||||
 };
 | 
			
		||||
| 
						 | 
				
			
			@ -1997,8 +1997,8 @@ diff -aurN a/include/net/snmp.h b/include/net/snmp.h
 | 
			
		|||
 #define TCP_MIB_MAX	__TCP_MIB_MAX
 | 
			
		||||
 struct tcp_mib {
 | 
			
		||||
diff -aurN a/include/net/sock.h b/include/net/sock.h
 | 
			
		||||
--- a/include/net/sock.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/sock.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/sock.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/sock.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -771,6 +771,7 @@
 | 
			
		||||
 	SOCK_FILTER_LOCKED, /* Filter cannot be changed anymore */
 | 
			
		||||
 	SOCK_SELECT_ERR_QUEUE, /* Wake select on error queue */
 | 
			
		||||
| 
						 | 
				
			
			@ -2016,8 +2016,8 @@ diff -aurN a/include/net/sock.h b/include/net/sock.h
 | 
			
		|||
 	/* Keeping track of sockets in use */
 | 
			
		||||
 #ifdef CONFIG_PROC_FS
 | 
			
		||||
diff -aurN a/include/net/tcp.h b/include/net/tcp.h
 | 
			
		||||
--- a/include/net/tcp.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/tcp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/tcp.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/tcp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -185,6 +185,7 @@
 | 
			
		||||
 #define TCPOPT_SACK             5       /* SACK Block */
 | 
			
		||||
 #define TCPOPT_TIMESTAMP	8	/* Better RTT estimations/PAWS */
 | 
			
		||||
| 
						 | 
				
			
			@ -2339,8 +2339,8 @@ diff -aurN a/include/net/tcp.h b/include/net/tcp.h
 | 
			
		|||
 					 __u16 *mss)
 | 
			
		||||
 {
 | 
			
		||||
diff -aurN a/include/net/tcp_states.h b/include/net/tcp_states.h
 | 
			
		||||
--- a/include/net/tcp_states.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/tcp_states.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/tcp_states.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/tcp_states.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -26,6 +26,7 @@
 | 
			
		||||
 	TCP_LISTEN,
 | 
			
		||||
 	TCP_CLOSING,	/* Now a valid state */
 | 
			
		||||
| 
						 | 
				
			
			@ -2358,8 +2358,8 @@ diff -aurN a/include/net/tcp_states.h b/include/net/tcp_states.h
 | 
			
		|||
 
 | 
			
		||||
 #endif	/* _LINUX_TCP_STATES_H */
 | 
			
		||||
diff -aurN a/include/net/transp_v6.h b/include/net/transp_v6.h
 | 
			
		||||
--- a/include/net/transp_v6.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/net/transp_v6.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/net/transp_v6.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/net/transp_v6.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -59,6 +59,8 @@
 | 
			
		||||
 
 | 
			
		||||
 /* address family specific functions */
 | 
			
		||||
| 
						 | 
				
			
			@ -2370,8 +2370,8 @@ diff -aurN a/include/net/transp_v6.h b/include/net/transp_v6.h
 | 
			
		|||
 void inet6_destroy_sock(struct sock *sk);
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/include/uapi/linux/if.h b/include/uapi/linux/if.h
 | 
			
		||||
--- a/include/uapi/linux/if.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/uapi/linux/if.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/uapi/linux/if.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/uapi/linux/if.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -132,6 +132,9 @@
 | 
			
		||||
 #define IFF_ECHO			IFF_ECHO
 | 
			
		||||
 #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
 | 
			
		||||
| 
						 | 
				
			
			@ -2383,8 +2383,8 @@ diff -aurN a/include/uapi/linux/if.h b/include/uapi/linux/if.h
 | 
			
		|||
 		IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT)
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
 | 
			
		||||
--- a/include/uapi/linux/tcp.h	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/include/uapi/linux/tcp.h	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/include/uapi/linux/tcp.h	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/include/uapi/linux/tcp.h	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -18,9 +18,15 @@
 | 
			
		||||
 #ifndef _UAPI_LINUX_TCP_H
 | 
			
		||||
 #define _UAPI_LINUX_TCP_H
 | 
			
		||||
| 
						 | 
				
			
			@ -2470,9 +2470,9 @@ diff -aurN a/include/uapi/linux/tcp.h b/include/uapi/linux/tcp.h
 | 
			
		|||
 #define TCP_MD5SIG_MAXKEYLEN	80
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/core/dev.c b/net/core/dev.c
 | 
			
		||||
--- a/net/core/dev.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/core/dev.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
@@ -6740,7 +6740,7 @@
 | 
			
		||||
--- a/net/core/dev.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/core/dev.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -6762,7 +6762,7 @@
 | 
			
		||||
 
 | 
			
		||||
 	dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
 | 
			
		||||
 			       IFF_DYNAMIC | IFF_MULTICAST | IFF_PORTSEL |
 | 
			
		||||
| 
						 | 
				
			
			@ -2482,8 +2482,8 @@ diff -aurN a/net/core/dev.c b/net/core/dev.c
 | 
			
		|||
 				    IFF_ALLMULTI));
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/core/skbuff.c b/net/core/skbuff.c
 | 
			
		||||
--- a/net/core/skbuff.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/core/skbuff.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/core/skbuff.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/core/skbuff.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -532,7 +532,7 @@
 | 
			
		||||
 	skb_drop_list(&skb_shinfo(skb)->frag_list);
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -2503,8 +2503,8 @@ diff -aurN a/net/core/skbuff.c b/net/core/skbuff.c
 | 
			
		|||
 	__copy_skb_header(new, old);
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/core/sock.c b/net/core/sock.c
 | 
			
		||||
--- a/net/core/sock.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/core/sock.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/core/sock.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/core/sock.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -139,6 +139,11 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <trace/events/sock.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2565,8 +2565,8 @@ diff -aurN a/net/core/sock.c b/net/core/sock.c
 | 
			
		|||
 		cgroup_sk_alloc(&newsk->sk_cgrp_data);
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
 | 
			
		||||
--- a/net/ipv4/af_inet.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/af_inet.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/af_inet.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/af_inet.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -104,6 +104,7 @@
 | 
			
		||||
 #include <net/ip_fib.h>
 | 
			
		||||
 #include <net/inet_connection_sock.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2630,8 +2630,8 @@ diff -aurN a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
 | 
			
		|||
 	tcp_init();
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		||||
--- a/net/ipv4/inet_connection_sock.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/inet_connection_sock.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/inet_connection_sock.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/inet_connection_sock.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -23,6 +23,7 @@
 | 
			
		||||
 #include <net/route.h>
 | 
			
		||||
 #include <net/tcp_states.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2640,7 +2640,7 @@ diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		|||
 #include <net/tcp.h>
 | 
			
		||||
 #include <net/sock_reuseport.h>
 | 
			
		||||
 #include <net/addrconf.h>
 | 
			
		||||
@@ -686,7 +687,10 @@
 | 
			
		||||
@@ -689,7 +690,10 @@
 | 
			
		||||
 	int max_retries, thresh;
 | 
			
		||||
 	u8 defer_accept;
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -2652,7 +2652,7 @@ diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		|||
 		goto drop;
 | 
			
		||||
 
 | 
			
		||||
 	max_retries = icsk->icsk_syn_retries ? : net->ipv4.sysctl_tcp_synack_retries;
 | 
			
		||||
@@ -780,7 +784,9 @@
 | 
			
		||||
@@ -783,7 +787,9 @@
 | 
			
		||||
 				 const struct request_sock *req,
 | 
			
		||||
 				 const gfp_t priority)
 | 
			
		||||
 {
 | 
			
		||||
| 
						 | 
				
			
			@ -2663,7 +2663,7 @@ diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		|||
 
 | 
			
		||||
 	if (newsk) {
 | 
			
		||||
 		struct inet_connection_sock *newicsk = inet_csk(newsk);
 | 
			
		||||
@@ -980,7 +986,12 @@
 | 
			
		||||
@@ -983,7 +989,12 @@
 | 
			
		||||
 	 */
 | 
			
		||||
 	while ((req = reqsk_queue_remove(queue, sk)) != NULL) {
 | 
			
		||||
 		struct sock *child = req->sk;
 | 
			
		||||
| 
						 | 
				
			
			@ -2676,7 +2676,7 @@ diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		|||
 		local_bh_disable();
 | 
			
		||||
 		bh_lock_sock(child);
 | 
			
		||||
 		WARN_ON(sock_owned_by_user(child));
 | 
			
		||||
@@ -990,6 +1001,8 @@
 | 
			
		||||
@@ -993,6 +1004,8 @@
 | 
			
		||||
 		reqsk_put(req);
 | 
			
		||||
 		bh_unlock_sock(child);
 | 
			
		||||
 		local_bh_enable();
 | 
			
		||||
| 
						 | 
				
			
			@ -2686,8 +2686,8 @@ diff -aurN a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
 | 
			
		|||
 
 | 
			
		||||
 		cond_resched();
 | 
			
		||||
diff -aurN a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
 | 
			
		||||
--- a/net/ipv4/ip_sockglue.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/ip_sockglue.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/ip_sockglue.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/ip_sockglue.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -44,6 +44,8 @@
 | 
			
		||||
 #endif
 | 
			
		||||
 #include <net/ip_fib.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2697,7 +2697,7 @@ diff -aurN a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
 | 
			
		|||
 #include <linux/errqueue.h>
 | 
			
		||||
 #include <linux/uaccess.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -755,6 +757,17 @@
 | 
			
		||||
@@ -754,6 +756,17 @@
 | 
			
		||||
 			inet->tos = val;
 | 
			
		||||
 			sk->sk_priority = rt_tos2priority(val);
 | 
			
		||||
 			sk_dst_reset(sk);
 | 
			
		||||
| 
						 | 
				
			
			@ -2716,8 +2716,8 @@ diff -aurN a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
 | 
			
		|||
 		break;
 | 
			
		||||
 	case IP_TTL:
 | 
			
		||||
diff -aurN a/net/ipv4/Kconfig b/net/ipv4/Kconfig
 | 
			
		||||
--- a/net/ipv4/Kconfig	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/Kconfig	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/Kconfig	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/Kconfig	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -675,6 +675,38 @@
 | 
			
		||||
 	bufferbloat, policers, or AQM schemes that do not provide a delay
 | 
			
		||||
 	signal. It requires the fq ("Fair Queue") pacing packet scheduler.
 | 
			
		||||
| 
						 | 
				
			
			@ -2788,8 +2788,8 @@ diff -aurN a/net/ipv4/Kconfig b/net/ipv4/Kconfig
 | 
			
		|||
 	default "dctcp" if DEFAULT_DCTCP
 | 
			
		||||
 	default "cdg" if DEFAULT_CDG
 | 
			
		||||
diff -aurN a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
 | 
			
		||||
--- a/net/ipv4/syncookies.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/syncookies.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/syncookies.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/syncookies.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -16,6 +16,8 @@
 | 
			
		||||
 #include <linux/siphash.h>
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -2903,8 +2903,8 @@ diff -aurN a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
 | 
			
		|||
 	ireq->rcv_wscale  = rcv_wscale;
 | 
			
		||||
 	ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), &rt->dst);
 | 
			
		||||
diff -aurN a/net/ipv4/tcp.c b/net/ipv4/tcp.c
 | 
			
		||||
--- a/net/ipv4/tcp.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -273,6 +273,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <net/icmp.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -3533,8 +3533,8 @@ diff -aurN a/net/ipv4/tcp.c b/net/ipv4/tcp.c
 | 
			
		|||
 }
 | 
			
		||||
 EXPORT_SYMBOL_GPL(tcp_abort);
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
 | 
			
		||||
--- a/net/ipv4/tcp_fastopen.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_fastopen.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_fastopen.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_fastopen.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -9,6 +9,7 @@
 | 
			
		||||
 #include <linux/rculist.h>
 | 
			
		||||
 #include <net/inetpeer.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -3588,8 +3588,8 @@ diff -aurN a/net/ipv4/tcp_fastopen.c b/net/ipv4/tcp_fastopen.c
 | 
			
		|||
 	 * and queues the child into listener accept queue.
 | 
			
		||||
 	 */
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		||||
--- a/net/ipv4/tcp_input.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_input.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_input.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_input.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -76,6 +76,9 @@
 | 
			
		||||
 #include <linux/ipsec.h>
 | 
			
		||||
 #include <asm/unaligned.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -4250,7 +4250,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 {
 | 
			
		||||
 	struct tcp_sock *tp = tcp_sk(sk);
 | 
			
		||||
 	struct inet_connection_sock *icsk = inet_csk(sk);
 | 
			
		||||
@@ -5930,6 +6064,16 @@
 | 
			
		||||
@@ -5932,6 +6066,16 @@
 | 
			
		||||
 		tp->rx_opt.saw_tstamp = 0;
 | 
			
		||||
 		tcp_mstamp_refresh(tp);
 | 
			
		||||
 		queued = tcp_rcv_synsent_state_process(sk, skb, th);
 | 
			
		||||
| 
						 | 
				
			
			@ -4267,7 +4267,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 		if (queued >= 0)
 | 
			
		||||
 			return queued;
 | 
			
		||||
 
 | 
			
		||||
@@ -5937,6 +6081,8 @@
 | 
			
		||||
@@ -5939,6 +6083,8 @@
 | 
			
		||||
 		tcp_urg(sk, skb, th);
 | 
			
		||||
 		__kfree_skb(skb);
 | 
			
		||||
 		tcp_data_snd_check(sk);
 | 
			
		||||
| 
						 | 
				
			
			@ -4276,7 +4276,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 		return 0;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
@@ -5987,7 +6133,7 @@
 | 
			
		||||
@@ -5989,7 +6135,7 @@
 | 
			
		||||
 
 | 
			
		||||
 			tcp_mtup_init(sk);
 | 
			
		||||
 			tp->copied_seq = tp->rcv_nxt;
 | 
			
		||||
| 
						 | 
				
			
			@ -4285,7 +4285,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 		}
 | 
			
		||||
 		smp_mb();
 | 
			
		||||
 		tcp_set_state(sk, TCP_ESTABLISHED);
 | 
			
		||||
@@ -6006,6 +6152,8 @@
 | 
			
		||||
@@ -6008,6 +6154,8 @@
 | 
			
		||||
 
 | 
			
		||||
 		if (tp->rx_opt.tstamp_ok)
 | 
			
		||||
 			tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;
 | 
			
		||||
| 
						 | 
				
			
			@ -4294,7 +4294,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 
 | 
			
		||||
 		if (req) {
 | 
			
		||||
 			/* Re-arm the timer because data may have been sent out.
 | 
			
		||||
@@ -6028,6 +6176,16 @@
 | 
			
		||||
@@ -6030,6 +6178,16 @@
 | 
			
		||||
 
 | 
			
		||||
 		tcp_initialize_rcv_mss(sk);
 | 
			
		||||
 		tcp_fast_path_on(tp);
 | 
			
		||||
| 
						 | 
				
			
			@ -4311,7 +4311,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 		break;
 | 
			
		||||
 
 | 
			
		||||
 	case TCP_FIN_WAIT1: {
 | 
			
		||||
@@ -6075,7 +6233,8 @@
 | 
			
		||||
@@ -6077,7 +6235,8 @@
 | 
			
		||||
 		tmo = tcp_fin_time(sk);
 | 
			
		||||
 		if (tmo > TCP_TIMEWAIT_LEN) {
 | 
			
		||||
 			inet_csk_reset_keepalive_timer(sk, tmo - TCP_TIMEWAIT_LEN);
 | 
			
		||||
| 
						 | 
				
			
			@ -4321,7 +4321,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 			/* Bad case. We could lose such FIN otherwise.
 | 
			
		||||
 			 * It is not a big problem, but it looks confusing
 | 
			
		||||
 			 * and not so rare event. We still can lose it now,
 | 
			
		||||
@@ -6084,7 +6243,7 @@
 | 
			
		||||
@@ -6086,7 +6245,7 @@
 | 
			
		||||
 			 */
 | 
			
		||||
 			inet_csk_reset_keepalive_timer(sk, tmo);
 | 
			
		||||
 		} else {
 | 
			
		||||
| 
						 | 
				
			
			@ -4330,7 +4330,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 			goto discard;
 | 
			
		||||
 		}
 | 
			
		||||
 		break;
 | 
			
		||||
@@ -6092,7 +6251,7 @@
 | 
			
		||||
@@ -6094,7 +6253,7 @@
 | 
			
		||||
 
 | 
			
		||||
 	case TCP_CLOSING:
 | 
			
		||||
 		if (tp->snd_una == tp->write_seq) {
 | 
			
		||||
| 
						 | 
				
			
			@ -4339,7 +4339,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 			goto discard;
 | 
			
		||||
 		}
 | 
			
		||||
 		break;
 | 
			
		||||
@@ -6104,6 +6263,9 @@
 | 
			
		||||
@@ -6106,6 +6265,9 @@
 | 
			
		||||
 			goto discard;
 | 
			
		||||
 		}
 | 
			
		||||
 		break;
 | 
			
		||||
| 
						 | 
				
			
			@ -4349,7 +4349,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	/* step 6: check the URG bit */
 | 
			
		||||
@@ -6124,7 +6286,8 @@
 | 
			
		||||
@@ -6126,7 +6288,8 @@
 | 
			
		||||
 		 */
 | 
			
		||||
 		if (sk->sk_shutdown & RCV_SHUTDOWN) {
 | 
			
		||||
 			if (TCP_SKB_CB(skb)->end_seq != TCP_SKB_CB(skb)->seq &&
 | 
			
		||||
| 
						 | 
				
			
			@ -4359,7 +4359,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 				NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPABORTONDATA);
 | 
			
		||||
 				tcp_reset(sk);
 | 
			
		||||
 				return 1;
 | 
			
		||||
@@ -6221,6 +6384,8 @@
 | 
			
		||||
@@ -6223,6 +6386,8 @@
 | 
			
		||||
 	ireq->wscale_ok = rx_opt->wscale_ok;
 | 
			
		||||
 	ireq->acked = 0;
 | 
			
		||||
 	ireq->ecn_ok = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -4368,7 +4368,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 	ireq->ir_rmt_port = tcp_hdr(skb)->source;
 | 
			
		||||
 	ireq->ir_num = ntohs(tcp_hdr(skb)->dest);
 | 
			
		||||
 	ireq->ir_mark = inet_request_mark(sk, skb);
 | 
			
		||||
@@ -6315,12 +6480,17 @@
 | 
			
		||||
@@ -6317,12 +6482,17 @@
 | 
			
		||||
 	/* TW buckets are converted to open requests without
 | 
			
		||||
 	 * limitations, they conserve resources and peer is
 | 
			
		||||
 	 * evidently real one.
 | 
			
		||||
| 
						 | 
				
			
			@ -4387,7 +4387,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	if (sk_acceptq_is_full(sk)) {
 | 
			
		||||
@@ -6338,8 +6508,8 @@
 | 
			
		||||
@@ -6340,8 +6510,8 @@
 | 
			
		||||
 	tcp_clear_options(&tmp_opt);
 | 
			
		||||
 	tmp_opt.mss_clamp = af_ops->mss_clamp;
 | 
			
		||||
 	tmp_opt.user_mss  = tp->rx_opt.user_mss;
 | 
			
		||||
| 
						 | 
				
			
			@ -4398,7 +4398,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 
 | 
			
		||||
 	if (want_cookie && !tmp_opt.saw_tstamp)
 | 
			
		||||
 		tcp_clear_options(&tmp_opt);
 | 
			
		||||
@@ -6351,7 +6521,8 @@
 | 
			
		||||
@@ -6353,7 +6523,8 @@
 | 
			
		||||
 	/* Note: tcp_v6_init_req() might override ir_iif for link locals */
 | 
			
		||||
 	inet_rsk(req)->ir_iif = inet_request_bound_dev_if(sk, skb);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4408,7 +4408,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 
 | 
			
		||||
 	if (security_inet_conn_request(sk, skb, req))
 | 
			
		||||
 		goto drop_and_free;
 | 
			
		||||
@@ -6387,7 +6558,7 @@
 | 
			
		||||
@@ -6389,7 +6560,7 @@
 | 
			
		||||
 	tcp_ecn_create_request(req, skb, sk, dst);
 | 
			
		||||
 
 | 
			
		||||
 	if (want_cookie) {
 | 
			
		||||
| 
						 | 
				
			
			@ -4417,7 +4417,7 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 		req->cookie_ts = tmp_opt.tstamp_ok;
 | 
			
		||||
 		if (!tmp_opt.tstamp_ok)
 | 
			
		||||
 			inet_rsk(req)->ecn_ok = 0;
 | 
			
		||||
@@ -6401,12 +6572,18 @@
 | 
			
		||||
@@ -6403,12 +6574,18 @@
 | 
			
		||||
 		fastopen_sk = tcp_try_fastopen(sk, skb, req, &foc);
 | 
			
		||||
 	}
 | 
			
		||||
 	if (fastopen_sk) {
 | 
			
		||||
| 
						 | 
				
			
			@ -4438,8 +4438,8 @@ diff -aurN a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
 | 
			
		|||
 	} else {
 | 
			
		||||
 		tcp_rsk(req)->tfo_listener = false;
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		||||
--- a/net/ipv4/tcp_ipv4.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_ipv4.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_ipv4.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_ipv4.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -67,6 +67,8 @@
 | 
			
		||||
 #include <net/icmp.h>
 | 
			
		||||
 #include <net/inet_hashtables.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -4680,7 +4680,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 {
 | 
			
		||||
 	const struct inet_request_sock *ireq = inet_rsk(req);
 | 
			
		||||
 	struct flowi4 fl4;
 | 
			
		||||
@@ -887,7 +923,7 @@
 | 
			
		||||
@@ -889,7 +925,7 @@
 | 
			
		||||
 /*
 | 
			
		||||
  *	IPv4 request_sock destructor.
 | 
			
		||||
  */
 | 
			
		||||
| 
						 | 
				
			
			@ -4689,7 +4689,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 {
 | 
			
		||||
 	kfree(rcu_dereference_protected(inet_rsk(req)->ireq_opt, 1));
 | 
			
		||||
 }
 | 
			
		||||
@@ -1260,9 +1296,10 @@
 | 
			
		||||
@@ -1262,9 +1298,10 @@
 | 
			
		||||
 	return false;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4703,7 +4703,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 {
 | 
			
		||||
 	struct inet_request_sock *ireq = inet_rsk(req);
 | 
			
		||||
 	struct net *net = sock_net(sk_listener);
 | 
			
		||||
@@ -1270,6 +1307,8 @@
 | 
			
		||||
@@ -1272,6 +1309,8 @@
 | 
			
		||||
 	sk_rcv_saddr_set(req_to_sk(req), ip_hdr(skb)->daddr);
 | 
			
		||||
 	sk_daddr_set(req_to_sk(req), ip_hdr(skb)->saddr);
 | 
			
		||||
 	RCU_INIT_POINTER(ireq->ireq_opt, tcp_v4_save_options(net, skb));
 | 
			
		||||
| 
						 | 
				
			
			@ -4712,7 +4712,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 }
 | 
			
		||||
 
 | 
			
		||||
 static struct dst_entry *tcp_v4_route_req(const struct sock *sk,
 | 
			
		||||
@@ -1289,7 +1328,7 @@
 | 
			
		||||
@@ -1291,7 +1330,7 @@
 | 
			
		||||
 	.syn_ack_timeout =	tcp_syn_ack_timeout,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4721,7 +4721,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	.mss_clamp	=	TCP_MSS_DEFAULT,
 | 
			
		||||
 #ifdef CONFIG_TCP_MD5SIG
 | 
			
		||||
 	.req_md5_lookup	=	tcp_v4_md5_lookup,
 | 
			
		||||
@@ -1426,7 +1465,7 @@
 | 
			
		||||
@@ -1428,7 +1467,7 @@
 | 
			
		||||
 }
 | 
			
		||||
 EXPORT_SYMBOL(tcp_v4_syn_recv_sock);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4730,7 +4730,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 {
 | 
			
		||||
 #ifdef CONFIG_SYN_COOKIES
 | 
			
		||||
 	const struct tcphdr *th = tcp_hdr(skb);
 | 
			
		||||
@@ -1449,6 +1488,9 @@
 | 
			
		||||
@@ -1451,6 +1490,9 @@
 | 
			
		||||
 {
 | 
			
		||||
 	struct sock *rsk;
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4740,7 +4740,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	if (sk->sk_state == TCP_ESTABLISHED) { /* Fast path */
 | 
			
		||||
 		struct dst_entry *dst = sk->sk_rx_dst;
 | 
			
		||||
 
 | 
			
		||||
@@ -1607,6 +1649,10 @@
 | 
			
		||||
@@ -1609,6 +1651,10 @@
 | 
			
		||||
 	TCP_SKB_CB(skb)->end_seq = (TCP_SKB_CB(skb)->seq + th->syn + th->fin +
 | 
			
		||||
 				    skb->len - th->doff * 4);
 | 
			
		||||
 	TCP_SKB_CB(skb)->ack_seq = ntohl(th->ack_seq);
 | 
			
		||||
| 
						 | 
				
			
			@ -4751,7 +4751,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	TCP_SKB_CB(skb)->tcp_flags = tcp_flag_byte(th);
 | 
			
		||||
 	TCP_SKB_CB(skb)->tcp_tw_isn = 0;
 | 
			
		||||
 	TCP_SKB_CB(skb)->ip_dsfield = ipv4_get_dsfield(iph);
 | 
			
		||||
@@ -1625,8 +1671,8 @@
 | 
			
		||||
@@ -1627,8 +1673,8 @@
 | 
			
		||||
 	int sdif = inet_sdif(skb);
 | 
			
		||||
 	const struct iphdr *iph;
 | 
			
		||||
 	const struct tcphdr *th;
 | 
			
		||||
| 
						 | 
				
			
			@ -4761,7 +4761,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	int ret;
 | 
			
		||||
 
 | 
			
		||||
 	if (skb->pkt_type != PACKET_HOST)
 | 
			
		||||
@@ -1679,7 +1725,7 @@
 | 
			
		||||
@@ -1681,7 +1727,7 @@
 | 
			
		||||
 			reqsk_put(req);
 | 
			
		||||
 			goto csum_error;
 | 
			
		||||
 		}
 | 
			
		||||
| 
						 | 
				
			
			@ -4770,7 +4770,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 			inet_csk_reqsk_queue_drop_and_put(sk, req);
 | 
			
		||||
 			goto lookup;
 | 
			
		||||
 		}
 | 
			
		||||
@@ -1688,6 +1734,36 @@
 | 
			
		||||
@@ -1690,6 +1736,36 @@
 | 
			
		||||
 		 */
 | 
			
		||||
 		sock_hold(sk);
 | 
			
		||||
 		refcounted = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -4807,7 +4807,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 		nsk = NULL;
 | 
			
		||||
 		if (!tcp_filter(sk, skb)) {
 | 
			
		||||
 			th = (const struct tcphdr *)skb->data;
 | 
			
		||||
@@ -1697,11 +1773,15 @@
 | 
			
		||||
@@ -1699,11 +1775,15 @@
 | 
			
		||||
 		}
 | 
			
		||||
 		if (!nsk) {
 | 
			
		||||
 			reqsk_put(req);
 | 
			
		||||
| 
						 | 
				
			
			@ -4823,7 +4823,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 		} else if (tcp_child_process(sk, nsk, skb)) {
 | 
			
		||||
 			tcp_v4_send_reset(nsk, skb);
 | 
			
		||||
 			goto discard_and_relse;
 | 
			
		||||
@@ -1738,15 +1818,24 @@
 | 
			
		||||
@@ -1740,15 +1820,24 @@
 | 
			
		||||
 
 | 
			
		||||
 	sk_incoming_cpu_update(sk);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4852,7 +4852,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 
 | 
			
		||||
 put_and_return:
 | 
			
		||||
 	if (refcounted)
 | 
			
		||||
@@ -1760,6 +1849,19 @@
 | 
			
		||||
@@ -1762,6 +1851,19 @@
 | 
			
		||||
 
 | 
			
		||||
 	tcp_v4_fill_cb(skb, iph, th);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4872,7 +4872,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	if (tcp_checksum_complete(skb)) {
 | 
			
		||||
 csum_error:
 | 
			
		||||
 		__TCP_INC_STATS(net, TCP_MIB_CSUMERRORS);
 | 
			
		||||
@@ -1808,6 +1910,18 @@
 | 
			
		||||
@@ -1810,6 +1912,18 @@
 | 
			
		||||
 			refcounted = false;
 | 
			
		||||
 			goto process;
 | 
			
		||||
 		}
 | 
			
		||||
| 
						 | 
				
			
			@ -4891,7 +4891,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 		/* Fall through to ACK */
 | 
			
		||||
 	}
 | 
			
		||||
 	case TCP_TW_ACK:
 | 
			
		||||
@@ -1876,7 +1990,12 @@
 | 
			
		||||
@@ -1878,7 +1992,12 @@
 | 
			
		||||
 
 | 
			
		||||
 	tcp_init_sock(sk);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4905,7 +4905,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 
 | 
			
		||||
 #ifdef CONFIG_TCP_MD5SIG
 | 
			
		||||
 	tcp_sk(sk)->af_specific = &tcp_sock_ipv4_specific;
 | 
			
		||||
@@ -1893,6 +2012,11 @@
 | 
			
		||||
@@ -1895,6 +2014,11 @@
 | 
			
		||||
 
 | 
			
		||||
 	tcp_cleanup_congestion_control(sk);
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -4917,7 +4917,7 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 	tcp_cleanup_ulp(sk);
 | 
			
		||||
 
 | 
			
		||||
 	/* Cleanup up the write buffer. */
 | 
			
		||||
@@ -2439,7 +2563,15 @@
 | 
			
		||||
@@ -2441,7 +2565,15 @@
 | 
			
		||||
 	.compat_setsockopt	= compat_tcp_setsockopt,
 | 
			
		||||
 	.compat_getsockopt	= compat_tcp_getsockopt,
 | 
			
		||||
 #endif
 | 
			
		||||
| 
						 | 
				
			
			@ -4934,8 +4934,8 @@ diff -aurN a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
 | 
			
		|||
 EXPORT_SYMBOL(tcp_prot);
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
 | 
			
		||||
--- a/net/ipv4/tcp_minisocks.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_minisocks.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_minisocks.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_minisocks.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -18,11 +18,13 @@
 | 
			
		||||
  *		Jorge Cwik, <jorge@laser.satlink.net>
 | 
			
		||||
  */
 | 
			
		||||
| 
						 | 
				
			
			@ -5147,8 +5147,8 @@ diff -aurN a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
 | 
			
		|||
 	return ret;
 | 
			
		||||
 }
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
 | 
			
		||||
--- a/net/ipv4/tcp_output.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_output.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_output.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_output.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -36,6 +36,12 @@
 | 
			
		||||
 
 | 
			
		||||
 #define pr_fmt(fmt) "TCP: " fmt
 | 
			
		||||
| 
						 | 
				
			
			@ -5750,8 +5750,8 @@ diff -aurN a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
 | 
			
		|||
 	if (tp->packets_out || !tcp_send_head(sk)) {
 | 
			
		||||
 		/* Cancel probe timer, if it is not required. */
 | 
			
		||||
diff -aurN a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
 | 
			
		||||
--- a/net/ipv4/tcp_timer.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv4/tcp_timer.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv4/tcp_timer.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv4/tcp_timer.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <linux/module.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -5950,8 +5950,8 @@ diff -aurN a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
 | 
			
		|||
 }
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
 | 
			
		||||
--- a/net/ipv6/addrconf.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv6/addrconf.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv6/addrconf.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv6/addrconf.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -928,6 +928,7 @@
 | 
			
		||||
 
 | 
			
		||||
 	kfree_rcu(ifp, rcu);
 | 
			
		||||
| 
						 | 
				
			
			@ -5961,8 +5961,8 @@ diff -aurN a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
 | 
			
		|||
 static void
 | 
			
		||||
 ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
 | 
			
		||||
diff -aurN a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
 | 
			
		||||
--- a/net/ipv6/af_inet6.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv6/af_inet6.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv6/af_inet6.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv6/af_inet6.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -107,8 +107,7 @@
 | 
			
		||||
 	return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
 | 
			
		||||
 }
 | 
			
		||||
| 
						 | 
				
			
			@ -5974,8 +5974,8 @@ diff -aurN a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
 | 
			
		|||
 	struct inet_sock *inet;
 | 
			
		||||
 	struct ipv6_pinfo *np;
 | 
			
		||||
diff -aurN a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
 | 
			
		||||
--- a/net/ipv6/ipv6_sockglue.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv6/ipv6_sockglue.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv6/ipv6_sockglue.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv6/ipv6_sockglue.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -48,6 +48,8 @@
 | 
			
		||||
 #include <net/addrconf.h>
 | 
			
		||||
 #include <net/inet_common.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6000,8 +6000,8 @@ diff -aurN a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
 | 
			
		|||
 				sk->sk_family = PF_INET;
 | 
			
		||||
 				tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
 | 
			
		||||
diff -aurN a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
 | 
			
		||||
--- a/net/ipv6/syncookies.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv6/syncookies.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv6/syncookies.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv6/syncookies.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -20,6 +20,8 @@
 | 
			
		||||
 #include <linux/kernel.h>
 | 
			
		||||
 #include <net/secure_seq.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6084,8 +6084,8 @@ diff -aurN a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
 | 
			
		|||
 	ireq->rcv_wscale = rcv_wscale;
 | 
			
		||||
 	ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), dst);
 | 
			
		||||
diff -aurN a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
 | 
			
		||||
--- a/net/ipv6/tcp_ipv6.c	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/ipv6/tcp_ipv6.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/ipv6/tcp_ipv6.c	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/ipv6/tcp_ipv6.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -61,6 +61,8 @@
 | 
			
		||||
 #include <net/timewait_sock.h>
 | 
			
		||||
 #include <net/inet_common.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -6708,8 +6708,8 @@ diff -aurN a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
 | 
			
		|||
 
 | 
			
		||||
 /* thinking of making this const? Don't.
 | 
			
		||||
diff -aurN a/net/Kconfig b/net/Kconfig
 | 
			
		||||
--- a/net/Kconfig	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/Kconfig	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/Kconfig	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/Kconfig	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -88,6 +88,7 @@
 | 
			
		||||
 source "net/ipv4/Kconfig"
 | 
			
		||||
 source "net/ipv6/Kconfig"
 | 
			
		||||
| 
						 | 
				
			
			@ -6719,8 +6719,8 @@ diff -aurN a/net/Kconfig b/net/Kconfig
 | 
			
		|||
 endif # if INET
 | 
			
		||||
 
 | 
			
		||||
diff -aurN a/net/Makefile b/net/Makefile
 | 
			
		||||
--- a/net/Makefile	2018-09-29 12:06:07.000000000 +0200
 | 
			
		||||
+++ b/net/Makefile	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
--- a/net/Makefile	2018-11-04 14:52:51.000000000 +0100
 | 
			
		||||
+++ b/net/Makefile	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
 obj-$(CONFIG_XFRM)		+= xfrm/
 | 
			
		||||
 obj-$(CONFIG_UNIX)		+= unix/
 | 
			
		||||
| 
						 | 
				
			
			@ -6731,7 +6731,7 @@ diff -aurN a/net/Makefile b/net/Makefile
 | 
			
		|||
 obj-$(CONFIG_BRIDGE)		+= bridge/
 | 
			
		||||
diff -aurN a/net/mptcp/Kconfig b/net/mptcp/Kconfig
 | 
			
		||||
--- a/net/mptcp/Kconfig	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/Kconfig	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/Kconfig	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,129 @@
 | 
			
		||||
+#
 | 
			
		||||
+# MPTCP configuration
 | 
			
		||||
| 
						 | 
				
			
			@ -6864,7 +6864,7 @@ diff -aurN a/net/mptcp/Kconfig b/net/mptcp/Kconfig
 | 
			
		|||
+
 | 
			
		||||
diff -aurN a/net/mptcp/Makefile b/net/mptcp/Makefile
 | 
			
		||||
--- a/net/mptcp/Makefile	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/Makefile	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/Makefile	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,22 @@
 | 
			
		||||
+#
 | 
			
		||||
+## Makefile for MultiPath TCP support code.
 | 
			
		||||
| 
						 | 
				
			
			@ -6890,7 +6890,7 @@ diff -aurN a/net/mptcp/Makefile b/net/mptcp/Makefile
 | 
			
		|||
+
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_balia.c b/net/mptcp/mptcp_balia.c
 | 
			
		||||
--- a/net/mptcp/mptcp_balia.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_balia.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_balia.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,268 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Balia Congestion Control
 | 
			
		||||
| 
						 | 
				
			
			@ -7162,7 +7162,7 @@ diff -aurN a/net/mptcp/mptcp_balia.c b/net/mptcp/mptcp_balia.c
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_binder.c b/net/mptcp/mptcp_binder.c
 | 
			
		||||
--- a/net/mptcp/mptcp_binder.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_binder.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_binder.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,486 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -7652,7 +7652,7 @@ diff -aurN a/net/mptcp/mptcp_binder.c b/net/mptcp/mptcp_binder.c
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_coupled.c b/net/mptcp/mptcp_coupled.c
 | 
			
		||||
--- a/net/mptcp/mptcp_coupled.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_coupled.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_coupled.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,271 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Linked Increase congestion control Algorithm (LIA)
 | 
			
		||||
| 
						 | 
				
			
			@ -7927,8 +7927,8 @@ diff -aurN a/net/mptcp/mptcp_coupled.c b/net/mptcp/mptcp_coupled.c
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_ctrl.c b/net/mptcp/mptcp_ctrl.c
 | 
			
		||||
--- a/net/mptcp/mptcp_ctrl.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_ctrl.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,2928 @@
 | 
			
		||||
+++ b/net/mptcp/mptcp_ctrl.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,2931 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - MPTCP-control
 | 
			
		||||
+ *
 | 
			
		||||
| 
						 | 
				
			
			@ -7995,6 +7995,7 @@ diff -aurN a/net/mptcp/mptcp_ctrl.c b/net/mptcp/mptcp_ctrl.c
 | 
			
		|||
+static struct kmem_cache *mptcp_tw_cache __read_mostly;
 | 
			
		||||
+
 | 
			
		||||
+int sysctl_mptcp_enabled __read_mostly = 1;
 | 
			
		||||
+EXPORT_SYMBOL(sysctl_mptcp_enabled);
 | 
			
		||||
+int sysctl_mptcp_version __read_mostly = 0;
 | 
			
		||||
+static int min_mptcp_version;
 | 
			
		||||
+static int max_mptcp_version = 1;
 | 
			
		||||
| 
						 | 
				
			
			@ -9028,32 +9029,34 @@ diff -aurN a/net/mptcp/mptcp_ctrl.c b/net/mptcp/mptcp_ctrl.c
 | 
			
		|||
+
 | 
			
		||||
+#if IS_ENABLED(CONFIG_IPV6)
 | 
			
		||||
+	if (meta_icsk->icsk_af_ops == &mptcp_v6_mapped) {
 | 
			
		||||
+		struct tcp6_sock *master_tp6 = (struct tcp6_sock *)master_sk;
 | 
			
		||||
+		struct ipv6_pinfo *newnp, *np = inet6_sk(meta_sk);
 | 
			
		||||
+
 | 
			
		||||
+		inet_sk(master_sk)->pinet6 = &((struct tcp6_sock *)master_sk)->inet6;
 | 
			
		||||
+		inet_sk(master_sk)->pinet6 = &master_tp6->inet6;
 | 
			
		||||
+
 | 
			
		||||
+		newnp = inet6_sk(master_sk);
 | 
			
		||||
+		memcpy(newnp, np, sizeof(struct ipv6_pinfo));
 | 
			
		||||
+
 | 
			
		||||
+		newnp->ipv6_mc_list = NULL;
 | 
			
		||||
+		newnp->ipv6_ac_list = NULL;
 | 
			
		||||
+		newnp->ipv6_fl_list = NULL;
 | 
			
		||||
+		newnp->opt = NULL;
 | 
			
		||||
+		newnp->pktoptions = NULL;
 | 
			
		||||
+		(void)xchg(&newnp->rxpmtu, NULL);
 | 
			
		||||
+	} else if (meta_sk->sk_family == AF_INET6) {
 | 
			
		||||
+		struct tcp6_sock *master_tp6 = (struct tcp6_sock *)master_sk;
 | 
			
		||||
+		struct ipv6_pinfo *newnp, *np = inet6_sk(meta_sk);
 | 
			
		||||
+		struct ipv6_txoptions *opt;
 | 
			
		||||
+
 | 
			
		||||
+		inet_sk(master_sk)->pinet6 = &((struct tcp6_sock *)master_sk)->inet6;
 | 
			
		||||
+		inet_sk(master_sk)->pinet6 = &master_tp6->inet6;
 | 
			
		||||
+
 | 
			
		||||
+		/* The following heavily inspired from tcp_v6_syn_recv_sock() */
 | 
			
		||||
+		newnp = inet6_sk(master_sk);
 | 
			
		||||
+		memcpy(newnp, np, sizeof(struct ipv6_pinfo));
 | 
			
		||||
+
 | 
			
		||||
+		newnp->hop_limit	= -1;
 | 
			
		||||
+		newnp->mcast_hops	= IPV6_DEFAULT_MCASTHOPS;
 | 
			
		||||
+		newnp->mc_loop	= 1;
 | 
			
		||||
+		newnp->pmtudisc	= IPV6_PMTUDISC_WANT;
 | 
			
		||||
+		master_sk->sk_ipv6only = sock_net(master_sk)->ipv6.sysctl.bindv6only;
 | 
			
		||||
+		opt = rcu_dereference(np->opt);
 | 
			
		||||
+		if (opt) {
 | 
			
		||||
+			opt = ipv6_dup_options(master_sk, opt);
 | 
			
		||||
+			RCU_INIT_POINTER(newnp->opt, opt);
 | 
			
		||||
+		}
 | 
			
		||||
+		inet_csk(master_sk)->icsk_ext_hdr_len = 0;
 | 
			
		||||
+		if (opt)
 | 
			
		||||
+			inet_csk(master_sk)->icsk_ext_hdr_len = opt->opt_nflen +
 | 
			
		||||
+								opt->opt_flen;
 | 
			
		||||
+
 | 
			
		||||
+	}
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -10859,7 +10862,7 @@ diff -aurN a/net/mptcp/mptcp_ctrl.c b/net/mptcp/mptcp_ctrl.c
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_fullmesh.c b/net/mptcp/mptcp_fullmesh.c
 | 
			
		||||
--- a/net/mptcp/mptcp_fullmesh.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_fullmesh.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_fullmesh.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,2013 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+#include <linux/proc_fs.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -12094,7 +12097,7 @@ diff -aurN a/net/mptcp/mptcp_fullmesh.c b/net/mptcp/mptcp_fullmesh.c
 | 
			
		|||
+	      event == NETDEV_CHANGE))
 | 
			
		||||
+		return NOTIFY_DONE;
 | 
			
		||||
+
 | 
			
		||||
+	if (!ipv6_dad_finished(ifa6))
 | 
			
		||||
+	if (sysctl_mptcp_enabled && !ipv6_dad_finished(ifa6))
 | 
			
		||||
+		dad_setup_timer(ifa6);
 | 
			
		||||
+	else
 | 
			
		||||
+		addr6_event_handler(ifa6, event, net);
 | 
			
		||||
| 
						 | 
				
			
			@ -12876,7 +12879,7 @@ diff -aurN a/net/mptcp/mptcp_fullmesh.c b/net/mptcp/mptcp_fullmesh.c
 | 
			
		|||
+MODULE_VERSION("0.88");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_input.c b/net/mptcp/mptcp_input.c
 | 
			
		||||
--- a/net/mptcp/mptcp_input.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_input.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_input.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,2465 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Sending side
 | 
			
		||||
| 
						 | 
				
			
			@ -15345,7 +15348,7 @@ diff -aurN a/net/mptcp/mptcp_input.c b/net/mptcp/mptcp_input.c
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_ipv4.c b/net/mptcp/mptcp_ipv4.c
 | 
			
		||||
--- a/net/mptcp/mptcp_ipv4.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_ipv4.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_ipv4.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,437 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - IPv4-specific functions
 | 
			
		||||
| 
						 | 
				
			
			@ -15786,7 +15789,7 @@ diff -aurN a/net/mptcp/mptcp_ipv4.c b/net/mptcp/mptcp_ipv4.c
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_ipv6.c b/net/mptcp/mptcp_ipv6.c
 | 
			
		||||
--- a/net/mptcp/mptcp_ipv6.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_ipv6.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_ipv6.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,465 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - IPv6-specific functions
 | 
			
		||||
| 
						 | 
				
			
			@ -16255,7 +16258,7 @@ diff -aurN a/net/mptcp/mptcp_ipv6.c b/net/mptcp/mptcp_ipv6.c
 | 
			
		|||
+}
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_ndiffports.c b/net/mptcp/mptcp_ndiffports.c
 | 
			
		||||
--- a/net/mptcp/mptcp_ndiffports.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_ndiffports.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_ndiffports.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,169 @@
 | 
			
		||||
+#include <linux/module.h>
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -16428,7 +16431,7 @@ diff -aurN a/net/mptcp/mptcp_ndiffports.c b/net/mptcp/mptcp_ndiffports.c
 | 
			
		|||
+MODULE_VERSION("0.88");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_olia.c b/net/mptcp/mptcp_olia.c
 | 
			
		||||
--- a/net/mptcp/mptcp_olia.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_olia.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_olia.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,310 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * MPTCP implementation - OPPORTUNISTIC LINKED INCREASES CONGESTION CONTROL:
 | 
			
		||||
| 
						 | 
				
			
			@ -16742,7 +16745,7 @@ diff -aurN a/net/mptcp/mptcp_olia.c b/net/mptcp/mptcp_olia.c
 | 
			
		|||
+MODULE_VERSION("0.1");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_output.c b/net/mptcp/mptcp_output.c
 | 
			
		||||
--- a/net/mptcp/mptcp_output.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_output.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_output.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,1816 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - Sending side
 | 
			
		||||
| 
						 | 
				
			
			@ -18562,7 +18565,7 @@ diff -aurN a/net/mptcp/mptcp_output.c b/net/mptcp/mptcp_output.c
 | 
			
		|||
+
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_pm.c b/net/mptcp/mptcp_pm.c
 | 
			
		||||
--- a/net/mptcp/mptcp_pm.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_pm.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_pm.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,226 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *     MPTCP implementation - MPTCP-subflow-management
 | 
			
		||||
| 
						 | 
				
			
			@ -18792,7 +18795,7 @@ diff -aurN a/net/mptcp/mptcp_pm.c b/net/mptcp/mptcp_pm.c
 | 
			
		|||
+late_initcall(mptcp_path_manager_default);
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_redundant.c b/net/mptcp/mptcp_redundant.c
 | 
			
		||||
--- a/net/mptcp/mptcp_redundant.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_redundant.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_redundant.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,301 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP Scheduler to reduce latency and jitter.
 | 
			
		||||
| 
						 | 
				
			
			@ -19097,7 +19100,7 @@ diff -aurN a/net/mptcp/mptcp_redundant.c b/net/mptcp/mptcp_redundant.c
 | 
			
		|||
+MODULE_VERSION("0.90");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_rr.c b/net/mptcp/mptcp_rr.c
 | 
			
		||||
--- a/net/mptcp/mptcp_rr.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_rr.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_rr.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,301 @@
 | 
			
		||||
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -19402,7 +19405,7 @@ diff -aurN a/net/mptcp/mptcp_rr.c b/net/mptcp/mptcp_rr.c
 | 
			
		|||
+MODULE_VERSION("0.89");
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_sched.c b/net/mptcp/mptcp_sched.c
 | 
			
		||||
--- a/net/mptcp/mptcp_sched.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_sched.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_sched.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,634 @@
 | 
			
		||||
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			@ -20040,7 +20043,7 @@ diff -aurN a/net/mptcp/mptcp_sched.c b/net/mptcp/mptcp_sched.c
 | 
			
		|||
+late_initcall(mptcp_scheduler_default);
 | 
			
		||||
diff -aurN a/net/mptcp/mptcp_wvegas.c b/net/mptcp/mptcp_wvegas.c
 | 
			
		||||
--- a/net/mptcp/mptcp_wvegas.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ b/net/mptcp/mptcp_wvegas.c	2018-10-01 18:37:13.000000000 +0200
 | 
			
		||||
+++ b/net/mptcp/mptcp_wvegas.c	2018-11-27 13:37:16.000000000 +0100
 | 
			
		||||
@@ -0,0 +1,270 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	MPTCP implementation - WEIGHTED VEGAS
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue