linux-uconsole/tools/testing/selftests/net
Willem de Bruijn af5136f950 selftests/net: SO_TXTIME with ETF and FQ
The SO_TXTIME API enables packet tranmission with delayed delivery.
This is currently supported by the ETF and FQ packet schedulers.

Evaluate the interface with both schedulers. Install the scheduler
and send a variety of packets streams: without delay, with one
delayed packet, with multiple ordered delays and with reordering.
Verify that packets are released by the scheduler in expected order.

The ETF qdisc requires a timestamp in the future on every packet. It
needs a delay on the qdisc else the packet is dropped on dequeue for
having a delivery time in the past. The test value is experimentally
derived. ETF requires clock_id CLOCK_TAI. It checks this base and
drops for non-conformance.

The FQ qdisc expects clock_id CLOCK_MONOTONIC, the base used by TCP
as of commit fb420d5d91 ("tcp/fq: move back to CLOCK_MONOTONIC").
Within a flow there is an expecation of ordered delivery, as shown by
delivery times of test 4. The FQ qdisc does not require all packets to
have timestamps and does not drop for non-conformance.

The large (msec) delays are chosen to avoid flakiness.

	Output:

	SO_TXTIME ipv6 clock monotonic
	payload:a delay:28 expected:0 (us)

	SO_TXTIME ipv4 clock monotonic
	payload:a delay:38 expected:0 (us)

	SO_TXTIME ipv6 clock monotonic
	payload:a delay:40 expected:0 (us)

	SO_TXTIME ipv4 clock monotonic
	payload:a delay:33 expected:0 (us)

	SO_TXTIME ipv6 clock monotonic
	payload:a delay:10120 expected:10000 (us)

	SO_TXTIME ipv4 clock monotonic
	payload:a delay:10102 expected:10000 (us)

	[.. etc ..]

	OK. All tests passed

Changes v1->v2: update commit message output

Signed-off-by: Willem de Bruijn <willemb@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-05-24 13:34:40 -07:00
..
forwarding selftests: Add loopback test 2019-05-05 21:56:57 -07:00
.gitignore selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
config selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
fib-onlink-tests.sh selftests: fib-onlink: Make quiet by default 2019-05-22 17:50:24 -07:00
fib_rule_tests.sh selftests: fib_rule_tests: use pre-defined DEV_ADDR 2019-05-21 13:44:17 -07:00
fib_tests.sh Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-04-17 11:26:25 -07:00
icmp_redirect.sh selftests: Add redirect tests 2019-05-24 13:26:44 -07:00
in_netns.sh selftests/net: fix in_netns.sh script 2018-03-07 12:26:05 -05:00
ip6_gre_headroom.sh selftests: net: Test headroom handling of ip6_gre devices 2018-06-26 23:03:01 +09:00
ip_defrag.c selftests: net: ip_defrag: cover new IPv6 defrag behavior 2019-01-25 21:37:11 -08:00
ip_defrag.sh selftests: net: ip_defrag: cover new IPv6 defrag behavior 2019-01-25 21:37:11 -08:00
Makefile selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
msg_zerocopy.c selftests: extend zerocopy tests to udp 2018-12-03 15:58:32 -08:00
msg_zerocopy.sh selftests: extend zerocopy tests to udp 2018-12-03 15:58:32 -08:00
netdevice.sh selftests: net: return Kselftest Skip code for skipped tests 2018-05-30 15:29:06 -06:00
pmtu.sh selftests: pmtu: Simplify cleanup and namespace names 2019-05-22 17:50:24 -07:00
psock_fanout.c selftests/net: ignore background traffic in psock_fanout 2018-02-23 12:47:05 -05:00
psock_lib.h selftests/net: Fixes psock_fanout CBPF test case 2017-04-20 15:39:19 -04:00
psock_snd.c selftests/net: add packet socket packet_snd test 2018-06-04 09:50:01 -04:00
psock_snd.sh selftests/net: add packet socket packet_snd test 2018-06-04 09:50:01 -04:00
psock_tpacket.c selftests: net: return Kselftest Skip code for skipped tests 2018-05-30 15:29:06 -06:00
reuseaddr_conflict.c selftest: add a reuseaddr test 2017-09-19 14:09:26 -06:00
reuseport_addr_any.c selftests: net: reuseport_addr_any: silence clang warning 2018-12-20 19:26:52 -08:00
reuseport_addr_any.sh selftests: net: test that listening sockets match on address properly 2018-12-14 15:55:20 -08:00
reuseport_bpf.c bpf: do not blindly change rlimit in reuseport net selftest 2018-10-08 10:30:55 +02:00
reuseport_bpf_cpu.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
reuseport_bpf_numa.c selftests: net: reuseport_bpf_numa: don't fail if no numa support 2018-05-23 12:21:02 +02:00
reuseport_dualstack.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rtnetlink.sh netdevsim: move netdev creation/destruction to dev probe 2019-04-26 01:52:03 -04:00
run_afpackettests selftests/net: correct the return value for run_afpackettests 2019-04-20 20:29:02 -07:00
run_netsocktests selftests/net: correct the return value for run_netsocktests 2019-04-19 14:39:51 -07:00
so_txtime.c selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
so_txtime.sh selftests/net: SO_TXTIME with ETF and FQ 2019-05-24 13:34:40 -07:00
socket.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tcp_inq.c selftest: add test for TCP_INQ 2018-05-01 18:56:29 -04:00
tcp_mmap.c selftest/net: fix protocol family to work for IPv4. 2018-08-02 10:30:12 -07:00
test_bpf.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
test_vxlan_fdb_changelink.sh selftests: net: Add test_vxlan_fdb_changelink.sh 2018-12-18 21:18:26 -08:00
test_vxlan_under_vrf.sh test/net: Add script for VXLAN underlay in a VRF 2018-12-03 14:16:01 -08:00
tls.c selftest/tls: Add test to verify received 'type' of non-data record 2019-02-20 11:05:55 -08:00
txring_overwrite.c selftests/net: add txring_overwrite 2018-11-24 18:22:21 -08:00
udpgro.sh selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgro_bench.sh selftests: add functionals test for UDP GRO 2018-11-07 16:23:05 -08:00
udpgso.c selftest/net: Remove duplicate header 2019-03-04 11:35:51 -08:00
udpgso.sh selftests: udp gso with corking 2018-04-26 15:09:52 -04:00
udpgso_bench.sh selftests: extend zerocopy tests to udp 2018-12-03 15:58:32 -08:00
udpgso_bench_rx.c selftests: fixes for UDP GRO 2019-03-01 11:24:00 -08:00
udpgso_bench_tx.c selftests: add functionals test for UDP GRO 2018-11-07 16:23:05 -08:00
xfrm_policy.sh xfrm: policy: fix infinite loop when merging src-nodes 2019-01-09 13:58:23 +01:00