[PATCH 4/4] dccp: Enable the Ack Ratio Feature but keep CCID2 Ack Congestion Control disabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In order to effectively utilize Patch 1 ("Prevent Congestion Window >
Sequence Window"), we need the Ack Ratio Feature. However, this feature
has been disabled because the CCID2 Ack Congestion Control code is so
broken that it was causing major problems.
This patch enables the Ack Ratio Feature, but disables sending the
feature because of the Ack Congestion Control. This allows us to utilize
the Ack Ratio, but prevents the problems with broken Ack Congestion
Control.

--- 
Signed-off-by: Samuel Jero
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index 8f35c36..ae7e332 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -507,8 +507,11 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
 			if (hc->tx_rpdupack >= NUMDUPACK) {
 				hc->tx_rpdupack = -1; /* XXX lame */
 				hc->tx_rpseq    = 0;
-
+#ifdef __CCID2_COPES_GRACEFULLY_WITH_ACK_CONGESTION_CONTROL__
+				/* FIXME: Ack Congestion Control is broken;
+				it doesn't change the ack ratio correctly.*/
 				ccid2_change_l_ack_ratio(sk, 2 * dp->dccps_l_ack_ratio);
+#endif
 			}
 		}
 	}
diff --git a/net/dccp/feat.c b/net/dccp/feat.c
index 6f2bc96..b0ff279 100644
--- a/net/dccp/feat.c
+++ b/net/dccp/feat.c
@@ -86,18 +86,6 @@ static int dccp_hdlr_ecn(struct sock *sk, u64 ecn_incapable, bool rx)
 
 static int dccp_hdlr_ack_ratio(struct sock *sk, u64 ratio, bool rx)
 {
-#ifndef __CCID2_COPES_GRACEFULLY_WITH_DYNAMIC_ACK_RATIO_UPDATES__
-	/*
-	 * FIXME: This is required until several problems in the CCID-2 code are
-	 * resolved. The CCID-2 code currently does not cope well; using dynamic
-	 * Ack Ratios greater than 1 caused instabilities. These were manifest
-	 * in hangups and long RTO timeouts (1...3 seconds). Until this has been
-	 * stabilised, it is safer not to activate dynamic Ack Ratio changes.
-	 */
-	dccp_pr_debug("Not changing %s Ack Ratio from 1 to %u\n",
-		      rx ? "RX" : "TX", (u16)ratio);
-	ratio = 1;
-#endif
 	if (rx)
 		dccp_sk(sk)->dccps_r_ack_ratio = ratio;
 	else

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux