[ATMSAR] Request for review - update #1

Giampaolo Tomassoni g.tomassoni at libero.it
Tue Sep 6 03:55:47 EDT 2005


Dears,

I wrote a first release of a SAR helper module for Linux 2.6.x.

It is conceptually similar to the Duncan Sands' usb_atm module, but it is not constrained to usb devices and is a bit different from it in its implementation details.

It seems to me that scores some points in this:

- supplies a coherent interface which allows the device driver to bypass
	almost any interaction with the atm layer;

- supports ATM header&hec check, correction and generation, which is
	most useful for dumb atm devices (ie: most ADSL modems);

- supports automatic and fast routing of received cells to destinating
	vcc;

- actually supports AALraw, AAL0 and AAL5;

- aal decoding/encoding routines are designed as atmsar plug-ins, so
	that further types may easily be supported;

- implements speed- and memory-concerned techniques for per-vcc
	decoding;

- allows using dma-streaming techniques in sending cells to device;

- supports tx buffer adjusting against device needs;

- avoids vcc open/close paradigm handling in device driver;

- yields a uniform view to SAR status in /proc.


I'm contacting you firstly because I would like to hear your point of view about the whole idea (am I reinventing the wheel?), then because I would like to have my code reviewed, and lastly because I have some question about the matter.

I prepared the SAR module as a patch against the Linux 2.6.12.3 kernel tree. It is attached to this message as a unified diff, or you may download it at http://www.tomassoni.biz/download/pulsar/patch-2.6.13+atmsar.diff.bz2 .

Also, in order to allow you to evaluate it, I prepared a driver adopting the ATMSAR API for the Globespan Pulsar ADSL PCI card. This driver is made after the one from Guy Ellis (see http://adsl4linux.no-ip.org/pulsar.html for further reference). My version is a two-part driver: a GPL one ( http://www.tomassoni.biz/download/pulsar/pulsaradsl-1.0.1-source.tar.bz2 ) and the same proprietary library you may find in the Ellis' driver from the above-mentioned URL.

In order to build the driver, first patch a 2.6.13 kernel, then unpack the pulsaradsl-1.0.1-source.tar.bz2 in a directory of your choice outside the kernel tree. This should create a pulsaradsl-1.0.1 directory. Pick the libpulsar_fw.a which matches your GCC flavor from the Ellis' driver and put it in the pulsaradsl-1.0.1 directory. Run "make" from inside the pulsaradsl-1.0.1 directory. After this you should be capable to load the driver by an "insmod pulsaradsl.ko".

My intention, if the maintainer of the ATM stack under Linux (Chas Williams) and the author of the usb_atm module (Duncan Sands) agree, is to merge the atmsar module into the linux tree, thereby replacing the atm+sar code in the Verrept-Sands' atm_usb module, which will then contain only the usb handling code and eventually will relay on the atmsar module for its atm+sar ops. I'm also looking for help by Sands to do this. Also, it could be interesting to have the Ellis' driver use this module, as the Pulsar PCI ADSL card is actually the only ADSL PCI modem of which I'm aware.

This work is still in a preliminary phase and I'm working to gain general acceptance by the Linux community. So, there are questions spread in the ATMSAR patch which your are welcome to reply.

Regards,

-----------------------------------
Giampaolo Tomassoni - IT Consultant
Piazza VIII Aprile 1948, 4
I-53044 Chiusi (SI) - Italy
Ph: +39-0578-21100
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-2.6.13+atmsar.diff
Type: application/octet-stream
Size: 72328 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/usbatm/attachments/20050906/e9595289/patch-2.6.13atmsar-0001.obj


More information about the Usbatm mailing list