1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00

Update MPTCP

This commit is contained in:
Ycarus (Yannick Chabanois) 2020-02-14 20:33:49 +01:00
parent 16e6cf696a
commit fdf40f559d

View file

@ -1,6 +1,6 @@
diff -aurN linux-4.19.98/Documentation/networking/ip-sysctl.txt mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt
--- linux-4.19.98/Documentation/networking/ip-sysctl.txt 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt 2020-02-14 17:22:50.000000000 +0100
@@ -763,6 +763,18 @@
in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
Default: 100
@ -22,7 +22,7 @@ diff -aurN linux-4.19.98/Documentation/networking/ip-sysctl.txt mptcp-mptcp_v0.9
udp_l3mdev_accept - BOOLEAN
diff -aurN linux-4.19.98/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c
--- linux-4.19.98/drivers/infiniband/hw/cxgb4/cm.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c 2020-02-14 17:22:50.000000000 +0100
@@ -3778,7 +3778,7 @@
*/
memset(&tmp_opt, 0, sizeof(tmp_opt));
@ -34,7 +34,7 @@ diff -aurN linux-4.19.98/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_v0.95/driv
memset(req, 0, sizeof(*req));
diff -aurN linux-4.19.98/include/linux/skbuff.h mptcp-mptcp_v0.95/include/linux/skbuff.h
--- linux-4.19.98/include/linux/skbuff.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/linux/skbuff.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/linux/skbuff.h 2020-02-14 17:22:50.000000000 +0100
@@ -697,7 +697,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 +46,7 @@ diff -aurN linux-4.19.98/include/linux/skbuff.h mptcp-mptcp_v0.95/include/linux/
struct {
diff -aurN linux-4.19.98/include/linux/tcp.h mptcp-mptcp_v0.95/include/linux/tcp.h
--- linux-4.19.98/include/linux/tcp.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/linux/tcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/linux/tcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -58,7 +58,7 @@
/* TCP Fast Open */
#define TCP_FASTOPEN_COOKIE_MIN 4 /* Min Fast Open Cookie size in bytes */
@ -205,7 +205,7 @@ diff -aurN linux-4.19.98/include/linux/tcp.h mptcp-mptcp_v0.95/include/linux/tcp
static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk)
diff -aurN linux-4.19.98/include/net/inet_common.h mptcp-mptcp_v0.95/include/net/inet_common.h
--- linux-4.19.98/include/net/inet_common.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_common.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_common.h 2020-02-14 17:22:50.000000000 +0100
@@ -2,6 +2,8 @@
#ifndef _INET_COMMON_H
#define _INET_COMMON_H
@ -226,7 +226,7 @@ diff -aurN linux-4.19.98/include/net/inet_common.h mptcp-mptcp_v0.95/include/net
int addr_len, int flags);
diff -aurN linux-4.19.98/include/net/inet_connection_sock.h mptcp-mptcp_v0.95/include/net/inet_connection_sock.h
--- linux-4.19.98/include/net/inet_connection_sock.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_connection_sock.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_connection_sock.h 2020-02-14 17:22:50.000000000 +0100
@@ -29,6 +29,7 @@
struct inet_bind_bucket;
@ -237,7 +237,7 @@ diff -aurN linux-4.19.98/include/net/inet_connection_sock.h mptcp-mptcp_v0.95/in
* Pointers to address related TCP functions
diff -aurN linux-4.19.98/include/net/inet_sock.h mptcp-mptcp_v0.95/include/net/inet_sock.h
--- linux-4.19.98/include/net/inet_sock.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_sock.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/inet_sock.h 2020-02-14 17:22:50.000000000 +0100
@@ -83,7 +83,7 @@
#define ireq_state req.__req_common.skc_state
#define ireq_family req.__req_common.skc_family
@ -258,7 +258,7 @@ diff -aurN linux-4.19.98/include/net/inet_sock.h mptcp-mptcp_v0.95/include/net/i
union {
diff -aurN linux-4.19.98/include/net/mptcp.h mptcp-mptcp_v0.95/include/net/mptcp.h
--- linux-4.19.98/include/net/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,1498 @@
+/*
+ * MPTCP implementation
@ -1760,7 +1760,7 @@ diff -aurN linux-4.19.98/include/net/mptcp.h mptcp-mptcp_v0.95/include/net/mptcp
+#endif /* _MPTCP_H */
diff -aurN linux-4.19.98/include/net/mptcp_v4.h mptcp-mptcp_v0.95/include/net/mptcp_v4.h
--- linux-4.19.98/include/net/mptcp_v4.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v4.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v4.h 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,76 @@
+/*
+ * MPTCP implementation
@ -1840,7 +1840,7 @@ diff -aurN linux-4.19.98/include/net/mptcp_v4.h mptcp-mptcp_v0.95/include/net/mp
+#endif /* MPTCP_V4_H_ */
diff -aurN linux-4.19.98/include/net/mptcp_v6.h mptcp-mptcp_v0.95/include/net/mptcp_v6.h
--- linux-4.19.98/include/net/mptcp_v6.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v6.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v6.h 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,77 @@
+/*
+ * MPTCP implementation
@ -1921,7 +1921,7 @@ diff -aurN linux-4.19.98/include/net/mptcp_v6.h mptcp-mptcp_v0.95/include/net/mp
+#endif /* _MPTCP_V6_H */
diff -aurN linux-4.19.98/include/net/net_namespace.h mptcp-mptcp_v0.95/include/net/net_namespace.h
--- linux-4.19.98/include/net/net_namespace.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/net_namespace.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/net_namespace.h 2020-02-14 17:22:50.000000000 +0100
@@ -19,6 +19,7 @@
#include <net/netns/packet.h>
#include <net/netns/ipv4.h>
@ -1942,7 +1942,7 @@ diff -aurN linux-4.19.98/include/net/net_namespace.h mptcp-mptcp_v0.95/include/n
#endif
diff -aurN linux-4.19.98/include/net/netns/mptcp.h mptcp-mptcp_v0.95/include/net/netns/mptcp.h
--- linux-4.19.98/include/net/netns/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/netns/mptcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/netns/mptcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,52 @@
+/*
+ * MPTCP implementation - MPTCP namespace
@ -1998,7 +1998,7 @@ diff -aurN linux-4.19.98/include/net/netns/mptcp.h mptcp-mptcp_v0.95/include/net
+#endif /* __NETNS_MPTCP_H__ */
diff -aurN linux-4.19.98/include/net/snmp.h mptcp-mptcp_v0.95/include/net/snmp.h
--- linux-4.19.98/include/net/snmp.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/snmp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/snmp.h 2020-02-14 17:22:50.000000000 +0100
@@ -91,7 +91,6 @@
atomic_long_t mibs[ICMP6MSG_MIB_MAX];
};
@ -2009,7 +2009,7 @@ diff -aurN linux-4.19.98/include/net/snmp.h mptcp-mptcp_v0.95/include/net/snmp.h
struct tcp_mib {
diff -aurN linux-4.19.98/include/net/sock.h mptcp-mptcp_v0.95/include/net/sock.h
--- linux-4.19.98/include/net/sock.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/sock.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/sock.h 2020-02-14 17:22:50.000000000 +0100
@@ -815,6 +815,7 @@
SOCK_SELECT_ERR_QUEUE, /* Wake select on error queue */
SOCK_RCU_FREE, /* wait rcu grace period in sk_destruct() */
@ -2028,7 +2028,7 @@ diff -aurN linux-4.19.98/include/net/sock.h mptcp-mptcp_v0.95/include/net/sock.h
#ifdef CONFIG_PROC_FS
diff -aurN linux-4.19.98/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
--- linux-4.19.98/include/net/tcp.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/tcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/tcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -185,6 +185,7 @@
#define TCPOPT_SACK 5 /* SACK Block */
#define TCPOPT_TIMESTAMP 8 /* Better RTT estimations/PAWS */
@ -2361,7 +2361,7 @@ diff -aurN linux-4.19.98/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
{
diff -aurN linux-4.19.98/include/net/tcp_states.h mptcp-mptcp_v0.95/include/net/tcp_states.h
--- linux-4.19.98/include/net/tcp_states.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/tcp_states.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/tcp_states.h 2020-02-14 17:22:50.000000000 +0100
@@ -26,6 +26,7 @@
TCP_LISTEN,
TCP_CLOSING, /* Now a valid state */
@ -2380,7 +2380,7 @@ diff -aurN linux-4.19.98/include/net/tcp_states.h mptcp-mptcp_v0.95/include/net/
#endif /* _LINUX_TCP_STATES_H */
diff -aurN linux-4.19.98/include/net/transp_v6.h mptcp-mptcp_v0.95/include/net/transp_v6.h
--- linux-4.19.98/include/net/transp_v6.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/transp_v6.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/transp_v6.h 2020-02-14 17:22:50.000000000 +0100
@@ -58,6 +58,8 @@
/* address family specific functions */
@ -2392,7 +2392,7 @@ diff -aurN linux-4.19.98/include/net/transp_v6.h mptcp-mptcp_v0.95/include/net/t
diff -aurN linux-4.19.98/include/trace/events/tcp.h mptcp-mptcp_v0.95/include/trace/events/tcp.h
--- linux-4.19.98/include/trace/events/tcp.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/trace/events/tcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/trace/events/tcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -10,6 +10,7 @@
#include <linux/tracepoint.h>
#include <net/ipv6.h>
@ -2443,7 +2443,7 @@ diff -aurN linux-4.19.98/include/trace/events/tcp.h mptcp-mptcp_v0.95/include/tr
#endif /* _TRACE_TCP_H */
diff -aurN linux-4.19.98/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/include/uapi/linux/bpf.h
--- linux-4.19.98/include/uapi/linux/bpf.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/bpf.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/bpf.h 2020-02-14 17:22:50.000000000 +0100
@@ -2674,6 +2674,7 @@
BPF_TCP_LISTEN,
BPF_TCP_CLOSING, /* Now a valid state */
@ -2454,7 +2454,7 @@ diff -aurN linux-4.19.98/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/include/uapi
};
diff -aurN linux-4.19.98/include/uapi/linux/if.h mptcp-mptcp_v0.95/include/uapi/linux/if.h
--- linux-4.19.98/include/uapi/linux/if.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/if.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/if.h 2020-02-14 17:22:50.000000000 +0100
@@ -132,6 +132,9 @@
#define IFF_ECHO IFF_ECHO
#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
@ -2467,7 +2467,7 @@ diff -aurN linux-4.19.98/include/uapi/linux/if.h mptcp-mptcp_v0.95/include/uapi/
diff -aurN linux-4.19.98/include/uapi/linux/mptcp.h mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h
--- linux-4.19.98/include/uapi/linux/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,149 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@ -2620,7 +2620,7 @@ diff -aurN linux-4.19.98/include/uapi/linux/mptcp.h mptcp-mptcp_v0.95/include/ua
+#endif /* _LINUX_MPTCP_H */
diff -aurN linux-4.19.98/include/uapi/linux/tcp.h mptcp-mptcp_v0.95/include/uapi/linux/tcp.h
--- linux-4.19.98/include/uapi/linux/tcp.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/tcp.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/tcp.h 2020-02-14 17:22:50.000000000 +0100
@@ -18,9 +18,15 @@
#ifndef _UAPI_LINUX_TCP_H
#define _UAPI_LINUX_TCP_H
@ -2708,7 +2708,7 @@ diff -aurN linux-4.19.98/include/uapi/linux/tcp.h mptcp-mptcp_v0.95/include/uapi
diff -aurN linux-4.19.98/net/core/dev.c mptcp-mptcp_v0.95/net/core/dev.c
--- linux-4.19.98/net/core/dev.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/dev.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/dev.c 2020-02-14 17:22:50.000000000 +0100
@@ -7665,7 +7665,7 @@
dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
@ -2720,7 +2720,7 @@ diff -aurN linux-4.19.98/net/core/dev.c mptcp-mptcp_v0.95/net/core/dev.c
diff -aurN linux-4.19.98/net/core/net-traces.c mptcp-mptcp_v0.95/net/core/net-traces.c
--- linux-4.19.98/net/core/net-traces.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/net-traces.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/net-traces.c 2020-02-14 17:22:50.000000000 +0100
@@ -48,3 +48,5 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(napi_poll);
@ -2729,7 +2729,7 @@ diff -aurN linux-4.19.98/net/core/net-traces.c mptcp-mptcp_v0.95/net/core/net-tr
+EXPORT_TRACEPOINT_SYMBOL_GPL(mptcp_retransmit);
diff -aurN linux-4.19.98/net/core/skbuff.c mptcp-mptcp_v0.95/net/core/skbuff.c
--- linux-4.19.98/net/core/skbuff.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/skbuff.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/skbuff.c 2020-02-14 17:22:50.000000000 +0100
@@ -536,7 +536,7 @@
skb_drop_list(&skb_shinfo(skb)->frag_list);
}
@ -2741,7 +2741,7 @@ diff -aurN linux-4.19.98/net/core/skbuff.c mptcp-mptcp_v0.95/net/core/skbuff.c
diff -aurN linux-4.19.98/net/core/sock.c mptcp-mptcp_v0.95/net/core/sock.c
--- linux-4.19.98/net/core/sock.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/sock.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/core/sock.c 2020-02-14 17:22:50.000000000 +0100
@@ -140,6 +140,11 @@
#include <trace/events/sock.h>
@ -2803,7 +2803,7 @@ diff -aurN linux-4.19.98/net/core/sock.c mptcp-mptcp_v0.95/net/core/sock.c
diff -aurN linux-4.19.98/net/ipv4/af_inet.c mptcp-mptcp_v0.95/net/ipv4/af_inet.c
--- linux-4.19.98/net/ipv4/af_inet.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/af_inet.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/af_inet.c 2020-02-14 17:22:50.000000000 +0100
@@ -104,6 +104,7 @@
#include <net/ip_fib.h>
#include <net/inet_connection_sock.h>
@ -2869,7 +2869,7 @@ diff -aurN linux-4.19.98/net/ipv4/af_inet.c mptcp-mptcp_v0.95/net/ipv4/af_inet.c
diff -aurN linux-4.19.98/net/ipv4/inet_connection_sock.c mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c
--- linux-4.19.98/net/ipv4/inet_connection_sock.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c 2020-02-14 17:22:50.000000000 +0100
@@ -23,6 +23,7 @@
#include <net/route.h>
#include <net/tcp_states.h>
@ -2929,7 +2929,7 @@ diff -aurN linux-4.19.98/net/ipv4/inet_connection_sock.c mptcp-mptcp_v0.95/net/i
cond_resched();
diff -aurN linux-4.19.98/net/ipv4/ip_sockglue.c mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c
--- linux-4.19.98/net/ipv4/ip_sockglue.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c 2020-02-14 17:22:50.000000000 +0100
@@ -44,6 +44,8 @@
#endif
#include <net/ip_fib.h>
@ -2971,7 +2971,7 @@ diff -aurN linux-4.19.98/net/ipv4/ip_sockglue.c mptcp-mptcp_v0.95/net/ipv4/ip_so
case IP_TTL:
diff -aurN linux-4.19.98/net/ipv4/Kconfig mptcp-mptcp_v0.95/net/ipv4/Kconfig
--- linux-4.19.98/net/ipv4/Kconfig 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/Kconfig 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/Kconfig 2020-02-14 17:22:50.000000000 +0100
@@ -680,6 +680,51 @@
bufferbloat, policers, or AQM schemes that do not provide a delay
signal. It requires the fq ("Fair Queue") pacing packet scheduler.
@ -3059,7 +3059,7 @@ diff -aurN linux-4.19.98/net/ipv4/Kconfig mptcp-mptcp_v0.95/net/ipv4/Kconfig
default "cdg" if DEFAULT_CDG
diff -aurN linux-4.19.98/net/ipv4/syncookies.c mptcp-mptcp_v0.95/net/ipv4/syncookies.c
--- linux-4.19.98/net/ipv4/syncookies.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/syncookies.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/syncookies.c 2020-02-14 17:22:50.000000000 +0100
@@ -16,6 +16,8 @@
#include <linux/siphash.h>
#include <linux/kernel.h>
@ -3175,7 +3175,7 @@ diff -aurN linux-4.19.98/net/ipv4/syncookies.c mptcp-mptcp_v0.95/net/ipv4/syncoo
ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), &rt->dst);
diff -aurN linux-4.19.98/net/ipv4/tcp.c mptcp-mptcp_v0.95/net/ipv4/tcp.c
--- linux-4.19.98/net/ipv4/tcp.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp.c 2020-02-14 17:22:50.000000000 +0100
@@ -274,6 +274,7 @@
#include <net/icmp.h>
@ -3883,7 +3883,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp.c mptcp-mptcp_v0.95/net/ipv4/tcp.c
EXPORT_SYMBOL_GPL(tcp_abort);
diff -aurN linux-4.19.98/net/ipv4/tcp_cong.c mptcp-mptcp_v0.95/net/ipv4/tcp_cong.c
--- linux-4.19.98/net/ipv4/tcp_cong.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_cong.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_cong.c 2020-02-14 17:22:50.000000000 +0100
@@ -327,13 +327,19 @@
return ret;
}
@ -3908,7 +3908,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_cong.c mptcp-mptcp_v0.95/net/ipv4/tcp_cong
const struct tcp_congestion_ops *ca;
diff -aurN linux-4.19.98/net/ipv4/tcp_diag.c mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c
--- linux-4.19.98/net/ipv4/tcp_diag.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c 2020-02-14 17:22:50.000000000 +0100
@@ -34,7 +34,7 @@
r->idiag_wqueue = tp->write_seq - tp->snd_una;
}
@ -3920,7 +3920,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_diag.c mptcp-mptcp_v0.95/net/ipv4/tcp_diag
#ifdef CONFIG_TCP_MD5SIG
diff -aurN linux-4.19.98/net/ipv4/tcp_fastopen.c mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c
--- linux-4.19.98/net/ipv4/tcp_fastopen.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c 2020-02-14 17:22:50.000000000 +0100
@@ -9,6 +9,7 @@
#include <linux/rculist.h>
#include <net/inetpeer.h>
@ -3972,7 +3972,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_fastopen.c mptcp-mptcp_v0.95/net/ipv4/tcp_
*/
diff -aurN linux-4.19.98/net/ipv4/tcp_input.c mptcp-mptcp_v0.95/net/ipv4/tcp_input.c
--- linux-4.19.98/net/ipv4/tcp_input.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_input.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_input.c 2020-02-14 17:22:50.000000000 +0100
@@ -76,35 +76,15 @@
#include <linux/ipsec.h>
#include <asm/unaligned.h>
@ -4847,7 +4847,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_input.c mptcp-mptcp_v0.95/net/ipv4/tcp_inp
tcp_rsk(req)->tfo_listener = false;
diff -aurN linux-4.19.98/net/ipv4/tcp_ipv4.c mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c
--- linux-4.19.98/net/ipv4/tcp_ipv4.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c 2020-02-14 17:22:50.000000000 +0100
@@ -67,6 +67,8 @@
#include <net/icmp.h>
#include <net/inet_hashtables.h>
@ -5308,7 +5308,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_ipv4.c mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4
diff -aurN linux-4.19.98/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c
--- linux-4.19.98/net/ipv4/tcp_minisocks.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c 2020-02-14 17:22:50.000000000 +0100
@@ -18,11 +18,13 @@
* Jorge Cwik, <jorge@laser.satlink.net>
*/
@ -5472,7 +5472,14 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp
if (!tcp_oow_rate_limited(sock_net(sk), skb,
LINUX_MIB_TCPACKSKIPPEDSYNRECV,
&tcp_rsk(req)->last_oow_ack_time) &&
@@ -791,6 +840,18 @@
@@ -786,17 +835,37 @@
* ESTABLISHED STATE. If it will be dropped after
* socket is created, wait for troubles.
*/
+ if (is_meta_sk(sk))
+ bh_lock_sock_nested(sk);
child = inet_csk(sk)->icsk_af_ops->syn_recv_sock(sk, skb, req, NULL,
req, &own_req);
if (!child)
goto listen_overflow;
@ -5487,11 +5494,23 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp
+ } else if (own_req) {
+ return mptcp_check_req_child(sk, child, req, skb, &mopt);
+ }
+
+ if (is_meta_sk(sk))
+ bh_unlock_sock(sk);
+
sock_rps_save_rxhash(child, skb);
tcp_synack_rtt_meas(child, req);
*req_stolen = !own_req;
@@ -839,12 +900,18 @@
return inet_csk_complete_hashdance(sk, child, req, own_req);
listen_overflow:
+ if (is_meta_sk(sk))
+ bh_unlock_sock(sk);
+
if (!sock_net(sk)->ipv4.sysctl_tcp_abort_on_overflow) {
inet_rsk(req)->acked = 1;
return NULL;
@@ -839,12 +908,13 @@
{
int ret = 0;
int state = child->sk_state;
@ -5502,16 +5521,11 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp
tcp_segs_in(tcp_sk(child), skb);
- if (!sock_owned_by_user(child)) {
+ /* The following will be removed when we allow lockless data-reception
+ * on the subflows.
+ */
+ if (mptcp(tcp_sk(child)))
+ bh_lock_sock_nested(meta_sk);
+ if (!sock_owned_by_user(meta_sk)) {
ret = tcp_rcv_state_process(child, skb);
/* Wakeup parent, send SIGIO */
if (state == TCP_SYN_RECV && child->sk_state != state)
@@ -854,10 +921,14 @@
@@ -854,10 +924,14 @@
* in main socket hash table and lock on listening
* socket does not protect us more.
*/
@ -5529,7 +5543,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp
}
diff -aurN linux-4.19.98/net/ipv4/tcp_output.c mptcp-mptcp_v0.95/net/ipv4/tcp_output.c
--- linux-4.19.98/net/ipv4/tcp_output.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_output.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_output.c 2020-02-14 17:22:50.000000000 +0100
@@ -36,6 +36,12 @@
#define pr_fmt(fmt) "TCP: " fmt
@ -6115,7 +6129,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_output.c mptcp-mptcp_v0.95/net/ipv4/tcp_ou
/* Cancel probe timer, if it is not required. */
diff -aurN linux-4.19.98/net/ipv4/tcp_timer.c mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c
--- linux-4.19.98/net/ipv4/tcp_timer.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c 2020-02-14 17:22:50.000000000 +0100
@@ -20,6 +20,7 @@
#include <linux/module.h>
@ -6326,7 +6340,7 @@ diff -aurN linux-4.19.98/net/ipv4/tcp_timer.c mptcp-mptcp_v0.95/net/ipv4/tcp_tim
diff -aurN linux-4.19.98/net/ipv6/addrconf.c mptcp-mptcp_v0.95/net/ipv6/addrconf.c
--- linux-4.19.98/net/ipv6/addrconf.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/addrconf.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/addrconf.c 2020-02-14 17:22:50.000000000 +0100
@@ -917,6 +917,7 @@
kfree_rcu(ifp, rcu);
@ -6337,7 +6351,7 @@ diff -aurN linux-4.19.98/net/ipv6/addrconf.c mptcp-mptcp_v0.95/net/ipv6/addrconf
ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
diff -aurN linux-4.19.98/net/ipv6/af_inet6.c mptcp-mptcp_v0.95/net/ipv6/af_inet6.c
--- linux-4.19.98/net/ipv6/af_inet6.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/af_inet6.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/af_inet6.c 2020-02-14 17:22:50.000000000 +0100
@@ -107,8 +107,7 @@
return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
}
@ -6350,7 +6364,7 @@ diff -aurN linux-4.19.98/net/ipv6/af_inet6.c mptcp-mptcp_v0.95/net/ipv6/af_inet6
struct ipv6_pinfo *np;
diff -aurN linux-4.19.98/net/ipv6/ipv6_sockglue.c mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c
--- linux-4.19.98/net/ipv6/ipv6_sockglue.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c 2020-02-14 17:22:50.000000000 +0100
@@ -48,6 +48,8 @@
#include <net/addrconf.h>
#include <net/inet_common.h>
@ -6376,7 +6390,7 @@ diff -aurN linux-4.19.98/net/ipv6/ipv6_sockglue.c mptcp-mptcp_v0.95/net/ipv6/ipv
tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
diff -aurN linux-4.19.98/net/ipv6/syncookies.c mptcp-mptcp_v0.95/net/ipv6/syncookies.c
--- linux-4.19.98/net/ipv6/syncookies.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/syncookies.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/syncookies.c 2020-02-14 17:22:50.000000000 +0100
@@ -20,6 +20,8 @@
#include <linux/kernel.h>
#include <net/secure_seq.h>
@ -6460,7 +6474,7 @@ diff -aurN linux-4.19.98/net/ipv6/syncookies.c mptcp-mptcp_v0.95/net/ipv6/syncoo
ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), dst);
diff -aurN linux-4.19.98/net/ipv6/tcp_ipv6.c mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c
--- linux-4.19.98/net/ipv6/tcp_ipv6.c 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c 2020-02-14 17:22:50.000000000 +0100
@@ -61,6 +61,8 @@
#include <net/timewait_sock.h>
#include <net/inet_common.h>
@ -7057,7 +7071,7 @@ diff -aurN linux-4.19.98/net/ipv6/tcp_ipv6.c mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6
/* thinking of making this const? Don't.
diff -aurN linux-4.19.98/net/Kconfig mptcp-mptcp_v0.95/net/Kconfig
--- linux-4.19.98/net/Kconfig 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/Kconfig 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/Kconfig 2020-02-14 17:22:50.000000000 +0100
@@ -89,6 +89,7 @@
source "net/ipv4/Kconfig"
source "net/ipv6/Kconfig"
@ -7068,7 +7082,7 @@ diff -aurN linux-4.19.98/net/Kconfig mptcp-mptcp_v0.95/net/Kconfig
diff -aurN linux-4.19.98/net/Makefile mptcp-mptcp_v0.95/net/Makefile
--- linux-4.19.98/net/Makefile 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/net/Makefile 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/Makefile 2020-02-14 17:22:50.000000000 +0100
@@ -20,6 +20,7 @@
obj-$(CONFIG_XFRM) += xfrm/
obj-$(CONFIG_UNIX) += unix/
@ -7079,7 +7093,7 @@ diff -aurN linux-4.19.98/net/Makefile mptcp-mptcp_v0.95/net/Makefile
obj-$(CONFIG_NET_KEY) += key/
diff -aurN linux-4.19.98/net/mptcp/Kconfig mptcp-mptcp_v0.95/net/mptcp/Kconfig
--- linux-4.19.98/net/mptcp/Kconfig 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Kconfig 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Kconfig 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,146 @@
+#
+# MPTCP configuration
@ -7229,7 +7243,7 @@ diff -aurN linux-4.19.98/net/mptcp/Kconfig mptcp-mptcp_v0.95/net/mptcp/Kconfig
+
diff -aurN linux-4.19.98/net/mptcp/Makefile mptcp-mptcp_v0.95/net/mptcp/Makefile
--- linux-4.19.98/net/mptcp/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Makefile 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Makefile 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,24 @@
+#
+## Makefile for MultiPath TCP support code.
@ -7257,7 +7271,7 @@ diff -aurN linux-4.19.98/net/mptcp/Makefile mptcp-mptcp_v0.95/net/mptcp/Makefile
+mptcp-$(subst m,y,$(CONFIG_IPV6)) += mptcp_ipv6.o
diff -aurN linux-4.19.98/net/mptcp/mctcp_desync.c mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c
--- linux-4.19.98/net/mptcp/mctcp_desync.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,193 @@
+/*
+ * Desynchronized Multi-Channel TCP Congestion Control Algorithm
@ -7454,7 +7468,7 @@ diff -aurN linux-4.19.98/net/mptcp/mctcp_desync.c mptcp-mptcp_v0.95/net/mptcp/mc
+MODULE_VERSION("1.0");
diff -aurN linux-4.19.98/net/mptcp/mptcp_balia.c mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c
--- linux-4.19.98/net/mptcp/mptcp_balia.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,261 @@
+/*
+ * MPTCP implementation - Balia Congestion Control
@ -7719,7 +7733,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_balia.c mptcp-mptcp_v0.95/net/mptcp/mpt
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.98/net/mptcp/mptcp_binder.c mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c
--- linux-4.19.98/net/mptcp/mptcp_binder.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,494 @@
+#include <linux/module.h>
+
@ -8217,7 +8231,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_binder.c mptcp-mptcp_v0.95/net/mptcp/mp
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.98/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c
--- linux-4.19.98/net/mptcp/mptcp_blest.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,481 @@
+// SPDX-License-Identifier: GPL-2.0
+/* MPTCP Scheduler to reduce HoL-blocking and spurious retransmissions.
@ -8702,7 +8716,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mpt
+MODULE_VERSION("0.95");
diff -aurN linux-4.19.98/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c
--- linux-4.19.98/net/mptcp/mptcp_coupled.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,262 @@
+/*
+ * MPTCP implementation - Linked Increase congestion control Algorithm (LIA)
@ -8968,8 +8982,8 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.95/net/mptcp/m
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c
--- linux-4.19.98/net/mptcp/mptcp_ctrl.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c 2020-01-23 21:52:06.000000000 +0100
@@ -0,0 +1,3150 @@
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,3142 @@
+/*
+ * MPTCP implementation - MPTCP-control
+ *
@ -11187,11 +11201,6 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+ /* Handled by the master_sk */
+ tcp_sk(meta_sk)->fastopen_rsk = NULL;
+
+ /* Subflow establishment is now lockless, drop the lock here it will
+ * be taken again in tcp_child_process().
+ */
+ bh_unlock_sock(meta_sk);
+
+ return 0;
+}
+
@ -11240,11 +11249,6 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+ }
+ }
+
+ /* Subflow establishment is now lockless, drop the lock here it will
+ * be taken again in tcp_child_process().
+ */
+ bh_unlock_sock(meta_sk);
+
+ return 0;
+}
+
@ -11344,6 +11348,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+ reqsk_queue_removed(&inet_csk(meta_sk)->icsk_accept_queue, req);
+ inet_csk_prepare_forced_close(child);
+ tcp_done(child);
+ bh_unlock_sock(meta_sk);
+ return meta_sk;
+}
+
@ -11404,11 +11409,12 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+ if (tw->mptcp_tw->in_list) {
+ list_del_rcu(&tw->mptcp_tw->list);
+ tw->mptcp_tw->in_list = 0;
+ /* Put, because we added it to the list */
+ mptcp_mpcb_put(mpcb);
+ }
+ spin_unlock(&mpcb->mpcb_list_lock);
+
+ /* Twice, because we increased it above */
+ mptcp_mpcb_put(mpcb);
+ /* Second time, because we increased it above */
+ mptcp_mpcb_put(mpcb);
+ }
+
@ -12122,7 +12128,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.98/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c
--- linux-4.19.98/net/mptcp/mptcp_fullmesh.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,1941 @@
+#include <linux/module.h>
+#include <linux/proc_fs.h>
@ -14067,7 +14073,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_v0.95/net/mptcp/
+MODULE_VERSION("0.88");
diff -aurN linux-4.19.98/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c
--- linux-4.19.98/net/mptcp/mptcp_input.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,2431 @@
+/*
+ * MPTCP implementation - Sending side
@ -16502,7 +16508,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mpt
+}
diff -aurN linux-4.19.98/net/mptcp/mptcp_ipv4.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c
--- linux-4.19.98/net/mptcp/mptcp_ipv4.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,427 @@
+/*
+ * MPTCP implementation - IPv4-specific functions
@ -16933,7 +16939,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ipv4.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.98/net/mptcp/mptcp_ipv6.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c
--- linux-4.19.98/net/mptcp/mptcp_ipv6.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,475 @@
+/*
+ * MPTCP implementation - IPv6-specific functions
@ -17412,7 +17418,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ipv6.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.98/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c
--- linux-4.19.98/net/mptcp/mptcp_ndiffports.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,174 @@
+#include <linux/module.h>
+
@ -17590,7 +17596,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_v0.95/net/mptc
+MODULE_VERSION("0.88");
diff -aurN linux-4.19.98/net/mptcp/mptcp_netlink.c mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c
--- linux-4.19.98/net/mptcp/mptcp_netlink.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,1277 @@
+// SPDX-License-Identifier: GPL-2.0
+/* MPTCP implementation - Netlink Path Manager
@ -18871,7 +18877,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_netlink.c mptcp-mptcp_v0.95/net/mptcp/m
+MODULE_ALIAS_GENL_FAMILY(MPTCP_GENL_NAME);
diff -aurN linux-4.19.98/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c
--- linux-4.19.98/net/mptcp/mptcp_olia.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,318 @@
+/*
+ * MPTCP implementation - OPPORTUNISTIC LINKED INCREASES CONGESTION CONTROL:
@ -19193,7 +19199,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.95/net/mptcp/mptc
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.98/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c
--- linux-4.19.98/net/mptcp/mptcp_output.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,1929 @@
+/*
+ * MPTCP implementation - Sending side
@ -21126,7 +21132,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+
diff -aurN linux-4.19.98/net/mptcp/mptcp_pm.c mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c
--- linux-4.19.98/net/mptcp/mptcp_pm.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,226 @@
+/*
+ * MPTCP implementation - MPTCP-subflow-management
@ -21356,7 +21362,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_pm.c mptcp-mptcp_v0.95/net/mptcp/mptcp_
+late_initcall(mptcp_path_manager_default);
diff -aurN linux-4.19.98/net/mptcp/mptcp_redundant.c mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c
--- linux-4.19.98/net/mptcp/mptcp_redundant.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,389 @@
+/*
+ * MPTCP Scheduler to reduce latency and jitter.
@ -21749,7 +21755,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_redundant.c mptcp-mptcp_v0.95/net/mptcp
+MODULE_VERSION("0.90");
diff -aurN linux-4.19.98/net/mptcp/mptcp_rr.c mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c
--- linux-4.19.98/net/mptcp/mptcp_rr.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,309 @@
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
+
@ -22062,7 +22068,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_rr.c mptcp-mptcp_v0.95/net/mptcp/mptcp_
+MODULE_VERSION("0.89");
diff -aurN linux-4.19.98/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c
--- linux-4.19.98/net/mptcp/mptcp_sched.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,634 @@
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
+
@ -22700,7 +22706,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.95/net/mptcp/mpt
+late_initcall(mptcp_scheduler_default);
diff -aurN linux-4.19.98/net/mptcp/mptcp_wvegas.c mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c
--- linux-4.19.98/net/mptcp/mptcp_wvegas.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c 2020-02-14 17:22:50.000000000 +0100
@@ -0,0 +1,271 @@
+/*
+ * MPTCP implementation - WEIGHTED VEGAS
@ -22975,7 +22981,7 @@ diff -aurN linux-4.19.98/net/mptcp/mptcp_wvegas.c mptcp-mptcp_v0.95/net/mptcp/mp
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.98/tools/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h
--- linux-4.19.98/tools/include/uapi/linux/bpf.h 2020-01-23 08:21:39.000000000 +0100
+++ mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h 2020-01-23 21:52:06.000000000 +0100
+++ mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h 2020-02-14 17:22:50.000000000 +0100
@@ -2672,6 +2672,7 @@
BPF_TCP_LISTEN,
BPF_TCP_CLOSING, /* Now a valid state */