Quoting Ian McDonald: | On 12/2/06, Gerrit Renker <gerrit@xxxxxxxxxxxxxx> wrote: | > [DCCP]: Deprecate TFRC_SMALLEST_P | > | > Signed-off-by: Gerrit Renker <gerrit@xxxxxxxxxxxxxx> | | Acked-by: Ian McDonald <ian.mcdonald@xxxxxxxxxxx> I would like to inform you that I have made a small change which would otherwise cause erratic behaviour: In ccid3_hc_tx_no_feedback_timer(): /* If (X_calc > 2 * X_recv) X_recv = max(X_recv/2, s(2*t_mbi)) Else X_recv = X_calc/4 - /* check also if p is zero -> x_calc is infinity? */ - if (hctx->ccid3hctx_p < TFRC_SMALLEST_P || - hctx->ccid3hctx_x_calc > 2 * hctx->ccid3hctx_x_recv) hctx->ccid3hctx_x_recv = max_t(u32, hctx->ccid3hctx_x_recv / 2, hctx->ccid3hctx_s / (2 * TFRC_T_MBI)); else hctx->ccid3hctx_x_recv = hctx->ccid3hctx_x_calc / 4; ===> the previous replacement was: + if (hctx->ccid3hctx_x_calc > 2 * hctx->ccid3hctx_x_recv) ===> if p==0, the `else' case would be taken. But X_calc is then either a stale value or (at worst) 0 which would mean that the sender cuts off here. Therefore, I have done the following: + if (hctx->ccid3hctx_p == 0 || + hctx->ccid3hctx_x_calc > 2 * hctx->ccid3hctx_x_recv) ===> In this way we avoid using a stale or zero value of X_calc Keep the Acked-by? - 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