<!--
{
  "availability" : [
    "macOS: 10.15.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Network",
  "identifier" : "/documentation/Network/NWEthernetChannel",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Network"
    ],
    "preciseIdentifier" : "s:7Network17NWEthernetChannelC"
  },
  "title" : "NWEthernetChannel"
}
-->

# NWEthernetChannel

An object you use to send and receive custom Ethernet frames.

```
final class NWEthernetChannel
```

## Overview

Use Ethernet channels to send and receive custom Ethernet frame types over an interface.

Creating Ethernet channels requires the `com.apple.developer.networking.custom-protocol` entitlement.

## Topics

### Managing Ethernet Channels

[`init(on:etherType:)`](/documentation/Network/NWEthernetChannel/init(on:etherType:))

Initializes an Ethernet channel on a specific interface with a custom Ethernet type.

[`start(queue:)`](/documentation/Network/NWEthernetChannel/start(queue:))

Starts the process of registering the channel, and sets the queue on which all channel events are delivered.

[`cancel()`](/documentation/Network/NWEthernetChannel/cancel())

Unregisters the channel from the interface.

### Handling State Updates

[`state`](/documentation/Network/NWEthernetChannel/state-swift.property)

The current state of the channel.

[`NWEthernetChannel.State`](/documentation/Network/NWEthernetChannel/State-swift.enum)

States indicating whether an Ethernet channel is able to send and receive frames.

[`stateUpdateHandler`](/documentation/Network/NWEthernetChannel/stateUpdateHandler)

A handler that delivers channel state updates.

### Sending and Receiving Ethernet Frames

[`send(content:to:vlanTag:completion:)`](/documentation/Network/NWEthernetChannel/send(content:to:vlanTag:completion:))

Sends a single Ethernet frame over a channel to a specific Ethernet address.

[`receiveHandler`](/documentation/Network/NWEthernetChannel/receiveHandler)

A handler that delivers inbound Ethernet frames.

[`NWEthernetChannel.EthernetAddress`](/documentation/Network/NWEthernetChannel/EthernetAddress)

A 48-bit Ethernet address.

### Inspecting Ethernet Channels

[`etherType`](/documentation/Network/NWEthernetChannel/etherType)

The custom Ethernet type with which the channel was initialized.

[`interface`](/documentation/Network/NWEthernetChannel/interface)

The interface with which the channel was initialized.

[`queue`](/documentation/Network/NWEthernetChannel/queue)

The queue on which channel events will be delivered.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)