blob: 9023e44dc2e48c2f43ddef54d011d9e43fe85c1f [file] [log] [blame] [raw]
#!/bin/sh
#
# The order in which the interfaces are used is not as important as
# their existance.
#
if [ ! -f .nicstate ] ; then
NICS=`ifconfig -a | egrep '^[a-z][^ ]*:' | grep -v LOOPBACK | sed -e 's/^\([a-z][^:]*\):.*/\1/'`
num=0
for i in $NICS; do
eval `echo NIC${num}=$i`
num=`expr $num + 1`
done
if [ -z "${NIC0}" ] ; then
echo "Could not find NIC0"
exit 1
fi
if [ -z "${NIC1}" ] ; then
echo "Could not find NIC1"
exit 1
fi
if [ -z "${NIC2}" ] ; then
echo "Could not find NIC2"
exit 1
fi
if [ -z "${NIC3}" ] ; then
echo "Could not find NIC3"
exit 1
fi
NIC0ADDR=`netstat -nr | egrep "\.[0-9]+ *U .*${NIC0}" | head -1 | awk ' { printf "%-15s", $2; } ' -`
NIC0ADDR6=`netstat -nr | egrep " [:0-9a-f]+ *U .*${NIC0}" | head -1 | awk ' { print $2; } ' -`
NIC1ADDR=`netstat -nr | egrep "\.[0-9]+ *U .*${NIC1}" | head -1 | awk ' { printf "%-15s", $2; } ' -`
NIC1ADDR6=`netstat -nr | egrep " [:0-9a-f]+ *U .*${NIC1}" | head -1 | awk ' { print $2; } ' -`
NIC0HEXADDR=`echo ${NIC0ADDR} | awk -F. '{ printf "%02x%02x %02x%02x", $1, $2, $3, $4; } ' -`
NIC0HEXADDR6=`echo "${NIC0ADDR6}" | perl -e '$F=<>; @A=split(/:/,$F); for ($i = 0; $i <= $#A; $i++) { if (!length($A[$i])) { for ($j = 0; $j < 8 - $#A; $j++) { $addr = $addr." 0000"; } } else { $hex = "0000$A[$i]"; $hex =~ s/.*(....)$/$1/; $addr = $addr." $hex"; } } $addr =~ s/^ //; print "$addr\n";'`
NIC1HEXADDR=`echo ${NIC1ADDR} | awk -F. '{ printf "%02x%02x %02x%02x", $1, $2, $3, $4; } ' -`
NIC1HEXADDR6=`echo "${NIC1ADDR6}" | perl -e '$F=<>; @A=split(/:/,$F); for ($i = 0; $i <= $#A; $i++) { if (!length($A[$i])) { for ($j = 0; $j < 8 - $#A; $j++) { $addr = $addr." 0000"; } } else { $hex = "0000$A[$i]"; $hex =~ s/.*(....)$/$1/; $addr = $addr." $hex"; } } $addr =~ s/^ //; print "$addr\n";'`
cat > .nicstate << __EOF__
NIC0=${NIC0}
NIC1=${NIC1}
NIC2=${NIC2}
NIC3=${NIC3}
NIC0ADDR="${NIC0ADDR}"
NIC0ADDR6="${NIC0ADDR6}"
NIC1ADDR="${NIC1ADDR}"
NIC1ADDR6="${NIC1ADDR6}"
NIC0HEXADDR="${NIC0HEXADDR}"
NIC0HEXADDR6="${NIC0HEXADDR6}"
NIC1HEXADDR="${NIC1HEXADDR}"
NIC1HEXADDR6="${NIC1HEXADDR6}"
__EOF__
else
. ./.nicstate
fi
export NIC0
export NIC1
export NIC2
export NIC3
export NIC0ADDR
export NIC0ADDR6
export NIC1ADDR
export NIC1ADDR6
export NIC0HEXADDR
export NIC0HEXADDR6
export NIC1HEXADDR
export NIC1HEXADDR6
RESDIR=kern
export RESDIR
#
mkdir -p ${RESDIR}
#
# These tests cannot be run meaningfully through the kernel from ipftest
# and tested for proper function as they use policy routing.
#
touch ${RESDIR}/ni21 ${RESDIR}/ni23 ${RESDIR}/ni6 ${RESDIR}/n18 ${RESDIR}/ni18
#
ipf -T update_ipid=0
make -k kerntests
#make RESDIR=kern TESTMODE=kern kern/n6