Skip to content

feat(iroh,iroh-relay)!: Use stride instead of custom split protocol, send ECN bits #3389

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

Merged
merged 85 commits into from
Jul 18, 2025

Conversation

matheus23
Copy link
Member

@matheus23 matheus23 commented Jul 14, 2025

Description

Based on #3331

  • Enable doing active queue management in relays in the future (we now send ECN bits with messages!)
  • Avoid doing our own packet merging & splitting, instead just forward quinn's Transmit format (bytes + optional stride)

Breaking Changes

The relay wire protocol changed: All relayed messages now contain at least an additional ECN byte.
They might be accidentally compatible when GSO is not enabled, but they're likely not.
This means this version of iroh can't connect to older relays or older clients on newer relays.

  • ClientToRelayMsg::SendPacket was removed in favor of ClientToRelayMsg::Datagrams
  • RelayToClientMsg::ReceivedPacket was removed in favor of RelayToClientMsg::Datagrams
  • FrameType has changed variants:
    • SendPacket and RecvPacket were removed
    • ClientToRelayDatagram and ClientToRelayDatagramBatch were added
    • RelayToClientDatagram and RelayToClientDatagramBatch were added

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.
    • List all breaking changes in the above "Breaking Changes" section.

@matheus23 matheus23 self-assigned this Jul 14, 2025
Copy link

github-actions bot commented Jul 14, 2025

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

Last updated: 2025-07-18T08:03:40Z

Copy link

github-actions bot commented Jul 14, 2025

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 9dee2af

@matheus23 matheus23 changed the base branch from matheus23/relay-handshake-3 to matheus23/relay-handshake-2 July 14, 2025 13:39
@n0bot n0bot bot added this to iroh Jul 14, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Jul 14, 2025
@matheus23 matheus23 force-pushed the matheus23/relay-efficient-gso branch from 184cff8 to 3a6d751 Compare July 14, 2025 14:29
Base automatically changed from matheus23/relay-handshake-2 to main July 16, 2025 10:24
@matheus23 matheus23 marked this pull request as ready for review July 18, 2025 08:00
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.

LGTM

@matheus23 matheus23 added this pull request to the merge queue Jul 18, 2025
Merged via the queue into main with commit f3fd988 Jul 18, 2025
29 of 30 checks passed
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in iroh Jul 18, 2025
@dignifiedquire dignifiedquire deleted the matheus23/relay-efficient-gso branch July 18, 2025 10:23
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.

2 participants