---
title: NEProvider
framework: networkextension
role: symbol
role_heading: Class
path: networkextension/neprovider
---

# NEProvider

An abstract base class for all NetworkExtension providers.

## Declaration

```swift
class NEProvider
```

## Overview

Overview See the documentation for the NEProvider subclasses for details about how to create Network Extension Provider extensions. The NEProvider class and its subclasses expose methods and properties that allow Network Extension Provider extensions to participate in and affect the network data path on iOS and macOS. For example, the handleNewFlow: method in NEFilterDataProvider allows Filter Data Provider extensions to make pass/block decisions on TCP connections as the connections are established on the system. Subclassing Notes The NEProvider class should not be subclassed directly. Instead, you should create subclasses of NEProvider subclasses (and in some cases subsubclasses). Methods to Override sleep(completionHandler:) wake()

## Topics

### Handling sleep and wake

- [sleep(completionHandler:)](networkextension/neprovider/sleep(completionhandler:).md)
- [wake()](networkextension/neprovider/wake().md)

### Creating network connections

- [createTCPConnection(to:enableTLS:tlsParameters:delegate:)](networkextension/neprovider/createtcpconnection(to:enabletls:tlsparameters:delegate:).md)
- [createUDPSession(to:from:)](networkextension/neprovider/createudpsession(to:from:).md)

### Monitoring the network state

- [defaultPath](networkextension/neprovider/defaultpath.md)

### Supporting system extensions

- [startSystemExtensionMode()](networkextension/neprovider/startsystemextensionmode().md)

### Constants

- [NEProviderStopReason](networkextension/neproviderstopreason.md)

### Displaying messages

- [displayMessage(_:completionHandler:)](networkextension/neprovider/displaymessage(_:completionhandler:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [NEAppPushProvider](networkextension/neapppushprovider.md)
- [NEDNSProxyProvider](networkextension/nednsproxyprovider.md)
- [NEFilterProvider](networkextension/nefilterprovider.md)
- [NETunnelProvider](networkextension/netunnelprovider.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### App proxy provider

- [NEAppProxyProvider](networkextension/neappproxyprovider.md)
- [NETunnelProvider](networkextension/netunnelprovider.md)
- [NETunnelNetworkSettings](networkextension/netunnelnetworksettings.md)
