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