Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reenable UPnP port mapping on iOS #2495

Closed
bradfitz opened this issue Jul 22, 2021 · 3 comments · Fixed by #4826
Closed

Reenable UPnP port mapping on iOS #2495

bradfitz opened this issue Jul 22, 2021 · 3 comments · Fixed by #4826
Labels
connectivity L3 Some users Likelihood OS-ios P1 Nuisance Priority level portmap Pertaining to NAT-PMP, PCP, UPnP T3 Performance/Debugging Issue type

Comments

@bradfitz
Copy link
Member

We're going to ship Tailscale 1.12 with UPnP port mapping enabled on all platforms except iOS due to binary size reasons (which currently impacts our available memory, for perhaps linker reasons)

This is a tracking bug to reenable UPnP on iOS either through lighter code or if we fix the Go linker to decouple binary size from memory size.

bradfitz added a commit that referenced this issue Jul 22, 2021
Updates #2495

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
bradfitz added a commit that referenced this issue Jul 22, 2021
Updates #2495

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
@DentonGentry
Copy link
Contributor

We should be able to do this once we switch to Go 1.18: https://tailscale.com/blog/go-linker/
Even on older iOS releases we'll get almost a Meg back.

@DentonGentry
Copy link
Contributor

We have just switched to Go 1.18, which contains all of the linker changes to reduce the size of the binary.

Additionally, Apple has substantially pushed the fleet of iOS devices to iOS 15 which increases the amount of memory available to a Network Extension from 15 Megs to 50 Megs.

@DentonGentry
Copy link
Contributor

The current plan is to bump the minimum iOS version to 15 for the 1.26 release. Almost the entire fleet of iOS devices is on 15 already, and remaining devices which cannot update will be able to use 1.24 as long as they need to.

Once that is done, we can depend on having 50 Megs of memory available instead of 15. We can let iOS use portmap then.

DentonGentry added a commit that referenced this issue Jun 9, 2022
In the 1.27 unstable releases we set the min-version to iOS15,
which means we have 50 MBytes of RAM in the Network Extension.
https://tailscale.com/blog/go-linker/

Include the UPnP/NAT-PMP/PCP portmapper support now that there
is room for it.

Fixes #2495
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
DentonGentry added a commit that referenced this issue Jun 9, 2022
In the 1.27 unstable releases we set the min-version to iOS15,
which means we have 50 MBytes of RAM in the Network Extension.
https://tailscale.com/blog/go-linker/

Include the UPnP/NAT-PMP/PCP portmapper support now that there
is memory for it.

Fixes #2495
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
DentonGentry added a commit that referenced this issue Jun 9, 2022
In the 1.27 unstable releases we set the min-version to iOS15,
which means we have 50 MBytes of RAM in the Network Extension.
https://tailscale.com/blog/go-linker/

Include the UPnP/NAT-PMP/PCP portmapper support now that there
is memory for it.

Fixes #2495
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
DentonGentry added a commit that referenced this issue Jun 9, 2022
In the 1.27 unstable releases we set the min-version to iOS15,
which means we have 50 MBytes of RAM in the Network Extension.
https://tailscale.com/blog/go-linker/

Include the UPnP/NAT-PMP/PCP portmapper support now that there
is memory for it.

Fixes #2495
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
Soypete pushed a commit that referenced this issue Jun 14, 2022
In the 1.27 unstable releases we set the min-version to iOS15,
which means we have 50 MBytes of RAM in the Network Extension.
https://tailscale.com/blog/go-linker/

Include the UPnP/NAT-PMP/PCP portmapper support now that there
is memory for it.

Fixes #2495
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
@DentonGentry DentonGentry added the portmap Pertaining to NAT-PMP, PCP, UPnP label Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
connectivity L3 Some users Likelihood OS-ios P1 Nuisance Priority level portmap Pertaining to NAT-PMP, PCP, UPnP T3 Performance/Debugging Issue type
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants