• G
    dccp tfrc: Return type of update_i_mean is void · 3ca7aea0
    Gerrit Renker 提交于
    This changes the return type of tfrc_lh_update_i_mean() to void, since that 
    function returns always `false'. This is due to 
    
     	len = dccp_delta_seqno(cur->li_seqno, DCCP_SKB_CB(skb)->dccpd_seq) + 1;
     
     	if (len - (s64)cur->li_length <= 0)	/* duplicate or reordered */
    		return 0;
    
    which means that update_i_mean can only increase the length of the open loss
    interval I_0, and hence the value of I_tot0 (RFC 3448, 5.4). Consequently the
    test `i_mean < old_i_mean' at the end of the function always evaluates to false.
    
    There is no known way by which a loss interval can suddenly become shorter,
    therefore the return type of the function is changed to void. (That is, under
    the given circumstances step (3) in RFC 3448, 6.1 will not occur.)
    
    Further changes:
    ----------------
     * the function is now called from tfrc_rx_handle_loss, which is equivalent
       to the previous way of calling from rx_packet_recv (it was called whenever
       there was no new or pending loss, now  it is also updated when there is
       a pending loss - this increases the accuracy a bit);
     * added a FIXME to possibly consider NDP counting as per RFC 4342 (this is
       not implemented yet).
    Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
    3ca7aea0
ccid3.c 25.9 KB