mac_capab_rings - rings capability data structure
Solaris architecture specific (Solaris DDI)
The mac_capab_rings structure is used by a network device driver to describe its rings capability. The structure is used as the argument to the mc_getcapab(9E) driver entry point when querying the MAC_CAPAB_RINGS capability.
mac_ring_type_t mr_type; mac_group_type_t mr_group_type; uint32_t mr_flags; mac_rings_version_t mr_version; uint_t mr_rnum; uint_t mr_gnum; mac_get_ring_t mr_rget; mac_get_group_t mr_gget; mac_group_add_ring_t mr_gaddring; mac_group_rem_ring_t mr_gremring;
The following fields of the mac_capab_rings structure are set to indicate the device's rings capability:
Set by MAC layer to indicate which driver resources is being queried. Possible ring types are MAC_RING_TYPE_RX or MAC_RING_TYPE_TX.
Set by the driver to indicate whether the device is capable of static or dynamic ring grouping. Possible grouping types for the driver are MAC_GROUP_TYPE_STATIC or MAC_GROUP_TYPE_DYNAMIC. If the driver can dynamically grow and shrink ring groups, then it should advertise the MAC_GROUP_TYPE_DYNAMIC group type and implement mr_gaddring() and mr_gremring() entry points.
Set by the driver to indicate various conditions. Currently, MAC_RINGS_VLAN_TRANSPARENT is the possible value to indicate the hardware is capable of transparent VLANs.
Set by the driver to indicate the version of the rings capability that the driver implements. The current revision level is MAC_RINGS_VERSION_1.
Set by the driver to indicate the total number of RX or TX rings the driver implements.
Set by the driver to indicate the total number of RX or TX ring groups the hardware implements.
A driver entry point to get specific ring information for each RX and TX ring the hardware implements.
A driver entry point to get the specific information for each RX and TX ring group the driver implements.
A driver entry point to add a ring to a driver ring group. This entry point is implemented for drivers who support dynamic ring grouping.
A driver entry point to remove a specific ring from a driver ring group.
See attributes(7) for descriptions of the following attributes: