diff options
| author | Kristof Provost <kp@FreeBSD.org> | 2021-09-28 16:21:26 +0000 |
|---|---|---|
| committer | Kristof Provost <kp@FreeBSD.org> | 2022-03-02 16:00:06 +0000 |
| commit | 0faafc2185f032fdbf42a5f424286de7b68269f6 (patch) | |
| tree | 51410a794b58f8ff7f5a7364906a0886017ca637 /tests | |
| parent | fb330f3931a2df0cebd2c8726f9d5362cceb0f2a (diff) | |
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/sys/netpfil/pf/ether.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/sys/netpfil/pf/ether.sh b/tests/sys/netpfil/pf/ether.sh index 340eb079ca23..a7e23779396f 100644 --- a/tests/sys/netpfil/pf/ether.sh +++ b/tests/sys/netpfil/pf/ether.sh @@ -280,10 +280,55 @@ captive_cleanup() pft_cleanup } +atf_test_case "dummynet" "cleanup" +dummynet_head() +{ + atf_set descr 'Test dummynet for L2 traffic' + atf_set require.user root +} + +dummynet_body() +{ + pft_init + + if ! kldstat -q -m dummynet; then + atf_skip "This test requires dummynet" + fi + + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}b + + ifconfig ${epair}a 192.0.2.1/24 up + jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up + + # Sanity check + atf_check -s exit:0 -o ignore ping -i .1 -c 3 -s 1200 192.0.2.2 + + jexec alcatraz dnctl pipe 1 config bw 30Byte/s + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "ether pass in dnpipe 1" + + # single ping succeeds just fine + atf_check -s exit:0 -o ignore ping -c 1 192.0.2.2 + + # Saturate the link + ping -i .1 -c 5 -s 1200 192.0.2.2 + + # We should now be hitting the limits and get this packet dropped. + atf_check -s exit:2 -o ignore ping -c 1 -s 1200 192.0.2.2 +} + +dummynet_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "mac" atf_add_test_case "proto" atf_add_test_case "direction" atf_add_test_case "captive" + atf_add_test_case "dummynet" } |
