---
title: controllerDidOpen
framework: kernel
role: pseudoSymbol
path: kernel/ionetworkinterface/1810292-controllerdidopen
---

# controllerDidOpen

Sends a notification that the interface has opened the network controller.

## Declaration

```occ
virtual bool controllerDidOpen(
 IONetworkController *controller ); 
```

## Parameters

- `controller`: The controller that was opened.

## Return Value

Return Value Must return true in order for handleOpen() to accept the client open. If the return is false, then the controller will be closed and the client open will fail.

## Overview

Overview This method is called by handleOpen() to notify subclasses that the controller was opened. The open on the controller occurs when the interface receives the initial open request from a client. Subclasses can override this method and inspect the controller before allowing the client open. This method is called with the arbitration lock held, hence issuing I/O to the controller must be avoided to eliminate the possibility of a deadlock.

## See Also

### Miscellaneous

- [addNetworkData](kernel/ionetworkinterface/1810235-addnetworkdata.md)
- [attachToDataLinkLayer](kernel/ionetworkinterface/1810250-attachtodatalinklayer.md)
- [clearInputQueue](kernel/ionetworkinterface/1810266-clearinputqueue.md)
- [controllerDidChangePowerState](kernel/ionetworkinterface/1810277-controllerdidchangepowerstate.md)
- [controllerWillChangePowerState](kernel/ionetworkinterface/1810306-controllerwillchangepowerstate.md)
- [controllerWillClose](kernel/ionetworkinterface/1810322-controllerwillclose.md)
- [debuggerRegistered](kernel/ionetworkinterface/1810336-debuggerregistered.md)
- [detachFromDataLinkLayer](kernel/ionetworkinterface/1810351-detachfromdatalinklayer.md)
- [feedPacketInputTap](kernel/ionetworkinterface/1810364-feedpacketinputtap.md)
- [feedPacketOutputTap](kernel/ionetworkinterface/1810380-feedpacketoutputtap.md)
- [flushInputQueue](kernel/ionetworkinterface/1810398-flushinputqueue.md)
- [free](kernel/ionetworkinterface/1810410-free.md)
- [getController](kernel/ionetworkinterface/1810426-getcontroller.md)
- [getExtraFlags](kernel/ionetworkinterface/1810443-getextraflags.md)
- [getFlags](kernel/ionetworkinterface/1810460-getflags.md)
- [getIfnet](kernel/ionetworkinterface/1810471-getifnet.md)
- [getInterfaceState](kernel/ionetworkinterface/1810480-getinterfacestate.md)
- [getInterfaceType](kernel/ionetworkinterface/1810498-getinterfacetype.md)
- [getMaxTransferUnit](kernel/ionetworkinterface/1810513-getmaxtransferunit.md)
- [getMediaAddressLength](kernel/ionetworkinterface/1810531-getmediaaddresslength.md)
- [getMediaHeaderLength](kernel/ionetworkinterface/1810551-getmediaheaderlength.md)
- [getNamePrefix](kernel/ionetworkinterface/1810563-getnameprefix.md)
- [getNetworkData(const char *)](kernel/ionetworkinterface/1810574-getnetworkdata.md)
- [getNetworkData(const OSSymbol *)](kernel/ionetworkinterface/1810596-getnetworkdata.md)
- [getUnitNumber](kernel/ionetworkinterface/1810607-getunitnumber.md)
- [handleClientClose](kernel/ionetworkinterface/1810628-handleclientclose.md)
- [handleClientOpen](kernel/ionetworkinterface/1810645-handleclientopen.md)
- [init](kernel/ionetworkinterface/1810663-init.md)
- [initIfnetParams](kernel/ionetworkinterface/1810678-initifnetparams.md)
- [inputEvent](kernel/ionetworkinterface/1810692-inputevent.md)
- [inputPacket](kernel/ionetworkinterface/1810712-inputpacket.md)
- [isPrimaryInterface](kernel/ionetworkinterface/1810743-isprimaryinterface.md)
- [isRegistered](kernel/ionetworkinterface/1810763-isregistered.md)
- [lock](kernel/ionetworkinterface/1810783-lock.md)
- [performCommand](kernel/ionetworkinterface/1810800-performcommand.md)
- [powerStateDidChangeTo](kernel/ionetworkinterface/1810818-powerstatedidchangeto.md)
- [powerStateWillChangeTo](kernel/ionetworkinterface/1810839-powerstatewillchangeto.md)
- [registerOutputHandler](kernel/ionetworkinterface/1810858-registeroutputhandler.md)
- [removeNetworkData(const char *)](kernel/ionetworkinterface/1810886-removenetworkdata.md)
- [removeNetworkData(const OSSymbol *)](kernel/ionetworkinterface/1810904-removenetworkdata.md)
- [setFlags](kernel/ionetworkinterface/1810924-setflags.md)
- [setInterfaceState](kernel/ionetworkinterface/1810944-setinterfacestate.md)
- [setInterfaceType](kernel/ionetworkinterface/1810958-setinterfacetype.md)
- [setMaxTransferUnit](kernel/ionetworkinterface/1810979-setmaxtransferunit.md)
- [setMediaAddressLength](kernel/ionetworkinterface/1810991-setmediaaddresslength.md)
- [setMediaHeaderLength](kernel/ionetworkinterface/1811003-setmediaheaderlength.md)
- [setUnitNumber](kernel/ionetworkinterface/1811014-setunitnumber.md)
- [unlock](kernel/ionetworkinterface/1811026-unlock.md)
