Framework

NetworkingDriverKit

Develop drivers for Ethernet networking devices.

Overview

Use NetworkingDriverKit to develop drivers for USB Ethernet adapters. This framework extends the API of DriverKit, providing you with a service class for managing your networking driver. It also provides support for managing the memory you use to store packets, transferring those packets between the device and networking stack, and inspecting the Ethernet link status.

Develop your driver with DriverKit and NetworkingDriverKit. Use USBDriverKit to manage the connection to your hardware device. Include your driver inside your macOS app and use the SystemExtensions framework to install and upgrade the driver on the user’s Mac.

Topics

Essentials

com.apple.developer.driverkit.family.networking

A Boolean value indicating whether to match the driver against devices that communicate using networking protocols.

Network Service

IOUserNetworkEthernet

The object you use to manage the setup, configuration, and teardown of your networking driver.

Packet Management

IOUserNetworkPacketBufferPool

An object that manages the storage space for packets coming into and out of your driver.

IOUserNetworkPacket

A network packet containing the data for your driver to process.

IOUserNetworkPacketDirection

The direction in which the packet moves, relative to the device.

Packet Queues

IOUserNetworkRxSubmissionQueue

The queue that receives packets from the device.

IOUserNetworkRxCompletionQueue

The queue you use to store packets that you successfully transferred to the networking stack.

IOUserNetworkTxSubmissionQueue

The queue that receives packets from the networking stack.

IOUserNetworkTxCompletionQueue

The queue you use to store packets that you successfully transferred to the device.

IOUserNetworkPacketQueue

The base class for the queues that manage the packets moving to and from your device.