netatm: plan for removal unless an active maintainer is found

Robert Watson rwatson at FreeBSD.org
Wed Mar 15 01:00:09 UTC 2006


For some time now, the FreeBSD Project has been carrying around at least three 
ATM stacks:

- netatm - HARP, the Host ATM Research Platform

- netnatm - A fairly minimal socket<->virtual circuit ATM wrapper for ATM
   device drivers

- ngatm - NetGraph ATM framework

For a variety of reasons, it would be desirable to do a bit of pruning of ATM 
stacks.  In my previous conversations with Harti and Bruce, the conclusion has 
generally been that ngatm and netnatm provide almost all functionality 
provided by netatm and more, but in modern, and actively maintained, 
frameworks.

The main motivator for pruning has to do with the SMP network stack work: 
we're reaching the point, discussed on a number of occasions previously on 
this mailing list, where jettisoning unmaintained network stack components 
that are unable to run MPSAFE, is highly desirable.  This would allow us to 
remove compatibility shims that are increasingly burdonsome in terms of 
performance and complexity.  Another aspect of this has to do with upcoming 
changes to the socket and pcb code, which will require maintainers of 
protocols to do a small but non-trivial amount of work to update protocols to 
fit the new socket behavior.  Right now, almost all other sections of the 
network stack have active maintainers who are able to do this work, both 
development and testing, except for the netatm code.

We've reached the point where continuing to carry around a third ATM stack is 
a significant impediment to continued work on network stack performance and 
reliability work.  This should not be a surprise to anyone who reads this 
mailing list regularly, since I sent out e-mail on this very topic on July 18, 
2005, warning that netatm (and several other components) were at risk as 
unmaintained but substantial network stack components.

The proposal is as follows:

In order to begin to merge revised socket/pcb code, required to fix a number 
of current races manifesting in the TCP code under load, and required for 
breaking out the tcbinfo lock which is a significant bottleneck in high 
performance TCP and multi-processor TCP scalability, I will disconnect netatm 
and dependent components from the build on April 1, 2006.  At that point, I 
will merge updated socket and pcb reference counting.

If a maintainer has not been found who can update and adequately test the 
netatm code for the new socket/pcb interfaces by June 30, 2006, the netatm 
code will be deleted from CVS HEAD (although remain available in Attic should 
someone turn up later).  I'm happy to provide some first cut patches for any 
maintainer that arrives that do implement the changes, but I am unable to test 
them, and suspect they will be significant deficient for this reason, so will 
not commit them myself.

This will leave us with at least two quite functional ATM implementations. 
Please let me know if netatm is critical to your work and you will be able to 
work with me to get netatm into shape.  For someone already familiar with the 
netatm implementation and set up to perform ATM network testing, this should 
be straight forward and I'm happy to help in any way I can.  If you are 
available to act in this role, my recommendation would be that we meet at 
BSDCan in Ottawa this May to discuss long term maintenance directions, and so 
that we can work out a plan for handling SMP behavior for netatm, as well as 
its integration with the socket code.

Robert N M Watson


More information about the freebsd-arch mailing list