1. 06 3月, 2008 1 次提交
    • G
      SCTP: Fix chunk parameter processing bug · 140ee960
      Gui Jianfeng 提交于
      If an address family is not listed in "Supported Address Types"
      parameter(INIT Chunk), but the packet is sent by that family, this
      address family should be considered as supported by peer.  Otherwise,
      an error condition will occur. For instance, if kernel receives an
      IPV6 SCTP INIT chunk with "Support Address Types" parameter which
      indicates just supporting IPV4 Address family. Kernel will reply an
      IPV6 SCTP INIT ACK packet, but the source ipv6 address in ipv6 header
      will be vacant. This is not correct.
      
      refer to RFC4460 as following:
            IMPLEMENTATION NOTE: If an SCTP endpoint lists in the 'Supported
            Address Types' parameter either IPv4 or IPv6, but uses the other
            family for sending the packet containing the INIT chunk, or if it
            also lists addresses of the other family in the INIT chunk, then
            the address family that is not listed in the 'Supported Address
            Types' parameter SHOULD also be considered as supported by the
            receiver of the INIT chunk.  The receiver of the INIT chunk SHOULD
            NOT respond with any kind of error indication.
      
      Here is a fix to comply to RFC.
      Signed-off-by: NGui Jianfeng <guijianfeng@cn.fujitsu.com>
      Acked-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      140ee960
  2. 07 2月, 2008 1 次提交
  3. 05 2月, 2008 1 次提交
  4. 01 2月, 2008 1 次提交
  5. 29 1月, 2008 5 次提交
  6. 09 1月, 2008 1 次提交
  7. 21 12月, 2007 1 次提交
  8. 29 11月, 2007 2 次提交
  9. 10 11月, 2007 1 次提交
  10. 08 11月, 2007 4 次提交
  11. 27 10月, 2007 1 次提交
  12. 24 10月, 2007 1 次提交
  13. 23 10月, 2007 2 次提交
  14. 11 10月, 2007 5 次提交
    • V
      [SCTP]: Tie ADD-IP and AUTH functionality as required by spec. · 6b2f9cb6
      Vlad Yasevich 提交于
      ADD-IP spec requires AUTH. It is, in fact, dangerous without AUTH.
      So, disable ADD-IP functionality if the peer claims to support
      ADD-IP, but not AUTH.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6b2f9cb6
    • V
      [SCTP]: Enable the sending of the AUTH chunk. · 4cd57c80
      Vlad Yasevich 提交于
      SCTP-AUTH, Section 6.2:
      
         Endpoints MUST send all requested chunks authenticated where this has
         been requested by the peer.  The other chunks MAY be sent
         authenticated or not.  If endpoint pair shared keys are used, one of
         them MUST be selected for authentication.
      
         To send chunks in an authenticated way, the sender MUST include these
         chunks after an AUTH chunk.  This means that a sender MUST bundle
         chunks in order to authenticate them.
      
         If the endpoint has no endpoint pair shared key for the peer, it MUST
         use Shared Key Identifier 0 with an empty endpoint pair shared key.
         If there are multiple endpoint shared keys the sender selects one and
         uses the corresponding Shared Key Identifier
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4cd57c80
    • V
      [SCTP]: Implete SCTP-AUTH parameter processing · 730fc3d0
      Vlad Yasevich 提交于
      Implement processing for the CHUNKS, RANDOM, and HMAC parameters and
      deal with how this parameters are effected by association restarts.
      In particular, during unexpeted INIT processing, we need to reply with
      parameters from the original INIT chunk.  Also, after restart, we need
      to update the old association with new peer parameters and change the
      association shared keys.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      730fc3d0
    • V
      [SCTP]: Implement the Supported Extensions Parameter · 131a47e3
      Vlad Yasevich 提交于
      SCTP Supported Extenions parameter is specified in Section 4.2.7
      of the ADD-IP draft (soon to be RFC).  The parameter is
      encoded as:
      
            0                   1                   2                   3
            0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |     Parameter Type = 0x8008   |      Parameter Length         |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           | CHUNK TYPE 1  |  CHUNK TYPE 2 |  CHUNK TYPE 3 |  CHUNK TYPE 4 |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |                             ....                              |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           | CHUNK TYPE N  |      PAD      |      PAD      |      PAD      |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      
      It contains a list of chunks that a particular SCTP extension
      uses.  Current extensions supported are Partial Reliability
      (FWD-TSN) and ADD-IP (ASCONF and ASCONF-ACK).
      
      When implementing new extensions (AUTH, PKT-DROP, etc..), new
      chunks need to be added to this parameter.  Parameter processing
      would be modified to negotiate support for these new features.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      131a47e3
    • A
      [SCTP]: Make sctp_addto_param() static. · 5c94bf86
      Adrian Bunk 提交于
      sctp_addto_param() can become static.
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5c94bf86
  15. 26 9月, 2007 1 次提交
  16. 17 9月, 2007 1 次提交
  17. 31 8月, 2007 2 次提交
    • W
      SCTP: Fix to handle invalid parameter length correctly · cb243a1a
      Wei Yongjun 提交于
      If an INIT with invalid parameter length look like this:
      Parameter Type : 1
      Parameter Length: 800
      and not contain any payload, SCTP will ignore this  parameter and send
      back a INIT-ACK.
      This patch is fix to handle this invalid parameter length correctly.
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      cb243a1a
    • W
      SCTP: Fix to encode PROTOCOL VIOLATION error cause correctly · 00f1c2df
      Wei Yongjun 提交于
      PROTOCOL VIOLATION error cause in ABORT is bad encode when make abort
      chunk. When SCTP encode ABORT chunk with PROTOCOL VIOLATION error cause,
      it just add the error messages to PROTOCOL VIOLATION error cause, the
      rest four bytes(struct sctp_paramhdr) is just add to the chunk, not
      change the length of error cause. This cause the ABORT chunk to be a bad
      format. The chunk is like this:
      
      ABORT chunk
        Chunk type: ABORT (6)
        Chunk flags: 0x00
        Chunk length: 72 (*1)
        Protocol violation cause
          Cause code: Protocol violation (0x000d)
          Cause length: 62 (*2)
          Cause information: 5468652063756D756C61746976652074736E2061636B2062...
          Cause padding: 0000
      [Needless] 00030010
      Chunk Length(*1) = 72 but Cause length(*2) only 62, not include the
      extend 4 bytes.
      ((72 - sizeof(chunk_hdr)) = 68) != (62 +3) / 4 * 4
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      00f1c2df
  18. 30 8月, 2007 2 次提交
  19. 02 8月, 2007 1 次提交
  20. 01 8月, 2007 2 次提交
  21. 05 5月, 2007 1 次提交
    • V
      [SCTP]: Set assoc_id correctly during INIT collision. · 07d93967
      Vlad Yasevich 提交于
      During the INIT/COOKIE-ACK collision cases, it's possible to get
      into a situation where the association id is not yet set at the time
      of the user event generation.  As a result, user events have an
      association id set to 0 which will confuse applications.
      
      This happens if we hit case B of duplicate cookie processing.
      In the particular example found and provided by Oscar Isaula
      <Oscar.Isaula@motorola.com>, flow looks like this:
      A				B
      ---- INIT------->  (lost)
      	    <---------INIT------
      ---- INIT-ACK--->
      	    <------ Cookie ECHO
      
      When the Cookie Echo is received, we end up trying to update the
      association that was created on A as a result of the (lost) INIT,
      but that association doesn't have the ID set yet.
      Signed-off-by: NVlad Yasevich <vladislav.yasevich@hp.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      07d93967
  22. 26 4月, 2007 3 次提交