]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/sys/netpfil/pf/fragmentation.sh
MFV r328323,328324:
[FreeBSD/FreeBSD.git] / tests / sys / netpfil / pf / fragmentation.sh
1 # $FreeBSD$
2
3 . $(atf_get_srcdir)/utils.subr
4
5 atf_test_case "v6" "cleanup"
6 v6_head()
7 {
8         atf_set descr 'IPv6 fragmentation test'
9         atf_set require.user root
10         atf_set require.progs scapy
11 }
12
13 v6_body()
14 {
15         pft_init
16
17         epair_send=$(pft_mkepair)
18         epair_link=$(pft_mkepair)
19
20         pft_mkjail alcatraz ${epair_send}b ${epair_link}a
21         pft_mkjail singsing ${epair_link}b
22
23         ifconfig ${epair_send}a inet6 2001:db8:42::1/64 no_dad up
24
25         jexec alcatraz ifconfig ${epair_send}b inet6 2001:db8:42::2/64 no_dad up
26         jexec alcatraz ifconfig ${epair_link}a inet6 2001:db8:43::2/64 no_dad up
27         jexec alcatraz sysctl net.inet6.ip6.forwarding=1
28
29         jexec singsing ifconfig ${epair_link}b inet6 2001:db8:43::3/64 no_dad up
30         jexec singsing route add -6 2001:db8:42::/64 2001:db8:43::2
31         route add -6 2001:db8:43::/64 2001:db8:42::2
32
33         jexec alcatraz ifconfig ${epair_send}b inet6 -ifdisabled
34         jexec alcatraz ifconfig ${epair_link}a inet6 -ifdisabled
35         jexec singsing ifconfig ${epair_link}b inet6 -ifdisabled
36         ifconfig ${epair_send}a inet6 -ifdisabled
37
38         jexec alcatraz pfctl -e
39         pft_set_rules alcatraz \
40                 "scrub fragment reassemble" \
41                 "block in" \
42                 "pass in inet6 proto icmp6 icmp6-type { neighbrsol, neighbradv }" \
43                 "pass in inet6 proto icmp6 icmp6-type { echoreq, echorep }"
44
45         # Host test
46         atf_check -s exit:0 -o ignore \
47                 ping6 -c 1 2001:db8:42::2
48
49         atf_check -s exit:0 -o ignore \
50                 ping6 -c 1 -s 4500 2001:db8:42::2
51
52         atf_check -s exit:0 -o ignore\
53                 ping6 -c 1 -b 70000 -s 65000 2001:db8:42::2
54
55         # Forwarding test
56         atf_check -s exit:0 -o ignore \
57                 ping6 -c 1 2001:db8:43::3
58
59         atf_check -s exit:0 -o ignore \
60                 ping6 -c 1 -s 4500 2001:db8:43::3
61
62         atf_check -s exit:0 -o ignore\
63                 ping6 -c 1 -b 70000 -s 65000 2001:db8:43::3
64 }
65
66 v6_cleanup()
67 {
68         pft_cleanup
69 }
70
71 atf_init_test_cases()
72 {
73         atf_add_test_case "v6"
74 }