| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| |
| set -e |
| set -u |
| set -x |
| |
| unset KBUILD_OUTPUT |
| CONF_FILE="" |
| FLAGS=() |
| |
| GENERATE_GCOV_REPORT=0 |
| ENABLE_RDMA=0 |
| while getopts "gc:r" opt; do |
| case ${opt} in |
| g) |
| GENERATE_GCOV_REPORT=1 |
| ;; |
| c) |
| CONF_FILE=$OPTARG |
| ;; |
| r) |
| ENABLE_RDMA=1 |
| ;; |
| :) |
| echo "USAGE: config.sh [-g] [-c config] [-r]" |
| exit 1 |
| ;; |
| ?) |
| echo "Invalid option: -${OPTARG}." |
| exit 1 |
| ;; |
| esac |
| done |
| |
| if [[ "$CONF_FILE" != "" ]]; then |
| FLAGS=(--file "$CONF_FILE") |
| fi |
| |
| # enable RDS |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_TCP |
| |
| if [ "$GENERATE_GCOV_REPORT" -eq 1 ]; then |
| # instrument RDS and only RDS |
| scripts/config "${FLAGS[@]}" --enable CONFIG_GCOV_KERNEL |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL |
| scripts/config "${FLAGS[@]}" --enable GCOV_PROFILE_RDS |
| else |
| scripts/config "${FLAGS[@]}" --disable CONFIG_GCOV_KERNEL |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_ALL |
| scripts/config "${FLAGS[@]}" --disable GCOV_PROFILE_RDS |
| fi |
| |
| # need network namespaces to run tests with veth network interfaces |
| scripts/config "${FLAGS[@]}" --enable CONFIG_NET_NS |
| scripts/config "${FLAGS[@]}" --enable CONFIG_VETH |
| |
| # simulate packet loss |
| scripts/config "${FLAGS[@]}" --enable CONFIG_NET_SCH_NETEM |
| |
| if [ "$ENABLE_RDMA" -eq 1 ]; then |
| # enable RDS over InfiniBand / RDMA (rds_rdma test) |
| scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND |
| scripts/config "${FLAGS[@]}" --enable CONFIG_INFINIBAND_ADDR_TRANS |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDMA_RXE |
| scripts/config "${FLAGS[@]}" --enable CONFIG_RDS_RDMA |
| fi |