TechnologiesNetworking & Connectivity

NetworkExtension

iOSmacOStvOSwatchOSvisionOS

NetworkExtension lets you customize and extend core networking on iOS, macOS, tvOS, watchOS, and visionOS, building VPNs, content filters, DNS proxies, hotspot helpers, and packet tunnel providers. You implement networking logic by subclassing NEProvider variants such as NETunnelProvider, NEAppProxyProvider, NEDNSProxyProvider, and NEFilterDataProvider, and you configure and control these extensions through manager classes like NEVPNManager, NETunnelProviderManager, NEDNSProxyManager, and NEDNSSettingsManager. App proxy and filter providers work with flow objects such as NEAppProxyTCPFlow, NEAppProxyUDPFlow, NEFilterSocketFlow, and NEFilterBrowserFlow, returning decisions through types like NEFilterNewFlowVerdict and NEFilterControlVerdict. DNS behavior is described with NEDNSSettings, NEDNSOverTLSSettings, and NEDNSOverHTTPSSettings, while proxy configuration uses NEProxyServer and NEProxySettings.

Providers 7

The base provider class and its subclasses that implement the networking logic of an extension.

  • Cl
    NEProvideriOS 9.0+
    @interface NEProvider
  • Cl
    NETunnelProvideriOS 9.0+
    @interface NETunnelProvider
  • Cl
    NEPacketTunnelProvideriOS 9.0+
    @interface NEPacketTunnelProvider
  • Cl
    NEAppProxyProvideriOS 9.0+
    @interface NEAppProxyProvider
  • Cl
    NEDNSProxyProvideriOS 11.0+
    @interface NEDNSProxyProvider
  • Cl
    NEAppPushProvideriOS 14.0+
    @interface NEAppPushProvider
  • En
    NEProviderStopReasoniOS 9.0+
    @typedef NEProviderStopReason

VPN Configuration and Control 9

Managers and connection objects that configure, save, and control personal and per-app VPN tunnels.

  • Cl
    NEVPNManageriOS 8.0+
    @interface NEVPNManager
  • Cl
    NEVPNConnectioniOS 8.0+
    @interface NEVPNConnection
  • Cl
    NETunnelProviderManageriOS 9.0+
    @interface NETunnelProviderManager
  • Cl
    NETunnelProviderSessioniOS 9.0+
    @file NETunnelProviderSession.h
  • En
    NEVPNStatusiOS 8.0+
    @typedef NEVPNStatus
  • St
    NEVPNErroriOS 8.0+
    A structure describing errors that occur while configuring or controlling a VPN.
  • St
    NETunnelProviderErroriOS 9.0+
    A structure describing errors raised by a tunnel provider extension.
  • En
    NEVPNConnectionErroriOS 16.0+
    @typedef NEVPNConnectionError
  • En
    NETunnelProviderRoutingMethodiOS 9.0+
    @typedef NETunnelProviderRoutingMethod

VPN Protocols and IKEv2 Parameters 14

Protocol configuration objects and cryptographic parameters that describe how a VPN connection is established.

  • Cl
    NEVPNProtocoliOS 8.0+
    @interface NEVPNProtocol
  • Cl
    NEVPNProtocolIPSeciOS 8.0+
    @interface NEVPNProtocolIPSec
  • Cl
    NEVPNProtocolIKEv2iOS 8.0+
    @interface NEVPNProtocolIKEv2
  • Cl
    NETunnelProviderProtocoliOS 9.0+
    @interface NETunnelProviderProtocol
  • Cl
    NEVPNIKEv2SecurityAssociationParametersiOS 8.0+
    @class NEVPNIKEv2SecurityAssociationParameters
  • Cl
    NEVPNIKEv2PPKConfigurationiOS 18.0+
    @interface NEVPNIKEv2PPKConfiguration
  • En
    NEVPNIKEAuthenticationMethodiOS 8.0+
    @typedef NEVPNIKEAuthenticationMethod
  • En
    NEVPNIKEv2EncryptionAlgorithmiOS 8.0+
    @typedef NEVPNIKEv2EncryptionAlgorithm
  • En
    NEVPNIKEv2IntegrityAlgorithmiOS 8.0+
    @typedef NEVPNIKEv2IntegrityAlgorithm
  • En
    NEVPNIKEv2DiffieHellmanGroupiOS 8.0+
    @typedef NEVPNIKEv2DiffieHellmanGroup
  • En
    NEVPNIKEv2DeadPeerDetectionRateiOS 8.0+
    @typedef NEVPNIKEv2DeadPeerDetectionRate
  • En
    NEVPNIKEv2PostQuantumKeyExchangeMethodiOS 26.0+
    @typedef NEVPNIKEv2PostQuantumKeyExchangeMethod
  • En
    NEVPNIKEv2CertificateTypeiOS 8.3+
    @typedef NEVPNIKEv2CertificateType
  • En
    NEVPNIKEv2TLSVersioniOS 11.0+
    @typedef NEVPNIKEv2TLSVersion

On-Demand Rules 9

Rules that determine when a VPN connection should start automatically based on network conditions.

  • Cl
    NEOnDemandRuleiOS 8.0+
    @interface NEOnDemandRule
  • Cl
    NEOnDemandRuleConnectiOS 8.0+
    @interface NEOnDemandRuleConnect
  • Cl
    NEOnDemandRuleDisconnectiOS 8.0+
    @interface NEOnDemandRuleDisconnect
  • Cl
    NEOnDemandRuleIgnoreiOS 8.0+
    @interface NEOnDemandRuleIgnore
  • Cl
    NEOnDemandRuleEvaluateConnectioniOS 8.0+
    @interface NEOnDemandRuleEvaluateConnection
  • Cl
    NEEvaluateConnectionRuleiOS 8.0+
    @interface NEEvaluateConnectionRule
  • En
    NEOnDemandRuleActioniOS 8.0+
    @typedef NEOnDemandRuleAction
  • En
    NEOnDemandRuleInterfaceTypeiOS 8.0+
    @typedef NEOnDemandRuleInterfaceType
  • En
    NEEvaluateConnectionRuleActioniOS 8.0+
    @typedef NEEvaluateConnectionRuleAction

Tunnel Network Settings and Routing 8

Settings objects that describe the IP addresses, routes, and DNS used by a tunnel.

  • Cl
    NETunnelNetworkSettingsiOS 9.0+
    @interface NETunnelNetworkSettings
  • Cl
    NEPacketTunnelNetworkSettingsiOS 9.0+
    @interface NEPacketTunnelNetworkSettings
  • Cl
    NEIPv4SettingsiOS 9.0+
    @interface NEIPv4Settings
  • Cl
    NEIPv4RouteiOS 9.0+
    @interface NEIPv4Route
  • Cl
    NEIPv6SettingsiOS 9.0+
    @interface NEIPv6Settings
  • Cl
    NEIPv6RouteiOS 9.0+
    @interface NEIPv6Route
  • Cl
    NEPacketTunnelFlowiOS 9.0+
    @interface NEPacketTunnelFlow
  • Cl
    NEPacketiOS 10.0+
    @interface NEPacket

App Proxy Flows 8

Flow objects and rules used by app proxy providers to read and write application traffic.

  • Cl
    NEAppProxyFlowiOS 9.0+
    @interface NEAppProxyFlow
  • Cl
    NEAppProxyTCPFlowiOS 9.0+
    @interface NEAppProxyTCPFlow
  • Cl
    NEAppProxyUDPFlowiOS 9.0+
    @interface NEAppProxyUDPFlow
  • Pr
    NEAppProxyUDPFlowHandling
    Subclasses of NEAppProxyProvider and NEDNSProxyProvider can conform to this protocol to receive UDP data flows.
  • Cl
    NEAppProxyProviderManageriOS 9.0+
    @interface NEAppProxyProviderManager
  • Cl
    NEAppRuleiOS 9.0+
    @interface NEAppRule
  • Cl
    NEFlowMetaDataiOS 9.0+
    @interface NEFlowMetaData
  • St
    NEAppProxyFlowErroriOS 9.0+
    A structure describing errors that occur while handling an app proxy flow.

Content Filtering 17

Filter providers, flows, and verdicts that inspect and make decisions about network traffic.

  • Cl
    NEFilterProvideriOS 9.0+
    @interface NEFilterProvider
  • Cl
    NEFilterDataProvideriOS 9.0+
    @interface NEFilterDataProvider
  • Cl
    NEFilterControlProvideriOS 9.0+
    @interface NEFilterControlProvider
  • Cl
    NEFilterManageriOS 8.0+
    @interface NEFilterManager
  • Cl
    NEFilterProviderConfigurationiOS 9.0+
    @interface NEFilterProviderConfiguration
  • Cl
    NEFilterFlowiOS 9.0+
    @interface NEFilterFlow
  • Cl
    NEFilterSocketFlowiOS 9.0+
    @interface NEFilterSocketFlow
  • Cl
    NEFilterBrowserFlowiOS 9.0+
    @interface NEFilterBrowserFlow
  • Cl
    NEFilterVerdictiOS 9.0+
    @interface NEFilterVerdict
  • Cl
    NEFilterNewFlowVerdictiOS 9.0+
    @interface NEFilterNewFlowVerdict
  • Cl
    NEFilterDataVerdictiOS 9.0+
    @interface NEFilterDataVerdict
  • Cl
    NEFilterControlVerdictiOS 9.0+
    @interface NEFilterControlVerdict
  • Cl
    NEFilterRemediationVerdictiOS 9.0+
    @interface NEFilterRemediationVerdict
  • Cl
    NEFilterReportiOS 11.0+
    @interface NEFilterReport
  • En
    NEFilterActioniOS 11.0+
    @typedef NEFilterAction
  • En
    NEFilterManagerErroriOS 8.0+
    @typedef NEFilterManagerError
  • En
    NETrafficDirectioniOS 13.0+
    @typedef NETrafficDirection

URL Filtering 4

Types that filter web traffic by URL through a managed control provider.

  • Cl
    NEURLFilter
    An object that describes URL-based content filtering settings.
  • Cl
    NEURLFilterManager
    The NEURLFilterManager class declares the programmatic interface for an object that manages URL filtering configurations.
  • Pr
    NEURLFilterControlProvider
    The NEURLFilterControlProvider protocol defines the programmatic interface for an object that is responsible for fetching pre-filter data.
  • St
    NEURLFilterPrefilter
    A struct containing a prefilter returned by fetchPrefilter() implementation. NEURLFilterPrefilter must contain a Bloom filter built

DNS Proxy and Settings 9

Managers, providers, and settings that proxy DNS or configure encrypted DNS resolution.

  • Cl
    NEDNSProxyManageriOS 11.0+
    @interface NEDNSProxyManager
  • Cl
    NEDNSProxyProviderProtocoliOS 11.0+
    @interface NEDNSProxyProviderProtocol
  • Cl
    NEDNSSettingsiOS 9.0+
    @interface NEDNSSettings
  • Cl
    NEDNSOverTLSSettingsiOS 14.0+
    An object that configures DNS resolution over a TLS-encrypted connection.
  • Cl
    NEDNSOverHTTPSSettingsiOS 14.0+
    An object that configures DNS resolution over an HTTPS-encrypted connection.
  • Cl
    NEDNSSettingsManageriOS 14.0+
    @interface NEDNSSettingsManager
  • En
    NEDNSProtocoliOS 14.0+
    @typedef NEDNSProtocol
  • En
    NEDNSProxyManagerErroriOS 11.0+
    @typedef NEDNSProxyError
  • En
    NEDNSSettingsManagerErroriOS 14.0+
    @typedef NEDNSSettingsManagerError

Relays 6

Configuration and management for network relays that route traffic through proxy servers.

  • Cl
    NERelayiOS 17.0+
    @interface NERelay
  • Cl
    NERelayManageriOS 17.0+
    @interface NERelayManager
  • Cl
    NEProxyServeriOS 9.0+
    @interface NEProxyServer
  • Cl
    NEProxySettingsiOS 9.0+
    @interface NEProxySettings
  • En
    NERelayManagerErroriOS 17.0+
    @typedef NERelayManagerError
  • En
    NERelayManagerClientErroriOS 18.0+
    @typedef NERelayManagerClientError

Hotspot Configuration and Helpers 16

Types that configure Wi-Fi hotspots and implement hotspot helper logic for captive networks.

  • Cl
    NEHotspotConfigurationiOS 11.0+
    @interface NEHotspotConfiguration
  • Cl
    NEHotspotConfigurationManageriOS 11.0+
    @interface NEHotspotConfigurationManager
  • Cl
    NEHotspotEAPSettingsiOS 11.0+
    @interface NEHotspotEAPSettings
  • Cl
    NEHotspotHS20SettingsiOS 11.0+
    @interface NEHotspotHS20Settings
  • Cl
    NEHotspotManager
    This file declares the NEHotspotManager API. The NEHotspotManager API is used to enable or disable
  • Cl
    NEHotspotNetworkiOS 9.0+
    @interface NEHotspotNetwork
  • Cl
    NEHotspotHelper
    @interface NEHotspotHelper
  • Cl
    NEHotspotHelperCommandiOS 9.0+
    @interface NEHotspotHelperCommand
  • Cl
    NEHotspotHelperResponseiOS 9.0+
    @interface NEHotspotHelperResponse
  • Pr
    NEHotspotAuthenticationProvider
    NEHotspotAuthenticationProvider protocol defines methods that can be adopted for handling
  • Pr
    NEHotspotEvaluationProvider
    NEHotspotEvaluationProvider protocol defines methods and properties that can be adopted
  • En
    NEHotspotNetworkSecurityTypeiOS 15.0+
    @typedef NEHotspotNetworkSecurityType
  • En
    NEHotspotHelperCommandTypeiOS 9.0+
    @typedef NEHotspotHelperCommandType
  • En
    NEHotspotHelperResultiOS 9.0+
    @typedef NEHotspotHelperResult
  • En
    NEHotspotHelperConfidenceiOS 9.0+
    @typedef NEHotspotHelperConfidence
  • En
    NEHotspotConfigurationErroriOS 11.0+
    @typedef NEHotspotConfigurationError

App Push and Private Networks 4

Managers and types that support app push providers and private cellular networks.

  • Cl
    NEAppPushManageriOS 14.0+
    @interface NEAppPushManager
  • Pr
    NEAppPushDelegateiOS 14.0+
    @protocol NEAppPushDelegate
  • Cl
    NEPrivateLTENetworkiOS 15.0+
    @interface NEPrivateLTENetwork
  • St
    NEAppPushManagerErroriOS 14.0+
    A structure describing errors raised by an app push manager.

Endpoints and Connections 11

Lower-level networking primitives for endpoints, paths, and TCP and UDP connections.

  • Cl
    NWEndpoint
    @interface NWEndpoint
  • Cl
    NWHostEndpoint
    @interface NWHostEndpoint
  • Cl
    NWBonjourServiceEndpoint
    @interface NWBonjourServiceEndpoint
  • Cl
    NWPath
    @interface NWPath
  • Cl
    NWTCPConnection
    @interface NWTCPConnection
  • Cl
    NWUDPSession
    @interface NWUDPSession
  • Cl
    NWTLSParameters
    DEPRECATION NOTICE
  • Pr
    NWTCPConnectionAuthenticationDelegate
    @protocol NWTCPConnectionAuthenticationDelegate
  • En
    NWPathStatus
    @typedef NWPathStatus
  • En
    NWTCPConnectionState
    @typedef NWTCPConnectionState
  • En
    NWUDPSessionState
    @typedef NWUDPSessionState

Classes 4

  • Cl
    NEAppExtensionConfiguration
    The NEAppExtensionConfiguration class adopts AppExtensionConfiguration protocol. The class
  • Cl
    NEHotspotAuthenticationProviderConfiguration
    Manages NEHotspotAuthenticationProvider's communication with the framework
  • Cl
    NEHotspotEvaluationProviderConfiguration
    Manages NEHotspotEvaluationProvider's communication with the framework
  • Cl
    NEURLFilterControlProviderConfiguration
    Manages NEURLFilterControlProvider's communication with the framework

Type Aliases 1

  • Ty
    NEHotspotHelperHandler
    @typedef NEHotspotHelperHandler

Extends 2

NSNotificationNSMutableURLRequest
← Networking & Connectivity