Skip Navigation Links | |
Exit Print View | |
Writing Device Drivers Oracle Solaris 11.1 Information Library |
Part I Designing Device Drivers for the Oracle Solaris Platform
1. Overview of Oracle Solaris Device Drivers
2. Oracle Solaris Kernel and Device Tree
5. Managing Events and Queueing Tasks
7. Device Access: Programmed I/O
10. Mapping Device and Kernel Memory
13. Hardening Oracle Solaris Drivers
14. Layered Driver Interface (LDI)
Part II Designing Specific Kinds of Device Drivers
15. Drivers for Character Devices
18. SCSI Host Bus Adapter Drivers
GLDv3 Network Device Driver Framework
GLDv3 MAC Registration Process
GLDv3 MAC Registration Functions
GLDv3 MAC Registration Data Structures
Large Segment (or Send) Offload
GLDv3 State Change Notifications
GLDv2 Network Device Driver Framework
Ethernet V2 and ISO 8802-3 (IEEE 802.3)
GLDv2 Declarations and Data Structures
gldm_set_mac_addr() Entry Point
gldm_set_multicast() Entry Point
gldm_set_promiscuous() Entry Point
Part III Building a Device Driver
22. Compiling, Loading, Packaging, and Testing Drivers
23. Debugging, Testing, and Tuning Device Drivers
24. Recommended Coding Practices
B. Summary of Oracle Solaris DDI/DKI Services
C. Making a Device Driver 64-Bit Ready
Over the years several, slightly different NIC architectures have emerged. The MAC layer is the common Oracle Solaris framework which interacts with the NIC hardware. The MAC layer needs to be able to take advantage of as many hardware features as possible, such as hardware classification, VLAN tagging, VLAN stripping, hardware checksum offload, large segment offload, load spreading and so on, while providing a common model which is applicable by different types of hardware.
To write a network driver for the Oracle Solaris OS, use the Solaris Generic LAN Driver (GLD) framework.
For new Ethernet drivers, use the GLDv3 framework. See GLDv3 Network Device Driver Framework. The GLDv3 framework is a function calls-based interface.
To maintain older Ethernet, Token Ring, or FDDI drivers, use the GLDv2 framework. See GLDv2 Network Device Driver Framework. The GLDv2 is a kernel module that provides common code for drivers to share.
If you are writing a NIC driver, see also Chapter 21, SR-IOV Drivers.