xref: /dpdk/examples/ipsec-secgw/test/load_env.sh (revision 9dbc4e21e752ca98e23205c3d1bac53e03e934b3)
1#! /bin/bash
2# SPDX-License-Identifier: BSD-3-Clause
3
4DIR=`dirname $0`
5
6regular=0
7inline_on=0
8fallback_on=0
9legacy_only=0
10fallback_val="lookaside-none"
11crypto_prim=""
12multi_seg_val=""
13while getopts ":iflsrc" opt
14do
15	case $opt in
16		i)
17			inline_on=1
18			;;
19		f)
20			fallback_on=1
21			;;
22		l)
23			legacy_only=1
24			;;
25		s)
26			multi_seg_val="SGW_MULTI_SEG=128"
27			;;
28		r)
29			regular=1
30			;;
31		c)
32			crypto_prim="CRYPTO_PRIM_TYPE=cpu-crypto"
33			fallback_val="cpu-crypto"
34			;;
35	esac
36done
37shift $((OPTIND -1))
38
39PROTO=$1
40MODE=$2
41
42# test scenarios to set up for regular test
43TEST_MODES_REGULAR="legacy \
44library \
45library_esn \
46library_esn_atom"
47
48# test scenarios to set up for inline test
49TEST_MODES_INLINE="legacy_inline \
50library_inline"
51
52# test scenarios to set up for fallback test
53TEST_MODES_FALLBACK="library_fallback"
54
55# env variables to export for specific test scenarios
56default="SGW_MODE=legacy SGW_ESN=esn-off SGW_ATOM=atom-off SGW_CRYPTO=regular \
57SGW_CRYPTO_FLBK= ${multi_seg_val}"
58legacy="${default} CRYPTO_PRIM_TYPE="
59library="${default} SGW_MODE=library ${crypto_prim}"
60library_esn="${default} SGW_MODE=library SGW_ESN=esn-on ${crypto_prim}"
61library_esn_atom="${default} SGW_MODE=library SGW_ESN=esn-on SGW_ATOM=atom-on \
62${crypto_prim}"
63legacy_inline="${default} SGW_CRYPTO=inline CRYPTO_PRIM_TYPE="
64library_inline="${default} SGW_MODE=library SGW_CRYPTO=inline CRYPTO_PRIM_TYPE="
65library_fallback="${default} SGW_MODE=library SGW_CRYPTO=inline \
66SGW_CRYPTO_FLBK=${fallback_val} SGW_MULTI_SEG=128 CRYPTO_PRIM_TYPE="
67
68# export needed env variables and run tests
69if [[ ${regular} -eq 1 ]]; then
70	for i in ${TEST_MODES_REGULAR}; do
71		if [[ ${legacy_only} -eq 1 && "${i}" != *legacy* ]]; then
72			continue
73		elif [[ ${legacy_only} -eq 0 && "${i}" == *legacy* ]]; then
74			continue
75		fi
76		for x in ${!i}; do
77			export ${x}
78		done
79
80		/bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE}
81		st=$?
82		if [[ ${st} -ne 0 ]]; then
83			exit ${st}
84		fi
85	done
86elif [[ ${inline_on} -eq 1 || ${fallback_on} -eq 1 ]]; then
87	if [[ ${inline_on} -eq 1 ]]; then
88		for i in ${TEST_MODES_INLINE}; do
89			if [[ ${legacy_only} -eq 1 && "${i}" != *legacy* ]]
90			then
91				continue
92			elif [[ ${legacy_only} -eq 0 && "${i}" == *legacy* ]]
93			then
94				continue
95			fi
96			for x in ${!i}; do
97				export ${x}
98			done
99
100			/bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE}
101			st=$?
102			if [[ ${st} -ne 0 ]]; then
103				exit ${st}
104			fi
105		done
106	fi
107	if [[ ${fallback_on} -eq 1 ]]; then
108		for i in ${TEST_MODES_FALLBACK}; do
109			for x in ${!i}; do
110				export ${x}
111			done
112
113			/bin/bash ${DIR}/linux_test.sh ${PROTO} ${MODE}
114			st=$?
115			if [[ ${st} -ne 0 ]]; then
116				exit ${st}
117			fi
118		done
119	fi
120fi
121exit 0
122