1. 04 9月, 2008 1 次提交
    • G
      dccp: Limit feature negotiation to connection setup phase · 5591d286
      Gerrit Renker 提交于
      This patch starts the new implementation of feature negotiation:
       1. Although it is theoretically possible to perform feature negotiation at any
          time (and RFC 4340 supports this), in practice this is prohibitively complex,
          as it requires to put traffic on hold for each new negotiation.
       2. As a byproduct of restricting feature negotiation to connection setup, the
          feature-negotiation retransmit timer is no longer required. This part is now
          mapped onto the protocol-level retransmission.
          Details indicating why timers are no longer needed can be found on
          http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/feature_negotiation/\
      	                                      implementation_notes.html
      
      This patch disables anytime negotiation, subsequent patches work out full
      feature negotiation support for connection setup.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      5591d286
  2. 26 7月, 2008 2 次提交
    • G
      dccp: Allow to distinguish original and retransmitted packets · 59435444
      Gerrit Renker 提交于
      This patch allows the sender to distinguish original and retransmitted packets,
      which is in particular needed for the retransmission of DCCP-Requests:
       * the first Request uses ISS (generated in net/dccp/ip*.c), and sets GSS = ISS;
       * all retransmitted Requests use GSS' = GSS + 1, so that the n-th retransmitted
         Request has sequence number ISS + n (mod 48).
      
      To add generic support, the patch reorganises existing code so that:
       * icsk_retransmits == 0     for the original packet and
       * icsk_retransmits = n > 0  for the n-th retransmitted packet
      at the time dccp_transmit_skb() is called, via dccp_retransmit_skb().
       
      Thanks to Wei Yongjun for pointing this problem out.
      
      Further changes:
      ----------------
       * removed the `skb' argument from dccp_retransmit_skb(), since sk_send_head
         is used for all retransmissions (the exception is client-Acks in PARTOPEN
         state, but these do not use sk_send_head);
       * since sk_send_head always contains the original skb (via dccp_entail()),
         skb_cloned() never evaluated to true and thus pskb_copy() was never used.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      59435444
    • I
      net: convert BUG_TRAP to generic WARN_ON · 547b792c
      Ilpo Järvinen 提交于
      Removes legacy reinvent-the-wheel type thing. The generic
      machinery integrates much better to automated debugging aids
      such as kerneloops.org (and others), and is unambiguous due to
      better naming. Non-intuively BUG_TRAP() is actually equal to
      WARN_ON() rather than BUG_ON() though some might actually be
      promoted to BUG_ON() but I left that to future.
      
      I could make at least one BUILD_BUG_ON conversion.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      547b792c
  3. 17 7月, 2008 1 次提交
  4. 29 1月, 2008 1 次提交
  5. 11 10月, 2007 1 次提交
  6. 26 3月, 2007 1 次提交
  7. 10 3月, 2007 1 次提交
  8. 11 2月, 2007 1 次提交
  9. 12 12月, 2006 1 次提交
  10. 03 12月, 2006 3 次提交
    • G
      [DCCP]: Remove forward declarations in timer.c · 4ed800d0
      Gerrit Renker 提交于
      This removes 3 forward declarations by reordering 2 functions.
      
      No code change at all.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      4ed800d0
    • G
      [DCCP]: Add sysctls to control retransmission behaviour · 2e2e9e92
      Gerrit Renker 提交于
      This adds 3 sysctls which govern the retransmission behaviour of DCCP control
      packets (3way handshake, feature negotiation).
      
      It removes 4 FIXMEs from the code.
      
      The close resemblance of sysctl variables to their TCP analogues is emphasised
      not only by their name, but also by giving them the same initial values.
      This is useful since there is not much practical experience with DCCP yet.
      
      Furthermore, with regard to the previous patch, it is now possible to limit
      the number of keepalive-Responses by setting net.dccp.default.request_retries
      (also a bit like in TCP).
      
      Lastly, added documentation of all existing DCCP sysctls.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      2e2e9e92
    • G
      [DCCP]: Update comments on precisely which packets can be retransmitted · 08a29e41
      Gerrit Renker 提交于
      This updates program documentation: spell out precise conditions about
      which packets are eligible for retransmission (which is actually quite
      hard to extract from RFC 4340).
      
      It is based on the following table derived from RFC 4340:
      
      +-----------+---------------------------------+---------------------+
      |   Type    | Retransmit?                     |  Remark             |
      +-----------+---------------------------------+---------------------+
      | Request   |  in client-REQUEST state        | sec. 8.1.1          |
      | Response  |  NEVER                          | SHOULD NOT, 8.1.3   |
      | Data      |  NEVER                          | unreliable protocol |
      | Ack       |  possible in client-PARTOPEN    | sec. 8.1.5          |
      | DataAck   |  NEVER                          | unreliable protocol |
      | CloseReq  |  only in server-CLOSEREQ state  | MUST, sec. 8.3      |
      | Close     |  in node-CLOSING state          | MUST, sec. 8.3      |
      +-----------+-------------------------------------------------------+
      | Reset     |  only in response to other packets                    |
      | Sync      |  only in response to sequence-invalid packets (7.5.4) |
      | SyncAck   |  only in response to Sync packets                     |
      +-----------+-------------------------------------------------------+
      
      Hence the only packets eligible for retransmission are:
             * Requests in client-REQUEST  state (sec. 8.1.1)
             * Acks     in client-PARTOPEN state (sec. 8.1.5)
             * CloseReq in server-CLOSEREQ state (sec. 8.3)
             * Close    in   node-CLOSING  state (sec. 8.3)
      
      I had meant to put in a check for these types too, but have left that
      for later.
      Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      08a29e41
  11. 01 7月, 2006 1 次提交
  12. 21 3月, 2006 2 次提交
  13. 30 8月, 2005 4 次提交