==== busy-rdomains ==== # Check if rdomains are busy. ==== ifconfig ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' *** Error 1 in target 'stamp-stop' (ignored) rm -f stamp-bpf* # Destroy interfaces. doas -n /sbin/ifconfig lo11 rdomain 11 doas -n /sbin/ifconfig lo11 inet 127.0.0.1 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) doas -n /sbin/ifconfig lo11 inet 127.0.0.11 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) doas -n /sbin/ifconfig lo11 inet6 ::1 delete doas -n /sbin/ifconfig lo11 inet6 fe80::11/64 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) doas -n /sbin/ifconfig lo12 rdomain 12 doas -n /sbin/ifconfig lo12 inet 127.0.0.1 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) doas -n /sbin/ifconfig lo12 inet 127.0.0.12 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) doas -n /sbin/ifconfig lo12 inet6 ::1 delete doas -n /sbin/ifconfig lo12 inet6 fe80::12/64 delete ifconfig: SIOCDIFADDR: Can't assign requested address *** Error 1 in target 'unconfig' (ignored) rm -f stamp-ifconfig # Create and configure loopback interfaces. doas -n /sbin/ifconfig lo11 rdomain 11 doas -n /sbin/ifconfig lo11 inet 127.0.0.1/8 doas -n /sbin/ifconfig lo11 inet 127.0.0.11 alias doas -n /sbin/ifconfig lo11 inet6 ::1/128 doas -n /sbin/ifconfig lo11 inet6 fe80::11/64 doas -n /sbin/route -n -T 11 add -inet 224.0.0.0/4 127.0.0.1 add net 224.0.0.0/4: gateway 127.0.0.1 doas -n /sbin/ifconfig lo12 rdomain 12 doas -n /sbin/ifconfig lo12 inet 127.0.0.1/8 doas -n /sbin/ifconfig lo12 inet 127.0.0.12 alias doas -n /sbin/ifconfig lo12 inet6 ::1/128 doas -n /sbin/ifconfig lo12 inet6 fe80::12/64 doas -n /sbin/route -n -T 12 add -inet 224.0.0.0/4 127.0.0.1 add net 224.0.0.0/4: gateway 127.0.0.1 # Wait until IPv6 addresses are no longer tentative. for i in `jot 50`; do if ! { /sbin/ifconfig lo11; /sbin/ifconfig lo12; } | fgrep -q tentative; then break; fi; sleep .1; done ! { /sbin/ifconfig lo11; /sbin/ifconfig lo12; } | fgrep tentative ==== pfctl ==== # Create python include file containing the addresses. rm -f addr.py addr.py.tmp echo 'N1="11"' >>addr.py.tmp echo 'IF_N1="lo11"' >>addr.py.tmp echo 'ADDR_N1="127.0.0.11"' >>addr.py.tmp echo 'ADDR6_N1="fe80::11"' >>addr.py.tmp echo 'N2="12"' >>addr.py.tmp echo 'IF_N2="lo12"' >>addr.py.tmp echo 'ADDR_N2="127.0.0.12"' >>addr.py.tmp echo 'ADDR6_N2="fe80::12"' >>addr.py.tmp mv addr.py.tmp addr.py # Load the pf rules into the kernel. cat addr.py /home/src/regress/sys/net/pf_opts/pf.conf | /sbin/pfctl -n -f - cat addr.py /home/src/regress/sys/net/pf_opts/pf.conf | doas -n /sbin/pfctl -a regress -f - ==== run-ping ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG # Ping localhost on loopback /sbin/ping -n -w 1 -c 1 -V 11 127.0.0.11 PING 127.0.0.11 (127.0.0.11): 56 data bytes 64 bytes from 127.0.0.11: icmp_seq=0 ttl=255 time=0.086 ms --- 127.0.0.11 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.086/0.086/0.086/0.000 ms /sbin/ping -n -w 1 -c 1 -V 12 127.0.0.12 PING 127.0.0.12 (127.0.0.12): 56 data bytes 64 bytes from 127.0.0.12: icmp_seq=0 ttl=255 time=0.062 ms --- 127.0.0.12 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.062/0.062/0.062/0.000 ms ==== run-ping6 ==== # Ping localhost on loopback /sbin/ping6 -n -w 1 -c 1 -V 11 fe80::11%lo11 PING fe80::11%lo11 (fe80::11%lo11): 56 data bytes 64 bytes from fe80::11%lo11: icmp_seq=0 hlim=64 time=0.112 ms --- fe80::11%lo11 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.112/0.112/0.112/0.000 ms /sbin/ping6 -n -w 1 -c 1 -V 12 fe80::12%lo12 PING fe80::12%lo12 (fe80::12%lo12): 56 data bytes 64 bytes from fe80::12%lo12: icmp_seq=0 hlim=64 time=0.092 ms --- fe80::12%lo12 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.092/0.092/0.092/0.000 ms ==== run-bpf-ping ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 4 packets received by filter 0 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel 4 packets received by filter 0 packets dropped by kernel rm -f stamp-bpf* # Check that ping packet went through loopback. grep ' 127.0.0.11: icmp: echo request' lo11.tcpdump 05:10:12.919773 127.0.0.11 > 127.0.0.11: icmp: echo request (id:d05e seq:0) [icmp cksum ok] (ttl 255, id 38388, len 84, bad ip cksum 0! -> 279e) grep ' 127.0.0.12: icmp: echo request' lo12.tcpdump 05:10:12.922571 127.0.0.12 > 127.0.0.12: icmp: echo request (id:58f6 seq:0) [icmp cksum ok] (ttl 255, id 36897, len 84, bad ip cksum 0! -> 2d6f) grep ' fe80:.*::11: icmp6: echo request' lo11.tcpdump 05:10:13.005386 fe80:1db::1 > fe80:1db::11: icmp6: echo request (id:80f2 seq:0) [bad icmp6 cksum b3d6! -> b020] (len 64, hlim 64) grep ' fe80:.*::12: icmp6: echo request' lo12.tcpdump 05:10:13.011885 fe80:1dc::1 > fe80:1dc::12: icmp6: echo request (id:a5e2 seq:0) [bad icmp6 cksum 32f6! -> 2f3e] (len 64, hlim 64) ! grep ': icmp: echo request' pflog0.tcpdump ! grep ': icmp6: echo request' pflog0.tcpdump ==== run-ping-record ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG # Ping localhost with record route option /sbin/ping -n -w 1 -c 1 -V 11 -R 127.0.0.11 PING 127.0.0.11 (127.0.0.11): 56 data bytes 64 bytes from 127.0.0.11: icmp_seq=0 ttl=255 time=0.090 ms RR: 127.0.0.11 127.0.0.11 --- 127.0.0.11 ping statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.090/0.090/0.090/0.000 ms ! /sbin/ping -n -w 1 -c 1 -V 12 -R 127.0.0.12 ping: sendmsg: Permission denied PING 127.0.0.12 (127.0.0.12): 56 data bytes ping: wrote 127.0.0.12 64 chars, ret=-1 --- 127.0.0.12 ping statistics --- 1 packets transmitted, 0 packets received, 100.0% packet loss ==== run-bpf-ping-record ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 0 packets received by filter 0 packets dropped by kernel 2 packets received by filter 1 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel rm -f stamp-bpf* # Check that ping packet with options is in pflog0. grep ' 127.0.0.11: icmp: echo request .* optlen=40 RR' lo11.tcpdump 05:10:17.390018 127.0.0.11 > 127.0.0.11: icmp: echo request (id:2c17 seq:0) [icmp cksum ok] (ttl 255, id 52668, len 124, bad ip cksum 0! -> da86, optlen=40 RR{39}= RR{#0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0} EOL) grep ' 127.0.0.12: icmp: echo request .* optlen=40 RR' pflog0.tcpdump 05:10:17.396083 rule 5.regress.1/(match) [uid 0, pid 46963] pass out on lo12: 127.0.0.12 > 127.0.0.12: icmp: echo request (id:4ad0 seq:0) [icmp cksum ok] (ttl 255, id 25892, len 124, bad ip cksum 0! -> 431d, optlen=40 RR{39}= RR{#0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0} EOL) ==== run-icmp ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp.py N1 send icmp without options . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp.py N2 send icmp without options . Sent 1 packets. ==== run-icmp6 ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6.py N1 send icmp6 without options . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6.py N2 send icmp6 without options . Sent 1 packets. ==== run-bpf-icmp ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 2 packets received by filter 2 packets received by filter 0 packets dropped by kernel 0 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel rm -f stamp-bpf* # Check that icmp packet went through loopback. grep ' 127.0.0.11: icmp: type-#6' lo11.tcpdump 05:10:25.894768 127.0.0.11 > 127.0.0.11: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 44) grep ' 127.0.0.12: icmp: type-#6' lo12.tcpdump 05:10:28.284685 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 44) grep ' fe80::11: icmp6: type-#6' lo11.tcpdump 05:10:30.786148 fe80::11 > fe80::11: icmp6: type-#6 [icmp6 cksum ok] (len 20, hlim 64) grep ' fe80::12: icmp6: type-#6' lo12.tcpdump 05:10:33.204899 fe80::12 > fe80::12: icmp6: type-#6 [icmp6 cksum ok] (len 20, hlim 64) ! grep ': icmp: type-#6' pflog0.tcpdump ! grep ': icmp6: type-#6' pflog0.tcpdump ==== run-icmp6-hop ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop.py N1 send icmp6 with hop by hop header . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop.py N2 send icmp6 with hop by hop header . Sent 1 packets. ==== run-icmp6-dst ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_dst.py N1 send icmp6 with destination options header . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_dst.py N2 send icmp6 with destination options header . Sent 1 packets. ==== run-bpf-ext ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 2 packets received by filter 2 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel 2 packets received by filter 0 packets dropped by kernel rm -f stamp-bpf* # Check that icmp6 packet with extension headers were blocked fgrep ' fe80::12: HBH icmp6:' pflog0.tcpdump 05:10:42.445573 rule 5/(ip-option) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: HBH icmp6: type-#6 [icmp6 cksum ok] (len 28, hlim 64) fgrep ' fe80::12: DSTOPT icmp6:' pflog0.tcpdump 05:10:47.403620 rule 5/(ip-option) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: DSTOPT icmp6: type-#6 [icmp6 cksum ok] (len 28, hlim 64) ! grep fe80::11 pflog0.tcpdump ==== run-icmp-pad ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_pad.py N1 send icmp with options padding . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_pad.py N2 send icmp with options padding . Sent 1 packets. ==== run-icmp-eol ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_eol.py N1 send icmp with option end of list . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_eol.py N2 send icmp with option end of list . Sent 1 packets. ==== run-icmp6-pad ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_pad.py N1 send icmp6 with hop by hop header with padding . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_pad.py N2 send icmp6 with hop by hop header with padding . Sent 1 packets. ==== run-icmp-max ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_max.py N1 send icmp with maximum length option . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_max.py N2 send icmp with maximum length option . Sent 1 packets. ==== run-icmp6-max ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_max.py N1 send icmp6 with hop by hop header with maxium padding . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_max.py N2 send icmp6 with hop by hop header with maxium padding . Sent 1 packets. ==== run-icmp-ra ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_ra.py N1 send icmp with router alert . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_ra.py N2 send icmp with router alert . Sent 1 packets. ==== run-icmp6-ra ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_ra.py N1 send icmp6 with hop by hop header with router alert . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_ra.py N2 send icmp6 with hop by hop header with router alert . Sent 1 packets. ==== run-icmp-bad ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_bad.py N1 send icmp with unknown option . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp_bad.py N2 send icmp with unknown option . Sent 1 packets. ==== run-icmp6-bad ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_bad.py N1 send icmp6 with hop by hop header with unknown option . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_hop_bad.py N2 send icmp6 with hop by hop header with unknown option . Sent 1 packets. ==== run-bpf-opts ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 9 packets received by filter 0 packets dropped by kernel 9 packets received by filter 0 packets dropped by kernel 9 packets received by filter 0 packets dropped by kernel rm -f stamp-bpf* # Check that icmp packet with options were blocked grep ' 127.0.0.12:.* optlen=4 NOP NOP NOP NOP)' pflog0.tcpdump 05:10:56.567053 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 48, optlen=4 NOP NOP NOP NOP) grep ' 127.0.0.12:.* optlen=4 NOP EOL-2)' pflog0.tcpdump 05:11:01.462372 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 48, optlen=4 NOP EOL-2) grep ' 127.0.0.12:.* optlen=40 NOP ' pflog0.tcpdump 05:11:11.350967 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 84, optlen=40 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP) grep ' 127.0.0.12:.* optlen=8 NOP IPOPT-148{4} NOP ' pflog0.tcpdump 05:11:21.224332 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 52, optlen=8 NOP IPOPT-148{4} NOP EOL-1) grep ' 127.0.0.12:.* optlen=4 IPOPT-3{4})' pflog0.tcpdump 05:11:31.102694 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 127.0.0.12: icmp: type-#6 [icmp cksum ok] (ttl 64, id 1, len 48, optlen=4 IPOPT-3{4}) grep ' fe80::12: HBH icmp6:.* (len 28,' pflog0.tcpdump 05:11:06.423536 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: HBH icmp6: type-#6 [icmp6 cksum ok] (len 28, hlim 64) grep ' fe80::12: HBH icmp6:.* (len 284,' pflog0.tcpdump 05:11:16.322724 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: HBH icmp6: type-#6 [icmp6 cksum ok] (len 284, hlim 64) grep ' fe80::12: HBH (rtalert: 0x0000) icmp6:' pflog0.tcpdump 05:11:26.200852 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: HBH (rtalert: 0x0000) icmp6: type-#6 [icmp6 cksum ok] (len 36, hlim 64) grep ' fe80::12: HBH (type 0x03: len=0) icmp6:' pflog0.tcpdump 05:11:36.003488 rule 5.regress.1/(match) [uid 0, pid 46963] pass in on lo12: fe80::12 > fe80::12: HBH (type 0x03: len=0) icmp6: type-#6 [icmp6 cksum ok] (len 28, hlim 64) ! grep '127.0.0.11' pflog0.tcpdump ! grep 'fe80::11' pflog0.tcpdump ==== run-igmp ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/igmp_ra.py N1 send internet group management protocol with router alert . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/igmp_ra.py N2 send internet group management protocol with router alert . Sent 1 packets. ==== run-icmp6-mld ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_mld_ra.py N1 send icmp6 multicast listener discovery with router alert . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_mld_ra.py N2 send icmp6 multicast listener discovery with router alert . Sent 1 packets. ==== run-bpf-mcast ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 2 packets received by filter 2 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel 0 packets received by filter 0 packets dropped by kernel rm -f stamp-bpf* # Check that multicast protocol packet with router alert passed grep '127.0.0.12 > 224.0.0.1: igmp query .* IPOPT-148{4}' lo12.tcpdump 05:11:45.296996 127.0.0.12 > 224.0.0.1: igmp query [ttl 1] (id 1, len 32, optlen=4 IPOPT-148{4}) grep 'fe80::12 > ff02::1: HBH (rtalert:.* icmp6: multicast ' lo12.tcpdump 05:11:50.253303 fe80::12 > ff02::1: HBH (rtalert: 0x0000) icmp6: multicast listener query max resp delay: 10000 addr: :: [icmp6 cksum ok] [hlim 1] (len 32) ! grep '127.0.0.11' pflog0.tcpdump ! grep 'fe80::11' pflog0.tcpdump ! grep '127.0.0.12' pflog0.tcpdump ! grep 'fe80::12' pflog0.tcpdump ! grep '224.0.0.1' pflog0.tcpdump ! grep 'ff02::1' pflog0.tcpdump ==== run-igmp-bad ==== rm -f lo11.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11' || true doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo11 >lo11.tcpdump & rm -f stamp-stop rm -f lo12.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12' || true tcpdump: listening on lo11, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni lo12 >lo12.tcpdump & rm -f stamp-stop rm -f pflog0.tcpdump doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0' || true tcpdump: listening on lo12, link-type LOOP doas -n /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni pflog0 >pflog0.tcpdump & rm -f stamp-stop sleep 2 # XXX tcpdump: listening on pflog0, link-type PFLOG doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/igmp_bad.py N1 send internet group management protocol with unknown option . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/igmp_bad.py N2 send internet group management protocol with unknown option . Sent 1 packets. ==== run-icmp6-mld-bad ==== doas -n /sbin/route -T 11 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_mld_bad.py N1 send icmp6 multicast listener discovery with unknown option . Sent 1 packets. doas -n /sbin/route -T 12 exec env PYTHONPATH=/home/src/regress/sys/net/pf_opts/obj python3 -u /home/src/regress/sys/net/pf_opts/icmp6_mld_bad.py N2 send icmp6 multicast listener discovery with unknown option . Sent 1 packets. ==== run-bpf-mcast-bad ==== sleep 2 # XXX doas -n pkill -f '^/usr/sbin/tcpdump -l -e -vvv -s 2048 -ni' 2 packets received by filter 2 packets received by filter 0 packets dropped by kernel 2 packets received by filter 0 packets dropped by kernel 0 packets dropped by kernel rm -f stamp-bpf* # Check that multicast protocol packet with options were blocked grep '127.0.0.12 > 224.0.0.1: igmp query .* IPOPT-3{4}' pflog0.tcpdump 05:11:59.479209 rule 5/(ip-option) [uid 0, pid 46963] pass in on lo12: 127.0.0.12 > 224.0.0.1: igmp query [ttl 1] (id 1, len 32, optlen=4 IPOPT-3{4}) grep 'fe80::12 > ff02::1: HBH (type 0x03:.* icmp6: multicast ' pflog0.tcpdump 05:12:04.379302 rule 5/(ip-option) [uid 0, pid 46963] pass in on lo12: fe80::12 > ff02::1: HBH (type 0x03: len=0) icmp6: multicast listener query max resp delay: 10000 addr: :: [icmp6 cksum ok] [hlim 1] (len 32) ! grep '127.0.0.11' pflog0.tcpdump ! grep 'fe80::11' pflog0.tcpdump ==== unconfig ==== # Destroy interfaces. doas -n /sbin/ifconfig lo11 rdomain 11 doas -n /sbin/ifconfig lo11 inet 127.0.0.1 delete doas -n /sbin/ifconfig lo11 inet 127.0.0.11 delete doas -n /sbin/ifconfig lo11 inet6 ::1 delete doas -n /sbin/ifconfig lo11 inet6 fe80::11/64 delete doas -n /sbin/ifconfig lo12 rdomain 12 doas -n /sbin/ifconfig lo12 inet 127.0.0.1 delete doas -n /sbin/ifconfig lo12 inet 127.0.0.12 delete doas -n /sbin/ifconfig lo12 inet6 ::1 delete doas -n /sbin/ifconfig lo12 inet6 fe80::12/64 delete rm -f stamp-ifconfig