Skip to content

Conversation

@matheus23
Copy link
Member

Description

Now that we have multipath and don't rely on quinn only seeing "EndpointMappedAddr"s, but instead have it see the actual addresses (minus the one MixedMappedAddr), we can actually address #2632 very easily. We just pass it through from how we get it from the socket/OS.

We don't have to worry about MixedMappedAddrs, because we only use them to send, they never end up at dst_ip in our transmits, because they get translated to actual IP adresses before hitting the network, and then get received as actual dst_ips on the other side.

Notes & open questions

Closes #2632

I think we can also close #2491 then? AFAICT, we removed the is_unicast_link_local IP check with QNT, so we actually send over link-local addresses now. This could mean that we fully support link-local IPs with this PR now 🎉

These changes make sense to me, but I didn't test them super thoroughly. FWIW, all tests that fail in this PR already fail before the changes for me locally.

Change checklist

  • Self-review.

@matheus23 matheus23 self-assigned this Dec 12, 2025
@github-actions
Copy link

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3770/docs/iroh/

Last updated: 2025-12-12T17:48:58Z

Copy link
Contributor

@flub flub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@flub
Copy link
Contributor

flub commented Dec 12, 2025

I think we can also close #2491 then? AFAICT, we removed the is_unicast_link_local IP check with QNT, so we actually send over link-local addresses now. This could mean that we fully support link-local IPs with this PR now 🎉

Do we not filter out the link-local addresses from the local interfaces? And we also filter out localhost somewhere unless that's the only one found I think. But maybe that's fine because the OS will do hairpinning on the LAN interface address anyway.

@n0bot n0bot bot added this to iroh Dec 12, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Dec 12, 2025
Copy link
Contributor

@dignifiedquire dignifiedquire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love deleting code

@matheus23
Copy link
Member Author

Do we not filter out the link-local addresses from the local interfaces? And we also filter out localhost somewhere unless that's the only one found I think. But maybe that's fine because the OS will do hairpinning on the LAN interface address anyway.

I can find the code that used to do that, but I can't find it in the current codebase. We directly use all addresses from our local interface.

@matheus23 matheus23 merged commit 692bb53 into feat-multipath Dec 12, 2025
21 of 28 checks passed
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in iroh Dec 12, 2025
@matheus23 matheus23 deleted the matheus23/set-dst-ip branch December 12, 2025 19:13
@dignifiedquire
Copy link
Contributor

@matheus23 see n0-computer/net-tools#50 for the important code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

4 participants