mirror of https://github.com/F-Stack/f-stack.git
148 lines
3.2 KiB
Bash
148 lines
3.2 KiB
Bash
|
#! /bin/bash
|
||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||
|
|
||
|
# usage: /bin/bash run_test.sh [-46]
|
||
|
# Run all defined linux_test[4,6].sh test-cases one by one
|
||
|
# user has to setup properly the following environment variables:
|
||
|
# SGW_PATH - path to the ipsec-secgw binary to test
|
||
|
# REMOTE_HOST - ip/hostname of the DUT
|
||
|
# REMOTE_IFACE - iface name for the test-port on DUT
|
||
|
# ETH_DEV - ethernet device to be used on SUT by DPDK ('-w <pci-id>')
|
||
|
# Also user can optonally setup:
|
||
|
# SGW_LCORE - lcore to run ipsec-secgw on (default value is 0)
|
||
|
# CRYPTO_DEV - crypto device to be used ('-w <pci-id>')
|
||
|
# if none specified appropriate vdevs will be created by the scrit
|
||
|
# MULTI_SEG_TEST - ipsec-secgw option to enable reassembly support and
|
||
|
# specify size of reassembly table (i.e. MULTI_SEG_TEST="--reassemble 128")
|
||
|
# refer to linux_test[4,6].sh for more information
|
||
|
|
||
|
|
||
|
# All supported modes to test.
|
||
|
# naming convention:
|
||
|
# 'old' means that ipsec-secgw will run in legacy (non-librte_ipsec mode)
|
||
|
# 'tun/trs' refer to tunnel/transport mode respectively
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
echo "Usage:"
|
||
|
echo -e "\t$0 -[46p]"
|
||
|
echo -e "\t\t-4 Perform Linux IPv4 network tests"
|
||
|
echo -e "\t\t-6 Perform Linux IPv6 network tests"
|
||
|
echo -e "\t\t-p Perform packet validation tests"
|
||
|
echo -e "\t\t-h Display this help"
|
||
|
}
|
||
|
|
||
|
LINUX_TEST="tun_aescbc_sha1 \
|
||
|
tun_aescbc_sha1_esn \
|
||
|
tun_aescbc_sha1_esn_atom \
|
||
|
tun_aesgcm \
|
||
|
tun_aesgcm_esn \
|
||
|
tun_aesgcm_esn_atom \
|
||
|
trs_aescbc_sha1 \
|
||
|
trs_aescbc_sha1_esn \
|
||
|
trs_aescbc_sha1_esn_atom \
|
||
|
trs_aesgcm \
|
||
|
trs_aesgcm_esn \
|
||
|
trs_aesgcm_esn_atom \
|
||
|
tun_aescbc_sha1_old \
|
||
|
tun_aesgcm_old \
|
||
|
trs_aescbc_sha1_old \
|
||
|
trs_aesgcm_old \
|
||
|
tun_aesctr_sha1 \
|
||
|
tun_aesctr_sha1_old \
|
||
|
tun_aesctr_sha1_esn \
|
||
|
tun_aesctr_sha1_esn_atom \
|
||
|
trs_aesctr_sha1 \
|
||
|
trs_aesctr_sha1_old \
|
||
|
trs_aesctr_sha1_esn \
|
||
|
trs_aesctr_sha1_esn_atom \
|
||
|
tun_3descbc_sha1 \
|
||
|
tun_3descbc_sha1_old \
|
||
|
tun_3descbc_sha1_esn \
|
||
|
tun_3descbc_sha1_esn_atom \
|
||
|
trs_3descbc_sha1 \
|
||
|
trs_3descbc_sha1_old \
|
||
|
trs_3descbc_sha1_esn \
|
||
|
trs_3descbc_sha1_esn_atom"
|
||
|
|
||
|
PKT_TESTS="trs_ipv6opts \
|
||
|
tun_null_header_reconstruct"
|
||
|
|
||
|
DIR=$(dirname $0)
|
||
|
|
||
|
# get input options
|
||
|
run4=0
|
||
|
run6=0
|
||
|
runpkt=0
|
||
|
while getopts ":46ph" opt
|
||
|
do
|
||
|
case $opt in
|
||
|
4)
|
||
|
run4=1
|
||
|
;;
|
||
|
6)
|
||
|
run6=1
|
||
|
;;
|
||
|
p)
|
||
|
runpkt=1
|
||
|
;;
|
||
|
h)
|
||
|
usage
|
||
|
exit 0
|
||
|
;;
|
||
|
?)
|
||
|
echo "Invalid option"
|
||
|
usage
|
||
|
exit 127
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
# no test suite has been selected
|
||
|
if [[ ${run4} -eq 0 && ${run6} -eq 0 && ${runpkt} -eq 0 ]]; then
|
||
|
usage
|
||
|
exit 127
|
||
|
fi
|
||
|
|
||
|
# perform packet processing validation tests
|
||
|
st=0
|
||
|
if [ $runpkt -eq 1 ]; then
|
||
|
echo "Performing packet validation tests"
|
||
|
/bin/bash ${DIR}/pkttest.sh ${PKT_TESTS}
|
||
|
st=$?
|
||
|
|
||
|
echo "pkttests finished with status ${st}"
|
||
|
if [[ ${st} -ne 0 ]]; then
|
||
|
echo "ERROR pkttests FAILED"
|
||
|
exit ${st}
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# perform network tests
|
||
|
if [[ ${run4} -eq 1 || ${run6} -eq 1 ]]; then
|
||
|
for i in ${LINUX_TEST}; do
|
||
|
|
||
|
echo "starting test ${i}"
|
||
|
|
||
|
st4=0
|
||
|
if [[ ${run4} -ne 0 ]]; then
|
||
|
/bin/bash ${DIR}/linux_test4.sh ${i}
|
||
|
st4=$?
|
||
|
echo "test4 ${i} finished with status ${st4}"
|
||
|
fi
|
||
|
|
||
|
st6=0
|
||
|
if [[ ${run6} -ne 0 ]]; then
|
||
|
/bin/bash ${DIR}/linux_test6.sh ${i}
|
||
|
st6=$?
|
||
|
echo "test6 ${i} finished with status ${st6}"
|
||
|
fi
|
||
|
|
||
|
let "st = st4 + st6"
|
||
|
if [[ $st -ne 0 ]]; then
|
||
|
echo "ERROR test ${i} FAILED"
|
||
|
exit $st
|
||
|
fi
|
||
|
done
|
||
|
fi
|