This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: lwIP 1.3 port




Single-threaded operation:


In this mode, a single thread is used for all handling of the stack. In the current port, the user needs to initialize lwIP "by hand", setup timeouts etc. I would like to write some glue code to simplify usage of lwIP in this mode. The glue code should implement an initialization routine as well as the basic operation of the lwip thread (similar to what the tcpip thread in the threaded version provides). Basic timeouts of the protocols should automatically be handled when enabled in the configuration, and ethernet drivers should be polled. I would also like to integrate SLIP and PPP support. As these have to run in a separate thread (for serial communication), we need a simple queue to pass received packets to the main thread.

After some more thought, the single thread implementation does not seem to be that easy. The main reason is that I need SLIP and PPP, not necessarily ethernet. The current lwIP implementation of PPP and SLIP depend on multiple threads though. SLIP does blocking reads on the serial device and PPP requires the sys_timeouts from lwIP for timeout handling. I guess they can be adapted for single threaded operation, but not without touching the lwIP code obviously.


The SLIP code would have to be changed to non-blocking operation. This is rather simple. Porting PPP to single thread usage is rather a bit tricky though, but I still manageable. My current plan is to do the SLIP changes first, see how it works and then continue with PPP.

Is there anyone interested in testing or helping out?

Simon


-- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]