[prev in list] [next in list] [prev in thread] [next in thread]
List: opensolaris-driver-discuss
Subject: [driver-discuss] Crossbow heads-up to device driver writers
From: Nicolas Droux <Nicolas.Droux () Sun ! COM>
Date: 2008-12-05 21:16:07
Message-ID: 031F3402-46D4-4A56-AE43-DE732AA55341 () Sun ! COM
[Download RAW message or body]
As you may already know, the Crossbow project just integrated in
Nevada build 105. Crossbow provides major features such as MAC
virtualization (virtual switching, virtual NICs), traffic flows,
resource control, better observability, and significant performance
gains. More more information about Crossbow, see:
http://opensolaris.org/os/project/crossbow
In order to provide these enhancements, the Crossbow project made
changes to the GLDv3 driver interface which was originally introduced
as part of Project Nemo. We did not originally commit these GLDv3
interfaces in anticipation of these changes. Now that Crossbow is in
the ON gate, we will start the work needed to make GLDv3 a committed
interface for 3rd parties' use. This is one of the top item on our
priority list.
At this point all the GLDv3 network device drivers already in ON have
been updated to comply to the GLDv3 changes made by Crossbow. We know
that several 3rd parties have been experimenting with GLDv3. We really
appreciate the device driver writers out there who started to port
their drivers to GLDv3 and giving us feedback on the APIs. If you are
one of these developers, you have to update and recompile your GLDv3
driver in order to use it on Nevada build 105 and later. Note again
that this does not apply to drivers that are already in the ON
consolidation, since those have been already updated as part of the
Crossbow project.
If you already have a GLDv3 driver, it should be straightforward to
port to this updated interface. The main changes made to the driver
API are the following:
- New MAC_CAPAB_RINGS capability: used by drivers to advertise receive
and transmit rings, polling entry point for receive rings, and
transmit entry points for transmit rings. This allows for dynamic host-
driven polling for more efficient receive processing, host-based
transmit fanout for better scalability, and hardware classification
for efficient virtualization. This new capability replaces the
previous blanking capability.
- The multiple MAC address support has been split between two
capabilities: additional factory MAC address values are exposed via a
new MAC_CAPAB_MULTIFACTADDR capability, multiple unicast MAC address
slots are programmed via the new MAC_CAPAB_RINGS capability (see above)
- Other minor changes have been made to the signature of other entry
points of the API.
Note again that the GLDv3 driver API is still not a committed
interface. Minor changes will still be made to the API as we ramp up
our efforts to make it a committed interface. We don't anticipate
these changes to be major, and we will do our best to give a heads-up
to the OpenSolaris community when making incompatible changes to the
API as part of this effort.
As part of making GLDv3 a committed interface, we will gradually write
more documentation (reference guide, man pages, porting guide, sample
code, etc) to help device driver writers. These documents will be
posted on opensolaris.org as they become available.
For the 3rd party device driver writers who have already experimented
with GLDv3 and want to port their drivers, you can look at the drivers
in ON (for example ixgbe) which have been already ported to the latest
API. Diffs of the changes made to the drivers by the Crossbow project
can be seen in the following webrev:
http://cr.opensolaris.org/~ndroux/crossbow/webrev-103.2
The updated driver sources are also now in the ON consolidation
starting with build 105.
We hope that this information will help the device driver writers out
there who want to experiment with the latest OpenSolaris networking
features. We're looking forward to receiving your feedback.
Also, if you are using the GLDv3 driver interface from your driver
please let us know (or send me private email). We're planning to
create a separate alias for GLDv3 driver API related discussions,
announcements, etc, and we can directly add you to the alias once it's
created.
If you have any questions or comments please drop us a note at crossbow-discuss@opensolaris.org
Thanks,
Nicolas.
--
Nicolas Droux - Solaris Kernel Networking - Sun Microsystems, Inc.
nicolas.droux@sun.com - http://blogs.sun.com/droux
_______________________________________________
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