---
title: protocolConfiguration
framework: networkextension
role: symbol
role_heading: Instance Property
path: networkextension/netunnelprovider/protocolconfiguration
---

# protocolConfiguration

The configuration of the current tunneling session.

## Declaration

```swift
var protocolConfiguration: NEVPNProtocol { get }
```

## Discussion

Discussion The configuration is created by the containing app of the Tunnel Provider using the NETunnelProviderManager class, or by the ingestion of a com.apple.vpn.managed or a com.apple.vpn.managed.applayer configuration profile payload. See the NETunnelProviderManager class for more details. For NEPacketTunnelProvider subclasses and NEAppProxyProvider subclasses, this property will be set to a NETunnelProviderProtocol object. NETunnelProvider subclasses can observe this property using KVO to be notified when the configuration changes. For details see Key-Value Observing Programming Guide.

## See Also

### Getting the tunnel configuration

- [routingMethod](networkextension/netunnelprovider/routingmethod.md)
- [appRules](networkextension/netunnelprovider/apprules.md)
