• Gerrit Renker's avatar
    dccp tfrc/ccid-3: Computing Loss Rate from Loss Event Rate · 535c55df
    Gerrit Renker authored
    This adds a function to take care of the following cases occurring in the
    computation of the Loss Rate p:
    
     * 1/(2^32-1) is mapped into 0% as per RFC 4342, 8.5;
     * 1/0        is mapped into the maximum of 100%;
     * we want to avoid that p = 1/x is rounded down to 0 when x is very large,
       since this means accidentally re-entering slow-start (indicated by p==0).
    
    In the last case, the minimum-resolution value of p is returned.
    
    Furthermore, a bug in ccid3_hc_rx_getsockopt is fixed (1/0 was mapped into ~0U),
    which now allows to consistently print the scaled p-values as
    
            printf("Loss Event Rate = %u.%04u %%\n", rx_info.tfrcrx_p / 10000, 
                                                     rx_info.tfrcrx_p % 10000);
    Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
    535c55df
ccid3.c 26.1 KB