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

Sync with upstream and include Florian's fix #27

Merged
merged 9 commits into from
Dec 2, 2020

Conversation

matttbe
Copy link
Member

@matttbe matttbe commented Dec 2, 2020

This is a sync with upstream and it includes Florian patch: google#48

No conflicts were detected by Git.

jianfenw and others added 9 commits August 22, 2020 10:06
To deal with non-responsive tests, the run_all.py script kills all
subprocesses running these tests after the timeout limit. However,
these subprocesses may have existed. Then, the proc.kill() command
can crash the test pipeline.

This commit applies an exception handling to catch errors when
killing test subprocesses. When the above case happens, the script
outputs an error message to stderr instead of throwing an error.

Signed-off-by: Jianfeng Wang <[email protected]>
With the current 120-second timeout limit, some tests fail only
because the packetdrill test suite doesn't wait enough time for
them to finish. The actual failure pattern may depend on the
machine spec and tests' timing at runtime.

This commit increases the total timeout limit by 60 seconds.
Tested with a GCP n1-standard-4 Ubuntu 16.04 VM (kernel version
5.8.0) without any failed tests.

Signed-off-by: Jianfeng Wang <[email protected]>
The two mtu_probe tests use self-defined IP addresses for remote_ip
and gateway_ip. The self-defined IP addresses will not take any
effects because the packetdrill run_all.py script enforces local_ip,
remote_ip, and gateway_ip when running tests. Specified with command
line arguments, these IP addresses take precedence over self-defined
IP addresses.

This breaks the two mtu_probe tests because packets do not match any
IP routes in the static IP route table. Thus, TCP does not fragment
packets as expected by the tests.

This commit changes the IP addresses in the two mtu_probe tests to
match those specified in the run_all.py script.

Tested with a GCP n1-standard-4 Ubuntu 16.04 VM (kernel version
5.8.0) without any failed tests.

Signed-off-by: Jianfeng Wang <[email protected]>
In the "How To Get Started with packetdrill" section, there was a bug
in the suggested command line that ran all .pkt scripts, including
some self-tests that were intended to fail.

This commit fixes that, in order to only run the tests in the tcp/
directory, which are expected to pass on recent Linux kernels.

Signed-off-by: Neal Cardwell <[email protected]>
When compiling with GCC 10.2 under Fedora 32 compilation failed with a
bunch of messages like

/usr/bin/ld: tcp_packet.o:/tmp/packetdrill/gtests/net/packetdrill/tcp_options.h:108: multiple definition of `tcp_option'; packet_to_string.o:/tmp/packetdrill/gtests/net/packetdrill/tcp_options.h:108: first defined here
...
collect2: error: ld returned 1 exit status
make: *** [Makefile.common:37: packetdrill] Error 1

This is due to GCC 10 defaulting[0] to -fno-common and because
tcp_option is both defined and declared in tcp_option.h.

Simply removing the declaration part fixes the compilation.

[0]: https://gcc.gnu.org/gcc-10/porting_to.html

Signed-off-by: Andrew Clayton <[email protected]>
Makes no difference for upstream packetdrill, but this makes the
mptcp-fork 'join' tests work when run from the run_all script.

The mp_join tests add a secondary ip address.  Without the netmask
the kernel can't find a route for the syn/ack packet and the tcp syn
carrying the join request never gets a response.

The netmasks are the ones used in the two
DEFAULT_V{4,6}_LIVE_REMOTE_IP_STRING defines.

The basic-v{4,6} test cases are adjusted to add a host-specific
route, rather than attempt to change a (now no longer existing) entry.

Signed-off-by: Florian Westphal <[email protected]>
In our fork, we switched to Python 3, see:

  af579c3 ("run_all.py: convert to python3")

Fixes: 16f99aa ("packetdrill: run_all: catch errors when killing test processes")
Signed-off-by: Matthieu Baerts <[email protected]>
@dcaratti dcaratti merged commit 8a86daa into multipath-tcp:mptcp-net-next Dec 2, 2020
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

Successfully merging this pull request may close these issues.

5 participants