[prev in list] [next in list] [prev in thread] [next in thread]
List: opensolaris-driver-discuss
Subject: [driver-discuss] NIC futures.... cassini, GLDv3, legacy, etc.
From: "Garrett D'Amore" <Garrett.Damore () Sun ! COM>
Date: 2007-06-09 6:05:02
Message-ID: 466A430E.9000207 () sun ! com
[Download RAW message or body]
I've begun a serious investigation into making Cassini into a GLDv3
driver. There are going to be a few non-trivial concerns with such a
port, and I would like to raise this here, so that interested parties
can contact me.
1) MULTIDATA transmit is going to have to go away, because GLDv3 lacks
support for it. (I hope we can use LSO instead, more later.) I'm very
very much hoping that cassini is the only consumer of the Multidata
transmit interfaces, because I'd like to remove all the various checks
for multidata transmit from the hot code paths in IP. (For example,
hwcksum_retreive, and _assoc. Among many others.) In fact, this impact
upon non-cassini NICs .. such as nxge ... is one of the main reasons
that I decided it was time to get serious about this. (Initially, I
might not even implement LSO ... with b_next chains I can probably get
close to the equivalent multidata transmit functionality.... note that
nxge lacks MULTIDATA support as well!)
2) ce -> GLDv3 will require converting to use the Nemo Link Aggregation
instead of Sun Trunking. Personally I think this is a good thing. I
want to see Sun Trunking EOF. (That requires changes in qfe, and maybe
gem. More in a minute.)
3) the old separate VLAN module will hopefully go away as well, pending
QFE changes.
4) hme. I have hme->GLDv3 sitting in a workspace; I need it
code-reviewed. If you want to review code, let me know.
5) qfe. I want qfe to EOF, and hme to provide the functionality for
qfe. I know driver renames are evil, but I think this is warranted
here. The reason is that the combination of different ndd semantics,
Sun Trunking going away, and other GLDv3 changes really means that IMO,
the driver name change is not that terrible. (All the old scripts are
going to break anyway.)
6) ge. I can convert this to GLDv3 pretty easily, but its pretty low on
my list. Its fiber only, and I don't think as many people have them.
Its pretty much the same as an eri chip, so if people want it, let me know.
7) enabling legacy:
a) hme (and qfe) and certain modern variants of iprb can do IP
checksum offload, but it was never enabled by the drivers. If someone
wants to take a crack at it after my GLDv3, its a small driver task. A
good community project. Let me know .
b) eri, ce, and gem can all do dynamic interrupt blanking. So can
others (iprb, and dmfe as well, I think.) We could activate this in the
drivers. Again, not a big project. Let me know if you want to help.
c) We could also provide polling interfaces for crossbow, when that
comes into Nevada. Only the gigE drivers are likely to get attention
here. If you're interesting in helping out with other legacy drivers,
let me know.
d) multi-address support. Useful for VNICs and crossbow. Again,
legacy NICs are likely not to get attention from Sun... unless someone
else steps up to the plate.
e) ndd/kstat cleanup. Brussels is going to do some work here, but I
think there is an opportunity for others to pitch in. Some drivers need
ndd tuning support for link, consistency changes, etc.
f) more legacy driver conversions. E.g. dnet could be updated to
GLDv3, etc. There's a bunch of closed ones, too.
8) Open sourcing. Cassini and a number of x86 nics are currently
closed. I'd like to get this changed. I think some of this was
deprioritized into the bit bucket, but conceivably a few of them should
be doable without too much legal arm wrestling (iprb, cassini -- Sun
owns all ce's IP, maybe others.) At some level, I hope my GLDv3 efforts
will help because it means that the amount of material that has to be
subject to a legal review will be much, much smaller.
9) Porting. Some of the drivers are conceivably useful on more than one
architecture, but are only enabled on that one. dmfe is a good
example. dnet is another. (dnet would be very useful on sparc, and
amd64 platforms, because there are some quad-port cards that have real
21143 tulip parts on them.)
Anyway, I wanted to let some folks know what I'm up to, and extend the
offer/request for others to help out. Some parts can be done without
access to closed source, some parts require you to have SWAN access.
Let me know what you want to help with! :-)
-- Garrett
_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic