Writing Device Drivers for Oracle® Solaris 11.2

Exit Print View

Updated: September 2014
 
 

Summary of GLDv3 Interfaces

The following table lists entry points, other DDI functions, and data structures that are part of the GLDv3 network device driver framework.

Table 19-1  GLDv3 Interfaces
Interface Name
Description
Required Entry Points
Retrieve network statistics from the driver. See GLDv3 Network Statistics.
Start a driver instance. The GLDv3 framework invokes the start entry point before any operation is attempted.
Stop a driver instance. The MAC layer invokes the stop entry point before the device is detached.
Change the promiscuous mode of the device driver instance.
Add or remove a multicast address.
Set the primary unicast address. The device must start passing back through mac_rx() the packets with a destination MAC address that matches the new unicast address. See Receive Data Path for information about mac_rx().
Send one or more packets. See Transmit Data Path.
Obtain transmit and receive ring information. See mr_rget() Entry Point for more information.
Obtain transmit and receive ring information. See mr_gget() Entry Point for more information.
Add ring to a receive group. This is required only if dynamic ring grouping is supported. See MAC_CAPAB_RINGS Capability.
Remove ring from a receive group. This is required only if dynamic ring grouping is supported. See MAC_CAPAB_RINGS Capability.
mri_tx(9E)
Transmit packets for TX rings. See mr_rget() Entry Point for more information.
mri_poll()
Poll RX ring for packets. See mr_rget() Entry Point for more information.
mri_stat()
Ring statistics. See mr_rget() Entry Point for more information.
Enable interrupts on RX ring. See mr_rget() Entry Point for more information.
Disable interrupts on RX ring. See mr_rget() Entry Point for more information.
Program a MAC address into the driver's hardware for RX ring group. See mr_gget() Entry Point for more information.
Remove a previously programmed MAC address from the driver's hardware for RX ring group. See mr_gget() Entry Point for more information.
Optional Entry Points
Optional ioctl driver interface. This facility is intended to be used only for debugging purposes.
Retrieve capabilities. See GLDv3 Capabilities.
Set a property value. See GLDv3 Properties.
Get a property value. See GLDv3 Properties.
Get information about a property. See GLDv3 Properties.
mri_start()
Start ring. See mr_rget() Entry Point for more information
mri_stop()
Stop ring. See mr_rget() Entry Point for more information.
Ring Group start. See mr_gget() Entry Point for more information.
Ring Group stop. See mr_gget() Entry Point for more information.
mgi_addvlan()
Enable VLAN filtering in hardware. See mr_gget() Entry Point for more information.
mgi_remvlan()
Remove previously programmed VLAN filter. See mr_gget() Entry Point for more information.
mgi_setmtu()
Set RX group MTU. See mr_gget() Entry Point for more information.
mgi_get_sriov_info()
Obtain SR-IOV information. See Ring Groups and SR-IOV for more information.
Data Structures
Registration information. See GLDv3 MAC Registration Data Structures.
LSO metadata for TCP/IPv4. See Large Segment (or Send) Offload.
See MAC Rings Capability for more information.
See mr_gget() Entry Point for more information.
See mr_rget() Entry Point for more information.
mac_intr_t
mac_sriov_info
MAC Registration Functions
Allocate a new mac_register structure. See GLDv3 MAC Registration.
Free a mac_register structure.
Register with the MAC layer.
Unregister from the MAC layer.
Initialize the driver's dev_ops(9S) structure.
Release the driver's dev_ops structure.
Data Transfer Functions
Pass up received packets. See Receive Data Path.
mac_rx_ring(9F)
Pass up received packets. See Receive Data Path.
TX resources are available. See GLDv3 State Change Notifications.
mac_tx_ring_update(9F)
TX resources are available. See GLDv3 State Change Notifications for more information.
Link state has changed.
Retrieve hardware checksum information. See Hardware Checksum Offload and Transmit Data Path.
Attach hardware checksum information. See Hardware Checksum Offload and Receive Data Path.
Retrieve LSO information. See Large Segment (or Send) Offload.
Properties Functions
Set the permission of a property. See GLDv3 Properties.
Set a property value.
Set a property values range.