-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
add MPTCPv1 support #1661
add MPTCPv1 support #1661
Conversation
Any news about adding the support? Currently I am trying to launch my MPTCP research, and not having to run |
@bmah888: sorry for the ping. Do you think such "smallish" modification could be accepted in IPerf3? No hurry, but it is just to know which direction we take regarding tests in the Linux kernel :) |
The Multipath TCP (MPTCP) protocol (v1 / RFC 8684) has been added in the upstream Linux kernel since v5.6. MPTCP is strongly tied to TCP, and the kernel APIs are almost the same. The only required dependency is the 'IPPROTO_MPTCP' protocol number definition, which should be provided by the netinet/in.h header if it is recent enough. This patch adds a new flag '-m' or '--mptcp' to support MPTCPv1. It can be used like this: > iperf3 -m -s > iperf3 -m -c 127.0.0.1 If IPPROTO_MPTCP is not supported by the kernel being tested, it is normal to fail because the feature is not available and the user explicitly asked to use MPTCP. Closes: esnet#1659 Co-developed-by: Paolo Abeni <[email protected]> Signed-off-by: Geliang Tang <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@geliangtang thank you for the rebase and the last modifications!
The check for IPPROTO_MPTCP
at build time should not be needed, but good to have added it to be consistent with how the other kernel constants are being used/checked here. Hopefully this new version can be accepted :)
Thanks @geliangtang for the recent changes and @matttbe for the out-of-band emails! I've just started a CI run. At this point I think we just need to do a little testing for our own due diligence and then this PR is probably good to merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for the PR! This looks good to the extent that I can tell. We still don't have a good environment within ESnet for testing MPTCP (also no expertise with it because it's not a part of our use cases), but I've at least verified that there are no regressions in iperf3 behavior. If there's any fixes or improvements to be made, we can take care of that later. So...let's get this merged!
The Multipath TCP (MPTCP) protocol (v1 / RFC 8684) has been added in the upstream Linux kernel since v5.6.
MPTCP is strongly tied to TCP, and the kernel APIs are almost the same. The only required dependency is the 'IPPROTO_MPTCP' protocol number definition, which should be provided by the netinet/in.h header if it is recent enough.
This patch adds a new flag '-m' or '--mptcp' to support MPTCPv1. It can be used like this:
There is no need to check for IPPROTO_MPTCP support in configure.ac at build time, it is at runtime we will see if the kernel being use supports or not MPTCP.
If IPPROTO_MPTCP is not supported by the kernel being tested, it is normal to fail because the feature is not available and the user explicitly asked to use MPTCP.
Closes: #1659
Co-developed-by: Paolo Abeni [email protected]
PLEASE NOTE the following text from the iperf3 license. Submitting a
pull request to the iperf3 repository constitutes "[making]
Enhancements available...publicly":
The complete iperf3 license is available in the
LICENSE
file in thetop directory of the iperf3 source tree.
Version of iperf3 (or development branch, such as
master
or3.1-STABLE
) to which this pull request applies:Issues fixed (if any):
Brief description of code changes (suitable for use as a commit message):