1. 09 9月, 2008 1 次提交
  2. 04 9月, 2008 2 次提交
    • G
      dccp tfrc: Suppress unavoidable "below resolution" warning · 8b67ad12
      Gerrit Renker 提交于
      In the congestion-avoidance phase a decay of p towards 0 is natural once fewer
      losses are encountered. Hence the warning message "p is below resolution" is
      not necessary, and thus turned into a debug message by this patch.
      
      The TFRC_SMALLEST_P is needed since in theory p never actually reaches 0. When
      no further losses are encountered, the loss interval I_0 grows in length, 
      causing p to decrease towards 0, causing X_calc = s/(RTT * f(p)) to increase.
      
      With the given minimum-resolution this congestion avoidance phase stops at some
      fixed value, an approximation formula has been added to the documentation.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      8b67ad12
    • G
      dccp tfrc/ccid-3: Computing Loss Rate from Loss Event Rate · 535c55df
      Gerrit Renker 提交于
      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: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      535c55df
  3. 11 6月, 2008 1 次提交
    • G
      dccp ccid-3: TFRC reverse-lookup Bug-Fix · 1e8a287c
      Gerrit Renker 提交于
      This fixes a bug in the reverse lookup of p: given a value f(p), instead of p,
      the function returned the smallest tabulated value f(p).
      
      The smallest tabulated value of
      	 
         10^6 * f(p) =  sqrt(2*p/3) + 12 * sqrt(3*p/8) * (32 * p^3 + p) 
      
      for p=0.0001 is 8172. 
      
      Since this value is scaled by 10^6, the outcome of this bug is that a loss
      of 8172/10^6 = 0.8172% was reported whenever the input was below the table
      resolution of 0.01%.
      
      This means that the value was over 80 times too high, resulting in large spikes
      of the initial loss interval, thus unnecessarily reducing the throughput.
      
      Also corrected the printk format (%u for u32).
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      1e8a287c
  4. 11 2月, 2007 1 次提交
  5. 12 12月, 2006 1 次提交
    • G
      [DCCP]: Simplify TFRC calculation · d63d8364
      Gerrit Renker 提交于
      In migrating towards using the newer functions scaled_div/scaled_div32
      for TFRC computations mapped from floating-point onto integer arithmetic,
      this completes the last stage of modifications.
      
      In particular, the overflow case for computing X_calc is circumvented by
       * breaking the computation into two stages
       * the first stage, res = (s*1E6)/R, cannot overflow due to use of u64
       * in the second stage, res = (res*1E6)/f, overflow on u32 is avoided due
         to (i) returning UINT_MAX in this case (which is logically appropriate)
         and (ii) issuing a warning message into the system log (since very likely
         there is a problem somewhere else with the parameters)
      
      Lastly, all such scaling operations are now exported into tfrc.h, since
      actually this form of scaled computation is specific to TFRC and not to CCID3.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      d63d8364
  6. 04 12月, 2006 5 次提交
  7. 03 12月, 2006 1 次提交
    • G
      [DCCP]: Simplified conditions due to use of enum:8 states · 59348b19
      Gerrit Renker 提交于
      This reaps the benefit of the earlier patch, which changed the type of
      CCID 3 states to use enums, in that many conditions are now simplified
      and the number of possible (unexpected) values is greatly reduced.
      
      In a few instances, this also allowed to simplify pre-conditions; where
      care has been taken to retain logical equivalence.
      
      [DCCP]: Introduce a consistent BUG/WARN message scheme
      
      This refines the existing set of DCCP messages so that
       * BUG(), BUG_ON(), WARN_ON() have meaningful DCCP-specific counterparts
       * DCCP_CRIT (for severe warnings) is not rate-limited
       * DCCP_WARN() is introduced as rate-limited wrapper
      
      Using these allows a faster and cleaner transition to their original
      counterparts once the code has matured into a full DCCP implementation.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      59348b19
  8. 27 8月, 2006 1 次提交
  9. 01 7月, 2006 1 次提交
  10. 08 2月, 2006 1 次提交
  11. 30 8月, 2005 1 次提交