Go to main content

man pages section 9: DDI and DKI Driver Entry Points

Exit Print View

Updated: Thursday, June 13, 2019
 
 

mri_stop(9E)

Name

mac_ring_info, mri_start, mri_stop, mri_tx, mri_poll, mri_stat, mri_intr_enable, mri_intr_disable - MAC ring info driver entry points

Synopsis

#include <sys/mac_provider.h>

int mri_start(mac_ring_driver_t ring_handle, uint64_t gen_num);
void mri_stop(mac_ring_driver_t ring_handle);
mblk_t *mri_tx(void *arg, mblk_t *mp);
mblk_t *mri_poll(void *arg, int nbytes, int npackets);
int mri_stat(mac_ring_driver_t ring_handle, uint_t stat,
      uint64_t *val);
int mri_intr_enable(mac_intr_handle_t *ihandle);
int mri_intr_disable(mac_intr_handle_t *ihandle);

Parameters

ring_handle

The opaque handle to the driver's representation of the specified ring.

gen_num

Generation number for this ring.

arg

Opaque handle to the driver's ring.

mblk_t

Chain of mblk packet buffers.

nbytes

The number of total bytes that will be polled for this call to mri_poll().

npackets

The maximum number of packets that will be returned for this call to mri_poll().

statsp

The pointer to the ring statistic being queried.

ihandle

The opaque handle to the driver private data representing this interrupt.

Interface Level

Solaris architecture specific (Solaris DDI).

Description

The mri_start() function is the driver entry point called by the MAC layer to start the ring processing packets.

The mri_stop() function is the driver entry point called by the MAC layer to stop the ring processing packets.

The mri_tx() function is the driver entry point called by the MAC layer to transmit packets. This is a TX ring only entry point.

The mri_poll() function is the driver entry point called by the MAC layer to poll for the reception of incoming packets. This is RX ring only driver entry point. Packets are returned to the MAC layer as a chain of mblks. The parameters of nbytes is used to cap the number of bytes that can be polled while the npackets parameters caps the number of packets that can be polled.

The mri_stat() function is the driver entry point called to get various ring statistics. Statistics included for TX/RX rings:

  • MAC_STAT_OERRORS
  • MAC_STAT_OBYTES
  • MAC_STAT_OPACKETS
  • MAC_STAT_IERRORS
  • MAC_STAT_IBYTES
  • MAC_STAT_IPACKETS

The mri_intr_enable() function is the driver entry point called by the MAC layer to enable interrupts to re-enable interrupts while transitioning the ring from polling mode to interrupt mode. This is an RX ring entry point.

The mri_intr_disable() function is the driver entry point called by the MAC layer to disable interrupts for the specified ring while transitioning the ring to polling mode.

Return Values

The mri_start() function returns 0 on success and EIO when the operation fails.

The mri_tx() function returns NULL if all packets are transmitted. It returns some or all of the mblk chain if some or all of the packets where processed.

The mri_poll() function returns It returns a chain of packets received during this poll call or NULL if no packets where received.

The mri_stat() function returns 0 on success and ENOTSUP if the statistic is not supported.

The mri_intr_enable() function returns 0 on success.

The mri_intr_disable() function returns 0 on success.

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/header
Interface Stability
Committed

See Also

attributes(7), mac_capab_rings(9E), mac_group_info(9E), mac_capab_rings(9S), mac_register(9S)