Refactor FXIOS-9778 Add Multipath TCP (MPTCP) support#21480
Conversation
nbhasin2
left a comment
There was a problem hiding this comment.
Approving with minor nits
@Aperence I see the following tests failing, would you mind looking into it and let us know if any support is required |
|
Hello, I've fixed the issues with these tests normally |
Client.app: Coverage: 30.09
Generated by 🚫 Danger Swift against ea7dc48 |
There was a problem hiding this comment.
Thanks @Aperence, somehow the warnings have increased. Let me re-run the build but I would suggest trying locally to check the warnings between main / your branch
Just posting in this file to have a chain of comments
There was a problem hiding this comment.
Hello @nbhasin2,
Thank you for the review first.
After having checked the code, it seems like it was simply 2 immutable variables that were declared with a var keyword, instead of let. This should be fixed normally.
Also, I've seen that I forgot to add the Multipath entitlement, I've just added it now (if it is fine ?).
Have a nice day
There was a problem hiding this comment.
Ah sorry, totally missed this. Let me double check to see if this is valid.
@Aperence did you try it locally or simply added it where it needs to get added?
Thanks again
There was a problem hiding this comment.
I built locally the application to make sure that it doesn’t generate new warnings.
Thanks again for the follow-up !
|
This pull request has conflicts when rebasing. Could you fix it @Aperence? 🙏 |
|
Rebased it normally ! |
|
This PR has been automatically marked as stale. Please leave any comment to keep this PR opened. It will be closed automatically if no further update occurs in the next 7 days. Thank you for your contributions! |
|
Any news about this ? |
OrlaM
left a comment
There was a problem hiding this comment.
I'm surprised this isn't just default URLSession behaviour and it's very strange that Apple require an entitlement for it 🤔
Great change either way, one minor nit otherwise LGTM
|
Just applied the requested change. It probably isn't enabled by default because some time ago, some other options weren't (well) supported with MPTCP (from what I know), and they probably never reconsidered up to now to enable it by default. |
|
Running BR and if all looks well I can merge it in 🤞🏼 |
|
@Aperence might wanna rebase this one last time as you have approvals but there are certain number of warnings that are more on this PR compared to main. Thanks and once green I can hit merge |
MPTCP is a TCP extension allowing to improve network reliabilty by using mutiple network interface for the same TCP connection. Check https://www.mptcp.dev and https://developer.apple.com/documentation/foundation/urlsessionconfiguration/improving_network_reliability_using_multipath_tcp for details. Changes to this repository includes introducing new configurations (defaultMPTCP/ephemeralMPTCP), replacing uses of default/ephemeral by these new configurations, introducing a sharedMPTCP property on URLSession and modifying the makeURL function to enable the handover mode by default
Co-authored-by: Nishant Bhasin <nish.bhasin@gmail.com>
Changed 2 variabled from var to let, as they were never mutated
|
Just rebased it now, hope it will fix the warnings |

📜 Tickets
Github issue
Jira
💡 Description
MPTCP is a TCP extension allowing to improve network reliabilty by using mutiple network interface for the same TCP connection. Check https://www.mptcp.dev and https://developer.apple.com/documentation/foundation/urlsessionconfiguration/improving_network_reliability_using_multipath_tcp for details. Changes to this repository includes introducing new configurations (defaultMPTCP/ephemeralMPTCP), replacing uses of default/ephemeral by these new configurations, introducing a sharedMPTCP property on URLSession and modifying the makeURL function to enable the handover mode by default
📝 Checklist
You have to check all boxes before merging
@Mergifyio backport release/v120)