[PATCH 5/25] Enforces a minimum interval of 10 milliseconds as per CCID-4 draft

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

 



[CCID-4] Enforces a minimum interval of 10 milliseconds as per CCID-4 draft

Signed-off-by: Leandro Melo de Sales <leandro@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Tommi Saviranta <wnd@xxxxxx>

Index: leandro.new/net/dccp/ccids/ccid4.c
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid4.c
+++ leandro.new/net/dccp/ccids/ccid4.c
@@ -111,9 +111,11 @@ static inline u64 rfc3390_initial_rate(s
  */
 static inline void ccid4_update_send_interval(struct ccid4_hc_tx_sock *hctx)
 {
-	/* Calculate new t_ipi = s / X_inst (X_inst is in 64 * bytes/second) */
-	hctx->ccid4hctx_t_ipi = scaled_div32(((u64)hctx->ccid4hctx_s) << 6,
-					     hctx->ccid4hctx_x);
+        /* Calculate new t_ipi = s / X_inst (X_inst is in 64 * bytes/second).
+         * TFRC-SP enforces a minimum interval of 10 milliseconds. */
+        hctx->ccid4hctx_t_ipi =
+              max_t(u32, scaled_div32(((u64)hctx->ccid4hctx_s) << 6,
+                                      hctx->ccid4hctx_x), MIN_SEND_RATE);
 
 	/* Calculate new delta by delta = min(t_ipi / 2, t_gran / 2) */
 	hctx->ccid4hctx_delta = min_t(u32, hctx->ccid4hctx_t_ipi / 2,
Index: leandro.new/net/dccp/ccids/ccid4.h
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid4.h
+++ leandro.new/net/dccp/ccids/ccid4.h
@@ -68,6 +68,9 @@
 /* The nominal packet size to be used into TFRC equation as per CCID-4 draft*/
 #define NOM_PACKET_SIZE            1460
 
+/* Mininum sending rate as per CCID-4 draft */
+#define MIN_SEND_RATE              10000
+
 enum ccid4_options {
 	TFRC_OPT_LOSS_EVENT_RATE = 192,
 	TFRC_OPT_LOSS_INTERVALS	 = 193,
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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