Amazing !

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Amazing !

Ivan Warren
Pretty amazing !

After a couple of weeks of fiddling (on my spare time) to write a port,
I have something functional !

The network interface driver was a bit complicated to write because it's
completely asynchronous so I had to write myself a multileaving (that's
a non preemptive multithreaded system) on a cross compiled system.

The fact it is a BIG Endian system made it a little bit of a chalenge !

I have to say the documentation for LWIP is somewhat confusing in some
aspects and requires a bit of guessing around...

I still have issues to work out with my port (For some reason, it takes
a bit of time for the  DHCP client to set up the interface. but once it
is up, response time is VERY correct (~1 ms ping time)

I haven't tried IPV6 yet ;) And because my "kernel/OS" is so basic, I
can't at this time send any "commands" (bring an interface up/down,
query anything)

But .... It works ! (192.168.100.204 is the address assigned to my test
system by my DHCP server)

My test system has a.. "lwiperf_start_tcp_server_default(NULL,NULL);"

$ iperf -c 192.168.100.204
------------------------------------------------------------
Client connecting to 192.168.100.204, TCP port 5001
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.100.1 port 36938 connected with 192.168.100.204 port
5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  70.9 MBytes  59.4 Mbits/sec

--Ivan



_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users

smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Amazing !

goldsimon@gmx.de
On 15.11.2018 22:57, Ivan Warren wrote:
> [..]
> The fact it is a BIG Endian system made it a little bit of a chalenge !

What were the challenges here? As there are not many big endian
architectures left, please help us to stay endianess-compatible!

> I have to say the documentation for LWIP is somewhat confusing in some
> aspects and requires a bit of guessing around...

And that is exactly where you should help us. We know the system and
it's not confusing to us. I may not be confusing to you after some
weeks. If you know what to improve, please share patches that improve
documentation!


Simon

_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users
Reply | Threaded
Open this post in threaded view
|

Re: Amazing !

Ivan Warren

Le 11/15/2018 à 11:06 PM, [hidden email] a écrit :
> On 15.11.2018 22:57, Ivan Warren wrote:
>> [..]
>> The fact it is a BIG Endian system made it a little bit of a chalenge !
>
> What were the challenges here? As there are not many big endian
> architectures left, please help us to stay endianess-compatible!

gcc (which is the compiler I use) knows how to report endianess.. The
fact you have to declare endianess explicitly in the port's cc.h is a
little bit counter intuitive (meaning you wind up dwelling into lwip
core internals to figure out you missed it !)

I'm pretty sure gcc, llvm/clang or msvc (in a cross compiling situation)
do provide a mean to determine at compile time the endianness of the
target (so it doesn't need to be explicitly stated in cc.h)

Granted, I may be in a borderline case... But I'll provide patches that
may help make endianess a non-issue whenever I can !

>
>> I have to say the documentation for LWIP is somewhat confusing in some
>> aspects and requires a bit of guessing around...
>
> And that is exactly where you should help us. We know the system and
> it's not confusing to us. I may not be confusing to you after some
> weeks. If you know what to improve, please share patches that improve
> documentation!
>
>
One of the problem I ran into was that "input" and "output" tend to be
switched - based o whether you are on the "application" side or the
"network interface" side - and because some interface/functions lie in
the middle, it's hard to tell which way things are going !

Of course, now, after a couple of weeks of fiddling with the system, I'm
starting to get the hang of it, but there are still some confusions !
(but maybe it's me)

Anyway, if along the way I find a better "wording" of an inlined
documentation, I'll make a proposal !

--Ivan



_______________________________________________
lwip-users mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-users

smime.p7s (5K) Download Attachment