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

Update MPTCP to latest patches

This commit is contained in:
Ycarus 2019-05-29 21:47:20 +02:00
parent e24c553fc8
commit d5a0aade8c
2 changed files with 343 additions and 298 deletions

View file

@ -1,6 +1,6 @@
diff -aurN linux-4.19.44/Documentation/networking/ip-sysctl.txt mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt
--- linux-4.19.44/Documentation/networking/ip-sysctl.txt 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/Documentation/networking/ip-sysctl.txt 2019-05-29 16:32:06.000000000 +0200
@@ -755,6 +755,18 @@
in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
Default: 100
@ -22,7 +22,7 @@ diff -aurN linux-4.19.44/Documentation/networking/ip-sysctl.txt mptcp-mptcp_v0.9
udp_l3mdev_accept - BOOLEAN
diff -aurN linux-4.19.44/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c
--- linux-4.19.44/drivers/infiniband/hw/cxgb4/cm.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/drivers/infiniband/hw/cxgb4/cm.c 2019-05-29 16:32:06.000000000 +0200
@@ -3777,7 +3777,7 @@
*/
memset(&tmp_opt, 0, sizeof(tmp_opt));
@ -34,7 +34,7 @@ diff -aurN linux-4.19.44/drivers/infiniband/hw/cxgb4/cm.c mptcp-mptcp_v0.95/driv
memset(req, 0, sizeof(*req));
diff -aurN linux-4.19.44/include/linux/skbuff.h mptcp-mptcp_v0.95/include/linux/skbuff.h
--- linux-4.19.44/include/linux/skbuff.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/linux/skbuff.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/linux/skbuff.h 2019-05-29 16:32:06.000000000 +0200
@@ -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.
@ -44,21 +44,9 @@ diff -aurN linux-4.19.44/include/linux/skbuff.h mptcp-mptcp_v0.95/include/linux/
union {
struct {
@@ -3227,6 +3227,11 @@
for (skb = skb_rb_first(root); skb != NULL; \
skb = skb_rb_next(skb))
+#define skb_rbtree_walk_safe(skb, root, tmp) \
+ for (skb = skb_rb_first(root); \
+ tmp = skb ? skb_rb_next(skb) : NULL, (skb != NULL); \
+ skb = tmp)
+
#define skb_rbtree_walk_from(skb) \
for (; skb != NULL; \
skb = skb_rb_next(skb))
diff -aurN linux-4.19.44/include/linux/tcp.h mptcp-mptcp_v0.95/include/linux/tcp.h
--- linux-4.19.44/include/linux/tcp.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/linux/tcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/linux/tcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -58,7 +58,7 @@
/* TCP Fast Open */
#define TCP_FASTOPEN_COOKIE_MIN 4 /* Min Fast Open Cookie size in bytes */
@ -217,7 +205,7 @@ diff -aurN linux-4.19.44/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.44/include/net/inet_common.h mptcp-mptcp_v0.95/include/net/inet_common.h
--- linux-4.19.44/include/net/inet_common.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_common.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_common.h 2019-05-29 16:32:06.000000000 +0200
@@ -2,6 +2,8 @@
#ifndef _INET_COMMON_H
#define _INET_COMMON_H
@ -238,7 +226,7 @@ diff -aurN linux-4.19.44/include/net/inet_common.h mptcp-mptcp_v0.95/include/net
int addr_len, int flags);
diff -aurN linux-4.19.44/include/net/inet_connection_sock.h mptcp-mptcp_v0.95/include/net/inet_connection_sock.h
--- linux-4.19.44/include/net/inet_connection_sock.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_connection_sock.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_connection_sock.h 2019-05-29 16:32:06.000000000 +0200
@@ -29,6 +29,7 @@
struct inet_bind_bucket;
@ -249,7 +237,7 @@ diff -aurN linux-4.19.44/include/net/inet_connection_sock.h mptcp-mptcp_v0.95/in
* Pointers to address related TCP functions
diff -aurN linux-4.19.44/include/net/inet_sock.h mptcp-mptcp_v0.95/include/net/inet_sock.h
--- linux-4.19.44/include/net/inet_sock.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_sock.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/inet_sock.h 2019-05-29 16:32:06.000000000 +0200
@@ -83,7 +83,7 @@
#define ireq_state req.__req_common.skc_state
#define ireq_family req.__req_common.skc_family
@ -270,7 +258,7 @@ diff -aurN linux-4.19.44/include/net/inet_sock.h mptcp-mptcp_v0.95/include/net/i
union {
diff -aurN linux-4.19.44/include/net/mptcp.h mptcp-mptcp_v0.95/include/net/mptcp.h
--- linux-4.19.44/include/net/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/mptcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,1490 @@
+/*
+ * MPTCP implementation
@ -1764,7 +1752,7 @@ diff -aurN linux-4.19.44/include/net/mptcp.h mptcp-mptcp_v0.95/include/net/mptcp
+#endif /* _MPTCP_H */
diff -aurN linux-4.19.44/include/net/mptcp_v4.h mptcp-mptcp_v0.95/include/net/mptcp_v4.h
--- linux-4.19.44/include/net/mptcp_v4.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v4.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/mptcp_v4.h 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,76 @@
+/*
+ * MPTCP implementation
@ -1844,7 +1832,7 @@ diff -aurN linux-4.19.44/include/net/mptcp_v4.h mptcp-mptcp_v0.95/include/net/mp
+#endif /* MPTCP_V4_H_ */
diff -aurN linux-4.19.44/include/net/mptcp_v6.h mptcp-mptcp_v0.95/include/net/mptcp_v6.h
--- linux-4.19.44/include/net/mptcp_v6.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/mptcp_v6.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/mptcp_v6.h 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,77 @@
+/*
+ * MPTCP implementation
@ -1925,7 +1913,7 @@ diff -aurN linux-4.19.44/include/net/mptcp_v6.h mptcp-mptcp_v0.95/include/net/mp
+#endif /* _MPTCP_V6_H */
diff -aurN linux-4.19.44/include/net/net_namespace.h mptcp-mptcp_v0.95/include/net/net_namespace.h
--- linux-4.19.44/include/net/net_namespace.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/net_namespace.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/net_namespace.h 2019-05-29 16:32:06.000000000 +0200
@@ -19,6 +19,7 @@
#include <net/netns/packet.h>
#include <net/netns/ipv4.h>
@ -1946,7 +1934,7 @@ diff -aurN linux-4.19.44/include/net/net_namespace.h mptcp-mptcp_v0.95/include/n
#endif
diff -aurN linux-4.19.44/include/net/netns/mptcp.h mptcp-mptcp_v0.95/include/net/netns/mptcp.h
--- linux-4.19.44/include/net/netns/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/net/netns/mptcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/netns/mptcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,52 @@
+/*
+ * MPTCP implementation - MPTCP namespace
@ -2002,7 +1990,7 @@ diff -aurN linux-4.19.44/include/net/netns/mptcp.h mptcp-mptcp_v0.95/include/net
+#endif /* __NETNS_MPTCP_H__ */
diff -aurN linux-4.19.44/include/net/snmp.h mptcp-mptcp_v0.95/include/net/snmp.h
--- linux-4.19.44/include/net/snmp.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/snmp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/snmp.h 2019-05-29 16:32:06.000000000 +0200
@@ -91,7 +91,6 @@
atomic_long_t mibs[ICMP6MSG_MIB_MAX];
};
@ -2013,7 +2001,7 @@ diff -aurN linux-4.19.44/include/net/snmp.h mptcp-mptcp_v0.95/include/net/snmp.h
struct tcp_mib {
diff -aurN linux-4.19.44/include/net/sock.h mptcp-mptcp_v0.95/include/net/sock.h
--- linux-4.19.44/include/net/sock.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/sock.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/sock.h 2019-05-29 16:32:06.000000000 +0200
@@ -810,6 +810,7 @@
SOCK_SELECT_ERR_QUEUE, /* Wake select on error queue */
SOCK_RCU_FREE, /* wait rcu grace period in sk_destruct() */
@ -2032,7 +2020,7 @@ diff -aurN linux-4.19.44/include/net/sock.h mptcp-mptcp_v0.95/include/net/sock.h
#ifdef CONFIG_PROC_FS
diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
--- linux-4.19.44/include/net/tcp.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/tcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/tcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -183,6 +183,7 @@
#define TCPOPT_SACK 5 /* SACK Block */
#define TCPOPT_TIMESTAMP 8 /* Better RTT estimations/PAWS */
@ -2073,7 +2061,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
/* sysctl variables for tcp */
extern int sysctl_tcp_max_orphans;
@@ -311,6 +337,95 @@
@@ -311,6 +337,96 @@
#define TCP_DEC_STATS(net, field) SNMP_DEC_STATS((net)->mib.tcp_statistics, field)
#define TCP_ADD_STATS(net, field, val) SNMP_ADD_STATS((net)->mib.tcp_statistics, field, val)
@ -2118,6 +2106,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
+ unsigned int timeout);
+void tcp_write_err(struct sock *sk);
+void tcp_adjust_pcount(struct sock *sk, const struct sk_buff *skb, int decr);
+void tcp_update_skb_after_send(struct tcp_sock *tp, struct sk_buff *skb);
+void tcp_set_skb_tso_segs(struct sk_buff *skb, unsigned int mss_now);
+
+void tcp_v4_reqsk_send_ack(const struct sock *sk, struct sk_buff *skb,
@ -2169,7 +2158,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
void tcp_tasklet_init(void);
void tcp_v4_err(struct sk_buff *skb, u32);
@@ -410,7 +525,9 @@
@@ -410,7 +526,9 @@
struct vm_area_struct *vma);
void tcp_parse_options(const struct net *net, const struct sk_buff *skb,
struct tcp_options_received *opt_rx,
@ -2180,7 +2169,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
const u8 *tcp_parse_md5sig_option(const struct tcphdr *th);
/*
@@ -419,6 +536,7 @@
@@ -419,6 +537,7 @@
void tcp_v4_send_check(struct sock *sk, struct sk_buff *skb);
void tcp_v4_mtu_reduced(struct sock *sk);
@ -2188,7 +2177,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
void tcp_req_err(struct sock *sk, u32 seq, bool abort);
int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb);
struct sock *tcp_create_openreq_child(const struct sock *sk,
@@ -525,7 +643,8 @@
@@ -525,7 +644,8 @@
u32 __cookie_v4_init_sequence(const struct iphdr *iph, const struct tcphdr *th,
u16 *mssp);
@ -2198,7 +2187,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
u64 cookie_init_timestamp(struct request_sock *req);
bool cookie_timestamp_decode(const struct net *net,
struct tcp_options_received *opt);
@@ -539,7 +658,8 @@
@@ -539,7 +659,8 @@
u32 __cookie_v6_init_sequence(const struct ipv6hdr *iph,
const struct tcphdr *th, u16 *mssp);
@ -2208,7 +2197,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
#endif
/* tcp_output.c */
@@ -575,10 +695,17 @@
@@ -575,10 +696,17 @@
void tcp_skb_collapse_tstamp(struct sk_buff *skb,
const struct sk_buff *next_skb);
@ -2226,7 +2215,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
void tcp_skb_mark_lost_uncond_verify(struct tcp_sock *tp, struct sk_buff *skb);
void tcp_fin(struct sock *sk);
@@ -622,7 +749,7 @@
@@ -622,7 +750,7 @@
}
/* tcp.c */
@ -2235,7 +2224,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
/* Read 'sendfile()'-style from a TCP socket */
int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
@@ -810,6 +937,12 @@
@@ -810,6 +938,12 @@
u16 tcp_gso_size;
};
};
@ -2248,7 +2237,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
__u8 tcp_flags; /* TCP header flags. (tcp[13]) */
__u8 sacked; /* State flags for SACK. */
@@ -828,6 +961,14 @@
@@ -828,6 +962,14 @@
has_rxtstamp:1, /* SKB has a RX timestamp */
unused:5;
__u32 ack_seq; /* Sequence number ACK'd */
@ -2263,7 +2252,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
union {
struct {
/* There is space for up to 24 bytes */
@@ -1347,6 +1488,19 @@
@@ -1347,6 +1489,19 @@
space - (space>>tcp_adv_win_scale);
}
@ -2283,7 +2272,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
/* Note: caller must be prepared to deal with negative returns */
static inline int tcp_space(const struct sock *sk)
{
@@ -1874,6 +2028,30 @@
@@ -1874,6 +2029,30 @@
#endif
};
@ -2314,7 +2303,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
struct tcp_request_sock_ops {
u16 mss_clamp;
#ifdef CONFIG_TCP_MD5SIG
@@ -1884,12 +2062,13 @@
@@ -1884,12 +2063,13 @@
const struct sock *sk,
const struct sk_buff *skb);
#endif
@ -2333,7 +2322,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
#endif
struct dst_entry *(*route_req)(const struct sock *sk, struct flowi *fl,
const struct request_sock *req);
@@ -1903,15 +2082,17 @@
@@ -1903,15 +2083,17 @@
#ifdef CONFIG_SYN_COOKIES
static inline __u32 cookie_init_sequence(const struct tcp_request_sock_ops *ops,
@ -2354,7 +2343,7 @@ diff -aurN linux-4.19.44/include/net/tcp.h mptcp-mptcp_v0.95/include/net/tcp.h
{
diff -aurN linux-4.19.44/include/net/tcp_states.h mptcp-mptcp_v0.95/include/net/tcp_states.h
--- linux-4.19.44/include/net/tcp_states.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/tcp_states.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/tcp_states.h 2019-05-29 16:32:06.000000000 +0200
@@ -26,6 +26,7 @@
TCP_LISTEN,
TCP_CLOSING, /* Now a valid state */
@ -2373,7 +2362,7 @@ diff -aurN linux-4.19.44/include/net/tcp_states.h mptcp-mptcp_v0.95/include/net/
#endif /* _LINUX_TCP_STATES_H */
diff -aurN linux-4.19.44/include/net/transp_v6.h mptcp-mptcp_v0.95/include/net/transp_v6.h
--- linux-4.19.44/include/net/transp_v6.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/transp_v6.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/net/transp_v6.h 2019-05-29 16:32:06.000000000 +0200
@@ -58,6 +58,8 @@
/* address family specific functions */
@ -2385,7 +2374,7 @@ diff -aurN linux-4.19.44/include/net/transp_v6.h mptcp-mptcp_v0.95/include/net/t
diff -aurN linux-4.19.44/include/trace/events/tcp.h mptcp-mptcp_v0.95/include/trace/events/tcp.h
--- linux-4.19.44/include/trace/events/tcp.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/trace/events/tcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/trace/events/tcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -10,6 +10,7 @@
#include <linux/tracepoint.h>
#include <net/ipv6.h>
@ -2436,7 +2425,7 @@ diff -aurN linux-4.19.44/include/trace/events/tcp.h mptcp-mptcp_v0.95/include/tr
#endif /* _TRACE_TCP_H */
diff -aurN linux-4.19.44/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/include/uapi/linux/bpf.h
--- linux-4.19.44/include/uapi/linux/bpf.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/bpf.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/bpf.h 2019-05-29 16:32:06.000000000 +0200
@@ -2671,6 +2671,7 @@
BPF_TCP_LISTEN,
BPF_TCP_CLOSING, /* Now a valid state */
@ -2447,7 +2436,7 @@ diff -aurN linux-4.19.44/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/include/uapi
};
diff -aurN linux-4.19.44/include/uapi/linux/if.h mptcp-mptcp_v0.95/include/uapi/linux/if.h
--- linux-4.19.44/include/uapi/linux/if.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/if.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/if.h 2019-05-29 16:32:06.000000000 +0200
@@ -132,6 +132,9 @@
#define IFF_ECHO IFF_ECHO
#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
@ -2460,7 +2449,7 @@ diff -aurN linux-4.19.44/include/uapi/linux/if.h mptcp-mptcp_v0.95/include/uapi/
diff -aurN linux-4.19.44/include/uapi/linux/mptcp.h mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h
--- linux-4.19.44/include/uapi/linux/mptcp.h 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/mptcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,149 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
@ -2613,7 +2602,7 @@ diff -aurN linux-4.19.44/include/uapi/linux/mptcp.h mptcp-mptcp_v0.95/include/ua
+#endif /* _LINUX_MPTCP_H */
diff -aurN linux-4.19.44/include/uapi/linux/tcp.h mptcp-mptcp_v0.95/include/uapi/linux/tcp.h
--- linux-4.19.44/include/uapi/linux/tcp.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/tcp.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/include/uapi/linux/tcp.h 2019-05-29 16:32:06.000000000 +0200
@@ -18,9 +18,15 @@
#ifndef _UAPI_LINUX_TCP_H
#define _UAPI_LINUX_TCP_H
@ -2701,7 +2690,7 @@ diff -aurN linux-4.19.44/include/uapi/linux/tcp.h mptcp-mptcp_v0.95/include/uapi
diff -aurN linux-4.19.44/net/core/dev.c mptcp-mptcp_v0.95/net/core/dev.c
--- linux-4.19.44/net/core/dev.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/dev.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/dev.c 2019-05-29 16:32:06.000000000 +0200
@@ -7471,7 +7471,7 @@
dev->flags = (flags & (IFF_DEBUG | IFF_NOTRAILERS | IFF_NOARP |
@ -2713,7 +2702,7 @@ diff -aurN linux-4.19.44/net/core/dev.c mptcp-mptcp_v0.95/net/core/dev.c
diff -aurN linux-4.19.44/net/core/skbuff.c mptcp-mptcp_v0.95/net/core/skbuff.c
--- linux-4.19.44/net/core/skbuff.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/skbuff.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/skbuff.c 2019-05-29 16:32:06.000000000 +0200
@@ -536,7 +536,7 @@
skb_drop_list(&skb_shinfo(skb)->frag_list);
}
@ -2725,7 +2714,7 @@ diff -aurN linux-4.19.44/net/core/skbuff.c mptcp-mptcp_v0.95/net/core/skbuff.c
diff -aurN linux-4.19.44/net/core/sock.c mptcp-mptcp_v0.95/net/core/sock.c
--- linux-4.19.44/net/core/sock.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/sock.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/core/sock.c 2019-05-29 16:32:06.000000000 +0200
@@ -140,6 +140,11 @@
#include <trace/events/sock.h>
@ -2787,7 +2776,7 @@ diff -aurN linux-4.19.44/net/core/sock.c mptcp-mptcp_v0.95/net/core/sock.c
diff -aurN linux-4.19.44/net/ipv4/af_inet.c mptcp-mptcp_v0.95/net/ipv4/af_inet.c
--- linux-4.19.44/net/ipv4/af_inet.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/af_inet.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/af_inet.c 2019-05-29 16:32:06.000000000 +0200
@@ -104,6 +104,7 @@
#include <net/ip_fib.h>
#include <net/inet_connection_sock.h>
@ -2853,7 +2842,7 @@ diff -aurN linux-4.19.44/net/ipv4/af_inet.c mptcp-mptcp_v0.95/net/ipv4/af_inet.c
diff -aurN linux-4.19.44/net/ipv4/inet_connection_sock.c mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c
--- linux-4.19.44/net/ipv4/inet_connection_sock.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/inet_connection_sock.c 2019-05-29 16:32:06.000000000 +0200
@@ -23,6 +23,7 @@
#include <net/route.h>
#include <net/tcp_states.h>
@ -2913,7 +2902,7 @@ diff -aurN linux-4.19.44/net/ipv4/inet_connection_sock.c mptcp-mptcp_v0.95/net/i
cond_resched();
diff -aurN linux-4.19.44/net/ipv4/ip_sockglue.c mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c
--- linux-4.19.44/net/ipv4/ip_sockglue.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/ip_sockglue.c 2019-05-29 16:32:06.000000000 +0200
@@ -44,6 +44,8 @@
#endif
#include <net/ip_fib.h>
@ -2955,7 +2944,7 @@ diff -aurN linux-4.19.44/net/ipv4/ip_sockglue.c mptcp-mptcp_v0.95/net/ipv4/ip_so
case IP_TTL:
diff -aurN linux-4.19.44/net/ipv4/Kconfig mptcp-mptcp_v0.95/net/ipv4/Kconfig
--- linux-4.19.44/net/ipv4/Kconfig 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/Kconfig 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/Kconfig 2019-05-29 16:32:06.000000000 +0200
@@ -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.
@ -3043,7 +3032,7 @@ diff -aurN linux-4.19.44/net/ipv4/Kconfig mptcp-mptcp_v0.95/net/ipv4/Kconfig
default "cdg" if DEFAULT_CDG
diff -aurN linux-4.19.44/net/ipv4/syncookies.c mptcp-mptcp_v0.95/net/ipv4/syncookies.c
--- linux-4.19.44/net/ipv4/syncookies.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/syncookies.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/syncookies.c 2019-05-29 16:32:06.000000000 +0200
@@ -16,6 +16,8 @@
#include <linux/siphash.h>
#include <linux/kernel.h>
@ -3159,7 +3148,7 @@ diff -aurN linux-4.19.44/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.44/net/ipv4/tcp.c mptcp-mptcp_v0.95/net/ipv4/tcp.c
--- linux-4.19.44/net/ipv4/tcp.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp.c 2019-05-29 16:32:06.000000000 +0200
@@ -274,6 +274,7 @@
#include <net/icmp.h>
@ -3864,7 +3853,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp.c mptcp-mptcp_v0.95/net/ipv4/tcp.c
EXPORT_SYMBOL_GPL(tcp_abort);
diff -aurN linux-4.19.44/net/ipv4/tcp_diag.c mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c
--- linux-4.19.44/net/ipv4/tcp_diag.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_diag.c 2019-05-29 16:32:06.000000000 +0200
@@ -34,7 +34,7 @@
r->idiag_wqueue = tp->write_seq - tp->snd_una;
}
@ -3876,7 +3865,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_diag.c mptcp-mptcp_v0.95/net/ipv4/tcp_diag
#ifdef CONFIG_TCP_MD5SIG
diff -aurN linux-4.19.44/net/ipv4/tcp_fastopen.c mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c
--- linux-4.19.44/net/ipv4/tcp_fastopen.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_fastopen.c 2019-05-29 16:32:06.000000000 +0200
@@ -9,6 +9,7 @@
#include <linux/rculist.h>
#include <net/inetpeer.h>
@ -3928,7 +3917,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_fastopen.c mptcp-mptcp_v0.95/net/ipv4/tcp_
*/
diff -aurN linux-4.19.44/net/ipv4/tcp_input.c mptcp-mptcp_v0.95/net/ipv4/tcp_input.c
--- linux-4.19.44/net/ipv4/tcp_input.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_input.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_input.c 2019-05-29 16:32:06.000000000 +0200
@@ -76,35 +76,15 @@
#include <linux/ipsec.h>
#include <asm/unaligned.h>
@ -4792,7 +4781,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_input.c mptcp-mptcp_v0.95/net/ipv4/tcp_inp
tcp_rsk(req)->tfo_listener = false;
diff -aurN linux-4.19.44/net/ipv4/tcp_ipv4.c mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c
--- linux-4.19.44/net/ipv4/tcp_ipv4.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4.c 2019-05-29 16:32:06.000000000 +0200
@@ -67,6 +67,8 @@
#include <net/icmp.h>
#include <net/inet_hashtables.h>
@ -5241,7 +5230,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_ipv4.c mptcp-mptcp_v0.95/net/ipv4/tcp_ipv4
diff -aurN linux-4.19.44/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c
--- linux-4.19.44/net/ipv4/tcp_minisocks.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_minisocks.c 2019-05-29 16:32:06.000000000 +0200
@@ -18,11 +18,13 @@
* Jorge Cwik, <jorge@laser.satlink.net>
*/
@ -5462,7 +5451,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_minisocks.c mptcp-mptcp_v0.95/net/ipv4/tcp
}
diff -aurN linux-4.19.44/net/ipv4/tcp_output.c mptcp-mptcp_v0.95/net/ipv4/tcp_output.c
--- linux-4.19.44/net/ipv4/tcp_output.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_output.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_output.c 2019-05-29 16:32:06.000000000 +0200
@@ -36,6 +36,12 @@
#define pr_fmt(fmt) "TCP: " fmt
@ -5703,6 +5692,15 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_output.c mptcp-mptcp_v0.95/net/ipv4/tcp_ou
}
EXPORT_SYMBOL(tcp_release_cb);
@@ -996,7 +1032,7 @@
sock_hold(sk);
}
-static void tcp_update_skb_after_send(struct tcp_sock *tp, struct sk_buff *skb)
+void tcp_update_skb_after_send(struct tcp_sock *tp, struct sk_buff *skb)
{
skb->skb_mstamp = tp->tcp_mstamp;
list_move_tail(&skb->tcp_tsorted_anchor, &tp->tsorted_sent_queue);
@@ -1108,10 +1144,10 @@
}
}
@ -6060,7 +6058,7 @@ diff -aurN linux-4.19.44/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.44/net/ipv4/tcp_timer.c mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c
--- linux-4.19.44/net/ipv4/tcp_timer.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv4/tcp_timer.c 2019-05-29 16:32:06.000000000 +0200
@@ -20,6 +20,7 @@
#include <linux/module.h>
@ -6260,7 +6258,7 @@ diff -aurN linux-4.19.44/net/ipv4/tcp_timer.c mptcp-mptcp_v0.95/net/ipv4/tcp_tim
diff -aurN linux-4.19.44/net/ipv6/addrconf.c mptcp-mptcp_v0.95/net/ipv6/addrconf.c
--- linux-4.19.44/net/ipv6/addrconf.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/addrconf.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/addrconf.c 2019-05-29 16:32:06.000000000 +0200
@@ -917,6 +917,7 @@
kfree_rcu(ifp, rcu);
@ -6271,7 +6269,7 @@ diff -aurN linux-4.19.44/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.44/net/ipv6/af_inet6.c mptcp-mptcp_v0.95/net/ipv6/af_inet6.c
--- linux-4.19.44/net/ipv6/af_inet6.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/af_inet6.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/af_inet6.c 2019-05-29 16:32:06.000000000 +0200
@@ -107,8 +107,7 @@
return (struct ipv6_pinfo *)(((u8 *)sk) + offset);
}
@ -6284,7 +6282,7 @@ diff -aurN linux-4.19.44/net/ipv6/af_inet6.c mptcp-mptcp_v0.95/net/ipv6/af_inet6
struct ipv6_pinfo *np;
diff -aurN linux-4.19.44/net/ipv6/ipv6_sockglue.c mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c
--- linux-4.19.44/net/ipv6/ipv6_sockglue.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/ipv6_sockglue.c 2019-05-29 16:32:06.000000000 +0200
@@ -48,6 +48,8 @@
#include <net/addrconf.h>
#include <net/inet_common.h>
@ -6310,7 +6308,7 @@ diff -aurN linux-4.19.44/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.44/net/ipv6/syncookies.c mptcp-mptcp_v0.95/net/ipv6/syncookies.c
--- linux-4.19.44/net/ipv6/syncookies.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/syncookies.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/syncookies.c 2019-05-29 16:32:06.000000000 +0200
@@ -20,6 +20,8 @@
#include <linux/kernel.h>
#include <net/secure_seq.h>
@ -6394,7 +6392,7 @@ diff -aurN linux-4.19.44/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.44/net/ipv6/tcp_ipv6.c mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c
--- linux-4.19.44/net/ipv6/tcp_ipv6.c 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/ipv6/tcp_ipv6.c 2019-05-29 16:32:06.000000000 +0200
@@ -61,6 +61,8 @@
#include <net/timewait_sock.h>
#include <net/inet_common.h>
@ -6979,7 +6977,7 @@ diff -aurN linux-4.19.44/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.44/net/Kconfig mptcp-mptcp_v0.95/net/Kconfig
--- linux-4.19.44/net/Kconfig 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/Kconfig 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/Kconfig 2019-05-29 16:32:06.000000000 +0200
@@ -89,6 +89,7 @@
source "net/ipv4/Kconfig"
source "net/ipv6/Kconfig"
@ -6990,7 +6988,7 @@ diff -aurN linux-4.19.44/net/Kconfig mptcp-mptcp_v0.95/net/Kconfig
diff -aurN linux-4.19.44/net/Makefile mptcp-mptcp_v0.95/net/Makefile
--- linux-4.19.44/net/Makefile 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/net/Makefile 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/Makefile 2019-05-29 16:32:06.000000000 +0200
@@ -20,6 +20,7 @@
obj-$(CONFIG_XFRM) += xfrm/
obj-$(CONFIG_UNIX) += unix/
@ -7001,7 +6999,7 @@ diff -aurN linux-4.19.44/net/Makefile mptcp-mptcp_v0.95/net/Makefile
obj-$(CONFIG_NET_KEY) += key/
diff -aurN linux-4.19.44/net/mptcp/Kconfig mptcp-mptcp_v0.95/net/mptcp/Kconfig
--- linux-4.19.44/net/mptcp/Kconfig 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Kconfig 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/Kconfig 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,146 @@
+#
+# MPTCP configuration
@ -7151,7 +7149,7 @@ diff -aurN linux-4.19.44/net/mptcp/Kconfig mptcp-mptcp_v0.95/net/mptcp/Kconfig
+
diff -aurN linux-4.19.44/net/mptcp/Makefile mptcp-mptcp_v0.95/net/mptcp/Makefile
--- linux-4.19.44/net/mptcp/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/Makefile 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/Makefile 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,24 @@
+#
+## Makefile for MultiPath TCP support code.
@ -7179,7 +7177,7 @@ diff -aurN linux-4.19.44/net/mptcp/Makefile mptcp-mptcp_v0.95/net/mptcp/Makefile
+mptcp-$(subst m,y,$(CONFIG_IPV6)) += mptcp_ipv6.o
diff -aurN linux-4.19.44/net/mptcp/mctcp_desync.c mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c
--- linux-4.19.44/net/mptcp/mctcp_desync.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mctcp_desync.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,193 @@
+/*
+ * Desynchronized Multi-Channel TCP Congestion Control Algorithm
@ -7376,7 +7374,7 @@ diff -aurN linux-4.19.44/net/mptcp/mctcp_desync.c mptcp-mptcp_v0.95/net/mptcp/mc
+MODULE_VERSION("1.0");
diff -aurN linux-4.19.44/net/mptcp/mptcp_balia.c mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c
--- linux-4.19.44/net/mptcp/mptcp_balia.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_balia.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,261 @@
+/*
+ * MPTCP implementation - Balia Congestion Control
@ -7641,7 +7639,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_balia.c mptcp-mptcp_v0.95/net/mptcp/mpt
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.44/net/mptcp/mptcp_binder.c mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c
--- linux-4.19.44/net/mptcp/mptcp_binder.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_binder.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,494 @@
+#include <linux/module.h>
+
@ -8139,7 +8137,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_binder.c mptcp-mptcp_v0.95/net/mptcp/mp
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.44/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c
--- linux-4.19.44/net/mptcp/mptcp_blest.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,475 @@
+// SPDX-License-Identifier: GPL-2.0
+/* MPTCP Scheduler to reduce HoL-blocking and spurious retransmissions.
@ -8618,7 +8616,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mpt
+MODULE_VERSION("0.95");
diff -aurN linux-4.19.44/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c
--- linux-4.19.44/net/mptcp/mptcp_coupled.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_coupled.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,262 @@
+/*
+ * MPTCP implementation - Linked Increase congestion control Algorithm (LIA)
@ -8884,8 +8882,8 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.95/net/mptcp/m
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c
--- linux-4.19.44/net/mptcp/mptcp_ctrl.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c 2019-05-23 10:38:14.000000000 +0200
@@ -0,0 +1,3121 @@
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,3124 @@
+/*
+ * MPTCP implementation - MPTCP-control
+ *
@ -11121,6 +11119,9 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+ tcp_sk(meta_sk)->tsoffset = tsoff;
+ if (!inet_csk_reqsk_queue_add(sk, req, meta_sk)) {
+ bh_unlock_sock(meta_sk);
+ /* No sock_put() of the meta needed. The reference has
+ * already been dropped in __mptcp_check_req_master().
+ */
+ sock_put(child);
+ reqsk_put(req);
+ return -1;
@ -12009,7 +12010,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.44/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c
--- linux-4.19.44/net/mptcp/mptcp_fullmesh.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_fullmesh.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,1941 @@
+#include <linux/module.h>
+#include <linux/proc_fs.h>
@ -13954,8 +13955,8 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_fullmesh.c mptcp-mptcp_v0.95/net/mptcp/
+MODULE_VERSION("0.88");
diff -aurN linux-4.19.44/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c
--- linux-4.19.44/net/mptcp/mptcp_input.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c 2019-05-23 10:38:14.000000000 +0200
@@ -0,0 +1,2391 @@
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_input.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,2400 @@
+/*
+ * MPTCP implementation - Sending side
+ *
@ -14554,15 +14555,19 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mpt
+{
+ struct tcp_sock *meta_tp = tcp_sk(meta_sk);
+ struct mptcp_cb *mpcb = meta_tp->mpcb;
+ struct sk_buff *skb, *tmp, *wq_head;
+ struct sk_buff *wq_head, *skb, *tmp;
+
+ skb = tcp_rtx_queue_head(meta_sk);
+
+ /* We resend everything that has not been acknowledged, thus we need
+ * to move it from the rtx-tree to the write-queue.
+ */
+ wq_head = tcp_write_queue_head(meta_sk);
+ skb_rbtree_walk_safe(skb, &meta_sk->tcp_rtx_queue, tmp) {
+
+ skb_rbtree_walk_from_safe(skb, tmp) {
+ list_del(&skb->tcp_tsorted_anchor);
+ tcp_rtx_queue_unlink(skb, meta_sk);
+ INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
+
+ if (wq_head)
+ __skb_queue_before(&meta_sk->sk_write_queue, wq_head, skb);
@ -16143,14 +16148,16 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mpt
+{
+ struct tcp_sock *meta_tp = tcp_sk(meta_sk);
+ struct tcp_sock *master_tp = tcp_sk(meta_tp->mpcb->master_sk);
+ struct sk_buff *skb, *tmp;
+ u32 new_mapping = meta_tp->write_seq - master_tp->snd_una;
+ struct sk_buff *skb, *tmp;
+
+ skb = tcp_rtx_queue_head(meta_sk);
+
+ /* There should only be one skb in write queue: the data not
+ * acknowledged in the SYN+ACK. In this case, we need to map
+ * this data to data sequence numbers.
+ */
+ skb_rbtree_walk_safe(skb, &meta_sk->tcp_rtx_queue, tmp) {
+ skb_rbtree_walk_from_safe(skb, tmp) {
+ /* If the server only acknowledges partially the data sent in
+ * the SYN, we need to trim the acknowledged part because
+ * we don't want to retransmit this already received data.
@ -16175,7 +16182,10 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mpt
+ TCP_SKB_CB(skb)->seq += new_mapping;
+ TCP_SKB_CB(skb)->end_seq += new_mapping;
+
+ list_del(&skb->tcp_tsorted_anchor);
+ tcp_rtx_queue_unlink(skb, meta_sk);
+ INIT_LIST_HEAD(&skb->tcp_tsorted_anchor);
+
+ tcp_add_write_queue_tail(meta_sk, skb);
+ }
+
@ -16349,7 +16359,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_input.c mptcp-mptcp_v0.95/net/mptcp/mpt
+}
diff -aurN linux-4.19.44/net/mptcp/mptcp_ipv4.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c
--- linux-4.19.44/net/mptcp/mptcp_ipv4.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv4.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,427 @@
+/*
+ * MPTCP implementation - IPv4-specific functions
@ -16780,7 +16790,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ipv4.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.44/net/mptcp/mptcp_ipv6.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c
--- linux-4.19.44/net/mptcp/mptcp_ipv6.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ipv6.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,475 @@
+/*
+ * MPTCP implementation - IPv6-specific functions
@ -17259,7 +17269,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ipv6.c mptcp-mptcp_v0.95/net/mptcp/mptc
+}
diff -aurN linux-4.19.44/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c
--- linux-4.19.44/net/mptcp/mptcp_ndiffports.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ndiffports.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,174 @@
+#include <linux/module.h>
+
@ -17437,7 +17447,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ndiffports.c mptcp-mptcp_v0.95/net/mptc
+MODULE_VERSION("0.88");
diff -aurN linux-4.19.44/net/mptcp/mptcp_netlink.c mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c
--- linux-4.19.44/net/mptcp/mptcp_netlink.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_netlink.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,1266 @@
+// SPDX-License-Identifier: GPL-2.0
+/* MPTCP implementation - Netlink Path Manager
@ -18707,7 +18717,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_netlink.c mptcp-mptcp_v0.95/net/mptcp/m
+MODULE_ALIAS_GENL_FAMILY(MPTCP_GENL_NAME);
diff -aurN linux-4.19.44/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c
--- linux-4.19.44/net/mptcp/mptcp_olia.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_olia.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,318 @@
+/*
+ * MPTCP implementation - OPPORTUNISTIC LINKED INCREASES CONGESTION CONTROL:
@ -19029,8 +19039,8 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.95/net/mptcp/mptc
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c
--- linux-4.19.44/net/mptcp/mptcp_output.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c 2019-05-23 10:38:14.000000000 +0200
@@ -0,0 +1,1925 @@
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,1929 @@
+/*
+ * MPTCP implementation - Sending side
+ *
@ -19176,6 +19186,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+ } else {
+ list_del(&orig_skb->tcp_tsorted_anchor);
+ tcp_rtx_queue_unlink(orig_skb, sk);
+ INIT_LIST_HEAD(&orig_skb->tcp_tsorted_anchor);
+ }
+ sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
+ sk->sk_wmem_queued -= orig_skb->truesize;
@ -19352,8 +19363,10 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+ TCP_FRAG_IN_WRITE_QUEUE);
+ }
+
+ skb_rbtree_walk_safe(skb_it, &sk->tcp_rtx_queue, tmp) {
+ skb_it = tcp_rtx_queue_head(sk);
+ skb_rbtree_walk_from_safe(skb_it, tmp) {
+ struct tcp_skb_cb *tcb = TCP_SKB_CB(skb_it);
+
+ /* Subflow syn's and fin's are not reinjected.
+ *
+ * As well as empty subflow-fins with a data-fin.
@ -19737,7 +19750,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+ tcp_event_new_data_sent(meta_sk, skb);
+
+ __tcp_push_pending_frames(subsk, mss, TCP_NAGLE_PUSH);
+ skb->skb_mstamp = meta_tp->tcp_mstamp;
+ tcp_update_skb_after_send(meta_tp, skb);
+ meta_tp->lsndtime = tcp_jiffies32;
+
+ return 0;
@ -19885,7 +19898,8 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+ * always push on the subflow
+ */
+ __tcp_push_pending_frames(subsk, mss_now, TCP_NAGLE_PUSH);
+ skb->skb_mstamp = meta_tp->tcp_mstamp;
+ if (reinject <= 0)
+ tcp_update_skb_after_send(meta_tp, skb);
+ meta_tp->lsndtime = tcp_jiffies32;
+
+ path_mask |= mptcp_pi_to_flag(subtp->mptcp->path_index);
@ -20624,7 +20638,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+ }
+
+ __tcp_push_pending_frames(subsk, mss_now, TCP_NAGLE_PUSH);
+ skb->skb_mstamp = meta_tp->tcp_mstamp;
+ tcp_update_skb_after_send(meta_tp, skb);
+ meta_tp->lsndtime = tcp_jiffies32;
+
+ return 0;
@ -20958,7 +20972,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
+
diff -aurN linux-4.19.44/net/mptcp/mptcp_pm.c mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c
--- linux-4.19.44/net/mptcp/mptcp_pm.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_pm.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,226 @@
+/*
+ * MPTCP implementation - MPTCP-subflow-management
@ -21188,7 +21202,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_pm.c mptcp-mptcp_v0.95/net/mptcp/mptcp_
+late_initcall(mptcp_path_manager_default);
diff -aurN linux-4.19.44/net/mptcp/mptcp_redundant.c mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c
--- linux-4.19.44/net/mptcp/mptcp_redundant.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_redundant.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,389 @@
+/*
+ * MPTCP Scheduler to reduce latency and jitter.
@ -21581,7 +21595,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_redundant.c mptcp-mptcp_v0.95/net/mptcp
+MODULE_VERSION("0.90");
diff -aurN linux-4.19.44/net/mptcp/mptcp_rr.c mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c
--- linux-4.19.44/net/mptcp/mptcp_rr.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_rr.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,309 @@
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
+
@ -21894,7 +21908,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_rr.c mptcp-mptcp_v0.95/net/mptcp/mptcp_
+MODULE_VERSION("0.89");
diff -aurN linux-4.19.44/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c
--- linux-4.19.44/net/mptcp/mptcp_sched.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_sched.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,635 @@
+/* MPTCP Scheduler module selector. Highly inspired by tcp_cong.c */
+
@ -22533,7 +22547,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.95/net/mptcp/mpt
+late_initcall(mptcp_scheduler_default);
diff -aurN linux-4.19.44/net/mptcp/mptcp_wvegas.c mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c
--- linux-4.19.44/net/mptcp/mptcp_wvegas.c 1970-01-01 01:00:00.000000000 +0100
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_wvegas.c 2019-05-29 16:32:06.000000000 +0200
@@ -0,0 +1,271 @@
+/*
+ * MPTCP implementation - WEIGHTED VEGAS
@ -22808,7 +22822,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_wvegas.c mptcp-mptcp_v0.95/net/mptcp/mp
+MODULE_VERSION("0.1");
diff -aurN linux-4.19.44/tools/include/uapi/linux/bpf.h mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h
--- linux-4.19.44/tools/include/uapi/linux/bpf.h 2019-05-16 19:41:32.000000000 +0200
+++ mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h 2019-05-23 10:38:14.000000000 +0200
+++ mptcp-mptcp_v0.95/tools/include/uapi/linux/bpf.h 2019-05-29 16:32:06.000000000 +0200
@@ -2671,6 +2671,7 @@
BPF_TCP_LISTEN,
BPF_TCP_CLOSING, /* Now a valid state */