1. 29 11月, 2009 1 次提交
    • A
      sctp: on T3_RTX retransmit all the in-flight chunks · 5fdd4bae
      Andrei Pelinescu-Onciul 提交于
      When retransmitting due to T3 timeout, retransmit all the
      in-flight chunks for the corresponding  transport/path, including
      chunks sent less then 1 rto ago.
      This is the correct behaviour according to rfc4960 section 6.3.3
      E3 and
      "Note: Any DATA chunks that were sent to the address for which the
       T3-rtx timer expired but did not fit in one MTU (rule E3 above)
       should be marked for retransmission and sent as soon as cwnd
       allows (normally, when a SACK arrives). ".
      
      This fixes problems when more then one path is present and the T3
      retransmission of the first chunk that timeouts stops the T3 timer
      for the initial active path, leaving all the other in-flight
      chunks waiting forever or until a new chunk is transmitted on the
      same path and timeouts (and this will happen only if the cwnd
      allows sending new chunks, but since cwnd was dropped to MTU by
      the timeout => it will wait until the first heartbeat).
      
      Example: 10 packets in flight, sent at 0.1 s intervals on the
      primary path. The primary path is down and the first packet
      timeouts. The first packet is retransmitted on another path, the
      T3 timer for the primary path is stopped and cwnd is set to MTU.
      All the other 9 in-flight packets will not be retransmitted
      (unless more new packets are sent on the primary path which depend
      on cwnd allowing it, and even in this case the 9 packets will be
      retransmitted only after a new packet timeouts which even in the
      best case would be more then RTO).
      
      This commit reverts d0ce9291 and
      also removes the now unused transport->last_rto, introduced in
       b6157d8e.
      
      p.s  The problem is not only when multiple paths are there.  It
      can happen in a single homed environment.  If the application
      stops sending data, it possible to have a hung association.
      Signed-off-by: NAndrei Pelinescu-Onciul <andrei@iptel.org>
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fdd4bae
  2. 05 9月, 2009 1 次提交
  3. 14 3月, 2009 1 次提交
  4. 03 3月, 2009 1 次提交
  5. 23 1月, 2009 1 次提交
  6. 01 10月, 2008 4 次提交
  7. 23 7月, 2008 1 次提交
  8. 20 6月, 2008 1 次提交
    • V
      sctp: Follow security requirement of responding with 1 packet · 2e3216cd
      Vlad Yasevich 提交于
      RFC 4960, Section 11.4. Protection of Non-SCTP-Capable Hosts
      
      When an SCTP stack receives a packet containing multiple control or
      DATA chunks and the processing of the packet requires the sending of
      multiple chunks in response, the sender of the response chunk(s) MUST
      NOT send more than one packet.  If bundling is supported, multiple
      response chunks that fit into a single packet MAY be bundled together
      into one single response packet.  If bundling is not supported, then
      the sender MUST NOT send more than one response chunk and MUST
      discard all other responses.  Note that this rule does NOT apply to a
      SACK chunk, since a SACK chunk is, in itself, a response to DATA and
      a SACK does not require a response of more DATA.
      
      We implement this by not servicing our outqueue until we reach the end
      of the packet.  This enables maximum bundling.  We also identify
      'response' chunks and make sure that we only send 1 packet when sending
      such chunks.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e3216cd
  9. 05 6月, 2008 2 次提交
  10. 18 4月, 2008 1 次提交
  11. 13 4月, 2008 2 次提交
  12. 06 3月, 2008 1 次提交
  13. 01 3月, 2008 1 次提交
  14. 07 2月, 2008 1 次提交
  15. 05 2月, 2008 1 次提交
  16. 29 1月, 2008 1 次提交
  17. 10 11月, 2007 1 次提交
    • V
      SCTP: Always flush the queue when uncorcking. · 7d54dc68
      Vlad Yasevich 提交于
      When the code calls uncork, trigger a queue flush, even
      if the queue was not corked.  Most callers that explicitely
      cork the queue will have additinal checks to see if they 
      corked it.  Callers who do not cork the queue expect packets
      to flow when they call uncork.
      
      The scneario that showcased this bug happend when we were not
      able to bundle DATA with outgoing COOKIE-ECHO.  As a result
      the data just sat in the outqueue and did not get transmitted.
      The application expected a response, but nothing happened.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      7d54dc68
  18. 08 11月, 2007 2 次提交
  19. 31 8月, 2007 1 次提交
  20. 26 4月, 2007 1 次提交
  21. 27 2月, 2007 1 次提交
    • V
      [SCTP]: Fix connection hang/slowdown with PR-SCTP · 8c4a2d41
      Vlad Yasevich 提交于
      The problem that this patch corrects happens when all of the following
      conditions are satisfisfied:
       1.  PR-SCTP is used and the timeout on the chunks is set below RTO.Max.
       2.  One of the paths on a multihomed associations is brought down.
      
      In this scenario, data will expire within the rto of the initial
      transmission and will never be retransmitted.  However this data still
      fills the send buffer and is counted against the association as outstanding
      data.  This causes any new data not to be sent and retransmission to not
      happen.
      
      The fix is to discount the abandoned data from the outstanding count and
      peers rwnd estimation.  This allows new data to be sent and a retransmission
      timer restarted.  Even though this new data will most likely expire within
      the rto, the timer still counts as a strike against the transport and forces
      the FORWARD-TSN chunk to be retransmitted as well.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NSridhar Samudrala <sri@us.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8c4a2d41
  22. 11 2月, 2007 1 次提交
  23. 03 12月, 2006 2 次提交
  24. 30 9月, 2006 1 次提交
  25. 23 9月, 2006 1 次提交
  26. 22 7月, 2006 1 次提交
  27. 18 6月, 2006 1 次提交
  28. 03 2月, 2006 1 次提交
  29. 09 7月, 2005 1 次提交
  30. 21 6月, 2005 1 次提交
  31. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4