I send following again, because the mail system pended my reply for the network discusss.
----- Original Message ----- >On (06/17/07 08:09), Masayuki Murayama wrote: >> I recommend to make a new common layer for managing tx/rx >> buffers, tx/rx descriptor rings, and MII link. In my experience >> on writing various nic drivers, they were common. >> Actually I tried to make such a common layer, and it reduced >> the lines in hardware depend section. Typically it was 1500 - 2500 >> lines for a driver. > >Could you elaborate on the details of your own effort? Having such a >layer may open up new possibilities for Brussels.. > >--Sowmini The drivers I wrote with the common layer, are opensource under the BSD license, and you can download them from my site below. http://homepage2.nifty.com/mrym3/taiyodo/eng/ There are two major common frameworks, one is for PCI based nic, the other is for USB nic devices. I call the layers as "gem", for general ethernet mac frame work. There are two versions of the framework for PCI devices, version 1 and 2. In the gem v2, following capability are implemented in the common layer: dual GLD v2 and V3 interface (choice on compile time) tx watchdog hardware ip/tcp/udp checksum software/hardware vlan tagging suspend and resume, and error recovery MII connection management tx buffer and rx buffer management for zero copy dma and jumbo packets tx rx ring descripor management interrupt coalescing for reducing cpu usage, i.e. polling kstats The driver which use the latest version of gem, is myk-2.5.0. The source codes for a driver consist of two parts, gem.c and xxx_gem.c. Gem.c is the common layter, and xxx_gem.c is hardware depend section in xxx driver. Currently there are no documentation, sorry. -masa This message posted from opensolaris.org _______________________________________________ networking-discuss mailing list [email protected]
