uber / tchannel-go

Go implementation of a multiplexing and framing protocol for RPC calls
http://uber.github.io/tchannel/
MIT License
490 stars 84 forks source link

Add MPTCP support #898

Open zhiyipanuber opened 1 year ago

zhiyipanuber commented 1 year ago

This PR adds MPTCP support. It's based on go 1.21 net package.

When EnableMPTCP is passed with ChannelOptions to create a new channel, tchannel will use MPTCP instead TCP for network connection. MPTCP requires underlying system support MPTCP. tchannel will use normal TCP connection if EnableMPTCP is in one of following cases:

  1. sets to false.
  2. not passed in ChannelOptions.
  3. not supported by underlying system.
codecov[bot] commented 1 year ago

Codecov Report

Patch coverage: 74.69% and project coverage change: +0.36% :tada:

Comparison is base (0c11cc2) 88.78% compared to head (ff84931) 89.14%. Report is 5 commits behind head on dev.

:exclamation: Current head ff84931 differs from pull request most recent head 890da60. Consider uploading reports for the commit 890da60 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## dev #898 +/- ## ========================================== + Coverage 88.78% 89.14% +0.36% ========================================== Files 43 43 Lines 4440 4514 +74 ========================================== + Hits 3942 4024 +82 + Misses 379 374 -5 + Partials 119 116 -3 ``` | [Files Changed](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber) | Coverage Δ | | |---|---|---| | [dial\_17.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-ZGlhbF8xNy5nbw==) | `42.85% <0.00%> (-57.15%)` | :arrow_down: | | [outbound.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-b3V0Ym91bmQuZ28=) | `89.01% <33.33%> (+1.88%)` | :arrow_up: | | [messages.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-bWVzc2FnZXMuZ28=) | `91.58% <50.00%> (-6.27%)` | :arrow_down: | | [mex.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-bWV4Lmdv) | `72.88% <76.00%> (+0.36%)` | :arrow_up: | | [connection.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-Y29ubmVjdGlvbi5nbw==) | `89.28% <88.88%> (+4.29%)` | :arrow_up: | | [channel.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-Y2hhbm5lbC5nbw==) | `89.28% <100.00%> (+0.13%)` | :arrow_up: | | [inbound.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-aW5ib3VuZC5nbw==) | `83.00% <100.00%> (+0.61%)` | :arrow_up: | | [relay.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-cmVsYXkuZ28=) | `86.62% <100.00%> (+0.90%)` | :arrow_up: | | [relay\_messages.go](https://app.codecov.io/gh/uber/tchannel-go/pull/898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber#diff-cmVsYXlfbWVzc2FnZXMuZ28=) | `100.00% <100.00%> (ø)` | | ... and [3 files with indirect coverage changes](https://app.codecov.io/gh/uber/tchannel-go/pull/898/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=uber)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.