---
title: IOEthernetController
framework: kernel
role: symbol
role_heading: Class
path: kernel/ioethernetcontroller
---

# IOEthernetController

Abstract superclass for Ethernet controllers.

## Declaration

```occ
class IOEthernetController : IONetworkController
```

## Overview

Overview Ethernet controller drivers should subclass IOEthernetController, and implement or override the hardware specific methods to create an Ethernet driver. An interface object (an IOEthernetInterface instance) must be instantiated by the driver, through attachInterface(), to connect the controller driver to the data link layer.

## Topics

### Miscellaneous

- [createInterface](kernel/ioethernetcontroller/1811019-createinterface.md)
- [disablePacketFilter](kernel/ioethernetcontroller/1811029-disablepacketfilter.md)
- [enablePacketFilter](kernel/ioethernetcontroller/1811042-enablepacketfilter.md)
- [free](kernel/ioethernetcontroller/1811058-free.md)
- [getHardwareAddress(IOEthernetAddress *)](kernel/ioethernetcontroller/1811070-gethardwareaddress.md)
- [getHardwareAddress(void *, UInt32 *)](kernel/ioethernetcontroller/1811082-gethardwareaddress.md)
- [getMaxPacketSize](kernel/ioethernetcontroller/1811094-getmaxpacketsize.md)
- [getMinPacketSize](kernel/ioethernetcontroller/1811103-getminpacketsize.md)
- [getPacketFilters(const OSSymbol *, UInt32 *)](kernel/ioethernetcontroller/1811115-getpacketfilters.md)
- [getPacketFilters(UInt32 *)](kernel/ioethernetcontroller/1811127-getpacketfilters.md)
- [getVlanTagDemand](kernel/ioethernetcontroller/1811320-getvlantagdemand.md)
- [init](kernel/ioethernetcontroller/1811348-init.md)
- [initialize](kernel/ioethernetcontroller/1811361-initialize.md)
- [publishProperties](kernel/ioethernetcontroller/1811373-publishproperties.md)
- [setHardwareAddress(const IOEthernetAddress *)](kernel/ioethernetcontroller/1811383-sethardwareaddress.md)
- [setHardwareAddress(const void *, UInt32)](kernel/ioethernetcontroller/1811391-sethardwareaddress.md)
- [setMulticastList](kernel/ioethernetcontroller/1811399-setmulticastlist.md)
- [setMulticastMode](kernel/ioethernetcontroller/1811409-setmulticastmode.md)
- [setPromiscuousMode](kernel/ioethernetcontroller/1811419-setpromiscuousmode.md)
- [setVlanTag](kernel/ioethernetcontroller/1811426-setvlantag.md)
- [setWakeOnMagicPacket](kernel/ioethernetcontroller/1811434-setwakeonmagicpacket.md)

### Instance Variables

- [_reserved](kernel/ioethernetcontroller/reserved.md)

### Instance Methods

- [addTimeSyncReceivePacketHandler](kernel/ioethernetcontroller/2934806-addtimesyncreceivepackethandler.md)
- [addTimeSyncTransmitPacketHandler](kernel/ioethernetcontroller/2934783-addtimesynctransmitpackethandler.md)
- [allocateAVBPacket](kernel/ioethernetcontroller/2934778-allocateavbpacket.md)
- [changeAVBControllerState](kernel/ioethernetcontroller/2934802-changeavbcontrollerstate.md)
- [cleanupTransmitQueue](kernel/ioethernetcontroller/2934797-cleanuptransmitqueue.md)
- [completeAVBPacket](kernel/ioethernetcontroller/2934805-completeavbpacket.md)
- [createInterface](kernel/ioethernetcontroller/1506635-createinterface.md)
- [createRealtimeAVBPacketPool](kernel/ioethernetcontroller/4284033-createrealtimeavbpacketpool.md)
- [deregisterForAVBStateChangeNotifications](kernel/ioethernetcontroller/2934809-deregisterforavbstatechangenotif.md)
- [disablePacketFilter](kernel/ioethernetcontroller/1506610-disablepacketfilter.md)
- [enablePacketFilter](kernel/ioethernetcontroller/1506623-enablepacketfilter.md)
- [free](kernel/ioethernetcontroller/1506601-free.md)
- [getAVBSupport](kernel/ioethernetcontroller/2934775-getavbsupport.md)
- [getControllerAVBState](kernel/ioethernetcontroller/2934818-getcontrolleravbstate.md)
- [getHardwareAddress](kernel/ioethernetcontroller/1506619-gethardwareaddress.md)
- [getHardwareAddress](kernel/ioethernetcontroller/3516606-gethardwareaddress.md)
- [getMaxPacketSize](kernel/ioethernetcontroller/1506630-getmaxpacketsize.md)
- [getMetaClass](kernel/ioethernetcontroller/1506595-getmetaclass.md)
- [getMinPacketSize](kernel/ioethernetcontroller/1506647-getminpacketsize.md)
- [getPacketFilters](kernel/ioethernetcontroller/1506617-getpacketfilters.md)
- [getPacketFilters](kernel/ioethernetcontroller/3516607-getpacketfilters.md)
- [getRealtimeReceiveQueueFilter](kernel/ioethernetcontroller/2934811-getrealtimereceivequeuefilter.md)
- [getTransmitQueuePacketLatency](kernel/ioethernetcontroller/2934793-gettransmitqueuepacketlatency.md)
- [getTransmitQueuePrefetchDelay](kernel/ioethernetcontroller/2934816-gettransmitqueueprefetchdelay.md)
- [getVlanTagDemand](kernel/ioethernetcontroller/1506624-getvlantagdemand.md)
- [init](kernel/ioethernetcontroller/1506598-init.md)
- [publishProperties](kernel/ioethernetcontroller/1506650-publishproperties.md)
- [receivedTimeSyncPacket](kernel/ioethernetcontroller/2934785-receivedtimesyncpacket.md)
- [registerForAVBStateChangeNotifications](kernel/ioethernetcontroller/2934801-registerforavbstatechangenotific.md)
- [removeTimeSyncReceivePacketHandler](kernel/ioethernetcontroller/2934796-removetimesyncreceivepackethandl.md)
- [removeTimeSyncTransmitPacketHandler](kernel/ioethernetcontroller/2934781-removetimesynctransmitpackethand.md)
- [setAVBControllerState](kernel/ioethernetcontroller/2934825-setavbcontrollerstate.md)
- [setAVBPacketMapper](kernel/ioethernetcontroller/2934807-setavbpacketmapper.md)
- [setGPTPPresent](kernel/ioethernetcontroller/2934787-setgptppresent.md)
- [setHardwareAddress](kernel/ioethernetcontroller/1506608-sethardwareaddress.md)
- [setHardwareAddress](kernel/ioethernetcontroller/3516608-sethardwareaddress.md)
- [setMulticastList](kernel/ioethernetcontroller/1506649-setmulticastlist.md)
- [setMulticastMode](kernel/ioethernetcontroller/1506646-setmulticastmode.md)
- [setNumberOfRealtimeReceiveQueues](kernel/ioethernetcontroller/2934779-setnumberofrealtimereceivequeues.md)
- [setNumberOfRealtimeTransmitQueues](kernel/ioethernetcontroller/2934803-setnumberofrealtimetransmitqueue.md)
- [setPromiscuousMode](kernel/ioethernetcontroller/1506593-setpromiscuousmode.md)
- [setRealtimeMulticastIsAllowed](kernel/ioethernetcontroller/2934788-setrealtimemulticastisallowed.md)
- [setRealtimeReceiveDestinationMACList](kernel/ioethernetcontroller/2934790-setrealtimereceivedestinationmac.md)
- [setRealtimeReceiveQueueFilter](kernel/ioethernetcontroller/2934817-setrealtimereceivequeuefilter.md)
- [setRealtimeReceiveQueuePacketHandler](kernel/ioethernetcontroller/2934786-setrealtimereceivequeuepackethan.md)
- [setTimeSyncPacketSupport](kernel/ioethernetcontroller/2934776-settimesyncpacketsupport.md)
- [setTransmitQueuePacketLatency](kernel/ioethernetcontroller/2934814-settransmitqueuepacketlatency.md)
- [setTransmitQueuePrefetchDelay](kernel/ioethernetcontroller/2934774-settransmitqueueprefetchdelay.md)
- [setVlanTag](kernel/ioethernetcontroller/1506645-setvlantag.md)
- [setWakeOnMagicPacket](kernel/ioethernetcontroller/1506633-setwakeonmagicpacket.md)
- [timeSyncCallbackThread](kernel/ioethernetcontroller/2934821-timesynccallbackthread.md)
- [transmitRealtimePackets](kernel/ioethernetcontroller/2934777-transmitrealtimepackets.md)
- [transmitTimeSyncPacket](kernel/ioethernetcontroller/2934820-transmittimesyncpacket.md)
- [transmittedTimeSyncPacket](kernel/ioethernetcontroller/2934799-transmittedtimesyncpacket.md)

### Type Methods

- [allocatedAVBPacketCompletion](kernel/ioethernetcontroller/2934795-allocatedavbpacketcompletion.md)
- [initialize](kernel/ioethernetcontroller/1506611-initialize.md)
- [realtimePoolAVBPacketCompletion](kernel/ioethernetcontroller/2934804-realtimepoolavbpacketcompletion.md)
- [timeSyncCallbackThreadEntry](kernel/ioethernetcontroller/2934789-timesynccallbackthreadentry.md)

## Relationships

### Inherits From

- [IONetworkController](kernel/ionetworkcontroller.md)

## See Also

### IOKit

- [IOUSBDevice](kernel/iousbdevice.md)
- [IOUSBInterface](kernel/iousbinterface.md)
- [IOOFPathMatching](kernel/1575304-ioofpathmatching.md)
- [IOUSBHostInterface](kernel/iousbhostinterface.md)
- [IOUSBHostDevice](kernel/iousbhostdevice.md)
- [IOUSBHostPipe](kernel/iousbhostpipe.md)
- [IOUSBHostIOSource](kernel/iousbhostiosource.md)
- [IOUSBHostStream](kernel/iousbhoststream.md)
- [IOHIDEventDriver](kernel/iohideventdriver.md)
- [IOHIDEventService](kernel/iohideventservice.md)
- [IOHIDInterface](kernel/iohidinterface.md)
- [IOHIDSystem](kernel/iohidsystem.md)
- [IOHIKeyboardMapper](kernel/iohikeyboardmapper.md)
- [IOHIKeyboard](kernel/iohikeyboard.md)
- [IOHIPointing](kernel/iohipointing.md)
- [IOHIDevice](kernel/iohidevice.md)
- [IOHIDElement](kernel/iohidelement.md)
- [IOHIDWorkLoop](kernel/iohidworkloop.md)
- [IOEthernetInterface](kernel/ioethernetinterface.md)
