Skip to content
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

-M has no effect on packet size during data packets initiated from iperf3 client #1771

Open
avijeet-pattanayak opened this issue Sep 19, 2024 · 4 comments

Comments

@avijeet-pattanayak
Copy link

NOTE: The iperf3 issue tracker is for registering bugs, enhancement
requests, or submissions of code. It is not a means for asking
questions about building or using iperf3. Those are best directed
towards the Discussions section for this project at
https://github.com/esnet/iperf/discussions
or to the iperf3 mailing list at [email protected].
A list of frequently-asked questions
regarding iperf3 can be found at http://software.es.net/iperf/faq.html.

Context

In iperf3 application though the MSS is negotiated based on -M option during TCP SYN, but the data packets generated by iperf3 client are much bigger in size. Looks like it is not honoring the -M option to set MSS

  • Version of iperf3:
    iperf3 version 3.5

  • Hardware:
    General purpose server

  • Operating system (and distribution, if any):
    Linux
    Please note: iperf3 is supported on Linux, FreeBSD, and macOS.
    Support may be provided on a best-effort basis to other UNIX-like
    platforms. We cannot provide support for building and/or running
    iperf3 on Windows, iOS, or Android.

  • Other relevant information (for example, non-default compilers,
    libraries, cross-compiling, etc.):

Please fill out one of the "Bug Report" or "Enhancement Request"
sections, as appropriate. Note that submissions of bug fixes, new
features, etc. should be done as a pull request at
https://github.com/esnet/iperf/pulls

Bug Report

  • Expected Behavior

  • Actual Behavior

  • Steps to Reproduce

  • Possible Solution

Enhancement Request

  • Current behavior

  • Desired behavior

  • Implementation notes

@davidBar-On
Copy link
Contributor

iperf3 version 3.5

iperf3.5 is a very old version. Suggest to use a new version (although per issue #779 probably it will not help this specific issue).

In iperf3 application though the MSS is negotiated based on -M option during TCP SYN, but the data packets generated by iperf3 client are much bigger in size. Looks like it is not honoring the -M option to set MSS

Just to make sure, are you referring to the packet size or segment size? iperf3 packet (message) size is set by the -l option.

In any case, more information is needed (see #779 for example): which Linux OS and version the server and the client machines using, are you looking on the client or server size to see the segment size? Which tool are you using for that (Wireshark, tcpdump, etc.), etc.

@avijeet-pattanayak
Copy link
Author

Can you please recommend the latest version of iperf3 which can be used in this case.
I am referring here the TCP segment size which we set through -M option with iperf3 command.
And I am using wireshark packet analyzer tool to get the packet details.
We are using RHEL 6 OS.

@davidBar-On
Copy link
Contributor

davidBar-On commented Sep 19, 2024

In general, using the latest iperf3 version, currently 3.17.1, is the best choice. See http://software.es.net/iperf/index.html. If you are able to build iperf3, than you can use the tar file from that site, or git clone -b 3.17.1 https://github.com/esnet/iperf (or even close the latest master branch).

Per this RedHat issue from June, it may be that setting MSS does not work in RHEL, at least in specific configurations. If you are building iperf3 yourself, I suggest that you will add the getsockopt() after this setsockopt() (in iperf_tcp.c) as in this issue, and print the value of the MSS before and after the change, to see its value and whether it was changed.

Also, this may be related to NIC offload functionality (LSO/TSO/etc.) - see related comments in #779.

@bmah888
Copy link
Contributor

bmah888 commented Sep 24, 2024

I vaguely remember having some experience where trying to set the MSS on TCP connections didn't always work, but I don't remember under what circumstances this problem came up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants