mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-13 03:41:54 +00:00
Backport some MPTCP changes from Christoph Paasch
This commit is contained in:
parent
8fd4a789b9
commit
1bc77db345
2 changed files with 12 additions and 11 deletions
|
@ -8139,7 +8139,7 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.94/net/mptcp/
|
||||||
diff -aurN linux-4.14.121/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.94/net/mptcp/mptcp_ctrl.c
|
diff -aurN linux-4.14.121/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.94/net/mptcp/mptcp_ctrl.c
|
||||||
--- linux-4.14.121/net/mptcp/mptcp_ctrl.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux-4.14.121/net/mptcp/mptcp_ctrl.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
+++ mptcp-mptcp_v0.94/net/mptcp/mptcp_ctrl.c 2019-05-23 20:14:17.000000000 +0200
|
+++ mptcp-mptcp_v0.94/net/mptcp/mptcp_ctrl.c 2019-05-23 20:14:17.000000000 +0200
|
||||||
@@ -0,0 +1,3001 @@
|
@@ -0,0 +1,3000 @@
|
||||||
+/*
|
+/*
|
||||||
+ * MPTCP implementation - MPTCP-control
|
+ * MPTCP implementation - MPTCP-control
|
||||||
+ *
|
+ *
|
||||||
|
@ -9511,8 +9511,6 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.94/net/mptcp/mpt
|
||||||
+ tp->mptcp->attached = 1;
|
+ tp->mptcp->attached = 1;
|
||||||
+
|
+
|
||||||
+ mpcb->cnt_subflows++;
|
+ mpcb->cnt_subflows++;
|
||||||
+ atomic_add(atomic_read(&((struct sock *)tp)->sk_rmem_alloc),
|
|
||||||
+ &meta_sk->sk_rmem_alloc);
|
|
||||||
+
|
+
|
||||||
+ mptcp_sub_inherit_sockopts(meta_sk, sk);
|
+ mptcp_sub_inherit_sockopts(meta_sk, sk);
|
||||||
+ INIT_DELAYED_WORK(&tp->mptcp->work, mptcp_sub_close_wq);
|
+ INIT_DELAYED_WORK(&tp->mptcp->work, mptcp_sub_close_wq);
|
||||||
|
@ -9779,6 +9777,7 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.94/net/mptcp/mpt
|
||||||
+ if (!cancel_delayed_work(work))
|
+ if (!cancel_delayed_work(work))
|
||||||
+ return;
|
+ return;
|
||||||
+ sock_put(sk);
|
+ sock_put(sk);
|
||||||
|
+ mptcp_mpcb_put(tp->mpcb);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (!delay) {
|
+ if (!delay) {
|
||||||
|
@ -17043,7 +17042,7 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.94/net/mptcp/mpt
|
||||||
diff -aurN linux-4.14.121/net/mptcp/mptcp_output.c mptcp-mptcp_v0.94/net/mptcp/mptcp_output.c
|
diff -aurN linux-4.14.121/net/mptcp/mptcp_output.c mptcp-mptcp_v0.94/net/mptcp/mptcp_output.c
|
||||||
--- linux-4.14.121/net/mptcp/mptcp_output.c 1970-01-01 01:00:00.000000000 +0100
|
--- linux-4.14.121/net/mptcp/mptcp_output.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
+++ mptcp-mptcp_v0.94/net/mptcp/mptcp_output.c 2019-05-23 20:14:17.000000000 +0200
|
+++ mptcp-mptcp_v0.94/net/mptcp/mptcp_output.c 2019-05-23 20:14:17.000000000 +0200
|
||||||
@@ -0,0 +1,1822 @@
|
@@ -0,0 +1,1824 @@
|
||||||
+/*
|
+/*
|
||||||
+ * MPTCP implementation - Sending side
|
+ * MPTCP implementation - Sending side
|
||||||
+ *
|
+ *
|
||||||
|
@ -18523,6 +18522,8 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_output.c mptcp-mptcp_v0.94/net/mptcp/m
|
||||||
+ UINT_MAX / mss_now,
|
+ UINT_MAX / mss_now,
|
||||||
+ TCP_NAGLE_OFF);
|
+ TCP_NAGLE_OFF);
|
||||||
+
|
+
|
||||||
|
+ limit = min(limit, tcp_wnd_end(meta_tp) - TCP_SKB_CB(skb)->seq);
|
||||||
|
+
|
||||||
+ if (skb->len > limit &&
|
+ if (skb->len > limit &&
|
||||||
+ unlikely(mptcp_fragment(meta_sk, skb, limit,
|
+ unlikely(mptcp_fragment(meta_sk, skb, limit,
|
||||||
+ GFP_ATOMIC, 0)))
|
+ GFP_ATOMIC, 0)))
|
||||||
|
@ -19800,7 +19801,7 @@ diff -aurN linux-4.14.121/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.94/net/mptcp/mp
|
||||||
+ * calculated end_seq (because here at this point end_seq is still at
|
+ * calculated end_seq (because here at this point end_seq is still at
|
||||||
+ * the meta-level).
|
+ * the meta-level).
|
||||||
+ */
|
+ */
|
||||||
+ if (skb && !zero_wnd_test &&
|
+ if (skb && zero_wnd_test &&
|
||||||
+ after(tp->write_seq + min(skb->len, mss_now), tcp_wnd_end(tp)))
|
+ after(tp->write_seq + min(skb->len, mss_now), tcp_wnd_end(tp)))
|
||||||
+ return true;
|
+ return true;
|
||||||
+
|
+
|
||||||
|
|
|
@ -8885,7 +8885,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_coupled.c mptcp-mptcp_v0.95/net/mptcp/m
|
||||||
diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c
|
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
|
--- 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
|
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_ctrl.c 2019-05-23 10:38:14.000000000 +0200
|
||||||
@@ -0,0 +1,3112 @@
|
@@ -0,0 +1,3110 @@
|
||||||
+/*
|
+/*
|
||||||
+ * MPTCP implementation - MPTCP-control
|
+ * MPTCP implementation - MPTCP-control
|
||||||
+ *
|
+ *
|
||||||
|
@ -10343,9 +10343,6 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
|
||||||
+
|
+
|
||||||
+ tp->mptcp->attached = 1;
|
+ tp->mptcp->attached = 1;
|
||||||
+
|
+
|
||||||
+ atomic_add(atomic_read(&((struct sock *)tp)->sk_rmem_alloc),
|
|
||||||
+ &meta_sk->sk_rmem_alloc);
|
|
||||||
+
|
|
||||||
+ mptcp_sub_inherit_sockopts(meta_sk, sk);
|
+ mptcp_sub_inherit_sockopts(meta_sk, sk);
|
||||||
+ INIT_DELAYED_WORK(&tp->mptcp->work, mptcp_sub_close_wq);
|
+ INIT_DELAYED_WORK(&tp->mptcp->work, mptcp_sub_close_wq);
|
||||||
+
|
+
|
||||||
|
@ -10598,6 +10595,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_ctrl.c mptcp-mptcp_v0.95/net/mptcp/mptc
|
||||||
+ if (!cancel_delayed_work(work))
|
+ if (!cancel_delayed_work(work))
|
||||||
+ return;
|
+ return;
|
||||||
+ sock_put(sk);
|
+ sock_put(sk);
|
||||||
|
+ mptcp_mpcb_put(tp->mpcb);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (!delay) {
|
+ if (!delay) {
|
||||||
|
@ -19021,7 +19019,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_olia.c mptcp-mptcp_v0.95/net/mptcp/mptc
|
||||||
diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c
|
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
|
--- 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
|
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_output.c 2019-05-23 10:38:14.000000000 +0200
|
||||||
@@ -0,0 +1,1923 @@
|
@@ -0,0 +1,1925 @@
|
||||||
+/*
|
+/*
|
||||||
+ * MPTCP implementation - Sending side
|
+ * MPTCP implementation - Sending side
|
||||||
+ *
|
+ *
|
||||||
|
@ -20593,6 +20591,8 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_output.c mptcp-mptcp_v0.95/net/mptcp/mp
|
||||||
+ UINT_MAX / mss_now,
|
+ UINT_MAX / mss_now,
|
||||||
+ TCP_NAGLE_OFF);
|
+ TCP_NAGLE_OFF);
|
||||||
+
|
+
|
||||||
|
+ limit = min(limit, tcp_wnd_end(meta_tp) - TCP_SKB_CB(skb)->seq);
|
||||||
|
+
|
||||||
+ if (skb->len > limit &&
|
+ if (skb->len > limit &&
|
||||||
+ unlikely(mptcp_fragment(meta_sk, TCP_FRAG_IN_RTX_QUEUE, skb,
|
+ unlikely(mptcp_fragment(meta_sk, TCP_FRAG_IN_RTX_QUEUE, skb,
|
||||||
+ limit, GFP_ATOMIC, 0)))
|
+ limit, GFP_ATOMIC, 0)))
|
||||||
|
@ -21976,7 +21976,7 @@ diff -aurN linux-4.19.44/net/mptcp/mptcp_sched.c mptcp-mptcp_v0.95/net/mptcp/mpt
|
||||||
+ * calculated end_seq (because here at this point end_seq is still at
|
+ * calculated end_seq (because here at this point end_seq is still at
|
||||||
+ * the meta-level).
|
+ * the meta-level).
|
||||||
+ */
|
+ */
|
||||||
+ if (skb && !zero_wnd_test &&
|
+ if (skb && zero_wnd_test &&
|
||||||
+ after(tp->write_seq + min(skb->len, mss_now), tcp_wnd_end(tp)))
|
+ after(tp->write_seq + min(skb->len, mss_now), tcp_wnd_end(tp)))
|
||||||
+ return true;
|
+ return true;
|
||||||
+
|
+
|
||||||
|
|
Loading…
Reference in a new issue