[TFRC]: Let calling module compute First Loss Interval TFRC [RFC 3448] requires a synthetic value of the first loss interval length. Since computing this value requires access to the internals of the calling module (parameters s, RTT, and X_recv), it is better to let the calling module compute the First Loss Interval length. Therefore, to highlight this, the function has been renamed into `ccid3_first_li' (due to a max line length of 80 characters); the code has been arranged and comments tidied up, but no functional change results. Signed-off-by: Gerrit Renker <gerrit@xxxxxxxxxxxxxx> --- net/dccp/ccids/ccid3.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c @@ -812,11 +812,16 @@ static int ccid3_hc_rx_insert_options(st return 0; } -/* calculate first loss interval +/** ccid3_first_li - Implements [RFC 3448, 6.3.1] * - * returns estimated loss interval in usecs */ - -static u32 ccid3_hc_rx_calc_first_li(struct sock *sk) + * Determine the length of the first loss interval via inverse lookup. + * Assume that X_recv can be computed by the throughput equation + * s + * X_recv = -------- + * R * fval + * Find some p such that f(p) = fval; return 1/p (scaled). + */ +static u32 ccid3_first_li(struct sock *sk) { struct ccid3_hc_rx_sock *hcrx = ccid3_hc_rx_sk(sk); u32 x_recv, p; @@ -824,14 +829,6 @@ static u32 ccid3_hc_rx_calc_first_li(str struct timeval tstamp; u64 fval; - /* - * Determine the length of the first loss interval via inverse lookup. - * Assume that X_recv can be computed by the throughput equation - * s - * X_recv = -------- - * R * fval - * Find some p such that f(p) = fval; return 1/p [RFC 3448, 6.3.1]. - */ if (hcrx->ccid3hcrx_rtt == 0) { DCCP_WARN("No RTT estimate available, using 0.2sec fallback\n"); hcrx->ccid3hcrx_rtt = DCCP_FALLBACK_RTT; @@ -842,7 +839,7 @@ static u32 ccid3_hc_rx_calc_first_li(str DCCP_BUG_ON(delta <= 0); x_recv = scaled_div32(hcrx->ccid3hcrx_bytes_recv, delta); - if (x_recv == 0) { /* would also trigger divide-by-zero */ + if (x_recv == 0) { DCCP_WARN("X_recv==0\n"); if ((x_recv = hcrx->ccid3hcrx_x_recv) == 0) { DCCP_BUG("stored value of X_recv is zero"); - 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