<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Network",
  "identifier" : "/documentation/Network/NWParametersProvider/fastOpenAllowed(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Network"
    ],
    "preciseIdentifier" : "s:7Network20NWParametersProviderP15fastOpenAllowedyxSbF"
  },
  "title" : "fastOpenAllowed(_:)"
}
-->

# fastOpenAllowed(_:)

Allow fast open to be used on a connection.

```
func fastOpenAllowed(_ allowed: Bool) -> Self
```

## Parameters

`allowed`

True if fast open should be used, false otherwise.

## Discussion

Use fast open for an outbound connection, which may be done at any protocol level.
Use of fast open requires that the caller send idempotent data on the connection
before the connection may move into the ready state.

> Warning: This may have security implications for application data.
> In particular, TLS early data is replayable by a network attacker.
> You must account for this when sending data before the handshake
> is confirmed. See RFC 8446 for more information. You MUST NOT
> enable fast open without a specific application profile that defines its use.

As a side effect, this may implicitly enable fast open or early data for protocols
in the stack, even if they did not have fast open explicitly enabled on them
(such as the option to enable TCP Fast Open).

---

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)