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.