RTEMS 4.9.5 vs 4.10.2 Network Stack

SAeeD salpha.2004 at gmail.com
Mon Aug 27 21:32:53 UTC 2012


As I traced the execution of RTEMS 4.10.2 with a simple TCP client
application on QEMU, I got this experimental:
After setting up a TCP server in PC, I executed the TCP client on Mini2440
and traced the execution. A socket is created with socket descriptor #3.
Every thing seems fine but when calling function "connect", after a long
time hanging on the line 161 of the following context (rtems_syscall.c
where function "connect" if implemented.), an error numbered #116 happens
and I got out of the loop and return -1 as the return value of function
"connect". This is the context:

160    while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) {
161        error = soconnsleep (so);
162        if (error)
163            break;
164    }
165    if (error == 0) {
166        error = so->so_error;
167        so->so_error = 0;
168    }
169    bad:
170    so->so_state &= ~SS_ISCONNECTING;
171    m_freem (nam);
172    if (error)
173        errno = error;
174    else
175        ret = 0;
176    rtems_bsdnet_semaphore_release ();
177    return ret;

What could be the possible problem? What is the meaning of error #116?

I think I should also mention that when sniffing packets on telnetd
application, Mini2440 (which was running RTEMS 4.10.2) did not respond to
ARP requests from my PC. After I manipulated my PC's ARP table manually,
then Mini2440 didn't respond to my PC's TCP Syn packets so telnetd didn't
work too.

Thanks for any hint
SAeeD

On Sun, Aug 26, 2012 at 6:37 PM, Joel Sherrill <Joel.Sherrill at oarcorp.com>wrote:

>  How do they fail? As far as I can remember, there are no network related changes between those versions. This may be a side effect of something else.
>
> SAeeD <salpha.2004 at gmail.com> wrote:
>
>
>  I must mention that I configured and compiled both version using
> --enable-networking and --enable-posix options.
>
> On Sun, Aug 26, 2012 at 1:55 PM, SAeeD <salpha.2004 at gmail.com> wrote:
>
>> Dear all,
>>
>> I'm currently running network-demos on Mini2440 BSP.
>> What makes me wonder is that various network-demos samples (like telnetd,
>> http, netdemo) works on RTEMS 4.9.5 but not on RTEMS 4.10.2.
>> The point is that both versions have the same network device driver. (As
>> their c/src/lib/libbsp/arm/mini2440/network/network.c files are the same.)
>> Also, I was able to send UDP packets in both versions so I think the
>> problem is not related to device drivers. One more evidence: The demos for
>> 4.10.2 doesn't work on QEMU for Mini2440 too. I also checked rtems_gluc.c
>> for both versions to make sure that definition of
>> rtems_bsdnet_initialize_network() wasn't changed.
>> Does anyone have any hint, suggestion, advice, etc.? I do really
>> appreciate any comment.
>>
>> Thanks
>> SAeeD
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20120828/9d3d6f0b/attachment.html>


More information about the users mailing list