xref: /linux/tools/testing/selftests/net/rds/config.sh (revision 90e63d5354951d37fa2b3b91e6f17b95d2bf9bee)
1#! /bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4set -e
5set -u
6set -x
7
8unset KBUILD_OUTPUT
9CONF_FILE=""
10FLAGS=()
11
12GENERATE_GCOV_REPORT=0
13ENABLE_RDMA=0
14while getopts "gc:r" opt; do
15  case ${opt} in
16    g)
17      GENERATE_GCOV_REPORT=1
18      ;;
19    c)
20      CONF_FILE=$OPTARG
21      ;;
22    r)
23      ENABLE_RDMA=1
24      ;;
25    :)
26      echo "USAGE: config.sh [-g] [-c config] [-r]"
27      exit 1
28      ;;
29    ?)
30      echo "Invalid option: -${OPTARG}."
31      exit 1
32      ;;
33  esac
34done
35
36if [[ "$CONF_FILE" != "" ]]; then
37	FLAGS=(--file "$CONF_FILE")
38fi
39
40# enable RDS
41scripts/config "${FLAGS[@]}" --enable CONFIG_RDS
42scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_TCP
43
44if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then
45	# instrument RDS and only RDS
46	scripts/config "${FLAGS[@]}" --enable CONFIG_GCOV_KERNEL
47	scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL
48	scripts/config "${FLAGS[@]}" --enable GCOV_PROFILE_RDS
49else
50	scripts/config "${FLAGS[@]}" --disable CONFIG_GCOV_KERNEL
51	scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL
52	scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_RDS
53fi
54
55# need network namespaces to run tests with veth network interfaces
56scripts/config "${FLAGS[@]}" --enable CONFIG_NET_NS
57scripts/config "${FLAGS[@]}" --enable CONFIG_VETH
58
59# simulate packet loss
60scripts/config "${FLAGS[@]}" --enable CONFIG_NET_SCH_NETEM
61
62if [ "$ENABLE_RDMA" -eq 1 ]; then
63	# enable RDS over InfiniBand / RDMA (rds_rdma test)
64	scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND
65	scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND_ADDR_TRANS
66	scripts/config "${FLAGS[@]}" --enable CONFIG_RDMA_RXE
67	scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_RDMA
68fi
69