This is the mail archive of the ecos-discuss@sources.redhat.com 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: Problems with ppp and Windows


Hi Øyvind,

I've just had what appears to be the same problem as this. accept() wasn't returning until the client killed the telnet process. However in my case it was the same with Windows or Linux clients.

When you say "client", are you referring to the machine on which the telnet session is launched?

I find that the problem is with a Windows PPP *server*.

It doesn't matter whether or not I start the telnet session from Windows
or Linux.

By client I mean the machine from which the Telnet session is launched. I get the same problem using a Windows or Linux Telnet client (or FTP or anything that contacts an eCos server sitting in accept()). I also had the same problem whether the PPP session itself was between eCos and Win2k or between eCos and Linux. I can't imagine it makes any difference whether eCos "dials up" the other end, or visa versa.


I'm surprised that this is only a problem connecting with Windows via PPP. Was there anything different about your setup when you connected to Linux ? Maybe on your Windows configuration the eCos target had an Ethernet interface up as well ? (that will use up a few network buffers). Or is your Linux PPPD perhaps running with the "novj" option ?


I'm not sure if this will be your problem, but it's worth a go. Try adding some more memory to CYGPKG_NET_MEM_USAGE. The VJC structure needs a little over 4KB on my target. You can confirm whether this is your problem by checking the result of the MALLOC in pppalloc().

I've been toying with PPP on an EB40a card board, which only has 256kbytes of memory.

I've set CYGPKG_NET_MEM_USAGE = ~90k.

If you need to save some RAM, perhaps an alternative would be to disable VJ compression. On a brief look in ipcp.c it looks like it's possible to refuse by setting neg_vj = 0. Presumably there will be a few other tweaks around the PPP code to handle this properly.


It would be nice to handle the failed slcompress MALLOC by refusing to negotiate VJ compression. Either that or a big printf/assert on the failed MALLOC would have saved me a few hours debugging.

Cheers,
Kelvin.


-- 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]