google / packetdrill

The official Google release of packetdrill
GNU General Public License v2.0
887 stars 220 forks source link

packetdrill: fix test/runtime errors for running packetdrill with GCP VMs #41

Closed jianfenw closed 3 years ago

jianfenw commented 3 years ago

When testing the latest Linux kernel net-next branch (v5.8.0) on a GCP Ubuntu 16.04 VM, both the test suite runtime and the mtu_probe tests have errors.

First, the test suite crashes when killing some non-responsive tests after the timeout limit (120 seconds). However, these sub-processes may have already existed. The run_all.py script does not catch errors when killing these processes, and crashes the test pipeline.

Second, with the current timeout limit, some tests fail simply because the packetdrill test suite does not wait enough time for them to finish. The proposed fix is to extend the timeout limit to 180 seconds.

Third, the mtu_probe tests (basic-v4.pkt and basic-v6.pkt) use self-defined IP addresses in their test scripts. These self-defined IP addresses do not take effects because the run_all.py script enforces local_ip, gateway_ip, and remote_ip in command line arguments when running tests. These addresses take precedence over self-defined addresses. Thus, TCP does not fragment packets as expected.

This patch series include three commits that fix the above three issues in sequence. Tested with a GCP Ubuntu 16.04 VM (machine type: n1-standard-4, kernel version: 5.8.0). Passed all TCP tests under tcp/.

Signed-off-by: Jianfeng Wang jfwang@google.com

jianfenw commented 3 years ago

Done. Thanks for reviewing, Neal.