diff options
Diffstat (limited to 'regress/sys/net/loop/Makefile')
-rw-r--r-- | regress/sys/net/loop/Makefile | 132 |
1 files changed, 56 insertions, 76 deletions
diff --git a/regress/sys/net/loop/Makefile b/regress/sys/net/loop/Makefile index 51540d4e83a..708fcecf361 100644 --- a/regress/sys/net/loop/Makefile +++ b/regress/sys/net/loop/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.6 2020/01/08 21:28:00 bluhm Exp $ +# $OpenBSD: Makefile,v 1.7 2020/12/17 00:39:42 bluhm Exp $ # Copyright (c) 2017-2020 Alexander Bluhm <bluhm@openbsd.org> # @@ -63,42 +63,40 @@ regress: .endif -.PHONY: busy-rdomains ifconfig unconfig +.PHONY: busy-rdomains ifconfig unconfig pfctl +REGRESS_SETUP_ONCE += busy-rdomains busy-rdomains: - # check if rdomains are busy + # Check if rdomains are busy. .for n in ${NUMS} - @if /sbin/ifconfig | grep -v '^lo${n}:' | grep ' rdomain ${n} '; then\ - echo routing domain ${n} is already used >&2; exit 1; fi + @if /sbin/ifconfig | grep -v '^lo$n:' | grep ' rdomain $n '; then\ + echo routing domain $n is already used >&2; exit 1; fi .endfor +REGRESS_SETUP_ONCE += ifconfig ifconfig: unconfig - # create and configure loopback interfaces + # Create and configure loopback interfaces. .for n in ${NUMS} - ${SUDO} ifconfig lo${n} rdomain ${n} - ${SUDO} ifconfig lo${n} inet 127.0.0.1/8 - ${SUDO} ifconfig lo${n} inet 127.0.0.${n} alias - ${SUDO} route -n -T ${n} add -inet -host 10.6.6.6 127.0.0.1 - ${SUDO} route -n -T ${n} add -inet -host 10.7.7.7 127.0.0.1 + ${SUDO} ifconfig lo$n rdomain $n + ${SUDO} ifconfig lo$n inet 127.0.0.1/8 + ${SUDO} ifconfig lo$n inet 127.0.0.$n alias + ${SUDO} route -n -T $n add -inet -host 10.6.6.6 127.0.0.1 + ${SUDO} route -n -T $n add -inet -host 10.7.7.7 127.0.0.1 .endfor ${SUDO} route -n -T ${N1} add -inet -host 127.0.0.${N2} 127.0.0.1 ${SUDO} route -n -T ${N2} add -inet -host 127.0.0.${N1} 127.0.0.1 -unconfig: - # destroy interfaces +REGRESS_CLEANUP += unconfig +unconfig: stamp-stop + # Destroy interfaces. .for n in ${NUMS} - -${SUDO} ifconfig lo${n} 127.0.0.1 delete - -${SUDO} ifconfig lo${n} 127.0.0.${n} delete + -${SUDO} ifconfig lo$n 127.0.0.1 delete + -${SUDO} ifconfig lo$n 127.0.0.$n delete .endfor - rm -f stamp-setup + rm -f stamp-ifconfig -stamp-setup: Makefile - @echo '\n======== $@ ========' - ${.MAKE} -C ${.CURDIR} busy-rdomains ifconfig - date >$@ - -# Create python include file containing the addresses. addr.py: Makefile + # Create python include file containing the addresses. rm -f $@ $@.tmp .for var in N1 N2 echo '${var}="${${var}}"' >>$@.tmp @@ -107,12 +105,11 @@ addr.py: Makefile .endfor mv $@.tmp $@ -# Load the pf rules into the kernel. -stamp-pfctl: addr.py pf.conf stamp-setup - @echo '\n======== $@ ========' +REGRESS_SETUP_ONCE += pfctl +pfctl: addr.py pf.conf + # Load the pf rules into the kernel. cat addr.py ${.CURDIR}/pf.conf | /sbin/pfctl -n -f - cat addr.py ${.CURDIR}/pf.conf | ${SUDO} pfctl -a regress -f - - @date >$@ # run tcpdump on lo devices DUMPCMD = /usr/sbin/tcpdump -l -e -vvv -s 2048 -ni @@ -123,18 +120,16 @@ stamp-bpf: stamp-bpf-${N1} stamp-bpf-${N2} .for n in ${N1} ${N2} -stamp-bpf-${n}: stamp-setup - @echo '\n======== $@ ========' - rm -f lo${n}.tcpdump - ${SUDO} pkill -f '^${DUMPCMD} lo${n}' || true - ${SUDO} ${DUMPCMD} lo${n} >lo${n}.tcpdump & +stamp-bpf-$n: stamp-ifconfig + rm -f lo$n.tcpdump + ${SUDO} pkill -f '^${DUMPCMD} lo$n' || true + ${SUDO} ${DUMPCMD} lo$n >lo$n.tcpdump & rm -f stamp-stop @date >$@ .endfor stamp-stop: - @echo '\n======== $@ ========' sleep 2 # XXX -${SUDO} pkill -f '^${DUMPCMD}' rm -f stamp-bpf* @@ -142,66 +137,57 @@ stamp-stop: .for n in ${N1} ${N2} -REGRESS_TARGETS += run-regress-ping-local-${n} -run-regress-ping-local-${n}: stamp-setup stamp-bpf - @echo '\n======== $@ ========' - # Ping localhost in routing domain ${n}. - /sbin/ping -n -w 1 -c 1 -V ${n} 127.0.0.1 +REGRESS_TARGETS += run-ping-local-$n +run-ping-local-$n: stamp-bpf + # Ping localhost in routing domain $n. + /sbin/ping -n -w 1 -c 1 -V $n 127.0.0.1 -REGRESS_TARGETS += run-regress-ping-loop-${n} -run-regress-ping-loop-${n}: stamp-setup stamp-bpf - @echo '\n======== $@ ========' - # Ping non existing address with loopback route in routing domain ${n}. - ! /sbin/ping -n -w 1 -c 1 -V ${n} 10.6.6.6 +REGRESS_TARGETS += run-ping-loop-$n +run-ping-loop-$n: stamp-bpf + # Ping non existing address with loopback route in routing domain $n. + ! /sbin/ping -n -w 1 -c 1 -V $n 10.6.6.6 -REGRESS_TARGETS += run-regress-ping-address-${n} -run-regress-ping-address-${n}: stamp-setup stamp-pfctl - @echo '\n======== $@ ========' - # Ping local address in routing domain ${n}. - /sbin/ping -n -w 1 -c 1 -V ${n} 127.0.0.${n} +REGRESS_TARGETS += run-ping-address-$n +run-ping-address-$n: + # Ping local address in routing domain $n. + /sbin/ping -n -w 1 -c 1 -V $n 127.0.0.$n .endfor -REGRESS_TARGETS += run-regress-ping-rdomain-pass -run-regress-ping-rdomain-pass: stamp-setup stamp-pfctl - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-ping-rdomain-pass +run-ping-rdomain-pass: # Pass ping packets between routing domains with pf rule. /sbin/ping -n -w 1 -c 1 -V ${N1} 127.0.0.${N2} -REGRESS_TARGETS += run-regress-ping-rdomain-block -run-regress-ping-rdomain-block: stamp-setup stamp-pfctl - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-ping-rdomain-block +run-ping-rdomain-block: # Check that reverse direction without pf rule is not allowed. ! /sbin/ping -n -w 1 -c 1 -V ${N2} 127.0.0.${N1} -REGRESS_TARGETS += run-regress-ping-rdomain-loop -run-regress-ping-rdomain-loop: stamp-setup stamp-pfctl stamp-bpf - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-ping-rdomain-loop +run-ping-rdomain-loop: stamp-bpf # Ping non existing address and loop between routing domains. ! /sbin/ping -n -w 1 -c 1 -V ${N1} 10.7.7.7 .for n in ${N1} ${N2} -REGRESS_TARGETS += run-regress-bpf-local-${n} -run-regress-bpf-local-${n}: stamp-stop - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-bpf-local-$n +run-bpf-local-$n: stamp-stop # Check that the ping packet went through loopback. - grep '127.0.0.1 > 127.0.0.1: icmp: echo request' lo${n}.tcpdump + grep '127.0.0.1 > 127.0.0.1: icmp: echo request' lo$n.tcpdump -REGRESS_TARGETS += run-regress-bpf-loop-${n} -run-regress-bpf-loop-${n}: stamp-stop - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-bpf-loop-$n +run-bpf-loop-$n: stamp-stop # Check that the ping packet went multiple times through loopback. grep '[0-9] 127.0.0.1 > 10.6.6.6: icmp: echo request .*ttl 255,' \ - lo${n}.tcpdump + lo$n.tcpdump grep '[0-9] 127.0.0.1 > 10.6.6.6: icmp: echo request .* \[ttl 1\]' \ - lo${n}.tcpdump + lo$n.tcpdump .endfor -REGRESS_TARGETS += run-regress-bpf-rdomain-loop-${N1} -run-regress-bpf-rdomain-loop-${N1}: stamp-stop - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-bpf-rdomain-loop-${N1} +run-bpf-rdomain-loop-${N1}: stamp-stop # Check the ping packet went multiple times in routing domains. grep '[0-9] 127.0.0.1 > 10.7.7.7: icmp: echo request .*ttl 255,' \ lo${N1}.tcpdump @@ -210,9 +196,8 @@ run-regress-bpf-rdomain-loop-${N1}: stamp-stop grep '[0-9] 127.0.0.1 > 10.7.7.7: icmp: echo request .* \[ttl 1\]' \ lo${N1}.tcpdump -REGRESS_TARGETS += run-regress-bpf-rdomain-loop-${N2} -run-regress-bpf-rdomain-loop-${N2}: stamp-stop - @echo '\n======== $@ ========' +REGRESS_TARGETS += run-bpf-rdomain-loop-${N2} +run-bpf-rdomain-loop-${N2}: stamp-stop # Check the ping packet went multiple times in routing domains. grep '[0-9] 127.0.0.1 > 10.7.7.7: icmp: echo request .*ttl 254,' \ lo${N2}.tcpdump @@ -221,11 +206,6 @@ run-regress-bpf-rdomain-loop-${N2}: stamp-stop ! grep '[0-9] 127.0.0.1 > 10.7.7.7: icmp: echo request .* \[ttl 1\]' \ lo${N2}.tcpdump -REGRESS_TARGETS += run-regress-cleanup -run-regress-cleanup: stamp-stop - @echo '\n======== $@ ========' - ${.MAKE} -C ${.CURDIR} unconfig - CLEANFILES += addr.py *.pyc *.tcpdump *.log stamp-* .include <bsd.regress.mk> |