Project Home
Project Home
Discussion Forums
Project Information
Project Info
wiki1653: Drivers_wiki_page (Version 2)

Network Drivers#

Core Networking supports three variety of drivers. These are:

  • Native drivers: Drivers which have been developed from scratch for use with the io-pkt stack
  • io-net drivers: Drivers which were written for the legacy networking stack io-net
  • NetBSD Ported drivers: Driver source which was taken from the NetBSD source tree and ported to work with the io-pkt stack

The native and NetBSD drivers all hook directly into the stack in a similiar manner. io-net drivers interface through a "shim" layer which converts the io-net binary interface into the compatible io-pkt interface. We have a special driver ( which is automatically loaded up when you want to start an io-net driver.

Differences between ported NetBSD drivers and native drivers#

  • NetBSD ported drivers don't allow the stack to run in multi-threaded mode. NetBSD drivers don't have to worry about rx / tx threads running simultaneously when run inside of the NetBSD operating system so there isn't a need to have close attention paid to appropriate locking issues between rx and tx. For this reason, a configuration flag is, by default, set to indicate that the driver doesn't support multi-threaded access. This will result in the entire stack running in a single threaded mode of operation (if one driver isn't multi-threaded capable, no drivers will run with multiple threads). This flag can be changed once the driver has been carefully examined to ensure that there are no locking issues.
  • NetBSD drivers don't include support for Neutrino specific utilities such as "nicinfo".
  • Unless otherwise indicated, we will provide source and allow you to build NetBSD drivers that we've ported, but, unless we have full documentation from the silicon vendors, we won't be able to classify the device as supported.

Differences between io-net drivers and native drivers#

  • io-net drivers export a name space entry (/dev/enx). Native drivers do not.
  • You can unmount an io-net driver (umount /dev/enx). With a native driver, you have to destroy it (ifconfig tsec0 destroy).
  • io-net drivers are all prefixed with "en". Native drivers have different prefixes for different hardware (e.g. "tsec" for Freescales TSEC devices).
  • io-net drivers support the io-net devctl commands. Native drivers do not.
  • io-net drivers will be slower than native drivers since they use the same threading model as that used in io-net.

Ported NetBSD Drivers#

How do I port a NetBSD Driver#

Native Drivers#

How do I write a new Core Networking 6.4.0 Driver?#

Wireless Drivers#

Text iopkt_build_headers.tar.gz [Drivers_wiki_page/iopkt_build_headers.tar.gz]

Active Tab Versions Inactive Tab - left sideAssociations Inactive Tab - left sideAttachments (1) Inactive Tab - left sideBack LinksInactive Tab - right side  
    Version From To Version Comment Created By
    Version 38 Sean Boudreau(deleted)  -  11/13/2009
    Version 37 Andrew Boyd(deleted)  -  09/28/2009
    Version 36 Andrew Boyd(deleted)  -  09/28/2009
    Version 35 Add rum driver Robert Craig  -  04/06/2009
    Version 34 Andrew Boyd(deleted)  -  01/30/2009
    Version 33 Andrew Boyd(deleted)  -  01/30/2009
    Version 32 Andrew Boyd(deleted)  -  01/30/2009
    Version 31 Robert Craig  -  01/16/2009
    Version 30 Add notes on how to build drivers under 6.4.0 Robert Craig  -  01/16/2009
    Version 29 Robert Craig  -  01/16/2009
    Version 28 Andrew Boyd(deleted)  -  10/17/2008
    Version 27 Add section on TSO Robert Craig  -  07/30/2008
    Version 26 Minor edits Robert Craig  -  07/21/2008
    Version 25 Add FAQ section and comment on delay vs. DELAY. No need to include in official docs. Robert Craig  -  07/21/2008
    Version 24 Andrew Boyd(deleted)  -  05/12/2008
    Version 23 Add info about turning on WiFi debug output Robert Craig  -  04/04/2008
    Version 22 Robert Craig  -  11/19/2007
    Version 21 Robert Craig  -  11/16/2007
    Version 20 Robert Craig  -  11/13/2007
    Version 19 Robert Craig  -  11/12/2007
    Version 18 Andrew Boyd(deleted)  -  11/12/2007
    Version 17 Andrew Boyd(deleted)  -  11/12/2007
    Version 16 Andrew Boyd(deleted)  -  11/12/2007
    Version 15 Robert Craig  -  11/09/2007
    Version 14 Robert Craig  -  11/09/2007
    Version 13 Robert Craig  -  11/08/2007
    Version 12 Andrew Boyd(deleted)  -  11/08/2007
    Version 11 Andrew Boyd(deleted)  -  11/08/2007
    Version 10 Andrew Boyd(deleted)  -  11/08/2007
    Version 9 Robert Craig  -  11/08/2007
    Version 8 Robert Craig  -  11/07/2007
    Version 7 Robert Craig  -  11/07/2007
    Version 6 Robert Craig  -  11/07/2007
    Version 5 Robert Craig  -  11/07/2007
    Version 4 Robert Craig  -  11/07/2007
    Version 3 Robert Craig  -  11/07/2007
    Version 2 Robert Craig  -  11/07/2007
    Version 1 Robert Craig  -  11/06/2007