Skip Navigation Links | |
Exit Print View | |
man pages section 9: DDI and DKI Driver Entry Points Oracle Solaris 11 Information Library |
- MAC group info driver entry points
#include <sys/mac_provider.h> int prefix_group_start(mac_group_driver_t group_handle);
void prefix_group_stop(mac_group_driver_t group_handle);
int prefix_group_addmac(void *arg, const uint8_t *macaddr, uint64_t mflags);
int prefix_group_remmac(void *arg, const uint8_t *macaddr);
int prefix_group_add_vlanfilter(void *arg, uint16_t vlanid, uint32_t vflags);
int prefix_group_remove_vlanfilter(void *arg, uint16_t vlanid);
int prefix_group_setmtu(void *arg, uint32_t mtu);
int prefix_group_getsriov_info(void *arg, mac_sriov_info_t *sriovinfop);
The private driver handle that identifies the driver ring group.
The MAC address that the MAC layer would like to be programmed into the driver's hardware.
The opaque handle that identifies the driver ring group that is being programmed.
The flags associated with the programming of the specified MAC address. Currently, the flag that can be specified is MAC_GROUP_PRIMARY_ADDRESS. This enables a SRI-OV capable driver to understand that the MAC address being programmed is the primary address for the VF associated with this ring group.
The VLAN to be programmed into the driver's hardware.
The flags associated with the specified VLAN. Currently, the flag possible is MAC_GROUP_VLAN_TRANSPARENT_ENABLE. This enables VLAN tagging/stripping.
The SR-IOV information structure to be filled in by the PF driver. Currently, the information to be filled in is the VF index for the VF that corresponds to this ring group.
The MTU size to be programmed for the specified ring group.
Solaris architecture specific (Solaris DDI).
The driver entry points described below implement the actions the MAC layer can take on a driver ring group. The entry points are passed to the MAC layer using the mac_group_info(9S) structure in response to a call to the driver entry point mr_gget(9E) by the MAC layer.
The mgi_start() function is the driver entry called by the MAC layer to start a ring group. Driver's that implement dynamic grouping should implement this entry point to properly initialize the ring group before rings are added to the ring group by the MAC layer.
The mgi_stop() function is the driver entry called by the MAC layer to stop a ring group. The MAC layer will call this entry after all rings of the ring group have been stopped.
The mgi_addmac() function is the driver entry point to add a MAC address to the ring group. The mflags argument specifies if the MAC address being added is the primary address for the VF that corresponds to the ring group.
The mgi_remmac() function is the driver entry point to remove a MAC address from the ring group.
The mgi_add_vlanfilter() function is the driver entry point to enable the MAC layer to program a VLAN filter for the specified ring group. The flags will enable tag/strip for the ring group.
The mgi_rem_vlanfliter() function is the driver entry point to remove a previously added vlan filter.
The mgi_setmtu() function is the driver entry point to set the MTU for the ring group. This entry point is implemented by SR-IOV capable drivers and is only valid when the PF driver is operating in SR-IOV mode.
The mgi_getsriov_info() function is the driver entry for the MAC layer to query for the ring group for it's SR-IOV mode information.
The mgi_start() function returns 0 on success and either EIO or ENXIO on failure.
The mgi_stop() function returns 0 on success and EIO or ENXIO on failure.
The mgi_setmtu() function returns 0 on success. If the MTU is an invalid size, then it returns EINVAL.
The mgi_getsriov_info() function returns 0 on success and EIO or ENXIO on failure.
The mgi_addmac() function returns 0 on success, ENOSPC if there is no space to add the MAC address, and EIO for other failures.
The mgi_add_vlanfilter() function returns 0 on success, ENOSPC if there is no room to add the filter, and EIO for other failures.
The mgi_rem_vlanfilter() function returns 0 on success and EIO on failure.
See attributes(5) for descriptions of the following attributes:
|
attributes(5), mr_gget(9E), mac_capab_rings(9S), mac_group_info(9S), mac_register(9S)