aboutsummaryrefslogtreecommitdiffstats
path: root/extras/scripts/host-stack/perf-tests/start_vpp.sh
diff options
context:
space:
mode:
Diffstat (limited to 'extras/scripts/host-stack/perf-tests/start_vpp.sh')
-rwxr-xr-xextras/scripts/host-stack/perf-tests/start_vpp.sh153
1 files changed, 153 insertions, 0 deletions
diff --git a/extras/scripts/host-stack/perf-tests/start_vpp.sh b/extras/scripts/host-stack/perf-tests/start_vpp.sh
new file mode 100755
index 00000000000..27614713b76
--- /dev/null
+++ b/extras/scripts/host-stack/perf-tests/start_vpp.sh
@@ -0,0 +1,153 @@
+#!/usr/bin/env bash
+
+# SPDX-License-Identifier: Apache-2.0
+# Copyright (c) 2025 Cisco Systems, Inc.
+
+if [ $BIN_FLAVOR = "debug" ]
+then
+ BIN_DIR=install-vpp_debug-native
+ BIN_EXEC_PREFIX="gdb --args"
+else
+ BIN_DIR=install-vpp-native
+ BIN_EXEC_PREFIX="gdb --args"
+fi
+
+BIN_PATH=$BASE_DIR/$BIN_DIR
+
+if [ "$#" -eq 1 ]
+then
+ echo $1
+ CFG_FILE=$1
+fi
+
+CFG_MBUFS=""
+if [ -n "$NUM_MBUFS" ]; then
+ CFG_MBUFS="buffers-per-numa $NUM_MBUFS"
+fi
+
+if [ -z $HEAP_SIZE ]; then
+ HEAP_SIZE=4g
+fi
+
+if [ -z $SKIP_CORE ]; then
+ SKIP_CORE=0
+fi
+
+if [ -z $SKIP_CORE ]; then
+ MAIN_CORE=1
+fi
+
+if [ -z $EVT_LOG_SIZE ]; then
+ EVT_LOG_SIZE=0
+fi
+
+if [ -z $API_GLOBAL_SIZE ]; then
+ API_GLOBAL_SIZE=64M
+fi
+
+if [ -z $API_SIZE ]; then
+ API_SIZE=16M
+fi
+
+if [ -z ${WORKERS+x} ]; then
+ WORKERS=0
+ CFG_RX_QS=1
+else
+ CFG_WORKERS="workers $WORKERS"
+ CFG_RX_QS=$(( $WORKERS ))
+fi
+
+SOCK_CFG=""
+if [ -n "$SOCK" ]; then
+ SOCK_CFG="socksvr { socket-name ${SOCK} }"
+fi
+
+if [ -z $IF_RX_DESC ]; then
+ IF_RX_DESC=4096
+fi
+
+if [ -z $IF_TX_DESC ]; then
+ IF_TX_DESC=4096
+fi
+
+API_PREFIX_CFG=""
+if [ -n "$API_PREFIX" ]; then
+ API_PREFIX_CFG="prefix $API_PREFIX"
+fi
+
+CLI_LISTEN_CFG="cli-listen localhost:5002"
+if [ -n "$CLI_SOCK" ]; then
+ CLI_LISTEN_CFG="cli-listen $CLI_SOCK"
+fi
+
+if [[ -z "$DPDK_DISABLE" ]]; then
+ DPDK_CFG="dpdk { \
+ dev $DPDK_DEV { \
+ num-tx-desc $IF_TX_DESC \
+ num-rx-desc $IF_RX_DESC \
+ num-rx-queues $CFG_RX_QS \
+ } \
+ $SOCK_MEM_CFG \
+ $DPDK_CSUM \
+ }"
+else
+ DPDK_PLUGIN_DISABLE="plugin dpdk_plugin.so {disable}"
+fi
+
+if [[ -n "$QUIC_ENABLE" ]]; then
+ QUIC_PLUGIN="plugin quic_plugin.so {enable}"
+fi
+
+if [[ -n "$SRTP_ENABLE" ]]; then
+ SRTP_PLUGIN="plugin srtp_plugin.so {enable}"
+fi
+
+# custom openssl locally built
+LD_LIBP=""
+if [[ -n "${LOCAL_OSSL}" ]]; then
+ LD_LIBP="LD_LIBRARY_PATH=${LOCAL_OSSL}"
+fi
+
+function start_vpp
+{
+ sudo $LD_LIBP $BIN_EXEC_PREFIX $BIN_PATH/vpp/bin/vpp \
+ unix { \
+ interactive log /tmp/vpp.log \
+ full-coredump \
+ exec $CFG_DIR/$CFG_FILE \
+ $CLI_LISTEN_CFG \
+ poll-sleep-usec 0 \
+ } \
+ heapsize $HEAP_SIZE \
+ api-trace { on } \
+ api-segment { \
+ global-size $API_GLOBAL_SIZE \
+ api-size $API_SIZE \
+ gid vpp \
+ $API_PREFIX_CFG \
+ } \
+ vlib { \
+ elog-events $EVT_LOG_SIZE \
+ elog-post-mortem-dump \
+ } \
+ cpu { \
+ skip-cores $SKIP_CORE \
+ main-core $MAIN_CORE \
+ $CFG_CORELIST_WKS \
+ } \
+ buffers { $CFG_MBUFS } \
+ $DPDK_CFG \
+ $SESSION_CFG \
+ $TCP_CFG \
+ $UDP_CFG \
+ $SOCK_CFG \
+ $TLS_CFG \
+ plugins { \
+ plugin unittest_plugin.so {enable} \
+ plugin http_unittest_plugin.so {enable} \
+ $QUIC_PLUGIN \
+ $SRTP_PLUGIN \
+ $DPDK_PLUGIN_DISABLE \
+ }
+}
+