xref: /openbsd/regress/sbin/slaacd/Makefile (revision 427e22f8)
1*427e22f8Santon#	$OpenBSD: Makefile,v 1.11 2023/10/19 18:36:40 anton Exp $
21fe09dd0Sflorian
31fe09dd0Sflorian# The following ports must be installed:
41fe09dd0Sflorian#
51fe09dd0Sflorian# scapy               powerful interactive packet manipulation in python
61fe09dd0Sflorian
71fe09dd0SflorianRTABLE		?=	1
81fe09dd0SflorianPAIR1		?=	pair1
91fe09dd0SflorianPAIR2		?=	pair2
1027183e9eSflorianCTR_SOCK	?=	/dev/slaacd.sock
11f39ab060Sbluhm
121fe09dd0Sflorian.if ! (make(clean) || make(cleandir) || make(obj))
131fe09dd0Sflorian# Check whether all required python packages are installed.  If some
141fe09dd0Sflorian# are missing print a warning and skip the tests, but do not fail.
151fe09dd0SflorianAUTOCONF6 != sh -c "ifconfig | fgrep AUTOCONF6 2>&1" || true
161fe09dd0SflorianINTERFACES != sh -c "ifconfig ${PAIR1} 2>/dev/null; \
171fe09dd0Sflorian    ifconfig ${PAIR2} 2>/dev/null" || true
181fe09dd0Sflorian.endif
191fe09dd0Sflorian
2070788dfdSkn.if ! exists(/usr/local/bin/scapy)
211fe09dd0Sflorianregress:
2270788dfdSkn	@echo Install scapy package to run this regress.
231fe09dd0Sflorian	@echo SKIPPED
241fe09dd0Sflorian.endif
251fe09dd0Sflorian
261fe09dd0Sflorian.if ! empty(AUTOCONF6)
271fe09dd0Sflorianregress:
281fe09dd0Sflorian	@echo 'AUTOCONF6 interface(s) already present'
291fe09dd0Sflorian	@echo SKIPPED
301fe09dd0Sflorian.endif
311fe09dd0Sflorian.if ! empty(INTERFACES)
321fe09dd0Sflorianregress:
331fe09dd0Sflorian	@echo 'pair(4) interfaces already present'
341fe09dd0Sflorian	@echo SKIPPED
351fe09dd0Sflorian.endif
361fe09dd0Sflorian
371fe09dd0Sflorian# Set variables so that make runs with and without obj directory.
381fe09dd0Sflorian# Only do that if necessary to keep visible output short.
391fe09dd0Sflorian.if ${.CURDIR} == ${.OBJDIR}
40a6e9806dSbluhmPYTHON =	python3 -B -u ./
411fe09dd0Sflorian.else
42a6e9806dSbluhmPYTHON =	python3 -B -u ${.CURDIR}/
431fe09dd0Sflorian.endif
441fe09dd0Sflorian
45f39ab060SbluhmREGRESS_SETUP +=	setup
46f39ab060Sbluhmsetup: cleanup
47f39ab060Sbluhm	${SUDO} ifconfig ${PAIR1} rdomain ${RTABLE} 10.11.12.1/24 up
48f39ab060Sbluhm	${SUDO} ifconfig ${PAIR2} rdomain ${RTABLE} 10.11.12.2/24 up
49f39ab060Sbluhm	${SUDO} ifconfig ${PAIR1} rdomain ${RTABLE} patch ${PAIR2}
50f39ab060Sbluhm	${SUDO} ifconfig ${PAIR1} inet6 rdomain ${RTABLE} eui64
51f39ab060Sbluhm	${SUDO} ifconfig ${PAIR2} inet6 rdomain ${RTABLE} eui64
52f39ab060Sbluhm	${SUDO} ifconfig ${PAIR2} inet6 rdomain ${RTABLE} autoconf
53f39ab060Sbluhm	${SUDO} route -nq -T ${RTABLE} add -host default 10.11.12.1 -reject
541fe09dd0Sflorian
55f39ab060SbluhmREGRESS_CLEANUP +=	cleanup
561fe09dd0Sfloriancleanup:
57*427e22f8Santon.for iface in ${PAIR1} ${PAIR2} lo${RTABLE}
58f39ab060Sbluhm	${SUDO} ifconfig ${iface} destroy 2>/dev/null || true
591fe09dd0Sflorian.endfor
601fe09dd0Sflorian
61f39ab060SbluhmREGRESS_TARGETS +=	run-send-solicitation
62f39ab060Sbluhmrun-send-solicitation:
63f39ab060Sbluhm	${SUDO} route -T${RTABLE} exec ${PYTHON}sniff_sol.py ${CTR_SOCK}
641fe09dd0Sflorian
654ec66dcbSflorian
66f39ab060SbluhmREGRESS_TARGETS +=	run-parse-ra
67f39ab060Sbluhmrun-parse-ra:
68f39ab060Sbluhm	${SUDO} route -T${RTABLE} exec ${PYTHON}process_ra.py \
69f39ab060Sbluhm	    ${PAIR1} ${PAIR2} ${CTR_SOCK}
701fe09dd0Sflorian
711fe09dd0Sflorian.include <bsd.regress.mk>
72