Hi All,
I've been playing with lwip and lxip and I noticed a discrepancy between them. I made a tester-application [1] to pinpoint these differences.
The application gets a DHCP-address, opens a berkeley socket, binds to it, sets listen mode and accepts an incoming request. Then it sends a simple string back and waits for a new request.
With lwip it works as expected. With lxip it runs until the accept-step. There it times out after roughly 10 seconds with errno 21 (EINVAL) Invalid argument.
However if I connect to it with a client before the timeout hits, it serves a reply and resets the timer. I can keep the application alive for as long as I keep requests coming in.
I understood that lxip was plug-in compatible with lwip but somehow lxip does not have the patience that lwip has.
Is this a bug in lxip or is there a missing dependency for lxip?
I've added the make run/tester_l[wx]ip log files in the repo. The lxip one has scary warning about incompatible type conversions.
Cheers, Guido.
Hello Guido,
Both the libc_lxip and libc_lwip libraries will be removed soon. The libc library has its own Berkly socket support that uses the VFS to access an IP stack. Your only option at the moment is the vfs_lxip plugin, but there will be a vfs_lwip plugin on staging soon. The benefit to you is that you will be able to test both using run-time rather than link-time configuration.
The following run script demonstrates how to configure the VFS: https://github.com/genodelabs/genode/blob/master/repos/libports/run/netty_tc... https://github.com/genodelabs/genode/blob/master/repos/libports/run/netty.in...
Cheers, Emery
On Monday, July 16, 2018 12:11:56 AM CEST, Guido Witmond wrote:
Hi All,
I've been playing with lwip and lxip and I noticed a discrepancy between them. I made a tester-application [1] to pinpoint these differences.
The application gets a DHCP-address, opens a berkeley socket, binds to it, sets listen mode and accepts an incoming request. Then it sends a simple string back and waits for a new request.
With lwip it works as expected. With lxip it runs until the accept-step. There it times out after roughly 10 seconds with errno 21 (EINVAL) Invalid argument.
However if I connect to it with a client before the timeout hits, it serves a reply and resets the timer. I can keep the application alive for as long as I keep requests coming in.
I understood that lxip was plug-in compatible with lwip but somehow lxip does not have the patience that lwip has.
Is this a bug in lxip or is there a missing dependency for lxip?
I've added the make run/tester_l[wx]ip log files in the repo. The lxip one has scary warning about incompatible type conversions.
Cheers, Guido.
Hi Emery,
From the release notes 13-11 I understood that migrating from lwip to lxip was just a matter of reconfiguring:
From the application developer's point of view, the use of LXIP instead of LwIP is as simple as replacing the 'libc_lwip_dhcp'
library > with the 'libc_lxip' library.
But I ran into the bug I mentioned yesterday.
I'll give your suggestion a spin. Hopefully that gives me a working server with lxip.
Cheers, Guido.
On 07/16/2018 10:00 AM, Emery Hemingway wrote:
Hello Guido,
Both the libc_lxip and libc_lwip libraries will be removed soon. The libc library has its own Berkly socket support that uses the VFS to access an IP stack. Your only option at the moment is the vfs_lxip plugin, but there will be a vfs_lwip plugin on staging soon. The benefit to you is that you will be able to test both using run-time rather than link-time configuration.
The following run script demonstrates how to configure the VFS: https://github.com/genodelabs/genode/blob/master/repos/libports/run/netty_tc...
https://github.com/genodelabs/genode/blob/master/repos/libports/run/netty.in...
Cheers, Emery
On Monday, July 16, 2018 12:11:56 AM CEST, Guido Witmond wrote:
Hi All,
I've been playing with lwip and lxip and I noticed a discrepancy between them. I made a tester-application [1] to pinpoint these differences.
The application gets a DHCP-address, opens a berkeley socket, binds to it, sets listen mode and accepts an incoming request. Then it sends a simple string back and waits for a new request.
With lwip it works as expected. With lxip it runs until the accept-step. There it times out after roughly 10 seconds with errno 21 (EINVAL) Invalid argument.
However if I connect to it with a client before the timeout hits, it serves a reply and resets the timer. I can keep the application alive for as long as I keep requests coming in.
I understood that lxip was plug-in compatible with lwip but somehow lxip does not have the patience that lwip has.
Is this a bug in lxip or is there a missing dependency for lxip?
I've added the make run/tester_l[wx]ip log files in the repo. The lxip one has scary warning about incompatible type conversions.
Cheers, Guido.
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users