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]

Reply via email to