mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	Update MPTCP with a BLEST fix
This commit is contained in:
		
							parent
							
								
									3ecb98175a
								
							
						
					
					
						commit
						97d48e22fc
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -8164,7 +8164,7 @@ diff -aurN linux-4.19.56/net/mptcp/mptcp_binder.c mptcp-mptcp_v0.95/net/mptcp/mp
 | 
			
		|||
diff -aurN linux-4.19.56/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c
 | 
			
		||||
--- linux-4.19.56/net/mptcp/mptcp_blest.c	1970-01-01 01:00:00.000000000 +0100
 | 
			
		||||
+++ mptcp-mptcp_v0.95/net/mptcp/mptcp_blest.c	2019-07-05 08:00:07.000000000 +0200
 | 
			
		||||
@@ -0,0 +1,475 @@
 | 
			
		||||
@@ -0,0 +1,478 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0
 | 
			
		||||
+/*	MPTCP Scheduler to reduce HoL-blocking and spurious retransmissions.
 | 
			
		||||
+ *
 | 
			
		||||
| 
						 | 
				
			
			@ -8367,7 +8367,7 @@ diff -aurN linux-4.19.56/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mpt
 | 
			
		|||
+
 | 
			
		||||
+	/* if we decided to use a slower flow, we have the option of not using it at all */
 | 
			
		||||
+	if (bestsk && minsk && bestsk != minsk) {
 | 
			
		||||
+		u32 slow_linger_time, fast_bytes, slow_inflight_bytes, slow_bytes, avail_space;
 | 
			
		||||
+		u32 slow_linger_time, fast_bytes, buffered_bytes, slow_inflight_bytes, slow_bytes, avail_space;
 | 
			
		||||
+
 | 
			
		||||
+		meta_tp = tcp_sk(meta_sk);
 | 
			
		||||
+		besttp = tcp_sk(bestsk);
 | 
			
		||||
| 
						 | 
				
			
			@ -8380,13 +8380,16 @@ diff -aurN linux-4.19.56/net/mptcp/mptcp_blest.c mptcp-mptcp_v0.95/net/mptcp/mpt
 | 
			
		|||
+		slow_linger_time = blestsched_estimate_linger_time(bestsk);
 | 
			
		||||
+		fast_bytes = blestsched_estimate_bytes(minsk, slow_linger_time);
 | 
			
		||||
+
 | 
			
		||||
+		if (skb)
 | 
			
		||||
+			buffered_bytes = skb->len;
 | 
			
		||||
+
 | 
			
		||||
+		/* is the required space available in the mptcp meta send window?
 | 
			
		||||
+		 * we assume that all bytes inflight on the slow path will be acked in besttp->srtt seconds
 | 
			
		||||
+		 * (just like the SKB if it was sent now) -> that means that those inflight bytes will
 | 
			
		||||
+		 * keep occupying space in the meta window until then
 | 
			
		||||
+		 */
 | 
			
		||||
+		slow_inflight_bytes = besttp->write_seq - besttp->snd_una;
 | 
			
		||||
+		slow_bytes = skb->len + slow_inflight_bytes; // bytes of this SKB plus those in flight already
 | 
			
		||||
+		slow_bytes = buffered_bytes + slow_inflight_bytes; // bytes of this SKB plus those in flight already
 | 
			
		||||
+
 | 
			
		||||
+		avail_space = (slow_bytes < meta_tp->snd_wnd) ? (meta_tp->snd_wnd - slow_bytes) : 0;
 | 
			
		||||
+
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue