Go to main content

man pages section 9: DDI and DKI Driver Entry Points

Exit Print View

Updated: July 2017
 
 

mgi_start(9E)

Name

mac_group_info, mgi_start, mgi_stop, mgi_addmac, mgi_remmac, mgi_add_vlanfilter, mgi_rem_vlanfliter, mgi_setmtu, mgi_getsriov_info - MAC group info driver entry points

Synopsis

#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);

Parameters

group_handle

The private driver handle that identifies the driver ring group.

macaddr

The MAC address that the MAC layer would like to be programmed into the driver's hardware.

arg

The opaque handle that identifies the driver ring group that is being programmed.

mflags

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.

vlanid

The VLAN to be programmed into the driver's hardware.

vflags

The flags associated with the specified VLAN. Currently, the flag possible is MAC_GROUP_VLAN_TRANSPARENT_ENABLE. This enables VLAN tagging/stripping.

sriovinfop

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.

mtu

The MTU size to be programmed for the specified ring group.

Interface Level

Solaris architecture specific (Solaris DDI).

Description

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.

Return Values

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.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/header
Interface Stability
Committed

See Also

attributes(5), mr_gget(9E), mac_capab_rings(9S), mac_group_info(9S), mac_register(9S)