---
title: performCommand
framework: kernel
role: pseudoSymbol
path: kernel/ionetworkinterface/1810800-performcommand
---

# performCommand

Handles an ioctl command sent to the network interface.

## Declaration

```occ
virtual SInt32 performCommand( 
 IONetworkController *controller, 
 unsigned longcmd, 
 void *arg0, 
 void *arg1 ); 
```

## Parameters

- `controller`: The controller object.
- `cmd`: The ioctl command code.
- `arg0`: Command argument 0. Generally a pointer to an ifnet structure associated with the interface.
- `arg1`: Command argument 1.

## Return Value

Return Value Returns a BSD return value defined in bsd/sys/errno.h.

## Overview

Overview This method handles socket ioctl commands sent to the network interface from DLIL. IONetworkInterface handles commands that are common for all network interface types. A subclass of IONetworkInterface may override this method to override the command handling in IONetworkInterface, or to extend the command processing to handle additional commands. The ioctl commands handled by IONetworkInterface are SIOCGIFMTU (Get interface MTU size), SIOCSIFMTU (Set interface MTU size), SIOCSIFMEDIA (Set media), and SIOCGIFMEDIA (Get media and link status).

## 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)
- [controllerDidOpen](kernel/ionetworkinterface/1810292-controllerdidopen.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)
- [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)
