Hi,
I have also seen "connect(): connection timeout for basically ipv6 " behavior 
for  networking/stress/tcp testcase 
i.e.

tcp6-multi-sameport12 0 TINFO : - Test duration is 120 [sec]
tcp6-multi-sameport12 0 TINFO : - Target number of the connection is 128
tcp6-multi-sameport12 0 TINFO : - Version of IP is IPv6
tcp6-multi-sameport12 0 TINFO : - Network delay is 600ms +/- 200ms
tcp6-multi-sameport12 0 TINFO : - IPsec [ ESP / tunnel ]
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out
connect(): Connection timed out

This behavior is not due testcase but its due to kernel. So I did some code 
changes in Linux kernel 3.2 i.e. mentioned below

In /net/ipv6/ip6_output.c

int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
                               dst->dev, dst_output);
        }

-       net_dbg_ratelimited("IPv6: sending pkt_too_big to self\n");
        skb->dev = dst->dev;
-       icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
+       ipv6_local_error(sk, EMSGSIZE, fl6, mtu);
        IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS);
        kfree_skb(skb);
        return -EMSGSIZE;


After above mentioned code changes all networking/stress/tcp testcase gets PASS.

Thanks and Regards,
Bhushan 


-----Original Message-----
From: Hangbin Liu [mailto:[email protected]] 
Sent: Monday, July 01, 2013 2:01 PM
To: Jan Stancek
Cc: ltp-list
Subject: Re: [LTP] [PATCH] networking/stress/tcp: make sure we will kill the 
test case after timeout

Hi Jan,
The problem is the connection won't  fail, but only need too much time. For 
example:
On a guest:  on cpu process, 2G memory
# for i in `seq 4000`; do ./ns-tcpclient -b -f 4 -S 10.66.87.216 -p 9999; echo 
"The $i connection : `date`"; done The 1 connection : Mon Jul  1 04:03:05 EDT 
2013 The 2 connection : Mon Jul  1 04:03:05 EDT 2013 The 3 connection : Mon Jul 
 1 04:03:05 EDT 2013 The 4 connection : Mon Jul  1 04:03:06 EDT 2013 <snip> The 
19 connection : Mon Jul  1 04:04:46 EDT 2013 <snip> The 30 connection : Mon Jul 
 1 04:06:34 EDT 2013 The 31 connection : Mon Jul  1 04:07:52 EDT 2013 <snip> 
The 45 connection : Mon Jul  1 04:10:11 EDT 2013 <snip> The 50 connection : Mon 
Jul  1 04:12:05 EDT 2013

You can saw we took 9 minutes to set up 50 tcp connections.

But on a powerful physical machine,
The 1 connection : Mon Jul  1 04:21:08 EDT 2013 The 2 connection : Mon Jul  1 
04:21:08 EDT 2013 <snip> The 499 connection : Mon Jul  1 04:24:35 EDT 2013 The 
500 connection : Mon Jul  1 04:24:35 EDT 2013

It only use 3 minutest to set up 500 connections.

So we can't just continue on success, but should check the time after some 
connections.

Thanks and Best regards
Hangbin Liu

2013/6/28 Jan Stancek <[email protected]>:
>
>
> ----- Original Message -----
>> From: "Hangbin Liu" <[email protected]>
>> To: "Jan Stancek" <[email protected]>
>> Sent: Friday, 28 June, 2013 11:30:02 AM
>> Subject: Re: [LTP] [PATCH] networking/stress/tcp: make sure we will 
>> kill the test case after timeout
>>
>
> Hangbin,
>
> just fyi, your replies are not going to list.
>
>> Opps, My mistake.  Didn't find there is a sleep 1...
>>
>> I will send another patch for this issue. How about check 
>> $connection_num every 100 times. like
>
> I'd go with new variable to count each attempt, not just successful ones.
>
> Or something like this (on top your patch):
> Skip the sleep and continue on success, if we hit issue sleep and retry as 
> watchdog allows.
>
> diff --git 
> a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport01 
> b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport01
> index 206a0d1..649c60b 100644
> --- 
> a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport01
> +++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport0
> +++ 1
> @@ -351,9 +351,10 @@ while true ; do
>                         fi
>                         # Failed to start a client
>                         tst_resm TINFO "$connection_num seems the maximum 
> number of the client"
> -                       break
> +               else
> +                       connection_num=`expr $connection_num + 1`
> +                       continue;
>                 fi
> -               connection_num=`expr $connection_num + 1`
>         fi
>
>      current_epoc=`date +%s`
>
> Regards,
> Jan
>
>>
>> --- 
>> a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport01
>> +++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport
>> +++ 01
>> @@ -340,7 +340,7 @@ connection_num=0
>>  start_epoc=`date +%s`
>>  while true ; do
>>         # Making connections
>> -       if [ $connection_num -lt $CONNECTION_TOTAL ]; then
>> +       while [ $connection_num -lt $CONNECTION_TOTAL ]; do
>>                 # Run a client
>>                 ret=`$LTP_RSH $RHOST
>> ${LTPROOT}/testcases/bin/ns-tcpclient -b -f $IP_VER -S $lhost_addr -p 
>> $server_port' ; ec
>>                 if [ $ret -ne 0 ]; then @@ -354,7 +354,12 @@ while 
>> true ; do
>>                         break
>>                 fi
>>                 connection_num=`expr $connection_num + 1`
>> -       fi
>> +
>> +               # check timeout every 100 times
>> +               if [ $(($connection_num % 100)) -eq 0 ];then
>> +                       break
>> +               fi
>> +       done
>>
>>      current_epoc=`date +%s`
>>      elapse_epoc=`expr $current_epoc - $start_epoc`
>>
>> 2013/6/28 Jan Stancek <[email protected]>:
>> >
>> >
>> >
>> >
>> > ----- Original Message -----
>> >> From: "Hangbin Liu" <[email protected]>
>> >> To: "Jan Stancek" <[email protected]>
>> >> Sent: Friday, 28 June, 2013 8:36:05 AM
>> >> Subject: Re: [LTP] [PATCH] networking/stress/tcp: make sure we 
>> >> will kill the test case after timeout
>> >>
>> >> No, we can set up $CONNECTION_TOTAL connections as soon as 
>> >> possible, and also transmit tcp data at the same time.
>> >
>> > Where does this happen?
>> >
>> > I'm looking at the while loop, and I see it creates 1 connection 
>> > each iteration, then it sleeps for 1 second.
>> >
>> > Am I missing something here?
>> >
>> > while true ; do
>> >         # Making connections
>> >         if [ $connection_num -lt $CONNECTION_TOTAL ]; then
>> >                 # make new connection
>> >                 ...
>> >                 connection_num=`expr $connection_num + 1`
>> >         fi
>> >
>> >     # check time
>> >     ...
>> >     sleep 1
>> > done
>> >
>> > Regards,
>> > Jan
>>

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to