NIC Driver API Functions

This section lists the supported NIC driver API functions called by the Network Link Layer (NL2). Their prototypes are declared in the Rtnd.h header file.

Function Description

RtndAdjustClockTime

Adjusts the time of a NIC clock by applying an offset to the current counter value.

RtndAllocateRxFrameDataBuffers

Allocates a set of receive frame data buffers.

RtndAllocateTxFrameDataBuffers

Allocates a set of transmit frame data buffers.

RtndApplyRxBuffers

Fetches all buffers inserted in the Receive Queue with RtndSubmitRxBuffer.

RtndApplyTxBuffers

Transmits all buffers inserted in the Transmit Queue with RtndSubmitTxBuffer.

RtndAttachRxQueue

Attaches the specified Receive Queue to the current application process.

RtndAttachTxQueue

Attaches the specified Transmit Queue to the current application process.

RtndControlDeviceSpecialFunction

Controls a special function of a device.

RtndDetachRxQueue

Detaches the specified Receive Queue from the current application process.

RtndDetachTxQueue

Detaches the specified Transmit Queue from the current application process.

RtndEnableRxInterruptSource

Enables or disables the receive interrupt for a specific Receive Queue.

RtndEnableTxInterruptSource

Enables or disables the transmit interrupt for a specific Transmit Queue.

RtndEndDriver

Ends a driver that was initiated by the RtndInitDriver function.

RtndExtractLastTxTimestamp

Determines whether the Egress Timestamp register associated with a given Transmit Queue is valid and, if it is, returns the Egress Timestamp value.

RtndExtractRxBuffer

Extracts a filled buffer from the specified Receive Queue.

RtndExtractTxBuffer

Extracts a consumed buffer from the specified Transmit Queue.

RtndFreeRxFrameDataBuffers

Frees a set of receive frame data buffers previously allocated by RtndAllocateRxFrameDataBuffers.

RtndFreeTxFrameDataBuffers

Frees a set of transmit frame data buffers previously allocated by RtndAllocateTxFrameDataBuffers.

RtndGetDispatcherEtherTypeEntry

Gets an entry in the EtherType Hardware Dispatcher table.

RtndGetDispatcherPcpEntry

Gets an entry in the PCP Hardware Dispatcher table.

RtndGetDispatcherUdpPortEntry

Gets an entry in the UDP Port Hardware Dispatcher table.

RtndGetTxBuffers

Gets multiple buffers from the driver's pool of available transmit buffers.

RtndInitDriver

Initializes the driver and exchanges global information between the driver and the Network Link Layer (NL2).

RtndManageInterface

Manages an interface on the PCI Bus.

RtndQueryInterfaceCapability

Gets a given capability of an interface.

RtndQueryInterfaceFeature

Gets a given feature of an interface.

RtndQueryLinkStatus

Gets the Link Status of an interface.

RtndQueryMacAddress

Gets the MAC address of an interface.

RtndReadClock

Reads a NIC clock time and CPU time simultaneously (cross-timestamp) and returns all timestamps.

RtndReturnTxBuffers

Returns multiple buffers to the driver's pool of available transmit buffers.

RtndSetCbsParams

Sets the Credit-Based Shaper parameters on a given Transmit Queue.

RtndSetClockRate

Sets the rate of a NIC clock.

RtndSetDispatcherEtherTypeEntry

Updates an entry in the EtherType Hardware Dispatcher table.

RtndSetDispatcherPcpEntry

Updates an entry in the PCP Hardware Dispatcher table.

RtndSetDispatcherUdpPortEntry

Updates an entry in the UDP Port Hardware Dispatcher.

RtndSetInterface

Writes a given setting to the interface.

RtndSetInterruptModeration

Requests the interface to change the value of the interval, in nanoseconds, for interrupt moderation. If the interrupt type is MSI-X, the NL2 will supply the message ID of the MSI-X message to throttle. Otherwise, the NL2 will set the MessageId parameter to zero (0).

RtndSetMulticastFilter

Updates the hardware Multicast Hash Filter of an interface.

RtndSetPassBadFramesMode

Requests the interface to enable or disable the Pass Bad Frames mode.

RtndSetPromiscuousMode

Requests the interface to enable or disable promiscuous mode.

RtndShutdownInterface

Shuts down an interface. After the function returns, the NIC will no longer generate a hardware interrupt.

RtndStartInterface

Starts an interface.

RtndStartRxQueue

Starts the specified Receive Queue.

RtndStartTxQueue

Starts the specified Transmit Queue.

RtndStopInterface

Stops an interface.

RtndStopRxQueue

Stops the specified Receive Queue.

RtndStopTxQueue

Stops the specified Transmit Queue.

RtndSubmitRxBuffer

Inserts a buffer into the specified Receive Queue.

RtndSubmitTxBuffer

Inserts a buffer into the specified Transmit Queue.

RtndUnmanageInterface

Removes all associations made for a given interface.