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

Re: [MirageOS-devel] More troubles with tcp on ARM



On Thu, Apr 09, 2015 at 10:18:53PM +0200, Magnus Therning wrote:
[...]

> 
> It works fine in Unix mode, both on x86 and on my cubietruck board.
> When built in Xen mode though it doesn't work as well.
> 
> When run in Unix mode I see the expected behaviour:
> 
>   shell                                         my server console
>   -----                                         -----------------
>   % echo hello | ncat -4 -u localhost 18081 ->  udp: 127.0.0.1:46507
>                                                  udp: 6 - hello
> 
>   % echo hello | ncat -4 localhost 18080    ->  tcp: 127.0.0.1:59888
>   hello                                          6 - hello
> 
>   % echo foobar | ncat -4 localhost 18080   ->  tcp: 127.0.0.1:59888
>   foobar                                         6 - foobar

That last line should of course read

  foobar                                         7 - foobar

That was caused by a copy-paste mistake of mine.

> When running the server in a VM on ARM I see the same behaviour for
> UDP, but for TCP it changes.
> 
>   shell                                         my server console
>   -----                                         -----------------
>   % echo hello | ncat -4 -u localhost 18081 ->  udp: 127.0.0.1:46507
>                                                  udp: 6 - hello
> 
>   % echo hello | ncat -4 localhost 18080    ->  tcp: 127.0.0.1:59888
>                                                  6 -
>                                                  6 -

And here there are even more copy-paste mistakes.  I must have been
tired yesterday.  Just disregard the `localhost` and `127.0.0.1`, that
should of course be the IPs of my cubietruck and my PC, respectively.

I did a little bit more testing of this just now, and found something
surprising.  This is against a VM on ARM:

~~~
% echo thisisalongerstring | ncat -4 192.168.0.33 18080
alongerstring

->

tcp: 192.168.0.11:48731
 6 - 
 14 - alongerstring
~~~

and

~~~
% echo thisisalongerstringandthisislongerstill | ncat -4 192.168.0.33 18080
alongerstringandthisislongerstill

->

tcp: 192.168.0.11:48732
 6 - 
 34 - alongerstringandthisislongerstill
~~~

and if I send a string that is shorter than 6 characters (I'm guessing
including the trailing \r\n), then `ncat` hangs and on the ARM I only
see a single line of "length - content":

~~~
tcp: 192.168.0.11:48766
 6 -
~~~

I do wonder where those initial 6 characters go...

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4 
email: magnus@xxxxxxxxxxxx   jabber: magnus@xxxxxxxxxxxx
twitter: magthe               http://therning.org/magnus

"Sendmail" and "make" are two well known programs that are pretty widely
regarded as being debugged into existence. That's why their command
languages are so poorly thought out and difficult to learn.  It's not
just you -- everyone finds them troublesome.
     -- Peter van der Linden, Expert C Programming, p. 220

Attachment: pgp3VT6jcEgOm.pgp
Description: PGP signature

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.