Subject: Network Layer Rewrite

From: "Travis Greer" <[email-masked]>
Date: 9 Apr 1997 15:16:15 -0700

Hello,

My name is Travis Greer and I am a senior CS major at Pomona College.  For my
senior project, I am attempting to replace the tcp/ip socket calls (i.e. 
socket(), bind(), listen(), accept(), read(), write()) with calls to FORE's
atm api. These calls establish connections over an ATM network instead of
traditional ethernet without the overhead of using ATM-over-IP. 

I have been having difficuties understanding the flow of wu-ftpd upon startup
and as messages are received.  I would like to know in which progression
functions such as dataconn() and passive() are called.  I would also like to
know the significant data structs such as ctrl_addr and their purposes.  

My current path to adding ATM connectivity is to just piggy-back atm calls at
the same points as the current tcp/ip socket calls (since they were designed
in a similar fashion).  At this point I am hoping that they will be called at
the appropriate times and will work (somehow).  A better understanding how how
wu-ftpd runs would be very helpful.  Any assistance, suggestions, or comments
would be greatly appreciated.

Thank You,

Travis Greer
[email-masked]

---

From: Mark Bergstrom <[email-masked]>
Date: Thu, 10 Apr 1997 04:29:50 -0500 (CDT)

Look at the source.

grep on 'ock' in all the sources to hit the points you are looking at.

It's only about 12K lines in toto.

BTW the listen, and accept calls are tightly tied to the kernel tuning of
whatever OS you are writing to.  Whatever you do, I would recommend testing
it against at least the following: Solaris2.5, Irix5.3, Irix6.2, Linux,
BSDI, and SCO.  Otherwise, your efforts will only collect dust.

Also, the transliteration of the listen queue (default 5 on ALL unix unless
custom-tuned) to your API may also depend on whether you pre-allocate
processes or fork them.  The caution you will need to employ is in making in
general enough to permit tuning to high rates of simultaneous hits.  If you
ignore the tcp_sendspace and tcp_recvspace under IRIX,for example, along
with the tcp_keepidle values that the test box you are running on, you may
derive a faulty image of the way your code performs under duress.

In the case of Linux, the networking and the tools to derive info therefrom
are the most limited of the bunch.

Mark

>would be greatly appreciated.
____________________________________________________________________________
Cleitus: "Bring ME the bore worms."
Princess Aura:  NO! NO! NOT the BORE worms."
Cleitus: "Oh your grace, shall I stop the torture?"
Ming, after eating grape: "No."
____________________________________________________________________________