Re: lksctp-tools:sctp_test fails when not using sock_stream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/10/2015 03:07 AM, kunapaneni prashanth wrote:
> Hi Vlad/Marcelo,
>  Thank you for the response.
> 
>  I am using kernel 3.10.0-123.20.1.el7.x86_64.
> 
>  I should give bit more details about my setup. My hosts H1 and H2 use
> special ethernet adapters which run openvswitch. Due to this, i
> believe there is initially bit more latency when connection is being
> established. I checked the packets and packets are delivered to other
> side without any errors.
> 
>  i am new to sctp, so i am not exactly sure how kernel part of sctp works.
> 
> While testing case 1 mentioned in my previous mail.
> 
> In Server side i see following:
> =====================
> 
> [root@localhost tmp]# sctp_test -h 5.5.5.8 -p 24241 -H 5.5.5.5 -P 24240 -l
> 
> remote:addr=5.5.5.8, port=24241, family=2
> local:addr=5.5.5.5, port=24240, family=2
> seed = 1441868236
> 
> Starting tests...
>     socket(SOCK_SEQPACKET, IPPROTO_SCTP)  ->  sk=3
>     bind(sk=3, [a:5.5.5.5,p:24240])  --  attempt 1/10
>     listen(sk=3,backlog=100)
> Server: Receiving packets.
>     recvmsg(sk=3)
> 
> Notification: SCTP_ASSOC_CHANGE(COMMUNICATION_UP)
>         (assoc_change: state=0, error=0, instr=10 outstr=10)
>     recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
>     recvmsg(sk=3) Notification: SCTP_ASSOC_CHANGE(COMMUNICATION_LOST)
>         (assoc_change: state=1, error=0, instr=0 outstr=0)
>     recvmsg(sk=3)
> 

Could you also provide the client side output as well..

Thanks
-vlad


> 
> TCPDUMP on Server side
> -------------------------------------
> 
> [root@localhost tmp]# tcpdump -i oct0
> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> listening on oct0, link-type EN10MB (Ethernet), capture size 65535 bytes
> 12:33:57.134221 IP 5.5.5.8.24241 > 5.5.5.5.24240: sctp (1) [INIT]
> [init tag: 3460584308] [rwnd: 106496] [OS: 10] [MIS: 65535] [init TSN:
> 2697986036]
> 12:33:57.135112 IP 5.5.5.5.24240 > 5.5.5.8.24241: sctp (1) [INIT ACK]
> [init tag: 3286358519] [rwnd: 106496] [OS: 10] [MIS: 10] [init TSN:
> 942498333]
> 12:33:57.135702 IP 5.5.5.8.24241 > 5.5.5.5.24240: sctp (1) [COOKIE
> ECHO] , (2) [DATA] (U)(B)(E) [TSN: 2697986036] [SID: 0] [SSEQ 0] [PPID
> 0x122c861b]
> 12:33:57.136079 IP 5.5.5.5.24240 > 5.5.5.8.24241: sctp (1) [COOKIE
> ACK] , (2) [SACK] [cum ack 2697986036] [a_rwnd 106495] [#gap acks 0]
> [#dup tsns 0]
> 12:33:57.136415 IP 5.5.5.8.24241 > 5.5.5.5.24240: sctp (1) [ABORT]
> 
> 
> 
> 
> 
> 
> I  am assuming below is the sequence in Client side.
> =====================================
>  when using "sctp_test -h 5.5.5.8 -p 24241 -H 5.5.5.5 -P 24240 -l"
> 
> 1. sctp_test calls sendmsg.
> 2. Kernel initiates a handshake.
> 3. sctp_test sends all the packets and closes the socket before
> handshake is complete.
> 4. Kernel sends a abort packet due to socket close without completing
> the transfer of packets.
> 
> 
> Just to confirm if above theory is correct, i increased the number of
> packets to be sent by sctp_test using following command.
> 
> "sctp_test -H 5.5.5.8 -P 24241 -h 5.5.5.5 -p 24240 -s -x 30"
> 
> I assume in this case, since sctp_test takes more time to send all the
> packets, kernel has enough time to complete the handshake.
> 
> This test passed always.
> 
>  so is the theory that sctp_test is closing socket  too fast  correct?
> 
>  if so, shouldn't the kernel complete the connection initiation,
> transfer packet before closing the connection even when socket close
> is called too fast.
> 
> Thanks,
> Prashanth
> 
> 
> On Thu, Sep 10, 2015 at 2:49 AM, Vlad Yasevich <vyasevich@xxxxxxxxx> wrote:
>> On 09/09/2015 04:13 AM, kunapaneni prashanth wrote:
>>> Hi,
>>>  in our setup, i am trying out sctp tests using lksctp tools between
>>> two hosts connected back to back.
>>>
>>> H1(5.5.5.8)  --------------   H2 (5.5.5.5)
>>>
>>>
>>> following are the commands i used.
>>>
>>> Case 1:
>>> =========
>>> client:
>>> sctp_test -H 5.5.5.8 -P 24241 -h 5.5.5.5 -p 24240 -s
>>>
>>> server:
>>> sctp_test -h 5.5.5.8 -p 24241 -H 5.5.5.5 -P 24240 -l
>>>
>>>
>>> This test case fails, with client sending a abort after INIT/INIT-ACK.
>>>
>>> If i run same test case with "-T" option, it is successful.
>>
>> The test runs fine in my environment.  Which kernel are you using?
>>
>>>
>>> i,e
>>> Case 2:
>>> ========
>>> client:
>>> sctp_test -H 5.5.5.8 -P 24241 -h 5.5.5.5 -p 24240 -s -T
>>>
>>> server:
>>> sctp_test -h 5.5.5.8 -p 24241 -H 5.5.5.5 -P 24240 -l
>>>
>>>
>>>
>>>
>>> i observed that in case 1, sctp_test never calls "connect", why is it
>>> so? shouldnt a connect be called.
>>>
>>
>> No, the connect is not required when using SOCK_SEQPACKET sockets and
>> that is what the test tries to do.  Forcing it to always connect isn't
>> the right thing.  You need to figure our why you are getting an ABORT.
>>
>> -vlad
>>
>>>
>>>
>>> I modified the code as follows to make sure a connect is issued. After
>>> this everything works fine.
>>>
>>> Please confirm.
>>>
>>> 1386c1386
>>> <         if (socket_type == SOCK_STREAM || connectx_count == 0)
>>> ---
>>>>         if (socket_type == SOCK_STREAM && connectx_count == 0)
>>>
>>>
>>
>>
>>> Thank you,
>>> Prashanth
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux