Please CC me on any responses, thanks. Setting both ends of a veth to be oper UP completes very quickly but I find that pings only start flowing over the veth after about a second. This seems to correlate with the NO-CARRIER flag being set or the interface being in "state UNKNOWN" or "state DOWN² for about a second (demo script below).
If I run the script repeatedly then sometimes it completes very quickly on subsequent runs as if there¹s a hot cache somewhere. Could this be a bug or is there a configuration to speed this up? Seems odd that it¹s almost exactly 1s on the first run. Seen on these kernels: * 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux * 4.0.9-coreos #2 SMP Thu Jul 30 01:07:55 UTC 2015 x86_64 Intel(R) Xeon(R) CPU @ 2.50GHz GenuineIntel GNU/Linux Regards, -Shaun Running my test script below (Assumes veth0/1 do not already exist): $ sudo ./veth-test.sh Time to create veth: real 0m0.019s user 0m0.002s sys 0m0.010s Time to wait for carrier: real 0m1.005s user 0m0.007s sys 0m0.123s # veth-test.sh #!/bin/bash function create_veth { ip link add type veth ip link set veth0 up ip link set veth1 up } function wait_for_carrier { while ! ip link show | grep -qE 'veth[01]'; do sleep 0.05 done while ip link show | grep -E 'veth[01]¹ | \ grep -Eq 'NO-CARRIER|state DOWN|state UNKNOWN'; do sleep 0.05 done } echo "Time to create veth:" time create_veth echo echo "Time to wait for carrier:" time wait_for_carrier ip link del veth0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/