1. 05 1月, 2009 1 次提交
    • G
      dccp: Lockless integration of CCID congestion-control plugins · ddebc973
      Gerrit Renker 提交于
      Based on Arnaldo's earlier patch, this patch integrates the standardised
      CCID congestion control plugins (CCID-2 and CCID-3) of DCCP with dccp.ko:
      
       * enables a faster connection path by eliminating the need to always go 
         through the CCID registration lock;
      
       * updates the implementation to use only a single array whose size equals
         the number of configured CCIDs instead of the maximum (256);
      
       * since the CCIDs are now fixed array elements, synchronization is no
         longer needed, simplifying use and implementation.
      
      CCID-2 is suggested as minimum for a basic DCCP implementation (RFC 4340, 10);
      CCID-3 is a standards-track CCID supported by RFC 4342 and RFC 5348.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ddebc973
  2. 09 9月, 2008 1 次提交
  3. 04 9月, 2008 3 次提交
    • G
      dccp ccid-3: Measuring the packet size s with regard to rfc3448bis-06 · c8f41d50
      Gerrit Renker 提交于
      rfc3448bis allows three different ways of tracking the packet size `s': 
      
       1. using the MSS/MPS (at initialisation, 4.2, and in 4.1 (1));
       2. using the average of `s' (in 4.1);
       3. using the maximum of `s' (in 4.2).
      
      Instead of hard-coding a single interpretation of rfc3448bis, this implements
      a choice of all three alternatives and suggests the first as default, since it
      is the option which is most consistent with other parts of the specification.
      
      The patch further deprecates the update of t_ipi whenever `s' changes. The
      gains of doing this are only small since a change of s takes effect at the
      next instant X is updated:
       * when the next feedback comes in (within one RTT or less);
       * when the nofeedback timer expires (within at most 4 RTTs).
       
      Further, there are complications caused by updating t_ipi whenever s changes:
       * if t_ipi had previously been updated to effect oscillation prevention (4.5),
         then it is impossible to make the same adjustment to t_ipi again, thus
         counter-acting the algorithm;
       * s may be updated any time and a modification of t_ipi depends on the current
         state (e.g. no oscillation prevention is done in the absence of feedback);
       * in rev-06 of rfc3448bis, there are more possible cases, depending on whether
         the sender is in slow-start (t_ipi <= R/W_init), or in congestion-avoidance,
         limited by X_recv or the throughput equation (t_ipi <= t_mbi).
      
      Thus there are side effects of always updating t_ipi as s changes. These may not
      be desirable. The only case I can think of where such an update makes sense is
      to recompute X_calc when p > 0 and when s changes (not done by this patch).
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      c8f41d50
    • G
      dccp ccid-3: Tidy up CCID-Kconfig dependencies · 891e4d8a
      Gerrit Renker 提交于
      The per-CCID menu has several dependencies on EXPERIMENTAL. These are redundant,
      since net/dccp/ccids/Kconfig is sourced by net/dccp/Kconfig and since the
      latter menu in turn asserts a dependency on EXPERIMENTAL.
      
      The patch removes the redundant dependencies as well as the repeated reference
      within the sub-menu.
      
      Further changes:
      ----------------
      Two single dependencies on CCID-3 are replaced with a single enclosing `if'.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      891e4d8a
    • G
      dccp ccid-2: Remove old infrastructure · 5a577b48
      Gerrit Renker 提交于
      This removes
       * functions for which updates have been provided in the preceding patches and
       * the @av_vec_len field - it is no longer necessary since the buffer length is
         now always computed dynamically;
       * conditional debugging code (CONFIG_IP_DCCP_ACKVEC).
      
      The reason for removing the conditional debugging code is that Ack Vectors are 
      an almost inevitable necessity - RFC 4341 says that for CCID-2, Ack Vectors must
      be used. Furthermore, the code would be only interesting for coding - after some 
      extensive testing with this patch set, having the debug code around is no longer
      of real help.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      5a577b48
  4. 29 1月, 2008 3 次提交
  5. 04 12月, 2006 1 次提交
    • G
      [DCCP]: Use higher RTO default for CCID3 · 8a508ac2
      Gerrit Renker 提交于
      The TFRC nofeedback timer normally expires after the maximum of 4
      RTTs and twice the current send interval (RFC 3448, 4.3). On LANs
      with a small RTT this can mean a high processing load and reduced
      performance, since then the nofeedback timer is triggered very
      frequently.
      
      This patch provides a configuration option to set the bound for the
      nofeedback timer, using as default 100 milliseconds.
      
      By setting the configuration option to 0, strict RFC 3448 behaviour
      can be enforced for the nofeedback timer.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      8a508ac2
  6. 03 12月, 2006 2 次提交
  7. 25 10月, 2006 1 次提交
  8. 23 9月, 2006 1 次提交
  9. 21 3月, 2006 2 次提交
  10. 30 8月, 2005 2 次提交