1. 01 Sep, 2010 22 commits
  2. 31 Aug, 2010 8 commits
  3. 30 Aug, 2010 10 commits
    • Eric Dumazet's avatar
      ipv6: struct xfrm6_tunnel in read_mostly section · 3ff2cfa5
      Eric Dumazet authored
      tunnel6_handlers chain being scanned for each incoming packet,
      make sure it doesnt share an often dirtied cache line.
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3ff2cfa5
    • Eric Dumazet's avatar
      net: struct xfrm_tunnel in read_mostly section · 6dcd814b
      Eric Dumazet authored
      tunnel4_handlers chain being scanned for each incoming packet,
      make sure it doesnt share an often dirtied cache line.
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6dcd814b
    • Geert Uytterhoeven's avatar
      net/m68k: Hydra Ethernet - print whole resource instead of start address · c274f291
      Geert Uytterhoeven authored
      resource_size_t changed from `unsigned long' to `phys_addr_t`, which is either
      `u32' or `u64'.
      Print the whole resource to remove the cast and to make it future-proof.
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c274f291
    • Gerrit Renker's avatar
      TCP: update initial windows according to RFC 5681 · 3d5b99ae
      Gerrit Renker authored
      This updates the use of larger initial windows, as originally specified in
      RFC 3390, to use the newer IW values specified in RFC 5681, section 3.1.
      
      The changes made in RFC 5681 are:
       a) the setting now is more clearly specified in units of segments (as the
          comments  by John Heffner emphasized, this was not very clear in RFC 3390);
       b) for connections with 1095 < SMSS <= 2190 there is now a change:
          - RFC 3390 says that IW <= 4380,
          - RFC 5681 says that IW = 3 * SMSS <= 6570.
      
      Since RFC 3390 is older and "only" proposed standard, whereas the newer RFC 5681
      is already draft standard, it seems preferable to use the newer IW variant.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3d5b99ae
    • Gerrit Renker's avatar
      dccp ccid-3: use per-route RTO or TCP RTO as fallback · 89858ad1
      Gerrit Renker authored
      This makes RTAX_RTO_MIN also available to CCID-3, replacing the compile-time
      RTO lower bound with a per-route tunable value.
      
      The original Kconfig option solved the problem that a very low RTT (in the
      order of HZ) can trigger too frequent and unnecessary reductions of the
      sending rate.
      
      This tunable does not affect the initial RTO value of 2 seconds specified in
      RFC 5348, section 4.2 and Appendix B. But like the hardcoded Kconfig value,
      it allows to adapt to network conditions.
      
      The same effect as the original Kconfig option of 100ms is now achieved by
      
      > ip route replace to unicast 192.168.0.0/24 rto_min 100j dev eth0
      
      (assuming HZ=1000).
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      89858ad1
    • Gerrit Renker's avatar
      dccp ccid-2: Share TCP's minimum RTO code · 4886fcad
      Gerrit Renker authored
      Using a fixed RTO_MIN of 0.2 seconds was found to cause problems for CCID-2
      over 802.11g: at least once per session there was a spurious timeout. It
      helped to then increase the the value of RTO_MIN over this link.
      
      Since the problem is the same as in TCP, this patch makes the solution from
      commit "05bb1fad"
             "[TCP]: Allow minimum RTO to be configurable via routing metrics."
      available to DCCP.
      
      This avoids reinventing the wheel, so that e.g. the following works in the
      expected way now also for CCID-2:
      
      > ip route change 10.0.0.2 rto_min 800 dev ath0
      
      Luckily this useful rto_min function was recently moved to net/tcp.h,
      which simplifies sharing code originating from TCP.
      
      Documentation also updated (plus minor whitespace fixes).
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4886fcad
    • Gerrit Renker's avatar
      tcp/dccp: Consolidate common code for RFC 3390 conversion · 22b71c8f
      Gerrit Renker authored
      This patch consolidates initial-window code common to TCP and CCID-2:
       * TCP uses RFC 3390 in a packet-oriented manner (tcp_input.c) and
       * CCID-2 uses RFC 3390 in packet-oriented manner (RFC 4341).
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      22b71c8f
    • Gerrit Renker's avatar
      dccp ccid-2: Remove wrappers around sk_{reset,stop}_timer() · d26eeb07
      Gerrit Renker authored
      This removes the wrappers around the sk timer functions, since not much is
      gained from using them: the BUG_ON in start_rto_timer will never trigger
      since that function is called only if:
      
       * the RTO timer expires (rto_expire, and then timer_pending() is false);
       * in tx_packet_sent only if !timer_pending() (BUG_ON is redundant here);
       * previously in new_ack, after stopping the timer (timer_pending() false).
      
      Removing the wrappers also clears the way for eventually replacing the
      RTO timer with the icsk-retransmission-timer, as it is already part of the
      DCCP socket.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d26eeb07
    • Gerrit Renker's avatar
      dccp ccid-2: Use u32 timestamps uniformly · d82b6f85
      Gerrit Renker authored
      Since CCID-2 is de facto a mini implementation of TCP, it makes sense to share
      as much code as possible.
      
      Hence this patch aligns CCID-2 timestamping with TCP timestamping.
      This also halves the space consumption (on 64-bit systems).
      
      The necessary include file <net/tcp.h> is already included by way of
      net/dccp.h. Redundant includes have been removed.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d82b6f85
    • Jerry Chu's avatar
      tcp: Add TCP_USER_TIMEOUT socket option. · dca43c75
      Jerry Chu authored
      This patch provides a "user timeout" support as described in RFC793. The
      socket option is also needed for the the local half of RFC5482 "TCP User
      Timeout Option".
      
      TCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int,
      when > 0, to specify the maximum amount of time in ms that transmitted
      data may remain unacknowledged before TCP will forcefully close the
      corresponding connection and return ETIMEDOUT to the application. If
      0 is given, TCP will continue to use the system default.
      
      Increasing the user timeouts allows a TCP connection to survive extended
      periods without end-to-end connectivity. Decreasing the user timeouts
      allows applications to "fail fast" if so desired. Otherwise it may take
      upto 20 minutes with the current system defaults in a normal WAN
      environment.
      
      The socket option can be made during any state of a TCP connection, but
      is only effective during the synchronized states of a connection
      (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, or LAST-ACK).
      Moreover, when used with the TCP keepalive (SO_KEEPALIVE) option,
      TCP_USER_TIMEOUT will overtake keepalive to determine when to close a
      connection due to keepalive failure.
      
      The option does not change in anyway when TCP retransmits a packet, nor
      when a keepalive probe will be sent.
      
      This option, like many others, will be inherited by an acceptor from its
      listener.
      Signed-off-by: default avatarH.K. Jerry Chu <hkchu@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dca43c75