mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +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
 | 
			
		||||
--- 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
 | 
			
		||||
@@ -0,0 +1,3001 @@
 | 
			
		||||
@@ -0,0 +1,3000 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	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;
 | 
			
		||||
+
 | 
			
		||||
+	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);
 | 
			
		||||
+	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))
 | 
			
		||||
+			return;
 | 
			
		||||
+		sock_put(sk);
 | 
			
		||||
+		mptcp_mpcb_put(tp->mpcb);
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	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
 | 
			
		||||
--- 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
 | 
			
		||||
@@ -0,0 +1,1822 @@
 | 
			
		||||
@@ -0,0 +1,1824 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	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,
 | 
			
		||||
+					    TCP_NAGLE_OFF);
 | 
			
		||||
+
 | 
			
		||||
+	limit = min(limit, tcp_wnd_end(meta_tp) - TCP_SKB_CB(skb)->seq);
 | 
			
		||||
+
 | 
			
		||||
+	if (skb->len > limit &&
 | 
			
		||||
+	    unlikely(mptcp_fragment(meta_sk, skb, limit,
 | 
			
		||||
+				    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
 | 
			
		||||
+	 * 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)))
 | 
			
		||||
+		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
 | 
			
		||||
--- 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,3112 @@
 | 
			
		||||
@@ -0,0 +1,3110 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	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;
 | 
			
		||||
+
 | 
			
		||||
+	atomic_add(atomic_read(&((struct sock *)tp)->sk_rmem_alloc),
 | 
			
		||||
+		   &meta_sk->sk_rmem_alloc);
 | 
			
		||||
+
 | 
			
		||||
+	mptcp_sub_inherit_sockopts(meta_sk, sk);
 | 
			
		||||
+	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))
 | 
			
		||||
+			return;
 | 
			
		||||
+		sock_put(sk);
 | 
			
		||||
+		mptcp_mpcb_put(tp->mpcb);
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	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
 | 
			
		||||
--- 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,1923 @@
 | 
			
		||||
@@ -0,0 +1,1925 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *	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,
 | 
			
		||||
+					    TCP_NAGLE_OFF);
 | 
			
		||||
+
 | 
			
		||||
+	limit = min(limit, tcp_wnd_end(meta_tp) - TCP_SKB_CB(skb)->seq);
 | 
			
		||||
+
 | 
			
		||||
+	if (skb->len > limit &&
 | 
			
		||||
+	    unlikely(mptcp_fragment(meta_sk, TCP_FRAG_IN_RTX_QUEUE, skb,
 | 
			
		||||
+				    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
 | 
			
		||||
+	 * 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)))
 | 
			
		||||
+		return true;
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue