Commit f3fd988
authored
feat(iroh,iroh-relay)!: Use stride instead of custom split protocol, send ECN bits (#3389)
## 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
<!-- Remove any that are not relevant. -->
- [x] Self-review.
- [x] Documentation updates following the [style
guide](https://rust-lang.github.io/rfcs/1574-more-api-documentation-conventions.html#appendix-a-full-conventions-text),
if relevant.
- [x] Tests if relevant.
- [x] All breaking changes documented.
- [x] List all breaking changes in the above "Breaking Changes" section.1 parent 3a1592a commit f3fd988
File tree
12 files changed
+516
-445
lines changed- iroh-relay/src
- client
- protos
- server
- iroh/src
- magicsock/transports
- relay
12 files changed
+516
-445
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
30 | 34 | | |
31 | 35 | | |
32 | 36 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
418 | 418 | | |
419 | 419 | | |
420 | 420 | | |
421 | | - | |
| 421 | + | |
422 | 422 | | |
423 | 423 | | |
424 | 424 | | |
| |||
0 commit comments