1. 06 Jul, 2011 6 commits
  2. 05 Jul, 2011 26 commits
  3. 04 Jul, 2011 8 commits
    • Gerrit Renker's avatar
      dccp ccid-2: Perform congestion-window validation · 113ced1f
      Gerrit Renker authored
      CCID-2's cwnd increases like TCP during slow-start, which has implications for
       * the local Sequence Window value (should be > cwnd),
       * the Ack Ratio value.
      Hence an exponential growth, if it does not reflect the actual network
      conditions, can quickly lead to instability.
      
      This patch adds congestion-window validation (RFC2861) to CCID-2:
       * cwnd is constrained if the sender is application limited;
       * cwnd is reduced after a long idle period, as suggested in the '90 paper
         by Van Jacobson, in RFC 2581 (sec. 4.1);
       * cwnd is never reduced below the RFC 3390 initial window.
      
      As marked in the comments, the code is actually almost a direct copy of the
      TCP congestion-window-validation algorithms. By continuing this work, it may
      in future be possible to use the TCP code (not possible at the moment).
      
      The mechanism can be turned off using a module parameter. Sampling of the
      currently-used window (moving-maximum) is however done constantly; this is
      used to determine the expected window, which can be exploited to regulate
      DCCP's Sequence Window value.
      
      This patch also sets slow-start-after-idle (RFC 4341, 5.1), i.e. it behaves like
      TCP when net.ipv4.tcp_slow_start_after_idle = 1.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      113ced1f
    • Gerrit Renker's avatar
      dccp ccid-2: Use existing function to test for data packets · 58fdea0f
      Gerrit Renker authored
      This replaces a switch statement with a test, using the equivalent
      function dccp_data_packet(skb).  It also doubles the range of the field
      `rx_num_data_pkts' by changing the type from `int' to `u32', avoiding
      signed/unsigned comparison with the u16 field `dccps_r_ack_ratio'.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      58fdea0f
    • Gerrit Renker's avatar
      dccp ccid-2: move rfc 3390 function into header file · b4d5f4b2
      Gerrit Renker authored
      This moves CCID-2's initial window function into the header file, since several
      parts throughout the CCID-2 code need to call it (CCID-2 still uses RFC 3390).
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Acked-by: default avatarLeandro Melo de Sales <leandro@ic.ufal.br>
      b4d5f4b2
    • Gerrit Renker's avatar
      dccp: cosmetics of info message · 1fd9d208
      Gerrit Renker authored
      Change the CCID (de)activation message to start with the
      protocol name, as 'CCID' is already in there.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      1fd9d208
    • Gerrit Renker's avatar
      dccp: combine the functionality of enqeueing and cloning · 8695e801
      Gerrit Renker authored
      Realising the following call pattern,
       * first dccp_entail() is called to enqueue a new skb and
       * then skb_clone() is called to transmit a clone of that skb,
      this patch integrates both into the same function.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      8695e801
    • Gerrit Renker's avatar
      dccp: Clean up slow-path input processing · c0c20150
      Gerrit Renker authored
      This patch rearranges the order of statements of the slow-path input processing
      (i.e. any other state than OPEN), to resolve the following issues.
      
       1. Dependencies: the order of statements now better matches RFC 4340, 8.5, i.e.
          step 7 is before step 9 (previously 9 was before 7), and parsing options in
          step 8 (which may consume resources) now comes after step 7.
       2. Sequence number checks are omitted if in state LISTEN/REQUEST, due to the
          note underneath the table in RFC 4340, 7.5.3.
          As a result, CCID processing is now indeed confined to OPEN/PARTOPEN states,
          i.e. congestion control is performed only on the flow of data packets. This
          avoids pathological cases of doing congestion control on those messages
          which set up and terminate the connection.
       3. Packets are now passed on to Ack Vector / CCID processing only after
          - step 7  (receive unexpected packets),
          - step 9  (receive Reset),
          - step 13 (receive CloseReq),
          - step 14 (receive Close)
          and only if the state is PARTOPEN. This simplifies CCID processing:
          - in LISTEN/CLOSED the CCIDs are non-existent;
          - in RESPOND/REQUEST the CCIDs have not yet been negotiated;
          - in CLOSEREQ and active-CLOSING the node has already closed this socket;
          - in passive-CLOSING the client is waiting for its Reset.
          In the last case, RFC 4340, 8.3 leaves it open to ignore further incoming
          data, which is the approach taken here.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      c0c20150
    • Yoshihiro Shimoda's avatar
      net: sh_eth: remove __flush_purge_region · 31fcb99d
      Yoshihiro Shimoda authored
      It is a function of SuperH architecture. There is no good to use
      the function on a driver generally. So, the driver uses
      dma_map_single() instead of __flush_purge_region.
      Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31fcb99d
    • Joe Perches's avatar
      af_econet: Use current logging styles and neatening · ee9c88f2
      Joe Perches authored
      Use pr_fmt() without KBUILD_MODNAME to allow AUN and econet prefixes.
      Convert printks with KERN_DEBUG to pr_debug.
      Hoist assigns from if.
      80 column wrapping.
      Move open braces to end of line.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ee9c88f2