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