Some test cases fail when not run via run_all.py, one example is
tcp/mtu_probe/basic-v4.pkt.
The difference is the remote ip passed to/used by packetdrill.
run_all.py passes: '--remote_ip=192.0.2.1 ', whereas packetdrill
default is '
192.0.2.1/24'.
Problem is that basic-v4.pkt does:
'ip route change 192.0.2.1 via 192.168.0.2 dev tun0 advmss 600 mtu lock 640 initcwnd 11'.
This results in an error from kernel when running script via
"../../packetdrill basic-v4.pkt" (s/change/add/ makes it work again).
I'd like to patch run_all.py to use /24 and /32 (ipv6) netmask, just
like the packetdrill default.
I'd fix up the then-failing test scripts as well. Any objections?
Motivation is to make certain MPTCP MP_JOIN test cases (in the MPTCP
packetdrill fork) work with run_all.py. For MP_JOIN, a secondary
address gets added for use by the subflow. Without the netmask the kernel
won't find a route for the syn/ack join response, so those scripts work
when passed to 'packetdrill' directly with default options, but fail
when run via the python script.
Thanks,
Florian